You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-08 14:22:09 +03:00
MCOL-4871 This patch adds relevant tests
This commit is contained in:
86
mysql-test/columnstore/basic/t/ctype_extent_koi8u.test
Normal file
86
mysql-test/columnstore/basic/t/ctype_extent_koi8u.test
Normal file
@@ -0,0 +1,86 @@
|
||||
--source ../include/have_columnstore.inc
|
||||
--source ../include/func_caltrace_create_if_needed.inc
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS mcs_ctype_extent_koi8u;
|
||||
--enable_warnings
|
||||
CREATE DATABASE mcs_ctype_extent_koi8u;
|
||||
USE mcs_ctype_extent_koi8u;
|
||||
SET default_storage_engine=ColumnStore;
|
||||
--source ../include/ctype_extent_proc_create.inc
|
||||
|
||||
--echo #
|
||||
--echo # MCOL-4871 Extent elimination for short CHAR does not work well
|
||||
--echo #
|
||||
|
||||
SET NAMES utf8;
|
||||
|
||||
DELIMITER $$;
|
||||
CREATE PROCEDURE test(collation VARCHAR(64))
|
||||
BEGIN
|
||||
DECLARE stmt TEXT;
|
||||
DECLARE CONTINUE HANDLER FOR 9999
|
||||
BEGIN
|
||||
GET DIAGNOSTICS CONDITION 1 @errmsg = MESSAGE_TEXT;
|
||||
SET @errmsg=caltrace_extract_block_diagnostics(@errmsg);
|
||||
RESIGNAL SET MESSAGE_TEXT=@errmsg;
|
||||
END;
|
||||
|
||||
DO calsettrace(1);
|
||||
|
||||
SET stmt='CREATE TABLE t1 (c1 CHAR(2) CHARACTER SET koi8u COLLATE koi8u_general_ci)';
|
||||
SET stmt=REPLACE(stmt,'koi8u_general_ci', collation);
|
||||
SELECT stmt AS ``;
|
||||
EXECUTE IMMEDIATE stmt;
|
||||
INSERT INTO t1 VALUES ('Ъ─') /*_koi8u x'FF80'*/;
|
||||
SELECT c1, HEX(c1) FROM t1;
|
||||
CALL show_extent_min_max(database(),'t1','c1');
|
||||
SELECT * FROM t1 WHERE c1='Ъ─';
|
||||
SHOW WARNINGS;
|
||||
SELECT * FROM t1 WHERE c1='Ъя' /*_koi8u x'FFF1'*/;
|
||||
SHOW WARNINGS;
|
||||
DROP TABLE t1;
|
||||
|
||||
SET stmt='CREATE TABLE t1 (c1 CHAR(4) CHARACTER SET koi8u COLLATE koi8u_general_ci)';
|
||||
SET stmt=REPLACE(stmt,'koi8u_general_ci', collation);
|
||||
SELECT stmt AS ``;
|
||||
EXECUTE IMMEDIATE stmt;
|
||||
INSERT INTO t1 VALUES ('ЪЪЪ─') /*_koi8u x'FFFFFF80'*/;
|
||||
SELECT c1, HEX(c1) FROM t1;
|
||||
CALL show_extent_min_max(database(),'t1','c1');
|
||||
SELECT * FROM t1 WHERE c1='ЪЪЪ─';
|
||||
SHOW WARNINGS;
|
||||
SELECT * FROM t1 WHERE c1='ЪЪЪя' /*_koi8u x'FFFFFFF1'*/;
|
||||
SHOW WARNINGS;
|
||||
DROP TABLE t1;
|
||||
|
||||
SET stmt='CREATE TABLE t1 (c1 CHAR(8) CHARACTER SET koi8u COLLATE koi8u_general_ci)';
|
||||
SET stmt=REPLACE(stmt,'koi8u_general_ci', collation);
|
||||
SELECT stmt AS ``;
|
||||
EXECUTE IMMEDIATE stmt;
|
||||
INSERT INTO t1 VALUES ('ЪЪЪЪЪЪЪ─') /*_koi8u x'FFFFFFFFFFFFFF80'*/;
|
||||
SELECT c1, HEX(c1) FROM t1;
|
||||
CALL show_extent_min_max(database(),'t1','c1');
|
||||
SELECT * FROM t1 WHERE c1='ЪЪЪЪЪЪЪ─';
|
||||
SHOW WARNINGS;
|
||||
SELECT * FROM t1 WHERE c1='ЪЪЪЪЪЪЪя' /*_koi8u x'FFFFFFFFFFFFFFF1'*/;
|
||||
SHOW WARNINGS;
|
||||
DROP TABLE t1;
|
||||
|
||||
DO calsettrace(0);
|
||||
|
||||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
||||
|
||||
CALL test('koi8u_general_ci');
|
||||
CALL test('koi8u_general_nopad_ci');
|
||||
CALL test('koi8u_bin');
|
||||
CALL test('koi8u_nopad_bin');
|
||||
|
||||
DROP PROCEDURE test;
|
||||
|
||||
|
||||
--source ../include/ctype_extent_proc_drop.inc
|
||||
--source ../include/func_caltrace_drop_if_needed.inc
|
||||
DROP DATABASE mcs_ctype_extent_koi8u;
|
||||
USE test;
|
99
mysql-test/columnstore/basic/t/ctype_extent_latin1.test
Normal file
99
mysql-test/columnstore/basic/t/ctype_extent_latin1.test
Normal file
@@ -0,0 +1,99 @@
|
||||
--source ../include/have_columnstore.inc
|
||||
--source ../include/func_caltrace_create_if_needed.inc
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS mcs_ctype_extent_latin1;
|
||||
--enable_warnings
|
||||
CREATE DATABASE mcs_ctype_extent_latin1;
|
||||
USE mcs_ctype_extent_latin1;
|
||||
SET default_storage_engine=ColumnStore;
|
||||
--source ../include/ctype_extent_proc_create.inc
|
||||
|
||||
--echo #
|
||||
--echo # MCOL-4871 Extent elimination for short CHAR does not work well
|
||||
--echo #
|
||||
|
||||
SET NAMES utf8;
|
||||
|
||||
DELIMITER $$;
|
||||
CREATE PROCEDURE test(collation VARCHAR(64))
|
||||
BEGIN
|
||||
DECLARE stmt TEXT;
|
||||
DECLARE CONTINUE HANDLER FOR 9999
|
||||
BEGIN
|
||||
GET DIAGNOSTICS CONDITION 1 @errmsg = MESSAGE_TEXT;
|
||||
SET @errmsg=caltrace_extract_block_diagnostics(@errmsg);
|
||||
RESIGNAL SET MESSAGE_TEXT=@errmsg;
|
||||
END;
|
||||
|
||||
DO calsettrace(1);
|
||||
|
||||
SET stmt='CREATE TABLE t1 (c1 CHAR(1) CHARACTER SET latin1 COLLATE latin1_swedish_ci)';
|
||||
SET stmt=REPLACE(stmt,'latin1_swedish_ci', collation);
|
||||
SELECT stmt AS ``;
|
||||
EXECUTE IMMEDIATE stmt;
|
||||
INSERT INTO t1 VALUES (0xE9);
|
||||
SELECT c1, HEX(c1) FROM t1;
|
||||
CALL show_extent_min_max(database(),'t1','c1');
|
||||
SELECT * FROM t1 WHERE c1=x'E9';
|
||||
SHOW WARNINGS;
|
||||
SELECT * FROM t1 WHERE c1='o';
|
||||
SHOW WARNINGS;
|
||||
DROP TABLE t1;
|
||||
|
||||
SET stmt='CREATE TABLE t1 (c1 CHAR(2) CHARACTER SET latin1 COLLATE latin1_swedish_ci)';
|
||||
SET stmt=REPLACE(stmt,'latin1_swedish_ci', collation);
|
||||
SELECT stmt AS ``;
|
||||
EXECUTE IMMEDIATE stmt;
|
||||
INSERT INTO t1 VALUES ('ÿ€' /*_latin1 x'FF80'*/);
|
||||
SELECT c1, HEX(c1) FROM t1;
|
||||
CALL show_extent_min_max(database(),'t1','c1');
|
||||
SELECT * FROM t1 WHERE c1='ÿ€';
|
||||
SHOW WARNINGS;
|
||||
SELECT * FROM t1 WHERE c1=x'FF7F' /* 'ÿ<DEL>' */;
|
||||
SHOW WARNINGS;
|
||||
DROP TABLE t1;
|
||||
|
||||
SET stmt='CREATE TABLE t1 (c1 CHAR(4) CHARACTER SET latin1 COLLATE latin1_swedish_ci)';
|
||||
SET stmt=REPLACE(stmt,'latin1_swedish_ci', collation);
|
||||
SELECT stmt AS ``;
|
||||
EXECUTE IMMEDIATE stmt;
|
||||
INSERT INTO t1 VALUES ('ÿÿÿ€' /*_latin1 x'FFFFFF80'*/);
|
||||
SELECT c1, HEX(c1) FROM t1;
|
||||
CALL show_extent_min_max(database(),'t1','c1');
|
||||
SELECT * FROM t1 WHERE c1='ÿÿÿ€';
|
||||
SHOW WARNINGS;
|
||||
SELECT * FROM t1 WHERE c1=x'FFFFFF7F' /* 'ÿÿÿ<DEL>' */;
|
||||
SHOW WARNINGS;
|
||||
DROP TABLE t1;
|
||||
|
||||
SET stmt='CREATE TABLE t1 (c1 CHAR(8) CHARACTER SET latin1 COLLATE latin1_swedish_ci)';
|
||||
SET stmt=REPLACE(stmt,'latin1_swedish_ci', collation);
|
||||
SELECT stmt AS ``;
|
||||
EXECUTE IMMEDIATE stmt;
|
||||
INSERT INTO t1 VALUES ('ÿÿÿÿÿÿÿ€' /*_latin1 x'FFFFFFFFFFFFFF80'*/);
|
||||
SELECT c1, HEX(c1) FROM t1;
|
||||
CALL show_extent_min_max(database(),'t1','c1');
|
||||
SELECT * FROM t1 WHERE c1='ÿÿÿÿÿÿÿ€';
|
||||
SHOW WARNINGS;
|
||||
SELECT * FROM t1 WHERE c1=x'FFFFFFFFFFFFFF7F' /* 'ÿÿÿÿÿÿÿ<DEL>' */;
|
||||
SHOW WARNINGS;
|
||||
DROP TABLE t1;
|
||||
|
||||
DO calsettrace(0);
|
||||
|
||||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
||||
|
||||
CALL test('latin1_swedish_ci');
|
||||
CALL test('latin1_swedish_nopad_ci');
|
||||
CALL test('latin1_bin');
|
||||
CALL test('latin1_nopad_bin');
|
||||
|
||||
DROP PROCEDURE test;
|
||||
|
||||
|
||||
--source ../include/ctype_extent_proc_drop.inc
|
||||
--source ../include/func_caltrace_drop_if_needed.inc
|
||||
DROP DATABASE mcs_ctype_extent_latin1;
|
||||
USE test;
|
74
mysql-test/columnstore/basic/t/ctype_extent_utf8mb3.test
Normal file
74
mysql-test/columnstore/basic/t/ctype_extent_utf8mb3.test
Normal file
@@ -0,0 +1,74 @@
|
||||
--source ../include/have_columnstore.inc
|
||||
--source ../include/func_caltrace_create_if_needed.inc
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS mcs_ctype_extent_utf8mb3;
|
||||
--enable_warnings
|
||||
CREATE DATABASE mcs_ctype_extent_utf8mb3;
|
||||
USE mcs_ctype_extent_utf8mb3;
|
||||
SET default_storage_engine=ColumnStore;
|
||||
--source ../include/ctype_extent_proc_create.inc
|
||||
|
||||
--echo #
|
||||
--echo # MCOL-4871 Extent elimination for short CHAR does not work well
|
||||
--echo #
|
||||
|
||||
SET NAMES utf8;
|
||||
|
||||
DELIMITER $$;
|
||||
CREATE PROCEDURE test(collation VARCHAR(64))
|
||||
BEGIN
|
||||
DECLARE stmt TEXT;
|
||||
DECLARE CONTINUE HANDLER FOR 9999
|
||||
BEGIN
|
||||
GET DIAGNOSTICS CONDITION 1 @errmsg = MESSAGE_TEXT;
|
||||
SET @errmsg=caltrace_extract_block_diagnostics(@errmsg);
|
||||
RESIGNAL SET MESSAGE_TEXT=@errmsg;
|
||||
END;
|
||||
|
||||
DO calsettrace(1);
|
||||
|
||||
SET stmt='CREATE TABLE t1 (c1 CHAR(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci)';
|
||||
SET stmt=REPLACE(stmt,'utf8mb3_general_ci', collation);
|
||||
SELECT stmt AS ``;
|
||||
EXECUTE IMMEDIATE stmt;
|
||||
INSERT INTO t1 VALUES ('a');
|
||||
SELECT c1, HEX(c1) FROM t1;
|
||||
CALL show_extent_min_max(database(),'t1','c1');
|
||||
SELECT * FROM t1 WHERE c1='a';
|
||||
SHOW WARNINGS;
|
||||
SELECT * FROM t1 WHERE c1='b';
|
||||
SHOW WARNINGS;
|
||||
DROP TABLE t1;
|
||||
|
||||
SET stmt='CREATE TABLE t1 (c1 CHAR(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci)';
|
||||
SET stmt=REPLACE(stmt,'utf8mb3_general_ci', collation);
|
||||
SELECT stmt AS ``;
|
||||
EXECUTE IMMEDIATE stmt;
|
||||
INSERT INTO t1 VALUES ('aa');
|
||||
SELECT c1, HEX(c1) FROM t1;
|
||||
CALL show_extent_min_max(database(),'t1','c1');
|
||||
SELECT * FROM t1 WHERE c1='aa';
|
||||
SHOW WARNINGS;
|
||||
SELECT * FROM t1 WHERE c1='bb';
|
||||
SHOW WARNINGS;
|
||||
DROP TABLE t1;
|
||||
|
||||
DO calsettrace(0);
|
||||
|
||||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
||||
|
||||
CALL test('utf8mb3_unicode_ci');
|
||||
CALL test('utf8mb3_unicode_nopad_ci');
|
||||
CALL test('utf8mb3_general_ci');
|
||||
CALL test('utf8mb3_general_nopad_ci');
|
||||
CALL test('utf8mb3_bin');
|
||||
CALL test('utf8mb3_nopad_bin');
|
||||
|
||||
DROP PROCEDURE test;
|
||||
|
||||
--source ../include/ctype_extent_proc_drop.inc
|
||||
--source ../include/func_caltrace_drop_if_needed.inc
|
||||
DROP DATABASE mcs_ctype_extent_utf8mb3;
|
||||
USE test;
|
Reference in New Issue
Block a user