Commit 3da7ffe6 authored by Matthias Leich's avatar Matthias Leich
Browse files

Fix for Bug#40644 main.group_concat_max_len_func random failures

+ minor improvements
parent 15d03999
Loading
Loading
Loading
Loading
+42 −32
Original line number Diff line number Diff line
SET @save = @@global.group_concat_max_len;
drop table if exists t1;
DROP TABLE IF EXISTS t1;
## Creating new table t1 ##
CREATE TABLE t1
(
id INT NOT NULL auto_increment,
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
rollno int NOT NULL,
rollno INT NOT NULL,
name VARCHAR(30)
);
'#--------------------FN_DYNVARS_034_01-------------------------#'
## Setting initial value of variable to 4 ##
SET @@global.group_concat_max_len = 4;
## Inserting some rows in table ##
INSERT into t1(rollno, name) values(1, 'Record_1');
INSERT into t1(rollno, name) values(2, 'Record_2');
INSERT into t1(rollno, name) values(1, 'Record_3');
INSERT into t1(rollno, name) values(3, 'Record_4');
INSERT into t1(rollno, name) values(1, 'Record_5');
INSERT into t1(rollno, name) values(3, 'Record_6');
INSERT into t1(rollno, name) values(4, 'Record_7');
INSERT into t1(rollno, name) values(4, 'Record_8');
INSERT INTO t1(rollno, name) VALUES(1, 'Record_1');
INSERT INTO t1(rollno, name) VALUES(2, 'Record_2');
INSERT INTO t1(rollno, name) VALUES(1, 'Record_3');
INSERT INTO t1(rollno, name) VALUES(3, 'Record_4');
INSERT INTO t1(rollno, name) VALUES(1, 'Record_5');
INSERT INTO t1(rollno, name) VALUES(3, 'Record_6');
INSERT INTO t1(rollno, name) VALUES(4, 'Record_7');
INSERT INTO t1(rollno, name) VALUES(4, 'Record_8');
SELECT * FROM t1 ORDER BY id;
id	rollno	name
1	1	Record_1
2	2	Record_2
3	1	Record_3
4	3	Record_4
5	1	Record_5
6	3	Record_6
7	4	Record_7
8	4	Record_8
## Creating two new connections ##
'#--------------------FN_DYNVARS_034_02-------------------------#'
## Connecting with test_con1 ##
## Accessing data and using group_concat on column whose value is greater than 4 ##
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
id	rollno	group_concat(name)
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;
id	rollno	GROUP_CONCAT(name)
1	1	Reco
2	2	Reco
4	3	Reco
@@ -35,8 +45,8 @@ Warning 1260 4 line(s) were cut by GROUP_CONCAT()
## Changing session value of variable and verifying its behavior, ##
## warning should come here ##
SET @@session.group_concat_max_len = 10;
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
id	rollno	group_concat(name)
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;
id	rollno	GROUP_CONCAT(name)
1	1	Record_1,R
2	2	Record_2
4	3	Record_4,R
@@ -54,8 +64,8 @@ SELECT @@session.group_concat_max_len = 4;
SET @@session.group_concat_max_len = 20;
## Verifying value of name column, it should not me more than 20 characters ##
## Warning should come here ##
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
id	rollno	group_concat(name)
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;
id	rollno	GROUP_CONCAT(name)
1	1	Record_1,Record_3,Re
2	2	Record_2
4	3	Record_4,Record_6
@@ -67,13 +77,13 @@ Warning 1260 1 line(s) were cut by GROUP_CONCAT()
## because the value after concatination is less than 30 ##
SET @@session.group_concat_max_len = 26;
## Verifying value of name column, it should not give warning now ##
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
id	rollno	group_concat(name)
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;
id	rollno	GROUP_CONCAT(name)
1	1	Record_1,Record_3,Record_5
2	2	Record_2
4	3	Record_4,Record_6
7	4	Record_7,Record_8
## Dropping table t1 ##
DROP table t1;
DROP TABLE t1;
## Disconnecting both the connection ##
SET @@global.group_concat_max_len = @save;
+46 −37
Original line number Diff line number Diff line
@@ -11,18 +11,23 @@
# Creation Date: 2008-03-07                                                   #
# Author:  Salman Rawala                                                      #
#                                                                             #
# Last modification:                                                          #
# 2008-11-14 mleich Fix Bug#40644 main.group_concat_max_len_func random       #
#                                 failures                                    #
#                   + minor improvements                                      #
#                                                                             #
# Description: Test Cases of Dynamic System Variable group_concat_max_len     #
#              that checks the functionality of this variable                 #
#                                                                             #
# Reference: http://dev.mysql.com/doc/refman/5.1/en/                          #
#  server-system-variables.html                                               #
# Reference:                                                                  #
#    http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html      #
#                                                                             #
###############################################################################

