polardbxengine/mysql-test/suite/xengine_main/t/packet.test

179 lines
6.4 KiB
Plaintext

# Windows fails because it disconnects on too-large packets instead of just
# swallowing them and returning an error
--source include/not_windows.inc
# Save the initial number of concurrent sessions
--source include/count_sessions.inc
#
# Check protocol handling
#
set @max_allowed_packet=@@global.max_allowed_packet;
set @net_buffer_length=@@global.net_buffer_length;
# setting values below minimum threshold of 1024 will cause truncating
set global max_allowed_packet=100;
set global net_buffer_length=100;
# is not yet in effect
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
select repeat('a',2000);
#
# Connection 1 should get error for too big packets
#
connect (con1,localhost,root,,);
connection con1;
select @@net_buffer_length, @@max_allowed_packet;
--error ER_NET_PACKET_TOO_LARGE
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
connection default;
disconnect con1;
#
# Reset to default values and reconnect
#
set global max_allowed_packet=default;
set global net_buffer_length=default;
connect (con2,localhost,root,,);
connection con2;
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
select length(repeat('a',2000));
connection default;
disconnect con2;
set global max_allowed_packet=@max_allowed_packet;
set global net_buffer_length=@net_buffer_length;
# End of 4.1 tests
--echo #
--echo # Bug #20376498: MAX_ALLOWED_PACKET ERROR DESTROYS
--echo # ORIGINAL DATA
CREATE TABLE t1 (c11 INT NOT NULL, c12 LONGTEXT,
PRIMARY KEY (c11)) charset latin1;
CREATE TABLE t2 (c21 INT NOT NULL, c22 LONGTEXT,
PRIMARY KEY (c21)) charset latin1;
CREATE TABLE t3 (c31 INT NOT NULL, c32 LONGTEXT,
PRIMARY KEY (c31)) charset latin1 ENGINE=MYISAM;
CREATE TABLE t4 (c41 INT NOT NULL, c42 LONGTEXT,
PRIMARY KEY (c41)) charset latin1 ENGINE=MYISAM;
INSERT INTO t1 VALUES(100,'abcd');
INSERT INTO t2 VALUES(100,'xyz');
INSERT INTO t3 VALUES(100,'a');
INSERT INTO t3 VALUES(111,'abcd');
INSERT INTO t3 VALUES(122,'b');
--error ER_WARN_ALLOWED_PACKET_OVERFLOWED
UPDATE t1
SET c12= REPEAT('ab', @max_allowed_packet);
UPDATE IGNORE t1
SET c12= REPEAT('ab', @max_allowed_packet);
--error ER_WARN_ALLOWED_PACKET_OVERFLOWED
UPDATE t1, t2
SET c12= REPEAT('ab', @max_allowed_packet),
c22= 'ab';
UPDATE IGNORE t1, t2
SET c12= REPEAT('ab', @max_allowed_packet),
c22= 'ab';
--error ER_WARN_ALLOWED_PACKET_OVERFLOWED
INSERT INTO t1
VALUES (101, REPEAT('ab', @max_allowed_packet));
--error ER_WARN_ALLOWED_PACKET_OVERFLOWED
INSERT INTO t1
SELECT 101, REPEAT('ab', @max_allowed_packet);
INSERT IGNORE INTO t1
SELECT 101, REPEAT('ab', @max_allowed_packet);
--error ER_WARN_ALLOWED_PACKET_OVERFLOWED
REPLACE INTO t1
VALUES (102, REPEAT('ab', @max_allowed_packet));
--error ER_WARN_ALLOWED_PACKET_OVERFLOWED
REPLACE INTO t1
SET c11= 102,
c12= REPEAT('ab', @max_allowed_packet);
--error ER_WARN_ALLOWED_PACKET_OVERFLOWED
REPLACE INTO t1
SELECT 102, REPEAT('ab', @max_allowed_packet);
set names latin1;
--error ER_WARN_ALLOWED_PACKET_OVERFLOWED
DELETE FROM t1
WHERE c12 <=> REPEAT('ab', @max_allowed_packet);
--error ER_WARN_ALLOWED_PACKET_OVERFLOWED
DELETE FROM t1, t2
USING t1 INNER JOIN t2
WHERE t1.c11 = t2.c21 AND
t2.c22 <=> REPEAT('ab', @max_allowed_packet);
set names utf8mb4;
DELETE IGNORE FROM t1, t2
USING t1 INNER JOIN t2
WHERE t1.c11 = t2.c21 AND
t2.c22 <=> REPEAT('ab', @max_allowed_packet);
INSERT INTO t4
SELECT c31, CONCAT(c32,
REPEAT('a', @max_allowed_packet-1))
FROM t3;
SELECT c41, LENGTH(c42) FROM t4;
--error ER_WARN_ALLOWED_PACKET_OVERFLOWED
UPDATE t3
SET c32= CONCAT(c32,
REPEAT('a', @max_allowed_packet-1));
SELECT c31, LENGTH(c32) FROM t3;
DELETE FROM t1;
DELETE FROM t2;
INSERT INTO t1 VALUES(100,'abcd');
INSERT INTO t2 VALUES(100,'xyz');
SET @@sql_mode= '';
SELECT @@sql_mode;
UPDATE t1
SET c12= REPEAT('ab', @max_allowed_packet);
SELECT c11, LENGTH(c12) FROM t1;
INSERT INTO t1
VALUES (101, REPEAT('ab', @max_allowed_packet));
SELECT c11, LENGTH(c12) FROM t1;
INSERT INTO t1
SELECT 102, REPEAT('ab', @max_allowed_packet);
SELECT c11, LENGTH(c12) FROM t1;
DELETE FROM t1
WHERE c12 <=> REPEAT('ab', @max_allowed_packet);
SELECT c11, LENGTH(c12) FROM t1;
SET @@sql_mode= default;
DROP TABLE t1, t2, t3, t4;
# Wait till we reached the initial number of concurrent sessions
--source include/wait_until_count_sessions.inc
--source suite/xengine/include/check_xengine_log_error.inc