# Test of charset cp1251 --disable_warnings drop table if exists t1; --enable_warnings SET NAMES cp1251; # # Test problem with LEFT() (Bug #514) # create table t1 (a varchar(10) not null) character set cp1251; insert into t1 values ("a"),("ab"),("abc"); select * from t1; select a, left(a,1) as b from t1; select a, left(a,1) as b from t1 group by a; SELECT DISTINCT RIGHT(a,1) from t1; drop table t1; # # Test of binary and upper/lower # create table t1 (a char(3) binary, b binary(3)) character set cp1251; insert into t1 values ('aaa','bbb'),('AAA','BBB'); select upper(a),upper(b) from t1; select lower(a),lower(b) from t1; select * from t1 where upper(a)='AAA'; select * from t1 where lower(a)='aaa'; select * from t1 where upper(b)='BBB'; select * from t1 where lower(b)='bbb'; select charset(a), charset(b), charset(binary 'ccc') from t1 limit 1; select collation(a), collation(b), collation(binary 'ccc') from t1 limit 1; drop table t1; # Test for BUG#8560 create table t1 ( a varchar(16) character set cp1251 collate cp1251_bin not null, b int(10) default null, primary key(a) ) charset=cp1251; insert into t1 (a) values ('air'), ('we'),('g'),('we_toshko'), ('s0urce'),('we_ivo'),('we_iliyan'), ('we_martin'),('vw_grado'),('vw_vasko'),('tn_vili'),('tn_kalina'), ('tn_fakira'),('vw_silvia'),('vw_starshi'),('vw_geo'),('vw_b0x1'); --sorted_result select * from t1 where a like 'we_%'; drop table t1; # # Bug#158 ENUM and SET types does not accept valid cp1251 character # CREATE TABLE t1 ( e1 enum('ябълка'), e2 enum('мляко') ) ENGINE=MYISAM character set cp1251; SHOW CREATE TABLE t1; DROP TABLE t1; # End of 4.1 tests --echo # --echo # Start of 5.1 tests --echo # --source include/ctype_8bit.inc --source include/ctype_pad_space.inc # # Bug #48053 String::c_ptr has a race and/or does an invalid # memory reference # (triggered by Valgrind tests) # (see also ctype_eucjpms.test, ctype_cp1250.test, ctype_cp1251.test) # --error 1649 set global LC_TIME_NAMES=convert((-8388608) using cp1251); --echo # --echo # End of 5.1 tests --echo # --echo # --echo # Start of 5.5 tests --echo # --source include/ctype_numconv.inc --echo # --echo # Bug#60101 COALESCE with cp1251 tables causes [Err] 1267 - Illegal mix of collations --echo # CREATE TABLE t1 (test1 INT, test2 VARCHAR(255)); SHOW CREATE TABLE t1; SELECT COALESCE(IF(test1=1, 1, NULL), test2) FROM t1; SELECT COALESCE(IF(test1=1, NULL, 1), test2) FROM t1; DROP TABLE t1; --echo # --echo # MDEV-5459 Illegal mix of collations for datetime --echo # SET NAMES cp1251; CREATE TABLE t1 (dt DATETIME); INSERT INTO t1 VALUES ('2014-01-02 10:20:30'); SELECT date(dt) FROM t1 WHERE (CASE WHEN 1 THEN date(dt) ELSE null END >= '2013-12-01 00:00:00'); DROP TABLE t1; --echo # --echo # End of 5.5 tests --echo # --echo # --echo # Start of 10.1 tests --echo # --echo # --echo # MDEV-8688 Wrong result for SELECT..WHERE varchar_column IN (1,2,3) AND varchar_column=' 1'; --echo # CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET cp1251 COLLATE cp1251_ukrainian_ci); INSERT INTO t1 VALUES (' 1'),('`1'); SELECT * FROM t1 WHERE a IN (1,2,3); SELECT * FROM t1 WHERE a IN (1,2,3) AND a=' 1'; SELECT * FROM t1 WHERE a IN (1,2,3,'4') AND a=' 1'; # Equality should not propagate ' 1' to IN: incompatible comparison context EXPLAIN EXTENDED SELECT * FROM t1 WHERE a IN (1,2,3) AND a=' 1'; EXPLAIN EXTENDED SELECT * FROM t1 WHERE a IN (1,2,3,'x') AND a=' 1'; DROP TABLE t1; --echo # --echo # MDEV-8671 Wrong result for SELECT..WHERE varchar_column=' 1' AND (varchar_column XOR '1') --echo # CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET cp1251 COLLATE cp1251_ukrainian_ci); INSERT INTO t1 VALUES (' 1'),('`1'); SELECT * FROM t1 WHERE a=' 1'; SELECT * FROM t1 WHERE (a XOR '0'); SELECT * FROM t1 WHERE a=' 1' AND (a XOR '0'); --echo # ' 1' should not be propagated into (a XIR '0') EXPLAIN EXTENDED SELECT * FROM t1 WHERE a=' 1' AND (a XOR '0'); DROP TABLE t1; --echo # --echo # End of 10.1 tests --echo #