summaryrefslogtreecommitdiff
path: root/mysql-test/t
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/t')
-rw-r--r--mysql-test/t/alter_table.test75
-rw-r--r--mysql-test/t/bdb-crash.test11
-rw-r--r--mysql-test/t/bdb.test14
-rw-r--r--mysql-test/t/bigint.test3
-rw-r--r--mysql-test/t/binary.test15
-rw-r--r--mysql-test/t/case.test8
-rw-r--r--mysql-test/t/cast.test4
-rw-r--r--mysql-test/t/compare.test17
-rw-r--r--mysql-test/t/create.test81
-rw-r--r--mysql-test/t/ctype_collate.test14
-rw-r--r--mysql-test/t/ctype_cp1251.test17
-rw-r--r--mysql-test/t/ctype_create.test14
-rw-r--r--mysql-test/t/ctype_sjis.test34
-rw-r--r--mysql-test/t/ctype_tis620-master.opt1
-rw-r--r--mysql-test/t/ctype_tis620.test54
-rw-r--r--mysql-test/t/ctype_ujis.test20
-rw-r--r--mysql-test/t/ctype_utf8.test44
-rw-r--r--mysql-test/t/date_formats.test31
-rw-r--r--mysql-test/t/delete.test4
-rw-r--r--mysql-test/t/derived.test16
-rw-r--r--mysql-test/t/drop.test2
-rw-r--r--mysql-test/t/endspace.test96
-rw-r--r--mysql-test/t/fulltext.test13
-rw-r--r--mysql-test/t/fulltext_var.test22
-rw-r--r--mysql-test/t/func_gconcat.test81
-rw-r--r--mysql-test/t/func_group.test1
-rw-r--r--mysql-test/t/func_if.test6
-rw-r--r--mysql-test/t/func_in.test6
-rw-r--r--mysql-test/t/func_like.test18
-rw-r--r--mysql-test/t/func_math.test21
-rw-r--r--mysql-test/t/func_misc.test4
-rw-r--r--mysql-test/t/func_sapdb.test6
-rw-r--r--mysql-test/t/func_str.test124
-rw-r--r--mysql-test/t/func_test.test13
-rw-r--r--mysql-test/t/func_time.test18
-rw-r--r--mysql-test/t/gis-rtree.test36
-rw-r--r--mysql-test/t/gis.test201
-rw-r--r--mysql-test/t/grant.test33
-rw-r--r--mysql-test/t/grant2.test1
-rw-r--r--mysql-test/t/grant_cache.test20
-rw-r--r--mysql-test/t/handler.test16
-rw-r--r--mysql-test/t/heap_btree.test9
-rw-r--r--mysql-test/t/init_file-master.opt1
-rw-r--r--mysql-test/t/init_file.test7
-rw-r--r--mysql-test/t/innodb.test45
-rw-r--r--mysql-test/t/insert.test52
-rw-r--r--mysql-test/t/insert_select.test31
-rw-r--r--mysql-test/t/insert_update.test22
-rw-r--r--mysql-test/t/key.test13
-rw-r--r--mysql-test/t/key_cache.test4
-rw-r--r--mysql-test/t/lock.test4
-rw-r--r--mysql-test/t/lock_tables_lost_commit.test2
-rw-r--r--mysql-test/t/lowercase_table.test26
-rw-r--r--mysql-test/t/lowercase_table2.test91
-rw-r--r--mysql-test/t/lowercase_table3-master.opt1
-rw-r--r--mysql-test/t/lowercase_table3.test37
-rw-r--r--mysql-test/t/lowercase_table_qcache-master.opt1
-rw-r--r--mysql-test/t/lowercase_table_qcache.test29
-rw-r--r--mysql-test/t/metadata.test35
-rw-r--r--mysql-test/t/multi_update.test36
-rw-r--r--mysql-test/t/myisam-blob-master.opt1
-rw-r--r--mysql-test/t/myisam-blob.test41
-rw-r--r--mysql-test/t/myisam.test69
-rw-r--r--mysql-test/t/mysqlbinlog.test5
-rw-r--r--mysql-test/t/mysqldump.test29
-rw-r--r--mysql-test/t/order_by.test42
-rw-r--r--mysql-test/t/query_cache.test24
-rw-r--r--mysql-test/t/raid.test1
-rw-r--r--mysql-test/t/range.test20
-rw-r--r--mysql-test/t/rename.test24
-rw-r--r--mysql-test/t/repair_part1.test12
-rw-r--r--mysql-test/t/row.test14
-rw-r--r--mysql-test/t/rpl000002.test15
-rw-r--r--mysql-test/t/rpl000009.test15
-rw-r--r--mysql-test/t/rpl_error_ignored_table-slave.opt2
-rw-r--r--mysql-test/t/rpl_error_ignored_table.test30
-rw-r--r--mysql-test/t/rpl_heap.test47
-rw-r--r--mysql-test/t/rpl_insert_id.test2
-rw-r--r--mysql-test/t/rpl_multi_delete-slave.opt1
-rw-r--r--mysql-test/t/rpl_multi_delete.test23
-rw-r--r--mysql-test/t/rpl_optimize.test43
-rw-r--r--mysql-test/t/rpl_relayrotate-master.opt1
-rw-r--r--mysql-test/t/rpl_relayrotate.test21
-rw-r--r--mysql-test/t/rpl_temporary.test13
-rw-r--r--mysql-test/t/rpl_until.test10
-rw-r--r--mysql-test/t/select.test16
-rw-r--r--mysql-test/t/select_found.test28
-rw-r--r--mysql-test/t/show_check.test162
-rw-r--r--mysql-test/t/subselect.test126
-rw-r--r--mysql-test/t/subselect_innodb.test2
-rw-r--r--mysql-test/t/symlink.test2
-rw-r--r--mysql-test/t/synchronization.test33
-rw-r--r--mysql-test/t/system_mysql_db.test8
-rw-r--r--mysql-test/t/system_mysql_db_fix-master.opt1
-rw-r--r--mysql-test/t/system_mysql_db_fix.test78
-rw-r--r--mysql-test/t/system_mysql_db_refs.test101
-rw-r--r--mysql-test/t/timezone.test9
-rw-r--r--mysql-test/t/type_blob.test16
-rw-r--r--mysql-test/t/type_timestamp.test144
-rw-r--r--mysql-test/t/type_year.test9
-rw-r--r--mysql-test/t/union.test40
-rw-r--r--mysql-test/t/update.test1
-rw-r--r--mysql-test/t/user_var.test4
-rw-r--r--mysql-test/t/variables.test40
104 files changed, 2664 insertions, 322 deletions
diff --git a/mysql-test/t/alter_table.test b/mysql-test/t/alter_table.test
index c013b2251a9..32654bb0bc4 100644
--- a/mysql-test/t/alter_table.test
+++ b/mysql-test/t/alter_table.test
@@ -3,6 +3,7 @@
#
--disable_warnings
drop table if exists t1,t2;
+drop database if exists mysqltest;
--enable_warnings
create table t1 (
@@ -79,6 +80,53 @@ OPTIMIZE TABLE t1;
DROP TABLE t1;
#
+# Drop and add an auto_increment column
+#
+
+create table t1 (i int unsigned not null auto_increment primary key);
+insert into t1 values (null),(null),(null),(null);
+alter table t1 drop i,add i int unsigned not null auto_increment, drop primary key, add primary key (i);
+select * from t1;
+drop table t1;
+
+#
+# Bug #2628: 'alter table t1 rename mysqltest.t1' silently drops mysqltest.t1
+# if it exists
+#
+create table t1 (name char(15));
+insert into t1 (name) values ("current");
+create database mysqltest;
+create table mysqltest.t1 (name char(15));
+insert into mysqltest.t1 (name) values ("mysqltest");
+select * from t1;
+select * from mysqltest.t1;
+--error 1050
+alter table t1 rename mysqltest.t1;
+select * from t1;
+select * from mysqltest.t1;
+drop table t1;
+drop database mysqltest;
+
+#
+# Rights for renaming test (Bug #3270)
+#
+connect (root,localhost,root,,test,$MASTER_MYPORT,master.sock);
+connection root;
+--disable_warnings
+create database mysqltest;
+--enable_warnings
+create table mysqltest.t1 (a int,b int,c int);
+grant all on mysqltest.t1 to mysqltest_1@localhost;
+connect (user1,localhost,mysqltest_1,,mysqltest,$MASTER_MYPORT,master.sock);
+connection user1;
+-- error 1142
+alter table t1 rename t2;
+connection root;
+revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
+delete from mysql.user where user='mysqltest_1';
+drop database mysqltest;
+
+#
# ALTER TABLE ... ENABLE/DISABLE KEYS
create table t1 (n1 int not null, n2 int, n3 int, n4 float,
@@ -101,16 +149,6 @@ show keys from t1;
drop table t1;
#
-# Drop and add an auto_increment column
-#
-
-create table t1 (i int unsigned not null auto_increment primary key);
-insert into t1 values (null),(null),(null),(null);
-alter table t1 drop i,add i int unsigned not null auto_increment, drop primary key, add primary key (i);
-select * from t1;
-drop table t1;
-
-#
# Alter table and rename
#
@@ -155,7 +193,7 @@ insert into t1 values ('ÔÅÓÔ');
select a,hex(a) from t1;
alter table t1 change a a char(10) character set cp1251;
select a,hex(a) from t1;
-alter table t1 change a a char(10) binary;
+alter table t1 change a a binary(10);
select a,hex(a) from t1;
alter table t1 change a a char(10) character set cp1251;
select a,hex(a) from t1;
@@ -176,7 +214,7 @@ select a,hex(a) from t1;
show create table t1;
alter table t1 DEFAULT CHARACTER SET latin1;
show create table t1;
-alter table t1 CHARACTER SET latin1;
+alter table t1 CONVERT TO CHARACTER SET latin1;
show create table t1;
alter table t1 DEFAULT CHARACTER SET cp1251;
show create table t1;
@@ -184,6 +222,17 @@ show create table t1;
drop table t1;
#
+# Bug#2821
+# Test that table CHARACTER SET does not affect blobs
+#
+create table t1 (myblob longblob,mytext longtext)
+default charset latin1 collate latin1_general_cs;
+show create table t1;
+alter table t1 character set latin2;
+show create table t1;
+drop table t1;
+
+#
# Test ALTER TABLE ENABLE/DISABLE keys when things are locked
#
@@ -246,7 +295,7 @@ SHOW INDEX FROM t1;
DROP TABLE t1;
#
-# Bug 2361
+# Bug 2361 (Don't drop UNIQUE with DROP PRIMARY KEY)
#
CREATE TABLE t1 (a int PRIMARY KEY, b INT UNIQUE);
diff --git a/mysql-test/t/bdb-crash.test b/mysql-test/t/bdb-crash.test
index fffed379e79..3cd78821000 100644
--- a/mysql-test/t/bdb-crash.test
+++ b/mysql-test/t/bdb-crash.test
@@ -36,3 +36,14 @@ INSERT INTO t1
VALUES(NULL,1,'2001-03-01',1,1,1,'New',NULL,NULL,'now');
select * from t1;
drop table t1;
+
+#
+# Test for bug #2342 "Running ANALYZE TABLE on bdb table
+# inside a transaction hangs server thread"
+
+create table t1 (a int) engine=bdb;
+
+set autocommit=0;
+insert into t1 values(1);
+analyze table t1;
+drop table t1;
diff --git a/mysql-test/t/bdb.test b/mysql-test/t/bdb.test
index 12b81f27147..6823dd23b73 100644
--- a/mysql-test/t/bdb.test
+++ b/mysql-test/t/bdb.test
@@ -808,3 +808,17 @@ insert into t2 select * from t1;
delete t1,t2 from t2,t1 where t1.a<'B' and t2.b=t1.b;
drop table t1,t2;
+
+#
+# Test index only read (Bug #2509)
+#
+create table t1 (a char(10), key(a), b int not null, key(b)) engine=bdb;
+insert into t1 values ('a',1),('A',2);
+explain select a from t1;
+select a from t1;
+explain select b from t1;
+select b from t1;
+alter table t1 modify a char(10) binary;
+explain select a from t1;
+select a from t1;
+drop table t1;
diff --git a/mysql-test/t/bigint.test b/mysql-test/t/bigint.test
index 5c977983087..c509a4113f4 100644
--- a/mysql-test/t/bigint.test
+++ b/mysql-test/t/bigint.test
@@ -68,3 +68,6 @@ insert into t1 values ('10000000000000000000');
select * from t1;
drop table t1;
+# atof() behaviour is different of different systems. to be fixed in 4.1
+SELECT '0x8000000000000001'+0;
+
diff --git a/mysql-test/t/binary.test b/mysql-test/t/binary.test
index 48912a390ed..20a047e0b26 100644
--- a/mysql-test/t/binary.test
+++ b/mysql-test/t/binary.test
@@ -51,3 +51,18 @@ select b from t1 where binary b like '';
select b from t1 group by binary b like '';
select b from t1 having binary b like '';
drop table t1;
+
+#
+# Test of binary and upper/lower
+#
+create table t1 (a char(15) binary, b binary(15));
+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;
diff --git a/mysql-test/t/case.test b/mysql-test/t/case.test
index 9377c6c4aef..87e456baba7 100644
--- a/mysql-test/t/case.test
+++ b/mysql-test/t/case.test
@@ -63,14 +63,14 @@ CREATE TABLE t1 SELECT
SHOW CREATE TABLE t1;
DROP TABLE t1;
---error 1266
+--error 1267
SELECT CASE
WHEN 1
THEN _latin1'a' COLLATE latin1_danish_ci
ELSE _latin1'a' COLLATE latin1_swedish_ci
END;
---error 1269
+--error 1270
SELECT CASE _latin1'a' COLLATE latin1_general_ci
WHEN _latin1'a' COLLATE latin1_danish_ci THEN 1
WHEN _latin1'a' COLLATE latin1_swedish_ci THEN 2
@@ -93,9 +93,9 @@ CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_bin THEN '1' ELSE 2 END
#
# Check COALESCE argument types aggregation
---error 1266
+--error 1267
CREATE TABLE t1 SELECT COALESCE(_latin1'a',_latin2'a');
---error 1266
+--error 1267
CREATE TABLE t1 SELECT COALESCE('a' COLLATE latin1_swedish_ci,'b' COLLATE latin1_bin);
CREATE TABLE t1 SELECT
COALESCE(1), COALESCE(1.0),COALESCE('a'),
diff --git a/mysql-test/t/cast.test b/mysql-test/t/cast.test
index fab35bb334a..e2deb792d47 100644
--- a/mysql-test/t/cast.test
+++ b/mysql-test/t/cast.test
@@ -19,8 +19,8 @@ select CONVERT("2004-01-22 21:45:33",DATE);
select CONVERT(DATE "2004-01-22 21:45:33" USING latin1);
select CONVERT(DATE "2004-01-22 21:45:33",CHAR);
select CONVERT(DATE "2004-01-22 21:45:33",CHAR(4));
-select CONVERT(DATE "2004-01-22 21:45:33",CHAR(4) BINARY);
-select CAST(DATE "2004-01-22 21:45:33" AS CHAR(4) BINARY);
+select CONVERT(DATE "2004-01-22 21:45:33",BINARY(4));
+select CAST(DATE "2004-01-22 21:45:33" AS BINARY(4));
#
# Character set convertion
diff --git a/mysql-test/t/compare.test b/mysql-test/t/compare.test
index e5a2e310866..b0cef48dd3f 100644
--- a/mysql-test/t/compare.test
+++ b/mysql-test/t/compare.test
@@ -13,3 +13,20 @@ select * from t1 where id=000000000001;
delete from t1 where id=000000000002;
select * from t1;
drop table t1;
+
+#
+# Check the following:
+# "a" == "a "
+# "a\0" < "a"
+# "a\0" < "a "
+
+SELECT 'a' = 'a ';
+SELECT 'a\0' < 'a';
+SELECT 'a\0' < 'a ';
+SELECT 'a\t' < 'a';
+SELECT 'a\t' < 'a ';
+
+CREATE TABLE t1 (a char(10) not null);
+INSERT INTO t1 VALUES ('a'),('a\0'),('a\t'),('a ');
+SELECT hex(a),STRCMP(a,'a'), STRCMP(a,'a ') FROM t1;
+DROP TABLE t1;
diff --git a/mysql-test/t/create.test b/mysql-test/t/create.test
index 64134fe9990..4bd92994530 100644
--- a/mysql-test/t/create.test
+++ b/mysql-test/t/create.test
@@ -49,6 +49,16 @@ create table `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
create table a (`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` int);
#
+# Some wrong defaults, so these creates should fail too
+#
+--error 1067
+create table test (a datetime default now());
+--error 1294
+create table test (a datetime on update now());
+--error 1067
+create table test (a int default 100 auto_increment);
+
+#
# test of dummy table names
#
@@ -74,7 +84,7 @@ create table `` (a int);
drop table if exists ``;
--error 1166
create table t1 (`` int);
---error 1279
+--error 1280
create table t1 (i int, index `` (i));
#
@@ -157,7 +167,7 @@ SELECT @@storage_engine;
CREATE TABLE t1 (a int not null);
show create table t1;
drop table t1;
---error 1285
+--error 1286
SET SESSION storage_engine="gemini";
SELECT @@storage_engine;
CREATE TABLE t1 (a int not null);
@@ -220,6 +230,18 @@ select * from t1;
drop table t1;
#
+# Test for Bug #2985
+# "Table truncated when creating another table name with Spaces"
+#
+
+--error 1103
+create table `t1 `(a int);
+--error 1102
+create database `db1 `;
+--error 1166;
+create table t1(`a ` int);
+
+#
# Test create with foreign keys
#
@@ -277,7 +299,7 @@ SELECT @@storage_engine;
CREATE TABLE t1 (a int not null);
show create table t1;
drop table t1;
---error 1285
+--error 1286
SET SESSION storage_engine="gemini";
SELECT @@storage_engine;
CREATE TABLE t1 (a int not null);
@@ -347,6 +369,15 @@ describe t2;
drop table t1, t2;
#
+# test for bug #1427 "enum allows duplicate values in the list"
+#
+
+create table t1(cenum enum('a'), cset set('b'));
+create table t2(cenum enum('a','a'), cset set('b','b'));
+create table t3(cenum enum('a','A','a','c','c'), cset set('b','B','b','d','d'));
+drop table t1, t2, t3;
+
+#
# Bug #1209
#
@@ -359,3 +390,47 @@ select database();
# Connect without a database
connect (user4,localhost,mysqltest_1,,*NO-ONE*);
select database();
+
+#
+# Test for Bug 856 'Naming a key "Primary" causes trouble'
+#
+
+use test;
+--error 1280
+create table t1 (a int, index `primary` (a));
+--error 1280
+create table t1 (a int, index `PRIMARY` (a));
+
+create table t1 (`primary` int, index(`primary`));
+show create table t1;
+create table t2 (`PRIMARY` int, index(`PRIMARY`));
+show create table t2;
+
+create table t3 (a int);
+--error 1280
+alter table t3 add index `primary` (a);
+--error 1280
+alter table t3 add index `PRIMARY` (a);
+
+create table t4 (`primary` int);
+alter table t4 add index(`primary`);
+show create table t4;
+create table t5 (`PRIMARY` int);
+alter table t5 add index(`PRIMARY`);
+show create table t5;
+
+drop table t1, t2, t3, t4, t5;
+
+#
+# bug #3266 TEXT in CREATE TABLE SELECT
+#
+
+CREATE TABLE t1(id varchar(10) NOT NULL PRIMARY KEY, dsc longtext);
+INSERT INTO t1 VALUES ('5000000001', NULL),('5000000003', 'Test'),('5000000004', NULL);
+CREATE TABLE t2(id varchar(15) NOT NULL, proc varchar(100) NOT NULL, runID varchar(16) NOT NULL, start datetime NOT NULL, PRIMARY KEY (id,proc,runID,start));
+
+INSERT INTO t2 VALUES ('5000000001', 'proc01', '20031029090650', '2003-10-29 13:38:40'),('5000000001', 'proc02', '20031029090650', '2003-10-29 13:38:51'),('5000000001', 'proc03', '20031029090650', '2003-10-29 13:38:11'),('5000000002', 'proc09', '20031024013310', '2003-10-24 01:33:11'),('5000000002', 'proc09', '20031024153537', '2003-10-24 15:36:04'),('5000000004', 'proc01', '20031024013641', '2003-10-24 01:37:29'),('5000000004', 'proc02', '20031024013641', '2003-10-24 01:37:39');
+
+CREATE TABLE t3 SELECT t1.dsc,COUNT(DISTINCT t2.id) AS countOfRuns FROM t1 LEFT JOIN t2 ON (t1.id=t2.id) GROUP BY t1.id;
+SELECT * FROM t3;
+drop table t1, t2, t3;
diff --git a/mysql-test/t/ctype_collate.test b/mysql-test/t/ctype_collate.test
index 5916e3da241..3599beeacc4 100644
--- a/mysql-test/t/ctype_collate.test
+++ b/mysql-test/t/ctype_collate.test
@@ -7,12 +7,12 @@ CREATE TABLE t1 (
latin1_f CHAR(32) CHARACTER SET latin1 NOT NULL
);
---error 1252
+--error 1253
CREATE TABLE t2 (
latin1_f CHAR(32) CHARACTER SET latin1 COLLATE koi8r_general_ci NOT NULL
);
---error 1272
+--error 1273
CREATE TABLE t2 (
latin1_f CHAR(32) CHARACTER SET latin1 COLLATE some_non_existing_col NOT NULL
);
@@ -66,7 +66,7 @@ SELECT latin1_f FROM t1 ORDER BY latin1_f COLLATE latin1_swedish_ci;
SELECT latin1_f FROM t1 ORDER BY latin1_f COLLATE latin1_german2_ci;
SELECT latin1_f FROM t1 ORDER BY latin1_f COLLATE latin1_general_ci;
SELECT latin1_f FROM t1 ORDER BY latin1_f COLLATE latin1_bin;
---error 1252
+--error 1253
SELECT latin1_f FROM t1 ORDER BY latin1_f COLLATE koi8r_general_ci;
--SELECT latin1_f COLLATE koi8r FROM t1 ;
@@ -76,7 +76,7 @@ SELECT latin1_f COLLATE latin1_swedish_ci AS latin1_f_as FROM t1 ORDER BY latin1
SELECT latin1_f COLLATE latin1_german2_ci AS latin1_f_as FROM t1 ORDER BY latin1_f_as;
SELECT latin1_f COLLATE latin1_general_ci AS latin1_f_as FROM t1 ORDER BY latin1_f_as;
SELECT latin1_f COLLATE latin1_bin AS latin1_f_as FROM t1 ORDER BY latin1_f_as;
---error 1252
+--error 1253
SELECT latin1_f COLLATE koi8r_general_ci AS latin1_f_as FROM t1 ORDER BY latin1_f_as;
@@ -87,7 +87,7 @@ SELECT latin1_f,count(*) FROM t1 GROUP BY latin1_f COLLATE latin1_swedish_ci;
SELECT latin1_f,count(*) FROM t1 GROUP BY latin1_f COLLATE latin1_german2_ci;
SELECT latin1_f,count(*) FROM t1 GROUP BY latin1_f COLLATE latin1_general_ci;
SELECT latin1_f,count(*) FROM t1 GROUP BY latin1_f COLLATE latin1_bin;
---error 1252
+--error 1253
SELECT latin1_f,count(*) FROM t1 GROUP BY latin1_f COLLATE koi8r_general_ci;
@@ -98,7 +98,7 @@ SELECT DISTINCT latin1_f COLLATE latin1_swedish_ci FROM t1;
SELECT DISTINCT latin1_f COLLATE latin1_german2_ci FROM t1;
SELECT DISTINCT latin1_f COLLATE latin1_general_ci FROM t1;
SELECT DISTINCT latin1_f COLLATE latin1_bin FROM t1;
---error 1272
+--error 1273
SELECT DISTINCT latin1_f COLLATE koi8r FROM t1;
@@ -153,7 +153,7 @@ DROP TABLE t1;
CREATE TABLE t1
(s1 CHAR(5) COLLATE latin1_german1_ci,
s2 CHAR(5) COLLATE latin1_swedish_ci);
---error 1266
+--error 1267
SELECT * FROM t1 WHERE s1 = s2;
DROP TABLE t1;
diff --git a/mysql-test/t/ctype_cp1251.test b/mysql-test/t/ctype_cp1251.test
index fffade35389..66a8a5aa909 100644
--- a/mysql-test/t/ctype_cp1251.test
+++ b/mysql-test/t/ctype_cp1251.test
@@ -4,6 +4,8 @@
drop table if exists t1;
--enable_warnings
+SET NAMES cp1251;
+
#
# Test problem with LEFT() (Bug #514)
#
@@ -15,3 +17,18 @@ 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(15) binary, b binary(15));
+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;
diff --git a/mysql-test/t/ctype_create.test b/mysql-test/t/ctype_create.test
index a4858898535..bd8c22bb4f6 100644
--- a/mysql-test/t/ctype_create.test
+++ b/mysql-test/t/ctype_create.test
@@ -34,6 +34,20 @@ DROP DATABASE db2;
USE db1;
CREATE TABLE t1 (a char(10));
SHOW CREATE TABLE t1;
+DROP TABLE t1;
+#
+# Bug#3255
+#
+CREATE TABLE t1 (a char(10)) DEFAULT CHARACTER SET latin1;
+SHOW CREATE TABLE t1;
+DROP TABLE t1;
+CREATE TABLE t1 (a char(10))
+DEFAULT CHARACTER SET latin1 COLLATE latin1_german1_ci;
+SHOW CREATE TABLE t1;
DROP TABLE t1;
+
+#
+#
+#
DROP DATABASE db1;
diff --git a/mysql-test/t/ctype_sjis.test b/mysql-test/t/ctype_sjis.test
new file mode 100644
index 00000000000..1dd363c4910
--- /dev/null
+++ b/mysql-test/t/ctype_sjis.test
@@ -0,0 +1,34 @@
+-- source include/have_sjis.inc
+
+#
+# Tests with the sjis character set
+#
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+set names sjis;
+
+select 'a' like 'a';
+select 'A' like 'a';
+select 'A' like 'a' collate sjis_bin;
+
+set @sjis1= _sjis 0xa1a2a3a4a5a6a7a8a9aaabacadaeaf;
+set @sjis2= _sjis 0xb0b1b2b3b4b5b6b7b8b9babbbcbdbebf;
+set @sjis3= _sjis 0xc0c1c2c3c4c5c6c7c8c9cacbcccdcecf;
+set @sjis4= _sjis 0xd0d1d2d3d4d5d6d7d8d9dadbdcdddedf;
+
+set @utf81= CONVERT(@sjis1 USING utf8);
+set @utf82= CONVERT(@sjis2 USING utf8);
+set @utf83= CONVERT(@sjis3 USING utf8);
+set @utf84= CONVERT(@sjis4 USING utf8);
+
+select hex(@utf81);
+select hex(@utf82);
+select hex(@utf83);
+select hex(@utf84);
+
+select hex(CONVERT(@utf81 USING sjis));
+select hex(CONVERT(@utf82 USING sjis));
+select hex(CONVERT(@utf83 USING sjis));
+select hex(CONVERT(@utf84 USING sjis));
diff --git a/mysql-test/t/ctype_tis620-master.opt b/mysql-test/t/ctype_tis620-master.opt
new file mode 100644
index 00000000000..69d47c06e42
--- /dev/null
+++ b/mysql-test/t/ctype_tis620-master.opt
@@ -0,0 +1 @@
+--default-character-set=tis620
diff --git a/mysql-test/t/ctype_tis620.test b/mysql-test/t/ctype_tis620.test
index 82c660dfea0..9bffc2b7ab8 100644
--- a/mysql-test/t/ctype_tis620.test
+++ b/mysql-test/t/ctype_tis620.test
@@ -62,3 +62,57 @@ SELECT hex(convert(@uC USING tis620));
SELECT hex(convert(@uD USING tis620));
SELECT hex(convert(@uE USING tis620));
SELECT hex(convert(@uF USING tis620));
+
+SET NAMES tis620;
+
+CREATE TABLE t1 (
+ recid int(11) NOT NULL auto_increment,
+ dyninfo text,
+ PRIMARY KEY (recid)
+) ENGINE=MyISAM;
+
+show create table t1;
+
+INSERT INTO t1 VALUES (1,'color=\"STB,NPG\"\r\nengine=\"J30A13\"\r\nframe=\"MRHCG1640YP4\"\r\ngrade=\"V6\"\r\nmodel=\"ACCORD\"\r\nmodelcode=\"CG164YEN\"\r\ntype=\"VT6\"\r\n');
+INSERT INTO t1 VALUES (2,'color=\"HTM,NPG,DEG,RGS\"\r\nengine=\"F23A5YP1\"\r\nframe=\"MRHCF8640YP3\"\r\ngrade=\"EXi AT\"\r\nmodel=\"ACCORD\"\r\nmodelcode=\"CF864YE\"\r\ntype=\"EXA\"\r\n');
+
+SELECT DISTINCT
+ (IF( LOCATE( 'year=\"', dyninfo ) = 1,
+ SUBSTRING( dyninfo, 6+1, LOCATE('\"\r',dyninfo) - 6 -1),
+ IF( LOCATE( '\nyear=\"', dyninfo ),
+ SUBSTRING( dyninfo, LOCATE( '\nyear=\"', dyninfo ) + 7,
+ LOCATE( '\"\r', SUBSTRING( dyninfo, LOCATE( '\nyear=\"', dyninfo ) +7 )) - 1), '' ))) AS year
+FROM t1
+HAVING year != '' ORDER BY year;
+
+DROP TABLE t1;
+
+
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1
+(
+ name varchar(50) NOT NULL default '',
+ excelorder int(11) NOT NULL default '0',
+ neworder int(11) NOT NULL default '0'
+) ENGINE=MyISAM DEFAULT CHARSET=tis620;
+
+INSERT INTO `t1` VALUES ('+45 BRETT',4,1),('+55 BRETT',5,2),('+56 BRETT',6,3),('-.55 BRETT',2,4),('-45 BRETT',8,5),('-55 BRETT',13,6),('.-55 BRETT',3,7),('.55 BRETT',1,8),('45 BRETT',7,9),('5 5 BRETT3',9,10),('5 5 BRETT2',10,11),('5 5 BRETT1',11,12),('5-5 BRETT',14,13),('55 BRETT',12,14),('55+ BRETT',17,15),('55- BRETT',15,16),('55. BRETT',16,17),('Ã.µË­Ô§ ¾Íã¨',1630,1630),('ÂÃç¤ì',1599,1599),('ÃÁÂì¨ÃÃÂì',1638,1638),('àÁà¨ÍÃìÍصÊÒË¡ÃÃÁä·Â (1989)',1583,1583),('àÁâ·ÃʻԹ¹Ôè§',1586,1586),('àÃÇѵ',1706,1706),('àÂ繨ԵÃ',1623,1623),('àÂ繨Եµì',1622,1622),('àÁÉÂÒ',1591,1591),('àÁÉÔ³Õ',1592,1592),('áÁé¹ÁÒµÃ',1595,1595),('àÂÒÇàÃÈ',1627,1627),('àÂÒÇÀÒ',1626,1626),('àÂÒÇÅѡɳì',1628,1628),('àÂÒÇ´Õ',1624,1624),('àÂÒǾÒ',1625,1625),('àÃÔ§ÃÐÇÕ',1708,1708),('àÃԧķ¸Ôì',1709,1709),('àÃÔ§·ÔÇÒ',1707,1707),('ÀÃÒ´Ã',1496,1496),('àâ­Ò',1702,1702),('âç§Ò¹àËÅç¡¡Ãا෾Ï',1712,1712),('âè¹ì»ÃÐàÊÃÔ°',1713,1713),('àóÙ',1703,1703),('àÁ´Ô¤ÃÒ¿·ì',1584,1584),('àÁµµÒ',1585,1585),('áÁ··ÕàÃÕÂÅ¡ÃØê» ¨Ó¡Ñ´',1594,1594),('àÁ¸Ò',1587,1587),('àÁ¸Õ',1590,1590),('àÁ¸ÒÇÕ',1588,1588),('â¸Թ',1629,1629),('àÁ¸Ô¹Õ',1589,1589),('Áâ¹',1553,1553),('Á⹪',1554,1554),('àþᾤ à·Ã´´Ôé§',1704,1704),('áþᾤ ¤Í¹ÊµÃѤªÑè¹',1711,1711),('àþᾤ¤Í¹ÊµÃѤªÑè¹',1705,1705),('àÃ×ͧÂÈ',1710,1710),('àÁ×ͧ·Í§',1593,1593),('ÁÂØÃÕ',1555,1555),('áÇÇÇÔÀÒ',1952,1952),('áÇÇÇ´Õ',1951,1951),('àÇèÂà©Ô¹ÍÔ¹´ÑÊàµÃÕ¹',1949,1949),('àÇÍÃìâ¡é ·ÃҹʻÍÃìµ',1950,1950),('ÀÇÔ¹',1497,1497),('Ãǧ·Í§',1639,1639),('ÁÐÅÔÇÑÅÂì',1560,1560),('ÃеÃÕ',1643,1643),('ÃоԹ·Ãì',1644,1644),('ÃоվÃ',1645,1645),('ÃоվÃó',1646,1646),('ÃоվÅ',1647,1647),('àËÁÇ´Õ',2452,2452),('âÊÃÊ',2438,2438),('àÈÃÉ°¸Ã',2050,2050),('àÈÃÉ°¾§Éì',2051,2051),('âÊÃѨ',2439,2439),('ÁËÀÑ®',1558,1558),('àÊÁÒ',2410,2410),('àÊÃÕ',2413,2413),('âÊÀÒ',2432,2432),('âÊÀÕ',2435,2435),('àÊÃÔÁÈÑ¡´Ôì',2412,2412),('àÊÃÔÁäªÂ¤éÒ¡ÃдÒÉ',2411,2411),('àËÃÕ­',2455,2455),('âÊÀÒ¾Ãó',2434,2434),('âÊÀÒ¾¨¹Õ',2433,2433),('âÊèԵ',2436,2436),('âÊÀ³',2431,2431),('âÈôÒ',2052,2052),('âÊôÒ',2437,2437),('àËÁ×͹¢ÇÑ­',2453,2453),('àËÁ×͹¾¹Í',2454,2454),('àÊÇÂ',2414,2414),('áÊǧ',2430,2430),('Áéǹáµé',1557,1557),('ÃÊÊؤ¹¸ì',1641,1641),('âÊÌÊ',2440,2440),('ÃÈÑ¡´Ôì',1640,1640),('ÁËÒÃÒª',1559,1559),('àÊÒÇÅѡɳì',2420,2420),('àÊÒǤ¹¸ì',2415,2415),('àÊÒdzÕ',2416,2416),('àÊÒdzÕÂì',2417,2417),('àÊÒǹÕÂì',2419,2419),('àÊÒǹԵÂì',2418,2418),('áËÅÁ·Í§ÊË¡ÒÃ',2456,2456),('àÊ¡ÊÃÃ',2405,2405),('àÊ¡ÊÃäì',2406,2406),('áʧÃÐÇÕ',2424,2424),('Âè§àΧÇѲ¹Ò¡ÒþÔÁ¾ì',1598,1598),('áʧà´×͹',2422,2422),('áʧªÑÂ',2421,2421),('áʧ·Í§',2423,2423),('àʶÕÂÃ',2407,2407),('áʹÃÑ¡',2428,2428),('áʹÂÒ¡Ã',2427,2427),('áʹÀ¾',2426,2426),('àʹËì',2408,2408),('áʹÊØ¢',2429,2429),('àʹÕÂì',2409,2409),('áʹ·ÇÕà·ç¡«ìä·Åì',2425,2425),('àÍ.à¨.¾ÅÒÊ·ì',2676,2676),('âÍàÃÕÂÅ·ÍÅ ¿Øé´',2716,2716),('áÍÃì«Õ à¿Ã· ¿ÍÃìàÇÔ´àµÍÃì',2712,2712),('áÍÃì¾Õà¾ÔÅÍÔ¹àµÍÃì๪Ñè¹á¹Å',2713,2713),('ÃÍÂÑÅàÍ繨Ôà¹ÕÂÃÔè§',1642,1642),('àÍàªÕÂàÊÃÔÁ¡Ô¨ÅÔÊ«Ôè§',2687,2687),('àÍçÁ .«Õ.¾ÕÅÔÊ«Ôè§',2690,2690),('àÍçÁ «Õ ÍÐâ¡Ãà¤ÁÕ¤ÍÅ',2691,2691),('àÍçÁ.àÍçÁ.«Õ.â»ÅÔàÁÍÃì',2693,2693),('àÍçÁ.«Õ.¾Õ. ÅÔÊ«Ôè§',2692,2692),('àÍçÁ«ÕÊÂÒÁ âŨÕʵԤÊì',2694,2694),('âÍÇÍÐËÅÑè¾ÒÃì·à«ç¹àµÍÃì',2717,2717),('àÍç¡«Õà«ÅàŹ¿ÍÃìÁ',2678,2678),('àÍçª àÍçÁ «Õ â»ÅÕàÁÍÃì',2684,2684),('àÍçª.àÍçÁ.«Õ.â»ÅÔàÁÍÃì',2685,2685),('àÍçª.àÍçÁ.«Õ.â»ÅÕàÁÍÃì (º¨¡.)',2686,2686),('àÍç¹ ´Õ ठ(»ÃÐà·Èä·Â)',2688,2688),('àÍÊ àÍÊ à¤ ¡Å¡ÒÃ',2697,2697),('àÍÊ à¨ ¾ÅÒÊ·ì á͹´ì ᾤ',2695,2695),('àÍÊ ¾Õ Ê᡹',2696,2696),('àÍÊ.àÍçÁ.ÇÕ ÊË¡ÒÃ',2701,2701),('àÍÊ.àÍÊ.ठ¡Å¡ÒÃ',2702,2702),('àÍÊ.àÍÊ.à¤.¡Å¡ÒÃ',2703,2703),('àÍÊ.àÍÊ.ÍÔ¹¡Íµ ÍÅÙÁÔà¹ÕÂÁ1999',2704,2704),('àÍÊ.à¤.ÍÕ.',2698,2698),('àÍÊ.«Õ.¾Õ.ᾤ',2699,2699),('àÍÊ.¾Õ.¹ÔµµÔé§',2700,2700),('áÍÊષ¾ÅÑÊ',2715,2715),('àÍÊÇÕ¹Ô··Ñ¹¾ÃÔ«ÔªÑè¹',2705,2705),('áÍÅ¿èÒ â»Ãà«Ê«Ôè§',2714,2714),('àÍ¡ÃÒª',2679,2679),('àÍ¡ÃÔ¹·Ãì',2680,2680),('àÍ¡ÊÔ·¸Ôì',2681,2681),('àÍ¡ÍÃö',2683,2683),('à͡͹ѹµì',2682,2682),('àÍ¡ªÑÂ',2677,2677),('àΧà¨ÃÔ­ªÑ ¡ÃØê» ÍÔ¹´ÑÊàµÃÕÂÅ',2725,2725),('ÂʹྪÃ',1600,1600),('á͹¹Ò',2709,2709),('á͹¹ÒÃÕ',2710,2710),('áͺºÕà¤ÃÊ·ì(»ÃÐà·Èä·Â)',2711,2711),('àÍ¿ ÍÕ «Ô¤ÅÔ¤ (¡Ãا෾)',2689,2689),('àÍ×éÍÁ¾Ã',2707,2707),('àÍ×éÍÍÒÃÕ',2708,2708),('àÍ×é;ѹ¸Øì',2706,2706),('ÃÑÈÁÕ',1674,1674),('ÃÑÈÁÕÀÑÊÊÃ',1675,1675),('ÀÑÊÇÃó',1511,1511),('ÀÑÊÅÔ¹',1510,1510),('ÁÑÅÅÔ¡Ò',1564,1564),('ÃÑ¡ÈÑ¡´Ôì',1649,1649),('ÃÑ¡ÉÔµÀÑ·Ã',1650,1650),('ÀÑ¡´Õ',1498,1498),('ÃÑ¡´Õ',1648,1648),('ÀѤ¨ÔÃÒ',1499,1499),('ÃѧÊÃäì',1651,1651),('ÃѧÊѹµì',1652,1652),('ÃѧÊÔÁÒ',1653,1653),('Áѧ¡Ãä·ÂʵÕźÒÃì',1561,1561),('ÃѪà¡ÅéÒ',1654,1654),('ÃѪ®Ò',1655,1655),('ÃѪ®Ò¾Ã',1656,1656),('ÃѪ´Ò',1657,1657),('ÃѪ¹Õ',1658,1658),('ÃѪ¹Õ¡Ã',1659,1659),('ÃѪ¹Õ¾Ã',1660,1660),('ÃÑ°ÊØ´Ò',1662,1662),('ÃÑ°¾§Éì',1661,1661),('Àѳ±ÔÃÒ',1500,1500),('Áѳ±¹Ò',1562,1562),('ÃѵÔÂÒ',1672,1672),('ÃѵÔÂÒÀóì',1673,1673),('Ãѵ³Ò',1663,1663),('ÃѵµÔÂÒ',1665,1665),('ÃѵµªÑÂ',1664,1664),('Ãѵ¹Àóì',1667,1667),('Ãѵ¹Á³Õ',1668,1668),('Ãѵ¹Ò',1669,1669),('Ãѵ¹ÒÀóì',1671,1671),('Ãѵ¹Ò¾Ã',1670,1670),('Ãѵ¹ªÑÂ',1666,1666),('ÀÑ·ÃÀÃ',1505,1505),('ÀÑ·ÃÃѧÊÕ',1506,1506),('ÀÑ·ÃÒÀóì',1508,1508),('ÀÑ·ÃÔ¹·Ãì',1509,1509),('ÀÑ·ÃÄ´Õ',1507,1507),('Àѷ÷ÔÃÒ',1501,1501),('ÀѷþÃ',1503,1503),('ÀѷþÅ',1504,1504),('Àѷþ§Èì',1502,1502),('ÁÑ·¹Ò',1563,1563),('Âѹ áÍÅ à¤âÂÊ',1601,1601),('ÃÒàÁÈÃì',1681,1681),('ÁÒÃÔÉÒ',1572,1572),('ÃÒÂÕ¹',1682,1682),('ÃÒહ',1678,1678),('ÀÒôÕ',1521,1521),('ÀÔôÕ',1531,1531),('ÁÒ⹪³ì',1570,1570),('ÁÒâ¹·',1571,1571),('ÀÒÇÔ³Õ',1524,1524),('ÀÒÇÔ¹',1525,1525),('ÀÒÇÔ¹Õ',1526,1526),('ÀÒǹÒ',1522,1522),('ÀÒǾѹ¸¹ì',1523,1523),('ÀÒÉÔµÒ',1527,1527),('ÂÔè§ÇÃó',1602,1602),('ÁÔÅàŹà¹ÕèÂÁ âÍ.àÍ 2000',1578,1578),('ÁÒÅÑÂ',1573,1573),('ÁÒÅÕ',1575,1575),('ÁÒÅÕÇÃó',1576,1576),('ÁÒÅÔ¹Õ',1574,1574),('ÀÒ¡Ã',1512,1512),('ÀÒ¤ÀÙÁÔ',1513,1513),('ÀÔ¨ÔµÃÒ',1528,1528),('ÁÒªÍÃì¡ÇÒ¹',1565,1565),('ÃҪѹÂì',1676,1676),('ÃÒªÒÍÙªÔâ¹',1677,1677),('ÀÔ­â­',1530,1530),('ÀÔ­­¾Ñ¡µÃì',1529,1529),('ÀÒ³Õ',1514,1514),('ÁÒ³Õ',1566,1566),('ÃÒ³Õ',1679,1679),('ÀÒ³Ø',1515,1515),('ÀÒ³ØÇÃó',1517,1517),('ÀҳؾÅ',1516,1516),('ÃÒµÃÕ',1680,1680),('ÁÔµ·ÔÃÒ',1577,1577),('ÁÒ¹Ð',1568,1568),('ÁÒ¹ÔµÂì',1569,1569),('ÁÒ¹¾',1567,1567),('ÀÒ¹ØÇѲ¹ì',1518,1518),('ÀÒ¹ØÇѵÃ',1519,1519),('ÀÒ¾Ã',1520,1520),('ÁÕ¾Å',1579,1579),('ÀÙÃÔÇÃò¡ì',1535,1535),('ÀÙÁÔ°Ò¹',1533,1533),('ÀÙÃÔ¾§Èì',1534,1534),('ÂÙà¹Õè¹á¡êÊá͹´ìàÅÁÔ¤ÑÅÊì',1621,1621),('ÀÙàºÈ',1532,1532),('ÃÙàºÕÂÍصÊÒË¡ÃÃÁ',1701,1701),('ÁÙËÐÁд×ÍàÃÐ',1582,1582),('ÀÙÉÔµ',1536,1536),('ÂÙ¹ÔÅÕàÇÍÃì ä·Â âÎÅ´Ôé§Êì',1618,1618),('ÂÙ¹ÔÅÕàÇÍÃìä·Â âÎÅ´Ôé§Êì',1619,1619),('ÂÙ¹Õ¤ ÍÍÃì¤Ô´',1620,1620),('âÅËСԨʵÕÅ',1744,1744),('àÅÍÊÃäì',1739,1739),('àÅÍÈÑ¡´Ôì',1738,1738),('àÅÍÊØ¢',1740,1740),('àÅͪÑÂ',1737,1737),('àÅÔÈÈÑ¡´Ôì',1742,1742),('àÅÔÈÊÒÁÒö â¸Ò',1743,1743),('àÅÔȪÑÂ',1741,1741),('ÁÅÄ´Õ',1556,1556),('â¡àÁÈ',206,206),('â¡àÇȹì',211,211),('à¡ÃÕ§§ÍÔ¹àµÍÃì๪Ñè¹á¹Å',179,179),('à¡ÃÕ§ÈÑ¡´Ôì',180,180),('à¡ÃÕ§ä¡Ã',177,177),('à¡ÃÕ§ªÑÂ',178,178),('à¡ÃÔ¡',174,174),('à¡ÃÔ¡ä¡Ã',175,175),('à¡ÃÔ¡¾§Éì',176,176),('Á¡Ãҹѹ·ì',1537,1537),('â¡Ážѹ¸ì',205,205),('â¡ÇÔ·',208,208),('â¡ÇÔ·Âì',209,209),('â¡ÇÔ¹',210,210),('à¡ç¨¾ÔÃس',170,170),('à¡ÉÁ',190,190),('à¡ÊÃ',196,195),('à¡ÉÁÊѹµì',191,191),('à¡ÊÃì',195,196),('à¡ÈÃÒ',182,182),('à¡ÉÃÒ',192,192),('à¡ÉÃÕ',193,193),('à¡ÈÃÔ¹·Ãì',183,183),('á¡éÇ',203,203),('á¡éÇã¨',204,204),('à¡ÈÇÅÕ',184,184),('à¡ÈÈÔÃÔ',185,185),('à¡ÈÊØ´Ò',186,186),('à¡ÉÕÂÃ',194,194),('à¡ÈÔ¹Õ',187,187),('â¡ÊÔ¹·Ãì',213,213),('â¡ÈÅ',212,212),('à¡È¡ØÅÀÒ',181,181),('à¡É³Õ',188,188),('à¡É´Ò',189,189),('à¡ÕÂõÔ',197,197),('à¡ÕÂõÔÊÇÑÊ´Ôì',201,201),('à¡ÕÂõÔÈÑ¡´Ôì',200,200),('à¡ÕÂõԻÀÒ',198,198),('à¡ÕÂõԾ§Éì',199,199),('â¡ÅºÍÅ ¤Í¹à¹ç¤ªÑè¹Êì',207,207),('ࡪÒ',171,171),('ࡳԡÒ',172,172),('ࡵØÁ³Õ',173,173),('à¡×éÍ¡ÙÅ',202,202),('á¢ä¢',235,235),('ठÊËÒÂÍÔÁà»ê¡«ì',262,262),('à¤.«Õ.¾Õ. áÁªªÕ¹à¹ÍÃÕè',263,263),('â¤Ãà¹Ê (ä·ÂᏴì)',270,270),('à¤Ã×ÍÇÑÅÂì',267,267),('á¤Ð¨éÍÂ',269,269),('षշÕÅÔÊ«Ôè§',264,264),('ह áÁç¡«ì (»ÃÐà·Èä·Â)',266,266),('ह áÁ¡«ì (»ÃÐà·Èä·Â)',265,265),('᤹¹Ù ÍÔ¹àµÍÃìà·Ã´',268,268),('â¦ÉÔµ',271,271),('§ÂØ·¸',1597,1597),('à§Ô¹·Ø¹à¡ÕÂõԹҤԹ',274,274),('Á§¡Ø®Ãѵ¹ì',1538,1538),('Á§¤Å',1539,1539),('Á§¤Å¡Òûѡ',1540,1540),('à¨ÃÕ§',409,409),('à¨ÃÔ­',407,407),('à¨ÃÔ­ªÑÂËÁéÍá»Å§ä¿¿éÒ',408,408),('á¨èÁ',414,414),('ã¨ÊÇÇäì',415,415),('à¨éÒ¾ÃÐÂÒÁÒÃì¤',411,411),('à¨É®Ò',410,410),('à¨ÕÂÁ¨Ôµ',413,413),('à¨ÔÁªÑÂ',412,412),('ਵ¹ì',401,401),('ਹ',402,402),('ਹà¹ÍÃÑÅ乫ì (»ÃÐà·Èä·Â)',405,405),('ਹÇÔ·Âì',406,406),('è¹Ò',1631,1631),('ਹ¨ÔÃÒ',403,403),('ਹµì³Ã§¤ì',404,404),('â©ÁÊØ´Ò',436,436),('â©ÁÅ´Ò',435,435),('à©Ô¹',434,434),('à©ÅÔÁ',428,428),('à©ÅÕÂÇ',433,433),('à©ÅÔÁ¢ÇÑ­',429,429),('à©ÅÔÁªÑÂ',430,430),('à©ÅÔÁªÒµÔ',431,431),('à©ÅÔÁ¾Ñ¹¸Øì',432,432),('àªÉ°Ò',555,555),('àªÍÃÔè§-¾ÅÒÇ á͹ÔÁÑÅ àÎéŪ',556,556),('àªÍÃÔè§-¾ÅÒÇá͹ÔÁÑÅàÎçŸ',557,557),('àªÕ§àΧ¡ÒêèÒ§',563,563),('àªÒÇÅÔµ',559,559),('àªÒǹҭ',558,558),('àªÕèÂǪҭ ÍÔ¹´ÑÊ·ÃÕè (1989)',564,564),('àªÕèÂǪҭÍÔ¹´ÑÊ·ÃÕ (1989)',565,565),('àªÕèÂǪҭÍÔ¹´ÑÊ·ÃÕè (1989)',566,566),('àªÕèÂǪҭÍÔ¹´ÑÊ·ÃÕè(1989)',567,567),('àªÔ´ÈÑ¡´Ôì',562,562),('àªÔ´¨Ôµµì',560,560),('àªÔ´ªÑÂ',561,561),('⪤',568,568),('⪤ªÑÂ',569,569),('ય°¡Ã',554,554),('⪵Ô',570,570),('⪵ÔÃÊ',571,571),('⪵ÔÇظ',572,572),('à«ÕÂÁà¡ÕÂÇ',589,589),('à«ÒÐ',588,588),('óç¤ì',1632,1632),('Á³à±ÕÂÃ',1546,1546),('Á³ÕÃѵ¹ì',1547,1547),('Á³°Ô´Ò',1541,1541),('Á³±Ò',1545,1545),('Á³±ÅÕ',1544,1544),('Á³±¹ì¡Ò­¨¹ì',1542,1542),('Á³±¹Ô¨',1543,1543),('â´Á',708,708),('à´ÍФÇÍÅÔµäÇÃì',705,705),('ôÒ',1633,1633),('à´ª',703,703),('à´ªÒ',704,704),('à´×͹à¾ç­',707,707),('à´×͹¹ÀÒ',706,706),('àµçÁà´ª',720,720),('ãµé à«é§ «Ñ¹',723,723),('àµ×͹ã¨',721,721),('àµ×͹µÒ',722,722),('à¶ÅÔ§ÈÑ¡´Ôì',734,734),('à·ÇÒ',802,802),('à·ÇÕ',803,803),('à·Ô´ä·',804,804),('à·¾',799,799),('෾ķ¸Ôì',801,801),('à·¾¾ÔºÙÅ',800,800),('Á¹ÑÊ',1550,1550),('Á¹ÑÊÇÕ',1551,1551),('à¹ÒÇÃѵ¹ì',1043,1043),('ùԮ°Ò',1634,1634),('Á¹Ù­',1552,1552),('Á¹µÃÕ',1549,1549),('๵ôÒÇ',1042,1042),('Á¹µìªÑÂ',1548,1548),('àºç­ÇÃó',1117,1117),('àºç·à·ÍÃì äÅ¿ì',1118,1118),('ອ¨ÁÒ',1114,1114),('ອ¨ÇÃó',1116,1116),('ອ¨ÅÑ¡É³ì ¾ÃÔé¹µÔé§',1115,1115),('ອ¨¾Ã',1113,1113),('à»ÃÁ',1265,1265),('à»ÃÁÈÃÕ',1268,1268),('à»ÃÁÊÔ·¸Ôì',1269,1269),('à»ÃÁÄ´Õ',1267,1267),('à»ÃÁ»ÃÐÀÒ',1266,1266),('à»à»ÍÃìÅÔ¿',1264,1264),('à»ÕèÂÁÊØ¢',1270,1270),('á»Å¹âÁ·Ô¿',1271,1271),('à¼Ô§',1291,1291),('༴ç¨',1290,1290),('á¾ÃÇ',1475,1475),('á¾ÃÇÒ',1476,1476),('à¾ÃÔÁàÁ¹¹Ôª ÍâÃáÁµÔê¡Êì ¾Õ·ÕÍÕ ÅÔÁÔàµç´',1468,1468),('à¾ç§ ¿Ù ËÅÔ¹',1456,1456),('à¾çªÃì',1457,1457),('à¾ç­ÈÃÕ',1467,1467),('à¾ç­¨Ñ¹·Ãì',1461,1461),('à¾ç­·Ô¾Âì',1462,1462),('à¾ç­¹ÀÒ',1463,1463),('à¾ç­»ÃÐÀÒ',1464,1464),('à¾ç­¼¡Ò',1465,1465),('à¾ç­¾ÔäÅ',1466,1466),('þÕÀÑ·Ã',1637,1637),('à¾Õ§¾Ã',1471,1471),('þվÃ',1635,1635),('þվѲ¹ì',1636,1636),('à¾ÅԹĴÕ',1470,1470),('à¾ÅÔ¹¨Ôµµì',1469,1469),('ྪÃÃѵ¹ì',1458,1458),('ྪÃÔ¹·Ãì',1460,1460),('ྪÃÅ´Ò',1459,1459),('á¾´´Ôé§ (ä·ÂᏴì)',1472,1472),('á¾´´Ôé§(ä·ÂᏴì)',1473,1473),('á¾¹´éÒ à»à»ÍÃì ¤ÒÃìµÑ¹Ê',1474,1474),('á¿ÃìàÇÂì ÍÔ¹àµÍÃì๪Ñè¹á¹Å',1495,1495),('á¿Ã§¤ì',1494,1494),('Ã×è¹ÇÃÒËì',1683,1683),('ÂØÀÒÀóì',1615,1615),('ÂØÀÒ¾Ã',1614,1614),('ÂØÇÃÕ',1617,1617),('ÂØÇ´Õ',1616,1616),('ÃØËйÒ',1700,1700),('ÃØé§',1684,1684),('ÃØè§âè¹ì',1693,1693),('ÃØè§âè¹ì¢¹Êè§',1694,1694),('ÃØè§àÃ×ͧ',1692,1692),('ÃØè§ÃÑÈÁÕ',1691,1691),('ÃØè§ÃѪ¹Õ',1689,1689),('ÃØè§Ãѵ¹ì',1690,1690),('ÃØè§à¾ªÃ',1688,1688),('ÃØè§ÇÔ·Âì',1696,1696),('ÃØè§ÍÃس',1697,1697),('ÃØé§ÅÒÇÃó',1695,1695),('ÃØ觷ÔÇÒ',1686,1686),('ÃØ觷ԾÂì',1685,1685),('ÃØ觹ÀÒ',1687,1687),('ÁØ¢',1580,1580),('ÂؤžÃ',1603,1603),('ÃبÒ',1698,1698),('ÃبÒÀÒ',1699,1699),('ÂØ´Ò',1604,1604),('ÁØ·ÔµÒ',1581,1581),('ÂØ·¸Â§',1607,1607),('ÂØ·¸¹Ò',1605,1605),('ÂØ·¸¹ÒÇÕ',1606,1606),('ÂظÒÁÒµÂì',1608,1608),('Âعâ¡Ð',1609,1609),('ÂؾÒ',1610,1610),('ÂؾÒÇ´Õ',1612,1612),('ÂؾԹ',1613,1613),('ÂؾҾÃ',1611,1611),('ÇÃÃѪ',1792,1792),('ÇÃÁÅ',1768,1768),('ÇÃóÀóì',1785,1785),('ÇÃóÀÒ',1786,1786),('ÇÃóÀ¾',1784,1784),('ÇÃóà¾ç­',1783,1783),('ÇÃóǴÕ',1787,1787),('ÇÃóÈÔÃÔ',1788,1788),('ÇÃóì´Õ',1773,1774),('ÇÃóÒ',1789,1789),('ÇÃóÕ',1790,1790),('ÇÃó¨Ôµ',1770,1770),('ÇÃóªÑÂ',1771,1771),('ÇÃó±¹Ò',1772,1772),('ÇÃó´Õ',1774,1773),('ÇÃó·¹Ò',1775,1775),('ÇÃó·¹Õ',1776,1776),('ÇÃó¸ÁÅ',1778,1778),('ÇÃó¸³Õ',1777,1777),('ÇÃó¹ÀÒ',1779,1779),('ÇÃó¹ÒÃÕ',1780,1780),('ÇÃó¾Ã',1781,1781),('ÇÃó¾Ò',1782,1782),('ÇÃà·¾',1762,1762),('ÇÃø¹Ò',1791,1791),('ÇÃÂØ·¸ì',1769,1769),('ÇÃÇÃó',1794,1794),('ÇÃÇÃø¹ì',1795,1795),('ÇÃÇѲ¹ì',1796,1796),('ÇÃÇÔÀÒ',1797,1797),('ÇÃÑ­¸Ã',1798,1798),('ÇÃÒ',1799,1799),('ÇÃÒÀóì',1803,1803),('ÇÃÒÃѵ¹ì',1804,1804),('ÇÃÔÁÒ',1810,1810),('ÇÃÕÇÃó',1812,1812),('ÇÃÒÇزÔ',1806,1806),('ÇÃÒÇظ',1807,1807),('ÇÃÔÈÃÒ',1811,1811),('ÇÃÒÅѡɳì',1805,1805),('ÇÃÒ§Ãѵ¹ì',1801,1801),('ÇÃÒ§¤³Ò',1800,1800),('ÇÃÔ¹·Ãì',1808,1808),('ÇÃÔ¹¸Ã',1809,1809),('ÇÃÒ¾Ã',1802,1802),('ÇÃÅѡɳì',1793,1793),('ÇáÒÃ',1758,1758),('ÇêÑÂ',1759,1759),('ÇêҵÔ',1760,1760),('ÇôÔÉ°ì',1761,1761),('ÇøѹÂì',1763,1763),('Çùت',1764,1764),('ÇþÅ',1767,1767),('Çþ§Éì',1765,1765),('Çþ¨¹ì',1766,1766),('ÇÃس',1813,1813),('Çèͧ',1819,1819),('ÇÊѹµì',1817,1817),('ÇÈÔ³Ò',1815,1815),('ÇÈÔ¹',1816,1816),('ÇÊØ',1818,1818),('CHEE KUNG FOOK',18,18),('CHEN CHIA YI',19,19),('CHI WAI DAVIT',20,20),('ÇÑʹÑÂ',1843,1843),('ÇÑȾÅ',1842,1842),('ÇÑÅÅÀ',1839,1839),('ÇÑÅÅÀÒ',1840,1840),('ÇÑÅÅÒÀÒ',1841,1841),('ÇѪÃÐ',1822,1822),('ÇѪÃÑ­­Ò',1823,1823),('ÇѪÃÕ',1825,1825),('ÇѪÃÔ¹·Ãì',1824,1824),('ÇѪáÃ',1820,1820),('ÇѪþÅ',1821,1821),('ÇѲ¹Ð',1826,1826),('ÇѲ¹Ò',1827,1827),('ÇѹÃѪ´Ò',1836,1836),('Çѹà©ÅÔÁ',1828,1828),('Çѹà¾ç­',1835,1835),('ÇѹÇÔÊÒ¢ì',1837,1837),('ÇѹʶÒ',1838,1838),('ÇѹªÑÂ',1829,1829),('ÇѹªÒµÔ',1830,1830),('Çѹ´Õ',1831,1831),('Çѹ·¹Ò',1832,1832),('Çѹ·¹Õ',1833,1833),('Çѹ·¹ÕÂì',1834,1834),('ÇÕ àÍÊ à¹à¹ÍÃÑÅ à¤Á',1916,1916),('ÇÔÃÁÅ',1886,1886),('ÇÔâè¹ì',1889,1889),('ÇÕÃ⪵Ô',1921,1921),('ÇÕÃà´ª',1922,1922),('ÇÕÃÂØ·Âì',1925,1925),('ÇÕÃÇÃó',1926,1926),('ÇÕÃÐ',1929,1929),('ÇÕÃÐà´ª',1933,1933),('ÇÕÃÐÂØ·¸ì',1936,1936),('ÇÕÃÐÇÃó',1937,1937),('ÇÕÃÐÇѲ¹ì',1938,1938),('ÇÕÃÐÈÑ¡´Ôì',1939,1939),('ÇÕÃЪÑÂ',1930,1930),('ÇÕÃЪÒÂ',1932,1932),('ÇÕÃЪҵÔ',1931,1931),('ÇÕÃоÅ',1935,1935),('ÇÕÃо§Éì',1934,1934),('ÇÕÃÈÑ¡´Ôì',1927,1927),('ÇÕÃÊÔ·¸Ôì',1928,1928),('ÇÔÃѪ',1887,1887),('ÇÔÃѵ¹ì',1888,1888),('ÇÒÃÕ',1849,1849),('ÇÔÀÒ',1875,1875),('ÇÕÃÒÀóì',1940,1940),('ÇÔÀÒÃѵ¹ì',1879,1879),('ÇÔÀÒÊ',1881,1881),('ÇÔÀÒɳÕÂì',1880,1880),('ÇÔÀҡóì',1876,1876),('ÇÔÀÒ¤',1877,1877),('ÇÒÃÔª',1848,1848),('ÇÔÀÒ¾Ãó',1878,1878),('ÇÔÀÙÉÔµ',1882,1882),('ÇÔÁÅ',1883,1883),('ÇÔÁÅÇÃó',1885,1885),('ÇÔÁžÃ',1884,1884),('ÇÔàªÉ°',1863,1863),('ÇÕêÑÂ',1920,1920),('ÇÔàªÕÂÃ',1864,1864),('ÇÕþÅ',1924,1924),('ÇÕþ§Èì',1923,1923),('ÇÒÃسÕ',1850,1850),('ÇÔÇ',1901,1901),('ÇÔÇÃø¹ì',1902,1902),('ÇÔÇѲ¹ì',1903,1903),('ÇÔÇѲ¹ìªÑÂ',1904,1904),('ÇÔÉÃب¹ì',1910,1910),('ÇÔÈÃص',1906,1906),('ÇÔÈÔÉ®ì',1908,1908),('ÇÔÈÔÉ°ì',1909,1909),('ÇÔÈÒÅ',1907,1907),('ÇÔÊÔ°ÈÑ¡´Ôì',1911,1911),('ÇÔÊÔ·¸Ôì',1912,1912),('ÇÔÊÙµ',1915,1915),('ÇÒʹÒ',1851,1851),('ÇÔȹÕ',1905,1905),('ÇÔÊØ·¸Ô',1914,1913),('ÇÔÊØ·¸Ôì',1913,1914),('ÇÔÅÇѳÂì',1890,1890),('ÇÔÅÒÇÃó',1891,1891),('ÇÔÅÒÇÑÅÂì',1893,1893),('ÇÔÅÒÇѳÂì',1892,1892),('ÇÔÅÒÊÔ¹Õ',1894,1894),('ÇÔÅÔµ',1895,1895),('ÇÔäÅ',1896,1896),('ÇÔäÅÃѵ¹ì',1898,1898),('ÇÔäÅÇÃó',1900,1900),('ÇÔäÅÅѡɳì',1899,1899),('ÇÔäžÃ',1897,1897),('ÇÔ¤Á',1853,1853),('ÇÔ¤µÍÃÕè â¾Ãà¡Ã·',1852,1852),('ÇÔ¨ÔÃÒ',1856,1856),('ÇÔ¨Òóì',1854,1854),('ÇÔ¨ÔµÃ',1855,1855),('ÇÔªÑÂ',1859,1859),('ÇÔªÒ­',1860,1860),('ÇÔªÔµ',1861,1861),('ÇÔªªÒ',1857,1857),('ÇÔª­ÐÃب',1858,1858),('ÇԪشÒ',1862,1862),('ÇÕ«èÒ (2000)',1917,1917),('ÇÔ­­Ø´Ò',1865,1865),('ÇÔ±ÙÅÂì',1866,1866),('ÇÒ³Õ',1844,1844),('ÇÕ³Ò',1918,1918),('ÇÔ·ÂÒ',1868,1868),('ÇÔ·ÇÑÊ',1869,1869),('ÇÒ·Ôµ',1845,1845),('ÇÒ·Ô¹',1846,1846),('ÇÒ·Ô¹ÕÂì',1847,1847),('ÇÔ·ÙÃ',1870,1870),('ÇÔ·¸ÇѪ',1867,1867),('ÇÔ¹ÊÃäì',1871,1871),('ÇÔ¹ÑÂ',1872,1872),('ÇÕ¹ÑÊ',1919,1919),('ÇÔ¹Ô¨',1873,1873),('ÇÔºÙÅÂì',1874,1874),('ÇÅѾÃ',1814,1814),('ǧà´×͹',1745,1745),('ǧÈìÇÒµ',1749,1749),('ǧÈìÊØÀÒ',1750,1750),('ǧÈìä¾±ÙÃÂì¡Ãç» º',1746,1746),('ǧÈìä¾±ÙÃÂì¡ÃÙê»',1748,1748),('ǧÈìä¾±ÙÃÂì¡ÃØê»',1747,1747),('ǨÕÃѵ¹ì',1751,1751),('ǪÔÃÒÀÒ',1752,1752),('ǹÑʹѹ·ì',1754,1754),('ǹѪ¾Ã',1753,1753),('ǹÒ',1755,1755),('ǹԪ',1756,1756),('ǹԴÒ',1757,1757),('ÇزÔÃѵ¹ì',1948,1948),('ÇزԡÃ',1941,1941),('ÇزԪÑÂ',1942,1942),('ÇزԹÑÂ',1944,1944),('ÇزԹѹ·ì',1943,1943),('ÇزԾÅ',1947,1947),('ÇزԾ§Èì',1945,1945),('ÇزԾ¨¹ì',1946,1946),('Ê ÍÒ´',2054,2054),('Ê.͹ѹµìàÍ繨Ôà¹ÕÂÃÔè§ á͹¤Í¹ÊµÃѤªÑè¹',2055,2055),('ÊÁ',2078,2078),('ÊÁÃ',2113,2113),('ÊÃÃàÊÃÔ°­',2142,2142),('ÊÁâÀª¹ì',2108,2108),('ÊÁâÁ·',2111,2111),('ÊÁÂÈ',2112,2112),('ÊÁÃÑ¡Éì',2114,2114),('ÊÁÁÒö',2109,2109),('ÊÁÁÒȹì',2110,2110),('ÊÁà¡ÕÂõÔ',2080,2080),('ÊÁã¨',2088,2088),('ÊÁ⪤',2093,2093),('ÊÁà´ª',2095,2095),('ÊÁÀ¾',2107,2107),('ÈÃÇÑÅÂì',1959,1959),('ÊÁǧÉì',2119,2119),('ÊÁÈÃÕ',2120,2120),('ÊÁËÁÒÂ',2126,2126),('ÊÁËÇѧ',2127,2127),('ÊÁÈÑ¡´Ôì',2121,2121),('ÊÁÈÔÃÔ',2122,2122),('ÊÁË­Ô§',2125,2125),('ÊÁÊØ¢',2123,2123),('ÊÁÊعÕÂì',2124,2124),('ÊÁÑÂ',2128,2128),('ÈÃÑ­­Ò',1960,1960),('ÊÃÑ­­Ò',2143,2143),('ÈÃѳÂì',1962,1962),('ÈÃѳ¾Ã',1961,1961),('ÊÂÒÁ',2133,2133),('ÊÂÒÁàÁ¦Õâ¾ÅÕàÁÍÃì',2139,2139),('ÊÂÒÁÂÙ¹Ôâ«Å',2140,2140),('ÈÃÕÃѵ¹ì',1977,1977),('ÈÃÕÀÒ',1976,1976),('ÈÃÒÁÒÈ',1963,1963),('ÈÂÒÁÅ',1957,1957),('ÊÂÒÁä´à¤ÕÂÇ',2136,2136),('ÊÂÒÁ¤Í¹àÇàÂÍÃì',2134,2134),('ÊÂÒÁªÑÂâ¾ÅÕàÁÍÃì',2135,2135),('ÊÂÒÁ¹ÔÊÊѹ ÍÍâµéâÁºÔÅ',2137,2137),('ÊÂÒÁ¾Ãà·Ã´à«ç¹àµÍÃì',2138,2138),('ÈÃÕà¾ç­',1975,1975),('ÊÃÒÂظ',2146,2146),('ÈÃÕÇѨ¹Ò',1978,1978),('ÈÃÕÇѲ¹Ò',1979,1979),('ÈÃÕÇÔ¡Ò',1980,1980),('ÈÃÒÇزÔ',1964,1964),('ÊÃÒÇزÔ',2147,2147),('ÈÃÒÇظ',1965,1965),('ÊÃÒÇظ',2148,2148),('ÈÃÕÊÁÃ\nÈÃÕÊÁÃ',1984,1983),('ÈÃÕÊÁÃ',1983,1984),('ÈÃÕÈÑ¡´Ôì',1981,1981),('ÈÃÕÊ¡ØÅ',1982,1982),('ÈÃÕÊØÇÃó¤Í¹àÇàÂÍÃìàºÅ·ì á͹´ì ÃѺàºÍÃì',1985,1985),('ÈÃÕÍÓ¾ÅÍصÊÒË¡ÃÃÁ',1987,1987),('ÈÃÕ͹§¤ì',1986,1986),('ÊÃÒ¡Ã',2144,2144),('ÈÃըѹ·Ãì',1967,1967),('ÈÃըѹ·ÃÒ',1968,1968),('ÊÃÒ­¨Ôµ',2145,2145),('ÈÃշͧà¹Áà¾Å·',1969,1969),('ÈÃշͧÍصÊÒË¡ÃÃÁ«Ñ¾¾ÅÒÂ',1970,1970),('ÊÁÔ·¸Ô',2131,2130),('ÊÁÔ·¸Ôì',2130,2131),('ÊÁÒ¹',2129,2129),('ËÃÔ¹',2446,2446),('ÊÃÔ¹ÃÒ',2149,2149),('ÈÃÕ¹ÇÅ',1971,1971),('ÈÃÔ¹·Ãì',1966,1966),('ÈÃÕ»ÃÐÀÒ',1973,1973),('ÈÃÕ»ÃÐä¾',1972,1972),('ÈÃÕ¾§Éì',1974,1974),('ÈÁÅÇÃó',1956,1956),('ÊÁÅѡɳì',2118,2118),('ÊàŤ·ì¿ÍÃìÁà¿ÍÃì¹Ôà¨ÍÃìáÅкصÃ',2152,2152),('ÊÁÄ´Õ',2115,2115),('ÊÁÄ·ÑÂ',2117,2117),('ÊÁÄ·¸Ôì',2116,2116),('ÊÁ¡ÁÅ',2079,2079),('ÊÁ¤ÇÃ',2081,2081),('ÊÁ¤Ô´',2082,2082),('ÊÁ¨Ôµ',2083,2083),('ÊÁ¨ÔµÃ',2086,2085),('ÊÁ¨ÔµÃì',2085,2086),('ÊÁ¨Ôµµì',2084,2084),('ÊÁ¨Ô¹µ¹Ò',2087,2087),('ÈêÑÂ',1958,1958),('ÊÁªÑÂ',2089,2089),('ÊÁªÒÂ',2092,2092),('ÊÁªÒ­',2090,2090),('ÊÁªÒµÔ',2091,2091),('ÊÁ´Õ',2094,2094),('Êáµ¹´ÒÃì´ ªÒÃìàµÍÃì (»ÃÐà·Èä·Â)',2066,2066),('ÊÁ·Ã§',2096,2096),('ÊÁ¹Ö¡',2097,2097),('ÊÁºÑµÔ',2098,2098),('ÊÁºÙóì',2100,2100),('ÊÁºØ­',2099,2099),('Êà»ç¤ à´ç¹ µÑÅ áź',2076,2076),('ÊÁ»Í§',2101,2101),('Ê໫¤ÍÁ',2077,2077),('ÊÁ¾Ã',2104,2104),('ÊÁ¾ÔÈ',2106,2106),('ÊÁ¾Å',2105,2105),('ÊÁ¾§Éì',2102,2102),('ÊÁ¾¨¹ì',2103,2103),('ÊÂØÁ¾Ã',2141,2141),('ÊÃب',2150,2150),('ÊÁتªÅ',2132,2132),('ÊÇÑÊ´Ôì',2154,2154),('ÊÇÕâè¹ì',2155,2155),('ÊÇÕÇÃó',2156,2156),('ËÇÒ¹',2448,2448),('ÊÇÅѡɳì',2153,2153),('Êзé͹',2161,2161),('ÈÈÁÅ',1989,1989),('ÊËà¡ÕÂõÔâÅËÐà¡ÕÂõÔ',2158,2158),('ÈÈÔ',1990,1990),('ÈÈÔÀÒ',1993,1993),('ÈÈÔÁÒ',1994,1994),('ÈÈÔÇÔÁÅ',1995,1995),('ÈÈÔÉÒ',1996,1996),('ÈÈÔ¸Ã',1991,1991),('ÈÈÔ¾Ã',1992,1992),('ÊÊԾѹ¸Øì',2157,2157),('Êè§àÊÃÔÁ',2062,2062),('Êè§ÈÃÕ',2061,2061),('Ê˾Å',2159,2159),('ËÍÁ¨Ñ¹·Ãì',2449,2449),('ÊÍÒ´',2160,2160),('ÊÑÁÄ·¸Ôì',2170,2170),('ÊÑÁ¾Ñ¹¸ì',2169,2169),('ËÑÊÂÒ',2451,2451),('ËÑʹÕ',2450,2450),('ÈÑ¡ÃÔ¹·Ãì',2003,2003),('ÈÑ¡´Ò',1997,1997),('ÈÑ¡´Ôì',1998,1998),('ÈÑ¡´ÔìàªÇ§',2000,2000),('ÈÑ¡´ÔìÇÔºÙÅÂì',2002,2002),('ÈÑ¡´ÔìªÑÂ',1999,1999),('ÈÑ¡´Ôì´Ò',2001,2001),('ÊѧÇÒÅÂì',2162,2162),('ÊѨ¾§Éì',2163,2163),('ÊÑ­ªÑÂ',2165,2165),('ÊÑ­ª¹Ò',2164,2164),('ÊÑ­­Ò',2166,2166),('ÈѹʹÕÂì',2004,2004),('ÊѹµÔ',2167,2167),('ÊѹµÔªÑÂ',2168,2168),('ÊÒÂã¨',2176,2176),('ÈÔâè¹ì',2030,2030),('ÊÒâè¹ì',2188,2188),('ÊÔâè¹ì',2228,2228),('ÊÒâê',2189,2189),('ÊÒ¹µì',2181,2181),('ÊÒÁÀ¾',2174,2174),('ÊÓÃÇÁ',2195,2195),('ÊÓÃÇÂ',2196,2196),('ÊÒÂÊÁÃ',2183,2183),('ÈÔÃÉÒ',2007,2007),('ÊÒÂÊسÕ',2184,2184),('ÊÒÂÊعÕÂì',2185,2185),('ÊÒÂѳ',2186,2186),('ÊÒÂѳËì',2187,2187),('ÈÔÃÔ',2009,2009),('ÈÔÃÔÃѨ¹ì',2024,2024),('ÈÔÃÔÃѵ¹ì',2025,2025),('ÊÔÃÔÃѵ¹ì',2223,2223),('ÈÔÁÒÃÕ',2006,2006),('ÈÔÃÔÁÒ',2023,2023),('ÊÔÃÔÁÒ',2222,2222),('ÈÔÃÔâ©Á',2012,2012),('ÊÔÃÔà´ª',2214,2214),('ÊÒÁÒö',2175,2175),('ÈÔÃÔà¾ç­',2022,2022),('ÈÔÃÔÇÃó',2027,2027),('ÊÔÃÔÇÃó',2225,2225),('ÊÔÃÔÇѲ¡ì',2226,2226),('ÈÔÃÔÇѲ¹ì',2028,2028),('ÊÔÃÔÇѲ¹Ò',2227,2227),('ÈÔÃÔÈÑ¡´Ôì',2029,2029),('ÈÔÃÔÅѡɳì',2026,2026),('ÊÔÃÔÅѡɳì',2224,2224),('ÈÔÃÔ¡ØÅ',2010,2010),('ÈÔÃԨѹ·Ãì',2011,2011),('ÈÔÃÔªÑÂ',2013,2013),('ÊÔÃÔªÑÂ',2213,2213),('ÊÓÃÒ­',2197,2197),('ÈÔÃÔ·Ñȹì',2014,2014),('ÈÔÃÔ¸Ã',2015,2015),('ÊÔÃÔ¹Ãѵ¹ì',2216,2216),('ÈÔÃÔ¹Òö',2017,2017),('ÈÔÃÔ¹­Ò',2016,2016),('ÊÔÃÔ¹¾Ã',2215,2215),('ÈÔÃԹت',2018,2018),('ÊÔÃÔ»ÃÐÀÒ',2217,2217),('ÈÔÃÒ¾Ã',2008,2008),('ÈÔÃÔ¾Ã',2020,2020),('ÊÔÃÔ¾Ã',2219,2219),('ÈÔÃÔ¾Ãó',2021,2021),('ÊÔÃÔ¾Ãó',2220,2220),('ÊÔÃԾѹ¸ì',2221,2221),('ÈÔÃÔ¾§Éì',2019,2019),('ÊÔÃÔ¾§Éì',2218,2218),('ÊÒÂÅÁ',2182,2182),('ÊÒÂä¿¿éÒä·Â-ÂÒ«Ò¡Ô',2180,2180),('ÊÒªÅ',2177,2177),('ÊÓà¹Õ§',2194,2194),('ÊÒ¹·Õ',2178,2178),('ÊÒ½¹',2179,2179),('ÈÔÇÒÀóì',2036,2036),('ÊÕÇÔ¡Ò',2231,2231),('ÊÒÇÔµÃÕ',2192,2192),('ÈÔÇÒ¾Ã',2035,2035),('ÊÔÇÅÕ',2229,2229),('ÈÔǾÃ',2033,2033),('ÈÔǾÅ',2034,2034),('ÈÔÅÒ',2032,2032),('ÊÒÅÕ',2190,2190),('ÊÓÅÕ',2199,2199),('ÊÒÅÕè',2191,2191),('ÈÔÅ»ªÑÂ',2031,2031),('ÊÓÄ·¸Ôì',2198,2198),('ÊÒ¤Ã',2171,2171),('ÊÔ§Ëì',2200,2200),('ÊÔ§Ëì¾Å',2201,2201),('ÊÔ§ËÒ',2202,2202),('ÊԵҹѹ',2203,2203),('ÊÔµÒ¾Ã',2204,2204),('ÊÔ·¸Ò',2205,2205),('ÊÔ·¸Ôà´ª',2208,2208),('ÊÔ·¸Ôì',2206,2206),('ÊÔ·¸ÔªÑÂ',2207,2207),('ÊÔ·¸Ô¾Ã',2209,2209),('ÊÔ·¸Ô¾Ãó',2210,2210),('ÊÔ·¸Ô¾Å',2211,2211),('ÊÒ¸Ôµ',2172,2172),('ÊÕ¹ÇÅ',2230,2230),('Êӹѡ¹âºÒÂáÅÐá¼¹¡Ãا෾ÁËÒ¹¤Ã',2193,2193),('ÊÒ¹ÔµÂì',2173,2173),('ÈÒ¹µÔᏴì',2005,2005),('ÊÔ¹·ÇÕ',2212,2212),('ÊÅÑ¡¨ÔµÃ',2151,2151),('ÈÅÔÉÒ',1988,1988),('ËÄ·Â',2447,2447),('Ê¡ÒÇÃѵ¹ì',2057,2057),('Ê¡ÅÃѵ¹ì',2056,2056),('È¡ÅÇÃó',1954,1954),('˧',2441,2441),('ʧǹ',2060,2060),('ʧèÒ',2064,2064),('ʧѴ',2063,2063),('ʧ¡ÃÒ¹µì',2059,2059),('ʧ¡Ã³ì',2058,2058),('ȨÕ',1955,1955),('ʴѺ¾Ô³',2065,2065),('ʶÔÃÂÒ',2068,2068),('ʶҾÃ',2067,2067),('Ë·ÑÂ',2442,2442),('Ë·ÑÂÃѵ¹ì',2444,2444),('Ë·Ñ·ԾÂì',2443,2443),('ʹã¨',2069,2069),('ʹͧ',2073,2073),('ʹÑè¹',2074,2074),('ʹԴÒ',2075,2075),('˹Öè§Ä·ÑÂ',2445,2445),('ʹ·ÂÒ',2070,2070),('ʹ¸ÂÒ',2072,2072),('ʹ¸¾',2071,2071),('ÈØÀÃ',2042,2042),('ÈØÀÃѵ¹ì',2043,2043),('ÈØÀÃÒÀóì',2044,2044),('ÊØÀÁÒÊ',2329,2329),('ÈØÀÁÔµÃ',2041,2041),('ÊØÃàªÉ°ì',2353,2353),('ÊØÀ⪤',2328,2328),('ÊØÃà´ª',2354,2354),('ÊØàÁ¸',2348,2348),('ÊØàÁ¸Õ¡ì',2349,2349),('ÉØÀÁ¹',2053,2053),('ÈØÀÇѲ¹ì',2046,2046),('ÈØÀÇÔ·Âì',2047,2047),('ÈØÀÈÑ¡´Ôì',2048,2048),('ÊØÃÈÑ¡´Ôì',2360,2360),('ÊØÃÊÔ·¸Ôì',2361,2361),('ÊØÀѤ',2330,2330),('ÊØÃѪ¹Õ¡Ã',2362,2362),('ÊØÀѵÃÒ',2331,2331),('ÊØÃѵÂÒ',2367,2367),('ÊØÃѵ¹Ç´Õ',2365,2364),('ÊØÃѵ¹ì',2363,2363),('ÊØÃѵ¹ìÇ´Õ',2364,2365),('ÊØÃѵ¹Ò',2366,2366),('ÊØÀÑ·ÃÒ',2332,2332),('ÊØÀÒ',2333,2333),('ÊØÀÒÀóì',2338,2338),('ÊØÃÕÂì',2381,2381),('ÊØÃÕÂì¾Ã',2382,2382),('ÊØÃÕÃѵ¹ì',2383,2383),('ÊØÃÔÂѹ',2375,2375),('ÊØÃÔÂѹµì',2376,2376),('ÊØÃÔÂÒ',2377,2377),('ÊØÃÕÁÒÈ',2380,2380),('ÊØÃÔ§Èì',2371,2371),('ÊØÀÒôÕ',2339,2339),('ÊØÃÔ¹',2372,2372),('ÊØÃÔ¹µì',2373,2373),('ÊØÃÔ¾§Èì',2374,2374),('ÊØÀÒÇ´Õ',2340,2340),('ÈØÀÔÊÃÒ',2049,2049),('ÊØÁÒÊÕ',2345,2345),('ÊØÁÒÅÕ',2344,2344),('ÊØÃÒ§¤¹Ò',2368,2368),('ÊØÃÔªÑÂ',2369,2369),('ÊØÀÔ­­Ò',2341,2341),('ÊØÀÒ³Õ',2334,2334),('ÊØÁÔµÃ',2346,2346),('ÊØÁÔµÃÒ',2347,2347),('ÊØÃÕ¸Ò¾Ã',2378,2378),('ÊØÃÔ¹·Ãì',2370,2370),('ÊØÀÒ¾',2335,2335),('ÊØÀÒ¾Ã',2336,2336),('ÊØÃÕ¾Ã',2379,2379),('ÊØÀÒ¾Ãó',2337,2337),('ÈØÀÅѡɳì',2045,2045),('ÈØÀ¡Ã',2037,2037),('ÈØÀ¡Ô¨',2038,2038),('ÊØÀ¡Ô¨',2326,2326),('ÊØáԨ',2350,2350),('ÈØÀªÑÂ',2039,2039),('ÊØêÑÂ',2351,2351),('ÊØÀªÒ',2327,2327),('ÊØêҵÔ',2352,2352),('ÊØ÷Թ',2355,2355),('ÊØà·¾',2289,2289),('ÊØÁ¹Ò',2343,2343),('ÊØ๵Ã',2307,2307),('ÊØÁ¹µì',2342,2342),('ÈØÀ¾Ã',2040,2040),('ÊØþѹ¸ì',2358,2358),('ÊØþѹ¸Øì',2359,2359),('ÊØþÅ',2357,2357),('ÊØþ§Éì',2356,2356),('ÊØÇÃó',2386,2386),('ÊØÇÃóÒ',2388,2388),('ÊØÇÃóÕ',2389,2389),('ÊØÇÃóÕÂì',2390,2390),('ÊØÇÃóªÑÂ',2387,2387),('ÊØÇÃѵ¹ì',2391,2391),('ÊØÇÀÑ·Ãì',2385,2385),('ÊØÇѲ¹ì',2392,2392),('ÊØÇѲ¹ìªÑÂ',2393,2393),('ÊØÇѲ¹Ò',2394,2394),('ÊØÇѵªÑÂ',2395,2395),('ÊØÇÔÃѪ',2402,2402),('ÊØÇÒÃÕ',2396,2396),('ÊØÇÔÁÅ',2401,2401),('ÊØÇÔªÑÂ',2397,2397),('ÊØÇÔªÒ',2398,2398),('ÊØÇÔ´Ò',2399,2399),('ÊØÇÔ·Âì',2400,2400),('ÊØËÑʪÒ',2404,2404),('ÊØÊÔÃÔ',2403,2403),('ÊØÅÑ´´Ò',2384,2384),('ÊØ¡ÃÕ',2232,2232),('ÊØ¡Ñ­­Ò',2233,2233),('ÊØ¡Ô¨',2235,2235),('ÊØ¡ÔµÔì',2236,2236),('ÊØ¡ÕµÔì',2237,2237),('ÊØ¡Ò¹´Ò',2234,2234),('ÊØ¡ØÁÒ',2238,2238),('ÊØ¢',2239,2239),('ÊØ¢ÊÇÑÊ´Ôì¡Å¡ÒÃ',2242,2242),('ÊØ¢Êѹµì',2243,2243),('ÊآĴÕ',2241,2241),('ÊØ¢ªÒÂ',2240,2240),('ÊØ¢ØÁ',2244,2244),('Êؤ¹¸ì',2245,2245),('Êؤ¹¸Ò',2246,2246),('ÊبÒÃÕ',2247,2247),('ÊبԵ',2248,2248),('ÊبԵÃÒ',2250,2250),('ÊبԵµÒ',2249,2249),('ÊبԹ´Ò',2251,2251),('ÊبԹµì',2252,2252),('ÊبԹµ¹ì',2253,2253),('ÊتÑÂ',2255,2255),('ÊتÒÂ',2258,2258),('ÊتÒÊÔ¹Õ',2259,2259),('ÊتҴÒ',2256,2256),('ÊتԵ',2260,2260),('ÊتҵÔ',2257,2257),('ÊتԹ',2261,2261),('ÊتÅ',2254,2254),('ÊرÒÁÒÈ',2262,2262),('ÊسÕ',2263,2263),('ÊØ´ÊÇÒ·',2265,2265),('Êشʧǹ',2264,2264),('ÊØ´Ò',2266,2266),('ÊØ´ÒÃѵ¹ì',2270,2270),('ÊØ´ÒÀÒ',2269,2269),('ÊØ´ÒÃÒ',2271,2271),('ÊØ´Õà¾é¹·ìà«ç¹àµÍÃì',2272,2272),('ÊØ´ÒªÅÕ',2267,2267),('ÊØ´Ò¾Ã',2268,2268),('ÊØ·ÃÕ',2282,2282),('ÊØ·ÑÈ',2283,2283),('ÊØ·Ñȹì',2284,2284),('ÊØ·ÔÈÒ',2288,2288),('ÊØ·ÔµÂì',2285,2285),('ÊØ·Ô¹',2286,2286),('ÊØ·Ô¾Ò',2287,2287),('ÊØ·¸ÔÇѲ¹ì',2280,2280),('ÊØ·¸ÔÈÑ¡´Ôì',2281,2281),('ÊØ·¸Ô쾧Éì',2278,2278),('ÊØ·¸Ô¡Ò¨',2274,2274),('ÊØ·¸ÔªÑÂ',2275,2275),('ÊØ·¸Ò·Ô¾Âì',2273,2273),('ÊØ·¸Ô¹Ñ¹·ì',2276,2276),('ÊØ·¸Ô¹Õ',2277,2277),('ÊØ·¸Ô¾Ãó',2279,2279),('ÊظÕ',2294,2294),('ÊظÕÃì',2295,2295),('ÊظÕÃÒ',2296,2296),('ÊظÔÈÑ¡´Ôì',2293,2293),('ÊظԴÒ',2292,2292),('ÊظҷԾÂì',2290,2290),('ÊظҹԸÔ',2291,2291),('Êعѷ·Õ',2299,2299),('Êعѹ·ì',2300,2300),('Êعѹ·Ò',2301,2301),('ÊعÕÂì',2306,2306),('ÊعÔÈÒ',2303,2303),('ÊعÔÉÒ',2304,2304),('ÊعÔÊÒ',2305,2305),('ÊعԵÒ',2302,2302),('Êع·Ã',2297,2297),('Êع·ÃÕ',2298,2298),('ÊØ»ÃÐÇÕ³ì',2309,2309),('ÊØ»ÃдÔÉ°ì',2308,2308),('ÊØ»ÃÕÃдÒ',2312,2312),('ÊØ»ÃÕÂÒ',2311,2311),('ÊØ»ÃÒ³Õ',2310,2310),('Êػѭ­Ò',2313,2313),('ÊؾÃ',2316,2316),('ÊؾÃÃÉÒ',2318,2318),('ÊؾÃóÕ',2317,2317),('ÊؾѲ¹ì',2320,2320),('ÊؾѵÃÒ',2321,2321),('ÊؾÕÃìªÑÂ',2325,2325),('ÊؾÔÈ',2324,2324),('ÊؾԪ­ìª­Ò',2322,2322),('ÊؾԹ',2323,2323),('ÊؾÅ',2319,2319),('Êؾ¨ÁÒÅÂì',2315,2315),('Êؾ¨¹ì',2314,2314),('GEORGE',21,21),('Í.à¨ÃÔ­ÎÒÃì´áÇÃì',2457,2457),('ÍÁÃÃѵ¹ì',2515,2515),('ÍÁÃà·¾',2514,2514),('ÍÁÃÈÑ¡´Ôì',2516,2516),('ÍÁÃÊÔÃÔ',2517,2517),('ÍÃÀÑ·Ãì',2534,2534),('ÍÁÃÒÅѡɳì',2518,2518),('ÍÃæÂì',2535,2535),('ÍÁêÑÂ',2513,2513),('ÍÃó¾',2536,2536),('ÍÃöÊÔ·¸Ôì',2540,2540),('ÍÃö¾Ã',2538,2538),('ÍÃö¾Å',2539,2539),('ÍÃö¾¹¸ì',2537,2537),('ÍÃ๵Ã',2530,2530),('ÍÃÇÃó',2542,2542),('ÍÃÇÔ· ÍÔ¹àµÍÃì๪Ñè¹á¹Å',2543,2543),('ÍÃÈÁ',2544,2544),('ÍÃÈÃÕ',2545,2545),('ÍÃÊÒ',2546,2546),('ÍÃèÒÁÈÃÕ',2551,2551),('ÍÃ͹§¤ì',2547,2547),('ÍÃÍØÁÒ',2548,2548),('ÍÃÑ­',2549,2549),('ÍÃÑ­­Ò',2550,2550),('ÍÀѹµÃÕÊì',2496,2496),('ÍÀÔÃÑ¡Éì',2507,2507),('ÍÃÔÂÒ',2555,2555),('ÍÃÔÂÒÀóì',2556,2556),('ÍÀÔÀÒ´Ò',2505,2505),('ÍÀÔવ',2501,2501),('ÍÀÔôÕ',2506,2506),('ÍÀÔà´ª',2503,2503),('ÍÀÔÇѲ¹ì',2508,2508),('ÍÀÔÇѹ·ì',2509,2509),('ÍÀÔÊÃ',2511,2511),('ÍÃÔÈÃÒ',2557,2557),('ÍÃÔÊÃÒ',2558,2558),('ÍÀÔÈÑ¡´Ôì',2510,2510),('ÍÃÔÊÒ',2559,2559),('ÍÀÔÊÔ·¸Ôì',2512,2512),('ÍÀÔªÑÂ',2497,2497),('ÍÃÔªÑÂ',2552,2552),('ÍÀÔªÒ µÔ',2498,2498),('ÍÀÔªÒµ',2499,2499),('ÍÀÔªÒµÔ',2500,2500),('ÍÀÔ­­Ò',2502,2502),('ÍÁÔµÒ',2519,2519),('ÍÀԹѹ·ì',2504,2504),('ÍÃÔ¹ª¹Ò',2553,2553),('ÍÁÔ¹µÒ',2520,2520),('ÍÃÔ¹·ÁÒ',2554,2554),('ÍÃÄ´Õ',2541,2541),('ÍèÔÃÒ',2522,2522),('ÍêÃ',2523,2523),('ÍêسËì',2524,2524),('Íóѭªì',2525,2525),('Íâ³·ÂÒ',2459,2459),('Í÷ÑÂ',2526,2526),('Í÷ԪÒ',2527,2527),('ÍùԵÂì',2528,2528),('Í⹪Ò',2495,2495),('Íùت',2529,2529),('ÍþÃó',2531,2531),('ÍþԹ',2532,2532),('ÍþԹ·Ãì',2533,2533),('ÍÃس',2560,2560),('ÍÃسÃѵ¹ì',2561,2561),('ÍÃسÃØè§',2562,2562),('ÍÃسÈÃÕ',2563,2563),('ÍÃسÕ',2564,2564),('ÍÂظÂѹ',2521,2521),('ÍǪÑÂ',2567,2567),('ÍÐÅÒ¹',2574,2574),('ÍФÙà·ç¤·ì',2573,2573),('ÍéÍ·ԾÂì',2571,2571),('ÍéÒÂÍÔé§',2612,2612),('ÍÍâµàÁªÑè¹à«ÍÃìÇÔÊ',2570,2570),('ÍÍÊ·ì ÍÍÂÊì',2572,2572),('ÎÍÊ·ì ÍÍÂÅì',2723,2723),('ÍͤµéÒ àÁÁâÁàÃÕÂÅ',2568,2568),('ÍͤµéÒàÁÁâÁàÃÕÂÅ',2569,2569),('ÍÑÁä¾ÇÃó',2594,2594),('ÍÑÁ¾Ã',2592,2592),('ÍÑÁ¾Ãó',2593,2593),('ÍѤÃà´ª',2575,2575),('ÍѤÃÇÔ·Âì',2578,2578),('ÍѤÃÇÔ¹·ì',2579,2579),('ÍѤÃÒ',2580,2580),('ÍѤþѨ¹ì',2577,2577),('ÍѤþ¹¸ì',2576,2576),('ÍѧʹÒ',2581,2581),('ÍѨ©ÃÒ',2582,2582),('ÍѪÂÒ',2583,2583),('ÍÑ­ªÅÕ',2587,2587),('ÍÑ­ª³Ò¾Ã',2584,2584),('ÍÑ­ª´Ò',2585,2585),('ÍÑ­ª¹Ò',2586,2586),('ÍÑ­ªØÅÕ',2588,2588),('ÍÑ®ÉÁÒ',2589,2589),('ÍѹÊÃÕÂì',2590,2590),('ÍÑ»ÊÃ',2591,2591),('ÍÒÃÂѹ',2616,2616),('ÍÒÃÂÒ',2617,2617),('ÍÔÁâ¡éá¾ç¤ ¤ÍÃì»ÍÃìàêÑè¹',2641,2641),('ÍÒÀóì',2606,2606),('ÍÒÃÁ³ì',2615,2615),('ÍÒÃì«Õ ¹ÔµáÇÃì',2613,2613),('ÍÒÃì«Ø»à»ÍÃì⫹Ԥ¾Ô¤ÍѾÊì',2614,2614),('ÍÒÃÑ¡Éì',2618,2618),('ÍÒÀÒ',2607,2607),('ÍÒÃÕ',2621,2621),('ÍÓÀÒ',2633,2633),('ÍÒÀÒÀóì',2611,2611),('ÍÒÃÕÂì',2622,2622),('ÍÒÃÕÂì àÊÁÒ©ÔÁ (ä·Âູ¡Ñ¹',2623,2623),('ÍÒÃÕÃѵ¹ì',2624,2624),('ÍÒÃÔÂÒ',2620,2620),('ÍÒÃÕÇÃó',2625,2625),('ÍÒÀÒ¡Ã',2608,2608),('ÍÒÀÒ³Õ',2609,2609),('ÍÒÀÒ¾Ã',2610,2610),('ÍÒÃÒ¾Ã',2619,2619),('ÍÔÈÃÒ',2642,2642),('ÍÔê¡«èÒ ÍÔ¹àµÍÃì๪Ñè¹á¹Åਹà¹ÃÑÅ à«ÅÅì',2634,2634),('ÍÓä¾',2632,2632),('ÍÒ¤Á',2595,2595),('Íԧ˷ÑÂ',2635,2635),('ÍÒ¨³Ã§¤ì',2596,2596),('ÍÒ«ÒÎÕ-ä·Â ÍÑÅÅÍÂ',2597,2597),('ÍҳѹÂì',2598,2598),('ÍÒ·Ô¡Ã',2599,2599),('ÍÕ·Õ«Õ',2643,2643),('ÍÒ·Ôµ',2600,2600),('ÍÔ·¸Ô¾Å',2636,2636),('ÍÔ¹àµÍÃìàÇç·(»ÃÐà·Èä·Â)',2638,2638),('ÍÓ¹ÇÂ',2626,2626),('ÍҹѴ',2603,2603),('ÍҹѹµÂÒ',2604,2604),('ÍÓ¹Ò¨',2627,2627),('ÍԹ䫷ìà¤Á',2637,2637),('ÍÔ¹·ÔÃÒ',2639,2639),('ÍÒ¹¹·ì',2601,2601),('ÍÒ¹¾',2602,2602),('ÍÒ¹ØÀÒ¾',2605,2605),('ÍÔ¾',2640,2640),('ÍÓ¾Ã',2628,2628),('ÍÓ¾Ãó',2629,2629),('ÍӾѹ¸ì',2631,2631),('ÍÓ¾Å',2630,2630),('ÎÙàÇÍÃìÍصÊÒË¡ÃÃÁ(»ÃÐà·Èä·Â)',2724,2724),('Íŧ¡Ã³ì',2566,2566),('Íŧ¡µ',2565,2565),('ͧÍÒ¨',2458,2458),('Í´Ôàá',2460,2460),('Í´ÔÈÃ',2461,2461),('Í´ÔÈÑ¡´Ôì',2462,2462),('Í´ØÅ',2463,2463),('Í´ØÅÂìà´ª',2465,2465),('Í´ØžѲ¹ì',2464,2464),('͵Թت',2466,2466),('͵ԾÃ',2467,2467),('ͶԪÒ',2468,2468),('͸Ի¾Å',2469,2469),('͹ÇѪ',2473,2473),('͹ѭ­Ò',2474,2474),('͹ѹµÈÑ¡´Ôì',2476,2476),('͹ѹµì',2475,2475),('͹§¤ìÇÃó',2471,2471),('͹§¤ì¹Ò®',2470,2470),('͹¹·ì',2472,2472),('͹ØÃÑÉì',2491,2491),('͹ØÃÑ¡Éì',2489,2489),('͹ØÃѵ¹ì',2490,2490),('͹ØÇѲ¹ì',2492,2492),('͹ØÊóì',2494,2494),('͹ØÈÑ¡´Ôì',2493,2493),('͹ءԵÔ',2477,2477),('͹ءÙÅ',2478,2478),('͹تÒ',2479,2479),('͹تԵ',2480,2480),('͹شÒ',2481,2481),('͹صÃ',2483,2483),('͹صµÃÒ',2482,2482),('͹طԵÒ',2484,2484),('͹ؾÃ',2487,2487),('͹ؾѹ¸ì',2488,2488),('͹ؾ§Èì',2485,2485),('͹ؾ§Éì',2486,2486),('ÍØÁÒ',2665,2665),('ÍØÃÕÂì',2667,2667),('ÍØÁÒ¾Ã',2666,2666),('ÍØà·¹·Ãì',2660,2660),('ÍØÉÒ',2673,2673),('ÍØÊÒËì',2674,2674),('ÍØè§á¤Ð',2644,2644),('ÍØɳÕ',2672,2672),('ÍØè¹ã¨',2661,2661),('ÍØÌÒÃ',2675,2675),('ÍØäÃ',2668,2668),('ÍØäÃÃѵ¹ì',2670,2670),('ÍØäÃÇÃó',2671,2671),('ÍØäþÃ',2669,2669),('ÍسÒÇ´Õ',2645,2645),('ÍØ´Á',2646,2646),('ÍØ´Ã',2654,2654),('ÍØ´ÁàÁ´Ô¤ÍÅ ÍÔ¤ÇÔ»àÁé¹',2650,2650),('ÍØ´ÁÇþѹ¸ì',2652,2652),('ÍØ´ÁÈÑ¡´Ôì',2653,2653),('ÍØ´ÁÅѡɳì',2651,2651),('ÍØ´Á¾Ã',2648,2648),('ÍØ´Á¾Ñ¹¸ì',2649,2649),('ÍØ´Á¾§Èì',2647,2647),('ÍصâÁ·Âì',2655,2655),('ÍصÊÒË¡ÃÃÁ¼éÒà¤Å×ͺ¾ÅÒʵԡä·Â',2656,2656),('ÍØ·ÑÂ',2657,2657),('ÍØ·ÑÂÇÃó',2658,2658),('ÍØ·ØÁ¾Ã',2659,2659),('ÍغÅ',2662,2662),('ÍغÅÇÃó',2664,2664),('ÍغžÃó',2663,2663),('KAWAIJIT',22,22),('KAWALJIT',23,23),('KOJI',24,24),('LOUIS',25,25),('PETER',26,26),('SHERMAN',27,27),('TAN',28,28),('Willem Arnold',29,29),('WONG',30,30),('WU',31,31),('ÅÐÁèÍÁ',1718,1718),('ÅÐàÍÕ´',1721,1721),('ÅÐÁÑÂ',1719,1719),('ÅÐÍͧ´ÒÇ',1720,1720),('ÅÑ¡ÉÁÕ',1724,1724),('ÅѡɳÒ',1723,1723),('ÅÑ¡¢³Ò',1722,1722),('ÅÑ­ª¹Ò',1725,1725),('ÅÑ´´Ò',1726,1726),('ÅÑ´´ÒÇÃó',1727,1727),('ÅÑ´´ÒÇÑÅÂì',1728,1728),('ÅÑ·¸ÈÑ¡´Ôì',1729,1729),('ÅÔÁ',1734,1734),('ÅÒÇѳÂì',1730,1730),('ÅÔÅÒÀóì',1735,1735),('ÅÓäÂ',1732,1732),('ÅÓä¾',1731,1731),('ÅÔ¹´ÒÇÃó',1733,1733),('ÅÅÔ´Ò',1716,1716),('ÅÅÔµÒ',1717,1717),('Å×ͪÑÂ',1736,1736),('äÁµÃÕ',1596,1596),('äÇ·Ô¹',1953,1953),('äÍ.àÍÊ.äÍ.ÍÔ¹àµÍÃì๪Ñè¹á¹Å',2721,2721),('äÍ.«Õ.«Õ.ÍÔ¹àµÍÃì๪Ñè¹á¹Å (ÁËÒª¹)',2718,2718),('äÍ.·Õ.áÍ´ìÇÒ¹« à·¤ ¨Ó¡Ñ´',2719,2719),('äÍ.·Õ.á͹´ìÇÒ¹« à·¤ ¨Ó¡Ñ´',2720,2720),('äÍÂàÃÈ',2722,2722),('ä¡Ãà·¾',215,215),('ä¡Ã¤Ó',214,214),('ä¡Ã¸ÇѪ',216,216),('äªÂÃѵ¹ì',575,575),('äªÂÁ§¤Å',574,574),('äªÂÒ',576,576),('äªÂ¹Ñ¹·¹ì',573,573),('ä´ÍСÅêÒÊ',709,709),('äµÃç¤ì',726,726),('äµÃà·¾',725,725),('äµÃ·È',724,724),('ä·Â',805,805),('ä·Â ¤Í¹Êì á͹´ì ºÔÅ´Ôé§',806,806),('ä·Â ´Õ à͹ ·Õ ྐྵ·ì',807,807),('ä·Â-àÍà«Õ ¾Õ.ÍÕ.ä¾é¾ì',824,808),('ä·ÂàÇŤ͹ÍصÊÒ¡ÃÃÁ',821,822),('ä·ÂÂÙà¹Õ¹¤ÇÍÅÅÔµÕé',820,821),('ä·Âà¡ÃÕ§ÊÔ觷Í',808,809),('ä·Âà¤ÁÕÀѳ±ì',810,811),('ä·Âà«çÅ·ÃÑÅà¤ÁÕ ª¹)',813,814),('ä·Âà«ç¹·ÃÑÅ à¤ÁÕ ª¹)',811,812),('ä·Âà«ç¹·ÃÑÅà¤ÁÕ',812,813),('ä·Âà¾ÔèÁ¾ÅÒʵԡ',819,820),('ä·ÂÍÔ¹àµÍÃì ÍÐâÃàÁµÔ¡Êì',823,824),('ä·ÂÍÔ¹àµÍÃì ¤ÍµµÍ¹¡Ò÷Í',822,823),('ä·Â¤Òà«ÎÔ¹',809,810),('ä·Â´Õà͹·Õྐྵ·ì',814,815),('ä·Âµ§¹ÔµµÔé§',815,816),('ä·Â¸Ò¹Õà¤ÁÕ',817,818),('ä·Â¸¹Ò¾Ò³ÔªÂì',816,817),('ä·Â¾ÃçÍ¡«ì',818,819),('Ä·¸Ôì',1714,1714),('Ä·¸ÔªÑÂ',1715,1715),('ä¼·',1292,1292),('ä¾àÃÒÐ',1485,1485),('ä¾âè¹ì',1486,1486),('ä¾ÃÊÔ·¸Ôì',1481,1481),('ä¾Ãʳ±ì',1480,1480),('ä¾ÃѪ',1482,1482),('ä¾Ãѵ¹ì',1483,1483),('ä¾ÃÔ¹·Ãì',1484,1484),('ä¾ÃÄ·¸Ôì',1479,1479),('ä¾ÇÑÅÂì',1488,1488),('ä¾ÈÔÃÔ',1490,1490),('ä¾ÈÒÅ',1489,1489),('ä¾ÊÔ°',1491,1491),('ä¾ÅÔ¹',1487,1487),('ä¾±ÙÃÂì',1477,1477),('侺ÙÅÂì',1478,1478),('¡.µÃÕ·Ô¾Âì ¤Í¹«ÑÅáµ¹·ì',32,32),('¡ÃíԡÒÃì',65,65),('¡ÃóԡÒ',66,66),('¡ÃóԡÒÃì',67,67),('¡ÃÇÔ·Âì',69,69),('¡ÃÇÅÑÂ',68,68),('¡ÃШ¡ä·ÂÍÒ«ÒÎÕ',72,72),('¡Ãͧá¡éÇ',70,70),('¡Ãͧ·Ô¾Âì',71,71),('¡ÃÕ±Ò',73,73),('¡ÁÅ',49,49),('¡ÁÅÃѪµì',55,55),('¡ÁÅÃѵ¹ì',56,56),('¡ÁÅÁÒÅÂì',54,54),('¡ÁÅÇÃó',57,57),('¡ÁũѵÃ',50,50),('¡ÁÅ·Ô¾Âì',51,51),('¡ÁžÃ',52,52),('¡ÁžÃó',53,53),('¡Ã¡ÁÅ',60,60),('¡Ã¡¹¡',58,58),('¡Ã¡¾Ã',59,59),('¡ÃªÑÂ',61,61),('¡Ã³ì',62,62),('¡Ã¹Ñ¹·ì',63,63),('¡Ã»ÃÕÂÒ',64,64),('¡Ãا෾¼ÅÔµàËÅç¡',74,74),('¡Ãاä·ÂÍØ»¡Ã³ì',76,76),('¡Ãاä·Â¤ÒÃìàÃé¹·ì ÍÔ¹àµÍÃì๪Ñè¹á¹Å',75,75),('¡ÃسÒ',77,77),('¡ÇÕ',93,93),('¡ÉÁÒ',94,94),('¡èÍà¡ÕÂõÔ',98,98),('¡ÊÔÇѹ',97,97),('¡ÉÔª­ì',95,95),('¡ÉÔ´ÔÈ',96,96),('¡Íºá¡éÇ',100,100),('¡ÍºÅÒÀ',102,102),('¡Íº¡ØÅ',99,99),('¡ÍººØ­',101,101),('¡Ñ ÅÂÒ',103,103),('¡ÑÁ»¹Ò¶',117,117),('¡ÑÁ»¹Ò·',118,118),('¡ÑÅÂÒ',119,119),('¡ÑÅÂÒÃѵ¹ì',121,121),('¡ÑÅÂÒ³Õ',120,120),('¡Ñ­ª¾Ã',104,104),('¡Ñ­­ÀѤ',105,105),('¡Ñ­­ìÇÃÒ',106,106),('¡Ñ­­ÒÁÒÈ',107,107),('¡Ñ­­ÒÇÕÃì',108,108),('¡Ñ³°Ô¡Ò',110,110),('¡Ñ³°ªÒ',109,109),('¡Ñ³·ÔÁÒ',111,111),('¡Ñ¹ÂÒÃѵ¹ì',116,116),('¡Ñ¹µì',112,112),('¡Ñ¹µÔ¡Ã',113,113),('¡Ñ¹¸ÔÁÒ',115,115),('¡Ñ¹¸ÔªÒ',114,114),('¡ÒÃÇÔÍÃ',128,128),('¡ÒÂÊÔ·¸Ôì',127,127),('¡Óá˧',134,134),('¡ÔÁÅÑé§',157,157),('¡ÕõÔ',158,158),('¡ÒÃسÕ',129,129),('¡ÒÈÔ',130,130),('¡Ô觡ҭ¨¹ì',135,135),('¡ÓäÃ',133,133),('¡Ô¨ÇÃó',137,137),('¡Ô¨µÔÂÒ',136,136),('¡Ò­¨¹ÇÃó',122,122),('¡Ò­¨¹Ò',123,123),('¡ÔµÔ¡Ã',153,153),('¡ÔµÔ¡Ã³ì',154,154),('¡ÔµÔ¡Ñ­­Ò',155,155),('¡ÔµÔªÒ­',156,156),('¡ÔµµÔ',138,138),('¡ÔµµÔÃѵ¹ì',150,150),('¡ÔµµÔÁÒ',148,148),('¡ÔµµÔÂÒ',149,149),('¡ÔµµÔÇѲ¹ì',151,151),('¡ÔµµÔÈÑ¡´Ôì',152,152),('¡ÔµµÔ¡Ñ¹µì',139,139),('¡ÔµµÔªÑÂ',140,140),('¡ÔµµÔ­Ò',141,141),('¡ÔµµÔ¹Ñ¹·ì',142,142),('¡ÔµµÔ¾Ñ²¹ì',146,146),('¡ÔµµÔ¾Ñ¹¸ì',147,147),('¡ÔµµÔ¾Å',145,145),('¡ÔµµÔ¾§Èì',143,143),('¡ÔµµÔ¾§Éì',144,144),('¡Ó¸Ã',131,131),('¡Ò¹´Ò',124,124),('¡Ò¹µì',125,125),('¡Ò¹µìÃÇÕ',126,126),('¡Ó¾Å',132,132),('¡Ùê´ÇÔÅ ÍÔ¹´ÑʵÃÕé',169,169),('¡ÄÉ®Ò',84,84),('¡ÄÉ®Õ',85,85),('¡ÄɮվÃ',86,86),('¡ÄɳÐ',89,89),('¡ÄɳÒ',90,90),('¡ÄɳÕ',91,91),('¡Äɳ¾Å',88,88),('¡Äɳ¾¨¹ì',87,87),('¡ÄÉ´Ò',92,92),('¡ÄȾÃó',83,83),('¡ÄªÇÃó',78,78),('¡ÄµÂÒ',80,80),('¡ÄµÔÂÒ',82,82),('¡ÄµÔ¡Ò¹·ì',81,81),('¡Äµº¾Ô¸',79,79),('¡ªÁÅ',35,35),('¡ª¡Ã',33,33),('¡ª¾Ã',34,34),('¡µÑ­­Ù',36,36),('¡¹ÔÉ°Ò',48,48),('¡¹¡',37,37),('¡¹¡Ãѵ¹ì',43,43),('¡¹¡ÇÃó',45,45),('¡¹¡ÈÃÕ',46,46),('¡¹¡Ò­¨¹ì',47,47),('¡¹¡Ä·¸Ôì',44,44),('¡¹¡¡Ò­¨¹ì',38,38),('¡¹¡ªÑÂ',39,39),('¡¹¡¹ÔÀÒ',40,40),('¡¹¡¹Øª',41,41),('¡¹¡¾Ã',42,42),('¡ØÁØ·¾Ñ¹¸ì',159,159),('¡ØéÂà«é§ ÍÔÁ»ÍÃìµ á͹´ì àÍç¡«ì»ÍÃìµ',160,160),('¡ØËÅÒº',168,168),('¡ØÊØÁÒ',167,167),('¡ØÅÂÒ',163,163),('¡ØÅÇ´Õ',165,165),('¡ØÅÈÔÃÔ',166,166),('¡ØÅÅ´Ò',164,164),('¡ØŹѹ·ì',161,161),('¡ØŹÒÃÕ',162,162),('¢ÇÑ­àÁ×èͧ',228,228),('¢ÇÑ­àÃ×͹',231,231),('¢ÇÑ­ã¨',223,223),('¢ÇÑ­à´×͹',225,225),('¢ÇÑ­à¾çªÃ',227,227),('¢ÇÑ­ÃØé§',230,230),('¢ÇÑ­ÂؾÒ',229,229),('¢ÇÑ­ªÑÂ',224,224),('¢ÇÑ­µÒ',226,226),('¢éÒÇÍÔèÁ·Ô¾Âì',233,233),('¢ÑµµÔÂÒ³Õ',232,232),('¢¨Ã',217,217),('¢¨Ãà¡ÕÂõÔ',218,218),('¢¨ÃÈÃÕ',219,219),('¢¨ÃÈÑ¡´Ôì',220,220),('¢¹ÔÉ°ì',221,221),('¢¹ÔÉ°Ò',222,222),('¢Ø¹·Í§',234,234),('¤Áà¾çªÃ',249,249),('¤ÃÒ¿·ìà´ÍÐàºÊ·ì',250,250),('¤Á¡ÃÔª',247,247),('¤Á¨Ñ¡Ã',248,248),('¤àª¹·Ãì',238,238),('¤à³È',244,244),('¤à¹Âì',246,246),('¤ÍÊÁÔ¤ ¤Í¹¤ÍÃì´ ¤ÍÃì»ÍàêÑè¹',251,251),('¤ÔÁ§¤ì',257,257),('¤Óá˧',256,256),('¤ÒÃìâ»Ãà¿ÊªÑè¹á¹Å',253,253),('¤Óó',255,255),('¤ÒÇÒ¤Ô¹',254,254),('¤Ò«ÙâÍÐ',252,252),('¤ÙèºØ­',260,260),('¤Ù»Ò¹Ò',261,261),('¤§à´ª',237,237),('¤§¡ÄÈ',236,236),('¤³ÒÇزÔ',240,240),('¤³ÔÈÃ',241,241),('¤³ÔÊÃ',242,242),('¤³Ò¡Ã',239,239),('¤³ØµÁì',243,243),('¤¸Ò',245,245),('¤Ø³Ò¡Ã',258,258),('¤Ø³Õ·Ã',259,259),('§ÒÁà¾ç­',273,273),('§ÒÁ¹Ô¨',272,272),('¨àÃ',298,298),('¨ÃÃÂÒ',285,285),('¨àÃÈÑ¡´Ôì',299,299),('¨ÃÇÃø¹ì',287,287),('¨ÃǾÃ',286,286),('¨ÃÑʪÑÂ',290,290),('¨ÃÑʾÅ',291,291),('¨ÃÑÅ',289,289),('¨ÃÑ­',288,288),('¨ÃÔÂÒ',294,294),('¨ÃÔÂÒÀóì',295,295),('¨ÃÔ¹·Ãì',292,292),('¨ÃÔ¹¸Ã',293,293),('¨ÃÙ­',297,297),('¨ÃظԴÒ',296,296),('¨ÍÁ¢ÇÑ­ã¨',300,300),('¨Ñ¡ÃÇÒÅ',304,304),('¨Ñ¡Ãѵ¹ì',305,305),('¨Ñ¡ÃÕ',307,307),('¨Ñ¡ÃÔ¹·Ãì',306,306),('¨Ñ¡Ã¡Äɳì',302,302),('¨Ñ¡Ã¡Äª',301,301),('¨Ñ¡Ã¾Ñ¹¸ì',303,303),('¨Ñ¡ÉÇѯ',308,308),('¨Ñ´ËÒ§Ò¹ÎÔÇáÁ¹àÍ繨Ôà¹ÕÂÃÔè§',309,309),('¨ÑµÃ´ÒÇ',310,310),('¨Ñ¹¨ÔÃÒ',311,311),('¨Ñ¹·Ã',314,314),('¨Ñ¹·ÃìÃѵ¹ì',321,321),('¨Ñ¹·Ãìà¨éÒ',315,315),('¨Ñ¹·Ãìà¾ç­',320,320),('¨Ñ¹·ÃìÇÔÁÅ',322,322),('¨Ñ¹·ÃìÇÔäÅ',323,323),('¨Ñ¹·ÃìÊØ´Ò',324,324),('¨Ñ¹·Ãì·Ô¾Âì',316,316),('¨Ñ¹·Ãì¸ÔÀÒ',317,317),('¨Ñ¹·Ãì¹ÀÒ',318,318),('¨Ñ¹·Ãì¾Ã',319,319),('¨Ñ¹·ÔÀÒ',326,326),('¨Ñ¹·ÔÁÒ',327,327),('¨Ñ¹·ÔÃÒ',329,329),('¨Ñ¹·ÔÁÒÀóì',328,328),('¨Ñ¹·Ô¡Ò',325,325),('¨Ñ¹··Õ',312,312),('¨Ñ¹·¹Ò',313,313),('¨ÔÃÀÑ·Ã',361,361),('¨ÔÃÀÒ',362,362),('¨ÓàÃÔ­',344,344),('¨ÔÃÇÃó',363,363),('¨ÔÃÇѲ¹ì',364,364),('¨ÔÃÐÀÒ',369,369),('¨ÕÃÐÇѲ¹ì',386,386),('¨ÔÃÐÈÑ¡´Ôì',370,370),('¨ÕÃйѹ·ì',385,385),('¨ÔÃоÃ',367,367),('¨ÔÃоÃó',368,368),('¨ÔÃÈÑ¡´Ôì',365,365),('¨ÕÃÈÑ¡´Ôì',384,384),('¨ÔÃÊØ´Ò',366,366),('¨ÕâÍà·¤¹Ô¤ (ä·ÂᏴì)',388,388),('¨ÓÃÑÊ',343,343),('¨ÔÃѪ´Ò',371,371),('¨ÔÃÑ°µÔì',372,372),('¨ÔÃÒÀóì',376,376),('¨ÒÃÕÃѵ¹ì',333,333),('¨ÔÃÒÀÒ',377,377),('¨ÔÃÒÂØ',378,378),('¨ÔÃÒÇÃó',379,379),('¨ÔÃÒÇÑÅÂì',380,380),('¨ÔÃÒÇزÔ',381,381),('¨ÔÃÒ¤Á',373,373),('¨ÔÃҹت',374,374),('¨ÔÃÒ¾Ã',375,375),('¨ÔþÃ',359,359),('¨ÕþÃó',383,383),('¨Ôþѹ¸ì',360,360),('¨ÒÃØÃѵ¹ì',338,338),('¨ÒÃØÇÃó',339,339),('¨ÒÃسÕ',334,334),('¨ÒÃسÕÂì',335,335),('¨ÒÃعѹ',336,336),('¨ÒÃغصÃ',337,337),('¨ÕÍÕ á¤»»ÔµÍÅ (»ÃÐà·Èä·Â)',387,387),('¨ÓÅͧ',345,345),('¨Ô³³ì',346,346),('¨ÔµÃÒ',354,354),('¨ÔµÃÒÀóì',355,355),('¨ÔµÃÅ´Ò',353,353),('¨ÔµµÁÒÊ',349,349),('¨Ôµµì',347,347),('¨Ôµµì¹ÔÉÒ',348,348),('¨ÔµµÒ',350,350),('¨ÔµµÔ',351,351),('¨ÔµµÔ¹¹Ñ¹·ì',352,352),('¨ÒµØç¤ì',331,331),('¨ÒµØùµì',332,332),('¨ÒµØ¾Ã',330,330),('¨Õ·Õ«Õ ·Ã§¾Ñ¹¸ì)',382,382),('¨Ó¹§',340,340),('¨Ó¹§¤ì',341,341),('¨Ô¹´Ò',356,356),('¨Ô¹µì¨Ø±Ò',357,357),('¨Ô¹µ¹Ò',358,358),('¨Ó»Õ',342,342),('¨§ÃÑ¡',277,277),('¨§ÃÑ¡Éì',278,278),('¨§Åѡɳì',279,279),('¨§¡Å',275,275),('¨§¡Å³Õ',276,276),('¨µØç¤ì',283,283),('¨µØÄ·¸Ôì',284,284),('¨µØ¾Ã',280,280),('¨µØ¾Ñ¹¸ì',282,282),('¨µØ¾Å',281,281),('¨ØÃÕÃѵ¹ì',395,395),('¨ØÌÒ',397,397),('¨ØÌÒÀóì',398,398),('¨ØÌÒÀÒ',399,399),('¨ØÌÒÅѡɳì',400,400),('¨ØÅÅ´Ò',396,396),('¨Ø±ÒÃѵ¹ì',393,393),('¨Ø±ÒÁÒÈ',391,391),('¨Ø±ÒÁÒÊ',392,392),('¨Ø±ÒÇÃó',394,394),('¨Ø±Ò·Ô¾Âì',389,389),('¨Ø±Ò¾Ñ¹¸ì',390,390),('©ÇÕÇÃó',419,419),('©Íé͹',420,420),('©ÑµÃÀóì',422,422),('©ÑµÃÈÔÃÔ',423,423),('©ÑµÃªÑÂ',421,421),('©Ñ¹·Ãѵ¹ì',425,425),('©Ñ¹·¹Ò',424,424),('©ÅÇÂ',416,416),('©Åͧ',417,417),('©ÅÒ´',418,418),('©×èÍ ¨Ôé¹ ÎÑéÇ',426,426),('©×èͨÔé¹ÎÑéÇ',427,427),('ª.ÊÂÒÁ¨Ñ¡ÃÂÒ¹à´ç¡àÅè¹',437,437),('ªÁ',450,450),('ªÁÀÑÊÊÃ',454,454),('ªÁÀٹت',455,455),('ªÁѾÃ',456,456),('ªÃÑÊÃÒ',463,463),('ªÃѪÊÃÒ',461,461),('ªÃѶ¨Ñ¹·Ãì',462,462),('ªÂÒÀóì',460,460),('ªÃÔ¹Ãѵ¹ì',465,465),('ªÃÔ¹·Ãì',464,464),('ªÂÒ¾Å',459,459),('ªÂ¹',458,458),('ªÁ¾Ù¹Øª',452,452),('ªÁ¾Ù¹Ø·',453,453),('ªÁ¾Å',451,451),('ªÇÔÈÒ',479,479),('ªÇÅÔµ',478,478),('ªÇ¹',475,475),('ªÇ¹ªÁ',476,476),('ªÇ¹¾ÔÈ',477,477),('ªÐÍé͹',485,485),('ªÐ¹ÔÅ',484,484),('ªèÍ',480,480),('ªèÍÍÑ­ªÑ­',483,483),('ªèͩѵÃ',481,481),('ªèÍ·Ô¾Âì',482,482),('ªÑÂÂÐ',509,509),('ªÑÂÂÈ',508,508),('ªÑÂÃѵ¹ì',511,511),('ªÑÂÀÑ·Ã',505,505),('ªÑÂÁ§¤Å',506,506),('ªÑ§³ì',507,507),('ªÑÂà¨ÃÔ­ãªèËÅÕʵÕÅ',496,496),('ªÑÂÂØ·¸',510,510),('ªÑÂÇѲ¹ì',512,512),('ªÑÂÊÔ·¸Ôì',513,513),('ªÑÂÊÔ¹¸Øì',514,514),('ªÑªҭ',498,498),('ªÑª¹Ð',497,497),('ªÑ³ç¤ì',499,499),('ªÑ¸ÇѲ¹ì',500,500),('ªÑ¹ѹ·ì',502,502),('ªÑ¹¤Ã',501,501),('ªÑ¾Ã',503,503),('ªÑ¾Å',504,504),('ªÑªÀÑÊÊÃ',489,489),('ªÑªÀ³',488,488),('ªÑªÁ³±ì',490,490),('ªÑªÁ¹±ì',491,491),('ªÑªÇÒÅÂì',493,492),('ªÑªÇÒÅìÂ',492,493),('ªÑªªÑÂ',486,486),('ªÑª®Ò',487,487),('ªÑ­ÉÒ',495,495),('ªÑ­­Ò',494,494),('ªÒÂ',524,524),('ªÒÇѳÂì',526,526),('ªÕÇÒ¾Ã',534,534),('ªÒÅÕ',525,525),('ªÒ­',515,515),('ªÒ­ÂØ·¸',518,518),('ªÒ­ÈÑ¡´Ôì',519,519),('ªÒ­ªÑÂ',516,516),('ªÒ­³Ã§¤ì',517,517),('ªÔ´ª¹¡',529,529),('ªÒµÃÕ',520,520),('ªÒµÔªÒÂ',521,521),('ªÒ¹',522,522),('ªÔ¹',530,530),('ªÔ¹Ãѵ¹ì',532,532),('ªÔ¹ÇѲ¹ì',533,533),('ªÓ¹Ô',528,528),('ªÓ¹Ò­',527,527),('ªÒ¹¹·ì',523,523),('ªÔ¹¾Ñ¹¸ì',531,531),('ªÙà¡ÉÁ',544,544),('ªÙà¡ÕÂõÔ',545,545),('ªÙÈÑ¡´Ôì',553,553),('ªÙ¨Ôµ',546,546),('ªÙ¨Ôµµì',547,547),('ªÙªÑÂ',548,548),('ªÙªÒµÔ',549,549),('ªÙªÕ¾',550,550),('ªÙ¾§Èì',551,551),('ªÙ¾§Éì',552,552),('ªÅÍ',468,468),('ªÅÍÁ',469,469),('ªÅÒ¡Ã',470,470),('ªÅÔ¡Ò',471,471),('ªÅÔ´Ò',472,472),('ªÅÔµ',473,473),('ªÅÔµÒ',474,474),('ªÅ¸Õ',467,467),('ªÅ¸ÔªÒ',466,466),('ªäÁ¾Ã',457,457),('ª®ÒÃѪ',438,438),('ª´Ò¡Ã',439,439),('ª¹ÁìÊØÇÃó',442,442),('ª¹Ð',443,443),('ª¹Ð⪵Ô',444,444),('ª¹Ñ­­Ò',445,445),('ª¹Ñ°',446,446),('ª¹Ñ¹Àóì',447,447),('ª¹ÒÀÒ',448,448),('ª¹Ô´Ò',449,449),('ª¹¹Ñ¹·ì',440,440),('ª¹¹ÔÈÒ',441,441),('ª×蹨Եµì',535,535),('ªØÁÊÒÂ',542,542),('ªØÁÈÔÃÔ',541,541),('ªØÁ¾Ã',539,539),('ªØÁ¾Å',540,540),('ªØÅÕ¾Ã',543,543),('ªØ´Ò¾Ã',536,536),('ªØµÔÁÒ',538,538),('ªØµÔ¡Ò­¨¹ì',537,537),('«è͹¡ÅÔè¹',577,577),('«Õ àÍç¹ äÍ',580,580),('«Õ ´Õ àÍçÁ àÍç¹àµÍÃìä¾ÃÊì',581,581),('«Õ.ÇÕ.àÍÊ.ÍÔ¹´ÑʵÃÕé',584,584),('«Õ.´Õ.ÍصÊÒË¡ÃÃÁ',582,582),('«Õ.·Õ.à·àŤÍÁ',583,583),('«ÕàÍç¹äÍàÍ繨Ôà¹ÕÂÃÔ觫Ѿ¾ÅÒÂ',586,586),('«Òâµéâ¤à¡ÕÂÇ ¡Ãا෾',578,578),('«Ô¡»éÒ (»ÃÐà·Èä·Â)',579,579),('«Õ´Õ ÍصÊÒË¡ÃÃÁ',585,585),('«Ù',587,587),('­Ò³ÀѤ',590,590),('­Õ¹ÀÒ',591,591),('¯Ç§¡ÁÅ',592,592),('°ÔµÔÃѪµì',605,605),('°ÔµÔÃѵ¹ì',606,606),('°ÔµÔÁÒ',604,604),('°ÔµÔà¸ÕÂÃ',600,600),('°ÔµÔ¡Ò¹µì',598,598),('°ÔµÔ³Ñ°',599,599),('°ÔµÔ¹Ñ¹·ì',601,601),('°ÔµÔ¾Ã',603,603),('°ÔµÔ¾§Èì',602,602),('°Ôµ¡Ò¹µì',597,597),('°Ò¹Ñ¹·ì',593,593),('°Ò¹ÔÊÃ',595,595),('°Ò¹ÔµÂì',594,594),('°Ò»¹ÇÔ·Âì',596,596),('±ÔÁÀì¹Øª',607,607),('³ÀÑ·Ã',609,609),('³Àѷáóì',610,610),('³Ã§ÃÑ¡Éì',617,617),('³Ã§ÈÑ¡´Ôì',619,619),('³Ã§Ä·¸Ôì',618,618),('³Ã§¤ì',611,611),('³Ã§¤ìÇÔ·Âì',615,615),('³Ã§¤ìÈÑ¡´Ôì',616,616),('³Ã§¤ìÄ·¸Ôì',614,614),('³Ã§¤ìªÑÂ',612,612),('³Ã§¤ì¾ÑªÃì',613,613),('³Ë·ÑÂ',620,620),('³ÑªªÒ',621,621),('³Ñ­­Ò',622,622),('³Ñ®°ÁÑÂ',623,623),('³Ñ®°ÇÃó',624,624),('³Ñ¯¾Å',625,625),('³Ñ°',626,626),('³Ñ°ÁÒ',645,645),('³Ñ°ÂÒ',646,646),('³Ñ°ÀÙÁÔ',643,643),('³Ñ°Á¹',644,644),('³Ñ°ÇÃÕÂì',647,647),('³Ñ°ÇѪÃì',648,648),('³Ñ°ÇѲ¹ì',649,649),('³Ñ°ÇѵÔ',650,650),('³Ñ°ÇزÔ',651,651),('³Ñ°ÊÃÑ­',653,653),('³Ñ°ÈÑ¡Âì',652,652),('³Ñ°Ë·ÑÂ',654,654),('³Ñ°Ô¡Ò',655,655),('³Ñ°¡Ã³ÔÈÒ',627,627),('³Ñ°¡Ò¹µì',629,629),('³Ñ°¡ÄµÒ',628,628),('³Ñ°¢¨Ã',630,630),('³Ñ°ªÒ',632,632),('³Ñ°ª¹Ñ­',631,631),('³Ñ°°Ò',633,633),('³Ñ°µÂÒ',634,634),('³Ñ°¹Ñ¹·ì',636,636),('³Ñ°¹¹·ì',635,635),('³Ñ°»¡Ã³ì',637,637),('³Ñ°¾Ã',641,641),('³Ñ°¾Å',642,642),('³Ñ°¾§Èì',638,638),('³Ñ°¾§Éì',639,639),('³Ñ°¾¨¹ì',640,640),('³Õç¤ì',657,657),('³ÔªÒ¡Ã',656,656),('³¸ÔµÒ',608,608),('³Øªª¹Ò',658,658),('´ÃÃ쪹Õ',661,661),('´ÃسÕ',662,662),('´Ç§Ãѵ¹ì',674,674),('´Ç§ã¨',667,667),('´Ç§à´×͹',669,669),('´Ç§Á¹·Ãì',673,673),('´Ç§Ë·ÑÂ',675,675),('´Ç§¡ÁÅ',665,665),('´Ç§¨Ñ¹·Ãì',666,666),('´Ç§´ÒÇ',668,668),('´Ç§¹ÀÒ',670,670),('´Ç§ºÅ',671,671),('´Ç§¾Ã',672,672),('´Í¡äÁé',676,676),('´Õ.ºÕ.ä´Á͹´ì (»ÃÐà·Èä·Â)',695,695),('´Ôàá',692,692),('´ÒÃÒÃѵ¹ì',680,680),('´ÒÃÒÇÃó',681,681),('´ÒÃÔ¡Ò',682,682),('´ÒÃÔ³Õ',683,683),('´ÒÃÔ¹',684,684),('´ÒÃÒ¹ÕÅì',679,679),('´Óç',689,689),('´Óç¤ì',690,690),('´ÒóÕ',677,677),('´ÒùÕÂì',678,678),('´Óà¹Ô¹',688,688),('´ÒÃسÕ',685,685),('´ÒÇÃÕ',687,687),('´ÒÇ»ÃСÒÂ',686,686),('´ÓËÃÔ',691,691),('´ÔÈ¡ØÅ',693,693),('´Ôʷѵ',694,694),('´ÅÄ´Õ',663,663),('´ÅÄ·ÑÂ',664,664),('´¹ÑÂ',659,659),('´¹Ø¾Å',660,660),('´ØÊÔµ',701,701),('´ØÊÔµà¤ÁÕÀѳ±ì',702,702),('´ØÉ®Õ',698,698),('´ØɳÕ',699,699),('´ØÉ´Õ',700,700),('´ØÅÂì¾Ñ²¹ì',697,697),('´ØžÅ',696,696),('µÐÇѹ',712,712),('µÐÅèÍÁÊÔ¹¾ÅÒʵԡ',711,711),('µèͨѡÃ',710,710),('µÑ觨Ñè§ËÅÍ´ä¿',713,713),('µÒà¿ç´',714,714),('µØê',715,715),('µØéÁ',717,717),('µØëÂ',718,718),('µØ꡵Ò',716,716),('µØÅÒÅѡɳì',719,719),('¶ÇÑÅ',729,729),('¶ÇÑÅÂì',730,730),('¶ÇÔÅ',731,731),('¶ÒÇÃ',733,733),('¶Ò³Ø¾§Èì',732,732),('¶¹ÍÁÈÑ¡´Ôì',727,727),('¶¹Ôµ¾Å',728,728),('·ÃÃȹÕÂì',745,745),('·ÃѾÂì¶ÒÇäéÒÇÑÊ´Ø',746,746),('·Ã§',737,737),('·Ã§ÇزÔ',741,741),('·Ã§ÈÃÕ',742,742),('·Ã§ÈÑ¡´Ôì',743,743),('·Ã§ÈÔÃÔ',744,744),('·Ã§ªÑ»Ñè¹·Í',738,738),('·Ã§¸ÃÃÁ',739,739),('·Ã§¾Å',740,740),('·ÇÕ',748,748),('·ÇÕÇѲ¹ì',752,752),('·ÇÕÈÃÕ',753,753),('·ÇÕÈÑ¡´Ôì',754,754),('·ÇÔª',747,747),('·ÇÕªÑÂ',749,749),('·ÇÕ»',750,750),('·ÇÕ¾Ã',751,751),('·èÒ·ÃÒÂá¨é§ÇѲ¹Ò',773,773),('·È¾Ã',755,755),('·È¾Å',756,756),('·Í§ãº',759,759),('·Í§ÊØ¢',763,763),('·Í§ÍÔ¹·Ãì',764,764),('·Í§¢ÒÇ',757,757),('·Í§¤Ó',758,758),('·Í§»Ò¹',760,760),('·Í§¾Ñ¹¸ì',761,761),('·Í§¾Ñ¹¸Øì',762,762),('·ÑÈÇÃó',772,772),('·ÑȹÇÃó',768,768),('·ÑȹÕÂì',770,770),('·ÑȹÕÂÒ',771,771),('·ÑȹվÃ',769,769),('·Ñ¡ÉÁ³¹ì',765,765),('·Ñ´´ÒÇ',766,766),('·Ñº·ÔÁ',767,767),('·Õ «Õ ¾Õ ÍÔ¹´ÑÊ·ÃÕé',791,791),('·Õ.àÍÊ.äÇÃì¤Ñ· á͹´ì áÁªªÕ¹¾ÒÃì·',794,794),('·Õ.äÍ.·Õ.ÍÔ¹àµÍÃì๪Ñè¹á¹Å',795,795),('·Õ.«Õ.«Õ.¾Ãç;à¾ÍÃìµÕé',792,792),('·Õ.«Õ.¾Õ.ÍÔ¹´ÑÊ·ÃÕé',793,793),('·ÕâÍàÍ â´¿à¤Á ÍÔ¹´ÃÑʵÕé',796,796),('·ÔÇÒ',789,789),('·ÔȾÅ',790,790),('·Ô¦ÑÁ¾Ã',774,774),('·Ô¹á¤¹ ÍÔ¹´ÑÊ·ÃÕ',775,775),('·Ô¾ÂìÇÃó',778,778),('·Ô¾ÂìÇÃس',779,779),('·Ô¾ÂìÇÑÅÂì',780,780),('·Ô¾ÂìÇÒÃÕ',781,781),('·Ô¾ÂìÇÔÁÅ',782,782),('·Ô¾ÂìÇ´Õ',777,777),('·Ô¾Âì¾Ò¾Ã',776,776),('·Ô¾ÇÃó',783,783),('·Ô¾ÇÑÅÂì',784,784),('·Ô¾ÇÔÁÅ',785,785),('·Ô¾ÊØ´Ò',786,786),('·Ô¾ÒÇÃó',788,788),('·Ô¾Ò¡Ã',787,787),('·ÙÃ',798,798),('·ÙÁÔ¹Ô·Êì ºÔ«Ôà¹Ê',797,797),('·¹§ÈÑ¡´Ôì',735,735),('·¹Ø',736,736),('¸ÃÃÁÈÒʵÃì',861,861),('¸ÃÃÁ¹Ù­',860,860),('¸à¹È',857,857),('¸à¹ÈÃì',858,858),('¸Á¹Ñ¹·ì',859,859),('¸ÇÑÅÃѵ¹ì',865,865),('¸ÇѪ',863,863),('¸ÇѪªÑÂ',864,864),('¸ÑªÇѲ¹ì',869,869),('¸ÑªÇ´Õ',868,868),('¸Ñª¡Ã',866,866),('¸Ñª¾Å',867,867),('¸Ñ­Ã´Ò',877,877),('¸Ñ­ª¹¡',870,870),('¸Ñ­­¸Ã',871,871),('¸Ñ­­¾Ñ²¹ì',872,872),('¸Ñ­³ÔªÒ',873,873),('¸Ñ­¹Ñ¹·ì',874,874),('¸Ñ­¾Ã',875,875),('¸Ñ­¾ÔÊÔ·¸Ôì',876,876),('¸ÕÃÀÑ·Ãì',896,896),('¸ÕÃÀÒ¾',897,897),('¸ÕÃÇѲ¹ì',898,898),('¸ÕÃÐ',901,901),('¸ÕÃÐÇѲ¹ì',904,904),('¸ÕÃЪÑÂ',902,902),('¸ÕÃоÅ',903,903),('¸ÕÃÈÑ¡´Ôì',899,899),('¸ÕÃÈÒ¹µÔ¾Ñ¹¸ì',900,900),('¸ÒÃÒ',883,883),('¸ÒÃÔ¹Õ',884,884),('¸ÓçÃѵ¹ì',886,886),('¸Óç¤ì',885,885),('¸ÕêÑÂ',890,890),('¸Ò÷ԾÂì',882,882),('¸Õùت',891,891),('¸ÕþѲ¹ì',895,895),('¸ÕþÅ',894,894),('¸Õþ§Èì',892,892),('¸Õþ§Éì',893,893),('¸Ò¡Ã',878,878),('¸Ò´Ò',879,879),('¸Ô´ÒÃѵ¹ì',887,887),('¸ÔµÔ¹Ñ¹·ì',888,888),('¸Ò¹Õ',881,881),('¸Ô¹Õ¡Ò­¨¹ì',889,889),('¸Ò¹Ô¹·Ãì',880,880),('¸Äµ',862,862),('¸§äªÂ',826,826),('¸§ªÑÂ',825,825),('¸³Ñ°',827,827),('¸¹âè¹ì',834,834),('¸¹ÃѪ',832,832),('¸¹Ãѵ¹ì',833,833),('¸¹ÇѲ¹ì',836,836),('¸¹Çѹ',837,837),('¸¹ÇÔµµ',838,838),('¸¹ÇÔ·Âì',839,839),('¸¹Ç´Õ',835,835),('¸¹ÐÃѪµì',841,841),('¸¹ÊÔ·¸Ôì',840,840),('¸¹ÑÊ',846,846),('¸¹Ñª¸Ô´Ò',842,842),('¸¹Ñ­­Ò',843,843),('¸¹Ñ¹µì',844,844),('¸¹Ñ¹·ì',845,845),('¸¹Ò',847,847),('¸¹ÒÀóì',850,850),('¸¹ÒÃÑ¡Éì',852,852),('¸¹ÒÀÒ',851,851),('¸¹ÒÇѪÃì',853,853),('¸¹ÔÉ°Ò',855,855),('¸¹Ò¤ÒÃÂÙâÍºÕ Ãѵ¹ÊÔ¹ ÊÒ¢ÒËÑÇËÁÒ¡',849,849),('¸¹Ò¤ÒáÃاÈÃÕÍÂظÂÒ º',848,848),('¸¹Ô´Ò',854,854),('¸¹Ù',856,856),('¸¹¡Ã',828,828),('¸¹¡Äµ',829,829),('¸¹¾Ã',830,830),('¸¹¾Å',831,831),('¹ à¿ÃÔÁàÁ¹¹Ôª ÍâÃáÁµÔê¡Êì ¾Õ·ÕÍÕ ÅÔÁÔàµç',906,906),('¹ ¾´Å',905,905),('¹àÃÈ',946,946),('¹ÃÀÑ·Ãì',939,939),('¹âõÁì',947,947),('¹ÀÇÃó',929,929),('¹ÀÑÊÊÃ',930,930),('¹ÀÑÊÊØÇÃó',931,931),('¹ÀÒ',932,932),('¹ÃÒ',940,940),('¹ÃÕ',945,945),('¹ÀÒÂØ·¸ì',934,934),('¹ÀÒÇÃó',935,935),('¹ÃÔÈ',943,943),('¹ÃÔÉ°',944,944),('¹ÀÔ¹·Ã',936,936),('¹ÃÔ¹·Ãì',941,941),('¹ÃÔ¹·Ãìà´ª',942,942),('¹ÀÒ¾Ã',933,933),('¹ÃªÑÂ',937,937),('¹À´Å',928,928),('¹Ã¾Å',938,938),('¹ÇÃѵ¹ì',956,956),('¹ÇÅÅÐÍÍ',960,960),('¹ÇŨѹ·Ãì',957,957),('¹ÇÅ©ÇÕ',958,958),('¹ÇžÃ',959,959),('¹Ç¡Ã³ì',954,954),('¹Ç¾Å',955,955),('¹éÓÁѹ¤ÒÅà·ê¡«ì',992,992),('¹éÓྪÃ',991,991),('¹éÓÍéÍÂ',994,994),('¹éÓ·Ô¾Âì',988,988),('¹éÓ½¹',989,989),('¹Ñ¹Ò',980,980),('¹Ñ­ªÅÒ',961,961),('¹Ñ¯¾Ã',962,962),('¹Ñ±¾Ã',963,963),('¹Ñ·ª¹¡',964,964),('¹Ñ·¸Á¹',965,965),('¹Ñ¹ªÑÂ',966,966),('¹Ñ¹·Ãѵ¹ì',973,973),('¹Ñ¹·ÁÒÊ',972,972),('¹Ñ¹·ÇÃó',975,975),('¹Ñ¹·Ç§Éì',974,974),('¹Ñ¹·ÈÑ¡´Ôì',976,976),('¹Ñ¹·Ò',977,977),('¹Ñ¹·ÔÂÒ',979,979),('¹Ñ¹·Ô¡Ò¹µì',978,978),('¹Ñ¹·ªÑÂ',967,967),('¹Ñ¹·¹ì',968,968),('¹Ñ¹·¹Ò',969,969),('¹Ñ¹·¾Ã',970,970),('¹Ñ¹·¾Å',971,971),('¹ÒÁ',983,983),('¹ÔÂÁ',1016,1016),('¹ÔÃÁÅ',1017,1017),('¹ÔÃѹ´Ã',1018,1018),('¹ÒÃÕ',985,985),('¹ÔÀÒ',1015,1015),('¹ÒÃÕÃѵ¹ì',986,986),('¹ÔÃÒÇÃóì',1019,1019),('¹ÒÃÔ¹·Ãì',984,984),('¹ÔâźÅ',1024,1024),('¹Ôà«Ð',998,998),('¹ÓÃØè§ä·Â ¡ÒÃìàÁ¹·ì',993,993),('¹ÔÃب¹ì',1020,1020),('¹ÔÃصµì',1021,1021),('¹ÔÇૹ¨ÙÃÕè¾ÃÔé¹µÔé§á͹´ì ᾤࡨ¨Ôé§',1025,1025),('¹ÔÇѲ¹ì',1026,1026),('¹ÔÇѵÃì',1027,1027),('¹ÔÇѵÔ',1028,1028),('¹ÔÇÒµ',1029,1029),('¹ÒÇÔ¹Õ',987,987),('¹ÔÈÃÒ',1030,1030),('¹ÔÊÒ',1033,1033),('¹ÔÈÒªÅ',1031,1031),('¹ÔÈÒ¾Ã',1032,1032),('¹ÔÅÀÒ',1022,1022),('¹ÔÅغÅ',1023,1023),('¹Ô¡Éì',995,995),('¹Ô¤Á',996,996),('¹ÔªÃªÕ¾',997,997),('¹Ò¯Êǧ',981,981),('¹Ô´',999,999),('¹Ô´Ò',1000,1000),('¹ÔµÂì',1001,1001),('¹ÒµÂÒ',982,982),('¹ÔµÂÒ',1002,1002),('¹ÔµÔ',1003,1003),('¹ÕµÔ',1034,1034),('¹ÔµÔÁÒ',1005,1005),('¹ÔµÔ¾§Éì',1004,1004),('¹Ô·ÃÒ',1006,1006),('¹Ô·Ñȹì',1007,1007),('¹Ô·ÑȹÕÂì',1008,1008),('¹Ô¸ÔÇ´Õ',1009,1009),('¹Ô»»Í¹à¾¹µì(»ÃÐà·Èä·Â)',1010,1010),('¹Ô¾Ñ·¸Ò',1013,1013),('¹Ô¾Ñ¹',1014,1014),('¹Ó¾Å',990,990),('¹Ô¾Å',1012,1012),('¹Ô¾¹¸ì',1011,1011),('¹Å¾Ãó',953,953),('¹ÄÁÒ³',952,952),('¹ÄÁÅ',951,951),('¹Ä³Õ',948,948),('¹Ä´Õ',949,949),('¹Ä·¸Ôì',950,950),('¹¤Ã',907,907),('¹¤Ã»°Á Î͹´éÒ¤ÒÃìÊì (1994)',908,908),('¹§Åѡɳì',911,911),('¹§ª¹¡',909,909),('¹§¹Øª',910,910),('¹·',912,912),('¹·Õ',914,914),('¹·Ô¹',913,913),('¹¹·ÈÑ¡´Ôì',915,915),('¹¾Ãѵ¹ì',924,924),('¹¾ÁÒÈ',923,923),('¹¾à¡éÒ',916,916),('¹¾ÇÃó',926,926),('¹¾Ò¾Ã',927,927),('¹¾ÄÔ·¸Ôì',925,925),('¹¾´Å',917,917),('¹¾´ÅÂì',918,918),('¹¾·Ñµ',919,919),('¹¾¾Ã',921,921),('¹¾¾Å',922,922),('¹¾¾§¤ì',920,920),('¹ØÈÃÒ',1039,1039),('¹ØÊÃÒ',1041,1041),('¹ØʺÒ',1040,1040),('¹ØªÂÒ',1037,1037),('¹ØªÃÕ',1038,1038),('¹Øª¨ÃÔ¹·Ãì',1035,1035),('¹Øª¹Ò¶',1036,1036),('ºÃç',1050,1050),('ºÃÃà¨Ô´',1049,1049),('ºÃÃÊÒÃ',1051,1051),('ºÃè§',1047,1047),('ºÃèº',1048,1048),('ºÃÔÇÃõ',1052,1052),('ºÇêÑÂ',1053,1053),('ºÑ§ÍÃ',1054,1054),('ºÑ­ªÒ',1055,1055),('ºÑ­­ÑµÔ',1056,1056),('ºÑ³±Ôµ',1057,1057),('ºÑ³±ÔµÂì',1058,1058),('ºÑµÃ¡ÃاÈÃÕÍÂظÂÒ',1060,1060),('ºÑµÃ¡Ãاä·Â',1059,1059),('ºÑ¹Å×ÍÈÑ¡´Ôì',1061,1061),('ºÕ á͹´ì «Õ ¾ÙÅÒÊ¡Õé',1067,1067),('ºÕ ÇÒ ¤ÍÃìâ¾àêÑè¹ ¨Ó¡Ñ´',1066,1066),('ºÕ.àÍç¹.ºÃÒà´ÍÃì',1068,1068),('ºÕ.àÍÊ.äÍ.àËÅç¡¡èÍÊÃéÒ§',1069,1069),('ºÓÃاä·Â',1064,1064),('ºÔǵÕéᾤ',1065,1065),('ºÒ§¡Í¡ªÕ·àÁç··ÑÅ',1062,1062),('ºÒ¹ªéÍÂ',1063,1063),('ºÙê·Êì (»ÃÐà·Èä·Â)',1111,1111),('ºÙê·ÊìáÁ¹Ùῤà¨ÍÃìÃÔè§ (»ÃÐà·Èä·Â)',1112,1112),('º§¡ª',1044,1044),('º§¡µÃѵ¹ì',1045,1045),('º«ì ÍÔ¹â¿Ãì à«ÍÃìÇÔÊ',1046,1046),('ºØÃÑ­ªÅÕ',1101,1101),('ºØÃÔ¹·Ãì',1102,1102),('ºØÈÃÒ',1103,1103),('ºØÉÂÒ',1108,1108),('ºØÉÃÒÀóì',1109,1109),('ºØÈÃÔ¹·Ãì',1105,1105),('ºØÈÃÒ¾Ã',1104,1104),('ºØËÅÑè¹',1110,1110),('ºØÉ¡Ã',1106,1106),('ºØɺÒ',1107,1107),('ºØ­àÂÕèÂÁ',1085,1085),('ºØ­ÃèÇÁ',1086,1086),('ºØ­áʧ',1098,1098),('ºØ­ÃÑ¡',1087,1087),('ºØ­Âѧ',1084,1084),('ºØ­ÁÕ',1083,1083),('ºØ­àÅÔÈ',1090,1090),('ºØ­à¡ÕÂõÔ',1070,1070),('ºØ­àªÔ´',1075,1075),('ºØ­ÈÃÕ',1091,1091),('ºØ­Êè§',1093,1093),('ºØ­ÈÔÃÔ ´ÕÇÔÅÍ»àÁ¹·ì',1092,1092),('ºØ­ÊÔ¹',1095,1095),('ºØ­Ê¹Í§',1094,1094),('ºØ­Ê׺',1096,1096),('ºØ­ÊØ¢',1097,1097),('ºØ­ÅѺ',1088,1088),('ºØ­Å×Í',1089,1089),('ºØ­¤§',1071,1071),('ºØ­ªèÇÂ',1072,1072),('ºØ­ªÑÂ',1073,1073),('ºØ­ªØº',1074,1074),('ºØ­«é͹',1076,1076),('ºØ­·ÃѾÂì',1077,1077),('ºØ­·ÇÕ',1078,1078),('ºØ­·Í§',1079,1079),('ºØ­¸ÃÃÁ',1080,1080),('ºØ­»ÃÐÊÔ·¸Ôì',1081,1081),('ºØ­¾§Éì',1082,1082),('ºØ³±Ôµ',1099,1099),('ºØ»¼Ò',1100,1100),('»ÃÐ⪹ì',1179,1179),('»ÃÐàÇÈ',1186,1186),('»ÃÐÁÇÅ',1171,1171),('»ÃÐàÊÃÔ°',1193,1193),('»ÃÐÁѾÃ',1172,1172),('»ÃÐÀÑÊ',1163,1163),('»ÃÐÀÑÊÃì',1164,1164),('»ÃÐÀÑÊÃÒ¾Ã',1165,1165),('»ÃÐÀÑÊÊÃ',1166,1166),('»ÃÐÀÒÀóì',1169,1169),('»ÃÐÀÒÊ',1170,1170),('»ÃÐÂÔ¹',1175,1175),('»ÃÐÀÒ¾Ã',1167,1167),('»ÃÐÀÒ¾Ãó',1168,1168),('»ÃÐÂÙÃ',1177,1177),('»ÃÐÂÙÃÈÃÕ',1178,1178),('»ÃÐÁÙÅ',1173,1173),('»ÃЧ¤ì',1174,1174),('»ÃÐà·×ͧ',1156,1156),('»ÃÐÂØ·¸',1176,1176),('»ÃÐÇѵÃ',1180,1180),('»ÃÐÇѵÔ',1181,1181),('»ÃÐÇÕ³Ò',1185,1185),('»ÃÐÇÔµÃ',1182,1182),('»ÃÐÇÔ·',1183,1183),('»ÃÐÇÔ·Âì',1184,1184),('»ÃÐÊÒÃ',1190,1190),('»ÃÐÊÒ·',1188,1188),('»ÃÐÊÔ·¸Ôì',1191,1191),('»ÃÐÊÒ¹',1189,1189),('»ÃÐʧ¤ì',1187,1187),('»ÃÐÊ׺',1192,1192),('»ÃÐä¾',1162,1162),('»ÃСͺ',1138,1138),('»ÃСÒÈ',1139,1139),('»ÃСÒÈÔµ',1140,1140),('»ÃСԨ',1141,1141),('»ÃСԵ',1142,1142),('»ÃФͧ',1143,1143),('»ÃШǺ',1145,1145),('»ÃШѡÉì',1146,1146),('»ÃШԵÃ',1147,1147),('»ÃШ§¨Ôµ',1144,1144),('»ÃЪÒ',1148,1148),('»ÃЪԵ',1149,1149),('»ÃЪØÁ¾Ã',1150,1150),('»Ãгµ',1151,1151),('»ÃдÔÉ°ì',1152,1152),('»ÃзѺã¨',1153,1153),('»Ãзջ',1154,1154),('»ÃзØÁ·Ô¾Âì',1155,1155),('»ÃоѲ¹ì',1160,1160),('»Ãоѹ¸ì',1161,1161),('»Ãоķ¸Ôì',1159,1159),('»Ãо¨¹ì',1157,1157),('»Ãо¹¸ì',1158,1158),('»ÀÑÊÊÃ',1132,1132),('»ÃѪ­Ò',1194,1194),('»ÃÒâÁ·Âì',1200,1200),('»ÃÕÂÒÀóì',1213,1213),('»ÃÔÂÒÇÃó',1208,1208),('»ÃÒö¹Ò',1201,1201),('»ÀÒÇÃÔ¹·ì',1135,1135),('»ÀÒÇÕ',1136,1136),('»ÀÒÇ´Õ',1134,1134),('»ÃÔȹÒ',1209,1209),('»ÃÔȹÕ',1210,1210),('»ÃÒ¡ÒÃ',1195,1195),('»ÃÒ§³Õ',1196,1196),('»ÃÕªÒ',1211,1211),('»ÃÒª­ì',1197,1197),('»ÃÕ­Ò',1212,1212),('»ÃÔ­­ì',1202,1202),('»ÃÔ­­Ò',1203,1203),('»ÃÔ­´Ò',1204,1204),('»ÃÒ³Õ',1198,1198),('»ÃÒ³ÕÂì',1199,1199),('»ÃÔ³´Ò',1205,1205),('»ÀÒ³Ø',1133,1133),('»ÃÔ·ÑÈ',1206,1206),('»ÃÔ¹´Ò',1207,1207),('»ÂصÒ',1137,1137),('»ÇÕ³ÃѪ',1214,1214),('»ÇÕ³Ò',1215,1215),('»Êѹµì',1216,1216),('»Êѹ¹ì',1217,1217),('»Í§À¾',1218,1218),('»Ñ­¨ÃÑÈÁÔì',1219,1219),('»Ñ­­Ò',1220,1220),('»Ñ­­Ò¾Ã',1221,1221),('»Ñ­­Ò¾Å',1222,1222),('»Ñ³ÃÊÕ',1223,1223),('»Ñ·Á',1224,1224),('»Ñ·ÁÒ',1225,1225),('»Ñ·ÁÒÇ´Õ',1226,1226),('»ÔÂÃѵ¹ì',1246,1246),('»ÔÂÁÒÀóì',1245,1245),('»ÔÂÇÃó',1247,1247),('»ÔÂÇѲ¹ì',1248,1248),('»ÔÂÐ',1250,1250),('»ÔÂÐÁÒÈ',1259,1259),('»ÔÂÐÈÑ¡´Ôì',1260,1260),('»ÔÂЪÑÂ',1251,1251),('»ÔÂйѹ·ì',1253,1253),('»ÔÂй¹·ì',1252,1252),('»ÔÂйت',1254,1254),('»ÔÂоÃ',1256,1256),('»ÔÂоѹ¸ì',1257,1257),('»ÔÂоѹ¸Øì',1258,1258),('»ÔÂо§Èì',1255,1255),('»ÔÂÈÑ¡´Ôì',1249,1249),('»ÒÃÔªÒµ',1230,1230),('»ÒÃÔªÒµÔ',1231,1231),('»ÒÃÕ³Ò',1233,1233),('»ÔÂÒ¾Ã',1261,1261),('»ÒÃԾѹ¸ì',1232,1232),('»Ô¡ҭ¨¹ì',1239,1239),('»Ô¹ѹ·ì',1240,1240),('»Ô¹ү',1241,1241),('»Ô¾Ã',1244,1244),('»Ô¾§Èì',1242,1242),('»Ô¾§Éì',1243,1243),('»Ôè¹ÁÒ⹪',1238,1238),('»Ôè¹Á³Õ',1237,1237),('»Ò˹ѹ',1234,1234),('»ÔÅѹ­Ò',1262,1262),('»Ò³ÔÊÃÒ',1227,1227),('»ÔµÔ',1235,1235),('»ÔµÔÇѪÃì',1236,1236),('»Ò¹',1228,1228),('»Ò¹à¾ªÃ',1229,1229),('»¡Ã³ì',1119,1119),('»®ÔÁÒ',1120,1120),('»¯ÔÁÒ',1123,1123),('»¯Ô­­Ò',1121,1121),('»¯Ô¾Å',1122,1122),('»°ÁÇѲ¹ì',1124,1124),('»³Ô´Ò',1126,1126),('»³ÔµÒ',1127,1127),('»³ªÑÂ',1125,1125),('»·ØÁ',1128,1128),('»·ØÁÒ',1130,1130),('»·ØÁ¾Ã',1129,1129),('»¹Ñ´´Ò',1131,1131),('»Ø³³ÂÒ',1263,1263),('¼à´ÔÁ',1277,1277),('¼èͧÈÃÕ',1279,1279),('¼èͧ¾Ãó',1278,1278),('¼è͹»ÃÐÀÒ',1280,1280),('¼èÒ¡ÒäÅѧ¡Í§¡ÅÒ§Êӹѡ»ÅÑ´¡Ãا෾ÁËÒ¹¤Ã',1285,1285),('¼éÒ¢¹Ë¹ÙªÔ¹àΧ',1281,1281),('¼éÒ¢¹Ë¹Ù«Ô¹àΧ',1282,1282),('¼éҢع˹٫ԹàΧ',1283,1283),('¼èÒ¹¿éÒ àÍ繨Ôà¹ÕÂÃÔè§',1284,1284),('¼ÒÊØ¢',1286,1286),('¼ÙéãË­èàÅç¡',1289,1289),('¼Ùé༴ç¨',1288,1288),('¼¡Ò¡Ãͧ',1272,1272),('¼¡Ò¾Ãó',1273,1273),('¼§',1274,1274),('¼¨§¨Ôµµì',1275,1275),('¼´Ø§ÈÑ¡´Ôì',1276,1276),('¼ØÊ´Õ',1287,1287),('½èÒ¡ÒäÅѧ¡Í§¡ÅÒ§ Êӹѡ»ÅÑ´¡Ãا෾ÁËÒ¹¤Ã',1293,1293),('¾Ã',1319,1319),('¾ÃÁ§¤Åà¿ÍÃì¹Ôà¨ÍÃì',1338,1338),('¾ÃóÃÒ³ì',1344,1344),('¾ÃóÊóì',1345,1345),('¾ÃóÕ',1347,1347),('¾ÃóԡÒ',1346,1346),('¾Ãó·ÔÀÒ',1339,1339),('¾Ãó¹ÔÀÒ',1340,1340),('¾Ãó»ÃÐä¾Ç´Õ',1341,1341),('¾Ãó¾ÃÃÉ',1342,1342),('¾Ãó¾ÔÁÅ',1343,1343),('¾Ãà·¾',1326,1326),('¾ÃøԴÒ',1348,1348),('¾Ãà¾ç­',1337,1337),('¾ÃÇÔÁÅ',1349,1349),('¾ÃÇÔäÅ',1350,1350),('¾ÃÐÃÒÁ 3 Î͹´éÒ¤ÒÃìÊì',1360,1360),('¾ÃÐÃÒÁ 3 ¤ÒÃìà«ç¹àµÍÃì',1359,1359),('¾ÃлÃÐá´§ Î͹´éÒ¤ÒÃìÊì',1357,1357),('¾ÃлÃÐá´§ Î͹´éÒ¤ÒÃìÊì ¨Ó¡Ñ´',1358,1358),('¾ÃÊÃǧ',1353,1353),('¾ÃËÁ¾Ñ²¹ì',1355,1355),('¾ÃÊÇÃäì',1354,1354),('¾ÃéÍÁªÑÂ',1356,1356),('¾ÃÈÑ¡´Ôì',1351,1351),('¾ÃÈÔÃÔ',1352,1352),('¾ÃÕàÁÕÂÃìà¤ÁÔ¤ÑÅ á͹´ì¾ÅÒʵԡ',1362,1362),('¾ÃÕàÁÕÂÃìÍÔ¹àµÍÃìÅÔ««Ôè§',1363,1363),('¾ÃÔéÁà¾ÃÒ',1361,1361),('¾Ã¡ÇÕ',1320,1320),('¾Ã¨Ôµµì',1321,1321),('¾ÃªÑÂ',1322,1322),('¾Ã·ÔÀÒ',1325,1325),('¾Ã·Ô¾Âì',1323,1323),('¾Ã·Ô¾Ò',1324,1324),('¾Ã¹ÀÒ',1328,1328),('¾Ã¹ÔµÔ¿ÔÅìÁá͹´ìÇÕ´ÕâÍ',1329,1329),('¾Â¹µì',1317,1317),('¾Ã¹·Õ',1327,1327),('¾Ã¾Ãó',1332,1332),('¾Ã¾ÔÁÅ',1335,1335),('¾Ã¾ÔäÅ',1336,1336),('¾Ã¾Å',1333,1333),('¾Ã¾ÅÒ§ÒÁ',1334,1334),('¾Ã¾§Éì',1330,1330),('¾Ã¾¹Ò',1331,1331),('¾Âا',1318,1318),('¾Ç§Ãѵ¹ì',1372,1372),('¾Ç§à¾ç­',1371,1371),('¾Ç§·Í§',1370,1370),('¾ÈÔ¹',1373,1373),('¾ÊØࡵÔì',1374,1374),('¾ÑʾÃ',1391,1391),('¾ÑÅÅÀ',1390,1390),('¾ÑªÃ',1376,1376),('¾ÑªÃÇäÅ',1377,1377),('¾ÑªÃÒ',1378,1378),('¾ÑªÃÕ',1382,1382),('¾ÑªÃÒÀóì',1379,1379),('¾ÑªÃÕÀóì',1384,1384),('¾ÑªÃÒÀÒ',1380,1380),('¾ÑªÃÔ¹·Ãì',1381,1381),('¾ÑªÃÕ¾Ã',1383,1383),('¾Ñª¹Õ',1375,1375),('¾Ñ²·ÇÕ',1385,1385),('¾Ñ²¹Ð',1387,1387),('¾Ñ²¹ªÑÂ',1386,1386),('¾Ñ²¾§Éì',1388,1388),('¾Ñ·¸ì¸ÕÃÒ',1389,1389),('¾Ô ÈÁÑÂ',1397,1397),('¾Õ.àÍÊ.¨Õ ÅÔÊ«Ôè§',1439,1439),('¾Õ.àÍÊ.¾ÅÒʵԡºÃÒà´ÍÃì á͹´ì«Ñ¹',1440,1440),('¾Õ.àÍÊ.¾ÅÒʵԡºÃÒà´ÍÃìá͹´ì«Ñ¹',1441,1441),('¾Õ.«Õ.àºÊ·ì ¤ÃÕàÍ·',1438,1438),('¾ÔÃÁÂì',1430,1430),('¾ÔÁÀÒ',1428,1428),('¾ÕÃÇزÔ',1446,1446),('¾ÕÃÐ',1448,1448),('¾ÕÃÐÈÑ¡´Ôì',1451,1451),('¾ÕÃоÅ',1450,1450),('¾ÕÃо§Èì',1449,1449),('¾ÕÃÈÔÅ»ì',1447,1447),('¾ÒÃҡ͹ÍÔ¹â¿à·¤',1396,1396),('¾ÔÁÅ',1429,1429),('¾ÔàªÉ°',1409,1408),('¾ÔàªÉ°ì',1408,1409),('¾Ôય',1406,1406),('¾Ôય°ì',1407,1407),('¾Òâµà¤ÁÕÍصÊÒË¡ÃÃÁ',1394,1394),('¾Õ÷ѵ',1444,1444),('¾Ôà·¾',1415,1415),('¾ÔÀ¾',1420,1420),('¾ÔÁ¾ìÀóì',1425,1425),('¾ÔÁ¾ìÀѤ',1426,1426),('¾ÔÁ¾ìã¨',1421,1421),('¾ÔÁ¾ìÇÔÁÅ',1427,1427),('¾ÔÁ¾ìª¹¡',1422,1422),('¾ÔÁ¾ì»ÃоÃó',1423,1423),('¾ÔÁ¾ì¾Ã',1424,1424),('¾ÕþѲ¹ì',1445,1445),('¾ÔÃس',1431,1431),('¾ÔÊÁÑÂ',1434,1434),('¾ÔÈÔÉ°ì',1432,1432),('¾ÔÊÔÉ°ì',1437,1437),('¾ÔÊÔ°',1435,1435),('¾ÔÊÔ·¸Ôì',1436,1436),('¾ÔɳØ',1433,1433),('¾Ô¨ÔµÃÒ',1398,1398),('¾ÔªÂÒ',1401,1401),('¾ÔªÑÂ',1402,1402),('¾ÔªÑÂÇѲ¹ì',1403,1403),('¾ÔªÔµ',1404,1404),('¾ÔªÔµ¾Å',1405,1405),('¾Ôª­ì',1399,1399),('¾Ôª´Ò',1400,1400),('¾Ô±ÙÃÂì',1410,1410),('¾Ò³Õ',1393,1393),('¾Ò³ÔªÂì',1392,1392),('¾Ô³ªØ´Ò',1411,1411),('¾Ô³¹ÀÒ',1412,1412),('¾Ô·ÂÒ',1413,1413),('¾Ô·Ñ¡Éì',1414,1414),('¾Ô¸Ò¹¡Ã',1416,1416),('¾Õ¹Ô¡«ì àÍç¡«ìà¾ÃÊ',1442,1442),('¾Õ¹Ô¡«ìàÍç¡«ìà¾ÃÊ',1443,1443),('¾Ò¹·Í§',1395,1395),('¾Ô¹¹ÔÀÒ',1417,1417),('¾ÔºÙÅÂì',1418,1418),('¾Ô¾Ñ²¹ì',1419,1419),('¾Ùŷͧ¾Ãç;à¾ÍÃìµÕé_',1454,1454),('¾ÙżÅ',1455,1455),('¾Ù¹ÈÑ¡´Ôì',1453,1453),('¾Ù¹¾Ñ¹¸ì',1452,1452),('¾Åà·¾',1366,1366),('¾ÅÊÔ·¸Ôì',1369,1369),('¾Å¡Äɳì',1364,1364),('¾ÅªÑÂ',1365,1365),('¾Å¾ÑªÃì',1367,1367),('¾Å¾Ñ²¹ì',1368,1368),('¾§ÈìÀѤ',1300,1300),('¾§Èìà¡ÕÂõÔ',1294,1294),('¾§Èìà·¾',1296,1296),('¾§Éìà·¾',1302,1302),('¾§ÉìÈÑ¡´Ôì',1304,1304),('¾§ÉìÊѹµì',1305,1305),('¾§ÈìÊØà¡ÉÁ',1301,1301),('¾§Éì͹ѹµì',1306,1306),('¾§ÈìªÒÂ',1295,1295),('¾§Éì¾Ã',1303,1303),('¾§Èì¾Ñ¹¸ì',1298,1298),('¾§Èì¾Ô¾Ñ²¹ì',1299,1299),('¾§È¸Ã',1297,1297),('¾¨ÁÒÅÂì',1312,1312),('¾¨ÁÒ¹',1311,1311),('¾¨¹ì',1307,1307),('¾¨¹Ò',1308,1308),('¾¨¹ÕÂì',1310,1310),('¾¨¹Òö',1309,1309),('¾¹Á',1313,1313),('¾¹ÁªÑÂ',1314,1314),('¾¹ÒÊѹ±ì',1315,1315),('¾¹Ô´Ò',1316,1316),('¿Õ¹Ô¡«ì àÍç¡«ìà¾ÃÊ',1493,1493),('¿ÅØÊÊÔ¡à¤Á',1492,1492);
+SELECT name FROM t1 ORDER BY name;
+DROP TABLE t1;
+
+#
+# Check the following:
+# "a" == "a "
+# "a\0" < "a"
+# "a\0" < "a "
+
+SELECT 'a' = 'a ';
+SELECT 'a\0' < 'a';
+SELECT 'a\0' < 'a ';
+SELECT 'a\t' < 'a';
+SELECT 'a\t' < 'a ';
+
+CREATE TABLE t1 (a char(10) not null);
+INSERT INTO t1 VALUES ('a'),('a\0'),('a\t'),('a ');
+SELECT hex(a),STRCMP(a,'a'), STRCMP(a,'a ') FROM t1;
+DROP TABLE t1;
diff --git a/mysql-test/t/ctype_ujis.test b/mysql-test/t/ctype_ujis.test
index bcf6507b4c7..abfded5a6c2 100644
--- a/mysql-test/t/ctype_ujis.test
+++ b/mysql-test/t/ctype_ujis.test
@@ -41,3 +41,23 @@ select _ujis 0xa1a2a1a3 like concat(_ujis'%',_ujis 0xa2a1, _ujis'%') collate uji
select 'a' like 'a';
select 'A' like 'a';
select 'A' like 'a' collate ujis_bin;
+
+#
+# Bug 3290: Hald-width Katakana conversion problem.
+# Check ujis-utf8-ujis round trip.
+#
+set @ujis1= _ujis 0x8EA18EA28EA38EA48EA58EA68EA78EA88EA98EAA8EAB8EAC8EAD8EAE8EAF;
+set @ujis2= _ujis 0x8EB08EB18EB28EB38EB48EB58EB68EB78EB88EB98EBA8EBB8EBC8EBD8EBE8EBF;
+set @ujis3= _ujis 0x8EC08EC18EC28EC38EC48EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF;
+set @ujis4= _ujis 0x8ED08ED18ED28ED38ED48ED58ED68ED78ED88ED98EDA8EDB8EDC8EDD8EDE8EDF;
+
+select hex(@utf81:= CONVERT(@ujis1 USING utf8));
+select hex(@utf82:= CONVERT(@ujis2 USING utf8));
+select hex(@utf83:= CONVERT(@ujis3 USING utf8));
+select hex(@utf84:= CONVERT(@ujis4 USING utf8));
+
+select @ujis1 = CONVERT(@utf81 USING ujis);
+select @ujis2 = CONVERT(@utf82 USING ujis);
+select @ujis3 = CONVERT(@utf83 USING ujis);
+select @ujis4 = CONVERT(@utf84 USING ujis);
+
diff --git a/mysql-test/t/ctype_utf8.test b/mysql-test/t/ctype_utf8.test
index 49b1ed94757..4e68efeffc3 100644
--- a/mysql-test/t/ctype_utf8.test
+++ b/mysql-test/t/ctype_utf8.test
@@ -34,6 +34,23 @@ select 'A' like 'a' collate utf8_bin;
select _utf8 0xD0B0D0B1D0B2 like concat(_utf8'%',_utf8 0xD0B1,_utf8 '%');
#
+# Check the following:
+# "a" == "a "
+# "a\0" < "a"
+# "a\0" < "a "
+
+SELECT 'a' = 'a ';
+SELECT 'a\0' < 'a';
+SELECT 'a\0' < 'a ';
+SELECT 'a\t' < 'a';
+SELECT 'a\t' < 'a ';
+
+CREATE TABLE t1 (a char(10) character set utf8 not null);
+INSERT INTO t1 VALUES ('a'),('a\0'),('a\t'),('a ');
+SELECT hex(a),STRCMP(a,'a'), STRCMP(a,'a ') FROM t1;
+DROP TABLE t1;
+
+#
# Fix this, it should return 1:
#
#select _utf8 0xD0B0D0B1D0B2 like concat(_utf8'%',_utf8 0xD091,_utf8 '%');
@@ -54,7 +71,7 @@ select * from t1;
drop table t1;
#
-# Bug #2366 Wrong utf8 behaviour when data is trancated
+# Bug #2366 Wrong utf8 behaviour when data is truncated
#
set names koi8r;
create table t1 (s1 char(1) character set utf8);
@@ -101,7 +118,26 @@ drop table t1;
#
# Bug 2699
-# UTF8 breaks primary keys for cols > 85 characters
+# UTF8 breaks primary keys for cols > 333 characters
#
---error 1089
-create table t1 (a char(160) character set utf8, primary key(a));
+--error 1071
+create table t1 (a text character set utf8, primary key(a(360)));
+
+
+#
+# Bug 2959
+# UTF8 charset breaks joins with mixed column/string constant
+#
+CREATE TABLE t1 ( a varchar(10) ) CHARACTER SET utf8;
+INSERT INTO t1 VALUES ( 'test' );
+SELECT a.a, b.a FROM t1 a, t1 b WHERE a.a = b.a;
+SELECT a.a, b.a FROM t1 a, t1 b WHERE a.a = 'test' and b.a = 'test';
+SELECT a.a, b.a FROM t1 a, t1 b WHERE a.a = b.a and a.a = 'test';
+DROP TABLE t1;
+
+create table t1 (a char(255) character set utf8);
+insert into t1 values('b'),('b');
+select * from t1 where a = 'b';
+select * from t1 where a = 'b' and a = 'b';
+select * from t1 where a = 'b' and a != 'b';
+drop table t1;
diff --git a/mysql-test/t/date_formats.test b/mysql-test/t/date_formats.test
index 18af3dfb3db..1fc04cb907b 100644
--- a/mysql-test/t/date_formats.test
+++ b/mysql-test/t/date_formats.test
@@ -124,7 +124,7 @@ select str_to_date(concat('15-01-2001',' 2:59:58.999'),
create table t1 (date char(30), format char(30) not null);
insert into t1 values
('2003-01-02 10:11:12', '%Y-%m-%d %H:%i:%S'),
-('03-01-02 8:11:2.123456', '%y-%m-%d %H:%i:%S'),
+('03-01-02 8:11:2.123456', '%y-%m-%d %H:%i:%S.%#'),
('2003-01-02 10:11:12 PM', '%Y-%m-%d %h:%i:%S %p'),
('2003-01-02 01:11:12.12345AM', '%Y-%m-%d %h:%i:%S.%f%p'),
('2003-01-02 02:11:12.12345AM', '%Y-%m-%d %h:%i:%S.%f %p'),
@@ -209,3 +209,32 @@ create table t1 (d date);
insert into t1 values ('2004-07-14'),('2005-07-14');
select date_format(d,"%d") from t1 order by 1;
drop table t1;
+
+select str_to_date("2003-....01ABCD-02 10:11:12.0012", "%Y-%.%m%@-%d %H:%i:%S.%f") as a;
+
+
+create table t1 select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f") as f1,
+ str_to_date("10:11:12.0012", "%H:%i:%S.%f") as f2,
+ str_to_date("2003-01-02", "%Y-%m-%d") as f3,
+ str_to_date("02", "%d") as f4, str_to_date("02 10", "%d %H") as f5;
+describe t1;
+select * from t1;
+drop table t1;
+
+create table t1 select "02 10" as a, "%d %H" as b;
+select str_to_date(a,b) from t1;
+create table t2 select str_to_date(a,b) from t1;
+describe t2;
+select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f") as f1,
+ str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S") as f2,
+ str_to_date("2003-01-02", "%Y-%m-%d") as f3,
+ str_to_date("02 10:11:12", "%d %H:%i:%S.%f") as f4,
+ str_to_date("02 10:11:12", "%d %H:%i:%S") as f5,
+ str_to_date("02 10", "%d %f") as f6;
+drop table t1, t2;
+select str_to_date("2003-01-02 10:11:12.0012ABCD", "%Y-%m-%d %H:%i:%S.%f") as f1,
+ addtime("-01:01:01.01 GGG", "-23:59:59.1") as f2,
+ microsecond("1997-12-31 23:59:59.01XXXX") as f3;
+
+select str_to_date("2003-04-05 g", "%Y-%m-%d") as f1,
+ str_to_date("2003-04-05 10:11:12.101010234567", "%Y-%m-%d %H:%i:%S.%f") as f2;
diff --git a/mysql-test/t/delete.test b/mysql-test/t/delete.test
index bd5d9e5c0d9..e370b545eff 100644
--- a/mysql-test/t/delete.test
+++ b/mysql-test/t/delete.test
@@ -84,7 +84,7 @@ insert into t2 values (1, 21),(2, 12),(3, 23);
select * from t11;
select * from t12;
select * from t2;
--- error 1241
+-- error 1242
delete t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b <> (select b from t2 where t11.a < t2.a);
select * from t11;
select * from t12;
@@ -92,7 +92,7 @@ delete ignore t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b <> (select
select * from t11;
select * from t12;
insert into t11 values (2, 12);
--- error 1241
+-- error 1242
delete from t11 where t11.b <> (select b from t2 where t11.a < t2.a);
select * from t11;
delete ignore from t11 where t11.b <> (select b from t2 where t11.a < t2.a);
diff --git a/mysql-test/t/derived.test b/mysql-test/t/derived.test
index a9341ada416..f0d5a253bf4 100644
--- a/mysql-test/t/derived.test
+++ b/mysql-test/t/derived.test
@@ -116,7 +116,7 @@ select mail_id, if(folder.f_description!='', folder.f_description, folder.f_nam
#
create table t1 (a int);
insert into t1 values (1),(2),(3);
--- error 1287
+-- error 1288
update (select * from t1) as t1 set a = 5;
-- error 1064
delete from (select * from t1);
@@ -151,13 +151,14 @@ CREATE TABLE `t1` (
INSERT INTO `t1` (N, M) VALUES (1, 0),(1, 0),(1, 0),(2, 0),(2, 0),(3, 0);
UPDATE `t1` AS P1 INNER JOIN (SELECT N FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N SET P1.M = 2;
select * from t1;
--- error 1287
+-- error 1288
UPDATE `t1` AS P1 INNER JOIN (SELECT N FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N SET P1.M = 2, P2.N = 2;
-- error 1054
UPDATE `t1` AS P1 INNER JOIN (SELECT aaaa FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N SET P1.M = 2;
delete P1.* from `t1` AS P1 INNER JOIN (SELECT N FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N;
select * from t1;
--- error 1287
+--replace_result P2 p2
+--error 1288
delete P1.*,P2.* from `t1` AS P1 INNER JOIN (SELECT N FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N;
-- error 1054
delete P1.* from `t1` AS P1 INNER JOIN (SELECT aaa FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N;
@@ -188,7 +189,6 @@ INSERT INTO t3 VALUES (1000,0.00),(1001,0.25),(1002,0.50),(1003,0.75),(1008,1.00
select 497, TMP.ID, NULL from (select 497 as ID, MAX(t3.DATA) as DATA from t1 join t2 on (t1.ObjectID = t2.ID) join t3 on (t1.ObjectID = t3.ID) group by t2.ParID order by DATA DESC) as TMP;
drop table t1, t2, t3;
-
#
# explain derived
#
@@ -206,3 +206,11 @@ insert into t2 values (1,7),(2,7);
explain select a from t2 where a>1;
explain select a from (select a from t2 where a>1) tt;
drop table t2;
+
+#
+# select list counter
+#
+CREATE TABLE `t1` ( `itemid` int(11) NOT NULL default '0', `grpid` varchar(15) NOT NULL default '', `vendor` int(11) NOT NULL default '0', `date_` date NOT NULL default '0000-00-00', `price` decimal(12,2) NOT NULL default '0.00', PRIMARY KEY (`itemid`,`grpid`,`vendor`,`date_`), KEY `itemid` (`itemid`,`vendor`), KEY `itemid_2` (`itemid`,`date_`));
+insert into t1 values (128, 'rozn', 2, now(), 10),(128, 'rozn', 1, now(), 10);
+SELECT MIN(price) min, MAX(price) max, AVG(price) avg FROM (SELECT SUBSTRING( MAX(concat(date_,";",price)), 12) price FROM t1 WHERE itemid=128 AND grpid='rozn' GROUP BY itemid, grpid, vendor) lastprices;
+DROP TABLE t1;
diff --git a/mysql-test/t/drop.test b/mysql-test/t/drop.test
index 43329a849f8..88c47803f48 100644
--- a/mysql-test/t/drop.test
+++ b/mysql-test/t/drop.test
@@ -24,7 +24,9 @@ create database mysqltest;
create table mysqltest.mysqltest (n int);
insert into mysqltest.mysqltest values (4);
select * from mysqltest.mysqltest;
+--enable_info
drop database if exists mysqltest;
+--disable_info
create database mysqltest;
drop database mysqltest;
diff --git a/mysql-test/t/endspace.test b/mysql-test/t/endspace.test
new file mode 100644
index 00000000000..a9933ff93b5
--- /dev/null
+++ b/mysql-test/t/endspace.test
@@ -0,0 +1,96 @@
+#
+# Test problem with characters < ' ' at end of strings (Bug #3152)
+#
+
+-- source include/have_innodb.inc
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+select 'a' = 'a', 'a' = 'a ', 'a ' = 'a';
+select 'a\0' = 'a', 'a\0' < 'a', 'a\0' > 'a';
+select 'a' = 'a\0', 'a' < 'a\0', 'a' > 'a\0';
+select 'a\0' = 'a ', 'a\0' < 'a ', 'a\0' > 'a ';
+select 'a ' = 'a\0', 'a ' < 'a\0', 'a ' > 'a\0';
+select 'a a' > 'a', 'a \0' < 'a';
+select binary 'a a' > 'a', binary 'a \0' > 'a', binary 'a\0' > 'a';
+
+#
+# Test MyISAM tables.
+#
+
+create table t1 (text1 varchar(32) not NULL, KEY key1 (text1));
+insert into t1 values ('teststring'), ('nothing'), ('teststring\t');
+check table t1;
+select * from t1 ignore key (key1) where text1='teststring' or text1 like 'teststring_%';
+select * from t1 where text1='teststring' or text1 like 'teststring_%';
+select * from t1 where text1='teststring' or text1 > 'teststring\t';
+select * from t1 order by text1;
+explain select * from t1 order by text1;
+
+alter table t1 modify text1 char(32) binary not null;
+check table t1;
+select * from t1 ignore key (key1) where text1='teststring' or text1 like 'teststring_%';
+select * from t1 where text1='teststring' or text1 like 'teststring_%';
+select * from t1 where text1='teststring' or text1 > 'teststring\t';
+select text1, length(text1) from t1 order by text1;
+select text1, length(text1) from t1 order by binary text1;
+
+alter table t1 modify text1 blob not null, drop key key1, add key key1 (text1(20));
+insert into t1 values ('teststring ');
+select concat('|', text1, '|') from t1 order by text1;
+
+alter table t1 modify text1 text not null, pack_keys=1;
+select * from t1 where text1 like 'teststring_%';
+select * from t1 where text1='teststring' or text1 like 'teststring_%';
+select * from t1 where text1='teststring' or text1 > 'teststring\t';
+select concat('|', text1, '|') from t1 order by text1;
+drop table t1;
+
+create table t1 (text1 varchar(32) not NULL, KEY key1 (text1)) pack_keys=0;
+insert into t1 values ('teststring'), ('nothing'), ('teststring\t');
+select * from t1 where text1='teststring' or text1 like 'teststring_%';
+select * from t1 where text1='teststring' or text1 >= 'teststring\t';
+drop table t1;
+
+# Test HEAP tables (with BTREE keys)
+
+create table t1 (text1 varchar(32) not NULL, KEY key1 using BTREE (text1)) engine=heap;
+insert into t1 values ('teststring'), ('nothing'), ('teststring\t');
+select * from t1 ignore key (key1) where text1='teststring' or text1 like 'teststring_%';
+select * from t1 where text1='teststring' or text1 like 'teststring_%';
+select * from t1 where text1='teststring' or text1 >= 'teststring\t';
+select * from t1 order by text1;
+explain select * from t1 order by text1;
+
+alter table t1 modify text1 char(32) binary not null;
+select * from t1 order by text1;
+drop table t1;
+
+#
+# Test InnoDB tables
+#
+
+create table t1 (text1 varchar(32) not NULL, KEY key1 (text1)) engine=innodb;
+insert into t1 values ('teststring'), ('nothing'), ('teststring\t');
+check table t1;
+select * from t1 where text1='teststring' or text1 like 'teststring_%';
+select * from t1 where text1='teststring' or text1 > 'teststring\t';
+select * from t1 order by text1;
+explain select * from t1 order by text1;
+
+alter table t1 modify text1 char(32) binary not null;
+select * from t1 order by text1;
+
+alter table t1 modify text1 blob not null, drop key key1, add key key1 (text1(20));
+insert into t1 values ('teststring ');
+select concat('|', text1, '|') from t1 order by text1;
+
+alter table t1 modify text1 text not null, pack_keys=1;
+select * from t1 where text1 like 'teststring_%';
+
+# The following gives wrong result in InnoDB
+select text1, length(text1) from t1 where text1='teststring' or text1 like 'teststring_%';
+select text1, length(text1) from t1 where text1='teststring' or text1 >= 'teststring\t';
+select concat('|', text1, '|') from t1 order by text1;
+drop table t1;
diff --git a/mysql-test/t/fulltext.test b/mysql-test/t/fulltext.test
index 02ada3dc8cb..50a3d522e3d 100644
--- a/mysql-test/t/fulltext.test
+++ b/mysql-test/t/fulltext.test
@@ -12,6 +12,7 @@ INSERT INTO t1 VALUES('MySQL has now support', 'for full-text search'),
('Only MyISAM tables','support collections'),
('Function MATCH ... AGAINST()','is used to do a search'),
('Full-text search in MySQL', 'implements vector space model');
+SHOW INDEX FROM t1;
# nl search
@@ -62,8 +63,15 @@ select * from t1 where MATCH a,b AGAINST ('"text search" "now support"' IN BOOL
select * from t1 where MATCH a,b AGAINST ('"text search" -"now support"' IN BOOLEAN MODE);
select * from t1 where MATCH a,b AGAINST ('"text search" +"now support"' IN BOOLEAN MODE);
select * from t1 where MATCH a,b AGAINST ('"text i"' IN BOOLEAN MODE);
+
+select * from t1 where MATCH a,b AGAINST ('+(support collections) +foobar*' IN BOOLEAN MODE);
+select * from t1 where MATCH a,b AGAINST ('+(+(support collections)) +foobar*' IN BOOLEAN MODE);
select * from t1 where MATCH a,b AGAINST ('"xt indexes"' IN BOOLEAN MODE);
+# bug#2708 crash
+
+select * from t1 where MATCH a,b AGAINST('"space model' IN BOOLEAN MODE);
+
# boolean w/o index:
select * from t1 where MATCH a AGAINST ("search" IN BOOLEAN MODE);
@@ -144,9 +152,9 @@ select * from t2 having MATCH inhalt AGAINST ('foobar');
# check of fulltext errors
#
---error 1282
+--error 1283
CREATE TABLE t3 (t int(11),i text,fulltext tix (t,i));
---error 1282
+--error 1283
CREATE TABLE t3 (t int(11),i text,
j varchar(200) CHARACTER SET latin2,
fulltext tix (i,j));
@@ -263,6 +271,7 @@ SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabrück');
SET NAMES latin1;
SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabrück');
SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabrueck');
+SELECT t, collation(t),MATCH t AGAINST ('Osnabruck') FROM t1 WHERE MATCH t AGAINST ('Osnabruck');
#alter table t1 modify t text character set latin1 collate latin1_german2_ci not null;
alter table t1 modify t varchar(200) collate latin1_german2_ci not null;
SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabrück');
diff --git a/mysql-test/t/fulltext_var.test b/mysql-test/t/fulltext_var.test
index 71213d1195a..8cc8acf60a6 100644
--- a/mysql-test/t/fulltext_var.test
+++ b/mysql-test/t/fulltext_var.test
@@ -1,5 +1,27 @@
#
# Fulltext configurable parameters
#
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
show variables like "ft\_%";
+
+create table t1 (b text not null);
+insert t1 values ('aaaaaa bbbbbb cccccc');
+insert t1 values ('bbbbbb cccccc');
+insert t1 values ('aaaaaa cccccc');
+select * from t1 where match b against ('+aaaaaa bbbbbb' in boolean mode);
+-- error 1229
+set ft_boolean_syntax=' +-><()~*:""&|';
+set global ft_boolean_syntax=' +-><()~*:""&|';
+select * from t1 where match b against ('+aaaaaa bbbbbb' in boolean mode);
+set global ft_boolean_syntax='@ -><()~*:""&|';
+select * from t1 where match b against ('+aaaaaa bbbbbb' in boolean mode);
+select * from t1 where match b against ('+aaaaaa @bbbbbb' in boolean mode);
+-- error 1231
+set global ft_boolean_syntax='@ -><()~*:""@|';
+-- error 1231
+set global ft_boolean_syntax='+ -><()~*:""@!|';
+drop table t1;
+
diff --git a/mysql-test/t/func_gconcat.test b/mysql-test/t/func_gconcat.test
index d004c81f14e..9d99a57afe5 100644
--- a/mysql-test/t/func_gconcat.test
+++ b/mysql-test/t/func_gconcat.test
@@ -29,7 +29,8 @@ select grp,group_concat(c order by c) from t1 group by grp;
select grp,group_concat(c order by c desc) from t1 group by grp;
select grp,group_concat(d order by a) from t1 group by grp;
select grp,group_concat(d order by a desc) from t1 group by grp;
-select grp,group_concat(a order by a,d+c) from t1 group by grp;
+select grp,group_concat(a order by a,d+c-ascii(c)-a) from t1 group by grp;
+select grp,group_concat(a order by d+c-ascii(c),a) from t1 group by grp;
select grp,group_concat(c order by 1) from t1 group by grp;
select grp,group_concat(c order by "c") from t1 group by grp;
select grp,group_concat(distinct c order by c) from t1 group by grp;
@@ -50,22 +51,12 @@ select grp,group_concat(c order by grp desc) from t1 group by grp order by grp;
select grp, group_concat(a separator "")+0 from t1 group by grp;
select grp, group_concat(a separator "")+0.0 from t1 group by grp;
select grp, ROUND(group_concat(a separator "")) from t1 group by grp;
+drop table t1;
# Test NULL values
-drop table t1;
create table t1 (grp int, c char(10));
-insert into t1 values (1,NULL);
-insert into t1 values (2,"b");
-insert into t1 values (2,NULL);
-insert into t1 values (3,"E");
-insert into t1 values (3,NULL);
-insert into t1 values (3,"D");
-insert into t1 values (3,NULL);
-insert into t1 values (3,NULL);
-insert into t1 values (3,"D");
-insert into t1 values (4,"");
-insert into t1 values (5,NULL);
+insert into t1 values (1,NULL),(2,"b"),(2,NULL),(3,"E"),(3,NULL),(3,"D"),(3,NULL),(3,NULL),(3,"D"),(4,""),(5,NULL);
select grp,group_concat(c order by c) from t1 group by grp;
# Test warnings
@@ -118,8 +109,12 @@ drop table t2;
# check having
create table t1 (bar varchar(32));
-insert into t1 values('test'),('test2');
-select * from t1 having group_concat(bar)='';
+insert into t1 values('test1'),('test2');
+select group_concat(bar order by concat(bar,bar)) from t1;
+select group_concat(bar order by concat(bar,bar) desc) from t1;
+select bar from t1 having group_concat(bar)='';
+select bar from t1 having instr(group_concat(bar), "test") > 0;
+select bar from t1 having instr(group_concat(bar order by concat(bar,bar) desc), "test2,test1") > 0;
drop table t1;
# ORDER BY fix_fields()
@@ -129,4 +124,58 @@ insert into t1 values (0,"a"),(0,"b"),(1,"c");
insert into t2 values (1),(2),(3);
select group_concat(a1 order by (t1.a IN (select a0 from t2))) from t1;
select group_concat(a1 order by (t1.a)) from t1;
-drop table t1, t2; \ No newline at end of file
+drop table t1, t2;
+
+#
+# Problem with GROUP BY (Bug #2695)
+#
+
+CREATE TABLE t1 (id1 tinyint(4) NOT NULL, id2 tinyint(4) NOT NULL);
+INSERT INTO t1 VALUES (1, 1),(1, 2),(1, 3),(1, 4),(1, 5),(2, 1),(2, 2),(2, 3);
+CREATE TABLE t2 (id1 tinyint(4) NOT NULL);
+INSERT INTO t2 VALUES (1),(2),(3),(4),(5);
+SELECT t1.id1, GROUP_CONCAT(t1.id2 ORDER BY t1.id2 ASC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 AND t1.id1=1 GROUP BY t1.id1;
+SELECT t1.id1, GROUP_CONCAT(t1.id2 ORDER BY t1.id2 ASC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 GROUP BY t1.id1;
+SELECT t1.id1, GROUP_CONCAT(t1.id2 ORDER BY t1.id2 DESC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 GROUP BY t1.id1;
+SELECT t1.id1, GROUP_CONCAT(t1.id2 ORDER BY 6-t1.id2 ASC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 GROUP BY t1.id1;
+
+# The following failed when it was run twice:
+SELECT t1.id1, GROUP_CONCAT(t1.id2,6-t1.id2 ORDER BY 6-t1.id2 ASC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 GROUP BY t1.id1;
+SELECT t1.id1, GROUP_CONCAT(t1.id2,6-t1.id2 ORDER BY 6-t1.id2 ASC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 GROUP BY t1.id1;
+
+SELECT t1.id1, GROUP_CONCAT(t1.id2,"/",6-t1.id2 ORDER BY 1+0,6-t1.id2,t1.id2 ASC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 GROUP BY t1.id1;
+drop table t1,t2;
+
+#
+# Problem with distinct (Bug #3381)
+#
+
+create table t1 (s1 char(10), s2 int not null);
+insert into t1 values ('a',2),('b',2),('c',1),('a',3),('b',4),('c',4);
+select distinct s1 from t1 order by s2,s1;
+select group_concat(distinct s1) from t1;
+select group_concat(distinct s1 order by s2) from t1 where s2 < 4;
+# The following is wrong and needs to be fixed ASAP
+select group_concat(distinct s1 order by s2) from t1;
+drop table t1;
+
+#
+# Test with subqueries (Bug #3319)
+#
+
+create table t1 (a int, c int);
+insert into t1 values (1, 2), (2, 3), (2, 4), (3, 5);
+create table t2 (a int, c int);
+insert into t2 values (1, 5), (2, 4), (3, 3), (3,3);
+select group_concat(c) from t1;
+select group_concat(c order by (select c from t2 where t2.a=t1.a limit 1)) as grp from t1;
+
+select group_concat(c order by (select mid(group_concat(c order by a),1,5) from t2 where t2.a=t1.a)) as grp from t1;
+select group_concat(c order by (select mid(group_concat(c order by a),1,5) from t2 where t2.a=t1.a) desc) as grp from t1;
+
+# The following returns random results as we are sorting on blob addresses
+# select group_concat(c order by (select group_concat(c order by a) from t2 where t2.a=t1.a)) as grp from t1;
+# select group_concat(c order by (select group_concat(c) from t2 where a=t1.a)) as grp from t1;
+
+select a,c,(select group_concat(c order by a) from t2 where a=t1.a) as grp from t1 order by grp;
+drop table t1,t2;
diff --git a/mysql-test/t/func_group.test b/mysql-test/t/func_group.test
index ce89cbe1b22..2bd4838f934 100644
--- a/mysql-test/t/func_group.test
+++ b/mysql-test/t/func_group.test
@@ -134,7 +134,6 @@ select max(t2.a1) from t1 left outer join t2 on t1.a2=t2.a1 and 1=0 where t2.a1=
select max(t1.a2),max(t2.a1) from t1 left outer join t2 on t1.a1=10;
drop table t1,t2;
-
#
# Tests to check MIN/MAX query optimization
#
diff --git a/mysql-test/t/func_if.test b/mysql-test/t/func_if.test
index e44a7f6d6f9..36c3a38d2fe 100644
--- a/mysql-test/t/func_if.test
+++ b/mysql-test/t/func_if.test
@@ -30,6 +30,12 @@ explain extended select nullif(u=0, 'test') from t1;
drop table t1;
#
+# Bug 2629
+#
+select NULLIF(NULL,NULL), NULLIF(NULL,1), NULLIF(NULL,1.0), NULLIF(NULL,"test");
+select NULLIF(1,NULL), NULLIF(1.0, NULL), NULLIF("test", NULL);
+
+#
# Problem with IF()
#
diff --git a/mysql-test/t/func_in.test b/mysql-test/t/func_in.test
index 9ff768ec76b..855a7cbd28f 100644
--- a/mysql-test/t/func_in.test
+++ b/mysql-test/t/func_in.test
@@ -61,11 +61,11 @@ c char(1) character set latin1 collate latin1_danish_ci
);
insert into t1 values ('A','B','C');
insert into t1 values ('a','c','c');
---error 1266
+--error 1267
select * from t1 where a in (b);
---error 1269
-select * from t1 where a in (b,c);
--error 1270
+select * from t1 where a in (b,c);
+--error 1271
select * from t1 where 'a' in (a,b,c);
select * from t1 where 'a' in (a);
select * from t1 where a in ('a');
diff --git a/mysql-test/t/func_like.test b/mysql-test/t/func_like.test
index a05a2a3bdaa..91f55af48cc 100644
--- a/mysql-test/t/func_like.test
+++ b/mysql-test/t/func_like.test
@@ -25,6 +25,24 @@ select * from t1 where a like "%abc\d%";
drop table t1;
+#
+# Bug #2231
+#
+
+create table t1 (a varchar(10), key(a));
+insert into t1 values ('a'), ('a\\b');
+select * from t1 where a like 'a\\%' escape '#';
+select * from t1 where a like 'a\\%' escape '#' and a like 'a\\\\b';
+drop table t1;
+
+#
+# Bug #2885: like and datetime
+#
+
+create table t1 (a datetime);
+insert into t1 values ('2004-03-11 12:00:21');
+select * from t1 where a like '2004-03-11 12:00:21';
+drop table t1;
#
# Test like with non-default character set
diff --git a/mysql-test/t/func_math.test b/mysql-test/t/func_math.test
index b6e2d3bd725..36ad2dfb0a2 100644
--- a/mysql-test/t/func_math.test
+++ b/mysql-test/t/func_math.test
@@ -29,4 +29,25 @@ explain extended select rand(999999),rand();
select pi(),sin(pi()/2),cos(pi()/2),abs(tan(pi())),cot(1),asin(1),acos(0),atan(1);
explain extended select pi(),sin(pi()/2),cos(pi()/2),abs(tan(pi())),cot(1),asin(1),acos(0),atan(1);
select degrees(pi()),radians(360);
+
+#
+# Bug #2338 Trignometric arithmatic problems
+#
+
+SELECT ACOS(1.0);
+SELECT ASIN(1.0);
+SELECT ACOS(0.2*5.0);
+SELECT ACOS(0.5*2.0);
+SELECT ASIN(0.8+0.2);
+SELECT ASIN(1.2-0.2);
+
+#
+# Bug #3051 FLOOR returns invalid
+#
+
+# This can't be tested as it's not portable
+#select floor(log(4)/log(2));
+#select floor(log(8)/log(2));
+#select floor(log(16)/log(2));
+
explain extended select degrees(pi()),radians(360);
diff --git a/mysql-test/t/func_misc.test b/mysql-test/t/func_misc.test
index 9759127b222..e73f2a1b26c 100644
--- a/mysql-test/t/func_misc.test
+++ b/mysql-test/t/func_misc.test
@@ -2,7 +2,7 @@
# Testing of misc functions
#
-select format(1.5555,0),format(123.5555,1),format(1234.5555,2),format(12345.5555,3),format(123456.5555,4),format(1234567.5555,5),format("12345.2399",2);
+select format(1.5555,0),format(123.5555,1),format(1234.5555,2),format(12345.55555,3),format(123456.5555,4),format(1234567.5555,5),format("12345.2399",2);
select inet_ntoa(inet_aton("255.255.255.255.255.255.255.255"));
select inet_aton("255.255.255.255.255"),inet_aton("255.255.1.255"),inet_aton("0.1.255");
@@ -12,6 +12,8 @@ select hex(inet_aton('127'));
select hex(inet_aton('127.1'));
select hex(inet_aton('127.1.1'));
+select length(uuid()), charset(uuid()), length(unhex(replace(uuid(),_utf8'-',_utf8'')));
+
#
# Test for core dump with nan
#
diff --git a/mysql-test/t/func_sapdb.test b/mysql-test/t/func_sapdb.test
index ba64e13873d..93e57daad82 100644
--- a/mysql-test/t/func_sapdb.test
+++ b/mysql-test/t/func_sapdb.test
@@ -98,3 +98,9 @@ SELECT TIMEDIFF(t1, t4) As ttt, TIMEDIFF(t2, t3) As qqq,
TIMEDIFF(t3, t2) As eee, TIMEDIFF(t2, t4) As rrr from test;
drop table t1, test;
+
+select addtime("-01:01:01.01", "-23:59:59.1") as a;
+select microsecond("1997-12-31 23:59:59.01") as a;
+select microsecond(19971231235959.01) as a;
+select date_add("1997-12-31",INTERVAL "10.09" SECOND_MICROSECOND) as a;
+select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f");
diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test
index 155ed459d1f..1c85f83baac 100644
--- a/mysql-test/t/func_str.test
+++ b/mysql-test/t/func_str.test
@@ -1,5 +1,3 @@
-# Version: 3.23.29
-#
# Description
# -----------
# Testing string functions
@@ -80,6 +78,9 @@ select quote(concat('abc\'', '\\cba'));
select quote(1/0), quote('\0\Z');
select length(quote(concat(char(0),"test")));
select hex(quote(concat(char(224),char(227),char(230),char(231),char(232),char(234),char(235))));
+select unhex(hex("foobar")), hex(unhex("1234567890ABCDEF")), unhex("345678");
+select hex(unhex("1")), hex(unhex("12")), hex(unhex("123")), hex(unhex("1234")), hex(unhex("12345")), hex(unhex("123456"));
+select length(unhex(md5("abrakadabra")));
#
# Wrong usage of functions
@@ -141,6 +142,36 @@ INSERT INTO t1 VALUES (1, 'a545f661efdd1fb66fdee3aab79945bf');
SELECT 1 FROM t1 WHERE tmp=AES_DECRYPT(tmp,"password");
DROP TABLE t1;
+CREATE TABLE t1 (
+ wid int(10) unsigned NOT NULL auto_increment,
+ data_podp date default NULL,
+ status_wnio enum('nowy','podp','real','arch') NOT NULL default 'nowy',
+ PRIMARY KEY(wid),
+);
+
+INSERT INTO t1 VALUES (8,NULL,'real');
+INSERT INTO t1 VALUES (9,NULL,'nowy');
+SELECT elt(status_wnio,data_podp) FROM t1 GROUP BY wid;
+DROP TABLE t1;
+
+#
+# test for #739
+
+CREATE TABLE t1 (title text) ENGINE=MyISAM;
+INSERT INTO t1 VALUES ('Congress reconvenes in September to debate welfare and adult education');
+INSERT INTO t1 VALUES ('House passes the CAREERS bill');
+SELECT CONCAT("</a>",RPAD("",(55 - LENGTH(title)),".")) from t1;
+DROP TABLE t1;
+
+#
+# test for Bug #2290 "output truncated with ELT when using DISTINCT"
+#
+
+CREATE TABLE t1 (i int, j int);
+INSERT INTO t1 VALUES (1,1),(2,2);
+SELECT DISTINCT i, ELT(j, '345', '34') FROM t1;
+DROP TABLE t1;
+
#
# Test collation and coercibility
#
@@ -149,22 +180,23 @@ select 1=_latin1'1';
select _latin1'1'=1;
select _latin2'1'=1;
select 1=_latin2'1';
---error 1266
+--error 1267
select _latin1'1'=_latin2'1';
select row('a','b','c') = row('a','b','c');
select row('A','b','c') = row('a','b','c');
select row('A' COLLATE latin1_bin,'b','c') = row('a','b','c');
select row('A','b','c') = row('a' COLLATE latin1_bin,'b','c');
---error 1266
+--error 1267
select row('A' COLLATE latin1_general_ci,'b','c') = row('a' COLLATE latin1_bin,'b','c');
---error 1266
+--error 1267
select concat(_latin1'a',_latin2'a');
---error 1269
-select concat(_latin1'a',_latin2'a',_latin5'a');
--error 1270
+select concat(_latin1'a',_latin2'a',_latin5'a');
+--error 1271
select concat(_latin1'a',_latin2'a',_latin5'a',_latin7'a');
-
+--error 1267
+select concat_ws(_latin1'a',_latin2'a');
#
# Test FIELD() and collations
@@ -173,65 +205,64 @@ select FIELD('b','A','B');
select FIELD('B','A','B');
select FIELD('b' COLLATE latin1_bin,'A','B');
select FIELD('b','A' COLLATE latin1_bin,'B');
---error 1269
+--error 1270
select FIELD(_latin2'b','A','B');
---error 1269
+--error 1270
select FIELD('b',_latin2'A','B');
select FIELD('b',_latin2'A','B',1);
-
select POSITION(_latin1'B' IN _latin1'abcd');
select POSITION(_latin1'B' IN _latin1'abcd' COLLATE latin1_bin);
select POSITION(_latin1'B' COLLATE latin1_bin IN _latin1'abcd');
---error 1266
+--error 1267
select POSITION(_latin1'B' COLLATE latin1_general_ci IN _latin1'abcd' COLLATE latin1_bin);
---error 1266
+--error 1267
select POSITION(_latin1'B' IN _latin2'abcd');
select FIND_IN_SET(_latin1'B',_latin1'a,b,c,d');
--fix this:
--select FIND_IN_SET(_latin1'B',_latin1'a,b,c,d' COLLATE latin1_bin);
--select FIND_IN_SET(_latin1'B' COLLATE latin1_bin,_latin1'a,b,c,d');
---error 1266
+--error 1267
select FIND_IN_SET(_latin1'B' COLLATE latin1_general_ci,_latin1'a,b,c,d' COLLATE latin1_bin);
---error 1266
+--error 1267
select FIND_IN_SET(_latin1'B',_latin2'a,b,c,d');
select SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin1'd',2);
--fix this:
--select SUBSTRING_INDEX(_latin1'abcdabcdabcd' COLLATE latin1_bin,_latin1'd',2);
--select SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin1'd' COLLATE latin1_bin,2);
---error 1266
+--error 1267
select SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin2'd',2);
---error 1266
+--error 1267
select SUBSTRING_INDEX(_latin1'abcdabcdabcd' COLLATE latin1_general_ci,_latin1'd' COLLATE latin1_bin,2);
select _latin1'B' between _latin1'a' and _latin1'c';
select _latin1'B' collate latin1_bin between _latin1'a' and _latin1'c';
select _latin1'B' between _latin1'a' collate latin1_bin and _latin1'c';
select _latin1'B' between _latin1'a' and _latin1'c' collate latin1_bin;
---error 1269
+--error 1270
select _latin2'B' between _latin1'a' and _latin1'b';
---error 1269
+--error 1270
select _latin1'B' between _latin2'a' and _latin1'b';
---error 1269
+--error 1270
select _latin1'B' between _latin1'a' and _latin2'b';
---error 1269
+--error 1270
select _latin1'B' collate latin1_general_ci between _latin1'a' collate latin1_bin and _latin1'b';
select _latin1'B' in (_latin1'a',_latin1'b');
select _latin1'B' collate latin1_bin in (_latin1'a',_latin1'b');
select _latin1'B' in (_latin1'a' collate latin1_bin,_latin1'b');
select _latin1'B' in (_latin1'a',_latin1'b' collate latin1_bin);
---error 1269
+--error 1270
select _latin2'B' in (_latin1'a',_latin1'b');
---error 1269
+--error 1270
select _latin1'B' in (_latin2'a',_latin1'b');
---error 1269
+--error 1270
select _latin1'B' in (_latin1'a',_latin2'b');
---error 1269
+--error 1270
select _latin1'B' COLLATE latin1_general_ci in (_latin1'a' COLLATE latin1_bin,_latin1'b');
---error 1269
+--error 1270
select _latin1'B' COLLATE latin1_general_ci in (_latin1'a',_latin1'b' COLLATE latin1_bin);
select collation(bin(130)), coercibility(bin(130));
@@ -317,38 +348,37 @@ select SUBSTR('abcdefg',1,-1) FROM DUAL;
# when an error on a lower level (in concat) has accured:
#
create table t7 (s1 char);
---error 1266
+--error 1267
select * from t7
where concat(s1 collate latin1_general_ci,s1 collate latin1_swedish_ci) = 'AA';
drop table t7;
-CREATE TABLE t1 (
- wid int(10) unsigned NOT NULL auto_increment,
- data_podp date default NULL,
- status_wnio enum('nowy','podp','real','arch') NOT NULL default 'nowy',
- PRIMARY KEY(wid),
-);
+select substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2),substring_index("1abcd;2abcd;3abcd;4abcd", ';', -2);
-INSERT INTO t1 VALUES (8,NULL,'real');
-INSERT INTO t1 VALUES (9,NULL,'nowy');
-SELECT elt(status_wnio,data_podp) FROM t1 GROUP BY wid;
-DROP TABLE t1;
+explain extended select md5('hello'), sha('abc'), sha1('abc'), soundex(''), 'mood' sounds like 'mud', aes_decrypt(aes_encrypt('abc','1'),'1'),concat('*',space(5),'*'), reverse('abc'), rpad('a',4,'1'), lpad('a',4,'1'), concat_ws(',','',NULL,'a'),make_set(255,_latin2'a',_latin2'b',_latin2'c'),elt(2,1),locate("a","b",2),format(130,10),char(0),conv(130,16,10),hex(130),binary 'HE', export_set(255,_latin2'y',_latin2'n',_latin2' '),FIELD('b' COLLATE latin1_bin,'A','B'),FIND_IN_SET(_latin1'B',_latin1'a,b,c,d'),collation(conv(130,16,10)), coercibility(conv(130,16,10)),length('\n\t\r\b\0\_\%\\'),bit_length('\n\t\r\b\0\_\%\\'),bit_length('\n\t\r\b\0\_\%\\'),concat('monty',' was here ','again'),length('hello'),char(ascii('h')),ord('h'),quote(1/0),crc32("123"),replace('aaaa','a','b'),insert('txs',2,1,'hi'),left(_latin2'a',1),right(_latin2'a',1),lcase(_latin2'a'),ucase(_latin2'a'),SUBSTR('abcdefg',3,2),substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2),trim(_latin2' a '),ltrim(_latin2' a '),rtrim(_latin2' a '), decode(encode(repeat("a",100000),"monty"),"monty");
#
-# test for #739
+# Bug #2182
+#
-CREATE TABLE t1 (title text) ENGINE=MyISAM;
-INSERT INTO t1 VALUES ('Congress reconvenes in September to debate welfare and adult education');
-INSERT INTO t1 VALUES ('House passes the CAREERS bill');
-SELECT CONCAT("</a>",RPAD("",(55 - LENGTH(title)),".")) from t1;
-DROP TABLE t1;
+SELECT lpad(12345, 5, "#");
+
+#
+# Bug #2972
+#
+
+SELECT conv(71, 10, 36), conv('1Z', 36, 10);
-select substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2),substring_index("1abcd;2abcd;3abcd;4abcd", ';', -2);
-explain extended select md5('hello'), sha('abc'), sha1('abc'), soundex(''), 'mood' sounds like 'mud', aes_decrypt(aes_encrypt('abc','1'),'1'),concat('*',space(5),'*'), reverse('abc'), rpad('a',4,'1'), lpad('a',4,'1'), concat_ws(',','',NULL,'a'),make_set(255,_latin2'a',_latin2'b',_latin2'c'),elt(2,1),locate("a","b",2),format(130,10),char(0),conv(130,16,10),hex(130),binary 'HE', export_set(255,_latin2'y',_latin2'n',_latin2' '),FIELD('b' COLLATE latin1_bin,'A','B'),FIND_IN_SET(_latin1'B',_latin1'a,b,c,d'),collation(conv(130,16,10)), coercibility(conv(130,16,10)),length('\n\t\r\b\0\_\%\\'),bit_length('\n\t\r\b\0\_\%\\'),bit_length('\n\t\r\b\0\_\%\\'),concat('monty',' was here ','again'),length('hello'),char(ascii('h')),ord('h'),quote(1/0),crc32("123"),replace('aaaa','a','b'),insert('txs',2,1,'hi'),left(_latin2'a',1),right(_latin2'a',1),lcase(_latin2'a'),ucase(_latin2'a'),SUBSTR('abcdefg',3,2),substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2),trim(_latin2' a '),ltrim(_latin2' a '),rtrim(_latin2' a '), decode(encode(repeat("a",100000),"monty"),"monty");
#
-# Bug #2182
+# Bug #3089
#
-SELECT lpad(12345, 5, "#");
+create table t1 (id int(1), str varchar(10)) DEFAULT CHARSET=utf8;
+insert into t1 values (1,'aaaaaaaaaa'), (2,'bbbbbbbbbb');
+create table t2 (id int(1), str varchar(10)) DEFAULT CHARSET=utf8;
+insert into t2 values (1,'cccccccccc'), (2,'dddddddddd');
+select substring(concat(t1.str, t2.str), 1, 15) "name" from t1, t2
+where t2.id=t1.id order by name;
+drop table t1, t2;
diff --git a/mysql-test/t/func_test.test b/mysql-test/t/func_test.test
index 0d055549866..e7bcd81a15e 100644
--- a/mysql-test/t/func_test.test
+++ b/mysql-test/t/func_test.test
@@ -21,6 +21,7 @@ select -1.49 or -1.49,0.6 or 0.6;
select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1;
explain extended select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1;
select 1 XOR 1, 1 XOR 0, 0 XOR 1, 0 XOR 0, NULL XOR 1, 1 XOR NULL, 0 XOR NULL;
+select 1 like 2 xor 2 like 1;
select 10 % 7, 10 mod 7, 10 div 3;
explain extended select 10 % 7, 10 mod 7, 10 div 3;
select (1 << 64)-1, ((1 << 64)-1) DIV 1, ((1 << 64)-1) DIV 2;
@@ -51,9 +52,9 @@ explain extended select _koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci;
select _koi8r'a' = _koi8r'A' COLLATE koi8r_bin;
select _koi8r'a' COLLATE koi8r_general_ci = _koi8r'A';
select _koi8r'a' COLLATE koi8r_bin = _koi8r'A';
---error 1266
+--error 1267
select _koi8r'a' COLLATE koi8r_bin = _koi8r'A' COLLATE koi8r_general_ci;
---error 1266
+--error 1267
select _koi8r'a' = _latin1'A';
select strcmp(_koi8r'a', _koi8r'A');
@@ -61,9 +62,9 @@ select strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_general_ci);
select strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_bin);
select strcmp(_koi8r'a' COLLATE koi8r_general_ci, _koi8r'A');
select strcmp(_koi8r'a' COLLATE koi8r_bin, _koi8r'A');
---error 1266
+--error 1267
select strcmp(_koi8r'a' COLLATE koi8r_general_ci, _koi8r'A' COLLATE koi8r_bin);
---error 1266
+--error 1267
select strcmp(_koi8r'a', _latin1'A');
select _koi8r'a' LIKE _koi8r'A';
@@ -71,9 +72,9 @@ select _koi8r'a' LIKE _koi8r'A' COLLATE koi8r_general_ci;
select _koi8r'a' LIKE _koi8r'A' COLLATE koi8r_bin;
select _koi8r'a' COLLATE koi8r_general_ci LIKE _koi8r'A';
select _koi8r'a' COLLATE koi8r_bin LIKE _koi8r'A';
---error 1266
+--error 1267
select _koi8r'a' COLLATE koi8r_general_ci LIKE _koi8r'A' COLLATE koi8r_bin;
---error 1266
+--error 1267
select _koi8r'a' LIKE _latin1'A';
#
diff --git a/mysql-test/t/func_time.test b/mysql-test/t/func_time.test
index 7a6e2a815f4..5934e291dca 100644
--- a/mysql-test/t/func_time.test
+++ b/mysql-test/t/func_time.test
@@ -273,12 +273,18 @@ select last_day('2000-02-05') as f1, last_day('2002-12-31') as f2,
last_day('2001-01-01 01:01:01') as f5, last_day(NULL),
last_day('2001-02-12');
-create table t1 select last_day('2000-02-05') as a;
+create table t1 select last_day('2000-02-05') as a,
+ from_days(to_days("960101")) as b;
describe t1;
select * from t1;
drop table t1;
-select last_day('2000-02-05');
+select last_day('2000-02-05') as a,
+ from_days(to_days("960101")) as b;
+select date_add(last_day("1997-12-1"), INTERVAL 1 DAY);
+select length(last_day("1997-12-1"));
+select last_day("1997-12-1")+0;
+select last_day("1997-12-1")+0.0;
# Test SAPDB UTC_% functions. This part is TZ dependant (It is supposed that
# TZ variable set to GMT-3
@@ -291,5 +297,13 @@ select strcmp(concat(utc_date(),' ',utc_time()),utc_timestamp())=0;
explain extended select period_add("9602",-12),period_diff(199505,"9404"),from_days(to_days("960101")),dayofmonth("1997-01-02"), month("1997-01-02"), monthname("1972-03-04"),dayofyear("0000-00-00"),HOUR("1997-03-03 23:03:22"),MINUTE("23:03:22"),SECOND(230322),QUARTER(980303),WEEK("1998-03-03"),yearweek("2000-01-01",1),week(19950101,1),year("98-02-03"),weekday(curdate())-weekday(now()),dayname("1962-03-03"),unix_timestamp(),sec_to_time(time_to_sec("0:30:47")/6.21),curtime(),utc_time(),curdate(),utc_date(),utc_timestamp(),date_format("1997-01-02 03:04:05", "%M %W %D %Y %y %m %d %h %i %s %w"),from_unixtime(unix_timestamp("1994-03-02 10:11:12")),"1997-12-31 23:59:59" + INTERVAL 1 SECOND,"1998-01-01 00:00:00" - INTERVAL 1 SECOND,INTERVAL 1 DAY + "1997-12-31", extract(YEAR FROM "1999-01-02 10:11:12"),date_add("1997-12-31 23:59:59",INTERVAL 1 SECOND);
+SET @TMP=NOW();
+CREATE TABLE t1 (d DATETIME);
+INSERT INTO t1 VALUES (NOW());
+INSERT INTO t1 VALUES (NOW());
+INSERT INTO t1 VALUES (NOW());
+SELECT count(*) FROM t1 WHERE d>FROM_DAYS(TO_DAYS(@TMP)) AND d<=FROM_DAYS(TO_DAYS(@TMP)+1);
+DROP TABLE t1;
+
explain extended select timestampdiff(SQL_TSI_WEEK, '2001-02-01', '2001-05-01') as a1,
timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:58:58.119999') as a2;
diff --git a/mysql-test/t/gis-rtree.test b/mysql-test/t/gis-rtree.test
index 08ba8329b48..629a07a4913 100644
--- a/mysql-test/t/gis-rtree.test
+++ b/mysql-test/t/gis-rtree.test
@@ -67,3 +67,39 @@ while ($1)
}
DROP TABLE t2;
+
+drop table if exists t1;
+CREATE TABLE t1 (a geometry NOT NULL, SPATIAL (a));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
+check table t1;
+analyze table t1;
+drop table t1;
+
diff --git a/mysql-test/t/gis.test b/mysql-test/t/gis.test
index c8f50e968ab..ea460d5f7b0 100644
--- a/mysql-test/t/gis.test
+++ b/mysql-test/t/gis.test
@@ -3,154 +3,155 @@
#
--disable_warnings
-DROP TABLE IF EXISTS pt, ls, p, mpt, mls, mp, gc, geo;
+DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
--enable_warnings
-CREATE TABLE pt (fid INTEGER NOT NULL PRIMARY KEY, g POINT);
-CREATE TABLE ls (fid INTEGER NOT NULL PRIMARY KEY, g LINESTRING);
-CREATE TABLE p (fid INTEGER NOT NULL PRIMARY KEY, g POLYGON);
-CREATE TABLE mpt (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOINT);
-CREATE TABLE mls (fid INTEGER NOT NULL PRIMARY KEY, g MULTILINESTRING);
-CREATE TABLE mp (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOLYGON);
-CREATE TABLE gc (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRYCOLLECTION);
-CREATE TABLE geo (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRY);
-
-SHOW FIELDS FROM pt;
-SHOW FIELDS FROM ls;
-SHOW FIELDS FROM p;
-SHOW FIELDS FROM mpt;
-SHOW FIELDS FROM mls;
-SHOW FIELDS FROM mp;
-SHOW FIELDS FROM gc;
-SHOW FIELDS FROM geo;
-
-
-INSERT INTO pt VALUES
+CREATE TABLE gis_point (fid INTEGER NOT NULL PRIMARY KEY, g POINT);
+CREATE TABLE gis_line (fid INTEGER NOT NULL PRIMARY KEY, g LINESTRING);
+CREATE TABLE gis_polygon (fid INTEGER NOT NULL PRIMARY KEY, g POLYGON);
+CREATE TABLE gis_multi_point (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOINT);
+CREATE TABLE gis_multi_line (fid INTEGER NOT NULL PRIMARY KEY, g MULTILINESTRING);
+CREATE TABLE gis_multi_polygon (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOLYGON);
+CREATE TABLE gis_geometrycollection (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRYCOLLECTION);
+CREATE TABLE gis_geometry (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRY);
+
+SHOW FIELDS FROM gis_point;
+SHOW FIELDS FROM gis_line;
+SHOW FIELDS FROM gis_polygon;
+SHOW FIELDS FROM gis_multi_point;
+SHOW FIELDS FROM gis_multi_line;
+SHOW FIELDS FROM gis_multi_polygon;
+SHOW FIELDS FROM gis_geometrycollection;
+SHOW FIELDS FROM gis_geometry;
+
+
+INSERT INTO gis_point VALUES
(101, PointFromText('POINT(10 10)')),
(102, PointFromText('POINT(20 10)')),
(103, PointFromText('POINT(20 20)')),
(104, PointFromWKB(AsWKB(PointFromText('POINT(10 20)'))));
-INSERT INTO ls VALUES
+INSERT INTO gis_line VALUES
(105, LineFromText('LINESTRING(0 0,0 10,10 0)')),
(106, LineStringFromText('LINESTRING(10 10,20 10,20 20,10 20,10 10)')),
(107, LineStringFromWKB(LineString(Point(10, 10), Point(40, 10))));
-INSERT INTO p VALUES
+INSERT INTO gis_polygon VALUES
(108, PolygonFromText('POLYGON((10 10,20 10,20 20,10 20,10 10))')),
(109, PolyFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')),
(110, PolyFromWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0)))));
-INSERT INTO mpt VALUES
+INSERT INTO gis_multi_point VALUES
(111, MultiPointFromText('MULTIPOINT(0 0,10 10,10 20,20 20)')),
(112, MPointFromText('MULTIPOINT(1 1,11 11,11 21,21 21)')),
(113, MPointFromWKB(MultiPoint(Point(3, 6), Point(4, 10))));
-INSERT INTO mls VALUES
+INSERT INTO gis_multi_line VALUES
(114, MultiLineStringFromText('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))')),
(115, MLineFromText('MULTILINESTRING((10 48,10 21,10 0))')),
(116, MLineFromWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7)))));
-INSERT INTO mp VALUES
+INSERT INTO gis_multi_polygon VALUES
(117, MultiPolygonFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
(118, MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
(119, MPolyFromWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3))))));
-INSERT INTO gc VALUES
+INSERT INTO gis_geometrycollection VALUES
(120, GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')),
(121, GeometryFromWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9)))));
-INSERT into geo SELECT * FROM pt;
-INSERT into geo SELECT * FROM ls;
-INSERT into geo SELECT * FROM p;
-INSERT into geo SELECT * FROM mpt;
-INSERT into geo SELECT * FROM mls;
-INSERT into geo SELECT * FROM mp;
-INSERT into geo SELECT * FROM gc;
-
-SELECT fid, AsText(g) FROM pt;
-SELECT fid, AsText(g) FROM ls;
-SELECT fid, AsText(g) FROM p;
-SELECT fid, AsText(g) FROM mpt;
-SELECT fid, AsText(g) FROM mls;
-SELECT fid, AsText(g) FROM mp;
-SELECT fid, AsText(g) FROM gc;
-SELECT fid, AsText(g) FROM geo;
-
-SELECT fid, Dimension(g) FROM geo;
-SELECT fid, GeometryType(g) FROM geo;
-SELECT fid, IsEmpty(g) FROM geo;
-SELECT fid, AsText(Envelope(g)) FROM geo;
-explain extended select Dimension(g), GeometryType(g), IsEmpty(g), AsText(Envelope(g)) from geo;
-
-SELECT fid, X(g) FROM pt;
-SELECT fid, Y(g) FROM pt;
-explain extended select X(g),Y(g) FROM pt;
-
-SELECT fid, AsText(StartPoint(g)) FROM ls;
-SELECT fid, AsText(EndPoint(g)) FROM ls;
-SELECT fid, GLength(g) FROM ls;
-SELECT fid, NumPoints(g) FROM ls;
-SELECT fid, AsText(PointN(g, 2)) FROM ls;
-SELECT fid, IsClosed(g) FROM ls;
-explain extended select AsText(StartPoint(g)),AsText(EndPoint(g)),GLength(g),NumPoints(g),AsText(PointN(g, 2)),IsClosed(g) FROM ls;
-
-SELECT fid, AsText(Centroid(g)) FROM p;
-SELECT fid, Area(g) FROM p;
-SELECT fid, AsText(ExteriorRing(g)) FROM p;
-SELECT fid, NumInteriorRings(g) FROM p;
-SELECT fid, AsText(InteriorRingN(g, 1)) FROM p;
-explain extended select AsText(Centroid(g)),Area(g),AsText(ExteriorRing(g)),NumInteriorRings(g),AsText(InteriorRingN(g, 1)) FROM p;
-
-SELECT fid, IsClosed(g) FROM mls;
-
-SELECT fid, AsText(Centroid(g)) FROM mp;
-SELECT fid, Area(g) FROM mp;
-
-SELECT fid, NumGeometries(g) from mpt;
-SELECT fid, NumGeometries(g) from mls;
-SELECT fid, NumGeometries(g) from mp;
-SELECT fid, NumGeometries(g) from gc;
-explain extended SELECT fid, NumGeometries(g) from mpt;
-
-SELECT fid, AsText(GeometryN(g, 2)) from mpt;
-SELECT fid, AsText(GeometryN(g, 2)) from mls;
-SELECT fid, AsText(GeometryN(g, 2)) from mp;
-SELECT fid, AsText(GeometryN(g, 2)) from gc;
-explain extended SELECT fid, AsText(GeometryN(g, 2)) from mpt;
+INSERT into gis_geometry SELECT * FROM gis_point;
+INSERT into gis_geometry SELECT * FROM gis_line;
+INSERT into gis_geometry SELECT * FROM gis_polygon;
+INSERT into gis_geometry SELECT * FROM gis_multi_point;
+INSERT into gis_geometry SELECT * FROM gis_multi_line;
+INSERT into gis_geometry SELECT * FROM gis_multi_polygon;
+INSERT into gis_geometry SELECT * FROM gis_geometrycollection;
+
+SELECT fid, AsText(g) FROM gis_point;
+SELECT fid, AsText(g) FROM gis_line;
+SELECT fid, AsText(g) FROM gis_polygon;
+SELECT fid, AsText(g) FROM gis_multi_point;
+SELECT fid, AsText(g) FROM gis_multi_line;
+SELECT fid, AsText(g) FROM gis_multi_polygon;
+SELECT fid, AsText(g) FROM gis_geometrycollection;
+SELECT fid, AsText(g) FROM gis_geometry;
+
+SELECT fid, Dimension(g) FROM gis_geometry;
+SELECT fid, GeometryType(g) FROM gis_geometry;
+SELECT fid, IsEmpty(g) FROM gis_geometry;
+SELECT fid, AsText(Envelope(g)) FROM gis_geometry;
+explain extended select Dimension(g), GeometryType(g), IsEmpty(g), AsText(Envelope(g)) from gis_geometry;
+
+SELECT fid, X(g) FROM gis_point;
+SELECT fid, Y(g) FROM gis_point;
+explain extended select X(g),Y(g) FROM gis_point;
+
+SELECT fid, AsText(StartPoint(g)) FROM gis_line;
+SELECT fid, AsText(EndPoint(g)) FROM gis_line;
+SELECT fid, GLength(g) FROM gis_line;
+SELECT fid, NumPoints(g) FROM gis_line;
+SELECT fid, AsText(PointN(g, 2)) FROM gis_line;
+SELECT fid, IsClosed(g) FROM gis_line;
+explain extended select AsText(StartPoint(g)),AsText(EndPoint(g)),GLength(g),NumPoints(g),AsText(PointN(g, 2)),IsClosed(g) FROM gis_line;
+
+SELECT fid, AsText(Centroid(g)) FROM gis_polygon;
+SELECT fid, Area(g) FROM gis_polygon;
+SELECT fid, AsText(ExteriorRing(g)) FROM gis_polygon;
+SELECT fid, NumInteriorRings(g) FROM gis_polygon;
+SELECT fid, AsText(InteriorRingN(g, 1)) FROM gis_polygon;
+explain extended select AsText(Centroid(g)),Area(g),AsText(ExteriorRing(g)),NumInteriorRings(g),AsText(InteriorRingN(g, 1)) FROM gis_polygon;
+
+SELECT fid, IsClosed(g) FROM gis_multi_line;
+
+SELECT fid, AsText(Centroid(g)) FROM gis_multi_polygon;
+SELECT fid, Area(g) FROM gis_multi_polygon;
+
+SELECT fid, NumGeometries(g) from gis_multi_point;
+SELECT fid, NumGeometries(g) from gis_multi_line;
+SELECT fid, NumGeometries(g) from gis_multi_polygon;
+SELECT fid, NumGeometries(g) from gis_geometrycollection;
+explain extended SELECT fid, NumGeometries(g) from gis_multi_point;
+
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point;
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_line;
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_polygon;
+SELECT fid, AsText(GeometryN(g, 2)) from gis_geometrycollection;
+SELECT fid, AsText(GeometryN(g, 1)) from gis_geometrycollection;
+explain extended SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point;
SELECT g1.fid as first, g2.fid as second,
Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
-FROM gc g1, gc g2 ORDER BY first, second;
+FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
explain extended SELECT g1.fid as first, g2.fid as second,
Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
-FROM gc g1, gc g2 ORDER BY first, second;
+FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
-DROP TABLE pt, ls, p, mpt, mls, mp, gc, geo;
+DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
#
# Check that ALTER TABLE doesn't loose geometry type
#
-CREATE TABLE g1 (
- pt point,
+CREATE TABLE t1 (
+ gp point,
ln linestring,
pg polygon,
- mpt multipoint,
+ mp multipoint,
mln multilinestring,
mpg multipolygon,
gc geometrycollection,
gm geometry
);
-SHOW FIELDS FROM g1;
-ALTER TABLE g1 ADD fid INT NOT NULL;
-SHOW FIELDS FROM g1;
-DROP TABLE g1;
+SHOW FIELDS FROM t1;
+ALTER TABLE t1 ADD fid INT NOT NULL;
+SHOW FIELDS FROM t1;
+DROP TABLE t1;
SELECT AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)'))));
explain extended SELECT AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)'))));
@@ -159,3 +160,13 @@ SELECT SRID(GeomFromText('LineString(1 1,2 2)',101));
explain extended SELECT SRID(GeomFromText('LineString(1 1,2 2)',101));
#select issimple(MultiPoint(Point(3, 6), Point(4, 10))), issimple(Point(3, 6)),issimple(PolygonFromText('POLYGON((10 10,20 10,20 20,10 20,10 10))')),issimple(GeometryFromText('POINT(1 4)')), issimple(AsWKB(GeometryFromText('POINT(1 4)')));
explain extended select issimple(MultiPoint(Point(3, 6), Point(4, 10))), issimple(Point(3, 6));
+
+create table t1 (a geometry not null);
+insert into t1 values (GeomFromText('Point(1 2)'));
+-- error 1105
+insert into t1 values ('Garbage');
+-- error 1105
+insert IGNORE into t1 values ('Garbage');
+alter table t1 add spatial index(a);
+
+drop table t1;
diff --git a/mysql-test/t/grant.test b/mysql-test/t/grant.test
index 78221fa4e40..326759cb9ca 100644
--- a/mysql-test/t/grant.test
+++ b/mysql-test/t/grant.test
@@ -100,28 +100,49 @@ select 1; -- To test that the previous command didn't cause problems
create table t1 (a int);
grant ALL PRIVILEGES on *.* to drop_user2@localhost with GRANT OPTION;
show grants for drop_user2@localhost;
-revoke all privileges, grant from drop_user2@localhost;
+revoke all privileges, grant option from drop_user2@localhost;
drop user drop_user2@localhost;
grant ALL PRIVILEGES on *.* to drop_user@localhost with GRANT OPTION;
grant ALL PRIVILEGES on test.* to drop_user@localhost with GRANT OPTION;
grant select(a) on test.t1 to drop_user@localhost;
show grants for drop_user@localhost;
-revoke all privileges, grant from drop_user@localhost;
+
+#
+# Bug3086
+#
+set sql_mode=ansi_quotes;
+show grants for drop_user@localhost;
+set sql_mode=default;
+
+set sql_quote_show_create=0;
+show grants for drop_user@localhost;
+set sql_mode="ansi_quotes";
+show grants for drop_user@localhost;
+set sql_quote_show_create=1;
+show grants for drop_user@localhost;
+set sql_mode="";
+show grants for drop_user@localhost;
+
+revoke all privileges, grant option from drop_user@localhost;
show grants for drop_user@localhost;
drop user drop_user@localhost;
---error 1268
-revoke all privileges, grant from drop_user@localhost;
+--error 1269
+revoke all privileges, grant option from drop_user@localhost;
grant select(a) on test.t1 to drop_user1@localhost;
grant select on test.t1 to drop_user2@localhost;
grant select on test.* to drop_user3@localhost;
grant select on *.* to drop_user4@localhost;
---error 1267
+--error 1268
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
drop_user4@localhost;
-revoke all privileges, grant from drop_user1@localhost, drop_user2@localhost,
+revoke all privileges, grant option from drop_user1@localhost, drop_user2@localhost,
drop_user3@localhost, drop_user4@localhost;
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
drop_user4@localhost;
drop table t1;
+grant usage on *.* to mysqltest_1@localhost identified by "password";
+grant select, update, insert on test.* to mysqltest@localhost;
+show grants for mysqltest_1@localhost;
+drop user mysqltest_1@localhost;
diff --git a/mysql-test/t/grant2.test b/mysql-test/t/grant2.test
index 148c4d3da21..1fc1ed78385 100644
--- a/mysql-test/t/grant2.test
+++ b/mysql-test/t/grant2.test
@@ -15,6 +15,7 @@ grant all privileges on `my\_%`.* to mysqltest_1@localhost with grant option;
connect (user1,localhost,mysqltest_1,,);
connection user1;
select current_user();
+select current_user;
grant all privileges on `my\_1`.* to mysqltest_2@localhost with grant option;
--error 1044
grant all privileges on `my_%`.* to mysqltest_3@localhost with grant option;
diff --git a/mysql-test/t/grant_cache.test b/mysql-test/t/grant_cache.test
index 9ba845d6baa..7806253124e 100644
--- a/mysql-test/t/grant_cache.test
+++ b/mysql-test/t/grant_cache.test
@@ -12,6 +12,8 @@ reset query cache;
flush status;
connect (root,localhost,root,,test,$MASTER_MYPORT,master.sock);
connection root;
+show grants for current_user;
+show grants;
--disable_warnings
create database if not exists mysqltest;
--enable_warnings
@@ -43,15 +45,32 @@ grant SELECT(a) on mysqltest.t1 to mysqltest_3@localhost;
# The following queries should be fetched from cache
connect (user1,localhost,mysqltest_1,,mysqltest,$MASTER_MYPORT,master.sock);
connection user1;
+show grants for current_user();
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_hits";
+show status like "Qcache_not_cached";
select "user1";
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_hits";
+show status like "Qcache_not_cached";
select * from t1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_hits";
+show status like "Qcache_not_cached";
# The pre and end space are intentional
select a from t1 ;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_hits";
+show status like "Qcache_not_cached";
select c from t1;
show status like "Qcache_queries_in_cache";
show status like "Qcache_hits";
show status like "Qcache_not_cached";
+connect (unkuser,localhost,,,,$MASTER_MYPORT,master.sock);
+connection unkuser;
+show grants for current_user();
+
# The following queries should be fetched from cache
connect (user2,localhost,mysqltest_2,,mysqltest,$MASTER_MYPORT,master.sock);
connection user2;
@@ -92,6 +111,7 @@ show status like "Qcache_not_cached";
connect (user4,localhost,mysqltest_1,,*NO-ONE*,$MASTER_MYPORT,master.sock);
connection user4;
select "user4";
+show grants;
--error 1046
select a from t1;
# The following query is not cached before (different database)
diff --git a/mysql-test/t/handler.test b/mysql-test/t/handler.test
index d734882591a..72b6624509e 100644
--- a/mysql-test/t/handler.test
+++ b/mysql-test/t/handler.test
@@ -110,3 +110,19 @@ handler t1 read a=(W);
--error 1210
handler t1 read a=(a);
drop table t1;
+#
+# BUG#2304
+#
+create table t1 (a char(5));
+insert into t1 values ("Ok");
+handler t1 open as t;
+handler t read first;
+use mysql;
+handler t read first;
+handler t close;
+handler test.t1 open as t;
+handler t read first;
+handler t close;
+use test;
+drop table t1;
+
diff --git a/mysql-test/t/heap_btree.test b/mysql-test/t/heap_btree.test
index a520065a8b3..d156d059634 100644
--- a/mysql-test/t/heap_btree.test
+++ b/mysql-test/t/heap_btree.test
@@ -110,7 +110,14 @@ drop table t1;
create table t1 (btn char(10) not null, key using BTREE (btn)) engine=heap;
insert into t1 values ("hello"),("hello"),("hello"),("hello"),("hello"),("a"),("b"),("c"),("d"),("e"),("f"),("g"),("h"),("i");
-explain select * from t1 where btn like "q%";
+explain select * from t1 where btn like "i%";
+--replace_column 9 #
+explain select * from t1 where btn like "h%";
+explain select * from t1 where btn like "a%";
+explain select * from t1 where btn like "b%";
+# For the following the BTREE MAY notice that there is no possible matches
+select * from t1 where btn like "ff%";
+select * from t1 where btn like " %";
select * from t1 where btn like "q%";
alter table t1 add column new_col char(1) not null, add key using BTREE (btn,new_col), drop key btn;
update t1 set new_col=left(btn,1);
diff --git a/mysql-test/t/init_file-master.opt b/mysql-test/t/init_file-master.opt
new file mode 100644
index 00000000000..825311dabf2
--- /dev/null
+++ b/mysql-test/t/init_file-master.opt
@@ -0,0 +1 @@
+--init-file=$MYSQL_TEST_DIR/std_data/init_file.dat
diff --git a/mysql-test/t/init_file.test b/mysql-test/t/init_file.test
new file mode 100644
index 00000000000..604d0a01794
--- /dev/null
+++ b/mysql-test/t/init_file.test
@@ -0,0 +1,7 @@
+#
+# This is a regression test for bug #2526 "--init-file crashes MySQL if it
+# contains a large select"
+#
+# See mysql-test/std_data/init_file.dat and
+# mysql-test/t/init_file-master.opt for the actual test
+#
diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test
index b227614e7ae..e20be83b4b6 100644
--- a/mysql-test/t/innodb.test
+++ b/mysql-test/t/innodb.test
@@ -753,8 +753,7 @@ insert into t2 set id=1, t1_id=1;
delete t1,t2 from t1,t2 where t1.id=t2.t1_id;
select * from t1;
select * from t2;
-drop table t1,t2;
-DROP TABLE IF EXISTS t1,t2;
+drop table t2,t1;
CREATE TABLE t1(id INT NOT NULL, PRIMARY KEY (id)) ENGINE=INNODB;
CREATE TABLE t2(id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id) ) ENGINE=INNODB;
INSERT INTO t1 VALUES(1);
@@ -934,6 +933,33 @@ SELECT * from t1;
drop table t1;
#
+# Test dictionary handling with spaceand quoting
+#
+
+CREATE TABLE t1 (`id 1` INT NOT NULL, PRIMARY KEY (`id 1`)) ENGINE=INNODB;
+CREATE TABLE t2 (id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id), FOREIGN KEY (`t1_id`) REFERENCES `t1`(`id 1`) ON DELETE CASCADE ) ENGINE=INNODB;
+#show create table t2;
+drop table t2,t1;
+
+#
+# Test of multi updated and foreign keys
+#
+
+create table `t1` (`id` int( 11 ) not null ,primary key ( `id` )) engine = innodb;
+insert into `t1`values ( 1 ) ;
+create table `t2` (`id` int( 11 ) not null default '0',unique key `id` ( `id` ) ,constraint `t1_id_fk` foreign key ( `id` ) references `t1` (`id` )) engine = innodb;
+insert into `t2`values ( 1 ) ;
+create table `t3` (`id` int( 11 ) not null default '0',key `id` ( `id` ) ,constraint `t2_id_fk` foreign key ( `id` ) references `t2` (`id` )) engine = innodb;
+insert into `t3`values ( 1 ) ;
+--error 1217
+delete t3,t2,t1 from t1,t2,t3 where t1.id =1 and t2.id = t1.id and t3.id = t2.id;
+--error 1217
+update t1,t2,t3 set t3.id=5, t2.id=6, t1.id=7 where t1.id =1 and t2.id = t1.id and t3.id = t2.id;
+--error 1109
+update t3 set t3.id=7 where t1.id =1 and t2.id = t1.id and t3.id = t2.id;
+drop table t3,t2,t1;
+
+#
# Test timestamps
#
@@ -1003,3 +1029,18 @@ checksum table t1, t2, t3, t4 extended;
#show table status;
drop table t1,t2,t3;
+#
+# Test problem with refering to different fields in same table in UNION
+# (Bug #2552)
+#
+create table t1 (id int, name char(10) not null, name2 char(10) not null) engine=innodb;
+insert into t1 values(1,'first','fff'),(2,'second','sss'),(3,'third','ttt');
+select name2 from t1 union all select name from t1 union all select id from t1;
+drop table t1;
+
+#
+# Bug2160
+#
+create table t1 (a int) engine=innodb;
+create table t2 like t1;
+drop table t1,t2;
diff --git a/mysql-test/t/insert.test b/mysql-test/t/insert.test
index b9b3a9192e6..dc47b3ba990 100644
--- a/mysql-test/t/insert.test
+++ b/mysql-test/t/insert.test
@@ -87,6 +87,58 @@ use mysqltest;
create table t1 (c int);
insert into mysqltest.t1 set mysqltest.t1.c = '1';
drop database mysqltest;
+
+#
+# Test of wrong values for float data (bug #2082)
+#
+
+use test;
+create table t1(number int auto_increment primary key, original_value varchar(50), f_double double, f_float float, f_double_7_2 double(7,2), f_float_4_3 float (4,3), f_double_u double unsigned, f_float_u float unsigned, f_double_15_1_u double(15,1) unsigned, f_float_3_1_u float (3,1) unsigned);
+
+set @value= "aa";
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+--query_vertical select * from t1 where number =last_insert_id()
+
+set @value= "1aa";
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+--query_vertical select * from t1 where number =last_insert_id()
+
+set @value= "aa1";
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+--query_vertical select * from t1 where number =last_insert_id()
+
+set @value= "1e+1111111111a";
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+--query_vertical select * from t1 where number =last_insert_id()
+
+set @value= "-1e+1111111111a";
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+--query_vertical select * from t1 where number =last_insert_id()
+
+set @value= 1e+1111111111;
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+--query_vertical select * from t1 where number =last_insert_id()
+
+set @value= -1e+1111111111;
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+--query_vertical select * from t1 where number =last_insert_id()
+
+set @value= 1e+111;
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+--query_vertical select * from t1 where number =last_insert_id()
+
+set @value= -1e+111;
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+--query_vertical select * from t1 where number =last_insert_id()
+
+set @value= 1;
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+--query_vertical select * from t1 where number =last_insert_id()
+
+set @value= -1;
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+--query_vertical select * from t1 where number =last_insert_id()
+
use test;
--disable_warnings
drop table if exists t1,t2,t3;
diff --git a/mysql-test/t/insert_select.test b/mysql-test/t/insert_select.test
index e39e470cf31..234a5ec0eef 100644
--- a/mysql-test/t/insert_select.test
+++ b/mysql-test/t/insert_select.test
@@ -135,3 +135,34 @@ CREATE TABLE t2 ( USID INTEGER UNSIGNED AUTO_INCREMENT, ServerID TINYINT UNSIGNE
INSERT INTO t1 VALUES (39,42,'Access-Granted','46','491721000045',2130706433,17690,NULL,NULL,'Localnet','491721000045','49172200000',754974766,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2003-07-18 00:11:21',NULL,NULL,20030718001121);
INSERT INTO t2 SELECT USID, ServerID, State, SessionID, User, NASAddr, NASPort, NASPortType, ConnectSpeed, CarrierType, CallingStationID, CalledStationID, AssignedAddr, SessionTime, PacketsIn, OctetsIn, PacketsOut, OctetsOut, TerminateCause, UnauthTime, AccessRequestTime, AcctStartTime, AcctLastTime, LastModification from t1 LIMIT 1;
drop table t1,t2;
+
+#
+# Another problem from Bug #2012
+#
+
+CREATE TABLE t1(
+ Month date NOT NULL,
+ Type tinyint(3) unsigned NOT NULL auto_increment,
+ Field int(10) unsigned NOT NULL,
+ Count int(10) unsigned NOT NULL,
+ UNIQUE KEY Month (Month,Type,Field)
+);
+
+insert into t1 Values
+(20030901, 1, 1, 100),
+(20030901, 1, 2, 100),
+(20030901, 2, 1, 100),
+(20030901, 2, 2, 100),
+(20030901, 3, 1, 100);
+
+select * from t1;
+
+Select null, Field, Count From t1 Where Month=20030901 and Type=2;
+
+create table t2(No int not null, Field int not null, Count int not null);
+
+insert into t2 Select null, Field, Count From t1 Where Month=20030901 and Type=2;
+
+select * from t2;
+
+drop table t1, t2;
diff --git a/mysql-test/t/insert_update.test b/mysql-test/t/insert_update.test
index 550bce867cd..d2a70208022 100644
--- a/mysql-test/t/insert_update.test
+++ b/mysql-test/t/insert_update.test
@@ -26,3 +26,25 @@ SELECT *, VALUES(a) FROM t1;
explain extended SELECT *, VALUES(a) FROM t1;
explain extended select * from t1 where values(a);
DROP TABLE t1;
+
+#
+# test for Bug #2709 "Affected Rows for ON DUPL.KEY undocumented,
+# perhaps illogical"
+#
+create table t1(a int primary key, b int);
+insert into t1 values(1,1),(2,2),(3,3),(4,4),(5,5);
+select * from t1;
+
+enable_info;
+insert into t1 values(4,14),(5,15),(6,16),(7,17),(8,18)
+ on duplicate key update b=b+10;
+disable_info;
+
+select * from t1;
+
+enable_info;
+replace into t1 values(5,25),(6,26),(7,27),(8,28),(9,29);
+disable_info;
+
+select * from t1;
+drop table t1;
diff --git a/mysql-test/t/key.test b/mysql-test/t/key.test
index 109cbb91e2f..cdaf6062771 100644
--- a/mysql-test/t/key.test
+++ b/mysql-test/t/key.test
@@ -191,3 +191,16 @@ SELECT * FROM t1;
INSERT INTO t1 (c) VALUES ('a'),('a');
SELECT * FROM t1;
drop table t1;
+
+#
+# longer keys
+#
+create table t1 (i int, a char(200), b text, unique (a), unique (b(300))) charset utf8;
+insert t1 values (1, repeat('a',210), repeat('b', 310));
+insert t1 values (2, repeat(0xD0B1,215), repeat(0xD0B1, 310));
+select i, length(a), length(b), char_length(a), char_length(b) from t1;
+select i from t1 where a=repeat(_utf8 'a',200);
+select i from t1 where a=repeat(_utf8 0xD0B1,200);
+select i from t1 where b=repeat(_utf8 'b',310);
+drop table t1;
+
diff --git a/mysql-test/t/key_cache.test b/mysql-test/t/key_cache.test
index d9a2200a636..2bf5cdbcf6f 100644
--- a/mysql-test/t/key_cache.test
+++ b/mysql-test/t/key_cache.test
@@ -41,7 +41,7 @@ SET @@global.key_buffer_size=@save_key_buffer;
--error 1064
SELECT @@default.key_buffer_size;
---error 1271
+--error 1272
SELECT @@skr.storage_engine="test";
select @@keycache1.key_cache_block_size;
@@ -99,7 +99,7 @@ explain select a from t2;
select a from t2;
# Test some error conditions
---error 1283
+--error 1284
cache index t1 in unknown_key_cache;
cache index t1 key (unknown_key) in keycache1;
diff --git a/mysql-test/t/lock.test b/mysql-test/t/lock.test
index 69c453bf60a..26fc4e32bda 100644
--- a/mysql-test/t/lock.test
+++ b/mysql-test/t/lock.test
@@ -53,5 +53,9 @@ check table t1;
# Check error message
lock tables t1 write;
check table t2;
+--error 1100
+insert into t1 select nr from t1;
unlock tables;
+lock tables t1 write, t1 as t1_alias read;
+insert into t1 select index1,nr from t1 as t1_alias;
drop table t1,t2;
diff --git a/mysql-test/t/lock_tables_lost_commit.test b/mysql-test/t/lock_tables_lost_commit.test
index 22b666cbc86..8c1ad97c0cc 100644
--- a/mysql-test/t/lock_tables_lost_commit.test
+++ b/mysql-test/t/lock_tables_lost_commit.test
@@ -1,5 +1,7 @@
# This is a test for bug 578
+-- source include/have_innodb.inc
+
connect (con1,localhost,root,,);
connect (con2,localhost,root,,);
diff --git a/mysql-test/t/lowercase_table.test b/mysql-test/t/lowercase_table.test
index 601f1734ac6..db46f3d432d 100644
--- a/mysql-test/t/lowercase_table.test
+++ b/mysql-test/t/lowercase_table.test
@@ -3,7 +3,7 @@
#
--disable_warnings
-drop table if exists t1,t2,t3,t4,T1;
+drop table if exists t1,t2,t3,t4;
--enable_warnings
create table T1 (id int primary key, Word varchar(40) not null, Index(Word));
@@ -30,3 +30,27 @@ select count(*) from t1;
select count(T1.a) from t1;
select count(bags.a) from t1 as Bags;
drop table t1;
+
+#
+# multiupdate/delete & --lower-case-table-names
+#
+create table t1 (a int);
+create table t2 (a int);
+delete p1.*,P2.* from t1 as p1, t2 as p2 where p1.a=P2.a;
+delete P1.*,p2.* from t1 as P1, t2 as P2 where P1.a=p2.a;
+update t1 as p1, t2 as p2 SET p1.a=1,P2.a=1 where p1.a=P2.a;
+update t1 as P1, t2 as P2 SET P1.a=1,p2.a=1 where P1.a=p2.a;
+drop table t1,t2;
+
+#
+# aliases case insensitive
+#
+create table t1 (a int);
+create table t2 (a int);
+-- error 1066
+select * from t1 c, t2 C;
+-- error 1066
+select C.a, c.a from t1 c, t2 C;
+drop table t1, t2;
+
+show tables;
diff --git a/mysql-test/t/lowercase_table2.test b/mysql-test/t/lowercase_table2.test
new file mode 100644
index 00000000000..8f542a7af78
--- /dev/null
+++ b/mysql-test/t/lowercase_table2.test
@@ -0,0 +1,91 @@
+#
+# Test of --lower-case-table-names=2
+# (User has case insensitive file system and want's to preserve case of
+# table names)
+#
+--source include/have_innodb.inc
+--require r/lowercase2.require
+disable_query_log;
+show variables like "lower_case_table_names";
+enable_query_log;
+
+--disable_warnings
+DROP TABLE IF EXISTS t1,t2,T1,T2,t3,T3;
+DROP DATABASE IF EXISTS `TEST_$1`;
+DROP DATABASE IF EXISTS `test_$1`;
+--enable_warnings
+
+CREATE TABLE T1 (a int);
+INSERT INTO T1 VALUES (1);
+SHOW TABLES LIKE "T1";
+SHOW TABLES LIKE "t1";
+SHOW CREATE TABLE T1;
+RENAME TABLE T1 TO T2;
+SHOW TABLES LIKE "T2";
+SELECT * FROM t2;
+RENAME TABLE T2 TO t3;
+SHOW TABLES LIKE "T3";
+RENAME TABLE T3 TO T1;
+SHOW TABLES LIKE "T1";
+ALTER TABLE T1 add b int;
+SHOW TABLES LIKE "T1";
+ALTER TABLE T1 RENAME T2;
+SHOW TABLES LIKE "T2";
+
+LOCK TABLE T2 WRITE;
+ALTER TABLE T2 drop b;
+SHOW TABLES LIKE "T2";
+UNLOCK TABLES;
+RENAME TABLE T2 TO T1;
+SHOW TABLES LIKE "T1";
+SELECT * from T1;
+DROP TABLE T1;
+
+#
+# Test database level
+#
+
+CREATE DATABASE `TEST_$1`;
+SHOW DATABASES LIKE "TEST%";
+DROP DATABASE `test_$1`;
+
+#
+# Test of innodb tables with lower_case_table_names=2
+#
+
+CREATE TABLE T1 (a int) engine=innodb;
+INSERT INTO T1 VALUES (1);
+SHOW TABLES LIKE "T1";
+SHOW TABLES LIKE "t1";
+SHOW CREATE TABLE T1;
+RENAME TABLE T1 TO T2;
+SHOW TABLES LIKE "T2";
+SELECT * FROM t2;
+RENAME TABLE T2 TO t3;
+SHOW TABLES LIKE "T3";
+RENAME TABLE T3 TO T1;
+SHOW TABLES LIKE "T1";
+ALTER TABLE T1 add b int;
+SHOW TABLES LIKE "T1";
+ALTER TABLE T1 RENAME T2;
+SHOW TABLES LIKE "T2";
+
+LOCK TABLE T2 WRITE;
+ALTER TABLE T2 drop b;
+SHOW TABLES LIKE "T2";
+UNLOCK TABLES;
+RENAME TABLE T2 TO T1;
+SHOW TABLES LIKE "T1";
+SELECT * from T1;
+DROP TABLE T1;
+
+#
+# Test problem with temporary tables (Bug #2858)
+#
+
+create table T1 (EVENT_ID int auto_increment primary key, LOCATION char(20));
+insert into T1 values (NULL,"Mic-4"),(NULL,"Mic-5"),(NULL,"Mic-6");
+SELECT LOCATION FROM T1 WHERE EVENT_ID=2 UNION ALL SELECT LOCATION FROM T1 WHERE EVENT_ID=3;
+SELECT LOCATION FROM T1 WHERE EVENT_ID=2 UNION ALL SELECT LOCATION FROM T1 WHERE EVENT_ID=3;
+SELECT LOCATION FROM T1 WHERE EVENT_ID=2 UNION ALL SELECT LOCATION FROM T1 WHERE EVENT_ID=3;
+drop table T1;
diff --git a/mysql-test/t/lowercase_table3-master.opt b/mysql-test/t/lowercase_table3-master.opt
new file mode 100644
index 00000000000..9b27aef9bf8
--- /dev/null
+++ b/mysql-test/t/lowercase_table3-master.opt
@@ -0,0 +1 @@
+--lower_case_table_names=0
diff --git a/mysql-test/t/lowercase_table3.test b/mysql-test/t/lowercase_table3.test
new file mode 100644
index 00000000000..735a0b390f9
--- /dev/null
+++ b/mysql-test/t/lowercase_table3.test
@@ -0,0 +1,37 @@
+#
+# Test of force of lower-case-table-names=0
+# (User has case insensitive file system and want's to preserve case of
+# table names)
+#
+
+--source include/have_innodb.inc
+--require r/lowercase0.require
+disable_query_log;
+show variables like "lower_case_%";
+--require r/true.require
+select @@version_compile_os NOT IN ("NT","WIN2000","Win95/Win98","XP") as "TRUE";
+enable_query_log;
+
+--disable_warnings
+DROP TABLE IF EXISTS t1,T1;
+--enable_warnings
+
+#
+# This is actually an error, but ok as the user has forced this
+# by using --lower-case-table-names=0
+
+CREATE TABLE t1 (a int);
+SELECT * from T1;
+drop table t1;
+flush tables;
+
+#
+# InnoDB should in this case be case sensitive
+# Note that this is not true on windows as no this OS, InnoDB is always
+# storing things in lower case.
+#
+
+CREATE TABLE t1 (a int) type=INNODB;
+--error 1016
+SELECT * from T1;
+drop table t1;
diff --git a/mysql-test/t/lowercase_table_qcache-master.opt b/mysql-test/t/lowercase_table_qcache-master.opt
new file mode 100644
index 00000000000..c718e2feb1b
--- /dev/null
+++ b/mysql-test/t/lowercase_table_qcache-master.opt
@@ -0,0 +1 @@
+--lower_case_table_names
diff --git a/mysql-test/t/lowercase_table_qcache.test b/mysql-test/t/lowercase_table_qcache.test
new file mode 100644
index 00000000000..7416de25e1d
--- /dev/null
+++ b/mysql-test/t/lowercase_table_qcache.test
@@ -0,0 +1,29 @@
+-- source include/have_query_cache.inc
+#
+# Test of query cache with --lower-case-table-names
+#
+set GLOBAL query_cache_size=1355776;
+
+--disable_warnings
+drop database if exists MySQLtesT;
+--enable_warnings
+
+create database MySQLtesT;
+create table MySQLtesT.t1 (a int);
+select * from MySQLtesT.t1;
+show status like "Qcache_queries_in_cache";
+drop database mysqltest;
+show status like "Qcache_queries_in_cache";
+
+use MySQL;
+disable_result_log;
+select * from db;
+enable_result_log;
+show status like "Qcache_queries_in_cache";
+use test;
+disable_result_log;
+select * from MySQL.db;
+enable_result_log;
+show status like "Qcache_queries_in_cache";
+
+set GLOBAL query_cache_size=0; \ No newline at end of file
diff --git a/mysql-test/t/metadata.test b/mysql-test/t/metadata.test
new file mode 100644
index 00000000000..c426ab9864b
--- /dev/null
+++ b/mysql-test/t/metadata.test
@@ -0,0 +1,35 @@
+#
+# Test metadata
+#
+
+--disable_warnings
+drop table if exists t1,t2;
+--enable_warnings
+--enable_metadata
+
+#
+# First some simple tests
+#
+
+select 1, 1.0, -1, "hello", NULL;
+
+create table t1 (a tinyint, b smallint, c mediumint, d int, e bigint, f float(3,2), g double(4,3), h decimal(5,4), i year, j date, k timestamp, l datetime, m enum('a','b'), n set('a','b'), o char(10));
+select * from t1;
+select a b, b c from t1 as t2;
+drop table t1;
+
+#
+# Test metadata from ORDER BY (Bug #2654)
+#
+
+CREATE TABLE t1 (id tinyint(3) default NULL, data varchar(255) default NULL);
+INSERT INTO t1 VALUES (1,'male'),(2,'female');
+CREATE TABLE t2 (id tinyint(3) unsigned default NULL, data char(3) default '0');
+INSERT INTO t2 VALUES (1,'yes'),(2,'no');
+
+select t1.id, t1.data, t2.data from t1, t2 where t1.id = t2.id;
+select t1.id, t1.data, t2.data from t1, t2 where t1.id = t2.id order by t1.id;
+select t1.id from t1 union select t2.id from t2;
+drop table t1,t2;
+
+--disable_metadata
diff --git a/mysql-test/t/multi_update.test b/mysql-test/t/multi_update.test
index 84b9c816ee5..d0edebe2da3 100644
--- a/mysql-test/t/multi_update.test
+++ b/mysql-test/t/multi_update.test
@@ -310,7 +310,6 @@ delete t1, t2 from t2,t1
drop table t1,t2;
-
#
# Test for bug #1820.
#
@@ -347,6 +346,41 @@ select 't1 rows after big delete', count(*) from t1;
drop table t1,t2;
#
+# Test alias (this is not correct in 4.0)
+#
+
+CREATE TABLE t1 ( a int );
+CREATE TABLE t2 ( a int );
+DELETE t1 FROM t1, t2 AS t3;
+DELETE t4 FROM t1, t1 AS t4;
+DELETE t3 FROM t1 AS t3, t1 AS t4;
+--error 1066
+DELETE t1 FROM t1 AS t3, t2 AS t4;
+INSERT INTO t1 values (1),(2);
+INSERT INTO t2 values (1),(2);
+DELETE t1 FROM t1 AS t2, t2 AS t1 where t1.a=t2.a and t1.a=1;
+SELECT * from t1;
+SELECT * from t2;
+DELETE t2 FROM t1 AS t2, t2 AS t1 where t1.a=t2.a and t1.a=2;
+SELECT * from t1;
+SELECT * from t2;
+DROP TABLE t1,t2;
+
+#
+# Test update with const tables
+#
+
+create table `t1` (`p_id` int(10) unsigned NOT NULL auto_increment, `p_code` varchar(20) NOT NULL default '', `p_active` tinyint(1) unsigned NOT NULL default '1', PRIMARY KEY (`p_id`) );
+create table `t2` (`c2_id` int(10) unsigned NULL auto_increment, `c2_p_id` int(10) unsigned NOT NULL default '0', `c2_note` text NOT NULL, `c2_active` tinyint(1) unsigned NOT NULL default '1', PRIMARY KEY (`c2_id`), KEY `c2_p_id` (`c2_p_id`) );
+insert into t1 values (0,'A01-Comp',1);
+insert into t1 values (0,'B01-Comp',1);
+insert into t2 values (0,1,'A Note',1);
+update t1 left join t2 on p_id = c2_p_id set c2_note = 'asdf-1' where p_id = 2;
+select * from t1;
+select * from t2;
+drop table t1, t2;
+
+#
# Test for bug #1980.
#
set @ttype_save=@@storage_engine;
diff --git a/mysql-test/t/myisam-blob-master.opt b/mysql-test/t/myisam-blob-master.opt
new file mode 100644
index 00000000000..1a1076c7bad
--- /dev/null
+++ b/mysql-test/t/myisam-blob-master.opt
@@ -0,0 +1 @@
+--max-allowed-packet=24M --skip-innodb --key-buffer-size=1M
diff --git a/mysql-test/t/myisam-blob.test b/mysql-test/t/myisam-blob.test
new file mode 100644
index 00000000000..7af8c661c02
--- /dev/null
+++ b/mysql-test/t/myisam-blob.test
@@ -0,0 +1,41 @@
+#
+# Test bugs in the MyISAM code with blobs
+#
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+# Bug #2159 (Problem with update of blob to > 16M)
+
+CREATE TABLE t1 (data LONGBLOB) ENGINE=myisam;
+INSERT INTO t1 (data) VALUES (NULL);
+UPDATE t1 set data=repeat('a',18*1024*1024);
+select length(data) from t1;
+delete from t1 where left(data,1)='a';
+check table t1;
+truncate table t1;
+INSERT INTO t1 (data) VALUES (repeat('a',1*1024*1024));
+INSERT INTO t1 (data) VALUES (repeat('b',16*1024*1024-1024));
+delete from t1 where left(data,1)='b';
+check table t1;
+
+# now we have two blocks in the table, first is a 1M record and second is
+# a 16M delete block.
+
+UPDATE t1 set data=repeat('c',17*1024*1024);
+check table t1;
+delete from t1 where left(data,1)='c';
+check table t1;
+
+INSERT INTO t1 set data=repeat('a',18*1024*1024);
+select length(data) from t1;
+alter table t1 modify data blob;
+select length(data) from t1;
+drop table t1;
+
+CREATE TABLE t1 (data BLOB) ENGINE=myisam;
+INSERT INTO t1 (data) VALUES (NULL);
+UPDATE t1 set data=repeat('a',18*1024*1024);
+select length(data) from t1;
+drop table t1;
diff --git a/mysql-test/t/myisam.test b/mysql-test/t/myisam.test
index 85e5c7a7751..95847ba1af7 100644
--- a/mysql-test/t/myisam.test
+++ b/mysql-test/t/myisam.test
@@ -337,10 +337,10 @@ drop table t1;
#
--error 1071
-CREATE TABLE t1 (a varchar(255), b varchar(255), c varchar(255), KEY t1 (a, b, c));
-CREATE TABLE t1 (a varchar(255), b varchar(255), c varchar(255));
+CREATE TABLE t1 (a varchar(255), b varchar(255), c varchar(255), d varchar(255), e varchar(255), KEY t1 (a, b, c, d, e));
+CREATE TABLE t1 (a varchar(255), b varchar(255), c varchar(255), d varchar(255), e varchar(255));
--error 1071
-ALTER TABLE t1 ADD INDEX t1 (a, b, c);
+ALTER TABLE t1 ADD INDEX t1 (a, b, c, d, e);
DROP TABLE t1;
#
@@ -399,6 +399,69 @@ check table t1;
drop table t1;
#
+# two bugs in myisam-space-stripping feature
+#
+create table t1 ( a text not null, key a (a(20)));
+insert into t1 values ('aaa '),('aaa'),('aa');
+check table t1;
+repair table t1;
+select concat(a,'.') from t1 where a='aaa';
+select concat(a,'.') from t1 where binary a='aaa';
+update t1 set a='bbb' where a='aaa';
+select concat(a,'.') from t1;
+drop table t1;
+
+#
+# Third bug in the same code (BUG#2295)
+#
+
+create table t1(a text not null, b text not null, c text not null, index (a(10),b(10),c(10)));
+insert into t1 values('807780', '477', '165');
+insert into t1 values('807780', '477', '162');
+insert into t1 values('807780', '472', '162');
+select * from t1 where a='807780' and b='477' and c='165';
+drop table t1;
+
+#
+# Verify blob handling
+#
+create table t1 (a blob);
+insert into t1 values('a '),('a');
+select concat(a,'.') from t1 where a='a';
+select concat(a,'.') from t1 where a='a ';
+alter table t1 add key(a(2));
+select concat(a,'.') from t1 where a='a';
+select concat(a,'.') from t1 where a='a ';
+drop table t1;
+
+#
+# Test text and unique
+#
+create table t1 (a int not null auto_increment primary key, b text not null, unique b (b(20)));
+insert into t1 (b) values ('a'),('a '),('a ');
+select concat(b,'.') from t1;
+update t1 set b='b ' where a=2;
+--error 1062
+update t1 set b='b ' where a > 1;
+delete from t1 where b='b';
+select a,concat(b,'.') from t1;
+drop table t1;
+
+#
+# Test keys with 0 segments. (Bug #3203)
+#
+create table t1 (a int not null);
+create table t2 (a int not null, primary key (a));
+insert into t1 values (1);
+insert into t2 values (1),(2);
+select sql_big_result distinct t1.a from t1,t2 order by t2.a;
+select distinct t1.a from t1,t2 order by t2.a;
+select sql_big_result distinct t1.a from t1,t2;
+explain select sql_big_result distinct t1.a from t1,t2 order by t2.a;
+explain select distinct t1.a from t1,t2 order by t2.a;
+drop table t1,t2;
+
+#
# Test RTREE index
#
--error 1235
diff --git a/mysql-test/t/mysqlbinlog.test b/mysql-test/t/mysqlbinlog.test
index 183f62038fe..d15dac8c0bc 100644
--- a/mysql-test/t/mysqlbinlog.test
+++ b/mysql-test/t/mysqlbinlog.test
@@ -64,17 +64,12 @@ select "--- --position --" as "";
# These are tests for remote binlog.
# They should return the same as previous test.
-# But now they are not. V. Vagin should fix this.
-# We test all the same options second time since code for remote case is
-# essentially different. If code for both cases will be unified we'll be
-# able to throw out most of this.
--disable_query_log
select "--- Remote --" as "";
--enable_query_log
# This is broken now
-# By the way it seems that remote version fetches all events with name >= master-bin.000001
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQL_TEST_DIR/var/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001
diff --git a/mysql-test/t/mysqldump.test b/mysql-test/t/mysqldump.test
index dc0d45187b4..28992655bd2 100644
--- a/mysql-test/t/mysqldump.test
+++ b/mysql-test/t/mysqldump.test
@@ -71,3 +71,32 @@ DROP TABLE t1;
create table ```a` (i int);
--exec $MYSQL_DUMP --skip-comments test
drop table ```a`;
+
+#
+# Bug #2591 "mysqldump quotes names inconsistently"
+#
+
+create table t1(a int);
+--exec $MYSQL_DUMP --comments=0 test
+--exec $MYSQL_DUMP --comments=0 --compatible=ansi test
+set global sql_mode='ANSI_QUOTES';
+--exec $MYSQL_DUMP --comments=0 test
+--exec $MYSQL_DUMP --comments=0 --compatible=ansi test
+set global sql_mode='';
+drop table t1;
+
+#
+# Bug #2705 'mysqldump --tab extra output'
+#
+
+create table t1(a int);
+insert into t1 values (1),(2),(3);
+--exec $MYSQL_DUMP --skip-comments --tab=$MYSQL_TEST_DIR/var/tmp/ test
+--exec cat $MYSQL_TEST_DIR/var/tmp/t1.sql
+--exec cat $MYSQL_TEST_DIR/var/tmp/t1.txt
+--exec rm $MYSQL_TEST_DIR/var/tmp/t1.sql
+--exec rm $MYSQL_TEST_DIR/var/tmp/t1.txt
+--exec $MYSQL_DUMP --tab=$MYSQL_TEST_DIR/var/tmp/ test
+--exec rm $MYSQL_TEST_DIR/var/tmp/t1.sql
+--exec rm $MYSQL_TEST_DIR/var/tmp/t1.txt
+drop table t1;
diff --git a/mysql-test/t/order_by.test b/mysql-test/t/order_by.test
index bbb0046b47f..9ae9c1b5e12 100644
--- a/mysql-test/t/order_by.test
+++ b/mysql-test/t/order_by.test
@@ -347,6 +347,23 @@ SELECT * FROM t1 ORDER BY (a + b) DESC;
DROP TABLE t1;
#
+# Test of FORCE INDEX ... ORDER BY
+#
+
+create table t1(id int not null auto_increment primary key, t char(12));
+disable_query_log;
+let $1 = 1000;
+while ($1)
+ {
+ eval insert into t1(t) values ('$1');
+ dec $1;
+ }
+enable_query_log;
+explain select id,t from t1 order by id;
+explain select id,t from t1 force index (primary) order by id;
+drop table t1;
+
+#
# Test of test_if_subkey() function
#
CREATE TABLE t1 (
@@ -393,3 +410,28 @@ select * from t1 where b=1 or b is null order by a;
explain select * from t1 where b=2 or b is null order by a;
select * from t1 where b=2 or b is null order by a;
drop table t1;
+
+#
+# Bug #3155 - Strange results with index (x, y) ... WHERE ... ORDER BY pk
+#
+
+create table t1 (a int not null auto_increment, b int not null, c int not null, d int not null,
+key(a,b,d), key(c,b,a));
+create table t2 like t1;
+insert into t1 values (NULL, 1, 2, 0), (NULL, 2, 1, 1), (NULL, 3, 4, 2), (NULL, 4, 3, 3);
+insert into t2 select null, b, c, d from t1;
+insert into t1 select null, b, c, d from t2;
+insert into t2 select null, b, c, d from t1;
+insert into t1 select null, b, c, d from t2;
+insert into t2 select null, b, c, d from t1;
+insert into t1 select null, b, c, d from t2;
+insert into t2 select null, b, c, d from t1;
+insert into t1 select null, b, c, d from t2;
+insert into t2 select null, b, c, d from t1;
+insert into t1 select null, b, c, d from t2;
+optimize table t1;
+set @row=10;
+insert into t1 select 1, b, c + (@row:=@row - 1) * 10, d - @row from t2 limit 10;
+select * from t1 where a=1 and b in (1) order by c, b, a;
+select * from t1 where a=1 and b in (1);
+drop table t1, t2;
diff --git a/mysql-test/t/query_cache.test b/mysql-test/t/query_cache.test
index b46685505ef..e5dc69d21aa 100644
--- a/mysql-test/t/query_cache.test
+++ b/mysql-test/t/query_cache.test
@@ -544,10 +544,25 @@ select * from t3;
enable_result_log;
delete from t4 where a=1;
flush query cache;
-
drop table t1,t2,t3,t4;
#
+# WRITE LOCK & QC
+#
+set query_cache_wlock_invalidate=1;
+create table t1 (a int not null);
+create table t2 (a int not null);
+select * from t1;
+select * from t2;
+show status like "Qcache_queries_in_cache";
+lock table t1 write, t2 read;
+show status like "Qcache_queries_in_cache";
+unlock table;
+drop table t1,t2;
+set query_cache_wlock_invalidate=default;
+
+
+#
# Test character set related variables:
# character_set_result
# character_set_client
@@ -603,7 +618,12 @@ SELECT * FROM test.t1;
USE test;
DROP TABLE t1;
-
+#
+# charset with NULL
+#
+set character_set_results=null;
+select @@character_set_results;
+set character_set_results=default;
# comments before command
#
create table t1 (a int);
diff --git a/mysql-test/t/raid.test b/mysql-test/t/raid.test
index 0d6e851a153..457262a8d75 100644
--- a/mysql-test/t/raid.test
+++ b/mysql-test/t/raid.test
@@ -18,6 +18,7 @@ DROP DATABASE IF EXISTS test_$1;
create database test_$1;
create table test_$1.r1 (i int) raid_type=1;
+create table test_$1.r2 (i int) raid_type=1 raid_chunks=32;
drop database test_$1;
CREATE TABLE t1 (
diff --git a/mysql-test/t/range.test b/mysql-test/t/range.test
index f01d8d4eacf..51b1f34ee79 100644
--- a/mysql-test/t/range.test
+++ b/mysql-test/t/range.test
@@ -118,7 +118,7 @@ drop table t1;
CREATE TABLE t1 (
t1ID int(10) unsigned NOT NULL auto_increment,
- art char(1) binary NOT NULL default '',
+ art binary(1) NOT NULL default '',
KNR char(5) NOT NULL default '',
RECHNR char(6) NOT NULL default '',
POSNR char(2) NOT NULL default '',
@@ -229,7 +229,7 @@ SELECT * FROM t1 WHERE a IN(1,2) AND b=5;
DROP TABLE t1;
#
-# Test error with
+# Test problem with range optimzer and sub ranges
#
CREATE TABLE t1 (a int, b int, c int, INDEX (c,a,b));
@@ -240,6 +240,22 @@ SELECT COUNT(*) FROM t1 WHERE (c=0 and a=1) or (c=0 and b=1);
SELECT COUNT(*) FROM t1 WHERE (c=0 and b=1) or (c=0 and a=1);
DROP TABLE t1;
+#
+# Test problem with range optimization over overlapping ranges (#2448)
+#
+
+CREATE TABLE t1 ( a int not null, b int not null, INDEX ab(a,b) );
+INSERT INTO t1 VALUES (47,1), (70,1), (15,1), (15, 4);
+SELECT * FROM t1
+WHERE
+(
+ ( b =1 AND a BETWEEN 14 AND 21 ) OR
+ ( b =2 AND a BETWEEN 16 AND 18 ) OR
+ ( b =3 AND a BETWEEN 15 AND 19 ) OR
+ (a BETWEEN 19 AND 47)
+);
+DROP TABLE t1;
+
# test for a bug with in() and unique key
create table t1 (id int(10) primary key);
diff --git a/mysql-test/t/rename.test b/mysql-test/t/rename.test
index 48a9cb401d9..bea0641ad23 100644
--- a/mysql-test/t/rename.test
+++ b/mysql-test/t/rename.test
@@ -35,3 +35,27 @@ select * from t3;
# This should give a warning for t4
drop table if exists t1,t2,t3,t4;
+
+#
+# Test-case for Bug #2397 RENAME TABLES is not blocked by
+# FLUSH TABLES WITH READ LOCK
+#
+
+connect (con1,localhost,root,,);
+connect (con2,localhost,root,,);
+
+connection con1;
+CREATE TABLE t1 (a int);
+CREATE TABLE t3 (a int);
+connection con2;
+FLUSH TABLES WITH READ LOCK;
+connection con1;
+send RENAME TABLE t1 TO t2, t3 to t4;
+connection con2;
+sleep 1;
+show tables;
+UNLOCK TABLES;
+sleep 1;
+show tables;
+
+drop table t2, t4;
diff --git a/mysql-test/t/repair_part1.test b/mysql-test/t/repair_part1.test
index e82edb64713..a2e186fd385 100644
--- a/mysql-test/t/repair_part1.test
+++ b/mysql-test/t/repair_part1.test
@@ -12,6 +12,18 @@ alter table t1 ENGINE=HEAP;
repair table t1 use_frm;
drop table t1;
+#
+# disabled keys during repair
+#
+create table t1(id int PRIMARY KEY, st varchar(10), KEY st_key(st));
+insert into t1 values(1, "One");
+alter table t1 disable keys;
+show keys from t1;
+repair table t1 extended;
+show keys from t1;
+drop table t1;
+
+
# non-existent table
repair table t1 use_frm;
diff --git a/mysql-test/t/row.test b/mysql-test/t/row.test
index ecb0c6adfc1..62e8eb7991c 100644
--- a/mysql-test/t/row.test
+++ b/mysql-test/t/row.test
@@ -15,7 +15,7 @@ select row('b',1.5,3) IN (row(3,NULL,3), row('a',1.5,3), row(1,3,3));
select row('b',1.5,3) IN (row('b',NULL,3), row('a',1.5,3), row(1,3,3));
select row('b',1.5,3) IN (row('b',NULL,4), row('a',1.5,3), row(1,3,3));
select (1,2,(3,4)) IN ((3,2,(3,4)), (1,2,(3,4)));
--- error 1240
+-- error 1241
select row(1,2,row(3,4)) IN (row(3,2,row(3,4)), row(1,2,4));
select row(1,2,row(3,4)) IN (row(3,2,row(3,4)), row(1,2,row(3,NULL)));
explain extended select row(1,2,row(3,4)) IN (row(3,2,row(3,4)), row(1,2,row(3,NULL)));
@@ -37,12 +37,12 @@ SELECT ROW(NULL,2,3)=ROW(NULL,2,3);
SELECT ROW(NULL,2,3)<=>ROW(NULL,2,3);
SELECT ROW(1,2,ROW(3,4,5))=ROW(1,2,ROW(3,4,5));
SELECT ROW('test',2,3.33)=ROW('test',2,3.33);
--- error 1240
+-- error 1241
SELECT ROW('test',2,3.33)=ROW('test',2,3.33,4);
SELECT ROW('test',2,ROW(3,33))=ROW('test',2,ROW(3,33));
SELECT ROW('test',2,ROW(3,33))=ROW('test',2,ROW(3,3));
SELECT ROW('test',2,ROW(3,33))=ROW('test',2,ROW(3,NULL));
--- error 1240
+-- error 1241
SELECT ROW('test',2,ROW(3,33))=ROW('test',2,4);
create table t1 ( a int, b int, c int);
@@ -56,15 +56,15 @@ select ROW(a,b,c) IN(row(1,2,3), row(3,2,1)) from t1;
select ROW(1,2,3) IN(row(a,b,c), row(1,2,3)) from t1;
drop table t1;
--- error 1240
+-- error 1241
select ROW(1,1);
create table t1 (i int);
--- error 1240
+-- error 1241
select 1 from t1 where ROW(1,1);
--- error 1240
+-- error 1241
select count(*) from t1 order by ROW(1,1);
--- error 1240
+-- error 1241
select count(*) from t1 having (1,1) order by i;
drop table t1;
diff --git a/mysql-test/t/rpl000002.test b/mysql-test/t/rpl000002.test
index 803eb069b66..4fbb6a595a4 100644
--- a/mysql-test/t/rpl000002.test
+++ b/mysql-test/t/rpl000002.test
@@ -1,5 +1,7 @@
source include/master-slave.inc;
+# Test replication of auto_increment
+
create table t1 (n int auto_increment primary key);
set insert_id = 2000;
insert into t1 values (NULL),(NULL),(NULL);
@@ -12,15 +14,26 @@ drop table t1;
sync_slave_with_master;
stop slave;
connection master;
+
+# Test replication of timestamp
+
create table t2(id int auto_increment primary key, created datetime);
set timestamp=12345;
insert into t2 set created=now();
select * from t2;
+
+# Test replication of CREATE .. LIKE (Bug #2557)
+
+create table t3 like t2;
+create temporary table t4 like t2;
+create table t5 select * from t4;
save_master_pos;
connection slave;
start slave;
sync_with_master;
select * from t2;
+show create table t3;
+show create table t5;
connection master;
-drop table t2;
+drop table t2,t3,t5;
sync_slave_with_master;
diff --git a/mysql-test/t/rpl000009.test b/mysql-test/t/rpl000009.test
index cd318efa2b6..59451bc888d 100644
--- a/mysql-test/t/rpl000009.test
+++ b/mysql-test/t/rpl000009.test
@@ -118,6 +118,21 @@ connection slave;
sync_with_master;
select * from mysqltest.t1;
+# Check that LOAD DATA FROM MASTER is able to create master.info
+# if needed (if RESET SLAVE was used before), before writing to it (BUG#2922).
+
+stop slave;
+reset slave;
+load data from master;
+start slave;
+# see if replication coordinates were restored fine
+connection master;
+insert into mysqltest.t1 values (5, 'five bar');
+save_master_pos;
+connection slave;
+sync_with_master;
+select * from mysqltest.t1;
+
# Check that LOAD DATA FROM MASTER reports the error if it can't drop a
# table to be overwritten.
# DISABLED FOR NOW AS chmod IS NOT PORTABLE ON NON-UNIX
diff --git a/mysql-test/t/rpl_error_ignored_table-slave.opt b/mysql-test/t/rpl_error_ignored_table-slave.opt
index 0d3485f9e25..cb49119bfcb 100644
--- a/mysql-test/t/rpl_error_ignored_table-slave.opt
+++ b/mysql-test/t/rpl_error_ignored_table-slave.opt
@@ -1 +1 @@
---replicate-ignore-table=test.t1
+--replicate-ignore-table=test.t1 --replicate-ignore-table=test.t2 --replicate-ignore-table=test.t3
diff --git a/mysql-test/t/rpl_error_ignored_table.test b/mysql-test/t/rpl_error_ignored_table.test
index 522d464c707..b7eec472375 100644
--- a/mysql-test/t/rpl_error_ignored_table.test
+++ b/mysql-test/t/rpl_error_ignored_table.test
@@ -24,3 +24,33 @@ drop table t1;
save_master_pos;
connection slave;
sync_with_master;
+
+# Now test that even critical errors (connection killed)
+# are ignored if rules allow it.
+# The "kill" idea was copied from rpl000001.test.
+
+connection master1;
+select get_lock('crash_lock%20C', 10);
+
+connection master;
+create table t2 (a int primary key);
+insert into t2 values(1);
+create table t3 (id int);
+insert into t3 values(connection_id());
+send update t2 set a = a + 1 + get_lock('crash_lock%20C', 10);
+
+connection master1;
+sleep 2;
+select (@id := id) - id from t3;
+kill @id;
+drop table t2,t3;
+connection master;
+--error 0,1053;
+reap;
+connection master1;
+show binlog events from 79;
+save_master_pos;
+connection slave;
+# SQL slave thread should not have stopped (because table of the killed
+# query is in the ignore list).
+sync_with_master;
diff --git a/mysql-test/t/rpl_heap.test b/mysql-test/t/rpl_heap.test
new file mode 100644
index 00000000000..15f61918034
--- /dev/null
+++ b/mysql-test/t/rpl_heap.test
@@ -0,0 +1,47 @@
+# You must run this test with --manager.
+
+require_manager;
+
+# Don't know why, but using TCP/IP connections makes this test fail
+# with "Lost connection to MySQL server during query" when we
+# issue a query after the server restart.
+# Maybe this is something awkward in mysqltest or in the manager?
+# So we use sockets.
+connect (master,localhost,root,,test,0,master.sock);
+connect (slave,localhost,root,,test,0,slave.sock);
+
+connection master;
+reset master;
+drop table if exists t1;
+create table t1 (a int) type=HEAP;
+insert into t1 values(10);
+save_master_pos;
+show binlog events from 79;
+connection slave;
+reset slave;
+start slave;
+sync_with_master;
+show create table t1;
+select * from t1; # should be one row
+
+server_stop master;
+server_start master;
+
+connection master;
+select * from t1;
+# to check that DELETE is not written twice
+# (the LIMIT is to not use the query cache)
+select * from t1 limit 10;
+save_master_pos;
+show binlog events in 'master-bin.002' from 79;
+
+connection slave;
+sync_with_master;
+select * from t1; # should be empty
+
+# clean up
+connection master;
+drop table t1;
+save_master_pos;
+connection slave;
+sync_with_master;
diff --git a/mysql-test/t/rpl_insert_id.test b/mysql-test/t/rpl_insert_id.test
index 8244c323a0d..4c27c03af60 100644
--- a/mysql-test/t/rpl_insert_id.test
+++ b/mysql-test/t/rpl_insert_id.test
@@ -41,8 +41,8 @@ connection master;
# check if INSERT SELECT in auto_increment is well replicated (bug #490)
-drop table t1;
drop table t2;
+drop table t1;
create table t1(a int auto_increment, key(a));
create table t2(b int auto_increment, c int, key(b));
insert into t1 values (10);
diff --git a/mysql-test/t/rpl_multi_delete-slave.opt b/mysql-test/t/rpl_multi_delete-slave.opt
new file mode 100644
index 00000000000..c98fe0b0a46
--- /dev/null
+++ b/mysql-test/t/rpl_multi_delete-slave.opt
@@ -0,0 +1 @@
+--replicate-wild-do-table=test.%
diff --git a/mysql-test/t/rpl_multi_delete.test b/mysql-test/t/rpl_multi_delete.test
new file mode 100644
index 00000000000..299cb720b62
--- /dev/null
+++ b/mysql-test/t/rpl_multi_delete.test
@@ -0,0 +1,23 @@
+source include/master-slave.inc;
+create table t1 (a int);
+create table t2 (a int);
+
+insert into t1 values (1);
+insert into t2 values (1);
+
+delete t1.* from t1, t2 where t1.a = t2.a;
+
+save_master_pos;
+select * from t1;
+select * from t2;
+
+connection slave;
+sync_with_master;
+select * from t1;
+select * from t2;
+
+connection master;
+drop table t1,t2;
+save_master_pos;
+connection slave;
+sync_with_master;
diff --git a/mysql-test/t/rpl_optimize.test b/mysql-test/t/rpl_optimize.test
new file mode 100644
index 00000000000..9f02b715885
--- /dev/null
+++ b/mysql-test/t/rpl_optimize.test
@@ -0,0 +1,43 @@
+# Test for BUG#1858 "OPTIMIZE TABLE done by a client
+# thread stops the slave SQL thread".
+# You can replace OPTIMIZE by REPAIR.
+
+source include/master-slave.inc;
+
+create table t1 (a int not null auto_increment primary key, b int, key(b));
+INSERT INTO t1 (a) VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
+INSERT INTO t1 (a) SELECT null FROM t1;
+INSERT INTO t1 (a) SELECT null FROM t1;
+INSERT INTO t1 (a) SELECT null FROM t1;
+INSERT INTO t1 (a) SELECT null FROM t1;
+INSERT INTO t1 (a) SELECT null FROM t1;
+INSERT INTO t1 (a) SELECT null FROM t1;
+INSERT INTO t1 (a) SELECT null FROM t1;
+INSERT INTO t1 (a) SELECT null FROM t1;
+INSERT INTO t1 (a) SELECT null FROM t1;
+INSERT INTO t1 (a) SELECT null FROM t1;
+INSERT INTO t1 (a) SELECT null FROM t1;
+INSERT INTO t1 (a) SELECT null FROM t1;
+INSERT INTO t1 (a) SELECT null FROM t1;
+save_master_pos;
+# a few updates to force OPTIMIZE to do something
+update t1 set b=(a/2*rand());
+delete from t1 order by b limit 10000;
+
+connection slave;
+sync_with_master;
+optimize table t1;
+connection master;
+save_master_pos;
+connection slave;
+# Bug was that when the INSERT terminated on slave,
+# the slave SQL thread got killed by OPTIMIZE.
+sync_with_master; # won't work if slave SQL thread stopped
+
+connection master; # cleanup
+drop table t1;
+connection slave;
+sync_with_master;
+
+# If the machine is so fast that slave syncs before OPTIMIZE
+# starts, this test wil demonstrate nothing but will pass.
diff --git a/mysql-test/t/rpl_relayrotate-master.opt b/mysql-test/t/rpl_relayrotate-master.opt
new file mode 100644
index 00000000000..4cb927540bf
--- /dev/null
+++ b/mysql-test/t/rpl_relayrotate-master.opt
@@ -0,0 +1 @@
+--binlog_cache_size=32768
diff --git a/mysql-test/t/rpl_relayrotate.test b/mysql-test/t/rpl_relayrotate.test
index 20a77ff8b64..d692140ddd9 100644
--- a/mysql-test/t/rpl_relayrotate.test
+++ b/mysql-test/t/rpl_relayrotate.test
@@ -60,6 +60,23 @@ select max(a) from t1;
--replace_column 1 # 8 # 9 # 23 # 33 #
--replace_result $MASTER_MYPORT MASTER_MYPORT
show slave status;
+connection master;
+
+# binlog_cache_use and binlog_cache_disk_use status vars test
+# This test uses the previous test. Namely, it needs the long
+# transaction that adds 8000 lines to the t1 table.
+
+show status like "binlog_cache_use";
+show status like "binlog_cache_disk_use";
+
+# transaction which should not be flushed to disk and so should not
+# increase binlog_cache_disk_use
+begin;
+delete from t1;
+commit;
+
+show status like "binlog_cache_use";
+show status like "binlog_cache_disk_use";
# The following DROP is a very important cleaning task:
# imagine the next test is run with --skip-innodb: it will do
@@ -71,3 +88,7 @@ show slave status;
# InnoDB: Error: table t1 already exists in InnoDB internal
# InnoDB: data dictionary. Have you deleted the .frm file etc
drop table t1;
+# wait until this drop is executed on slave
+save_master_pos;
+connection slave;
+sync_with_master;
diff --git a/mysql-test/t/rpl_temporary.test b/mysql-test/t/rpl_temporary.test
index 0df8ceb6377..f84c9b09aef 100644
--- a/mysql-test/t/rpl_temporary.test
+++ b/mysql-test/t/rpl_temporary.test
@@ -28,9 +28,22 @@ connect (con3,localhost,zedjzlcsjhd,,);
# check that it requires the SUPER privilege.
connection con3;
+SET @save_select_limit=@@session.sql_select_limit;
--error 1227
+SET @@session.sql_select_limit=10, @@session.pseudo_thread_id=100;
+SELECT @@session.sql_select_limit = @save_select_limit; #shouldn't have changed
+# While we are here we also test that SQL_LOG_BIN can't be set
+--error 1227
+SET @@session.sql_select_limit=10, @@session.sql_log_bin=0;
+SELECT @@session.sql_select_limit = @save_select_limit; #shouldn't have changed
+# Now as root, to be sure it works
+connection con2;
SET @@session.pseudo_thread_id=100;
+SET @@session.pseudo_thread_id=connection_id();
+SET @@session.sql_log_bin=0;
+SET @@session.sql_log_bin=1;
+connection con3;
let $VERSION=`select version()`;
--disable_warnings
diff --git a/mysql-test/t/rpl_until.test b/mysql-test/t/rpl_until.test
index 545b495938a..f7ca51ecabc 100644
--- a/mysql-test/t/rpl_until.test
+++ b/mysql-test/t/rpl_until.test
@@ -67,15 +67,15 @@ real_sleep 4
show slave status;
#testing various error conditions
---error 1276
+--error 1277
start slave until master_log_file='master-bin', master_log_pos=561;
---error 1276
+--error 1277
start slave until master_log_file='master-bin.000001', master_log_pos=561, relay_log_pos=12;
---error 1276
+--error 1277
start slave until master_log_file='master-bin.000001';
---error 1276
+--error 1277
start slave until relay_log_file='slave-relay-bin.000002';
---error 1276
+--error 1277
start slave until relay_log_file='slave-relay-bin.000002', master_log_pos=561;
start slave sql_thread;
diff --git a/mysql-test/t/select.test b/mysql-test/t/select.test
index 446c8768146..0a3de178456 100644
--- a/mysql-test/t/select.test
+++ b/mysql-test/t/select.test
@@ -1862,3 +1862,19 @@ select * from t1 left join t2 on id1 = id2 left join t3 on id1 = id3
left join t4 on id3 = id4 where id2 = 1 or id4 = 1;
drop table t1,t2,t3,t4;
+#
+# Bug #2298
+#
+
+create table t1(s varchar(10) not null);
+create table t2(s varchar(10) not null primary key);
+create table t3(s varchar(10) not null primary key);
+insert into t1 values ('one\t'), ('two\t');
+insert into t2 values ('one\r'), ('two\t');
+insert into t3 values ('one '), ('two\t');
+select * from t1 where s = 'one';
+select * from t2 where s = 'one';
+select * from t3 where s = 'one';
+select * from t1,t2 where t1.s = t2.s;
+select * from t2,t3 where t2.s = t3.s;
+drop table t1, t2, t3;
diff --git a/mysql-test/t/select_found.test b/mysql-test/t/select_found.test
index 3cf736cafb0..e63e894c1cf 100644
--- a/mysql-test/t/select_found.test
+++ b/mysql-test/t/select_found.test
@@ -109,3 +109,31 @@ select FOUND_ROWS();
select SQL_CALC_FOUND_ROWS * from t1 where id > 6 limit 0, 1;
select FOUND_ROWS();
drop table t1;
+
+#
+# Other bugs with range optimization
+#
+
+# bug #2448
+
+CREATE TABLE t1 ( a int not null, b int not null, KEY ab(a,b) );
+INSERT INTO t1 VALUES ( 47, 1 );
+INSERT INTO t1 VALUES ( 70, 1 );
+SELECT * FROM t1
+WHERE
+(
+ ( b =1 AND a BETWEEN 14 AND 21 ) OR
+ ( b =2 AND a BETWEEN 16 AND 18 ) OR
+ ( b =3 AND a BETWEEN 15 AND 19 )
+);
+DROP TABLE t1;
+
+# bug #2698
+
+CREATE TABLE t1 ( a integer, u varchar(15), r integer, key uao_idx( r, a, u));
+DELETE FROM t1
+WHERE ( r = 1 AND a IN ( 1, 2 ) AND ( u = 'w' OR u LIKE 'w/%' ) )
+ OR ( r = 1 AND a IN ( 3 ) AND ( u = 'w/U' OR u LIKE 'w/U/%' ) )
+ OR ( r = 1 AND a IN ( 1, 2, 3 ) AND ( u = 'w' ) );
+drop table t1;
+
diff --git a/mysql-test/t/show_check.test b/mysql-test/t/show_check.test
index 1d64cfd2105..b0307af19bb 100644
--- a/mysql-test/t/show_check.test
+++ b/mysql-test/t/show_check.test
@@ -54,8 +54,8 @@ create table t1 (
test_set set( 'val1', 'val2', 'val3' ) not null default '',
name char(20) default 'O''Brien' comment 'O''Brien as default',
c int not null comment 'int column',
- `c-b` int comment 'name with a space',
- `space ` int comment 'name with a space',
+ `c-b` int comment 'name with a minus',
+ `space 2` int comment 'name with a space',
) comment = 'it\'s a table' ;
show create table t1;
set sql_quote_show_create=0;
@@ -147,31 +147,43 @@ drop table t1;
# Test for Bug #2593 "SHOW CREATE TABLE doesn't properly double quotes"
#
-SET sql_mode='';
-SET sql_quote_show_create=OFF;
+SET @old_sql_mode= @@sql_mode, sql_mode= '';
+SET @old_sql_quote_show_create= @@sql_quote_show_create, sql_quote_show_create= OFF;
-CREATE TABLE ```ab``cd``` (i INT);
-SHOW CREATE TABLE ```ab``cd```;
-DROP TABLE ```ab``cd```;
+######### hook for WL#1324 #
+--error 1103
+CREATE TABLE `a/b` (i INT);
+# the above test should WORK when WL#1324 is done,
+# it should be removed and
+# the following part should be uncommented then
+#########################################################
+# begin of part that must be uncommented when WL#1324 is done
+#########################################################
+#CREATE TABLE ```ab``cd``` (i INT);
+#SHOW CREATE TABLE ```ab``cd```;
+#DROP TABLE ```ab``cd```;
-CREATE TABLE ```ab````cd``` (i INT);
-SHOW CREATE TABLE ```ab````cd```;
-DROP TABLE ```ab````cd```;
+#CREATE TABLE ```ab````cd``` (i INT);
+#SHOW CREATE TABLE ```ab````cd```;
+#DROP TABLE ```ab````cd```;
-CREATE TABLE ```a` (i INT);
-SHOW CREATE TABLE ```a`;
-DROP TABLE ```a`;
+#CREATE TABLE ```a` (i INT);
+#SHOW CREATE TABLE ```a`;
+#DROP TABLE ```a`;
-SET sql_mode='ANSI_QUOTES';
+SET sql_mode= 'ANSI_QUOTES';
-CREATE TABLE """a" (i INT);
-SHOW CREATE TABLE """a";
-DROP TABLE """a";
+#CREATE TABLE """a" (i INT);
+#SHOW CREATE TABLE """a";
+#DROP TABLE """a";
+#########################################################
+# end of part that must be uncommented when WL#1324 is done
+#########################################################
# to test quotes around keywords.. :
-SET sql_mode='';
-SET sql_quote_show_create=OFF;
+SET sql_mode= '';
+SET sql_quote_show_create= OFF;
CREATE TABLE t1 (i INT);
SHOW CREATE TABLE t1;
@@ -181,4 +193,114 @@ CREATE TABLE `table` (i INT);
SHOW CREATE TABLE `table`;
DROP TABLE `table`;
-SET sql_quote_show_create=ON;
+SET sql_quote_show_create= @old_sql_quote_show_create;
+SET sql_mode= @old_sql_mode;
+
+#
+# Test for bug #2719 "Heap tables status shows wrong or missing data."
+#
+
+select @@max_heap_table_size;
+
+CREATE TABLE t1 (
+ a int(11) default NULL,
+ KEY a TYPE BTREE (a)
+) ENGINE=HEAP;
+
+CREATE TABLE t2 (
+ b int(11) default NULL,
+ index(b)
+) ENGINE=HEAP;
+
+CREATE TABLE t3 (
+ a int(11) default NULL,
+ b int(11) default NULL,
+ KEY a TYPE BTREE (a),
+ index(b)
+) ENGINE=HEAP;
+
+insert into t1 values (1),(2);
+insert into t2 values (1),(2);
+insert into t3 values (1,1),(2,2);
+--replace_column 6 # 7 # 8 #
+show table status;
+insert into t1 values (3),(4);
+insert into t2 values (3),(4);
+insert into t3 values (3,3),(4,4);
+--replace_column 6 # 7 # 8 #
+show table status;
+insert into t1 values (5);
+insert into t2 values (5);
+insert into t3 values (5,5);
+--replace_column 6 # 7 # 8 #
+show table status;
+delete from t1 where a=3;
+delete from t2 where b=3;
+delete from t3 where a=3;
+--replace_column 6 # 7 # 8 #
+show table status;
+delete from t1;
+delete from t2;
+delete from t3;
+--replace_column 6 # 7 # 8 #
+show table status;
+insert into t1 values (5);
+insert into t2 values (5);
+insert into t3 values (5,5);
+--replace_column 6 # 7 # 8 #
+show table status;
+delete from t1 where a=5;
+delete from t2 where b=5;
+delete from t3 where a=5;
+--replace_column 6 # 7 # 8 #
+show table status;
+
+drop table t1, t2, t3;
+
+#
+# Test for bug #3342 SHOW CREATE DATABASE seems to require DROP privilege
+#
+
+create database test_$1;
+show create database test_$1;
+create table test_$1.t1(a int);
+insert into test_$1.t1 values(1);
+grant select on `test_$1`.* to mysqltest_1@localhost;
+grant usage on `test_$1`.* to mysqltest_2@localhost;
+grant drop on `test_$1`.* to mysqltest_3@localhost;
+
+connect (con1,localhost,mysqltest_1,,test_$1);
+connection con1;
+select * from t1;
+show create database test_$1;
+--error 1044
+drop table t1;
+--error 1044
+drop database test_$1;
+
+connect (con2,localhost,mysqltest_2,,test);
+connection con2;
+--error 1044
+select * from test_$1.t1;
+--error 1044
+show create database test_$1;
+--error 1044
+drop table test_$1.t1;
+--error 1044
+drop database test_$1;
+
+connect (con3,localhost,mysqltest_3,,test);
+connection con3;
+--error 1044
+select * from test_$1.t1;
+--error 1044
+show create database test_$1;
+drop table test_$1.t1;
+drop database test_$1;
+
+connection default;
+delete from mysql.user
+where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
+delete from mysql.db
+where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
+flush privileges;
diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test
index 2f05141ee31..40f182f50a1 100644
--- a/mysql-test/t/subselect.test
+++ b/mysql-test/t/subselect.test
@@ -9,12 +9,12 @@ SELECT (SELECT 1) UNION SELECT (SELECT 2);
explain extended SELECT (SELECT 1) UNION SELECT (SELECT 2);
SELECT (SELECT (SELECT 0 UNION SELECT 0));
explain extended SELECT (SELECT (SELECT 0 UNION SELECT 0));
--- error 1246
+-- error 1247
SELECT (SELECT 1 FROM (SELECT 1) as b HAVING a=1) as a;
--- error 1246
+-- error 1247
SELECT (SELECT 1 FROM (SELECT 1) as b HAVING b=1) as a,(SELECT 1 FROM (SELECT 1) as c HAVING a=1) as b;
SELECT (SELECT 1),MAX(1) FROM (SELECT 1) as a;
--- error 1246
+-- error 1247
SELECT (SELECT a) as a;
EXPLAIN EXTENDED SELECT 1 FROM (SELECT 1 as a) as b HAVING (SELECT a)=1;
SELECT 1 FROM (SELECT 1 as a) as b HAVING (SELECT a)=1;
@@ -24,7 +24,7 @@ SELECT 1 as a FROM (SELECT 1) as b HAVING (SELECT a)=1;
-- error 1054
SELECT 1 FROM (SELECT (SELECT a) b) c;
SELECT * FROM (SELECT 1 as id) b WHERE id IN (SELECT * FROM (SELECT 1 as id) c ORDER BY id);
--- error 1240
+-- error 1241
SELECT * FROM (SELECT 1) a WHERE 1 IN (SELECT 1,1);
SELECT 1 IN (SELECT 1);
SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
@@ -51,7 +51,7 @@ SELECT (SELECT 'b',2,'a') = ROW(1.5,2,'a');
SELECT (SELECT 1.5,2,'a') = ROW(1.5,'c','a');
SELECT (SELECT 1.5,'c','a') = ROW(1.5,2,'a');
--- error 1240
+-- error 1241
SELECT (SELECT * FROM (SELECT 'test' a,'test' b) a);
SELECT 1 as a,(SELECT a+a) b,(SELECT b);
@@ -63,7 +63,7 @@ create table t4 (a int not null, b int not null);
insert into t1 values (2);
insert into t2 values (1,7),(2,7);
insert into t4 values (4,8),(3,8),(5,9);
--- error 1246
+-- error 1247
select (select a from t1 where t1.a = a1) as a2, (select b from t2 where t2.b=a2) as a1;
select (select a from t1 where t1.a=t2.a), a from t2;
select (select a from t1 where t1.a=t2.b), a from t2;
@@ -103,9 +103,9 @@ select * from t3 where a >= any (select b from t2);
explain extended select * from t3 where a >= any (select b from t2);
select * from t3 where a >= all (select b from t2);
delete from t2 where a=100;
--- error 1240
+-- error 1241
select * from t3 where a in (select a,b from t2);
--- error 1240
+-- error 1241
select * from t3 where a in (select * from t2);
insert into t4 values (12,7),(1,7),(10,9),(9,6),(7,6),(3,9),(1,10);
-- empty set
@@ -121,7 +121,7 @@ select (select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a)
insert into t5 values (2);
select (select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a), a from t2;
explain extended select (select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a), a from t2;
--- error 1241
+-- error 1242
select (select a from t1 where t1.a=t2.a union all select a from t5 where t5.a=t2.a), a from t2;
create table t6 (patient_uq int, clinic_uq int, index i1 (clinic_uq));
create table t7( uq int primary key, name char(25));
@@ -158,14 +158,14 @@ INSERT INTO t8 (pseudo,email) VALUES ('joce','test');
INSERT INTO t8 (pseudo,email) VALUES ('joce1','test1');
INSERT INTO t8 (pseudo,email) VALUES ('2joce1','2test1');
EXPLAIN EXTENDED SELECT pseudo,(SELECT email FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce')) FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce');
--- error 1240
+-- error 1241
SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo,email FROM
t8 WHERE pseudo='joce');
--- error 1240
+-- error 1241
SELECT pseudo FROM t8 WHERE pseudo=(SELECT * FROM t8 WHERE
pseudo='joce');
SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce');
--- error 1241
+-- error 1242
SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo LIKE '%joce%');
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8;
@@ -185,7 +185,7 @@ EXPLAIN EXTENDED SELECT (SELECT DISTINCT date FROM t1 WHERE date='2002-08-03');
SELECT DISTINCT date FROM t1 WHERE date='2002-08-03';
SELECT (SELECT DISTINCT date FROM t1 WHERE date='2002-08-03');
SELECT 1 FROM t1 WHERE 1=(SELECT 1 UNION SELECT 1) UNION ALL SELECT 1;
--- error 1241
+-- error 1242
SELECT 1 FROM t1 WHERE 1=(SELECT 1 UNION ALL SELECT 1) UNION SELECT 1;
EXPLAIN EXTENDED SELECT 1 FROM t1 WHERE 1=(SELECT 1 UNION SELECT 1);
drop table t1;
@@ -242,9 +242,9 @@ CREATE TABLE `t1` (
) ENGINE=MyISAM ROW_FORMAT=FIXED;
INSERT INTO t1 (numeropost,maxnumrep) VALUES (1,0),(2,1);
--- error 1241
+-- error 1242
select numeropost as a FROM t1 GROUP BY (SELECT 1 FROM t1 HAVING a=1);
--- error 1241
+-- error 1242
select numeropost as a FROM t1 ORDER BY (SELECT 1 FROM t1 HAVING a=1);
drop table t1;
@@ -256,7 +256,7 @@ drop table t1;
#iftest
CREATE TABLE t1 (field char(1) NOT NULL DEFAULT 'b');
INSERT INTO t1 VALUES ();
--- error 1241
+-- error 1242
SELECT field FROM t1 WHERE 1=(SELECT 1 UNION ALL SELECT 1 FROM (SELECT 1) a HAVING field='b');
drop table t1;
@@ -269,13 +269,13 @@ CREATE TABLE `t1` (
UNIQUE KEY `numreponse` (`numreponse`),
KEY `pseudo` (`pseudo`,`numeropost`)
) ENGINE=MyISAM;
--- error 1246
+-- error 1247
SELECT (SELECT numeropost FROM t1 HAVING numreponse=a),numreponse FROM (SELECT * FROM t1) as a;
-- error 1054
SELECT numreponse, (SELECT numeropost FROM t1 HAVING numreponse=a) FROM (SELECT * FROM t1) as a;
SELECT numreponse, (SELECT numeropost FROM t1 HAVING numreponse=1) FROM (SELECT * FROM t1) as a;
INSERT INTO t1 (numeropost,numreponse,pseudo) VALUES (1,1,'joce'),(1,2,'joce'),(1,3,'test');
--- error 1241
+-- error 1242
EXPLAIN EXTENDED SELECT numreponse FROM t1 WHERE numeropost='1' AND numreponse=(SELECT 1 FROM t1 WHERE numeropost='1');
EXPLAIN EXTENDED SELECT MAX(numreponse) FROM t1 WHERE numeropost='1';
EXPLAIN EXTENDED SELECT numreponse FROM t1 WHERE numeropost='1' AND numreponse=(SELECT MAX(numreponse) FROM t1 WHERE numeropost='1');
@@ -294,7 +294,7 @@ insert into t2 values (1, 21),(2, 22),(3, 23);
select * from t1;
-- error 1093
update t1 set b= (select b from t1);
--- error 1241
+-- error 1242
update t1 set b= (select b from t2);
update t1 set b= (select b from t2 where t1.a = t2.a);
select * from t1;
@@ -309,7 +309,7 @@ select * from t1;
select * from t1 where b = (select b from t2 where t1.a = t2.a);
-- error 1093
delete from t1 where b = (select b from t1);
--- error 1241
+-- error 1242
delete from t1 where b = (select b from t2);
delete from t1 where b = (select b from t2 where t1.a = t2.a);
select * from t1;
@@ -327,7 +327,7 @@ select * from t11;
select * from t12;
-- error 1093
delete t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b = (select b from t12 where t11.a = t12.a);
--- error 1241
+-- error 1242
delete t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b = (select b from t2);
delete t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b = (select b from t2 where t11.a = t2.a);
select * from t11;
@@ -342,7 +342,7 @@ insert into t2 values (1);
insert into t3 values (1),(2);
-- error 1093
INSERT INTO t1 (x) VALUES ((SELECT x FROM t1));
--- error 1241
+-- error 1242
INSERT INTO t1 (x) VALUES ((SELECT b FROM t3));
INSERT INTO t1 (x) VALUES ((SELECT a FROM t2));
select * from t1;
@@ -375,7 +375,7 @@ insert into t3 values (1),(2);
select * from t1;
-- error 1093
replace into t1 (x, y) VALUES ((SELECT x FROM t1), (SELECT a+1 FROM t2));
--- error 1241
+-- error 1242
replace into t1 (x, y) VALUES ((SELECT a FROM t3), (SELECT a+1 FROM t2));
replace into t1 (x, y) VALUES ((SELECT a FROM t2), (SELECT a+1 FROM t2));
select * from t1;
@@ -411,7 +411,7 @@ INSERT INTO t2 VALUES ((SELECT id FROM t2));
SELECT * FROM t2;
CREATE TABLE t1 (id int(11) default NULL, KEY id (id)) ENGINE=MyISAM CHARSET=latin1;
INSERT INTO t1 values (1),(1);
--- error 1241
+-- error 1242
UPDATE t2 SET id=(SELECT * FROM t1);
drop table t2, t1;
@@ -527,7 +527,7 @@ set @a:=(SELECT a from t1);
CREATE TABLE t1 (a int, KEY(a));
HANDLER t1 OPEN;
--- error 1149
+-- error 1064
HANDLER t1 READ a=((SELECT 1));
HANDLER t1 CLOSE;
drop table t1;
@@ -872,9 +872,9 @@ DROP TABLE t1, t2;
CREATE TABLE t1 (s1 CHAR(5) COLLATE latin1_german1_ci,
s2 CHAR(5) COLLATE latin1_swedish_ci);
INSERT INTO t1 VALUES ('z','?');
--- error 1266
+-- error 1267
select * from t1 where s1 > (select max(s2) from t1);
--- error 1266
+-- error 1267
select * from t1 where s1 > any (select max(s2) from t1);
drop table t1;
@@ -892,7 +892,7 @@ drop table t1, t2;
# row union
#
create table t1 (s1 char(5));
--- error 1240
+-- error 1241
select (select 'a','b' from t1 union select 'a','b' from t1) from t1;
insert into t1 values ('tttt');
select * from t1 where ('a','b')=(select 'a','b' from t1 union select 'a','b' from t1);
@@ -957,7 +957,7 @@ CREATE TABLE t1 (id int(11) default NULL) ENGINE=MyISAM CHARSET=latin1;
INSERT INTO t1 VALUES (1),(5);
CREATE TABLE t2 (id int(11) default NULL) ENGINE=MyISAM CHARSET=latin1;
INSERT INTO t2 VALUES (2),(6);
--- error 1240
+-- error 1241
select * from t1 where (1,2,6) in (select * from t2);
DROP TABLE t1,t2;
@@ -967,7 +967,7 @@ DROP TABLE t1,t2;
create table t1 (s1 int);
insert into t1 values (1);
insert into t1 values (2);
--- error 1241
+-- error 1242
set sort_buffer_size = (select s1 from t1);
do (select * from t1);
drop table t1;
@@ -1015,6 +1015,11 @@ INSERT INTO t2 VALUES (100, 200, 'C');
SELECT DISTINCT COLC FROM t1 WHERE COLA = (SELECT COLA FROM t2 WHERE COLB = 200 AND COLC ='C' LIMIT 1);
DROP TABLE t1, t2;
+CREATE TABLE t1 (a int(1));
+INSERT INTO t1 VALUES (1),(1),(1),(1),(1),(2),(3),(4),(5);
+SELECT DISTINCT (SELECT a) FROM t1 LIMIT 100;
+DROP TABLE t1;
+
#
# Bug 2198
#
@@ -1054,3 +1059,64 @@ INSERT INTO `t2` VALUES (16,1987),(50,1990),(51,1990);
SELECT cns.id, cns.max_anno_dep, cns.max_anno_dep = (SELECT s.anno_dep FROM t1 AS s WHERE s.id_cns = cns.id ORDER BY s.anno_dep DESC LIMIT 1) AS PIPPO FROM t2 AS cns;
DROP TABLE t1, t2;
+
+#
+# GLOBAL LIMIT
+#
+create table t1 (a int);
+insert into t1 values (1), (2), (3);
+SET SQL_SELECT_LIMIT=1;
+select sum(a) from (select * from t1) as a;
+select 2 in (select * from t1);
+SET SQL_SELECT_LIMIT=default;
+drop table t1;
+
+#
+# Bug #3118: subselect + order by
+#
+
+CREATE TABLE t1 (a int, b int, INDEX (a));
+INSERT INTO t1 VALUES (1, 1), (1, 2), (1, 3);
+SELECT * FROM t1 WHERE a = (SELECT MAX(a) FROM t1 WHERE a = 1) ORDER BY b;
+DROP TABLE t1;
+
+# Item_cond fix field
+#
+create table t1(val varchar(10));
+insert into t1 values ('aaa'), ('bbb'),('eee'),('mmm'),('ppp');
+select count(*) from t1 as w1 where w1.val in (select w2.val from t1 as w2 where w2.val like 'm%') and w1.val in (select w3.val from t1 as w3 where w3.val like 'e%');
+drop table t1;
+
+#
+# ref_or_null replacing with ref
+#
+create table t1 (id int not null, text varchar(20) not null default '', primary key (id));
+insert into t1 (id, text) values (1, 'text1'), (2, 'text2'), (3, 'text3'), (4, 'text4'), (5, 'text5'), (6, 'text6'), (7, 'text7'), (8, 'text8'), (9, 'text9'), (10, 'text10'), (11, 'text11'), (12, 'text12');
+select * from t1 where id not in (select id from t1 where id < 8);
+select * from t1 as tt where not exists (select id from t1 where id < 8 and (id = tt.id or id is null) having id is not null);
+explain extended select * from t1 where id not in (select id from t1 where id < 8);
+explain extended select * from t1 as tt where not exists (select id from t1 where id < 8 and (id = tt.id or id is null) having id is not null);
+insert into t1 (id, text) values (1000, 'text1000'), (1001, 'text1001');
+create table t2 (id int not null, text varchar(20) not null default '', primary key (id));
+insert into t2 (id, text) values (1, 'text1'), (2, 'text2'), (3, 'text3'), (4, 'text4'), (5, 'text5'), (6, 'text6'), (7, 'text7'), (8, 'text8'), (9, 'text9'), (10, 'text10'), (11, 'text1'), (12, 'text2'), (13, 'text3'), (14, 'text4'), (15, 'text5'), (16, 'text6'), (17, 'text7'), (18, 'text8'), (19, 'text9'), (20, 'text10'),(21, 'text1'), (22, 'text2'), (23, 'text3'), (24, 'text4'), (25, 'text5'), (26, 'text6'), (27, 'text7'), (28, 'text8'), (29, 'text9'), (30, 'text10'), (31, 'text1'), (32, 'text2'), (33, 'text3'), (34, 'text4'), (35, 'text5'), (36, 'text6'), (37, 'text7'), (38, 'text8'), (39, 'text9'), (40, 'text10'), (41, 'text1'), (42, 'text2'), (43, 'text3'), (44, 'text4'), (45, 'text5'), (46, 'text6'), (47, 'text7'), (48, 'text8'), (49, 'text9'), (50, 'text10');
+select * from t1 a left join t2 b on (a.id=b.id or b.id is null) join t1 c on (if(isnull(b.id), 1000, b.id)=c.id);
+explain extended select * from t1 a left join t2 b on (a.id=b.id or b.id is null) join t1 c on (if(isnull(b.id), 1000, b.id)=c.id);
+drop table t1,t2;
+
+#
+# Static tables & rund() in subqueries
+#
+create table t1 (a int);
+insert into t1 values (1);
+explain select benchmark(1000, (select a from t1 where a=sha(rand())));
+drop table t1;
+
+#
+# bug 3188
+#
+create table t1(id int);
+create table t2(id int);
+create table t3(flag int);
+-- error 1064
+select (select * from t3 where id not null) from t1, t2;
+drop table t1,t2,t3;
diff --git a/mysql-test/t/subselect_innodb.test b/mysql-test/t/subselect_innodb.test
index 8e8d41f7653..47642832158 100644
--- a/mysql-test/t/subselect_innodb.test
+++ b/mysql-test/t/subselect_innodb.test
@@ -67,7 +67,7 @@ INSERT INTO t1 VALUES (1),(2),(3);
INSERT INTO t3 VALUES (1,1),(2,2),(3,3);
INSERT INTO t2 VALUES (1,1),(2,2),(3,3);
SELECT distinct p1.processor_id, (SELECT y.yod_id FROM t1 p2, t2 y WHERE p2.processor_id = p1.processor_id and p2.processor_id = y.processor_id) FROM t1 p1;
-drop table t1,t2,t3;
+drop table t2,t1,t3;
#
# innodb locking
diff --git a/mysql-test/t/symlink.test b/mysql-test/t/symlink.test
index c0a9ce1bbcf..78c9b68fde5 100644
--- a/mysql-test/t/symlink.test
+++ b/mysql-test/t/symlink.test
@@ -98,7 +98,7 @@ drop database mysqltest;
# Test changing data dir (Bug #1662)
#
-create table t1 (a int not null) type=myisam;
+create table t1 (a int not null) engine=myisam;
disable_query_log;
eval alter table t1 data directory="$MYSQL_TEST_DIR/var/tmp";
enable_query_log;
diff --git a/mysql-test/t/synchronization.test b/mysql-test/t/synchronization.test
new file mode 100644
index 00000000000..7bdeaa8a740
--- /dev/null
+++ b/mysql-test/t/synchronization.test
@@ -0,0 +1,33 @@
+#
+# Test for Bug #2385 CREATE TABLE LIKE lacks locking on source and destination table
+#
+
+connect (con1,localhost,root,,);
+connect (con2,localhost,root,,);
+
+# locking of source:
+
+CREATE TABLE t1 (x1 int);
+let $1= 10;
+while ($1)
+{
+ connection con1;
+ send ALTER TABLE t1 CHANGE x1 x2 int;
+ connection con2;
+ CREATE TABLE t2 LIKE t1;
+ replace_result x1 xx x2 xx;
+ SHOW CREATE TABLE t2;
+ DROP TABLE t2;
+ connection con1;
+ reap;
+ send ALTER TABLE t1 CHANGE x2 x1 int;
+ connection con2;
+ CREATE TABLE t2 LIKE t1;
+ replace_result x1 xx x2 xx;
+ SHOW CREATE TABLE t2;
+ DROP TABLE t2;
+ connection con1;
+ reap;
+ dec $1;
+}
+DROP TABLE t1;
diff --git a/mysql-test/t/system_mysql_db.test b/mysql-test/t/system_mysql_db.test
new file mode 100644
index 00000000000..bd69297b739
--- /dev/null
+++ b/mysql-test/t/system_mysql_db.test
@@ -0,0 +1,8 @@
+#
+# This test must examine integrity of system database "mysql"
+#
+
+-- disable_query_log
+use mysql;
+-- enable_query_log
+-- source include/system_db_struct.inc
diff --git a/mysql-test/t/system_mysql_db_fix-master.opt b/mysql-test/t/system_mysql_db_fix-master.opt
new file mode 100644
index 00000000000..7e4fa9a3ee8
--- /dev/null
+++ b/mysql-test/t/system_mysql_db_fix-master.opt
@@ -0,0 +1 @@
+--result-file=system_mysql_db
diff --git a/mysql-test/t/system_mysql_db_fix.test b/mysql-test/t/system_mysql_db_fix.test
new file mode 100644
index 00000000000..6f3979bf66e
--- /dev/null
+++ b/mysql-test/t/system_mysql_db_fix.test
@@ -0,0 +1,78 @@
+#
+# This is the test for mysql_fix_privilege_tables
+#
+
+-- disable_result_log
+-- disable_query_log
+
+use test;
+
+# create system tables as in mysql-3.20
+
+CREATE TABLE db (
+ Host char(60) binary DEFAULT '' NOT NULL,
+ Db char(32) binary DEFAULT '' NOT NULL,
+ User char(16) binary DEFAULT '' NOT NULL,
+ Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ PRIMARY KEY Host (Host,Db,User),
+ KEY User (User)
+)
+type=ISAM;
+
+INSERT INTO db VALUES ('%','test', '','Y','Y','Y','Y','Y','Y');
+INSERT INTO db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y');
+
+CREATE TABLE host (
+ Host char(60) binary DEFAULT '' NOT NULL,
+ Db char(32) binary DEFAULT '' NOT NULL,
+ Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ PRIMARY KEY Host (Host,Db)
+)
+type=ISAM;
+
+CREATE TABLE user (
+ Host char(60) binary DEFAULT '' NOT NULL,
+ User char(16) binary DEFAULT '' NOT NULL,
+ Password char(16),
+ Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ Reload_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ Shutdown_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ Process_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+ PRIMARY KEY Host (Host,User)
+)
+type=ISAM;
+
+INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y');
+INSERT INTO user VALUES ('localhost','', '','N','N','N','N','N','N','N','N','N');
+
+-- exec $MYSQL_FIX_SYSTEM_TABLES --database=test
+-- enable_query_log
+-- enable_result_log
+
+-- source include/system_db_struct.inc
+
+-- disable_query_log
+
+DROP TABLE db;
+DROP TABLE host;
+DROP TABLE user;
+DROP TABLE func;
+DROP TABLE tables_priv;
+DROP TABLE columns_priv;
+
+-- enable_query_log
diff --git a/mysql-test/t/system_mysql_db_refs.test b/mysql-test/t/system_mysql_db_refs.test
new file mode 100644
index 00000000000..62d6f3de944
--- /dev/null
+++ b/mysql-test/t/system_mysql_db_refs.test
@@ -0,0 +1,101 @@
+#
+# This test must examine integrity of current system database
+#
+
+set @name="This is a very long string, that mustn't find room in a system field like Table_name. Thus it should be cut by the actual size of the field. So we can use this string to find out the actual length of the field and to use it in any compare queries";
+
+#
+# If this part is wrong, most likely you've done wrong modification of system database "mysql"
+#
+
+create table test_db select * from mysql.db;
+delete from test_db;
+--disable_warnings
+insert into test_db (Host,Db,User) values (@name,@name,@name);
+--enable_warnings
+
+create table test_host select * from mysql.host;
+delete from test_host;
+--disable_warnings
+insert into test_host (Host,Db) values (@name,@name);
+--enable_warnings
+
+create table test_user select * from mysql.user;
+delete from test_user;
+--disable_warnings
+insert into test_user (Host,User) values (@name,@name);
+--enable_warnings
+
+create table test_func select * from mysql.func;
+delete from test_func;
+--disable_warnings
+insert into test_func (name) values (@name);
+--enable_warnings
+
+create table test_tables_priv select * from mysql.tables_priv;
+delete from test_tables_priv;
+--disable_warnings
+insert into test_tables_priv (Host,Db,User,Table_name) values (@name,@name,@name,@name);
+--enable_warnings
+
+create table test_columns_priv select * from mysql.columns_priv;
+delete from test_columns_priv;
+--disable_warnings
+insert into test_columns_priv (Host,Db,User,Table_name,Column_name) values (@name,@name,@name,@name,@name);
+--enable_warnings
+
+# 'Host' field must be the same for all the tables:
+
+select
+ if(isnull(test_db.Host),'WRONG!!!','ok') as test_db_Host,
+ if(isnull(test_host.Host),'WRONG!!!','ok') as test_host_Host,
+ if(isnull(test_user.Host),'WRONG!!!','ok') as test_user_Host,
+ if(isnull(test_tables_priv.Host),'WRONG!!!','ok') as test_tables_priv_Host,
+ if(isnull(test_columns_priv.Host),'WRONG!!!','ok') as test_columns_priv_Host
+
+from test_db
+left join test_host on test_db.Host=test_host.Host
+left join test_user on test_db.Host=test_user.Host
+left join test_tables_priv on test_db.Host=test_tables_priv.Host
+left join test_columns_priv on test_db.Host=test_columns_priv.Host;
+
+# 'Db' field must be the same for all the tables:
+
+select
+ if(isnull(test_db.Db),'WRONG!!!','ok') as test_db_Db,
+ if(isnull(test_host.Db),'WRONG!!!','ok') as test_host_Db,
+ if(isnull(test_tables_priv.Db),'WRONG!!!','ok') as test_tables_priv_Db,
+ if(isnull(test_columns_priv.Db),'WRONG!!!','ok') as est_columns_priv_Db
+
+from test_db
+left join test_host on test_db.Db=test_host.Db
+left join test_tables_priv on test_db.Db=test_tables_priv.Db
+left join test_columns_priv on test_db.Db=test_columns_priv.Db;
+
+# 'User' field must be the same for all the tables:
+
+select
+ if(isnull(test_db.User),'WRONG!!!','ok') as test_db_User,
+ if(isnull(test_user.User),'WRONG!!!','ok') as test_user_User,
+ if(isnull(test_tables_priv.User),'WRONG!!!','ok') as test_tables_priv_User,
+ if(isnull(test_columns_priv.User),'WRONG!!!','ok') as test_columns_priv_User
+
+from test_db
+left join test_user on test_db.User=test_user.User
+left join test_tables_priv on test_db.User=test_tables_priv.User
+left join test_columns_priv on test_db.User=test_columns_priv.User;
+
+# 'Table_name' field must be the same for all the tables:
+
+select
+ if(isnull(test_tables_priv.User),'WRONG!!!','ok') as test_tables_priv_User,
+ if(isnull(test_columns_priv.User),'WRONG!!!','ok') as test_columns_priv_User
+from test_tables_priv
+left join test_columns_priv on test_tables_priv.Table_name=test_columns_priv.Table_name;
+
+drop table test_columns_priv;
+drop table test_tables_priv;
+drop table test_func;
+drop table test_host;
+drop table test_user;
+drop table test_db;
diff --git a/mysql-test/t/timezone.test b/mysql-test/t/timezone.test
index ab732c11a34..194602f376c 100644
--- a/mysql-test/t/timezone.test
+++ b/mysql-test/t/timezone.test
@@ -11,6 +11,8 @@ enable_query_log;
DROP TABLE IF EXISTS t1;
--enable_warnings
+# The following is because of daylight saving time
+--replace_result MEST MET
show variables like "timezone";
#
@@ -38,3 +40,10 @@ INSERT INTO t1 (ts) VALUES (Unix_timestamp('2003-03-30 04:00:01'));
SELECT ts,from_unixtime(ts) FROM t1;
DROP TABLE t1;
+#
+# Test for fix for Bug#2523
+#
+select unix_timestamp('1970-01-01 01:00:00'),
+ unix_timestamp('1970-01-01 01:00:01'),
+ unix_timestamp('2038-01-01 00:59:59'),
+ unix_timestamp('2038-01-01 01:00:00');
diff --git a/mysql-test/t/type_blob.test b/mysql-test/t/type_blob.test
index 70fa2f9b172..8c6cabd997b 100644
--- a/mysql-test/t/type_blob.test
+++ b/mysql-test/t/type_blob.test
@@ -16,7 +16,7 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7;
CREATE TABLE t1 (a blob, b text, c blob(250), d text(70000), e text(70000000));
show columns from t1;
-CREATE TABLE t2 (a char(257), b varchar(70000) binary, c varchar(70000000));
+CREATE TABLE t2 (a char(257), b varbinary(70000), c varchar(70000000));
show columns from t2;
create table t3 (a long, b long byte);
show create TABLE t3;
@@ -62,7 +62,7 @@ drop table t1;
#
# test of blob, text, char and char binary
#
-create table t1 (t text,c char(10),b blob, d char(10) binary);
+create table t1 (t text,c char(10),b blob, d binary(10));
insert into t1 values (NULL,NULL,NULL,NULL);
insert into t1 values ("","","","");
insert into t1 values ("hello","hello","hello","hello");
@@ -121,8 +121,10 @@ select c,count(*) from t1 group by c;
select d,count(*) from t1 group by d;
drop table t1;
-!$1089 create table t1 (a text, key (a(300))); # should give an error
-create table t1 (a text, key (a(255)));
+-- error 1071
+create table t1 (a text, unique (a(2100))); # should give an error
+create table t1 (a text, key (a(2100))); # key is auto-truncated
+show create table t1;
drop table t1;
#
@@ -357,3 +359,9 @@ select * from t1 where txt <= 'Chevy';
select * from t1 where txt > 'Chevy';
select * from t1 where txt >= 'Chevy';
drop table t1;
+CREATE TABLE t1 ( i int(11) NOT NULL default '0', c text NOT NULL, PRIMARY KEY (i), KEY (c(1),c(1)));
+INSERT t1 VALUES (1,''),(2,''),(3,'asdfh'),(4,'');
+select max(i) from t1 where c = '';
+drop table t1;
+
+
diff --git a/mysql-test/t/type_timestamp.test b/mysql-test/t/type_timestamp.test
index fc7cd019171..72633f9ef7d 100644
--- a/mysql-test/t/type_timestamp.test
+++ b/mysql-test/t/type_timestamp.test
@@ -76,8 +76,146 @@ select * from t1;
drop table t1;
#
-# Bug #1885
+# Test for TIMESTAMP column with default now() and on update now() clauses
#
---error 1067
-create table t1 (a timestamp default 1);
+# These statements should fail.
+--error 1293
+create table t1 (t1 timestamp, t2 timestamp default now());
+--error 1293
+create table t1 (t1 timestamp, t2 timestamp on update now());
+--error 1293
+create table t1 (t1 timestamp, t2 timestamp default now() on update now());
+--error 1293
+create table t1 (t1 timestamp default now(), t2 timestamp on update now());
+--error 1293
+create table t1 (t1 timestamp on update now(), t2 timestamp default now() on update now());
+
+# Let us test TIMESTAMP auto-update behaviour
+# Also we will test behaviour of TIMESTAMP field in SHOW CREATE TABLE and
+# behaviour of DEFAULT literal for such fields
+create table t1 (t1 timestamp default '2003-01-01 00:00:00', t2 datetime, t3 timestamp);
+SET TIMESTAMP=1000000000;
+insert into t1 values ();
+SET TIMESTAMP=1000000001;
+update t1 set t2=now();
+SET TIMESTAMP=1000000002;
+insert into t1 (t1,t3) values (default, default);
+select * from t1;
+show create table t1;
+show columns from t1;
+drop table t1;
+
+create table t1 (t1 timestamp default now(), t2 datetime, t3 timestamp);
+SET TIMESTAMP=1000000002;
+insert into t1 values ();
+SET TIMESTAMP=1000000003;
+update t1 set t2=now();
+SET TIMESTAMP=1000000003;
+insert into t1 (t1,t3) values (default, default);
+select * from t1;
+show create table t1;
+show columns from t1;
+drop table t1;
+
+create table t1 (t1 timestamp default '2003-01-01 00:00:00' on update now(), t2 datetime);
+SET TIMESTAMP=1000000004;
+insert into t1 values ();
+select * from t1;
+SET TIMESTAMP=1000000005;
+update t1 set t2=now();
+SET TIMESTAMP=1000000005;
+insert into t1 (t1) values (default);
+select * from t1;
+show create table t1;
+show columns from t1;
+drop table t1;
+
+create table t1 (t1 timestamp default now() on update now(), t2 datetime);
+SET TIMESTAMP=1000000006;
+insert into t1 values ();
+select * from t1;
+SET TIMESTAMP=1000000007;
+update t1 set t2=now();
+SET TIMESTAMP=1000000007;
+insert into t1 (t1) values (default);
+select * from t1;
+show create table t1;
+show columns from t1;
+drop table t1;
+
+create table t1 (t1 timestamp, t2 datetime, t3 timestamp);
+SET TIMESTAMP=1000000007;
+insert into t1 values ();
+select * from t1;
+SET TIMESTAMP=1000000008;
+update t1 set t2=now();
+SET TIMESTAMP=1000000008;
+insert into t1 (t1,t3) values (default, default);
+select * from t1;
+show create table t1;
+show columns from t1;
+drop table t1;
+
+# Let us test if CURRENT_TIMESTAMP also works well as default value
+# (Of course NOW and CURRENT_TIMESTAMP are same for parser but still just
+# for demonstartion.)
+create table t1 (t1 timestamp default current_timestamp on update current_timestamp, t2 datetime);
+SET TIMESTAMP=1000000009;
+insert into t1 values ();
+select * from t1;
+SET TIMESTAMP=1000000010;
+update t1 set t2=now();
+SET TIMESTAMP=1000000011;
+insert into t1 (t1) values (default);
+select * from t1;
+show create table t1;
+show columns from t1;
+delete from t1;
+
+#
+# Let us test some cases when auto-set should be disabled or influence
+# on server behavior in some other way.
+#
+
+# Update statement that explicitly sets field should not auto-set it.
+insert into t1 values ('2004-04-01 00:00:00', '2004-04-01 00:00:00');
+SET TIMESTAMP=1000000012;
+update t1 set t1= '2004-04-02 00:00:00';
+select * from t1;
+# The same for multi updates
+update t1 as ta, t1 as tb set tb.t1= '2004-04-03 00:00:00';
+select * from t1;
+drop table t1;
+
+# Now let us test replace it should behave exactly like delete+insert
+# Case where optimization is possible DEFAULT = ON UPDATE
+create table t1 (pk int primary key, t1 timestamp default current_timestamp on update current_timestamp, bulk int);
+insert into t1 values (1, '2004-04-01 00:00:00', 10);
+SET TIMESTAMP=1000000013;
+replace into t1 set pk = 1, bulk= 20;
+select * from t1;
+drop table t1;
+# Case in which there should not be optimisation
+create table t1 (pk int primary key, t1 timestamp default '2003-01-01 00:00:00' on update current_timestamp, bulk int);
+insert into t1 values (1, '2004-04-01 00:00:00', 10);
+SET TIMESTAMP=1000000014;
+replace into t1 set pk = 1, bulk= 20;
+select * from t1;
+drop table t1;
+# Other similar case
+create table t1 (pk int primary key, t1 timestamp default current_timestamp, bulk int);
+insert into t1 values (1, '2004-04-01 00:00:00', 10);
+SET TIMESTAMP=1000000015;
+replace into t1 set pk = 1, bulk= 20;
+select * from t1;
+drop table t1;
+
+# Let us test alter now
+create table t1 (t1 timestamp default current_timestamp on update current_timestamp);
+insert into t1 values ('2004-04-01 00:00:00');
+SET TIMESTAMP=1000000016;
+alter table t1 add i int default 10;
+select * from t1;
+drop table t1;
+
diff --git a/mysql-test/t/type_year.test b/mysql-test/t/type_year.test
index 9922df447fc..c67b8447494 100644
--- a/mysql-test/t/type_year.test
+++ b/mysql-test/t/type_year.test
@@ -11,3 +11,12 @@ select * from t1;
select * from t1 order by y;
select * from t1 order by y2;
drop table t1;
+
+#
+# Bug 2335
+#
+
+create table t1 (y year);
+insert into t1 values (now());
+select if(y = now(), 1, 0) from t1;
+drop table t1;
diff --git a/mysql-test/t/union.test b/mysql-test/t/union.test
index 8ce4aa997fc..9866b867427 100644
--- a/mysql-test/t/union.test
+++ b/mysql-test/t/union.test
@@ -23,7 +23,7 @@ select 't1',b,count(*) from t1 group by b UNION select 't2',b,count(*) from t2 g
(select a,b from t1 limit 2) union all (select a,b from t2 order by a) limit 4;
(select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1);
(select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1) order by b desc;
---error 1249
+--error 1250
(select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1) order by t1.b;
explain extended (select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1) order by b desc;
(select sql_calc_found_rows a,b from t1 limit 2) union all (select a,b from t2 order by a) limit 2;
@@ -213,7 +213,7 @@ select found_rows();
(SELECT SQL_CALC_FOUND_ROWS * FROM t1) UNION all (SELECT * FROM t2 LIMIT 1);
select found_rows();
# This used to work in 4.0 but not anymore in 4.1
---error 1149
+--error 1064
(SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1) UNION SELECT * FROM t2 LIMIT 1;
#select found_rows();
@@ -251,6 +251,8 @@ create temporary table t1 select a from t1 union select a from t2;
drop temporary table t1;
--error 1093
create table t1 select a from t1 union select a from t2;
+--error 1109
+select a from t1 union select a from t2 order by t2.a;
drop table t1,t2;
#
@@ -420,7 +422,7 @@ create table t1 select 1 union select -1;
select * from t1;
show create table t1;
drop table t1;
--- error 1266
+-- error 1267
create table t1 select _latin1"test" union select _latin2"testt" ;
create table t1 select _latin2"test" union select _latin2"testt" ;
show create table t1;
@@ -465,3 +467,35 @@ show status like 'Slow_queries';
select count(*) from t1 where a=7 union select count(*) from t1 where b=13;
show status like 'Slow_queries';
drop table t1;
+
+#
+# bug #2508
+#
+create table t1 ( RID int(11) not null default '0', IID int(11) not null default '0', nada varchar(50) not null,NAME varchar(50) not null,PHONE varchar(50) not null) engine=MyISAM;
+insert into t1 ( RID,IID,nada,NAME,PHONE) values (1, 1, 'main', 'a', '111'), (2, 1, 'main', 'b', '222'), (3, 1, 'main', 'c', '333'), (4, 1, 'main', 'd', '444'), (5, 1, 'main', 'e', '555'), (6, 2, 'main', 'c', '333'), (7, 2, 'main', 'd', '454'), (8, 2, 'main', 'e', '555'), (9, 2, 'main', 'f', '666'), (10, 2, 'main', 'g', '777');
+select A.NAME, A.PHONE, B.NAME, B.PHONE from t1 A left join t1 B on A.NAME = B.NAME and B.IID = 2 where A.IID = 1 and (A.PHONE <> B.PHONE or B.NAME is null) union select A.NAME, A.PHONE, B.NAME, B.PHONE from t1 B left join t1 A on B.NAME = A.NAME and A.IID = 1 where B.IID = 2 and (A.PHONE <> B.PHONE or A.NAME is null);
+drop table t1;
+#
+# Bug #2809 (UNION fails on MyIsam tables when index on second column from
+# same table)
+#
+create table t1 (col1 tinyint unsigned, col2 tinyint unsigned);
+insert into t1 values (1,2),(3,4),(5,6),(7,8),(9,10);
+select col1 n from t1 union select col2 n from t1 order by n;
+alter table t1 add index myindex (col2);
+select col1 n from t1 union select col2 n from t1 order by n;
+drop table t1;
+
+#
+# Bug #1428, incorrect handling of UNION ALL
+# NOTE: The current result is wrong, needs to be fixed!
+#
+
+create table t1 (i int);
+insert into t1 values (1);
+select * from t1 UNION select * from t1;
+select * from t1 UNION ALL select * from t1;
+select * from t1 UNION select * from t1 UNION ALL select * from t1;
+drop table t1;
+select 1 as a union all select 1 union all select 2 union select 1 union all select 2;
+
diff --git a/mysql-test/t/update.test b/mysql-test/t/update.test
index 3406dfd6158..6ca75cf0c26 100644
--- a/mysql-test/t/update.test
+++ b/mysql-test/t/update.test
@@ -125,7 +125,6 @@ insert into t1 (F1,F2,F3,cnt,groupid) values ('0','0','0',1,6),
('0','1','2',1,5), ('0','2','0',1,3), ('1','0','1',1,2),
('1','2','1',1,1), ('1','2','2',1,1), ('2','0','1',2,4),
('2','2','0',1,7);
-
delete from m1 using t1 m1,t1 m2 where m1.groupid=m2.groupid and (m1.cnt < m2.cnt or m1.cnt=m2.cnt and m1.F3>m2.F3);
select * from t1;
drop table t1;
diff --git a/mysql-test/t/user_var.test b/mysql-test/t/user_var.test
index 32ed6fe33db..a28b327cf58 100644
--- a/mysql-test/t/user_var.test
+++ b/mysql-test/t/user_var.test
@@ -84,7 +84,7 @@ select @a=_latin2'TEST' collate latin2_bin;
set @a=_latin2'test' collate latin2_general_ci;
select charset(@a),collation(@a),coercibility(@a);
select @a=_latin2'TEST';
---error 1266
+--error 1267
select @a=_latin2'TEST' collate latin2_bin;
#
@@ -97,5 +97,5 @@ select collation(@a:=_latin2'test' collate latin2_bin);
select coercibility(@a:=_latin2'test' collate latin2_bin);
select (@a:=_latin2'test' collate latin2_bin) = _latin2'TEST';
select charset(@a),collation(@a),coercibility(@a);
---error 1266
+--error 1267
select (@a:=_latin2'test' collate latin2_bin) = _latin2'TEST' collate latin2_general_ci;
diff --git a/mysql-test/t/variables.test b/mysql-test/t/variables.test
index 2fb2a663549..a82aa87558a 100644
--- a/mysql-test/t/variables.test
+++ b/mysql-test/t/variables.test
@@ -136,7 +136,7 @@ set big_tables="OFFF";
set unknown_variable=1;
--error 1232
set max_join_size="hello";
---error 1285
+--error 1286
set storage_engine=UNKNOWN_TABLE_TYPE;
--error 1231
set storage_engine=INNODB, big_tables=2;
@@ -147,11 +147,15 @@ set SESSION query_cache_size=10000;
set GLOBAL storage_engine=DEFAULT;
--error 1115
set character_set_client=UNKNOWN_CHARACTER_SET;
---error 1272
+--error 1273
set collation_connection=UNKNOWN_COLLATION;
+--error 1231
+set character_set_client=NULL;
+--error 1231
+set collation_connection=NULL;
--error 1228
set global autocommit=1;
---error 1228
+--error 1238
select @@global.timestamp;
--error 1193
set @@version='';
@@ -159,7 +163,7 @@ set @@version='';
set @@concurrent_insert=1;
--error 1228
set @@global.sql_auto_is_null=1;
---error 1228
+--error 1238
select @@global.sql_auto_is_null;
--error 1229
set myisam_max_sort_file_size=100;
@@ -279,6 +283,21 @@ drop table t1,t2;
select @@xxxxxxxxxx;
select 1;
+--error 1238
+select @@session.key_buffer_size;
+
+--error 1229
+set ft_boolean_syntax = @@init_connect;
+--error 1231
+set global ft_boolean_syntax = @@init_connect;
+--error 1229
+set init_connect = NULL;
+set global init_connect = NULL;
+--error 1229
+set ft_boolean_syntax = @@init_connect;
+--error 1231
+set global ft_boolean_syntax = @@init_connect;
+
#
# swap
#
@@ -295,3 +314,16 @@ set @a=1, @b=2;
set @a=@b, @b=@a;
select @a, @b;
+#
+# Bug#2586:Disallow global/session/local as structured var. instance names
+#
+--error 1064
+set @@global.global.key_buffer_size= 1;
+--error 1064
+set GLOBAL global.key_buffer_size= 1;
+--error 1064
+SELECT @@global.global.key_buffer_size;
+--error 1064
+SELECT @@global.session.key_buffer_size;
+--error 1064
+SELECT @@global.local.key_buffer_size;