Loading mysql-test/r/select.result +6 −0 Original line number Diff line number Diff line Loading @@ -3517,6 +3517,12 @@ id a b c d e 2 NULL NULL NULL 2 40 2 NULL NULL NULL 2 50 DROP TABLE t1,t2,t3; create table t1 (c1 varchar(1), c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int, c9 int, fulltext key (`c1`)); select distinct match (`c1`) against ('z') , c2, c3, c4,c5, c6,c7, c8 from t1 where c9=1 order by c2, c2; match (`c1`) against ('z') c2 c3 c4 c5 c6 c7 c8 drop table t1; CREATE TABLE t1 (pk varchar(10) PRIMARY KEY, fk varchar(16)); CREATE TABLE t2 (pk varchar(16) PRIMARY KEY, fk varchar(10)); INSERT INTO t1 VALUES Loading mysql-test/t/select.test +8 −0 Original line number Diff line number Diff line Loading @@ -2999,6 +2999,14 @@ SELECT * FROM t1 LEFT JOIN t2 ON t2.b=t1.a INNER JOIN t3 ON t3.d=t1.id DROP TABLE t1,t2,t3; # # Bug#20503: Server crash due to the ORDER clause isn't taken into account # while space allocation # create table t1 (c1 varchar(1), c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int, c9 int, fulltext key (`c1`)); select distinct match (`c1`) against ('z') , c2, c3, c4,c5, c6,c7, c8 from t1 where c9=1 order by c2, c2; drop table t1; # Bug #22735: no equality propagation for BETWEEN and IN with STRING arguments # Loading sql/sql_select.cc +12 −0 Original line number Diff line number Diff line Loading @@ -13513,7 +13513,19 @@ bool JOIN::alloc_func_list() disctinct->group_by optimization */ if (select_distinct) { group_parts+= fields_list.elements; /* If the ORDER clause is specified then it's possible that it also will be optimized, so reserve space for it too */ if (order) { ORDER *ord; for (ord= order; ord; ord= ord->next) group_parts++; } } /* This must use calloc() as rollup_make_fields depends on this */ sum_funcs= (Item_sum**) thd->calloc(sizeof(Item_sum**) * (func_count+1) + Loading Loading
mysql-test/r/select.result +6 −0 Original line number Diff line number Diff line Loading @@ -3517,6 +3517,12 @@ id a b c d e 2 NULL NULL NULL 2 40 2 NULL NULL NULL 2 50 DROP TABLE t1,t2,t3; create table t1 (c1 varchar(1), c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int, c9 int, fulltext key (`c1`)); select distinct match (`c1`) against ('z') , c2, c3, c4,c5, c6,c7, c8 from t1 where c9=1 order by c2, c2; match (`c1`) against ('z') c2 c3 c4 c5 c6 c7 c8 drop table t1; CREATE TABLE t1 (pk varchar(10) PRIMARY KEY, fk varchar(16)); CREATE TABLE t2 (pk varchar(16) PRIMARY KEY, fk varchar(10)); INSERT INTO t1 VALUES Loading
mysql-test/t/select.test +8 −0 Original line number Diff line number Diff line Loading @@ -2999,6 +2999,14 @@ SELECT * FROM t1 LEFT JOIN t2 ON t2.b=t1.a INNER JOIN t3 ON t3.d=t1.id DROP TABLE t1,t2,t3; # # Bug#20503: Server crash due to the ORDER clause isn't taken into account # while space allocation # create table t1 (c1 varchar(1), c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int, c9 int, fulltext key (`c1`)); select distinct match (`c1`) against ('z') , c2, c3, c4,c5, c6,c7, c8 from t1 where c9=1 order by c2, c2; drop table t1; # Bug #22735: no equality propagation for BETWEEN and IN with STRING arguments # Loading
sql/sql_select.cc +12 −0 Original line number Diff line number Diff line Loading @@ -13513,7 +13513,19 @@ bool JOIN::alloc_func_list() disctinct->group_by optimization */ if (select_distinct) { group_parts+= fields_list.elements; /* If the ORDER clause is specified then it's possible that it also will be optimized, so reserve space for it too */ if (order) { ORDER *ord; for (ord= order; ord; ord= ord->next) group_parts++; } } /* This must use calloc() as rollup_make_fields depends on this */ sum_funcs= (Item_sum**) thd->calloc(sizeof(Item_sum**) * (func_count+1) + Loading