SET @save = @@global.group_concat_max_len;

--disable_warnings
drop table if exists t1;
DROP TABLE IF EXISTS t1;
--enable_warnings

#########################
@@ -32,9 +37,9 @@ drop table if exists t1;
--echo ## Creating new table t1 ##
CREATE TABLE t1
(
id INT NOT NULL auto_increment,
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
rollno int NOT NULL,
rollno INT NOT NULL,
name VARCHAR(30)
);

@@ -48,18 +53,22 @@ name VARCHAR(30)
SET @@global.group_concat_max_len = 4;

--echo ## Inserting some rows in table ##
INSERT into t1(rollno, name) values(1, 'Record_1');	
INSERT into t1(rollno, name) values(2, 'Record_2');
INSERT into t1(rollno, name) values(1, 'Record_3');	
INSERT into t1(rollno, name) values(3, 'Record_4');
INSERT into t1(rollno, name) values(1, 'Record_5');	
INSERT into t1(rollno, name) values(3, 'Record_6');
INSERT into t1(rollno, name) values(4, 'Record_7');	
INSERT into t1(rollno, name) values(4, 'Record_8');
INSERT INTO t1(rollno, name) VALUES(1, 'Record_1');
INSERT INTO t1(rollno, name) VALUES(2, 'Record_2');
INSERT INTO t1(rollno, name) VALUES(1, 'Record_3');
INSERT INTO t1(rollno, name) VALUES(3, 'Record_4');
INSERT INTO t1(rollno, name) VALUES(1, 'Record_5');
INSERT INTO t1(rollno, name) VALUES(3, 'Record_6');
INSERT INTO t1(rollno, name) VALUES(4, 'Record_7');
INSERT INTO t1(rollno, name) VALUES(4, 'Record_8');
# The following "auxiliary" select ensures that all records are on disk
# = result sets got by parallel sessions cannot suffer from effects
#   caused by the MyISAM feature "concurrent_inserts".
SELECT * FROM t1 ORDER BY id;

--echo ## Creating two new connections ##
CONNECT (test_con1,localhost,root,,);
CONNECT (test_con2,localhost,root,,);
connect (test_con1,localhost,root,,);
connect (test_con2,localhost,root,,);


--echo '#--------------------FN_DYNVARS_034_02-------------------------#'
@@ -68,16 +77,16 @@ CONNECT (test_con2,localhost,root,,);
###############################################################################

--echo ## Connecting with test_con1 ##
CONNECTION test_con1;
connection test_con1;

--echo ## Accessing data and using group_concat on column whose value is greater than 4 ##
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;

--echo ## Changing session value of variable and verifying its behavior, ##
--echo ## warning should come here ##

SET @@session.group_concat_max_len = 10;
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;


--echo '#--------------------FN_DYNVARS_034_03-------------------------#'
@@ -97,7 +106,7 @@ SET @@session.group_concat_max_len = 20;

--echo ## Verifying value of name column, it should not me more than 20 characters ##
--echo ## Warning should come here ##
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;


--echo '#--------------------FN_DYNVARS_034_04-------------------------#'
@@ -111,7 +120,7 @@ SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
SET @@session.group_concat_max_len = 26;

--echo ## Verifying value of name column, it should not give warning now ##
SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
SELECT id, rollno, GROUP_CONCAT(name) FROM t1 GROUP BY rollno;


############################################################
@@ -119,11 +128,11 @@ SELECT id, rollno, group_concat(name) FROM t1 GROUP BY rollno;
############################################################

--echo ## Dropping table t1 ##
DROP table t1;
DROP TABLE t1;

--echo ## Disconnecting both the connection ##
DISCONNECT test_con2;
DISCONNECT test_con1;
disconnect test_con2;
disconnect test_con1;

connection default;