558 lines
16 KiB
Plaintext
558 lines
16 KiB
Plaintext
#
|
|
# WL#12475: Protocol Changes to specify compression configuration for connections
|
|
#
|
|
CREATE USER wl12475@localhost;
|
|
SELECT @@global.protocol_compression_algorithms;
|
|
@@global.protocol_compression_algorithms
|
|
zlib,zstd,uncompressed
|
|
# should report empty string and 0 for method and level
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
# should report zlib and 6 for method and level
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
# should report zstd and 3 for method and level
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 3
|
|
# should report zstd and 11 for method and level
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 11
|
|
# should report zlib and 6 for method and level --zstd-compression-level for zlib compression is ignored
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 22
|
|
# check all possible client compression-algorithm/level for default server configuration
|
|
SET @@global.protocol_compression_algorithms=default;
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 3
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 13
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 3
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 11
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
# compression-level is ignored without --compression-algorithms
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
# client is configured with both algorithms so report error
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
# existing --compress option should still work
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
# multiple values of zstd,zlib,uncompressed
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
# multiple values of zstd,zlib,uncompressed without compression level
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
# multiple duplicate values
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 8
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 1
|
|
# compression level with default compression algorithm which is uncompressed
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
# invalid algorithm values
|
|
# empty algorithm values
|
|
# invalid and algorithm values
|
|
# make new connection with zlib compression
|
|
select * from performance_schema.session_status where variable_name like '%COMPRESSION%' order by 1;
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
# make new connection without compression
|
|
select * from performance_schema.session_status where variable_name like '%COMPRESSION%' order by 1;
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
# make new connection with zstd compression
|
|
select * from performance_schema.session_status where variable_name like '%COMPRESSION%' order by 1;
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 9
|
|
# check all possible client compression-algorithm/level for server configured with only "zstd"
|
|
SET GLOBAL protocol_compression_algorithms="zstd";
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 3
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 3
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 3
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 11
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 3
|
|
# check existing --compress option
|
|
# make new connection with zlib compression
|
|
connect(localhost,wl12475,,test,MASTER_PORT,MASTER_SOCKET);
|
|
ERROR HY000: Connection failed due to wrongly configured compression algorithm
|
|
# make new connection without compression
|
|
connect(localhost,wl12475,,test,MASTER_PORT,MASTER_SOCKET);
|
|
ERROR HY000: Invalid compression algorithm 'uncompressed'.
|
|
# make new connection with zstd compression
|
|
select * from performance_schema.session_status where variable_name like '%COMPRESSION%' order by 1;
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 9
|
|
# check all possible client compression-algorithm/level for server configured with only "zstd,uncompressed"
|
|
SET GLOBAL protocol_compression_algorithms="zstd,uncompressed";
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 3
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 11
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 3
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 13
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 3
|
|
# check existing --compress option
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
# make new connection with zlib compression
|
|
connect(localhost,wl12475,,test,MASTER_PORT,MASTER_SOCKET);
|
|
ERROR HY000: Connection failed due to wrongly configured compression algorithm
|
|
# make new connection without compression
|
|
select * from performance_schema.session_status where variable_name like '%COMPRESSION%' order by 1;
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
# make new connection with zstd compression
|
|
select * from performance_schema.session_status where variable_name like '%COMPRESSION%' order by 1;
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 9
|
|
# check all possible client compression-algorithm/level for server configured with only "zlib"
|
|
SET GLOBAL protocol_compression_algorithms="zlib";
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
# check existing --compress option
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
# make new connection with zlib compression
|
|
select * from performance_schema.session_status where variable_name like '%COMPRESSION%' order by 1;
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
# make new connection without compression
|
|
connect(localhost,wl12475,,test,MASTER_PORT,MASTER_SOCKET);
|
|
ERROR HY000: Invalid compression algorithm 'uncompressed'.
|
|
# make new connection with zstd compression
|
|
connect(localhost,wl12475,,test,MASTER_PORT,MASTER_SOCKET);
|
|
ERROR HY000: Connection failed due to wrongly configured compression algorithm
|
|
# check all possible client compression-algorithm/level for server configured with only "zlib,uncompressed"
|
|
SET GLOBAL protocol_compression_algorithms="zlib,uncompressed";
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
# existing --compress option
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
# make new connection with zlib compression
|
|
select * from performance_schema.session_status where variable_name like '%COMPRESSION%' order by 1;
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
# make new connection without compression
|
|
select * from performance_schema.session_status where variable_name like '%COMPRESSION%' order by 1;
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
# make new connection with zstd compression
|
|
connect(localhost,wl12475,,test,MASTER_PORT,MASTER_SOCKET);
|
|
ERROR HY000: Connection failed due to wrongly configured compression algorithm
|
|
# check all possible client compression-algorithm/level for server configured with "zlib,zstd"
|
|
SET GLOBAL protocol_compression_algorithms="zlib,zstd";
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 3
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 16
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 3
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 16
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
# existing --compress option should still work
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
# make new connection with zlib compression
|
|
select * from performance_schema.session_status where variable_name like '%COMPRESSION%' order by 1;
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zlib
|
|
Compression_level 6
|
|
# make new connection without compression
|
|
connect(localhost,wl12475,,test,MASTER_PORT,MASTER_SOCKET);
|
|
ERROR HY000: Invalid compression algorithm 'uncompressed'.
|
|
# make new connection with zstd compression
|
|
select * from performance_schema.session_status where variable_name like '%COMPRESSION%' order by 1;
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression ON
|
|
Compression_algorithm zstd
|
|
Compression_level 9
|
|
# check all possible client compression-algorithm/level for server not configured with any compression algorithm
|
|
SET GLOBAL protocol_compression_algorithms="uncompressed";
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
# existing --compress option
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
# make new connection with zlib compression
|
|
connect(localhost,wl12475,,test,MASTER_PORT,MASTER_SOCKET);
|
|
ERROR HY000: Connection failed due to wrongly configured compression algorithm
|
|
# make new connection without compression
|
|
select * from performance_schema.session_status where variable_name like '%COMPRESSION%' order by 1;
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
Compression OFF
|
|
Compression_algorithm
|
|
Compression_level 0
|
|
# make new connection with zstd compression
|
|
connect(localhost,wl12475,,test,MASTER_PORT,MASTER_SOCKET);
|
|
ERROR HY000: Connection failed due to wrongly configured compression algorithm
|
|
SET @@global.protocol_compression_algorithms=default;
|
|
# check --compression-algorithms and --zstd-compression-level on all supported clients
|
|
CREATE DATABASE wl12475;
|
|
USE wl12475;
|
|
CREATE TABLE t1(a LONGTEXT);
|
|
INSERT INTO t1 VALUES (REPEAT('1',200));
|
|
INSERT INTO t1 VALUES (REPEAT('2', 1800));
|
|
DROP TABLE t1;
|
|
SELECT COUNT(*) FROM wl12475.t1;
|
|
COUNT(*)
|
|
2
|
|
DROP TABLE wl12475.t1;
|
|
SELECT COUNT(*) FROM wl12475.t1;
|
|
COUNT(*)
|
|
2
|
|
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
|
|
mysqld is alive
|
|
wl12475.t1: Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
|
|
SELECT COUNT(*) FROM wl12475.t1;
|
|
COUNT(*)
|
|
3
|
|
Database: wl12475
|
|
+--------+
|
|
| Tables |
|
|
+--------+
|
|
| t1 |
|
|
+--------+
|
|
CALL mtr.add_suppression("Option --protocol-compression-algorithms is reset to default value.");
|
|
# restart server with invalid value for protocol-compression-algorithms
|
|
# restart: --protocol-compression-algorithms=lz4
|
|
# must be set to default
|
|
SELECT @@global.protocol_compression_algorithms;
|
|
@@global.protocol_compression_algorithms
|
|
zlib,zstd,uncompressed
|
|
DROP USER wl12475@localhost;
|
|
DROP DATABASE wl12475;
|