diff options
author | Alexander Barkov <bar@mariadb.org> | 2016-09-06 12:50:02 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.org> | 2016-09-06 12:50:02 +0400 |
commit | ee19806b8e6bb00fa1cd547fe3e75193859d300d (patch) | |
tree | 27568e9cc17e2717785af028c65deb912731bfb9 /mysql-test/include | |
parent | e4f6fd5e1252f8c68f449fe820bae88c18bca8f5 (diff) | |
download | mariadb-git-ee19806b8e6bb00fa1cd547fe3e75193859d300d.tar.gz |
MDEV-9711 NO PAD collations
Based on the patch from Daniil Medvedev (a Google Summer of Code task)
Diffstat (limited to 'mysql-test/include')
-rw-r--r-- | mysql-test/include/ctype_pad.inc | 79 | ||||
-rw-r--r-- | mysql-test/include/ctype_pad_all_engines.inc | 7 |
2 files changed, 86 insertions, 0 deletions
diff --git a/mysql-test/include/ctype_pad.inc b/mysql-test/include/ctype_pad.inc new file mode 100644 index 00000000000..4cefc575cdd --- /dev/null +++ b/mysql-test/include/ctype_pad.inc @@ -0,0 +1,79 @@ +--echo # +--echo # Start of ctype_pad.inc +--echo # + +--echo # +--echo # Unique indexes +--echo # + +eval CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE $coll; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('abc'),('abc '),(' a'),(' a '),('a '); +SELECT HEX(a), a FROM t1 ORDER BY a; +SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a; +SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC; + +--echo # +--echo # UNION +--echo # + +eval CREATE TABLE t2 (a VARCHAR(10)) COLLATE $coll; +INSERT INTO t2 VALUES ('abc '),('abc '),(' a'),('a '); +SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td; +DROP TABLE t1; +DROP TABLE t2; + +--echo # +--echo # DISTINCT, COUNT, MAX +--echo # + +eval CREATE TABLE t1 (a VARCHAR(10)) COLLATE $coll; +INSERT INTO t1 VALUES ('a'),('a '),(' a'),(' a '),('a '); +SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td; +SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a; +SELECT HEX(MAX(a)), MAX(a) FROM t1; + +--echo # +--echo # GROUP BY +--echo # + +eval CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE $coll; +INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa ', 0, 'er '); +SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td; +DROP TABLE t2; + +--echo # +--echo # Weights +--echo # + +SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1; +DROP TABLE t1; + +--echo # +--echo # IF, CASE, LEAST +--echo # + +eval SELECT IF('abc' COLLATE $coll = 'abc ', 'pad', 'nopad'); +eval SELECT CASE 'abc' COLLATE $coll WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; +eval SELECT CASE WHEN 'abc' COLLATE $coll = 'abc ' THEN 'pad' ELSE 'nopad' END; +eval SELECT HEX(LEAST('abc ' COLLATE $coll, 'abc ')); +eval SELECT HEX(GREATEST('abc ' COLLATE $coll, 'abc ')); + +--echo # +--echo # Collation mix +--echo # + +eval CREATE TABLE t1 (a VARCHAR(10)) COLLATE $coll_pad; +INSERT INTO t1 VALUES ('a'),('a '); +SELECT COUNT(*) FROM t1 WHERE a='a'; +eval SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE $coll_pad; +eval SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE $coll; +eval ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE $coll; +SELECT COUNT(*) FROM t1 WHERE a='a'; +eval SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE $coll_pad; +eval SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE $coll; +DROP TABLE t1; + +--echo # +--echo # End of ctype_pad.inc +--echo # diff --git a/mysql-test/include/ctype_pad_all_engines.inc b/mysql-test/include/ctype_pad_all_engines.inc new file mode 100644 index 00000000000..29371676a19 --- /dev/null +++ b/mysql-test/include/ctype_pad_all_engines.inc @@ -0,0 +1,7 @@ +SET STORAGE_ENGINE=MyISAM; +--source include/ctype_pad.inc + +SET STORAGE_ENGINE=HEAP; +--source include/ctype_pad.inc + +SET STORAGE_ENGINE=Default; |