List:Commits« Previous MessageNext Message »
From:Tor Didriksen Date:January 30 2012 9:06am
Subject:bzr push into mysql-trunk branch (tor.didriksen:3466 to 3467)
View as plain text  
 3467 Tor Didriksen	2012-01-30 [merge]
      merge opt-backporting => opt-team

    modified:
      mysql-test/suite/opt_trace/r/bugs_ps_prot_all.result
      mysql-test/suite/opt_trace/r/bugs_ps_prot_none.result
      mysql-test/suite/opt_trace/r/general2_ps_prot.result
      mysql-test/suite/opt_trace/r/general_ps_prot_all.result
      mysql-test/suite/opt_trace/r/general_ps_prot_none.result
      mysql-test/suite/opt_trace/r/range_ps_prot.result
      mysql-test/suite/opt_trace/r/subquery_ps_prot.result
 3466 Tor Didriksen	2012-01-27 [merge]
      merge opt-backporting =>opt-team

    added:
      mysql-test/suite/opt_trace/r/eq_range_statistics.result
      mysql-test/suite/opt_trace/t/eq_range_statistics.test
      mysql-test/suite/sys_vars/r/eq_range_index_dive_limit_basic.result
      mysql-test/suite/sys_vars/t/eq_range_index_dive_limit_basic.test
    modified:
      include/my_base.h
      mysql-test/include/join_cache.inc
      mysql-test/include/subquery_mat.inc
      mysql-test/include/subquery_sj.inc
      mysql-test/r/derived.result
      mysql-test/r/greedy_optimizer.result
      mysql-test/r/join_cache_bka.result
      mysql-test/r/join_cache_bka_nixbnl.result
      mysql-test/r/join_cache_bkaunique.result
      mysql-test/r/join_cache_bnl.result
      mysql-test/r/join_cache_nojb.result
      mysql-test/r/join_nested.result
      mysql-test/r/join_nested_bka.result
      mysql-test/r/join_nested_bka_nixbnl.result
      mysql-test/r/mysqld--help-notwin.result
      mysql-test/r/mysqld--help-win.result
      mysql-test/r/subquery_mat.result
      mysql-test/r/subquery_mat_all.result
      mysql-test/r/subquery_mat_none.result
      mysql-test/r/subquery_sj_all.result
      mysql-test/r/subquery_sj_all_bka.result
      mysql-test/r/subquery_sj_all_bka_nixbnl.result
      mysql-test/r/subquery_sj_all_bkaunique.result
      mysql-test/r/subquery_sj_dupsweed.result
      mysql-test/r/subquery_sj_dupsweed_bka.result
      mysql-test/r/subquery_sj_dupsweed_bka_nixbnl.result
      mysql-test/r/subquery_sj_dupsweed_bkaunique.result
      mysql-test/r/subquery_sj_firstmatch.result
      mysql-test/r/subquery_sj_firstmatch_bka.result
      mysql-test/r/subquery_sj_firstmatch_bka_nixbnl.result
      mysql-test/r/subquery_sj_firstmatch_bkaunique.result
      mysql-test/r/subquery_sj_loosescan.result
      mysql-test/r/subquery_sj_loosescan_bka.result
      mysql-test/r/subquery_sj_loosescan_bka_nixbnl.result
      mysql-test/r/subquery_sj_loosescan_bkaunique.result
      mysql-test/r/subquery_sj_mat.result
      mysql-test/r/subquery_sj_mat_bka.result
      mysql-test/r/subquery_sj_mat_bka_nixbnl.result
      mysql-test/r/subquery_sj_mat_bkaunique.result
      mysql-test/r/subquery_sj_mat_nosj.result
      mysql-test/r/subquery_sj_none.result
      mysql-test/r/subquery_sj_none_bka.result
      mysql-test/r/subquery_sj_none_bka_nixbnl.result
      mysql-test/r/subquery_sj_none_bkaunique.result
      mysql-test/suite/opt_trace/r/bugs_no_prot_all.result
      mysql-test/suite/opt_trace/r/bugs_no_prot_none.result
      mysql-test/suite/opt_trace/r/charset.result
      mysql-test/suite/opt_trace/r/general2_no_prot.result
      mysql-test/suite/opt_trace/r/general2_ps_prot.result
      mysql-test/suite/opt_trace/r/general_no_prot_all.result
      mysql-test/suite/opt_trace/r/general_no_prot_none.result
      mysql-test/suite/opt_trace/r/range_no_prot.result
      mysql-test/suite/opt_trace/r/subquery_no_prot.result
      sql/filesort.cc
      sql/filesort_utils.h
      sql/handler.cc
      sql/opt_range.cc
      sql/sql_class.h
      sql/sql_join_buffer.cc
      sql/sql_join_buffer.h
      sql/sql_optimizer.cc
      sql/sql_optimizer.h
      sql/sql_select.cc
      sql/structs.h
      sql/sys_vars.cc
      sql/table.h
      unittest/gunit/filesort_buffer-t.cc
