Loading client/mysql.cc +4 −1 Original line number Diff line number Diff line Loading @@ -3083,7 +3083,10 @@ com_connect(String *buffer, char *line) Two null bytes are needed in the end of buff to allow get_arg to find end of string the second time it's called. */ strmake(buff, line, sizeof(buff)-2); tmp= strmake(buff, line, sizeof(buff)-2); #ifdef EXTRA_DEBUG tmp[1]= 0; #endif tmp= get_arg(buff, 0); if (tmp && *tmp) { Loading client/mysqltest.c +2 −2 Original line number Diff line number Diff line Loading @@ -3592,7 +3592,7 @@ void do_get_file_name(struct st_command *command, if (*p) *p++= 0; command->last_argument= p; strmake(dest, name, dest_max_len); strmake(dest, name, dest_max_len - 1); } Loading Loading @@ -6908,7 +6908,7 @@ int main(int argc, char **argv) if (save_file[0]) { strmake(command->require_file, save_file, sizeof(save_file)); strmake(command->require_file, save_file, sizeof(save_file) - 1); save_file[0]= 0; } run_query(cur_con, command, flags); Loading mysql-test/r/func_gconcat.result +62 −1 Original line number Diff line number Diff line Loading @@ -271,7 +271,7 @@ group_concat(distinct s1 order by s2) c,b,a select group_concat(distinct s1 order by s2) from t1; group_concat(distinct s1 order by s2) c,b,a,c c,b,a drop table t1; create table t1 (a int, c int); insert into t1 values (1, 2), (2, 3), (2, 4), (3, 5); Loading Loading @@ -870,4 +870,65 @@ select group_concat(f1) from t1; group_concat(f1) , drop table t1; CREATE TABLE t1 (a INT, b INT); INSERT INTO t1 VALUES (1, 1), (2, 2), (2, 3); SELECT GROUP_CONCAT(DISTINCT a ORDER BY b) FROM t1; GROUP_CONCAT(DISTINCT a ORDER BY b) 1,2 SELECT GROUP_CONCAT(DISTINCT a ORDER BY b DESC) FROM t1; GROUP_CONCAT(DISTINCT a ORDER BY b DESC) 2,1 SELECT GROUP_CONCAT(DISTINCT a) FROM t1; GROUP_CONCAT(DISTINCT a) 1,2 SELECT GROUP_CONCAT(DISTINCT a + 1 ORDER BY 3 - b) FROM t1; GROUP_CONCAT(DISTINCT a + 1 ORDER BY 3 - b) 3,2 SELECT GROUP_CONCAT(DISTINCT a + 1 ORDER BY b) FROM t1; GROUP_CONCAT(DISTINCT a + 1 ORDER BY b) 2,3 SELECT GROUP_CONCAT(a ORDER BY 3 - b) FROM t1; GROUP_CONCAT(a ORDER BY 3 - b) 2,2,1 CREATE TABLE t2 (a INT, b INT, c INT, d INT); INSERT INTO t2 VALUES (1,1, 1,1), (1,1, 2,2), (1,2, 2,1), (2,1, 1,2); SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY c, d) FROM t2; GROUP_CONCAT(DISTINCT a, b ORDER BY c, d) 11,21,12 SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY d, c) FROM t2; GROUP_CONCAT(DISTINCT a, b ORDER BY d, c) 11,12,21 CREATE TABLE t3 (a INT, b INT, c INT); INSERT INTO t3 VALUES (1, 1, 1), (2, 1, 2), (3, 2, 1); SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY b, c) FROM t3; GROUP_CONCAT(DISTINCT a, b ORDER BY b, c) 11,21,32 SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY c, b) FROM t3; GROUP_CONCAT(DISTINCT a, b ORDER BY c, b) 11,32,21 SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY a, b) FROM t1; GROUP_CONCAT(DISTINCT a, b ORDER BY a, b) 11,22,23 SELECT GROUP_CONCAT(DISTINCT b, a ORDER BY a, b) FROM t1; GROUP_CONCAT(DISTINCT b, a ORDER BY a, b) 11,22,32 SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY b, a) FROM t1; GROUP_CONCAT(DISTINCT a, b ORDER BY b, a) 11,22,23 SELECT GROUP_CONCAT(DISTINCT b, a ORDER BY a, b) FROM t1; GROUP_CONCAT(DISTINCT b, a ORDER BY a, b) 11,22,32 SELECT GROUP_CONCAT(DISTINCT a ORDER BY a, b) FROM t1; GROUP_CONCAT(DISTINCT a ORDER BY a, b) 1,2 SELECT GROUP_CONCAT(DISTINCT b ORDER BY b, a) FROM t1; GROUP_CONCAT(DISTINCT b ORDER BY b, a) 1,2,3 SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY a) FROM t1; GROUP_CONCAT(DISTINCT a, b ORDER BY a) 11,23,22 SELECT GROUP_CONCAT(DISTINCT b, a ORDER BY b) FROM t1; GROUP_CONCAT(DISTINCT b, a ORDER BY b) 11,22,32 DROP TABLE t1, t2, t3; End of 5.0 tests mysql-test/r/func_group.result +12 −0 Original line number Diff line number Diff line Loading @@ -1407,4 +1407,16 @@ SELECT COUNT(*), a FROM t1; COUNT(*) a 4 1 DROP TABLE t1; set SQL_MODE=ONLY_FULL_GROUP_BY; CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (1),(2),(3),(4); CREATE VIEW v1 AS SELECT a,(a + 1) AS y FROM t1; EXPLAIN EXTENDED SELECT y FROM v1 GROUP BY v1.y; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using temporary; Using filesort Warnings: Note 1003 select (`test`.`t1`.`a` + 1) AS `y` from `test`.`t1` group by (`test`.`t1`.`a` + 1) DROP VIEW v1; DROP TABLE t1; SET SQL_MODE=DEFAULT; End of 5.0 tests mysql-test/r/func_time.result +3 −0 Original line number Diff line number Diff line Loading @@ -1282,4 +1282,7 @@ DATE_ADD('20071108', INTERVAL 1 DAY) select DATE_ADD(20071108, INTERVAL 1 DAY); DATE_ADD(20071108, INTERVAL 1 DAY) 2007-11-09 select LAST_DAY('2007-12-06 08:59:19.05') - INTERVAL 1 SECOND; LAST_DAY('2007-12-06 08:59:19.05') - INTERVAL 1 SECOND 2007-12-30 23:59:59 End of 5.0 tests Loading
client/mysql.cc +4 −1 Original line number Diff line number Diff line Loading @@ -3083,7 +3083,10 @@ com_connect(String *buffer, char *line) Two null bytes are needed in the end of buff to allow get_arg to find end of string the second time it's called. */ strmake(buff, line, sizeof(buff)-2); tmp= strmake(buff, line, sizeof(buff)-2); #ifdef EXTRA_DEBUG tmp[1]= 0; #endif tmp= get_arg(buff, 0); if (tmp && *tmp) { Loading
client/mysqltest.c +2 −2 Original line number Diff line number Diff line Loading @@ -3592,7 +3592,7 @@ void do_get_file_name(struct st_command *command, if (*p) *p++= 0; command->last_argument= p; strmake(dest, name, dest_max_len); strmake(dest, name, dest_max_len - 1); } Loading Loading @@ -6908,7 +6908,7 @@ int main(int argc, char **argv) if (save_file[0]) { strmake(command->require_file, save_file, sizeof(save_file)); strmake(command->require_file, save_file, sizeof(save_file) - 1); save_file[0]= 0; } run_query(cur_con, command, flags); Loading
mysql-test/r/func_gconcat.result +62 −1 Original line number Diff line number Diff line Loading @@ -271,7 +271,7 @@ group_concat(distinct s1 order by s2) c,b,a select group_concat(distinct s1 order by s2) from t1; group_concat(distinct s1 order by s2) c,b,a,c c,b,a drop table t1; create table t1 (a int, c int); insert into t1 values (1, 2), (2, 3), (2, 4), (3, 5); Loading Loading @@ -870,4 +870,65 @@ select group_concat(f1) from t1; group_concat(f1) , drop table t1; CREATE TABLE t1 (a INT, b INT); INSERT INTO t1 VALUES (1, 1), (2, 2), (2, 3); SELECT GROUP_CONCAT(DISTINCT a ORDER BY b) FROM t1; GROUP_CONCAT(DISTINCT a ORDER BY b) 1,2 SELECT GROUP_CONCAT(DISTINCT a ORDER BY b DESC) FROM t1; GROUP_CONCAT(DISTINCT a ORDER BY b DESC) 2,1 SELECT GROUP_CONCAT(DISTINCT a) FROM t1; GROUP_CONCAT(DISTINCT a) 1,2 SELECT GROUP_CONCAT(DISTINCT a + 1 ORDER BY 3 - b) FROM t1; GROUP_CONCAT(DISTINCT a + 1 ORDER BY 3 - b) 3,2 SELECT GROUP_CONCAT(DISTINCT a + 1 ORDER BY b) FROM t1; GROUP_CONCAT(DISTINCT a + 1 ORDER BY b) 2,3 SELECT GROUP_CONCAT(a ORDER BY 3 - b) FROM t1; GROUP_CONCAT(a ORDER BY 3 - b) 2,2,1 CREATE TABLE t2 (a INT, b INT, c INT, d INT); INSERT INTO t2 VALUES (1,1, 1,1), (1,1, 2,2), (1,2, 2,1), (2,1, 1,2); SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY c, d) FROM t2; GROUP_CONCAT(DISTINCT a, b ORDER BY c, d) 11,21,12 SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY d, c) FROM t2; GROUP_CONCAT(DISTINCT a, b ORDER BY d, c) 11,12,21 CREATE TABLE t3 (a INT, b INT, c INT); INSERT INTO t3 VALUES (1, 1, 1), (2, 1, 2), (3, 2, 1); SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY b, c) FROM t3; GROUP_CONCAT(DISTINCT a, b ORDER BY b, c) 11,21,32 SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY c, b) FROM t3; GROUP_CONCAT(DISTINCT a, b ORDER BY c, b) 11,32,21 SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY a, b) FROM t1; GROUP_CONCAT(DISTINCT a, b ORDER BY a, b) 11,22,23 SELECT GROUP_CONCAT(DISTINCT b, a ORDER BY a, b) FROM t1; GROUP_CONCAT(DISTINCT b, a ORDER BY a, b) 11,22,32 SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY b, a) FROM t1; GROUP_CONCAT(DISTINCT a, b ORDER BY b, a) 11,22,23 SELECT GROUP_CONCAT(DISTINCT b, a ORDER BY a, b) FROM t1; GROUP_CONCAT(DISTINCT b, a ORDER BY a, b) 11,22,32 SELECT GROUP_CONCAT(DISTINCT a ORDER BY a, b) FROM t1; GROUP_CONCAT(DISTINCT a ORDER BY a, b) 1,2 SELECT GROUP_CONCAT(DISTINCT b ORDER BY b, a) FROM t1; GROUP_CONCAT(DISTINCT b ORDER BY b, a) 1,2,3 SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY a) FROM t1; GROUP_CONCAT(DISTINCT a, b ORDER BY a) 11,23,22 SELECT GROUP_CONCAT(DISTINCT b, a ORDER BY b) FROM t1; GROUP_CONCAT(DISTINCT b, a ORDER BY b) 11,22,32 DROP TABLE t1, t2, t3; End of 5.0 tests
mysql-test/r/func_group.result +12 −0 Original line number Diff line number Diff line Loading @@ -1407,4 +1407,16 @@ SELECT COUNT(*), a FROM t1; COUNT(*) a 4 1 DROP TABLE t1; set SQL_MODE=ONLY_FULL_GROUP_BY; CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (1),(2),(3),(4); CREATE VIEW v1 AS SELECT a,(a + 1) AS y FROM t1; EXPLAIN EXTENDED SELECT y FROM v1 GROUP BY v1.y; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using temporary; Using filesort Warnings: Note 1003 select (`test`.`t1`.`a` + 1) AS `y` from `test`.`t1` group by (`test`.`t1`.`a` + 1) DROP VIEW v1; DROP TABLE t1; SET SQL_MODE=DEFAULT; End of 5.0 tests
mysql-test/r/func_time.result +3 −0 Original line number Diff line number Diff line Loading @@ -1282,4 +1282,7 @@ DATE_ADD('20071108', INTERVAL 1 DAY) select DATE_ADD(20071108, INTERVAL 1 DAY); DATE_ADD(20071108, INTERVAL 1 DAY) 2007-11-09 select LAST_DAY('2007-12-06 08:59:19.05') - INTERVAL 1 SECOND; LAST_DAY('2007-12-06 08:59:19.05') - INTERVAL 1 SECOND 2007-12-30 23:59:59 End of 5.0 tests