Loading mysql-test/r/distinct.result +14 −0 Original line number Diff line number Diff line Loading @@ -668,3 +668,17 @@ NULL 3 4 DROP TABLE t1; CREATE TABLE t1 (a INT, b INT); INSERT INTO t1 VALUES(1,1),(1,2),(1,3); SELECT DISTINCT a, b FROM t1; a b 1 1 1 2 1 3 SELECT DISTINCT a, a, b FROM t1; a a b 1 1 1 1 1 2 1 1 3 DROP TABLE t1; End of 5.0 tests mysql-test/t/distinct.test +13 −0 Original line number Diff line number Diff line Loading @@ -540,3 +540,16 @@ EXPLAIN SELECT a FROM t1 GROUP BY a; SELECT a FROM t1 GROUP BY a; DROP TABLE t1; # #Bug #27659: SELECT DISTINCT returns incorrect result set when field is #repeated # # CREATE TABLE t1 (a INT, b INT); INSERT INTO t1 VALUES(1,1),(1,2),(1,3); SELECT DISTINCT a, b FROM t1; SELECT DISTINCT a, a, b FROM t1; DROP TABLE t1; --echo End of 5.0 tests sql/sql_select.cc +2 −3 Original line number Diff line number Diff line Loading @@ -13539,9 +13539,7 @@ create_distinct_group(THD *thd, Item **ref_pointer_array, ORDER *ord_iter; for (ord_iter= group; ord_iter; ord_iter= ord_iter->next) if ((*ord_iter->item)->eq(item, 1)) break; if (ord_iter) continue; goto next_item; ORDER *ord=(ORDER*) thd->calloc(sizeof(ORDER)); if (!ord) Loading @@ -13556,6 +13554,7 @@ create_distinct_group(THD *thd, Item **ref_pointer_array, *prev=ord; prev= &ord->next; } next_item: ref_pointer_array++; } *prev=0; Loading Loading
mysql-test/r/distinct.result +14 −0 Original line number Diff line number Diff line Loading @@ -668,3 +668,17 @@ NULL 3 4 DROP TABLE t1; CREATE TABLE t1 (a INT, b INT); INSERT INTO t1 VALUES(1,1),(1,2),(1,3); SELECT DISTINCT a, b FROM t1; a b 1 1 1 2 1 3 SELECT DISTINCT a, a, b FROM t1; a a b 1 1 1 1 1 2 1 1 3 DROP TABLE t1; End of 5.0 tests
mysql-test/t/distinct.test +13 −0 Original line number Diff line number Diff line Loading @@ -540,3 +540,16 @@ EXPLAIN SELECT a FROM t1 GROUP BY a; SELECT a FROM t1 GROUP BY a; DROP TABLE t1; # #Bug #27659: SELECT DISTINCT returns incorrect result set when field is #repeated # # CREATE TABLE t1 (a INT, b INT); INSERT INTO t1 VALUES(1,1),(1,2),(1,3); SELECT DISTINCT a, b FROM t1; SELECT DISTINCT a, a, b FROM t1; DROP TABLE t1; --echo End of 5.0 tests
sql/sql_select.cc +2 −3 Original line number Diff line number Diff line Loading @@ -13539,9 +13539,7 @@ create_distinct_group(THD *thd, Item **ref_pointer_array, ORDER *ord_iter; for (ord_iter= group; ord_iter; ord_iter= ord_iter->next) if ((*ord_iter->item)->eq(item, 1)) break; if (ord_iter) continue; goto next_item; ORDER *ord=(ORDER*) thd->calloc(sizeof(ORDER)); if (!ord) Loading @@ -13556,6 +13554,7 @@ create_distinct_group(THD *thd, Item **ref_pointer_array, *prev=ord; prev= &ord->next; } next_item: ref_pointer_array++; } *prev=0; Loading