Commit b943d8cf authored by gluh@mysql.com/eagle.(none)'s avatar gluh@mysql.com/eagle.(none)
Browse files

Bug#30897 GROUP_CONCAT returns extra comma on empty fields

The fix is a copy of Martin Friebe's suggestion.
added testing for no_appended which will be false if anything,
including the empty string is in result
parent 7f945b2a
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -861,4 +861,13 @@ select group_concat(distinct a, c order by a desc, c desc) from t1;
group_concat(distinct a, c order by a desc, c desc)
31,11,10,01,00
drop table t1;
create table t1 (f1 char(20));
insert into t1 values (''),('');
select group_concat(distinct f1) from t1;
group_concat(distinct f1)

select group_concat(f1) from t1;
group_concat(f1)
,
drop table t1;
End of 5.0 tests
+9 −0
Original line number Diff line number Diff line
@@ -590,4 +590,13 @@ select group_concat(distinct a, c order by a desc, c desc) from t1;
drop table t1;


#
# Bug#30897 GROUP_CONCAT returns extra comma on empty fields
#
create table t1 (f1 char(20));
insert into t1 values (''),('');
select group_concat(distinct f1) from t1;
select group_concat(f1) from t1;
drop table t1;

--echo End of 5.0 tests
+1 −1
Original line number Diff line number Diff line
@@ -3406,7 +3406,7 @@ String* Item_func_group_concat::val_str(String* str)
  DBUG_ASSERT(fixed == 1);
  if (null_value)
    return 0;
  if (!result.length() && tree)
  if (no_appended && tree)
    /* Tree is used for sorting as in ORDER BY */
    tree_walk(tree, (tree_walk_action)&dump_leaf_key, (void*)this,
              left_root_right);