Commit 682baee2 authored by unknown's avatar unknown

Merge new tests


mysql-test/r/join_outer.result:
  Update results
mysql-test/t/join_outer.test:
  Merge
parents 52781a48 a728ad71
...@@ -864,3 +864,22 @@ a b a b ...@@ -864,3 +864,22 @@ a b a b
3 1 NULL NULL 3 1 NULL NULL
4 2 NULL NULL 4 2 NULL NULL
DROP TABLE t1,t2; DROP TABLE t1,t2;
set group_concat_max_len=5;
create table t1 (a int, b varchar(20));
create table t2 (a int, c varchar(20));
insert into t1 values (1,"aaaaaaaaaa"),(2,"bbbbbbbbbb");
insert into t2 values (1,"cccccccccc"),(2,"dddddddddd");
select group_concat(t1.b,t2.c) from t1 left join t2 using(a) group by t1.a;
group_concat(t1.b,t2.c)
aaaaa
bbbbb
Warnings:
Warning 1260 2 line(s) were cut by GROUP_CONCAT()
select group_concat(t1.b,t2.c) from t1 inner join t2 using(a) group by t1.a;
group_concat(t1.b,t2.c)
aaaaa
bbbbb
Warnings:
Warning 1260 2 line(s) were cut by GROUP_CONCAT()
drop table t1, t2;
set group_concat_max_len=default;
...@@ -614,4 +614,13 @@ SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a WHERE not(0+(t1.a=30 and t2.b=1)); ...@@ -614,4 +614,13 @@ SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a WHERE not(0+(t1.a=30 and t2.b=1));
DROP TABLE t1,t2; DROP TABLE t1,t2;
# Bug #8681: Bad warning message when group_concat() exceeds max length
set group_concat_max_len=5;
create table t1 (a int, b varchar(20));
create table t2 (a int, c varchar(20));
insert into t1 values (1,"aaaaaaaaaa"),(2,"bbbbbbbbbb");
insert into t2 values (1,"cccccccccc"),(2,"dddddddddd");
select group_concat(t1.b,t2.c) from t1 left join t2 using(a) group by t1.a;
select group_concat(t1.b,t2.c) from t1 inner join t2 using(a) group by t1.a;
drop table t1, t2;
set group_concat_max_len=default;
...@@ -1787,16 +1787,26 @@ Item_func_group_concat::Item_func_group_concat(THD *thd, ...@@ -1787,16 +1787,26 @@ Item_func_group_concat::Item_func_group_concat(THD *thd,
void Item_func_group_concat::cleanup() void Item_func_group_concat::cleanup()
{ {
THD *thd= current_thd;
DBUG_ENTER("Item_func_group_concat::cleanup"); DBUG_ENTER("Item_func_group_concat::cleanup");
Item_sum::cleanup(); Item_sum::cleanup();
/* Adjust warning message to include total number of cut values */
if (warning)
{
char warn_buff[MYSQL_ERRMSG_SIZE];
sprintf(warn_buff, ER(ER_CUT_VALUE_GROUP_CONCAT), count_cut_values);
warning->set_msg(thd, warn_buff);
warning= 0;
}
/* /*
Free table and tree if they belong to this item (if item have not pointer Free table and tree if they belong to this item (if item have not pointer
to original item from which was made copy => it own its objects ) to original item from which was made copy => it own its objects )
*/ */
if (!original) if (!original)
{ {
THD *thd= current_thd;
if (table) if (table)
{ {
free_tmp_table(thd, table); free_tmp_table(thd, table);
...@@ -1809,13 +1819,6 @@ void Item_func_group_concat::cleanup() ...@@ -1809,13 +1819,6 @@ void Item_func_group_concat::cleanup()
tree_mode= 0; tree_mode= 0;
delete_tree(tree); delete_tree(tree);
} }
if (warning)
{
char warn_buff[MYSQL_ERRMSG_SIZE];
sprintf(warn_buff, ER(ER_CUT_VALUE_GROUP_CONCAT), count_cut_values);
warning->set_msg(thd, warn_buff);
warning= 0;
}
} }
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }
...@@ -2076,6 +2079,10 @@ String* Item_func_group_concat::val_str(String* str) ...@@ -2076,6 +2079,10 @@ String* Item_func_group_concat::val_str(String* str)
if (null_value) if (null_value)
return 0; return 0;
if (count_cut_values && !warning) if (count_cut_values && !warning)
/*
ER_CUT_VALUE_GROUP_CONCAT needs an argument, but this gets set in
Item_func_group_concat::cleanup().
*/
warning= push_warning(item_thd, MYSQL_ERROR::WARN_LEVEL_WARN, warning= push_warning(item_thd, MYSQL_ERROR::WARN_LEVEL_WARN,
ER_CUT_VALUE_GROUP_CONCAT, ER_CUT_VALUE_GROUP_CONCAT,
ER(ER_CUT_VALUE_GROUP_CONCAT)); ER(ER_CUT_VALUE_GROUP_CONCAT));
......
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