From 7d0ae74508071ac75ce54c789d2c0a65e2db0792 Mon Sep 17 00:00:00 2001 From: Davi Arnaut Date: Tue, 10 Nov 2009 16:26:39 -0200 Subject: [PATCH] Backport of Bug#36785 to mysql-next-mr ------------------------------------------------------------ revno: 2630.2.13 revision-id: davi@mysql.com-20080612190452-cx6h7rm557bcq7sa parent: davi@mysql.com-20080611124915-csejwrxfdga9upho committer: Davi Arnaut branch nick: 36785-6.0 timestamp: Thu 2008-06-12 16:04:52 -0300 message: Bug#36785: Wrong error message when group_concat() exceeds max length The problem is that when ER_CUT_VALUE_GROUP_CONCAT is elevated to a error, the message does not get updated with the number of cut lines when group_concat() exceeds max length. The solution is to modify the warning message to be more meaningful by giving the number of the line that was cut and to issue the warning for each line that is cut. This approach is inline with how other per-row truncated data warnings are issued avoids violating the warning internal interface. --- .../suite/sys_vars/r/group_concat_max_len_func.result | 11 ++++++++--- sql/share/errmsg.txt | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/mysql-test/suite/sys_vars/r/group_concat_max_len_func.result b/mysql-test/suite/sys_vars/r/group_concat_max_len_func.result index 52d67b8d274..f04dfee583d 100644 --- a/mysql-test/suite/sys_vars/r/group_concat_max_len_func.result +++ b/mysql-test/suite/sys_vars/r/group_concat_max_len_func.result @@ -41,7 +41,10 @@ id rollno GROUP_CONCAT(name) 4 3 Reco 7 4 Reco Warnings: -Warning 1260 4 line(s) were cut by GROUP_CONCAT() +Warning 1260 Row 1 was cut by GROUP_CONCAT() +Warning 1260 Row 2 was cut by GROUP_CONCAT() +Warning 1260 Row 3 was cut by GROUP_CONCAT() +Warning 1260 Row 4 was cut by GROUP_CONCAT() ## Changing session value of variable and verifying its behavior, ## ## warning should come here ## SET @@session.group_concat_max_len = 10; @@ -52,7 +55,9 @@ id rollno GROUP_CONCAT(name) 4 3 Record_4,R 7 4 Record_7,R Warnings: -Warning 1260 3 line(s) were cut by GROUP_CONCAT() +Warning 1260 Row 2 was cut by GROUP_CONCAT() +Warning 1260 Row 5 was cut by GROUP_CONCAT() +Warning 1260 Row 7 was cut by GROUP_CONCAT() '#--------------------FN_DYNVARS_034_03-------------------------#' ## Connecting with new connection test_con2 ## ## Verifying initial value of variable. It should be 4 ## @@ -71,7 +76,7 @@ id rollno GROUP_CONCAT(name) 4 3 Record_4,Record_6 7 4 Record_7,Record_8 Warnings: -Warning 1260 1 line(s) were cut by GROUP_CONCAT() +Warning 1260 Row 3 was cut by GROUP_CONCAT() '#--------------------FN_DYNVARS_034_04-------------------------#' ## Setting session value of variable to 26. No warning should appear here ## ## because the value after concatination is less than 30 ## diff --git a/sql/share/errmsg.txt b/sql/share/errmsg.txt index 317087854c1..cdda89413f1 100644 --- a/sql/share/errmsg.txt +++ b/sql/share/errmsg.txt @@ -4880,6 +4880,7 @@ ER_ZLIB_Z_DATA_ERROR spa "ZLIB: Dato de entrada fué corrompido para zlib" ER_CUT_VALUE_GROUP_CONCAT eng "Row %u was cut by GROUP_CONCAT()" + por "Linha %u foi cortada por GROUP_CONCAT()" ER_WARN_TOO_FEW_RECORDS 01000 eng "Row %ld doesn't contain data for all columns" ger "Zeile %ld enthält nicht für alle Felder Daten"