You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-29 08:21:15 +03:00
MCOL-4899 MCS now applies a correct collation running IN for character data types
This commit is contained in:
committed by
Roman Nozdrin
parent
b3ab3fb514
commit
05897948e4
65
mysql-test/columnstore/bugfixes/mcol-4899.result
Normal file
65
mysql-test/columnstore/bugfixes/mcol-4899.result
Normal file
@ -0,0 +1,65 @@
|
||||
DROP DATABASE IF EXISTS `mcol_4899`;
|
||||
CREATE DATABASE `mcol_4899` CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
|
||||
USE `mcol_4899`;
|
||||
SELECT @cs_conn := @@character_set_connection;
|
||||
@cs_conn := @@character_set_connection
|
||||
latin1
|
||||
SET character_set_connection=utf8mb4;
|
||||
CREATE TABLE collation_test (LETTERS TEXT NULL)ENGINE=ColumnStore;
|
||||
INSERT INTO collation_test (LETTERS) VALUES ('a'),('A'),('b'),('B');
|
||||
SELECT * FROM collation_test;
|
||||
LETTERS
|
||||
a
|
||||
A
|
||||
b
|
||||
B
|
||||
SELECT * FROM collation_test WHERE LETTERS LIKE 'a';
|
||||
LETTERS
|
||||
a
|
||||
SELECT * FROM collation_test WHERE LETTERS IN ('a','B');
|
||||
LETTERS
|
||||
a
|
||||
B
|
||||
SELECT * FROM collation_test WHERE LETTERS IN ('a' COLLATE utf8mb4_bin);
|
||||
LETTERS
|
||||
a
|
||||
DROP TABLE collation_test;
|
||||
CREATE TABLE collation_test (LETTERS TEXT NULL)ENGINE=ColumnStore DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin;
|
||||
INSERT INTO collation_test (LETTERS) VALUES ('a'),('A'),('b'),('B');
|
||||
SELECT * FROM collation_test;
|
||||
LETTERS
|
||||
a
|
||||
A
|
||||
b
|
||||
B
|
||||
SELECT * FROM collation_test WHERE LETTERS LIKE 'a';
|
||||
LETTERS
|
||||
a
|
||||
SELECT * FROM collation_test WHERE LETTERS IN ('a','B');
|
||||
LETTERS
|
||||
a
|
||||
B
|
||||
SELECT * FROM collation_test WHERE LETTERS IN ('a' COLLATE utf8mb4_bin);
|
||||
LETTERS
|
||||
a
|
||||
DROP TABLE collation_test;
|
||||
CREATE TABLE collation_test (LETTERS TEXT NULL)ENGINE=ColumnStore DEFAULT CHARSET=utf8mb4;
|
||||
INSERT INTO collation_test (LETTERS) VALUES ('a'),('A'),('b'),('B');
|
||||
SELECT * FROM collation_test;
|
||||
LETTERS
|
||||
a
|
||||
A
|
||||
b
|
||||
B
|
||||
SELECT * FROM collation_test WHERE LETTERS LIKE 'a';
|
||||
LETTERS
|
||||
a
|
||||
A
|
||||
SELECT * FROM collation_test WHERE LETTERS IN ('a','B');
|
||||
LETTERS
|
||||
a
|
||||
A
|
||||
b
|
||||
B
|
||||
DROP DATABASE `mcol_4899`;
|
||||
SET character_set_connection=@cs_conn;
|
42
mysql-test/columnstore/bugfixes/mcol-4899.test
Normal file
42
mysql-test/columnstore/bugfixes/mcol-4899.test
Normal file
@ -0,0 +1,42 @@
|
||||
#
|
||||
# MCOL-4899 MCS doesn't apply collation running IN with character data types
|
||||
#
|
||||
|
||||
-- source ../include/have_columnstore.inc
|
||||
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS `mcol_4899`;
|
||||
--enable_warnings
|
||||
CREATE DATABASE `mcol_4899` CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
|
||||
USE `mcol_4899`;
|
||||
|
||||
SELECT @cs_conn := @@character_set_connection;
|
||||
SET character_set_connection=utf8mb4;
|
||||
|
||||
CREATE TABLE collation_test (LETTERS TEXT NULL)ENGINE=ColumnStore;
|
||||
INSERT INTO collation_test (LETTERS) VALUES ('a'),('A'),('b'),('B');
|
||||
SELECT * FROM collation_test;
|
||||
SELECT * FROM collation_test WHERE LETTERS LIKE 'a';
|
||||
SELECT * FROM collation_test WHERE LETTERS IN ('a','B');
|
||||
# MCS doesn't apply explicit COLLATE as of 6.2.2
|
||||
SELECT * FROM collation_test WHERE LETTERS IN ('a' COLLATE utf8mb4_bin);
|
||||
|
||||
DROP TABLE collation_test;
|
||||
CREATE TABLE collation_test (LETTERS TEXT NULL)ENGINE=ColumnStore DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin;
|
||||
INSERT INTO collation_test (LETTERS) VALUES ('a'),('A'),('b'),('B');
|
||||
SELECT * FROM collation_test;
|
||||
SELECT * FROM collation_test WHERE LETTERS LIKE 'a';
|
||||
SELECT * FROM collation_test WHERE LETTERS IN ('a','B');
|
||||
# MCS doesn't apply explicit COLLATE as of 6.2.2
|
||||
SELECT * FROM collation_test WHERE LETTERS IN ('a' COLLATE utf8mb4_bin);
|
||||
|
||||
# re-testing with case insensitive collation
|
||||
DROP TABLE collation_test;
|
||||
CREATE TABLE collation_test (LETTERS TEXT NULL)ENGINE=ColumnStore DEFAULT CHARSET=utf8mb4;
|
||||
INSERT INTO collation_test (LETTERS) VALUES ('a'),('A'),('b'),('B');
|
||||
SELECT * FROM collation_test;
|
||||
SELECT * FROM collation_test WHERE LETTERS LIKE 'a';
|
||||
SELECT * FROM collation_test WHERE LETTERS IN ('a','B');
|
||||
|
||||
DROP DATABASE `mcol_4899`;
|
||||
SET character_set_connection=@cs_conn;
|
Reference in New Issue
Block a user