summaryrefslogtreecommitdiff
path: root/mysql-test/main/ctype_latin2_ch.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/main/ctype_latin2_ch.test')
-rw-r--r--mysql-test/main/ctype_latin2_ch.test245
1 files changed, 245 insertions, 0 deletions
diff --git a/mysql-test/main/ctype_latin2_ch.test b/mysql-test/main/ctype_latin2_ch.test
new file mode 100644
index 00000000000..06ccd2c9782
--- /dev/null
+++ b/mysql-test/main/ctype_latin2_ch.test
@@ -0,0 +1,245 @@
+-- source include/have_latin2_ch.inc
+
+#
+# Tests with latin2_czech_cs
+#
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+#
+# Bug#17374: select ... like 'A%' operator fails
+# to find value on columuns with key
+#
+set names latin2;
+select 'A' = 'a' collate latin2_czech_cs;
+create table t1 (
+ id int(5) not null,
+ tt char(255) not null
+) character set latin2 collate latin2_czech_cs;
+insert into t1 values (1,'Aa');
+insert into t1 values (2,'Aas');
+alter table t1 add primary key aaa(tt);
+select * from t1 where tt like 'Aa%';
+select * from t1 ignore index (primary) where tt like 'Aa%';
+select * from t1 where tt like '%Aa%';
+select * from t1 where tt like 'AA%';
+select * from t1 ignore index (primary) where tt like 'AA%';
+select * from t1 where tt like '%AA%';
+
+drop table t1;
+
+# End of 4.1 tests
+
+set names latin2 collate latin2_czech_cs;
+--source include/ctype_pad_space.inc
+--source include/ctype_like_cond_propagation.inc
+
+# We can not use ctype_filesort.inc because
+# order of SPACE and TAB is not strict
+#--source include/ctype_filesort.inc
+#
+
+#
+# Bug#29459 server died handling latin2 collate latin2_czech_cs
+#
+create table t1 (
+ a varchar(2) character set latin2 collate latin2_czech_cs,
+ primary key(a)
+);
+insert into t1 set a=0x5ff;
+insert into t1 set a=0xff;
+select hex(a) from t1;
+drop table t1;
+
+#
+# Bug#33452 Primary difference between capital and small letters U and O
+#
+create table t1 (
+ ch varchar(1),
+ name varchar(64)
+) character set latin2 collate latin2_czech_cs;
+
+insert into t1 values (0x6F,'LATIN SMALL LETTER O');
+insert into t1 values (0xF3,'LATIN SMALL LETTER O WITH ACUTE');
+insert into t1 values (0xF4,'LATIN SMALL LETTER O WITH CIRCUMFLEX');
+insert into t1 values (0xF6,'LATIN SMALL LETTER O WITH DIAERESIS');
+insert into t1 values (0xF5,'LATIN SMALL LETTER O WITH DOUBLE ACUTE');
+insert into t1 values (0x4F,'LATIN CAPITAL LETTER O');
+insert into t1 values (0xD3,'LATIN CAPITAL LETTER O WITH ACUTE');
+insert into t1 values (0xD4,'LATIN CAPITAL LETTER O WITH CURCUMFLEX');
+insert into t1 values (0xD6,'LATIN CAPITAL LETTER O WITH DIAERESIS');
+insert into t1 values (0xD5,'LATIN CAPITAL LETTER O WITH DOUBLE ACUTE');
+
+insert into t1 values (0x75,'LATIN SMALL LETTER U');
+insert into t1 values (0xFA,'LATIN SMALL LETTER U WITH ACUTE');
+insert into t1 values (0xF9,'LATIN SMALL LETTER U WITH RING ABOVE');
+insert into t1 values (0xFC,'LATIN SMALL LETTER U WITH DIAERESIS');
+insert into t1 values (0xFB,'LATIN SMALL LETTER U WITH DOUBLE ACUTE');
+insert into t1 values (0x55,'LATIN CAPITAL LETTER U');
+insert into t1 values (0xDA,'LATIN CAPITAL LETTER U WITH ACUTE');
+insert into t1 values (0xD9,'LATIN CAPITAL LETTER U WITH RING ABOVE');
+insert into t1 values (0xDC,'LATIN CAPITAL LETTER U WITH DIAERESIS');
+insert into t1 values (0xDB,'LATIN CAPITAL LETTER U WITH DOUBLE ACUTE');
+select
+hex(weight_string(ch level 1)) l1,
+hex(weight_string(ch level 2)) l2,
+hex(weight_string(ch level 3)) l3,
+hex(weight_string(ch level 4)) l4,
+name from t1 order by binary l1, binary l2, binary l3, binary l4;
+drop table t1;
+
+#
+# Bug#33791 Wrong ORDER BY with latin2_czech_cs
+#
+set names utf8;
+create table t1 (
+ch varchar(1),
+name varchar(64)
+) character set latin2 collate latin2_czech_cs;
+insert into t1 values (0x4F,'LATIN CAPITAL LETTER O');
+insert into t1 values (0xD3,'LATIN CAPITAL LETTER O WITH ACUTE');
+insert into t1 values (0xD4,'LATIN CAPITAL LETTER O WITH CURCUMFLEX');
+insert into t1 values (0xD6,'LATIN CAPITAL LETTER O WITH DIAERESIS');
+insert into t1 values (0xD5,'LATIN CAPITAL LETTER O WITH DOUBLE ACUTE');
+insert into t1 values (0x75,'LATIN _SMALL_ LETTER U');
+insert into t1 values (0xFA,'LATIN _SMALL_ LETTER U WITH ACUTE');
+insert into t1 values (0xF9,'LATIN _SMALL_ LETTER U WITH RING ABOVE');
+insert into t1 values (0xFC,'LATIN _SMALL_ LETTER U WITH DIAERESIS');
+insert into t1 values (0xFB,'LATIN _SMALL_ LETTER U WITH DOUBLE ACUTE');
+# Testing order by Field_varchar
+select ch,
+ hex(weight_string(ch level 1)) l1,
+ hex(weight_string(ch level 2)) l2,
+ hex(weight_string(ch level 3)) l3,
+ hex(weight_string(ch level 4)) l4,
+ name from t1 order by ch;
+alter table t1 modify ch char(1), modify name char(64);
+# Testing order by Field_char
+select ch,
+ hex(weight_string(ch level 1)) l1,
+ hex(weight_string(ch level 2)) l2,
+ hex(weight_string(ch level 3)) l3,
+ hex(weight_string(ch level 4)) l4,
+ name from t1 order by ch;
+# Testing order by Item
+select ch,
+ hex(weight_string(ch level 1)) l1,
+ hex(weight_string(ch level 2)) l2,
+ hex(weight_string(ch level 3)) l3,
+ hex(weight_string(ch level 4)) l4,
+ name from t1 order by concat(ch);
+drop table t1;
+
+#
+# Bug #30462 Character sets: search failures with case sensitive collations
+#
+SET collation_connection=latin2_czech_cs;
+CREATE TABLE t1 ENGINE=MYISAM AS SELECT repeat('a', 5) AS s1 LIMIT 0;
+INSERT INTO t1 VALUES ('x'),('y'),('z'),('X'),('Y'),('Z');
+SELECT * FROM t1 GROUP BY s1;
+SELECT * FROM t1 ORDER BY s1;
+CREATE INDEX i1 ON t1 (s1);
+SELECT * FROM t1 GROUP BY s1;
+SELECT * FROM t1 ORDER BY s1;
+DROP TABLE t1;
+
+set sql_mode="";
+--disable_warnings
+CREATE TABLE t1 ENGINE=INNODB AS SELECT repeat('a', 5) AS s1 LIMIT 0;
+--enable_warnings
+INSERT INTO t1 VALUES ('x'),('y'),('z'),('X'),('Y'),('Z');
+SELECT * FROM t1 GROUP BY s1;
+SELECT * FROM t1 ORDER BY s1;
+CREATE INDEX i1 ON t1 (s1);
+SELECT * FROM t1 GROUP BY s1;
+SELECT * FROM t1 ORDER BY s1;
+DROP TABLE t1;
+
+--disable_warnings
+SET sql_mode='';
+CREATE TABLE t1 ENGINE=FALCON AS SELECT repeat('a', 5) AS s1 LIMIT 0;
+SET sql_mode=DEFAULT;
+--enable_warnings
+INSERT INTO t1 VALUES ('x'),('y'),('z'),('X'),('Y'),('Z');
+SELECT * FROM t1 GROUP BY s1;
+SELECT * FROM t1 ORDER BY s1;
+CREATE INDEX i1 ON t1 (s1);
+SELECT * FROM t1 GROUP BY s1;
+SELECT * FROM t1 ORDER BY s1;
+DROP TABLE t1;
+
+--disable_warnings
+SET sql_mode='';
+CREATE TABLE t1 ENGINE=MARIA AS SELECT repeat('a', 5) AS s1 LIMIT 0;
+SET sql_mode=DEFAULT;
+--enable_warnings
+INSERT INTO t1 VALUES ('x'),('y'),('z'),('X'),('Y'),('Z');
+SELECT * FROM t1 GROUP BY s1;
+SELECT * FROM t1 ORDER BY s1;
+CREATE INDEX i1 ON t1 (s1);
+SELECT * FROM t1 GROUP BY s1;
+SELECT * FROM t1 ORDER BY s1;
+DROP TABLE t1;
+
+SET NAMES latin2;
+
+
+#
+# Bug#37854 Test fails/aborts for collate latin2_czech_cs used with SET and ENUM datatypes
+#
+CREATE TABLE t2(colours SET('red','blue','yellow'))CHARACTER SET latin2 COLLATE
+latin2_czech_cs;
+CREATE TABLE t1(continent ENUM('Asia', 'Europe','Africa','Antartica'))CHARACTER SET latin2
+COLLATE latin2_czech_cs;
+INSERT INTO t1 VALUES('Asia');
+INSERT INTO t2 VALUES('blue');
+SELECT * FROM t1;
+SELECT * FROM t2;
+DROP TABLE t1, t2;
+
+#
+# Bug#40805 Cannot restore table
+#
+CREATE TABLE `t1` (
+ `ID` smallint(5) unsigned zerofill NOT NULL AUTO_INCREMENT,
+ `Post` enum('','B','O','Z','U') COLLATE latin2_czech_cs DEFAULT NULL,
+ PRIMARY KEY (`ID`)
+) ENGINE=MyISAM AUTO_INCREMENT=135 DEFAULT CHARSET=latin2;
+SHOW CREATE TABLE t1;
+INSERT INTO t1 (ID,Post) VALUES (00041,'');
+SELECT ID, Post, HEX(WEIGHT_STRING(Post)) FROM t1;
+DROP TABLE t1;
+
+
+--echo #
+--echo # Start of 5.6 tests
+--echo #
+
+--echo #
+--echo # WL#3664 WEIGHT_STRING
+--echo #
+
+set names latin2 collate latin2_czech_cs;
+--source include/ctype_pad_space.inc
+# We can not use ctype_filesort.inc because
+# order of SPACE and TAB is not strict
+#--source include/ctype_filesort.inc
+
+--echo #
+--echo # Note:
+--echo # latin2_czech_cs does not support WEIGHT_STRING in full extent
+--echo #
+--source include/weight_string.inc
+--source include/weight_string_chde.inc
+--source include/weight_string_l1.inc
+--source include/weight_string_l2.inc
+--source include/weight_string_l3.inc
+--source include/weight_string_l4.inc
+--source include/weight_string_l12.inc
+--source include/weight_string_l14.inc
+
+--echo #
+--echo # End of 5.6 tests
+--echo #
+