Commit 26395c7e authored by joerg@mysql.com's avatar joerg@mysql.com

Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-5.1-new

into mysql.com:/M51/mysql-5.1
parents 61748a0c baba405c
...@@ -3,18 +3,23 @@ ...@@ -3,18 +3,23 @@
die() { echo "$@"; exit 1; } die() { echo "$@"; exit 1; }
# Added glibtoolize reference to make native OSX autotools work
if [ -f /usr/bin/glibtoolize ]
then
LIBTOOLIZE=glibtoolize
else
LIBTOOLIZE=libtoolize
fi
(cd storage/bdb/dist && sh s_all) (cd storage/bdb/dist && sh s_all)
(cd storage/innobase && aclocal && autoheader && aclocal && automake && autoconf) (cd storage/innobase && aclocal && autoheader && \
$LIBTOOLIZE --automake --force --copy && \
automake --force --add-missing --copy && autoconf)
aclocal || die "Can't execute aclocal" aclocal || die "Can't execute aclocal"
autoheader || die "Can't execute autoheader" autoheader || die "Can't execute autoheader"
# --force means overwrite ltmain.sh script if it already exists # --force means overwrite ltmain.sh script if it already exists
# Added glibtoolize reference to make native OSX autotools work $LIBTOOLIZE --automake --force || die "Can't execute libtoolize"
if test -f /usr/bin/glibtoolize ; then
glibtoolize --automake --force || die "Can't execute glibtoolize"
else
libtoolize --automake --force || die "Can't execute libtoolize"
fi
# --add-missing instructs automake to install missing auxiliary files # --add-missing instructs automake to install missing auxiliary files
# and --force to overwrite them if they already exist # and --force to overwrite them if they already exist
......
...@@ -8,7 +8,9 @@ ...@@ -8,7 +8,9 @@
# #
make distclean make distclean
(cd storage/bdb/dist && sh s_all) (cd storage/bdb/dist && sh s_all)
(cd storage/innobase && aclocal && autoheader && aclocal && automake && autoconf) (cd storage/innobase && aclocal && autoheader && \
libtoolize --automake --force --copy && \
automake --force --add-missing --copy && autoconf)
aclocal aclocal
autoheader autoheader
libtoolize --automake --force --copy libtoolize --automake --force --copy
......
...@@ -412,7 +412,7 @@ show create table t1; ...@@ -412,7 +412,7 @@ show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c` char(10) CHARACTER SET utf8 DEFAULT NULL, `c` char(10) CHARACTER SET utf8 DEFAULT NULL,
UNIQUE KEY `a` USING HASH (`c`(1)) UNIQUE KEY `a` (`c`(1)) USING HASH
) ENGINE=MEMORY DEFAULT CHARSET=latin1 ) ENGINE=MEMORY DEFAULT CHARSET=latin1
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
insert into t1 values ('aa'); insert into t1 values ('aa');
...@@ -448,7 +448,7 @@ show create table t1; ...@@ -448,7 +448,7 @@ show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c` char(10) CHARACTER SET utf8 DEFAULT NULL, `c` char(10) CHARACTER SET utf8 DEFAULT NULL,
UNIQUE KEY `a` USING BTREE (`c`(1)) UNIQUE KEY `a` (`c`(1)) USING BTREE
) ENGINE=MEMORY DEFAULT CHARSET=latin1 ) ENGINE=MEMORY DEFAULT CHARSET=latin1
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
insert into t1 values ('aa'); insert into t1 values ('aa');
...@@ -570,7 +570,7 @@ show create table t1; ...@@ -570,7 +570,7 @@ show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c` char(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, `c` char(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
UNIQUE KEY `a` USING HASH (`c`(1)) UNIQUE KEY `a` (`c`(1)) USING HASH
) ENGINE=MEMORY DEFAULT CHARSET=latin1 ) ENGINE=MEMORY DEFAULT CHARSET=latin1
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
insert into t1 values ('aa'); insert into t1 values ('aa');
...@@ -606,7 +606,7 @@ show create table t1; ...@@ -606,7 +606,7 @@ show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c` char(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, `c` char(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
UNIQUE KEY `a` USING BTREE (`c`(1)) UNIQUE KEY `a` (`c`(1)) USING BTREE
) ENGINE=MEMORY DEFAULT CHARSET=latin1 ) ENGINE=MEMORY DEFAULT CHARSET=latin1
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
insert into t1 values ('aa'); insert into t1 values ('aa');
......
...@@ -533,3 +533,15 @@ select count(distinct concat(x,y)) from t1; ...@@ -533,3 +533,15 @@ select count(distinct concat(x,y)) from t1;
count(distinct concat(x,y)) count(distinct concat(x,y))
2 2
drop table t1; drop table t1;
CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a,b));
INSERT INTO t1 VALUES (1, 101);
INSERT INTO t1 SELECT a + 1, a + 101 FROM t1;
INSERT INTO t1 SELECT a + 2, a + 102 FROM t1;
INSERT INTO t1 SELECT a + 4, a + 104 FROM t1;
INSERT INTO t1 SELECT a + 8, a + 108 FROM t1;
EXPLAIN SELECT DISTINCT a,a FROM t1 WHERE b < 12 ORDER BY a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index NULL PRIMARY 8 NULL 16 Using where; Using index
SELECT DISTINCT a,a FROM t1 WHERE b < 12 ORDER BY a;
a a
DROP TABLE t1;
...@@ -2116,3 +2116,25 @@ COUNT(DISTINCT a) ...@@ -2116,3 +2116,25 @@ COUNT(DISTINCT a)
1 1
DROP TABLE t1; DROP TABLE t1;
DROP PROCEDURE a; DROP PROCEDURE a;
CREATE TABLE t1 (a varchar(64) NOT NULL default '', PRIMARY KEY(a));
INSERT INTO t1 (a) VALUES
(''), ('CENTRAL'), ('EASTERN'), ('GREATER LONDON'),
('NORTH CENTRAL'), ('NORTH EAST'), ('NORTH WEST'), ('SCOTLAND'),
('SOUTH EAST'), ('SOUTH WEST'), ('WESTERN');
EXPLAIN SELECT DISTINCT a,a FROM t1 ORDER BY a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 range NULL PRIMARY 66 NULL 12 Using index for group-by
SELECT DISTINCT a,a FROM t1 ORDER BY a;
a a
CENTRAL CENTRAL
EASTERN EASTERN
GREATER LONDON GREATER LONDON
NORTH CENTRAL NORTH CENTRAL
NORTH EAST NORTH EAST
NORTH WEST NORTH WEST
SCOTLAND SCOTLAND
SOUTH EAST SOUTH EAST
SOUTH WEST SOUTH WEST
WESTERN WESTERN
DROP TABLE t1;
...@@ -556,9 +556,9 @@ t1 CREATE TABLE `t1` ( ...@@ -556,9 +556,9 @@ t1 CREATE TABLE `t1` (
`v` varchar(10) DEFAULT NULL, `v` varchar(10) DEFAULT NULL,
`c` char(10) DEFAULT NULL, `c` char(10) DEFAULT NULL,
`t` varchar(50) DEFAULT NULL, `t` varchar(50) DEFAULT NULL,
KEY `v` USING BTREE (`v`), KEY `v` (`v`) USING BTREE,
KEY `c` USING BTREE (`c`), KEY `c` (`c`) USING BTREE,
KEY `t` USING BTREE (`t`(10)) KEY `t` (`t`(10)) USING BTREE
) ENGINE=MEMORY DEFAULT CHARSET=latin1 ) ENGINE=MEMORY DEFAULT CHARSET=latin1
select count(*) from t1; select count(*) from t1;
count(*) count(*)
......
...@@ -99,7 +99,7 @@ CREATE TABLE t2 ( ...@@ -99,7 +99,7 @@ CREATE TABLE t2 (
a int unsigned NOT NULL PRIMARY KEY, a int unsigned NOT NULL PRIMARY KEY,
b int unsigned not null, b int unsigned not null,
c int unsigned not null, c int unsigned not null,
UNIQUE USING HASH (b, c) UNIQUE (b, c) USING HASH
) engine=ndbcluster; ) engine=ndbcluster;
insert t2 values(1, 2, 3), (2, 3, 5), (3, 4, 6), (4, 5, 8), (5,6, 2), (6,7, 2); insert t2 values(1, 2, 3), (2, 3, 5), (3, 4, 6), (4, 5, 8), (5,6, 2), (6,7, 2);
select * from t2 where a = 3; select * from t2 where a = 3;
...@@ -142,14 +142,14 @@ CREATE TABLE t2 ( ...@@ -142,14 +142,14 @@ CREATE TABLE t2 (
a int unsigned NOT NULL PRIMARY KEY, a int unsigned NOT NULL PRIMARY KEY,
b int unsigned not null, b int unsigned not null,
c int unsigned, c int unsigned,
UNIQUE USING HASH (b, c) UNIQUE (b, c) USING HASH
) engine=ndbcluster; ) engine=ndbcluster;
ERROR 42000: Column 'c' is used with UNIQUE or INDEX but is not defined as NOT NULL ERROR 42000: Column 'c' is used with UNIQUE or INDEX but is not defined as NOT NULL
CREATE TABLE t3 ( CREATE TABLE t3 (
a int unsigned NOT NULL, a int unsigned NOT NULL,
b int unsigned not null, b int unsigned not null,
c int unsigned, c int unsigned,
PRIMARY KEY USING HASH (a, b) PRIMARY KEY (a, b) USING HASH
) engine=ndbcluster; ) engine=ndbcluster;
insert t3 values(1, 2, 3), (2, 3, 5), (3, 4, 6), (4, 5, 8), (5,6, 2), (6,7, 2); insert t3 values(1, 2, 3), (2, 3, 5), (3, 4, 6), (4, 5, 8), (5,6, 2), (6,7, 2);
select * from t3 where a = 3; select * from t3 where a = 3;
......
...@@ -40,7 +40,7 @@ a b c ...@@ -40,7 +40,7 @@ a b c
1 12 3 1 12 3
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1 (a INT, b CHAR(10) COLLATE latin1_bin, c INT, d INT, CREATE TABLE t1 (a INT, b CHAR(10) COLLATE latin1_bin, c INT, d INT,
PRIMARY KEY USING HASH (a,b,c)) PRIMARY KEY (a,b,c) USING HASH)
ENGINE=NDB ENGINE=NDB
DEFAULT CHARSET=latin1 DEFAULT CHARSET=latin1
PARTITION BY KEY (b); PARTITION BY KEY (b);
...@@ -77,7 +77,7 @@ t1 CREATE TABLE `t1` ( ...@@ -77,7 +77,7 @@ t1 CREATE TABLE `t1` (
`b` char(10) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '', `b` char(10) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
`c` int(11) NOT NULL DEFAULT '0', `c` int(11) NOT NULL DEFAULT '0',
`d` int(11) DEFAULT NULL, `d` int(11) DEFAULT NULL,
PRIMARY KEY USING HASH (`a`,`b`,`c`) PRIMARY KEY (`a`,`b`,`c`) USING HASH
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY (b) ) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY (b)
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1 (a int not null primary key) CREATE TABLE t1 (a int not null primary key)
......
...@@ -460,7 +460,7 @@ SHOW CREATE TABLE t1; ...@@ -460,7 +460,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`i` int(11) DEFAULT NULL, `i` int(11) DEFAULT NULL,
KEY `i` USING HASH (`i`) KEY `i` (`i`) USING HASH
) ENGINE=MEMORY DEFAULT CHARSET=latin1 ) ENGINE=MEMORY DEFAULT CHARSET=latin1
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1 (i int, KEY USING BTREE (i)) ENGINE=MEMORY; CREATE TABLE t1 (i int, KEY USING BTREE (i)) ENGINE=MEMORY;
...@@ -468,7 +468,7 @@ SHOW CREATE TABLE t1; ...@@ -468,7 +468,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`i` int(11) DEFAULT NULL, `i` int(11) DEFAULT NULL,
KEY `i` USING BTREE (`i`) KEY `i` (`i`) USING BTREE
) ENGINE=MEMORY DEFAULT CHARSET=latin1 ) ENGINE=MEMORY DEFAULT CHARSET=latin1
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1 (i int, KEY (i)) ENGINE=MyISAM; CREATE TABLE t1 (i int, KEY (i)) ENGINE=MyISAM;
...@@ -484,7 +484,7 @@ SHOW CREATE TABLE t1; ...@@ -484,7 +484,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`i` int(11) DEFAULT NULL, `i` int(11) DEFAULT NULL,
KEY `i` USING BTREE (`i`) KEY `i` (`i`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1 (i int, KEY (i)) ENGINE=MyISAM; CREATE TABLE t1 (i int, KEY (i)) ENGINE=MyISAM;
...@@ -507,14 +507,14 @@ SHOW CREATE TABLE t1; ...@@ -507,14 +507,14 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`i` int(11) DEFAULT NULL, `i` int(11) DEFAULT NULL,
KEY `i` USING BTREE (`i`) KEY `i` (`i`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
ALTER TABLE t1 ENGINE=MEMORY; ALTER TABLE t1 ENGINE=MEMORY;
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`i` int(11) DEFAULT NULL, `i` int(11) DEFAULT NULL,
KEY `i` USING BTREE (`i`) KEY `i` (`i`) USING BTREE
) ENGINE=MEMORY DEFAULT CHARSET=latin1 ) ENGINE=MEMORY DEFAULT CHARSET=latin1
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1( CREATE TABLE t1(
...@@ -549,8 +549,8 @@ Table Create Table ...@@ -549,8 +549,8 @@ Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL, `c1` int(11) NOT NULL,
`c2` int(11) NOT NULL, `c2` int(11) NOT NULL,
PRIMARY KEY USING HASH (`c1`), PRIMARY KEY (`c1`) USING HASH,
KEY `c2` USING BTREE (`c2`) KEY `c2` (`c2`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1; DROP TABLE t1;
flush tables; flush tables;
......
...@@ -18,7 +18,7 @@ t1 CREATE TABLE `t1` ( ...@@ -18,7 +18,7 @@ t1 CREATE TABLE `t1` (
`pseudo` varchar(35) CHARACTER SET latin2 NOT NULL DEFAULT '', `pseudo` varchar(35) CHARACTER SET latin2 NOT NULL DEFAULT '',
`email` varchar(60) CHARACTER SET latin2 NOT NULL DEFAULT '', `email` varchar(60) CHARACTER SET latin2 NOT NULL DEFAULT '',
PRIMARY KEY (`a`), PRIMARY KEY (`a`),
UNIQUE KEY `email` USING BTREE (`email`) UNIQUE KEY `email` (`email`) USING BTREE
) ENGINE=MEMORY DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC ) ENGINE=MEMORY DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
set @@sql_mode="ansi_quotes"; set @@sql_mode="ansi_quotes";
show variables like 'sql_mode'; show variables like 'sql_mode';
...@@ -31,7 +31,7 @@ t1 CREATE TABLE "t1" ( ...@@ -31,7 +31,7 @@ t1 CREATE TABLE "t1" (
"pseudo" varchar(35) CHARACTER SET latin2 NOT NULL DEFAULT '', "pseudo" varchar(35) CHARACTER SET latin2 NOT NULL DEFAULT '',
"email" varchar(60) CHARACTER SET latin2 NOT NULL DEFAULT '', "email" varchar(60) CHARACTER SET latin2 NOT NULL DEFAULT '',
PRIMARY KEY ("a"), PRIMARY KEY ("a"),
UNIQUE KEY "email" USING BTREE ("email") UNIQUE KEY "email" ("email") USING BTREE
) ENGINE=MEMORY DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC ) ENGINE=MEMORY DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
set @@sql_mode="no_table_options"; set @@sql_mode="no_table_options";
show variables like 'sql_mode'; show variables like 'sql_mode';
...@@ -44,7 +44,7 @@ t1 CREATE TABLE `t1` ( ...@@ -44,7 +44,7 @@ t1 CREATE TABLE `t1` (
`pseudo` varchar(35) CHARACTER SET latin2 NOT NULL DEFAULT '', `pseudo` varchar(35) CHARACTER SET latin2 NOT NULL DEFAULT '',
`email` varchar(60) CHARACTER SET latin2 NOT NULL DEFAULT '', `email` varchar(60) CHARACTER SET latin2 NOT NULL DEFAULT '',
PRIMARY KEY (`a`), PRIMARY KEY (`a`),
UNIQUE KEY `email` USING BTREE (`email`) UNIQUE KEY `email` (`email`) USING BTREE
) )
set @@sql_mode="no_key_options"; set @@sql_mode="no_key_options";
show variables like 'sql_mode'; show variables like 'sql_mode';
......
...@@ -382,3 +382,19 @@ INSERT INTO t1 VALUES ...@@ -382,3 +382,19 @@ INSERT INTO t1 VALUES
select count(distinct x,y) from t1; select count(distinct x,y) from t1;
select count(distinct concat(x,y)) from t1; select count(distinct concat(x,y)) from t1;
drop table t1; drop table t1;
#
# Bug #18068: SELECT DISTINCT
#
CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a,b));
INSERT INTO t1 VALUES (1, 101);
INSERT INTO t1 SELECT a + 1, a + 101 FROM t1;
INSERT INTO t1 SELECT a + 2, a + 102 FROM t1;
INSERT INTO t1 SELECT a + 4, a + 104 FROM t1;
INSERT INTO t1 SELECT a + 8, a + 108 FROM t1;
EXPLAIN SELECT DISTINCT a,a FROM t1 WHERE b < 12 ORDER BY a;
SELECT DISTINCT a,a FROM t1 WHERE b < 12 ORDER BY a;
DROP TABLE t1;
...@@ -782,3 +782,19 @@ SELECT COUNT(DISTINCT a) FROM t1 WHERE a=0; ...@@ -782,3 +782,19 @@ SELECT COUNT(DISTINCT a) FROM t1 WHERE a=0;
DROP TABLE t1; DROP TABLE t1;
DROP PROCEDURE a; DROP PROCEDURE a;
#
# Bug #18068: SELECT DISTINCT
#
CREATE TABLE t1 (a varchar(64) NOT NULL default '', PRIMARY KEY(a));
INSERT INTO t1 (a) VALUES
(''), ('CENTRAL'), ('EASTERN'), ('GREATER LONDON'),
('NORTH CENTRAL'), ('NORTH EAST'), ('NORTH WEST'), ('SCOTLAND'),
('SOUTH EAST'), ('SOUTH WEST'), ('WESTERN');
EXPLAIN SELECT DISTINCT a,a FROM t1 ORDER BY a;
SELECT DISTINCT a,a FROM t1 ORDER BY a;
DROP TABLE t1;
...@@ -72,7 +72,7 @@ CREATE TABLE t2 ( ...@@ -72,7 +72,7 @@ CREATE TABLE t2 (
a int unsigned NOT NULL PRIMARY KEY, a int unsigned NOT NULL PRIMARY KEY,
b int unsigned not null, b int unsigned not null,
c int unsigned not null, c int unsigned not null,
UNIQUE USING HASH (b, c) UNIQUE (b, c) USING HASH
) engine=ndbcluster; ) engine=ndbcluster;
insert t2 values(1, 2, 3), (2, 3, 5), (3, 4, 6), (4, 5, 8), (5,6, 2), (6,7, 2); insert t2 values(1, 2, 3), (2, 3, 5), (3, 4, 6), (4, 5, 8), (5,6, 2), (6,7, 2);
...@@ -96,7 +96,7 @@ CREATE TABLE t2 ( ...@@ -96,7 +96,7 @@ CREATE TABLE t2 (
a int unsigned NOT NULL PRIMARY KEY, a int unsigned NOT NULL PRIMARY KEY,
b int unsigned not null, b int unsigned not null,
c int unsigned, c int unsigned,
UNIQUE USING HASH (b, c) UNIQUE (b, c) USING HASH
) engine=ndbcluster; ) engine=ndbcluster;
# #
...@@ -107,7 +107,7 @@ CREATE TABLE t3 ( ...@@ -107,7 +107,7 @@ CREATE TABLE t3 (
a int unsigned NOT NULL, a int unsigned NOT NULL,
b int unsigned not null, b int unsigned not null,
c int unsigned, c int unsigned,
PRIMARY KEY USING HASH (a, b) PRIMARY KEY (a, b) USING HASH
) engine=ndbcluster; ) engine=ndbcluster;
insert t3 values(1, 2, 3), (2, 3, 5), (3, 4, 6), (4, 5, 8), (5,6, 2), (6,7, 2); insert t3 values(1, 2, 3), (2, 3, 5), (3, 4, 6), (4, 5, 8), (5,6, 2), (6,7, 2);
......
...@@ -45,7 +45,7 @@ DROP TABLE t1; ...@@ -45,7 +45,7 @@ DROP TABLE t1;
# #
CREATE TABLE t1 (a INT, b CHAR(10) COLLATE latin1_bin, c INT, d INT, CREATE TABLE t1 (a INT, b CHAR(10) COLLATE latin1_bin, c INT, d INT,
PRIMARY KEY USING HASH (a,b,c)) PRIMARY KEY (a,b,c) USING HASH)
ENGINE=NDB ENGINE=NDB
DEFAULT CHARSET=latin1 DEFAULT CHARSET=latin1
PARTITION BY KEY (b); PARTITION BY KEY (b);
......
...@@ -12803,6 +12803,17 @@ create_distinct_group(THD *thd, Item **ref_pointer_array, ...@@ -12803,6 +12803,17 @@ create_distinct_group(THD *thd, Item **ref_pointer_array,
{ {
if (!item->const_item() && !item->with_sum_func && !item->marker) if (!item->const_item() && !item->with_sum_func && !item->marker)
{ {
/*
Don't put duplicate columns from the SELECT list into the
GROUP BY list.
*/
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;
ORDER *ord=(ORDER*) thd->calloc(sizeof(ORDER)); ORDER *ord=(ORDER*) thd->calloc(sizeof(ORDER));
if (!ord) if (!ord)
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment