summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorunknown <bar@mysql.com>2005-07-22 21:13:15 +0500
committerunknown <bar@mysql.com>2005-07-22 21:13:15 +0500
commit1c4da828d49af0de4df559573bb37b9f153efdce (patch)
treeb90c6f6cc4c0da22fd4690eaed32cebde6a95878 /mysql-test
parent29f42518f2db1e05a1120cebeb2624fda91376d8 (diff)
parentbf45b6ba8477a9a910ec530c126569c208d5c0a1 (diff)
downloadmariadb-git-1c4da828d49af0de4df559573bb37b9f153efdce.tar.gz
Merge mysql.com:/usr/home/bar/mysql-4.1.b11987
into mysql.com:/usr/home/bar/mysql-5.0 strings/ctype-gbk.c: Auto merged
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/include/have_gbk.inc4
-rw-r--r--mysql-test/r/ctype_gbk.result131
-rw-r--r--mysql-test/r/have_gbk.require2
-rw-r--r--mysql-test/t/ctype_gbk.test30
4 files changed, 167 insertions, 0 deletions
diff --git a/mysql-test/include/have_gbk.inc b/mysql-test/include/have_gbk.inc
new file mode 100644
index 00000000000..55805da0495
--- /dev/null
+++ b/mysql-test/include/have_gbk.inc
@@ -0,0 +1,4 @@
+-- require r/have_gbk.require
+disable_query_log;
+show collation like "gbk_chinese_ci";
+enable_query_log;
diff --git a/mysql-test/r/ctype_gbk.result b/mysql-test/r/ctype_gbk.result
new file mode 100644
index 00000000000..1a9dea28429
--- /dev/null
+++ b/mysql-test/r/ctype_gbk.result
@@ -0,0 +1,131 @@
+drop table if exists t1;
+SET @test_character_set= 'gbk';
+SET @test_collation= 'gbk_chinese_ci';
+SET @safe_character_set_server= @@character_set_server;
+SET @safe_collation_server= @@collation_server;
+SET character_set_server= @test_character_set;
+SET collation_server= @test_collation;
+CREATE DATABASE d1;
+USE d1;
+CREATE TABLE t1 (c CHAR(10), KEY(c));
+SHOW FULL COLUMNS FROM t1;
+Field Type Collation Null Key Default Extra Privileges Comment
+c char(10) gbk_chinese_ci YES MUL NULL
+INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa');
+SELECT c as want3results FROM t1 WHERE c LIKE 'aaa%';
+want3results
+aaa
+aaaa
+aaaaa
+DROP TABLE t1;
+CREATE TABLE t1 (c1 varchar(15), KEY c1 (c1(2)));
+SHOW FULL COLUMNS FROM t1;
+Field Type Collation Null Key Default Extra Privileges Comment
+c1 varchar(15) gbk_chinese_ci YES MUL NULL
+INSERT INTO t1 VALUES ('location'),('loberge'),('lotre'),('boabab');
+SELECT c1 as want3results from t1 where c1 like 'l%';
+want3results
+location
+loberge
+lotre
+SELECT c1 as want3results from t1 where c1 like 'lo%';
+want3results
+location
+loberge
+lotre
+SELECT c1 as want1result from t1 where c1 like 'loc%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'loca%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'locat%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'locati%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'locatio%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'location%';
+want1result
+location
+DROP TABLE t1;
+DROP DATABASE d1;
+USE test;
+SET character_set_server= @safe_character_set_server;
+SET collation_server= @safe_collation_server;
+SET NAMES gbk;
+SET collation_connection='gbk_chinese_ci';
+create table t1 select repeat('a',4000) a;
+delete from t1;
+insert into t1 values ('a'), ('a '), ('a\t');
+select collation(a),hex(a) from t1 order by a;
+collation(a) hex(a)
+gbk_chinese_ci 6109
+gbk_chinese_ci 61
+gbk_chinese_ci 6120
+drop table t1;
+create table t1 engine=innodb select repeat('a',50) as c1;
+alter table t1 add index(c1(5));
+insert into t1 values ('abcdefg'),('abcde100'),('abcde110'),('abcde111');
+select collation(c1) from t1 limit 1;
+collation(c1)
+gbk_chinese_ci
+select c1 from t1 where c1 like 'abcdef%' order by c1;
+c1
+abcdefg
+select c1 from t1 where c1 like 'abcde1%' order by c1;
+c1
+abcde100
+abcde110
+abcde111
+select c1 from t1 where c1 like 'abcde11%' order by c1;
+c1
+abcde110
+abcde111
+select c1 from t1 where c1 like 'abcde111%' order by c1;
+c1
+abcde111
+drop table t1;
+SET collation_connection='gbk_bin';
+create table t1 select repeat('a',4000) a;
+delete from t1;
+insert into t1 values ('a'), ('a '), ('a\t');
+select collation(a),hex(a) from t1 order by a;
+collation(a) hex(a)
+gbk_bin 6109
+gbk_bin 61
+gbk_bin 6120
+drop table t1;
+create table t1 engine=innodb select repeat('a',50) as c1;
+alter table t1 add index(c1(5));
+insert into t1 values ('abcdefg'),('abcde100'),('abcde110'),('abcde111');
+select collation(c1) from t1 limit 1;
+collation(c1)
+gbk_bin
+select c1 from t1 where c1 like 'abcdef%' order by c1;
+c1
+abcdefg
+select c1 from t1 where c1 like 'abcde1%' order by c1;
+c1
+abcde100
+abcde110
+abcde111
+select c1 from t1 where c1 like 'abcde11%' order by c1;
+c1
+abcde110
+abcde111
+select c1 from t1 where c1 like 'abcde111%' order by c1;
+c1
+abcde111
+drop table t1;
+SET NAMES gbk;
+CREATE TABLE t1 (a text) character set gbk;
+INSERT INTO t1 VALUES (0xA3A0),(0xA1A1);
+SELECT hex(a) FROM t1 ORDER BY a;
+hex(a)
+A1A1
+A3A0
+DROP TABLE t1;
diff --git a/mysql-test/r/have_gbk.require b/mysql-test/r/have_gbk.require
new file mode 100644
index 00000000000..e19fead153a
--- /dev/null
+++ b/mysql-test/r/have_gbk.require
@@ -0,0 +1,2 @@
+Collation Charset Id Default Compiled Sortlen
+gbk_chinese_ci gbk 28 Yes Yes 1
diff --git a/mysql-test/t/ctype_gbk.test b/mysql-test/t/ctype_gbk.test
new file mode 100644
index 00000000000..82a2e61879e
--- /dev/null
+++ b/mysql-test/t/ctype_gbk.test
@@ -0,0 +1,30 @@
+-- source include/have_gbk.inc
+
+#
+# Tests with the gbk character set
+#
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+SET @test_character_set= 'gbk';
+SET @test_collation= 'gbk_chinese_ci';
+-- source include/ctype_common.inc
+
+SET NAMES gbk;
+SET collation_connection='gbk_chinese_ci';
+-- source include/ctype_filesort.inc
+-- source include/ctype_innodb_like.inc
+SET collation_connection='gbk_bin';
+-- source include/ctype_filesort.inc
+-- source include/ctype_innodb_like.inc
+
+#
+# Bug#11987 mysql will truncate the text when
+# the text contain GBK char:"0xA3A0" and "0xA1"
+#
+SET NAMES gbk;
+CREATE TABLE t1 (a text) character set gbk;
+INSERT INTO t1 VALUES (0xA3A0),(0xA1A1);
+SELECT hex(a) FROM t1 ORDER BY a;
+DROP TABLE t1;