Loading mysql-test/r/select.result +9 −0 Original line number Diff line number Diff line Loading @@ -3628,6 +3628,15 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 range si,ai si 5 NULL 2 Using where 1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where DROP TABLE t1,t2,t3; CREATE TABLE t1 (a INT, b INT, KEY (a)); INSERT INTO t1 VALUES (1,1),(2,2); EXPLAIN SELECT 1 FROM t1 WHERE a = 1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref a a 5 const 1 Using where; Using index EXPLAIN SELECT 1 FROM t1 IGNORE INDEX FOR JOIN (a) WHERE a = 1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where DROP TABLE t1; CREATE TABLE t1 ( f1 int primary key, f2 int, f3 int, f4 int, f5 int, f6 int, checked_out int); CREATE TABLE t2 ( f11 int PRIMARY KEY ); INSERT INTO t1 VALUES (1,1,1,0,0,0,0),(2,1,1,3,8,1,0),(3,1,1,4,12,1,0); Loading mysql-test/t/select.test +10 −1 Original line number Diff line number Diff line Loading @@ -3104,6 +3104,15 @@ SELECT t3.a FROM t1,t2,t3 DROP TABLE t1,t2,t3; # # WL3527: Extend IGNORE INDEX so places where index is ignored can # be specified # CREATE TABLE t1 (a INT, b INT, KEY (a)); INSERT INTO t1 VALUES (1,1),(2,2); EXPLAIN SELECT 1 FROM t1 WHERE a = 1; EXPLAIN SELECT 1 FROM t1 IGNORE INDEX FOR JOIN (a) WHERE a = 1; DROP TABLE t1; # # Bug#25172: Not checked buffer size leads to a server crash # Loading sql/sql_yacc.yy +13 −4 Original line number Diff line number Diff line Loading @@ -1092,7 +1092,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); key_alg opt_btree_or_rtree %type <string_list> key_usage_list using_list key_usage_list key_usage_list_inner using_list %type <key_part> key_part Loading Loading @@ -5899,6 +5899,10 @@ opt_outer: /* empty */ {} | OUTER {}; opt_for_join: /* empty */ | FOR_SYM JOIN_SYM; opt_key_definition: /* empty */ {} | USE_SYM key_usage_list Loading @@ -5914,15 +5918,20 @@ opt_key_definition: sel->use_index_ptr= &sel->use_index; sel->table_join_options|= TL_OPTION_FORCE_INDEX; } | IGNORE_SYM key_usage_list | IGNORE_SYM key_or_index opt_for_join key_usage_list_inner { SELECT_LEX *sel= Select; sel->ignore_index= *$2; sel->ignore_index= *$4; sel->ignore_index_ptr= &sel->ignore_index; }; key_usage_list: key_or_index { Select->interval_list.empty(); } key_or_index key_usage_list_inner { $$= $2; } ; key_usage_list_inner: { Select->interval_list.empty(); } '(' key_list_or_empty ')' { $$= &Select->interval_list; } ; Loading Loading
mysql-test/r/select.result +9 −0 Original line number Diff line number Diff line Loading @@ -3628,6 +3628,15 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 range si,ai si 5 NULL 2 Using where 1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where DROP TABLE t1,t2,t3; CREATE TABLE t1 (a INT, b INT, KEY (a)); INSERT INTO t1 VALUES (1,1),(2,2); EXPLAIN SELECT 1 FROM t1 WHERE a = 1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref a a 5 const 1 Using where; Using index EXPLAIN SELECT 1 FROM t1 IGNORE INDEX FOR JOIN (a) WHERE a = 1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where DROP TABLE t1; CREATE TABLE t1 ( f1 int primary key, f2 int, f3 int, f4 int, f5 int, f6 int, checked_out int); CREATE TABLE t2 ( f11 int PRIMARY KEY ); INSERT INTO t1 VALUES (1,1,1,0,0,0,0),(2,1,1,3,8,1,0),(3,1,1,4,12,1,0); Loading
mysql-test/t/select.test +10 −1 Original line number Diff line number Diff line Loading @@ -3104,6 +3104,15 @@ SELECT t3.a FROM t1,t2,t3 DROP TABLE t1,t2,t3; # # WL3527: Extend IGNORE INDEX so places where index is ignored can # be specified # CREATE TABLE t1 (a INT, b INT, KEY (a)); INSERT INTO t1 VALUES (1,1),(2,2); EXPLAIN SELECT 1 FROM t1 WHERE a = 1; EXPLAIN SELECT 1 FROM t1 IGNORE INDEX FOR JOIN (a) WHERE a = 1; DROP TABLE t1; # # Bug#25172: Not checked buffer size leads to a server crash # Loading
sql/sql_yacc.yy +13 −4 Original line number Diff line number Diff line Loading @@ -1092,7 +1092,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); key_alg opt_btree_or_rtree %type <string_list> key_usage_list using_list key_usage_list key_usage_list_inner using_list %type <key_part> key_part Loading Loading @@ -5899,6 +5899,10 @@ opt_outer: /* empty */ {} | OUTER {}; opt_for_join: /* empty */ | FOR_SYM JOIN_SYM; opt_key_definition: /* empty */ {} | USE_SYM key_usage_list Loading @@ -5914,15 +5918,20 @@ opt_key_definition: sel->use_index_ptr= &sel->use_index; sel->table_join_options|= TL_OPTION_FORCE_INDEX; } | IGNORE_SYM key_usage_list | IGNORE_SYM key_or_index opt_for_join key_usage_list_inner { SELECT_LEX *sel= Select; sel->ignore_index= *$2; sel->ignore_index= *$4; sel->ignore_index_ptr= &sel->ignore_index; }; key_usage_list: key_or_index { Select->interval_list.empty(); } key_or_index key_usage_list_inner { $$= $2; } ; key_usage_list_inner: { Select->interval_list.empty(); } '(' key_list_or_empty ')' { $$= &Select->interval_list; } ; Loading