1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt

into  magare.gmz:/home/kgeorge/mysql/autopush/B27659-5.0-opt
This commit is contained in:
unknown
2007-04-10 16:57:46 +03:00
3 changed files with 29 additions and 3 deletions

View File

@ -668,3 +668,17 @@ NULL
3 3
4 4
DROP TABLE t1; 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

View File

@ -540,3 +540,16 @@ EXPLAIN SELECT a FROM t1 GROUP BY a;
SELECT a FROM t1 GROUP BY a; SELECT a FROM t1 GROUP BY a;
DROP TABLE t1; 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

View File

@ -13539,9 +13539,7 @@ create_distinct_group(THD *thd, Item **ref_pointer_array,
ORDER *ord_iter; ORDER *ord_iter;
for (ord_iter= group; ord_iter; ord_iter= ord_iter->next) for (ord_iter= group; ord_iter; ord_iter= ord_iter->next)
if ((*ord_iter->item)->eq(item, 1)) if ((*ord_iter->item)->eq(item, 1))
break; goto next_item;
if (ord_iter)
continue;
ORDER *ord=(ORDER*) thd->calloc(sizeof(ORDER)); ORDER *ord=(ORDER*) thd->calloc(sizeof(ORDER));
if (!ord) if (!ord)
@ -13556,6 +13554,7 @@ create_distinct_group(THD *thd, Item **ref_pointer_array,
*prev=ord; *prev=ord;
prev= &ord->next; prev= &ord->next;
} }
next_item:
ref_pointer_array++; ref_pointer_array++;
} }
*prev=0; *prev=0;