From: Jorgen Loland Date: October 22 2010 1:36pm Subject: bzr commit into mysql-next-mr-bugfixing branch (jorgen.loland:3231) WL#5594 List-Archive: http://lists.mysql.com/commits/121702 Message-Id: <20101022133653.8490E217C@atum21.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============8263781656578740951==" --===============8263781656578740951== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///export/home/jl208045/mysql/wl4800/mysql-next-mr-opt-backporting-wl4800-patchcleanup/ based on revid:jorgen.loland@stripped 3231 Jorgen Loland 2010-10-22 WL#5594 - Add optimizer traces to the range optimizer In addition to step_down_to(), sel_arg_range_seq_next() also stores range info used when evaluating range access. This needs to be added to the optimizer trace. @ sql/opt_range.cc Add optimizer trace when sel_arg_range_seq_next() stores a range used to evaluate range access. modified: mysql-test/r/optimizer_trace_range.result sql/opt_range.cc === modified file 'mysql-test/r/optimizer_trace_range.result' --- a/mysql-test/r/optimizer_trace_range.result 2010-10-22 08:31:43 +0000 +++ b/mysql-test/r/optimizer_trace_range.result 2010-10-22 13:36:50 +0000 @@ -1466,7 +1466,7 @@ EXPLAIN SELECT * FROM t2 WHERE key1a = 5 { "index": "i1b", "ranges": [ - "key1b < 10" + "key1b < 10 : 5 <= key1a <= 5" ] /* ranges */, "index_only": false, "records": 9, === modified file 'sql/opt_range.cc' --- a/sql/opt_range.cc 2010-10-22 08:31:43 +0000 +++ b/sql/opt_range.cc 2010-10-22 13:36:50 +0000 @@ -8149,19 +8149,35 @@ walk_right_n_up: !memcmp(cur[-1].min_key, cur[-1].max_key, len) && !key_tree->min_flag && !key_tree->max_flag)) { + SEL_ARG *store_key_part= key_tree->next_key_part; seq->param->is_ror_scan= FALSE; if (!key_tree->min_flag) cur->min_key_parts += - key_tree->next_key_part->store_min_key(seq->param->key[seq->keyno], - &cur->min_key, - &cur->min_key_flag, - MAX_KEY); + store_key_part->store_min_key(seq->param->key[seq->keyno], + &cur->min_key, + &cur->min_key_flag, + MAX_KEY); if (!key_tree->max_flag) cur->max_key_parts += - key_tree->next_key_part->store_max_key(seq->param->key[seq->keyno], - &cur->max_key, - &cur->max_key_flag, - MAX_KEY); + store_key_part->store_max_key(seq->param->key[seq->keyno], + &cur->max_key, + &cur->max_key_flag, + MAX_KEY); + + if (seq->param->thd->opt_trace && seq->param->thd->opt_trace->is_started()) + { + // Trace the range we just stored + KEY_PART_INFO *kpi= + seq->param->table->key_info[seq->real_keyno].key_part + + store_key_part->part; + + uint16 length= kpi->length; + append_range(&key_range_trace, kpi, + store_key_part->min_value, length, + store_key_part->max_value, length, + store_key_part->min_flag | store_key_part->max_flag); + } + break; } } --===============8263781656578740951== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/jorgen.loland@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: jorgen.loland@stripped\ # u6q4m0uv4eol2jdy # target_branch: file:///export/home/jl208045/mysql/wl4800/mysql-next-\ # mr-opt-backporting-wl4800-patchcleanup/ # testament_sha1: 9bb5a2a7e3a234ef64f6b84e5679f587174cb924 # timestamp: 2010-10-22 15:36:53 +0200 # base_revision_id: jorgen.loland@stripped\ # adz91hcsvw5b2c00 # # Begin bundle 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 --===============8263781656578740951==--