=== modified file 'mysql-test/suite/opt_trace/r/bugs_ps_prot_all.result'
--- a/mysql-test/suite/opt_trace/r/bugs_ps_prot_all.result	2012-01-27 13:57:29 +0000
+++ b/mysql-test/suite/opt_trace/r/bugs_ps_prot_all.result	2012-01-30 09:05:57 +0000
@@ -2178,6 +2178,7 @@ SELECT 1 FROM t1 WHERE 1 LIKE
                                 "range_scan_alternatives": [
                                   {
                                     "index": "a",
+                                    "index_dives_for_eq_ranges": true,
                                     "ranges": [
                                       "1 <= a <= 1"
                                     ] /* ranges */,
@@ -2190,6 +2191,7 @@ SELECT 1 FROM t1 WHERE 1 LIKE
                                   },
                                   {
                                     "index": "a_2",
+                                    "index_dives_for_eq_ranges": true,
                                     "ranges": [
                                       "1 <= a <= 1"
                                     ] /* ranges */,

=== modified file 'mysql-test/suite/opt_trace/r/bugs_ps_prot_none.result'
--- a/mysql-test/suite/opt_trace/r/bugs_ps_prot_none.result	2011-11-29 08:41:50 +0000
+++ b/mysql-test/suite/opt_trace/r/bugs_ps_prot_none.result	2012-01-30 08:57:24 +0000
@@ -1659,6 +1659,7 @@ SELECT 1 FROM t1 WHERE 1 LIKE
                                 "range_scan_alternatives": [
                                   {
                                     "index": "a",
+                                    "index_dives_for_eq_ranges": true,
                                     "ranges": [
                                       "1 <= a <= 1"
                                     ] /* ranges */,
@@ -1671,6 +1672,7 @@ SELECT 1 FROM t1 WHERE 1 LIKE
                                   },
                                   {
                                     "index": "a_2",
+                                    "index_dives_for_eq_ranges": true,
                                     "ranges": [
                                       "1 <= a <= 1"
                                     ] /* ranges */,

=== modified file 'mysql-test/suite/opt_trace/r/general2_ps_prot.result'
--- a/mysql-test/suite/opt_trace/r/general2_ps_prot.result	2012-01-20 15:30:14 +0000
+++ b/mysql-test/suite/opt_trace/r/general2_ps_prot.result	2012-01-30 08:57:24 +0000
@@ -359,6 +359,7 @@ TRACE
                     "range_scan_alternatives": [
                       {
                         "index": "a",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "12 < a"
                         ] /* ranges */,
@@ -4110,6 +4111,7 @@ select replace(t3._field_140, "\r","^M")
                     "range_scan_alternatives": [
                       {
                         "index": "PRIMARY",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= seq_0_id <= 1"
                         ] /* ranges */,
@@ -4197,6 +4199,7 @@ select replace(t3._field_140, "\r","^M")
                     "range_scan_alternatives": [
                       {
                         "index": "PRIMARY",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= seq_0_id <= 1"
                         ] /* ranges */,
@@ -4294,6 +4297,7 @@ select replace(t3._field_140, "\r","^M")
                     "range_scan_alternatives": [
                       {
                         "index": "PRIMARY",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= seq_0_id <= 1"
                         ] /* ranges */,

=== modified file 'mysql-test/suite/opt_trace/r/general_ps_prot_all.result'
--- a/mysql-test/suite/opt_trace/r/general_ps_prot_all.result	2011-11-22 13:47:46 +0000
+++ b/mysql-test/suite/opt_trace/r/general_ps_prot_all.result	2012-01-30 08:57:24 +0000
@@ -1516,6 +1516,7 @@ explain SELECT c FROM t5 where c+1 in (s
                     "range_scan_alternatives": [
                       {
                         "index": "d",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "NULL <= d <= NULL"
                         ] /* ranges */,
@@ -1891,6 +1892,7 @@ explain SELECT c FROM t5 where c+1 in (s
                           "range_scan_alternatives": [
                             {
                               "index": "d",
+                              "index_dives_for_eq_ranges": true,
                               "ranges": [
                                 "NULL <= d <= NULL"
                               ] /* ranges */,
@@ -6708,6 +6710,7 @@ update t6 set d=5 where d is NULL	{
           "range_scan_alternatives": [
             {
               "index": "d",
+              "index_dives_for_eq_ranges": true,
               "ranges": [
                 "NULL <= d <= NULL"
               ] /* ranges */,
@@ -6772,6 +6775,7 @@ delete from t6 where d=5	{
           "range_scan_alternatives": [
             {
               "index": "d",
+              "index_dives_for_eq_ranges": true,
               "ranges": [
                 "5 <= d <= 5"
               ] /* ranges */,
@@ -6896,6 +6900,7 @@ insert into t6 select * from t6 where d>
                     "range_scan_alternatives": [
                       {
                         "index": "d",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "7 < d"
                         ] /* ranges */,
@@ -7083,6 +7088,7 @@ update t5, t6 set t6.d=t6.d+t5.c+4-t5.c-
                     "range_scan_alternatives": [
                       {
                         "index": "d",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "7000 < d"
                         ] /* ranges */,
@@ -7287,6 +7293,7 @@ delete t6 from t5, t6 where d>7000	{
                     "range_scan_alternatives": [
                       {
                         "index": "d",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "7000 < d"
                         ] /* ranges */,
@@ -7715,6 +7722,7 @@ select * from t6 where d in (select f1()
                     "range_scan_alternatives": [
                       {
                         "index": "d",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "3 <= d <= 3"
                         ] /* ranges */,
@@ -8398,6 +8406,7 @@ select d into res from t6 where d in (se
                     "range_scan_alternatives": [
                       {
                         "index": "d",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "3 <= d <= 3"
                         ] /* ranges */,
@@ -9128,6 +9137,7 @@ insert into t2 select d,100,200 from t6 
                     "range_scan_alternatives": [
                       {
                         "index": "d",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "NULL < d"
                         ] /* ranges */,
@@ -10021,6 +10031,7 @@ select d into res from t6 where d in (se
                     "range_scan_alternatives": [
                       {
                         "index": "d",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "3 <= d <= 3"
                         ] /* ranges */,

=== modified file 'mysql-test/suite/opt_trace/r/general_ps_prot_none.result'
--- a/mysql-test/suite/opt_trace/r/general_ps_prot_none.result	2011-11-30 11:36:14 +0000
+++ b/mysql-test/suite/opt_trace/r/general_ps_prot_none.result	2012-01-30 08:57:24 +0000
@@ -1563,6 +1563,7 @@ explain SELECT c FROM t5 where c+1 in (s
                           "range_scan_alternatives": [
                             {
                               "index": "d",
+                              "index_dives_for_eq_ranges": true,
                               "ranges": [
                                 "NULL <= d <= NULL"
                               ] /* ranges */,
@@ -1852,6 +1853,7 @@ explain SELECT c FROM t5 where c+1 in (s
                           "range_scan_alternatives": [
                             {
                               "index": "d",
+                              "index_dives_for_eq_ranges": true,
                               "ranges": [
                                 "NULL <= d <= NULL"
                               ] /* ranges */,
@@ -5954,6 +5956,7 @@ update t6 set d=5 where d is NULL	{
           "range_scan_alternatives": [
             {
               "index": "d",
+              "index_dives_for_eq_ranges": true,
               "ranges": [
                 "NULL <= d <= NULL"
               ] /* ranges */,
@@ -6018,6 +6021,7 @@ delete from t6 where d=5	{
           "range_scan_alternatives": [
             {
               "index": "d",
+              "index_dives_for_eq_ranges": true,
               "ranges": [
                 "5 <= d <= 5"
               ] /* ranges */,
@@ -6142,6 +6146,7 @@ insert into t6 select * from t6 where d>
                     "range_scan_alternatives": [
                       {
                         "index": "d",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "7 < d"
                         ] /* ranges */,
@@ -6329,6 +6334,7 @@ update t5, t6 set t6.d=t6.d+t5.c+4-t5.c-
                     "range_scan_alternatives": [
                       {
                         "index": "d",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "7000 < d"
                         ] /* ranges */,
@@ -6533,6 +6539,7 @@ delete t6 from t5, t6 where d>7000	{
                     "range_scan_alternatives": [
                       {
                         "index": "d",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "7000 < d"
                         ] /* ranges */,
@@ -8333,6 +8340,7 @@ insert into t2 select d,100,200 from t6 
                     "range_scan_alternatives": [
                       {
                         "index": "d",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "NULL < d"
                         ] /* ranges */,

=== modified file 'mysql-test/suite/opt_trace/r/range_ps_prot.result'
--- a/mysql-test/suite/opt_trace/r/range_ps_prot.result	2011-12-01 14:12:10 +0000
+++ b/mysql-test/suite/opt_trace/r/range_ps_prot.result	2012-01-30 08:57:24 +0000
@@ -157,6 +157,7 @@ EXPLAIN SELECT * FROM t1 WHERE key2 < 5 
                     "range_scan_alternatives": [
                       {
                         "index": "i2",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "key2 < 5",
                           "1020 < key2"
@@ -529,6 +530,7 @@ EXPLAIN SELECT * FROM t1 WHERE key1 < 3 
                           "range_scan_alternatives": [
                             {
                               "index": "i1",
+                              "index_dives_for_eq_ranges": true,
                               "ranges": [
                                 "key1 < 3"
                               ] /* ranges */,
@@ -546,6 +548,7 @@ EXPLAIN SELECT * FROM t1 WHERE key1 < 3 
                           "range_scan_alternatives": [
                             {
                               "index": "i2",
+                              "index_dives_for_eq_ranges": true,
                               "ranges": [
                                 "1020 < key2"
                               ] /* ranges */,
@@ -1233,6 +1236,7 @@ GROUP BY key2	{
                       {
                         "index": "i2_1",
                         "covering": true,
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= key2 <= 1",
                           "2 <= key2 <= 2",
@@ -1246,6 +1250,7 @@ GROUP BY key2	{
                       {
                         "index": "i2_2",
                         "covering": true,
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= key2 <= 1",
                           "2 <= key2 <= 2",
@@ -1283,6 +1288,7 @@ GROUP BY key2	{
                     "range_scan_alternatives": [
                       {
                         "index": "i2_1",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= key2 <= 1",
                           "2 <= key2 <= 2",
@@ -1298,6 +1304,7 @@ GROUP BY key2	{
                       },
                       {
                         "index": "i2_2",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= key2 <= 1",
                           "2 <= key2 <= 2",
@@ -1540,6 +1547,7 @@ EXPLAIN SELECT * FROM t2 WHERE key2 = 1 
                     "range_scan_alternatives": [
                       {
                         "index": "i2_1",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= key2 <= 1"
                         ] /* ranges */,
@@ -1551,6 +1559,7 @@ EXPLAIN SELECT * FROM t2 WHERE key2 = 1 
                       },
                       {
                         "index": "i2_2",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= key2 <= 1"
                         ] /* ranges */,
@@ -1787,6 +1796,7 @@ EXPLAIN SELECT * FROM t1 WHERE key2=10 O
                           "range_scan_alternatives": [
                             {
                               "index": "i2",
+                              "index_dives_for_eq_ranges": true,
                               "ranges": [
                                 "10 <= key2 <= 10"
                               ] /* ranges */,
@@ -1804,6 +1814,7 @@ EXPLAIN SELECT * FROM t1 WHERE key2=10 O
                           "range_scan_alternatives": [
                             {
                               "index": "i3",
+                              "index_dives_for_eq_ranges": true,
                               "ranges": [
                                 "3 <= key3 <= 3"
                               ] /* ranges */,
@@ -2217,6 +2228,7 @@ EXPLAIN SELECT * FROM t2 WHERE key1a = 5
                     "range_scan_alternatives": [
                       {
                         "index": "PRIMARY",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "5 <= key1a <= 5 AND key1b < 10"
                         ] /* ranges */,
@@ -2228,6 +2240,7 @@ EXPLAIN SELECT * FROM t2 WHERE key1a = 5
                       },
                       {
                         "index": "i1b",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "key1b < 10 AND 5 <= key1a <= 5"
                         ] /* ranges */,
@@ -2435,6 +2448,7 @@ EXPLAIN SELECT * FROM t2 WHERE (key1a = 
                     "range_scan_alternatives": [
                       {
                         "index": "PRIMARY",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "4 <= key1a <= 4 AND 3 < key1b < 7",
                           "5 <= key1a <= 5 AND 2 < key1b < 10"
@@ -2447,6 +2461,7 @@ EXPLAIN SELECT * FROM t2 WHERE (key1a = 
                       },
                       {
                         "index": "i1b",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "2 < key1b <= 3 AND 5 <= key1a <= 5",
                           "3 < key1b < 7",
@@ -2650,6 +2665,7 @@ EXPLAIN SELECT * FROM t2 WHERE (key1b < 
                     "range_scan_alternatives": [
                       {
                         "index": "PRIMARY",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "4 <= key1a <= 4 AND 7 < key1b < 10",
                           "5 <= key1a <= 5 AND 7 < key1b < 10"
@@ -2662,6 +2678,7 @@ EXPLAIN SELECT * FROM t2 WHERE (key1b < 
                       },
                       {
                         "index": "i1b",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "7 < key1b < 10 AND 4 <= key1a <= 4",
                           "7 < key1b < 10 AND 5 <= key1a <= 5"
@@ -2882,6 +2899,7 @@ EXPLAIN SELECT * FROM t1 WHERE (key1 > 1
                           "range_scan_alternatives": [
                             {
                               "index": "i1",
+                              "index_dives_for_eq_ranges": true,
                               "ranges": [
                                 "1 < key1"
                               ] /* ranges */,
@@ -2900,6 +2918,7 @@ EXPLAIN SELECT * FROM t1 WHERE (key1 > 1
                           "range_scan_alternatives": [
                             {
                               "index": "i2",
+                              "index_dives_for_eq_ranges": true,
                               "ranges": [
                                 "2 < key2"
                               ] /* ranges */,
@@ -3129,6 +3148,7 @@ WHERE t1.key1=t2.key1a AND t1.key2 > 102
                     "range_scan_alternatives": [
                       {
                         "index": "i2",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1020 < key2"
                         ] /* ranges */,
@@ -3384,6 +3404,7 @@ EXPLAIN SELECT * FROM t1 WHERE cola = 'f
                     "range_scan_alternatives": [
                       {
                         "index": "cola",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "foo <= cola <= foo"
                         ] /* ranges */,
@@ -3395,6 +3416,7 @@ EXPLAIN SELECT * FROM t1 WHERE cola = 'f
                       },
                       {
                         "index": "colb",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "bar <= colb <= bar"
                         ] /* ranges */,
@@ -3637,6 +3659,7 @@ EXPLAIN SELECT * FROM t1 WHERE cola = 'f
                     "range_scan_alternatives": [
                       {
                         "index": "cola",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "f\no <= cola <= f\no"
                         ] /* ranges */,
@@ -4510,6 +4533,7 @@ EXPLAIN SELECT * FROM t1 WHERE i1 > '2' 
                     "range_scan_alternatives": [
                       {
                         "index": "k1",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "2 < i1"
                         ] /* ranges */,
@@ -4521,6 +4545,7 @@ EXPLAIN SELECT * FROM t1 WHERE i1 > '2' 
                       },
                       {
                         "index": "k2",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "2 < i1"
                         ] /* ranges */,
@@ -4662,6 +4687,7 @@ EXPLAIN SELECT * FROM t1 WHERE i1 > '2' 
                     "range_scan_alternatives": [
                       {
                         "index": "k2",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "2 < i1"
                         ] /* ranges */,
@@ -4807,6 +4833,7 @@ EXPLAIN SELECT DISTINCT i1 FROM t1 WHERE
                       {
                         "index": "k1",
                         "covering": true,
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= i1"
                         ] /* ranges */,
@@ -4816,6 +4843,7 @@ EXPLAIN SELECT DISTINCT i1 FROM t1 WHERE
                       {
                         "index": "k2",
                         "covering": true,
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= i1"
                         ] /* ranges */,
@@ -4846,6 +4874,7 @@ EXPLAIN SELECT DISTINCT i1 FROM t1 WHERE
                     "range_scan_alternatives": [
                       {
                         "index": "k1",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= i1"
                         ] /* ranges */,
@@ -4858,6 +4887,7 @@ EXPLAIN SELECT DISTINCT i1 FROM t1 WHERE
                       },
                       {
                         "index": "k2",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= i1"
                         ] /* ranges */,
@@ -4969,6 +4999,7 @@ EXPLAIN SELECT DISTINCT i1 FROM t1 WHERE
                     "range_scan_alternatives": [
                       {
                         "index": "k1",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= i1"
                         ] /* ranges */,
@@ -5203,6 +5234,7 @@ EXPLAIN SELECT v FROM t1 WHERE i1 = 1 AN
                     "range_scan_alternatives": [
                       {
                         "index": "PRIMARY",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "pk < 3"
                         ] /* ranges */,
@@ -5215,6 +5247,7 @@ EXPLAIN SELECT v FROM t1 WHERE i1 = 1 AN
                       },
                       {
                         "index": "i1_idx",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= i1 <= 1"
                         ] /* ranges */,
@@ -5227,6 +5260,7 @@ EXPLAIN SELECT v FROM t1 WHERE i1 = 1 AN
                       },
                       {
                         "index": "v_idx",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "a <= v <= a AND 1 <= i1 <= 1"
                         ] /* ranges */,
@@ -5507,6 +5541,7 @@ EXPLAIN SELECT v FROM t1 WHERE i1 = 1 AN
                     "range_scan_alternatives": [
                       {
                         "index": "PRIMARY",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "pk < 3"
                         ] /* ranges */,
@@ -5518,6 +5553,7 @@ EXPLAIN SELECT v FROM t1 WHERE i1 = 1 AN
                       },
                       {
                         "index": "v_idx",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "a <= v <= a AND 1 <= i1 <= 1"
                         ] /* ranges */,
@@ -5529,6 +5565,7 @@ EXPLAIN SELECT v FROM t1 WHERE i1 = 1 AN
                       },
                       {
                         "index": "i1_i2_idx",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= i2 <= 1 AND 1 <= i1 <= 1"
                         ] /* ranges */,
@@ -5782,6 +5819,7 @@ EXPLAIN SELECT MAX(b), a FROM t1 WHERE b
                       {
                         "index": "PRIMARY",
                         "covering": true,
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= a <= 1 AND b < 2"
                         ] /* ranges */,
@@ -5816,6 +5854,7 @@ EXPLAIN SELECT MAX(b), a FROM t1 WHERE b
                     "range_scan_alternatives": [
                       {
                         "index": "PRIMARY",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= a <= 1 AND b < 2"
                         ] /* ranges */,
@@ -5828,6 +5867,7 @@ EXPLAIN SELECT MAX(b), a FROM t1 WHERE b
                       },
                       {
                         "index": "b",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "b < 2"
                         ] /* ranges */,
@@ -6079,6 +6119,7 @@ EXPLAIN SELECT * FROM t1 WHERE c1 = '1' 
                     "range_scan_alternatives": [
                       {
                         "index": "k1",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= c1 <= 1"
                         ] /* ranges */,
@@ -6090,6 +6131,7 @@ EXPLAIN SELECT * FROM t1 WHERE c1 = '1' 
                       },
                       {
                         "index": "k2",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "1 <= c1 <= 1"
                         ] /* ranges */,

=== modified file 'mysql-test/suite/opt_trace/r/subquery_ps_prot.result'
--- a/mysql-test/suite/opt_trace/r/subquery_ps_prot.result	2012-01-10 18:58:10 +0000
+++ b/mysql-test/suite/opt_trace/r/subquery_ps_prot.result	2012-01-30 08:57:24 +0000
@@ -1247,6 +1247,7 @@ field4,field5,field6	{
                     "range_scan_alternatives": [
                       {
                         "index": "col_int_key",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "NULL < col_int_key < 214",
                           "214 < col_int_key"
@@ -1953,6 +1954,7 @@ table2.`col_int_nokey` <> any ( select 5
                     "range_scan_alternatives": [
                       {
                         "index": "PRIMARY",
+                        "index_dives_for_eq_ranges": true,
                         "ranges": [
                           "18 <= pk <= 18",
                           "192 <= pk <= 192"

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk branch (tor.didriksen:3466 to 3467) Tor Didriksen30 Jan