summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/include/have_sjis.inc4
-rw-r--r--mysql-test/include/system_db_struct.inc12
-rw-r--r--mysql-test/install_test_db.sh33
-rw-r--r--mysql-test/mysql-test-run.sh78
-rw-r--r--mysql-test/r/alter_table.result70
-rw-r--r--mysql-test/r/auto_increment.result8
-rw-r--r--mysql-test/r/bdb-crash.result7
-rw-r--r--mysql-test/r/bdb.result25
-rw-r--r--mysql-test/r/bigint.result3
-rw-r--r--mysql-test/r/binary.result33
-rw-r--r--mysql-test/r/cast.result18
-rw-r--r--mysql-test/r/compare.result24
-rw-r--r--mysql-test/r/create.result94
-rw-r--r--mysql-test/r/ctype_collate.result16
-rw-r--r--mysql-test/r/ctype_cp1251.result32
-rw-r--r--mysql-test/r/ctype_create.result15
-rw-r--r--mysql-test/r/ctype_mb.result6
-rw-r--r--mysql-test/r/ctype_sjis.result43
-rw-r--r--mysql-test/r/ctype_tis620.result2788
-rw-r--r--mysql-test/r/ctype_ujis.result28
-rw-r--r--mysql-test/r/ctype_utf8.result83
-rw-r--r--mysql-test/r/date_formats.result113
-rw-r--r--mysql-test/r/delete.result8
-rw-r--r--mysql-test/r/derived.result14
-rw-r--r--mysql-test/r/drop.result1
-rw-r--r--mysql-test/r/drop_temp_table.result8
-rw-r--r--mysql-test/r/endspace.result196
-rw-r--r--mysql-test/r/fulltext.result16
-rw-r--r--mysql-test/r/fulltext_var.result33
-rw-r--r--mysql-test/r/func_compress.result4
-rw-r--r--mysql-test/r/func_gconcat.result113
-rw-r--r--mysql-test/r/func_group.result2
-rw-r--r--mysql-test/r/func_if.result6
-rw-r--r--mysql-test/r/func_like.result15
-rw-r--r--mysql-test/r/func_math.result18
-rw-r--r--mysql-test/r/func_misc.result7
-rw-r--r--mysql-test/r/func_sapdb.result25
-rw-r--r--mysql-test/r/func_str.result75
-rw-r--r--mysql-test/r/func_test.result3
-rw-r--r--mysql-test/r/func_time.result36
-rw-r--r--mysql-test/r/gis-rtree.result40
-rw-r--r--mysql-test/r/gis.result212
-rw-r--r--mysql-test/r/grant.result45
-rw-r--r--mysql-test/r/grant2.result3
-rw-r--r--mysql-test/r/grant_cache.result59
-rw-r--r--mysql-test/r/handler.result18
-rw-r--r--mysql-test/r/have_sjis.require2
-rw-r--r--mysql-test/r/heap_btree.result17
-rw-r--r--mysql-test/r/innodb.result41
-rw-r--r--mysql-test/r/insert.result239
-rw-r--r--mysql-test/r/insert_select.result34
-rw-r--r--mysql-test/r/insert_update.result38
-rw-r--r--mysql-test/r/join.result6
-rw-r--r--mysql-test/r/join_outer.result12
-rw-r--r--mysql-test/r/key.result33
-rw-r--r--mysql-test/r/loaddata.result34
-rw-r--r--mysql-test/r/lock.result4
-rw-r--r--mysql-test/r/lowercase0.require3
-rw-r--r--mysql-test/r/lowercase2.require2
-rw-r--r--mysql-test/r/lowercase_table.result18
-rw-r--r--mysql-test/r/lowercase_table2.result123
-rw-r--r--mysql-test/r/lowercase_table3.result10
-rw-r--r--mysql-test/r/lowercase_table_qcache.result24
-rw-r--r--mysql-test/r/metadata.result62
-rw-r--r--mysql-test/r/multi_update.result39
-rw-r--r--mysql-test/r/myisam-blob.result44
-rw-r--r--mysql-test/r/myisam.result94
-rw-r--r--mysql-test/r/mysqldump.result112
-rw-r--r--mysql-test/r/negation_elimination.result4
-rw-r--r--mysql-test/r/null.result22
-rw-r--r--mysql-test/r/null_key.result2
-rw-r--r--mysql-test/r/order_by.result48
-rw-r--r--mysql-test/r/query_cache.result32
-rw-r--r--mysql-test/r/raid.result1
-rw-r--r--mysql-test/r/range.result16
-rw-r--r--mysql-test/r/rename.result14
-rw-r--r--mysql-test/r/repair_part1.result15
-rw-r--r--mysql-test/r/rpl000002.result18
-rw-r--r--mysql-test/r/rpl000009.result12
-rw-r--r--mysql-test/r/rpl_error_ignored_table.result26
-rw-r--r--mysql-test/r/rpl_heap.result29
-rw-r--r--mysql-test/r/rpl_insert_id.result2
-rw-r--r--mysql-test/r/rpl_multi_delete.result22
-rw-r--r--mysql-test/r/rpl_optimize.result27
-rw-r--r--mysql-test/r/rpl_relayrotate.result15
-rw-r--r--mysql-test/r/rpl_temporary.result15
-rw-r--r--mysql-test/r/rpl_trunc_binlog.result2
-rw-r--r--mysql-test/r/rpl_until.result2
-rw-r--r--mysql-test/r/select.result28
-rw-r--r--mysql-test/r/select_found.result18
-rw-r--r--mysql-test/r/show_check.result173
-rw-r--r--mysql-test/r/subselect.result154
-rw-r--r--mysql-test/r/subselect2.result4
-rw-r--r--mysql-test/r/subselect_innodb.result2
-rw-r--r--mysql-test/r/symlink.result4
-rw-r--r--mysql-test/r/synchronization.result162
-rw-r--r--mysql-test/r/system_mysql_db.result123
-rw-r--r--mysql-test/r/system_mysql_db_refs.result67
-rw-r--r--mysql-test/r/timezone.result6
-rw-r--r--mysql-test/r/true.require2
-rw-r--r--mysql-test/r/type_blob.result34
-rw-r--r--mysql-test/r/type_datetime.result10
-rw-r--r--mysql-test/r/type_decimal.result110
-rw-r--r--mysql-test/r/type_enum.result4
-rw-r--r--mysql-test/r/type_float.result4
-rw-r--r--mysql-test/r/type_ranges.result72
-rw-r--r--mysql-test/r/type_time.result8
-rw-r--r--mysql-test/r/type_timestamp.result215
-rw-r--r--mysql-test/r/type_uint.result2
-rw-r--r--mysql-test/r/type_year.result8
-rw-r--r--mysql-test/r/union.result79
-rw-r--r--mysql-test/r/variables.result37
-rw-r--r--mysql-test/r/warnings.result98
-rw-r--r--mysql-test/std_data/init_file.dat1
-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
218 files changed, 9232 insertions, 984 deletions
diff --git a/mysql-test/include/have_sjis.inc b/mysql-test/include/have_sjis.inc
new file mode 100644
index 00000000000..0d580a3a232
--- /dev/null
+++ b/mysql-test/include/have_sjis.inc
@@ -0,0 +1,4 @@
+-- require r/have_sjis.require
+disable_query_log;
+show collation like "sjis_japanese_ci";
+enable_query_log;
diff --git a/mysql-test/include/system_db_struct.inc b/mysql-test/include/system_db_struct.inc
new file mode 100644
index 00000000000..5a7aa26c65a
--- /dev/null
+++ b/mysql-test/include/system_db_struct.inc
@@ -0,0 +1,12 @@
+#
+# This test must examine structure of current system database
+#
+
+-- replace_result Tables_in_mysql Tables_in_db Tables_in_test Tables_in_db
+show tables;
+show create table db;
+show create table host;
+show create table user;
+show create table func;
+show create table tables_priv;
+show create table columns_priv;
diff --git a/mysql-test/install_test_db.sh b/mysql-test/install_test_db.sh
index 11ed1bb312c..ac5435f9832 100644
--- a/mysql-test/install_test_db.sh
+++ b/mysql-test/install_test_db.sh
@@ -5,20 +5,27 @@
# This scripts creates the privilege tables db, host, user, tables_priv,
# columns_priv in the mysql database, as well as the func table.
-if [ x$1 = x"-bin" ]; then
- shift 1
- execdir=../bin
- bindir=../bin
- BINARY_DIST=1
- fix_bin=mysql-test
- scriptdir=../bin
- libexecdir=../libexec
+if [ x$1 = x"--bin" ]; then
+ shift 1
+
+ # Check if it's a binary distribution or a 'make install'
+ if test -x ../libexec/mysqld
+ then
+ execdir=../libexec
+ else
+ execdir=../bin
+ fi
+ bindir=../bin
+ BINARY_DIST=1
+ fix_bin=mysql-test
+ scriptdir=../bin
+ libexecdir=../libexec
else
- execdir=../sql
- bindir=../client
- fix_bin=.
- scriptdir=../scripts
- libexecdir=../libexec
+ execdir=../sql
+ bindir=../client
+ fix_bin=.
+ scriptdir=../scripts
+ libexecdir=../libexec
fi
vardir=var
diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh
index 3f7efd3d6bc..d0ce62cdcee 100644
--- a/mysql-test/mysql-test-run.sh
+++ b/mysql-test/mysql-test-run.sh
@@ -10,7 +10,7 @@
# Access Definitions
#--
DB=test
-DBPASSWD=
+DBPASSWD=""
VERBOSE=""
USE_MANAGER=0
MY_TZ=GMT-3
@@ -18,7 +18,17 @@ TZ=$MY_TZ; export TZ # for UNIX_TIMESTAMP tests to work
LOCAL_SOCKET=@MYSQL_UNIX_ADDR@
# For query_cache test
-ulimit -n 1024
+case `uname` in
+ SCO_SV | UnixWare | OpenUNIX )
+ # do nothing (Causes strange behavior)
+ ;;
+ QNX)
+ # do nothing (avoid error message)
+ ;;
+ * )
+ ulimit -n 1024
+ ;;
+esac
#++
# Program Definitions
@@ -183,7 +193,8 @@ MY_LOG_DIR="$MYSQL_TEST_DIR/var/log"
# Set LD_LIBRARY_PATH if we are using shared libraries
#
LD_LIBRARY_PATH="$BASEDIR/lib:$BASEDIR/libmysql/.libs:$LD_LIBRARY_PATH"
-export LD_LIBRARY_PATH
+DYLD_LIBRARY_PATH="$BASEDIR/lib:$BASEDIR/libmysql/.libs:$DYLD_LIBRARY_PATH"
+export LD_LIBRARY_PATH DYLD_LIBRARY_PATH
MASTER_RUNNING=0
MASTER_MYPORT=9306
@@ -311,6 +322,8 @@ while test $# -gt 0; do
$ECHO "Note: you will get more meaningful output on a source distribution compiled with debugging option when running tests with --gdb option"
fi
DO_GDB=1
+ EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --gdb"
+ EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --gdb"
# This needs to be checked properly
# USE_MANAGER=1
USE_RUNNING_SERVER=""
@@ -412,8 +425,7 @@ SLAVE_MYERR="$MYSQL_TEST_DIR/var/log/slave.err"
CURRENT_TEST="$MYSQL_TEST_DIR/var/log/current_test"
SMALL_SERVER="--key_buffer_size=1M --sort_buffer=256K --max_heap_table_size=1M"
-export MASTER_MYPORT
-export SLAVE_MYPORT
+export MASTER_MYPORT SLAVE_MYPORT
if [ x$SOURCE_DIST = x1 ] ; then
MY_BASEDIR=$MYSQL_TEST_DIR
@@ -460,15 +472,17 @@ if [ x$SOURCE_DIST = x1 ] ; then
MYSQL_TEST="strace -o $MYSQL_TEST_DIR/var/log/mysqltest.strace $MYSQL_TEST"
fi
- MYSQLADMIN="$BASEDIR/client/mysqladmin"
+ CLIENT_BINDIR="$BASEDIR/client"
+ MYSQLADMIN="$CLIENT_BINDIR/mysqladmin"
WAIT_PID="$BASEDIR/extra/mysql_waitpid"
- MYSQL_MANAGER_CLIENT="$BASEDIR/client/mysqlmanagerc"
+ MYSQL_MANAGER_CLIENT="$CLIENT_BINDIR/mysqlmanagerc"
MYSQL_MANAGER="$BASEDIR/tools/mysqlmanager"
- MYSQL_MANAGER_PWGEN="$BASEDIR/client/mysqlmanager-pwgen"
- MYSQL="$BASEDIR/client/mysql"
+ MYSQL_MANAGER_PWGEN="$CLIENT_BINDIR/mysqlmanager-pwgen"
+ MYSQL="$CLIENT_BINDIR/mysql"
LANGUAGE="$BASEDIR/sql/share/english/"
CHARSETSDIR="$BASEDIR/sql/share/charsets"
INSTALL_DB="./install_test_db"
+ MYSQL_FIX_SYSTEM_TABLES="$BASEDIR/scripts/mysql_fix_privilege_tables"
else
if test -x "$BASEDIR/libexec/mysqld"
then
@@ -476,16 +490,18 @@ else
else
MYSQLD="$VALGRIND $BASEDIR/bin/mysqld"
fi
- MYSQL_TEST="$BASEDIR/bin/mysqltest"
- MYSQL_DUMP="$BASEDIR/bin/mysqldump"
- MYSQL_BINLOG="$BASEDIR/bin/mysqlbinlog"
- MYSQLADMIN="$BASEDIR/bin/mysqladmin"
- WAIT_PID="$BASEDIR/bin/mysql_waitpid"
- MYSQL_MANAGER="$BASEDIR/bin/mysqlmanager"
- MYSQL_MANAGER_CLIENT="$BASEDIR/bin/mysqlmanagerc"
- MYSQL_MANAGER_PWGEN="$BASEDIR/bin/mysqlmanager-pwgen"
- MYSQL="$BASEDIR/bin/mysql"
- INSTALL_DB="./install_test_db -bin"
+ CLIENT_BINDIR="$BASEDIR/bin"
+ MYSQL_TEST="$CLIENT_BINDIR/mysqltest"
+ MYSQL_DUMP="$CLIENT_BINDIR/mysqldump"
+ MYSQL_BINLOG="$CLIENT_BINDIR/mysqlbinlog"
+ MYSQLADMIN="$CLIENT_BINDIR/mysqladmin"
+ WAIT_PID="$CLIENT_BINDIR/mysql_waitpid"
+ MYSQL_MANAGER="$CLIENT_BINDIR/mysqlmanager"
+ MYSQL_MANAGER_CLIENT="$CLIENT_BINDIR/mysqlmanagerc"
+ MYSQL_MANAGER_PWGEN="$CLIENT_BINDIR/mysqlmanager-pwgen"
+ MYSQL="$CLIENT_BINDIR/mysql"
+ INSTALL_DB="./install_test_db --bin"
+ MYSQL_FIX_SYSTEM_TABLES="$CLIENT_BINDIR/mysql_fix_privilege_tables"
if test -d "$BASEDIR/share/mysql/english"
then
LANGUAGE="$BASEDIR/share/mysql/english/"
@@ -496,10 +512,12 @@ else
fi
fi
-MYSQL_DUMP="$MYSQL_DUMP --no-defaults -uroot --socket=$MASTER_MYSOCK $EXTRA_MYSQLDUMP_OPT"
+MYSQL_DUMP="$MYSQL_DUMP --no-defaults -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLDUMP_OPT"
MYSQL_BINLOG="$MYSQL_BINLOG --no-defaults --local-load=$MYSQL_TMP_DIR $EXTRA_MYSQLBINLOG_OPT"
-export MYSQL_DUMP
-export MYSQL_BINLOG
+MYSQL_FIX_SYSTEM_TABLES="$MYSQL_FIX_SYSTEM_TABLES --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD --basedir=$BASEDIR --bindir=$CLIENT_BINDIR --verbose=1"
+MYSQL="$MYSQL --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD"
+export MYSQL MYSQL_DUMP MYSQL_BINLOG MYSQL_FIX_SYSTEM_TABLES CLIENT_BINDIR
+
if [ -z "$MASTER_MYSQLD" ]
then
@@ -527,9 +545,9 @@ fi
if [ -w / ]
then
- # We are running as root; We need to add the --root argument
- EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --user=root"
- EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --user=root"
+ # We are running as root; We need to add the --root argument
+ EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --user=root"
+ EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --user=root"
fi
@@ -1176,6 +1194,7 @@ run_testcase ()
master_init_script=$TESTDIR/$tname-master.sh
slave_init_script=$TESTDIR/$tname-slave.sh
slave_master_info_file=$TESTDIR/$tname.slave-mi
+ result_file=$tname
echo $tname > $CURRENT_TEST
SKIP_SLAVE=`$EXPR \( $tname : rpl \) = 0`
if [ "$USE_MANAGER" = 1 ] ; then
@@ -1225,6 +1244,11 @@ run_testcase ()
# Note that this must be set to space, not "" for test-reset to work
EXTRA_MASTER_OPT=" "
;;
+ --result-file=*)
+ result_file=`$ECHO "$EXTRA_MASTER_OPT" | $SED -e "s;--result-file=;;"`
+ # Note that this must be set to space, not "" for test-reset to work
+ EXTRA_MASTER_OPT=" "
+ ;;
esac
stop_master
echo "CURRENT_TEST: $tname" >> $MASTER_MYERR
@@ -1282,7 +1306,7 @@ run_testcase ()
if [ -f $tf ] ; then
$RM -f r/$tname.*reject
- mysql_test_args="-R r/$tname.result $EXTRA_MYSQL_TEST_OPT"
+ mysql_test_args="-R r/$result_file.result $EXTRA_MYSQL_TEST_OPT"
if [ -z "$DO_CLIENT_GDB" ] ; then
`$MYSQL_TEST $mysql_test_args < $tf 2> $TIMEFILE`;
else
@@ -1317,7 +1341,7 @@ run_testcase ()
$ECHO "$RES$RES_SPACE [ fail ]"
$ECHO
error_is
- show_failed_diff $tname
+ show_failed_diff $result_file
$ECHO
if [ x$FORCE != x1 ] ; then
$ECHO "Aborting: $tname failed. To continue, re-run with '--force'."
diff --git a/mysql-test/r/alter_table.result b/mysql-test/r/alter_table.result
index ce324dc1fa8..a7c1dbde697 100644
--- a/mysql-test/r/alter_table.result
+++ b/mysql-test/r/alter_table.result
@@ -1,4 +1,5 @@
drop table if exists t1,t2;
+drop database if exists mysqltest;
create table t1 (
col1 int not null auto_increment primary key,
col2 varchar(30) not null,
@@ -85,6 +86,45 @@ OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
DROP TABLE t1;
+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;
+i
+1
+2
+3
+4
+drop table t1;
+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;
+name
+current
+select * from mysqltest.t1;
+name
+mysqltest
+alter table t1 rename mysqltest.t1;
+ERROR 42S01: Table 't1' already exists
+select * from t1;
+name
+current
+select * from mysqltest.t1;
+name
+mysqltest
+drop table t1;
+drop database mysqltest;
+create database mysqltest;
+create table mysqltest.t1 (a int,b int,c int);
+grant all on mysqltest.t1 to mysqltest_1@localhost;
+alter table t1 rename t2;
+ERROR 42000: insert command denied to user: 'mysqltest_1'@'localhost' for table 't2'
+revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
+delete from mysql.user where user='mysqltest_1';
+drop database mysqltest;
create table t1 (n1 int not null, n2 int, n3 int, n4 float,
unique(n1),
key (n1, n2, n3, n4),
@@ -143,16 +183,6 @@ t1 1 n4 3 n2 A 10 NULL NULL YES BTREE
t1 1 n4 4 n3 A 10 NULL NULL YES BTREE
drop table t1;
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;
-i
-1
-2
-3
-4
-drop table t1;
-create table t1 (i int unsigned not null auto_increment primary key);
alter table t1 rename t2;
alter table t2 rename t1, add c char(10) comment "no comment";
show columns from t1;
@@ -291,7 +321,7 @@ alter table t1 change a a char(10) character set cp1251;
select a,hex(a) from t1;
a hex(a)
ÔÅÓÔ F2E5F1F2
-alter table t1 change a a char(10) binary;
+alter table t1 change a a binary(10);
select a,hex(a) from t1;
a hex(a)
òåñò F2E5F1F2
@@ -330,7 +360,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` char(10) character set koi8r default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
-alter table t1 CHARACTER SET latin1;
+alter table t1 CONVERT TO CHARACTER SET latin1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -343,6 +373,22 @@ t1 CREATE TABLE `t1` (
`a` char(10) character set latin1 default NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251
drop table t1;
+create table t1 (myblob longblob,mytext longtext)
+default charset latin1 collate latin1_general_cs;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `myblob` longblob,
+ `mytext` longtext collate latin1_general_cs
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs
+alter table t1 character set latin2;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `myblob` longblob,
+ `mytext` longtext character set latin1 collate latin1_general_cs
+) ENGINE=MyISAM DEFAULT CHARSET=latin2
+drop table t1;
CREATE TABLE t1 (
Host varchar(16) binary NOT NULL default '',
User varchar(16) binary NOT NULL default '',
diff --git a/mysql-test/r/auto_increment.result b/mysql-test/r/auto_increment.result
index 7a7faf0db9a..9541fa6d355 100644
--- a/mysql-test/r/auto_increment.result
+++ b/mysql-test/r/auto_increment.result
@@ -142,7 +142,7 @@ explain extended select last_insert_id();
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select high_priority no_cache 255 AS `last_insert_id()`
+Note 1003 select high_priority no_cache last_insert_id() AS `last_insert_id()`
insert into t1 set i = 254;
ERROR 23000: Duplicate entry '254' for key 1
select last_insert_id();
@@ -162,7 +162,7 @@ last_insert_id()
255
insert into t1 set i = null;
Warnings:
-Warning 1263 Data truncated, out of range for column 'i' at row 1
+Warning 1264 Data truncated, out of range for column 'i' at row 1
select last_insert_id();
last_insert_id()
255
@@ -213,7 +213,7 @@ a b
delete from t1 where a=0;
update t1 set a=NULL where b=6;
Warnings:
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'a' at row 4
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'a' at row 4
update t1 set a=300 where b=7;
SET SQL_MODE='';
insert into t1(a,b)values(NULL,8);
@@ -255,7 +255,7 @@ a b
delete from t1 where a=0;
update t1 set a=NULL where b=13;
Warnings:
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'a' at row 9
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'a' at row 9
update t1 set a=500 where b=14;
select * from t1 order by b;
a b
diff --git a/mysql-test/r/bdb-crash.result b/mysql-test/r/bdb-crash.result
index 8f5b8c08f1d..778890e85e3 100644
--- a/mysql-test/r/bdb-crash.result
+++ b/mysql-test/r/bdb-crash.result
@@ -30,3 +30,10 @@ ChargeID ServiceID ChargeDate ChargeAmount FedTaxes ProvTaxes ChargeStatus Charg
1 1 2001-03-01 1.00 1.00 1.00 New blablabla NULL now
2 1 2001-03-01 1.00 1.00 1.00 New NULL NULL now
drop table t1;
+create table t1 (a int) engine=bdb;
+set autocommit=0;
+insert into t1 values(1);
+analyze table t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Operation need committed state
+drop table t1;
diff --git a/mysql-test/r/bdb.result b/mysql-test/r/bdb.result
index b02574cf8a3..bee40eac30d 100644
--- a/mysql-test/r/bdb.result
+++ b/mysql-test/r/bdb.result
@@ -1156,3 +1156,28 @@ create table t2 (c char(8) not null, b char(8) not null, a char(8) not null, pri
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;
+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;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2
+select a from t1;
+a
+a
+A
+explain select b from t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL b 4 NULL 2 Using index
+select b from t1;
+b
+1
+2
+alter table t1 modify a char(10) binary;
+explain select a from t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 11 NULL 2 Using index
+select a from t1;
+a
+A
+a
+drop table t1;
diff --git a/mysql-test/r/bigint.result b/mysql-test/r/bigint.result
index 4c6e1645451..4c70e72bdfb 100644
--- a/mysql-test/r/bigint.result
+++ b/mysql-test/r/bigint.result
@@ -84,3 +84,6 @@ quantity
10000000000000000000
10000000000000000000
drop table t1;
+SELECT '0x8000000000000001'+0;
+'0x8000000000000001'+0
+0
diff --git a/mysql-test/r/binary.result b/mysql-test/r/binary.result
index d4576791aed..f6ad190b05a 100644
--- a/mysql-test/r/binary.result
+++ b/mysql-test/r/binary.result
@@ -59,10 +59,8 @@ concat("-",a,"-",b,"-")
-hello-hello-
select concat("-",a,"-",b,"-") from t1 where b="hello ";
concat("-",a,"-",b,"-")
--hello-hello-
select concat("-",a,"-",b,"-") from t1 ignore index (b) where b="hello ";
concat("-",a,"-",b,"-")
--hello-hello-
alter table t1 modify b tinytext not null, drop key b, add key (b(100));
select concat("-",a,"-",b,"-") from t1 where b="hello ";
concat("-",a,"-",b,"-")
@@ -81,3 +79,34 @@ NULL
select b from t1 having binary b like '';
b
drop table t1;
+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;
+upper(a) upper(b)
+AAA bbb
+AAA BBB
+select lower(a),lower(b) from t1;
+lower(a) lower(b)
+aaa bbb
+aaa BBB
+select * from t1 where upper(a)='AAA';
+a b
+aaa bbb
+AAA BBB
+select * from t1 where lower(a)='aaa';
+a b
+aaa bbb
+AAA BBB
+select * from t1 where upper(b)='BBB';
+a b
+AAA BBB
+select * from t1 where lower(b)='bbb';
+a b
+aaa bbb
+select charset(a), charset(b), charset(binary 'ccc') from t1 limit 1;
+charset(a) charset(b) charset(binary 'ccc')
+latin1 binary latin1
+select collation(a), collation(b), collation(binary 'ccc') from t1 limit 1;
+collation(a) collation(b) collation(binary 'ccc')
+latin1_bin binary latin1_bin
+drop table t1;
diff --git a/mysql-test/r/cast.result b/mysql-test/r/cast.result
index 877a349d188..cdeb5b3dc21 100644
--- a/mysql-test/r/cast.result
+++ b/mysql-test/r/cast.result
@@ -51,11 +51,11 @@ CONVERT(DATE "2004-01-22 21:45:33",CHAR)
select CONVERT(DATE "2004-01-22 21:45:33",CHAR(4));
CONVERT(DATE "2004-01-22 21:45:33",CHAR(4))
2004
-select CONVERT(DATE "2004-01-22 21:45:33",CHAR(4) BINARY);
-CONVERT(DATE "2004-01-22 21:45:33",CHAR(4) BINARY)
+select CONVERT(DATE "2004-01-22 21:45:33",BINARY(4));
+CONVERT(DATE "2004-01-22 21:45:33",BINARY(4))
2004
-select CAST(DATE "2004-01-22 21:45:33" AS CHAR(4) BINARY);
-CAST(DATE "2004-01-22 21:45:33" AS CHAR(4) BINARY)
+select CAST(DATE "2004-01-22 21:45:33" AS BINARY(4));
+CAST(DATE "2004-01-22 21:45:33" AS BINARY(4))
2004
set names binary;
select cast(_latin1'test' as char character set latin2);
@@ -91,11 +91,11 @@ ab a ab a a
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` char(2) binary NOT NULL default '',
- `c2` char(2) binary NOT NULL default '',
- `c3` char(2) binary NOT NULL default '',
- `c4` char(2) binary NOT NULL default '',
- `c5` char(2) binary NOT NULL default ''
+ `c1` binary(2) NOT NULL default '',
+ `c2` binary(2) NOT NULL default '',
+ `c3` binary(2) NOT NULL default '',
+ `c4` binary(2) NOT NULL default '',
+ `c5` binary(2) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
select
diff --git a/mysql-test/r/compare.result b/mysql-test/r/compare.result
index 3ad3465fac0..bf8a5106044 100644
--- a/mysql-test/r/compare.result
+++ b/mysql-test/r/compare.result
@@ -12,3 +12,27 @@ select * from t1;
id
000000000001
drop table t1;
+SELECT 'a' = 'a ';
+'a' = 'a '
+1
+SELECT 'a\0' < 'a';
+'a\0' < 'a'
+1
+SELECT 'a\0' < 'a ';
+'a\0' < 'a '
+1
+SELECT 'a\t' < 'a';
+'a\t' < 'a'
+1
+SELECT 'a\t' < 'a ';
+'a\t' < 'a '
+1
+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;
+hex(a) STRCMP(a,'a') STRCMP(a,'a ')
+61 0 0
+6100 -1 -1
+6109 -1 -1
+61 0 0
+DROP TABLE t1;
diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result
index 940c9e9a50b..ce72c353d20 100644
--- a/mysql-test/r/create.result
+++ b/mysql-test/r/create.result
@@ -11,7 +11,7 @@ create table t1 (b char(0) not null);
create table if not exists t1 (b char(0) not null);
insert into t1 values (""),(null);
Warnings:
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'b' at row 2
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'b' at row 2
select * from t1;
b
@@ -44,6 +44,12 @@ create table `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
ERROR 42000: Incorrect table name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
create table a (`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` int);
ERROR 42000: Identifier name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' is too long
+create table test (a datetime default now());
+ERROR 42000: Invalid default value for 'a'
+create table test (a datetime on update now());
+ERROR HY000: Invalid ON UPDATE clause for 'a' field
+create table test (a int default 100 auto_increment);
+ERROR 42000: Invalid default value for 'a'
create table 1ea10 (1a20 int,1e int);
insert into 1ea10 values(1,1);
select 1ea10.1a20,1e+ 1e+10 from 1ea10;
@@ -104,9 +110,9 @@ drop table t2;
create table t2 select CAST("2001-12-29" AS DATE) as d, CAST("20:45:11" AS TIME) as t, CAST("2001-12-29 20:45:11" AS DATETIME) as dt;
describe t2;
Field Type Null Key Default Extra
-d date 0000-00-00
-t time 00:00:00
-dt datetime 0000-00-00 00:00:00
+d date YES NULL
+t time YES NULL
+dt datetime YES NULL
drop table t1,t2;
create table t1 (a tinyint);
create table t2 (a int) select * from t1;
@@ -262,6 +268,12 @@ a b
0 2
3 4
drop table t1;
+create table `t1 `(a int);
+ERROR 42000: Incorrect table name 't1 '
+create database `db1 `;
+ERROR 42000: Incorrect database name 'db1 '
+create table t1(`a ` int);
+ERROR 42000: Incorrect column name 'a '
create table t1 (a int, key(a));
create table t2 (b int, foreign key(b) references t1(a), key(b));
drop table if exists t1,t2;
@@ -396,12 +408,12 @@ Field Type Null Key Default Extra
a int(11) YES NULL
b bigint(11) 0
c bigint(10) 0
-d date 0000-00-00
+d date YES NULL
e char(1)
-f datetime 0000-00-00 00:00:00
-g time 00:00:00
+f datetime YES NULL
+g time YES NULL
h longblob
-dd time 00:00:00
+dd time YES NULL
select * from t2;
a b c d e f g h dd
1 -7 7 2000-01-01 b 2000-01-01 00:00:00 05:04:03 yet another binary data 02:00:00
@@ -456,6 +468,20 @@ Field Type Null Key Default Extra
name varchar(10) YES NULL
age smallint(6) YES -1
drop table t1, t2;
+create table t1(cenum enum('a'), cset set('b'));
+create table t2(cenum enum('a','a'), cset set('b','b'));
+Warnings:
+Note 1291 Column 'cenum' has duplicated value 'a' in ENUM
+Note 1291 Column 'cset' has duplicated value 'b' in SET
+create table t3(cenum enum('a','A','a','c','c'), cset set('b','B','b','d','d'));
+Warnings:
+Note 1291 Column 'cenum' has duplicated value 'a' in ENUM
+Note 1291 Column 'cenum' has duplicated value 'A' in ENUM
+Note 1291 Column 'cenum' has duplicated value 'c' in ENUM
+Note 1291 Column 'cset' has duplicated value 'b' in SET
+Note 1291 Column 'cset' has duplicated value 'B' in SET
+Note 1291 Column 'cset' has duplicated value 'd' in SET
+drop table t1, t2, t3;
create database test_$1;
use test_$1;
select database();
@@ -468,3 +494,55 @@ NULL
select database();
database()
NULL
+use test;
+create table t1 (a int, index `primary` (a));
+ERROR 42000: Incorrect index name 'primary'
+create table t1 (a int, index `PRIMARY` (a));
+ERROR 42000: Incorrect index name 'PRIMARY'
+create table t1 (`primary` int, index(`primary`));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `primary` int(11) default NULL,
+ KEY `primary_2` (`primary`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+create table t2 (`PRIMARY` int, index(`PRIMARY`));
+show create table t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `PRIMARY` int(11) default NULL,
+ KEY `PRIMARY_2` (`PRIMARY`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+create table t3 (a int);
+alter table t3 add index `primary` (a);
+ERROR 42000: Incorrect index name 'primary'
+alter table t3 add index `PRIMARY` (a);
+ERROR 42000: Incorrect index name 'PRIMARY'
+create table t4 (`primary` int);
+alter table t4 add index(`primary`);
+show create table t4;
+Table Create Table
+t4 CREATE TABLE `t4` (
+ `primary` int(11) default NULL,
+ KEY `primary_2` (`primary`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+create table t5 (`PRIMARY` int);
+alter table t5 add index(`PRIMARY`);
+show create table t5;
+Table Create Table
+t5 CREATE TABLE `t5` (
+ `PRIMARY` int(11) default NULL,
+ KEY `PRIMARY_2` (`PRIMARY`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1, t2, t3, t4, t5;
+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;
+dsc countOfRuns
+NULL 1
+Test 0
+NULL 1
+drop table t1, t2, t3;
diff --git a/mysql-test/r/ctype_collate.result b/mysql-test/r/ctype_collate.result
index add730fe68f..8f4ddedbfcf 100644
--- a/mysql-test/r/ctype_collate.result
+++ b/mysql-test/r/ctype_collate.result
@@ -337,15 +337,12 @@ SELECT latin1_f,count(*) FROM t1 GROUP BY latin1_f COLLATE latin1_german2_ci;
latin1_f count(*)
A 4
AD 2
-AE 2
-Ä 2
+AE 4
AF 2
B 2
-SS 2
-ß 1
+SS 3
U 2
-UE 2
-Ü 2
+UE 4
Y 2
Z 2
SELECT latin1_f,count(*) FROM t1 GROUP BY latin1_f COLLATE latin1_general_ci;
@@ -431,13 +428,10 @@ A
AD
AE
AF
B
U
UE
SS
Y
Z
SELECT DISTINCT latin1_f COLLATE latin1_general_ci FROM t1;
@@ -509,8 +503,8 @@ ALTER TABLE t1 CHARACTER SET latin1 COLLATE latin1_bin;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `latin1_f` char(32) character set latin1 collate latin1_bin default NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
+ `latin1_f` char(32) collate latin1_bin default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_bin
SHOW FIELDS FROM t1;
Field Type Null Key Default Extra
latin1_f char(32) YES NULL
diff --git a/mysql-test/r/ctype_cp1251.result b/mysql-test/r/ctype_cp1251.result
index a1f860e1f83..2a59f976156 100644
--- a/mysql-test/r/ctype_cp1251.result
+++ b/mysql-test/r/ctype_cp1251.result
@@ -1,4 +1,5 @@
drop table if exists t1;
+SET NAMES cp1251;
create table t1 (a varchar(10) not null);
insert into t1 values ("a"),("ab"),("abc");
select * from t1;
@@ -22,3 +23,34 @@ a
b
c
drop table t1;
+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;
+upper(a) upper(b)
+AAA bbb
+AAA BBB
+select lower(a),lower(b) from t1;
+lower(a) lower(b)
+aaa bbb
+aaa BBB
+select * from t1 where upper(a)='AAA';
+a b
+aaa bbb
+AAA BBB
+select * from t1 where lower(a)='aaa';
+a b
+aaa bbb
+AAA BBB
+select * from t1 where upper(b)='BBB';
+a b
+AAA BBB
+select * from t1 where lower(b)='bbb';
+a b
+aaa bbb
+select charset(a), charset(b), charset(binary 'ccc') from t1 limit 1;
+charset(a) charset(b) charset(binary 'ccc')
+cp1251 binary cp1251
+select collation(a), collation(b), collation(binary 'ccc') from t1 limit 1;
+collation(a) collation(b) collation(binary 'ccc')
+cp1251_bin binary cp1251_bin
+drop table t1;
diff --git a/mysql-test/r/ctype_create.result b/mysql-test/r/ctype_create.result
index b9146b5818f..e2dc8c1be66 100644
--- a/mysql-test/r/ctype_create.result
+++ b/mysql-test/r/ctype_create.result
@@ -17,4 +17,19 @@ t1 CREATE TABLE `t1` (
`a` char(10) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251
DROP TABLE t1;
+CREATE TABLE t1 (a char(10)) DEFAULT CHARACTER SET latin1;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` char(10) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t1;
+CREATE TABLE t1 (a char(10))
+DEFAULT CHARACTER SET latin1 COLLATE latin1_german1_ci;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` char(10) collate latin1_german1_ci default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci
+DROP TABLE t1;
DROP DATABASE db1;
diff --git a/mysql-test/r/ctype_mb.result b/mysql-test/r/ctype_mb.result
index edccb047c85..5e273b3c800 100644
--- a/mysql-test/r/ctype_mb.result
+++ b/mysql-test/r/ctype_mb.result
@@ -17,9 +17,9 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1
INSERT INTO t1 VALUES ('aaaabbbbccccdddd','aaaabbbbccccdddd','aaaabbbbccccdddd');
Warnings:
-Warning 1264 Data truncated for column 'c1' at row 1
-Warning 1264 Data truncated for column 'c2' at row 1
-Warning 1264 Data truncated for column 'c3' at row 1
+Warning 1265 Data truncated for column 'c1' at row 1
+Warning 1265 Data truncated for column 'c2' at row 1
+Warning 1265 Data truncated for column 'c3' at row 1
SELECT * FROM t1;
c1 c2 c3
aaaa aaaa aaaa
diff --git a/mysql-test/r/ctype_sjis.result b/mysql-test/r/ctype_sjis.result
new file mode 100644
index 00000000000..1e3e28784a5
--- /dev/null
+++ b/mysql-test/r/ctype_sjis.result
@@ -0,0 +1,43 @@
+drop table if exists t1;
+set names sjis;
+select 'a' like 'a';
+'a' like 'a'
+1
+select 'A' like 'a';
+'A' like 'a'
+1
+select 'A' like 'a' collate sjis_bin;
+'A' like 'a' collate sjis_bin
+0
+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);
+hex(@utf81)
+EFBDA1EFBDA2EFBDA3EFBDA4EFBDA5EFBDA6EFBDA7EFBDA8EFBDA9EFBDAAEFBDABEFBDACEFBDADEFBDAEEFBDAF
+select hex(@utf82);
+hex(@utf82)
+EFBDB0EFBDB1EFBDB2EFBDB3EFBDB4EFBDB5EFBDB6EFBDB7EFBDB8EFBDB9EFBDBAEFBDBBEFBDBCEFBDBDEFBDBEEFBDBF
+select hex(@utf83);
+hex(@utf83)
+EFBE80EFBE81EFBE82EFBE83EFBE84EFBE85EFBE86EFBE87EFBE88EFBE89EFBE8AEFBE8BEFBE8CEFBE8DEFBE8EEFBE8F
+select hex(@utf84);
+hex(@utf84)
+EFBE90EFBE91EFBE92EFBE93EFBE94EFBE95EFBE96EFBE97EFBE98EFBE99EFBE9AEFBE9BEFBE9CEFBE9DEFBE9EEFBE9F
+select hex(CONVERT(@utf81 USING sjis));
+hex(CONVERT(@utf81 USING sjis))
+A1A2A3A4A5A6A7A8A9AAABACADAEAF
+select hex(CONVERT(@utf82 USING sjis));
+hex(CONVERT(@utf82 USING sjis))
+B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF
+select hex(CONVERT(@utf83 USING sjis));
+hex(CONVERT(@utf83 USING sjis))
+C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF
+select hex(CONVERT(@utf84 USING sjis));
+hex(CONVERT(@utf84 USING sjis))
+D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF
diff --git a/mysql-test/r/ctype_tis620.result b/mysql-test/r/ctype_tis620.result
index 10164cd07ef..94c4b295713 100644
--- a/mysql-test/r/ctype_tis620.result
+++ b/mysql-test/r/ctype_tis620.result
@@ -111,3 +111,2791 @@ E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF
SELECT hex(convert(@uF USING tis620));
hex(convert(@uF USING tis620))
F0F1F2F3F4F5F6F7F8F9FAFBFFFFFFFF
+SET NAMES tis620;
+CREATE TABLE t1 (
+recid int(11) NOT NULL auto_increment,
+dyninfo text,
+PRIMARY KEY (recid)
+) ENGINE=MyISAM;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `recid` int(11) NOT NULL auto_increment,
+ `dyninfo` text,
+ PRIMARY KEY (`recid`)
+) ENGINE=MyISAM DEFAULT CHARSET=tis620
+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;
+year
+DROP TABLE t1;
+DROP TABLE IF EXISTS t1;
+Warnings:
+Note 1051 Unknown table '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;
+name
++45 BRETT
++55 BRETT
++56 BRETT
+-.55 BRETT
+-45 BRETT
+-55 BRETT
+.-55 BRETT
+.55 BRETT
+45 BRETT
+5 5 BRETT3
+5 5 BRETT2
+5 5 BRETT1
+5-5 BRETT
+55 BRETT
+55+ BRETT
+55- BRETT
+55. BRETT
+CHEE KUNG FOOK
+CHEN CHIA YI
+CHI WAI DAVIT
+GEORGE
+KAWAIJIT
+KAWALJIT
+KOJI
+LOUIS
+PETER
+SHERMAN
+TAN
+Willem Arnold
+WONG
+WU
+¡.µÃÕ·Ô¾Âì ¤Í¹«ÑÅáµ¹·ì
+¡ª¡Ã
+¡ª¾Ã
+¡ªÁÅ
+¡µÑ­­Ù
+¡¹¡
+¡¹¡¡Ò­¨¹ì
+¡¹¡ªÑÂ
+¡¹¡¹ÔÀÒ
+¡¹¡¹Øª
+¡¹¡¾Ã
+¡¹¡Ãѵ¹ì
+¡¹¡Ä·¸Ôì
+¡¹¡ÇÃó
+¡¹¡ÈÃÕ
+¡¹¡Ò­¨¹ì
+¡¹ÔÉ°Ò
+¡ÁÅ
+¡ÁũѵÃ
+¡ÁÅ·Ô¾Âì
+¡ÁžÃ
+¡ÁžÃó
+¡ÁÅÁÒÅÂì
+¡ÁÅÃѪµì
+¡ÁÅÃѵ¹ì
+¡ÁÅÇÃó
+¡Ã¡¹¡
+¡Ã¡¾Ã
+¡Ã¡ÁÅ
+¡ÃªÑÂ
+¡Ã³ì
+¡Ã¹Ñ¹·ì
+¡Ã»ÃÕÂÒ
+¡ÃíԡÒÃì
+¡ÃóԡÒ
+¡ÃóԡÒÃì
+¡ÃÇÅÑÂ
+¡ÃÇÔ·Âì
+¡Ãͧá¡éÇ
+¡Ãͧ·Ô¾Âì
+¡ÃШ¡ä·ÂÍÒ«ÒÎÕ
+¡ÃÕ±Ò
+¡Ãا෾¼ÅÔµàËÅç¡
+¡Ãاä·Â¤ÒÃìàÃé¹·ì ÍÔ¹àµÍÃì๪Ñè¹á¹Å
+¡Ãاä·ÂÍØ»¡Ã³ì
+¡ÃسÒ
+¡ÄªÇÃó
+¡Äµº¾Ô¸
+¡ÄµÂÒ
+¡ÄµÔ¡Ò¹·ì
+¡ÄµÔÂÒ
+¡ÄȾÃó
+¡ÄÉ®Ò
+¡ÄÉ®Õ
+¡ÄɮվÃ
+¡Äɳ¾¨¹ì
+¡Äɳ¾Å
+¡ÄɳÐ
+¡ÄɳÒ
+¡ÄɳÕ
+¡ÄÉ´Ò
+¡ÇÕ
+¡ÉÁÒ
+¡ÉÔª­ì
+¡ÉÔ´ÔÈ
+¡ÊÔÇѹ
+¡èÍà¡ÕÂõÔ
+¡Íº¡ØÅ
+¡Íºá¡éÇ
+¡ÍººØ­
+¡ÍºÅÒÀ
+¡Ñ ÅÂÒ
+¡Ñ­ª¾Ã
+¡Ñ­­ÀѤ
+¡Ñ­­ìÇÃÒ
+¡Ñ­­ÒÁÒÈ
+¡Ñ­­ÒÇÕÃì
+¡Ñ³°ªÒ
+¡Ñ³°Ô¡Ò
+¡Ñ³·ÔÁÒ
+¡Ñ¹µì
+¡Ñ¹µÔ¡Ã
+¡Ñ¹¸ÔªÒ
+¡Ñ¹¸ÔÁÒ
+¡Ñ¹ÂÒÃѵ¹ì
+¡ÑÁ»¹Ò¶
+¡ÑÁ»¹Ò·
+¡ÑÅÂÒ
+¡ÑÅÂÒ³Õ
+¡ÑÅÂÒÃѵ¹ì
+¡Ò­¨¹ÇÃó
+¡Ò­¨¹Ò
+¡Ò¹´Ò
+¡Ò¹µì
+¡Ò¹µìÃÇÕ
+¡ÒÂÊÔ·¸Ôì
+¡ÒÃÇÔÍÃ
+¡ÒÃسÕ
+¡ÒÈÔ
+¡Ó¸Ã
+¡Ó¾Å
+¡ÓäÃ
+¡Óá˧
+¡Ô觡ҭ¨¹ì
+¡Ô¨µÔÂÒ
+¡Ô¨ÇÃó
+¡ÔµµÔ
+¡ÔµµÔ¡Ñ¹µì
+¡ÔµµÔªÑÂ
+¡ÔµµÔ­Ò
+¡ÔµµÔ¹Ñ¹·ì
+¡ÔµµÔ¾§Èì
+¡ÔµµÔ¾§Éì
+¡ÔµµÔ¾Å
+¡ÔµµÔ¾Ñ²¹ì
+¡ÔµµÔ¾Ñ¹¸ì
+¡ÔµµÔÁÒ
+¡ÔµµÔÂÒ
+¡ÔµµÔÃѵ¹ì
+¡ÔµµÔÇѲ¹ì
+¡ÔµµÔÈÑ¡´Ôì
+¡ÔµÔ¡Ã
+¡ÔµÔ¡Ã³ì
+¡ÔµÔ¡Ñ­­Ò
+¡ÔµÔªÒ­
+¡ÔÁÅÑé§
+¡ÕõÔ
+¡ØÁØ·¾Ñ¹¸ì
+¡ØéÂà«é§ ÍÔÁ»ÍÃìµ á͹´ì àÍç¡«ì»ÍÃìµ
+¡ØŹѹ·ì
+¡ØŹÒÃÕ
+¡ØÅÂÒ
+¡ØÅÅ´Ò
+¡ØÅÇ´Õ
+¡ØÅÈÔÃÔ
+¡ØÊØÁÒ
+¡ØËÅÒº
+¡Ùê´ÇÔÅ ÍÔ¹´ÑʵÃÕé
+à¡ç¨¾ÔÃس
+ࡪÒ
+ࡳԡÒ
+ࡵØÁ³Õ
+à¡ÃÔ¡
+à¡ÃÔ¡ä¡Ã
+à¡ÃÔ¡¾§Éì
+à¡ÃÕ§ä¡Ã
+à¡ÃÕ§ªÑÂ
+à¡ÃÕ§§ÍÔ¹àµÍÃì๪Ñè¹á¹Å
+à¡ÃÕ§ÈÑ¡´Ôì
+à¡È¡ØÅÀÒ
+à¡ÈÃÒ
+à¡ÈÃÔ¹·Ãì
+à¡ÈÇÅÕ
+à¡ÈÈÔÃÔ
+à¡ÈÊØ´Ò
+à¡ÈÔ¹Õ
+à¡É³Õ
+à¡É´Ò
+à¡ÉÁ
+à¡ÉÁÊѹµì
+à¡ÉÃÒ
+à¡ÉÃÕ
+à¡ÉÕÂÃ
+à¡ÊÃ
+à¡ÊÃì
+à¡ÕÂõÔ
+à¡ÕÂõԻÀÒ
+à¡ÕÂõԾ§Éì
+à¡ÕÂõÔÈÑ¡´Ôì
+à¡ÕÂõÔÊÇÑÊ´Ôì
+à¡×éÍ¡ÙÅ
+á¡éÇ
+á¡éÇã¨
+â¡Ážѹ¸ì
+â¡àÁÈ
+â¡ÅºÍÅ ¤Í¹à¹ç¤ªÑè¹Êì
+â¡ÇÔ·
+â¡ÇÔ·Âì
+â¡ÇÔ¹
+â¡àÇȹì
+â¡ÈÅ
+â¡ÊÔ¹·Ãì
+ä¡Ã¤Ó
+ä¡Ãà·¾
+ä¡Ã¸ÇѪ
+¢¨Ã
+¢¨Ãà¡ÕÂõÔ
+¢¨ÃÈÃÕ
+¢¨ÃÈÑ¡´Ôì
+¢¹ÔÉ°ì
+¢¹ÔÉ°Ò
+¢ÇÑ­ã¨
+¢ÇÑ­ªÑÂ
+¢ÇÑ­à´×͹
+¢ÇÑ­µÒ
+¢ÇÑ­à¾çªÃ
+¢ÇÑ­àÁ×èͧ
+¢ÇÑ­ÂؾÒ
+¢ÇÑ­ÃØé§
+¢ÇÑ­àÃ×͹
+¢ÑµµÔÂÒ³Õ
+¢éÒÇÍÔèÁ·Ô¾Âì
+¢Ø¹·Í§
+á¢ä¢
+¤§¡ÄÈ
+¤§à´ª
+¤àª¹·Ãì
+¤³Ò¡Ã
+¤³ÒÇزÔ
+¤³ÔÈÃ
+¤³ÔÊÃ
+¤³ØµÁì
+¤à³È
+¤¸Ò
+¤à¹Âì
+¤Á¡ÃÔª
+¤Á¨Ñ¡Ã
+¤Áà¾çªÃ
+¤ÃÒ¿·ìà´ÍÐàºÊ·ì
+¤ÍÊÁÔ¤ ¤Í¹¤ÍÃì´ ¤ÍÃì»ÍàêÑè¹
+¤Ò«ÙâÍÐ
+¤ÒÃìâ»Ãà¿ÊªÑè¹á¹Å
+¤ÒÇÒ¤Ô¹
+¤Óó
+¤Óá˧
+¤ÔÁ§¤ì
+¤Ø³Ò¡Ã
+¤Ø³Õ·Ã
+¤ÙèºØ­
+¤Ù»Ò¹Ò
+ठÊËÒÂÍÔÁà»ê¡«ì
+à¤.«Õ.¾Õ. áÁªªÕ¹à¹ÍÃÕè
+षշÕÅÔÊ«Ôè§
+ह áÁ¡«ì (»ÃÐà·Èä·Â)
+ह áÁç¡«ì (»ÃÐà·Èä·Â)
+à¤Ã×ÍÇÑÅÂì
+᤹¹Ù ÍÔ¹àµÍÃìà·Ã´
+á¤Ð¨éÍÂ
+â¤Ãà¹Ê (ä·ÂᏴì)
+â¦ÉÔµ
+§ÒÁ¹Ô¨
+§ÒÁà¾ç­
+à§Ô¹·Ø¹à¡ÕÂõԹҤԹ
+¨§¡Å
+¨§¡Å³Õ
+¨§ÃÑ¡
+¨§ÃÑ¡Éì
+¨§Åѡɳì
+¨µØ¾Ã
+¨µØ¾Å
+¨µØ¾Ñ¹¸ì
+¨µØç¤ì
+¨µØÄ·¸Ôì
+¨ÃÃÂÒ
+¨ÃǾÃ
+¨ÃÇÃø¹ì
+¨ÃÑ­
+¨ÃÑÅ
+¨ÃÑʪÑÂ
+¨ÃÑʾÅ
+¨ÃÔ¹·Ãì
+¨ÃÔ¹¸Ã
+¨ÃÔÂÒ
+¨ÃÔÂÒÀóì
+¨ÃظԴÒ
+¨ÃÙ­
+¨àÃ
+¨àÃÈÑ¡´Ôì
+¨ÍÁ¢ÇÑ­ã¨
+¨Ñ¡Ã¡Äª
+¨Ñ¡Ã¡Äɳì
+¨Ñ¡Ã¾Ñ¹¸ì
+¨Ñ¡ÃÇÒÅ
+¨Ñ¡Ãѵ¹ì
+¨Ñ¡ÃÔ¹·Ãì
+¨Ñ¡ÃÕ
+¨Ñ¡ÉÇѯ
+¨Ñ´ËÒ§Ò¹ÎÔÇáÁ¹àÍ繨Ôà¹ÕÂÃÔè§
+¨ÑµÃ´ÒÇ
+¨Ñ¹¨ÔÃÒ
+¨Ñ¹··Õ
+¨Ñ¹·¹Ò
+¨Ñ¹·Ã
+¨Ñ¹·Ãìà¨éÒ
+¨Ñ¹·Ãì·Ô¾Âì
+¨Ñ¹·Ãì¸ÔÀÒ
+¨Ñ¹·Ãì¹ÀÒ
+¨Ñ¹·Ãì¾Ã
+¨Ñ¹·Ãìà¾ç­
+¨Ñ¹·ÃìÃѵ¹ì
+¨Ñ¹·ÃìÇÔÁÅ
+¨Ñ¹·ÃìÇÔäÅ
+¨Ñ¹·ÃìÊØ´Ò
+¨Ñ¹·Ô¡Ò
+¨Ñ¹·ÔÀÒ
+¨Ñ¹·ÔÁÒ
+¨Ñ¹·ÔÁÒÀóì
+¨Ñ¹·ÔÃÒ
+¨ÒµØ¾Ã
+¨ÒµØç¤ì
+¨ÒµØùµì
+¨ÒÃÕÃѵ¹ì
+¨ÒÃسÕ
+¨ÒÃسÕÂì
+¨ÒÃعѹ
+¨ÒÃغصÃ
+¨ÒÃØÃѵ¹ì
+¨ÒÃØÇÃó
+¨Ó¹§
+¨Ó¹§¤ì
+¨Ó»Õ
+¨ÓÃÑÊ
+¨ÓàÃÔ­
+¨ÓÅͧ
+¨Ô³³ì
+¨Ôµµì
+¨Ôµµì¹ÔÉÒ
+¨ÔµµÁÒÊ
+¨ÔµµÒ
+¨ÔµµÔ
+¨ÔµµÔ¹¹Ñ¹·ì
+¨ÔµÃÅ´Ò
+¨ÔµÃÒ
+¨ÔµÃÒÀóì
+¨Ô¹´Ò
+¨Ô¹µì¨Ø±Ò
+¨Ô¹µ¹Ò
+¨ÔþÃ
+¨Ôþѹ¸ì
+¨ÔÃÀÑ·Ã
+¨ÔÃÀÒ
+¨ÔÃÇÃó
+¨ÔÃÇѲ¹ì
+¨ÔÃÈÑ¡´Ôì
+¨ÔÃÊØ´Ò
+¨ÔÃоÃ
+¨ÔÃоÃó
+¨ÔÃÐÀÒ
+¨ÔÃÐÈÑ¡´Ôì
+¨ÔÃѪ´Ò
+¨ÔÃÑ°µÔì
+¨ÔÃÒ¤Á
+¨ÔÃҹت
+¨ÔÃÒ¾Ã
+¨ÔÃÒÀóì
+¨ÔÃÒÀÒ
+¨ÔÃÒÂØ
+¨ÔÃÒÇÃó
+¨ÔÃÒÇÑÅÂì
+¨ÔÃÒÇزÔ
+¨Õ·Õ«Õ ·Ã§¾Ñ¹¸ì)
+¨ÕþÃó
+¨ÕÃÈÑ¡´Ôì
+¨ÕÃйѹ·ì
+¨ÕÃÐÇѲ¹ì
+¨ÕÍÕ á¤»»ÔµÍÅ (»ÃÐà·Èä·Â)
+¨ÕâÍà·¤¹Ô¤ (ä·ÂᏴì)
+¨Ø±Ò·Ô¾Âì
+¨Ø±Ò¾Ñ¹¸ì
+¨Ø±ÒÁÒÈ
+¨Ø±ÒÁÒÊ
+¨Ø±ÒÃѵ¹ì
+¨Ø±ÒÇÃó
+¨ØÃÕÃѵ¹ì
+¨ØÅÅ´Ò
+¨ØÌÒ
+¨ØÌÒÀóì
+¨ØÌÒÀÒ
+¨ØÌÒÅѡɳì
+ਵ¹ì
+ਹ
+ਹ¨ÔÃÒ
+ਹµì³Ã§¤ì
+ਹà¹ÍÃÑÅ乫ì (»ÃÐà·Èä·Â)
+ਹÇÔ·Âì
+à¨ÃÔ­
+à¨ÃÔ­ªÑÂËÁéÍá»Å§ä¿¿éÒ
+à¨ÃÕ§
+à¨É®Ò
+à¨éÒ¾ÃÐÂÒÁÒÃì¤
+à¨ÔÁªÑÂ
+à¨ÕÂÁ¨Ôµ
+á¨èÁ
+ã¨ÊÇÇäì
+©ÅÇÂ
+©Åͧ
+©ÅÒ´
+©ÇÕÇÃó
+©Íé͹
+©ÑµÃªÑÂ
+©ÑµÃÀóì
+©ÑµÃÈÔÃÔ
+©Ñ¹·¹Ò
+©Ñ¹·Ãѵ¹ì
+©×èÍ ¨Ôé¹ ÎÑéÇ
+©×èͨÔé¹ÎÑéÇ
+à©ÅÔÁ
+à©ÅÔÁ¢ÇÑ­
+à©ÅÔÁªÑÂ
+à©ÅÔÁªÒµÔ
+à©ÅÔÁ¾Ñ¹¸Øì
+à©ÅÕÂÇ
+à©Ô¹
+â©ÁÅ´Ò
+â©ÁÊØ´Ò
+ª.ÊÂÒÁ¨Ñ¡ÃÂÒ¹à´ç¡àÅè¹
+ª®ÒÃѪ
+ª´Ò¡Ã
+ª¹¹Ñ¹·ì
+ª¹¹ÔÈÒ
+ª¹ÁìÊØÇÃó
+ª¹Ð
+ª¹Ð⪵Ô
+ª¹Ñ­­Ò
+ª¹Ñ°
+ª¹Ñ¹Àóì
+ª¹ÒÀÒ
+ª¹Ô´Ò
+ªÁ
+ªÁ¾Å
+ªÁ¾Ù¹Øª
+ªÁ¾Ù¹Ø·
+ªÁÀÑÊÊÃ
+ªÁÀٹت
+ªÁѾÃ
+ªäÁ¾Ã
+ªÂ¹
+ªÂÒ¾Å
+ªÂÒÀóì
+ªÃѪÊÃÒ
+ªÃѶ¨Ñ¹·Ãì
+ªÃÑÊÃÒ
+ªÃÔ¹·Ãì
+ªÃÔ¹Ãѵ¹ì
+ªÅ¸ÔªÒ
+ªÅ¸Õ
+ªÅÍ
+ªÅÍÁ
+ªÅÒ¡Ã
+ªÅÔ¡Ò
+ªÅÔ´Ò
+ªÅÔµ
+ªÅÔµÒ
+ªÇ¹
+ªÇ¹ªÁ
+ªÇ¹¾ÔÈ
+ªÇÅÔµ
+ªÇÔÈÒ
+ªèÍ
+ªèͩѵÃ
+ªèÍ·Ô¾Âì
+ªèÍÍÑ­ªÑ­
+ªÐ¹ÔÅ
+ªÐÍé͹
+ªÑªªÑÂ
+ªÑª®Ò
+ªÑªÀ³
+ªÑªÀÑÊÊÃ
+ªÑªÁ³±ì
+ªÑªÁ¹±ì
+ªÑªÇÒÅÂì
+ªÑªÇÒÅìÂ
+ªÑ­­Ò
+ªÑ­ÉÒ
+ªÑÂà¨ÃÔ­ãªèËÅÕʵÕÅ
+ªÑª¹Ð
+ªÑªҭ
+ªÑ³ç¤ì
+ªÑ¸ÇѲ¹ì
+ªÑ¹¤Ã
+ªÑ¹ѹ·ì
+ªÑ¾Ã
+ªÑ¾Å
+ªÑÂÀÑ·Ã
+ªÑÂÁ§¤Å
+ªÑ§³ì
+ªÑÂÂÈ
+ªÑÂÂÐ
+ªÑÂÂØ·¸
+ªÑÂÃѵ¹ì
+ªÑÂÇѲ¹ì
+ªÑÂÊÔ·¸Ôì
+ªÑÂÊÔ¹¸Øì
+ªÒ­
+ªÒ­ªÑÂ
+ªÒ­³Ã§¤ì
+ªÒ­ÂØ·¸
+ªÒ­ÈÑ¡´Ôì
+ªÒµÃÕ
+ªÒµÔªÒÂ
+ªÒ¹
+ªÒ¹¹·ì
+ªÒÂ
+ªÒÅÕ
+ªÒÇѳÂì
+ªÓ¹Ò­
+ªÓ¹Ô
+ªÔ´ª¹¡
+ªÔ¹
+ªÔ¹¾Ñ¹¸ì
+ªÔ¹Ãѵ¹ì
+ªÔ¹ÇѲ¹ì
+ªÕÇÒ¾Ã
+ª×蹨Եµì
+ªØ´Ò¾Ã
+ªØµÔ¡Ò­¨¹ì
+ªØµÔÁÒ
+ªØÁ¾Ã
+ªØÁ¾Å
+ªØÁÈÔÃÔ
+ªØÁÊÒÂ
+ªØÅÕ¾Ã
+ªÙà¡ÉÁ
+ªÙà¡ÕÂõÔ
+ªÙ¨Ôµ
+ªÙ¨Ôµµì
+ªÙªÑÂ
+ªÙªÒµÔ
+ªÙªÕ¾
+ªÙ¾§Èì
+ªÙ¾§Éì
+ªÙÈÑ¡´Ôì
+ય°¡Ã
+àªÉ°Ò
+àªÍÃÔè§-¾ÅÒÇ á͹ÔÁÑÅ àÎéŪ
+àªÍÃÔè§-¾ÅÒÇá͹ÔÁÑÅàÎçŸ
+àªÒǹҭ
+àªÒÇÅÔµ
+àªÔ´¨Ôµµì
+àªÔ´ªÑÂ
+àªÔ´ÈÑ¡´Ôì
+àªÕ§àΧ¡ÒêèÒ§
+àªÕèÂǪҭ ÍÔ¹´ÑÊ·ÃÕè (1989)
+àªÕèÂǪҭÍÔ¹´ÑÊ·ÃÕè (1989)
+àªÕèÂǪҭÍÔ¹´ÑÊ·ÃÕ (1989)
+àªÕèÂǪҭÍÔ¹´ÑÊ·ÃÕè(1989)
+⪤
+⪤ªÑÂ
+⪵Ô
+⪵ÔÃÊ
+⪵ÔÇظ
+äªÂ¹Ñ¹·¹ì
+äªÂÁ§¤Å
+äªÂÃѵ¹ì
+äªÂÒ
+«è͹¡ÅÔè¹
+«Òâµéâ¤à¡ÕÂÇ ¡Ãا෾
+«Ô¡»éÒ (»ÃÐà·Èä·Â)
+«Õ àÍç¹ äÍ
+«Õ ´Õ àÍçÁ àÍç¹àµÍÃìä¾ÃÊì
+«Õ.´Õ.ÍصÊÒË¡ÃÃÁ
+«Õ.·Õ.à·àŤÍÁ
+«Õ.ÇÕ.àÍÊ.ÍÔ¹´ÑʵÃÕé
+«Õ´Õ ÍصÊÒË¡ÃÃÁ
+«ÕàÍç¹äÍàÍ繨Ôà¹ÕÂÃÔ觫Ѿ¾ÅÒÂ
+«Ù
+à«ÒÐ
+à«ÕÂÁà¡ÕÂÇ
+­Ò³ÀѤ
+­Õ¹ÀÒ
+¯Ç§¡ÁÅ
+°Ò¹Ñ¹·ì
+°Ò¹ÔµÂì
+°Ò¹ÔÊÃ
+°Ò»¹ÇÔ·Âì
+°Ôµ¡Ò¹µì
+°ÔµÔ¡Ò¹µì
+°ÔµÔ³Ñ°
+°ÔµÔà¸ÕÂÃ
+°ÔµÔ¹Ñ¹·ì
+°ÔµÔ¾§Èì
+°ÔµÔ¾Ã
+°ÔµÔÁÒ
+°ÔµÔÃѪµì
+°ÔµÔÃѵ¹ì
+±ÔÁÀì¹Øª
+³¸ÔµÒ
+³ÀÑ·Ã
+³Àѷáóì
+³Ã§¤ì
+³Ã§¤ìªÑÂ
+³Ã§¤ì¾ÑªÃì
+³Ã§¤ìÄ·¸Ôì
+³Ã§¤ìÇÔ·Âì
+³Ã§¤ìÈÑ¡´Ôì
+³Ã§ÃÑ¡Éì
+³Ã§Ä·¸Ôì
+³Ã§ÈÑ¡´Ôì
+³Ë·ÑÂ
+³ÑªªÒ
+³Ñ­­Ò
+³Ñ®°ÁÑÂ
+³Ñ®°ÇÃó
+³Ñ¯¾Å
+³Ñ°
+³Ñ°¡Ã³ÔÈÒ
+³Ñ°¡ÄµÒ
+³Ñ°¡Ò¹µì
+³Ñ°¢¨Ã
+³Ñ°ª¹Ñ­
+³Ñ°ªÒ
+³Ñ°°Ò
+³Ñ°µÂÒ
+³Ñ°¹¹·ì
+³Ñ°¹Ñ¹·ì
+³Ñ°»¡Ã³ì
+³Ñ°¾§Èì
+³Ñ°¾§Éì
+³Ñ°¾¨¹ì
+³Ñ°¾Ã
+³Ñ°¾Å
+³Ñ°ÀÙÁÔ
+³Ñ°Á¹
+³Ñ°ÁÒ
+³Ñ°ÂÒ
+³Ñ°ÇÃÕÂì
+³Ñ°ÇѪÃì
+³Ñ°ÇѲ¹ì
+³Ñ°ÇѵÔ
+³Ñ°ÇزÔ
+³Ñ°ÈÑ¡Âì
+³Ñ°ÊÃÑ­
+³Ñ°Ë·ÑÂ
+³Ñ°Ô¡Ò
+³ÔªÒ¡Ã
+³Õç¤ì
+³Øªª¹Ò
+´¹ÑÂ
+´¹Ø¾Å
+´ÃÃ쪹Õ
+´ÃسÕ
+´ÅÄ´Õ
+´ÅÄ·ÑÂ
+´Ç§¡ÁÅ
+´Ç§¨Ñ¹·Ãì
+´Ç§ã¨
+´Ç§´ÒÇ
+´Ç§à´×͹
+´Ç§¹ÀÒ
+´Ç§ºÅ
+´Ç§¾Ã
+´Ç§Á¹·Ãì
+´Ç§Ãѵ¹ì
+´Ç§Ë·ÑÂ
+´Í¡äÁé
+´ÒóÕ
+´ÒùÕÂì
+´ÒÃÒ¹ÕÅì
+´ÒÃÒÃѵ¹ì
+´ÒÃÒÇÃó
+´ÒÃÔ¡Ò
+´ÒÃÔ³Õ
+´ÒÃÔ¹
+´ÒÃسÕ
+´ÒÇ»ÃСÒÂ
+´ÒÇÃÕ
+´Óà¹Ô¹
+´Óç
+´Óç¤ì
+´ÓËÃÔ
+´Ôàá
+´ÔÈ¡ØÅ
+´Ôʷѵ
+´Õ.ºÕ.ä´Á͹´ì (»ÃÐà·Èä·Â)
+´ØžÅ
+´ØÅÂì¾Ñ²¹ì
+´ØÉ®Õ
+´ØɳÕ
+´ØÉ´Õ
+´ØÊÔµ
+´ØÊÔµà¤ÁÕÀѳ±ì
+à´ª
+à´ªÒ
+à´ÍФÇÍÅÔµäÇÃì
+à´×͹¹ÀÒ
+à´×͹à¾ç­
+â´Á
+ä´ÍСÅêÒÊ
+µèͨѡÃ
+µÐÅèÍÁÊÔ¹¾ÅÒʵԡ
+µÐÇѹ
+µÑ觨Ñè§ËÅÍ´ä¿
+µÒà¿ç´
+µØê
+µØ꡵Ò
+µØéÁ
+µØëÂ
+µØÅÒÅѡɳì
+àµçÁà´ª
+àµ×͹ã¨
+àµ×͹µÒ
+ãµé à«é§ «Ñ¹
+äµÃ·È
+äµÃà·¾
+äµÃç¤ì
+¶¹ÍÁÈÑ¡´Ôì
+¶¹Ôµ¾Å
+¶ÇÑÅ
+¶ÇÑÅÂì
+¶ÇÔÅ
+¶Ò³Ø¾§Èì
+¶ÒÇÃ
+à¶ÅÔ§ÈÑ¡´Ôì
+·¹§ÈÑ¡´Ôì
+·¹Ø
+·Ã§
+·Ã§ªÑ»Ñè¹·Í
+·Ã§¸ÃÃÁ
+·Ã§¾Å
+·Ã§ÇزÔ
+·Ã§ÈÃÕ
+·Ã§ÈÑ¡´Ôì
+·Ã§ÈÔÃÔ
+·ÃÃȹÕÂì
+·ÃѾÂì¶ÒÇäéÒÇÑÊ´Ø
+·ÇÔª
+·ÇÕ
+·ÇÕªÑÂ
+·ÇÕ»
+·ÇÕ¾Ã
+·ÇÕÇѲ¹ì
+·ÇÕÈÃÕ
+·ÇÕÈÑ¡´Ôì
+·È¾Ã
+·È¾Å
+·Í§¢ÒÇ
+·Í§¤Ó
+·Í§ãº
+·Í§»Ò¹
+·Í§¾Ñ¹¸ì
+·Í§¾Ñ¹¸Øì
+·Í§ÊØ¢
+·Í§ÍÔ¹·Ãì
+·Ñ¡ÉÁ³¹ì
+·Ñ´´ÒÇ
+·Ñº·ÔÁ
+·ÑȹÇÃó
+·ÑȹվÃ
+·ÑȹÕÂì
+·ÑȹÕÂÒ
+·ÑÈÇÃó
+·èÒ·ÃÒÂá¨é§ÇѲ¹Ò
+·Ô¦ÑÁ¾Ã
+·Ô¹á¤¹ ÍÔ¹´ÑÊ·ÃÕ
+·Ô¾Âì¾Ò¾Ã
+·Ô¾ÂìÇ´Õ
+·Ô¾ÂìÇÃó
+·Ô¾ÂìÇÃس
+·Ô¾ÂìÇÑÅÂì
+·Ô¾ÂìÇÒÃÕ
+·Ô¾ÂìÇÔÁÅ
+·Ô¾ÇÃó
+·Ô¾ÇÑÅÂì
+·Ô¾ÇÔÁÅ
+·Ô¾ÊØ´Ò
+·Ô¾Ò¡Ã
+·Ô¾ÒÇÃó
+·ÔÇÒ
+·ÔȾÅ
+·Õ «Õ ¾Õ ÍÔ¹´ÑÊ·ÃÕé
+·Õ.«Õ.«Õ.¾Ãç;à¾ÍÃìµÕé
+·Õ.«Õ.¾Õ.ÍÔ¹´ÑÊ·ÃÕé
+·Õ.àÍÊ.äÇÃì¤Ñ· á͹´ì áÁªªÕ¹¾ÒÃì·
+·Õ.äÍ.·Õ.ÍÔ¹àµÍÃì๪Ñè¹á¹Å
+·ÕâÍàÍ â´¿à¤Á ÍÔ¹´ÃÑʵÕé
+·ÙÁÔ¹Ô·Êì ºÔ«Ôà¹Ê
+·ÙÃ
+à·¾
+à·¾¾ÔºÙÅ
+෾ķ¸Ôì
+à·ÇÒ
+à·ÇÕ
+à·Ô´ä·
+ä·Â
+ä·Â ¤Í¹Êì á͹´ì ºÔÅ´Ôé§
+ä·Â ´Õ à͹ ·Õ ྐྵ·ì
+ä·Â-àÍà«Õ ¾Õ.ÍÕ.ä¾é¾ì
+ä·Âà¡ÃÕ§ÊÔ觷Í
+ä·Â¤Òà«ÎÔ¹
+ä·Âà¤ÁÕÀѳ±ì
+ä·Âà«ç¹·ÃÑÅ à¤ÁÕ ª¹)
+ä·Âà«ç¹·ÃÑÅà¤ÁÕ
+ä·Âà«çÅ·ÃÑÅà¤ÁÕ ª¹)
+ä·Â´Õà͹·Õྐྵ·ì
+ä·Âµ§¹ÔµµÔé§
+ä·Â¸¹Ò¾Ò³ÔªÂì
+ä·Â¸Ò¹Õà¤ÁÕ
+ä·Â¾ÃçÍ¡«ì
+ä·Âà¾ÔèÁ¾ÅÒʵԡ
+ä·ÂÂÙà¹Õ¹¤ÇÍÅÅÔµÕé
+ä·ÂàÇŤ͹ÍصÊÒ¡ÃÃÁ
+ä·ÂÍÔ¹àµÍÃì ¤ÍµµÍ¹¡Ò÷Í
+ä·ÂÍÔ¹àµÍÃì ÍÐâÃàÁµÔ¡Êì
+¸§ªÑÂ
+¸§äªÂ
+¸³Ñ°
+¸¹¡Ã
+¸¹¡Äµ
+¸¹¾Ã
+¸¹¾Å
+¸¹ÃѪ
+¸¹Ãѵ¹ì
+¸¹âè¹ì
+¸¹Ç´Õ
+¸¹ÇѲ¹ì
+¸¹Çѹ
+¸¹ÇÔµµ
+¸¹ÇÔ·Âì
+¸¹ÊÔ·¸Ôì
+¸¹ÐÃѪµì
+¸¹Ñª¸Ô´Ò
+¸¹Ñ­­Ò
+¸¹Ñ¹µì
+¸¹Ñ¹·ì
+¸¹ÑÊ
+¸¹Ò
+¸¹Ò¤ÒáÃاÈÃÕÍÂظÂÒ º
+¸¹Ò¤ÒÃÂÙâÍºÕ Ãѵ¹ÊÔ¹ ÊÒ¢ÒËÑÇËÁÒ¡
+¸¹ÒÀóì
+¸¹ÒÀÒ
+¸¹ÒÃÑ¡Éì
+¸¹ÒÇѪÃì
+¸¹Ô´Ò
+¸¹ÔÉ°Ò
+¸¹Ù
+¸à¹È
+¸à¹ÈÃì
+¸Á¹Ñ¹·ì
+¸ÃÃÁ¹Ù­
+¸ÃÃÁÈÒʵÃì
+¸Äµ
+¸ÇѪ
+¸ÇѪªÑÂ
+¸ÇÑÅÃѵ¹ì
+¸Ñª¡Ã
+¸Ñª¾Å
+¸ÑªÇ´Õ
+¸ÑªÇѲ¹ì
+¸Ñ­ª¹¡
+¸Ñ­­¸Ã
+¸Ñ­­¾Ñ²¹ì
+¸Ñ­³ÔªÒ
+¸Ñ­¹Ñ¹·ì
+¸Ñ­¾Ã
+¸Ñ­¾ÔÊÔ·¸Ôì
+¸Ñ­Ã´Ò
+¸Ò¡Ã
+¸Ò´Ò
+¸Ò¹Ô¹·Ãì
+¸Ò¹Õ
+¸Ò÷ԾÂì
+¸ÒÃÒ
+¸ÒÃÔ¹Õ
+¸Óç¤ì
+¸ÓçÃѵ¹ì
+¸Ô´ÒÃѵ¹ì
+¸ÔµÔ¹Ñ¹·ì
+¸Ô¹Õ¡Ò­¨¹ì
+¸ÕêÑÂ
+¸Õùت
+¸Õþ§Èì
+¸Õþ§Éì
+¸ÕþÅ
+¸ÕþѲ¹ì
+¸ÕÃÀÑ·Ãì
+¸ÕÃÀÒ¾
+¸ÕÃÇѲ¹ì
+¸ÕÃÈÑ¡´Ôì
+¸ÕÃÈÒ¹µÔ¾Ñ¹¸ì
+¸ÕÃÐ
+¸ÕÃЪÑÂ
+¸ÕÃоÅ
+¸ÕÃÐÇѲ¹ì
+¹ ¾´Å
+¹ à¿ÃÔÁàÁ¹¹Ôª ÍâÃáÁµÔê¡Êì ¾Õ·ÕÍÕ ÅÔÁÔàµç
+¹¤Ã
+¹¤Ã»°Á Î͹´éÒ¤ÒÃìÊì (1994)
+¹§ª¹¡
+¹§¹Øª
+¹§Åѡɳì
+¹·
+¹·Ô¹
+¹·Õ
+¹¹·ÈÑ¡´Ôì
+¹¾à¡éÒ
+¹¾´Å
+¹¾´ÅÂì
+¹¾·Ñµ
+¹¾¾§¤ì
+¹¾¾Ã
+¹¾¾Å
+¹¾ÁÒÈ
+¹¾Ãѵ¹ì
+¹¾ÄÔ·¸Ôì
+¹¾ÇÃó
+¹¾Ò¾Ã
+¹À´Å
+¹ÀÇÃó
+¹ÀÑÊÊÃ
+¹ÀÑÊÊØÇÃó
+¹ÀÒ
+¹ÀÒ¾Ã
+¹ÀÒÂØ·¸ì
+¹ÀÒÇÃó
+¹ÀÔ¹·Ã
+¹ÃªÑÂ
+¹Ã¾Å
+¹ÃÀÑ·Ãì
+¹ÃÒ
+¹ÃÔ¹·Ãì
+¹ÃÔ¹·Ãìà´ª
+¹ÃÔÈ
+¹ÃÔÉ°
+¹ÃÕ
+¹àÃÈ
+¹âõÁì
+¹Ä³Õ
+¹Ä´Õ
+¹Ä·¸Ôì
+¹ÄÁÅ
+¹ÄÁÒ³
+¹Å¾Ãó
+¹Ç¡Ã³ì
+¹Ç¾Å
+¹ÇÃѵ¹ì
+¹ÇŨѹ·Ãì
+¹ÇÅ©ÇÕ
+¹ÇžÃ
+¹ÇÅÅÐÍÍ
+¹Ñ­ªÅÒ
+¹Ñ¯¾Ã
+¹Ñ±¾Ã
+¹Ñ·ª¹¡
+¹Ñ·¸Á¹
+¹Ñ¹ªÑÂ
+¹Ñ¹·ªÑÂ
+¹Ñ¹·¹ì
+¹Ñ¹·¹Ò
+¹Ñ¹·¾Ã
+¹Ñ¹·¾Å
+¹Ñ¹·ÁÒÊ
+¹Ñ¹·Ãѵ¹ì
+¹Ñ¹·Ç§Éì
+¹Ñ¹·ÇÃó
+¹Ñ¹·ÈÑ¡´Ôì
+¹Ñ¹·Ò
+¹Ñ¹·Ô¡Ò¹µì
+¹Ñ¹·ÔÂÒ
+¹Ñ¹Ò
+¹Ò¯Êǧ
+¹ÒµÂÒ
+¹ÒÁ
+¹ÒÃÔ¹·Ãì
+¹ÒÃÕ
+¹ÒÃÕÃѵ¹ì
+¹ÒÇÔ¹Õ
+¹éÓ·Ô¾Âì
+¹éÓ½¹
+¹Ó¾Å
+¹éÓྪÃ
+¹éÓÁѹ¤ÒÅà·ê¡«ì
+¹ÓÃØè§ä·Â ¡ÒÃìàÁ¹·ì
+¹éÓÍéÍÂ
+¹Ô¡Éì
+¹Ô¤Á
+¹ÔªÃªÕ¾
+¹Ôà«Ð
+¹Ô´
+¹Ô´Ò
+¹ÔµÂì
+¹ÔµÂÒ
+¹ÔµÔ
+¹ÔµÔ¾§Éì
+¹ÔµÔÁÒ
+¹Ô·ÃÒ
+¹Ô·Ñȹì
+¹Ô·ÑȹÕÂì
+¹Ô¸ÔÇ´Õ
+¹Ô»»Í¹à¾¹µì(»ÃÐà·Èä·Â)
+¹Ô¾¹¸ì
+¹Ô¾Å
+¹Ô¾Ñ·¸Ò
+¹Ô¾Ñ¹
+¹ÔÀÒ
+¹ÔÂÁ
+¹ÔÃÁÅ
+¹ÔÃѹ´Ã
+¹ÔÃÒÇÃóì
+¹ÔÃب¹ì
+¹ÔÃصµì
+¹ÔÅÀÒ
+¹ÔÅغÅ
+¹ÔâźÅ
+¹ÔÇૹ¨ÙÃÕè¾ÃÔé¹µÔé§á͹´ì ᾤࡨ¨Ôé§
+¹ÔÇѲ¹ì
+¹ÔÇѵÃì
+¹ÔÇѵÔ
+¹ÔÇÒµ
+¹ÔÈÃÒ
+¹ÔÈÒªÅ
+¹ÔÈÒ¾Ã
+¹ÔÊÒ
+¹ÕµÔ
+¹Øª¨ÃÔ¹·Ãì
+¹Øª¹Ò¶
+¹ØªÂÒ
+¹ØªÃÕ
+¹ØÈÃÒ
+¹ØʺÒ
+¹ØÊÃÒ
+๵ôÒÇ
+à¹ÒÇÃѵ¹ì
+º§¡ª
+º§¡µÃѵ¹ì
+º«ì ÍÔ¹â¿Ãì à«ÍÃìÇÔÊ
+ºÃè§
+ºÃèº
+ºÃÃà¨Ô´
+ºÃç
+ºÃÃÊÒÃ
+ºÃÔÇÃõ
+ºÇêÑÂ
+ºÑ§ÍÃ
+ºÑ­ªÒ
+ºÑ­­ÑµÔ
+ºÑ³±Ôµ
+ºÑ³±ÔµÂì
+ºÑµÃ¡Ãاä·Â
+ºÑµÃ¡ÃاÈÃÕÍÂظÂÒ
+ºÑ¹Å×ÍÈÑ¡´Ôì
+ºÒ§¡Í¡ªÕ·àÁç··ÑÅ
+ºÒ¹ªéÍÂ
+ºÓÃاä·Â
+ºÔǵÕéᾤ
+ºÕ ÇÒ ¤ÍÃìâ¾àêÑè¹ ¨Ó¡Ñ´
+ºÕ á͹´ì «Õ ¾ÙÅÒÊ¡Õé
+ºÕ.àÍç¹.ºÃÒà´ÍÃì
+ºÕ.àÍÊ.äÍ.àËÅç¡¡èÍÊÃéÒ§
+ºØ­à¡ÕÂõÔ
+ºØ­¤§
+ºØ­ªèÇÂ
+ºØ­ªÑÂ
+ºØ­ªØº
+ºØ­àªÔ´
+ºØ­«é͹
+ºØ­·ÃѾÂì
+ºØ­·ÇÕ
+ºØ­·Í§
+ºØ­¸ÃÃÁ
+ºØ­»ÃÐÊÔ·¸Ôì
+ºØ­¾§Éì
+ºØ­ÁÕ
+ºØ­Âѧ
+ºØ­àÂÕèÂÁ
+ºØ­ÃèÇÁ
+ºØ­ÃÑ¡
+ºØ­ÅѺ
+ºØ­Å×Í
+ºØ­àÅÔÈ
+ºØ­ÈÃÕ
+ºØ­ÈÔÃÔ ´ÕÇÔÅÍ»àÁ¹·ì
+ºØ­Êè§
+ºØ­Ê¹Í§
+ºØ­ÊÔ¹
+ºØ­Ê׺
+ºØ­ÊØ¢
+ºØ­áʧ
+ºØ³±Ôµ
+ºØ»¼Ò
+ºØÃÑ­ªÅÕ
+ºØÃÔ¹·Ãì
+ºØÈÃÒ
+ºØÈÃÒ¾Ã
+ºØÈÃÔ¹·Ãì
+ºØÉ¡Ã
+ºØɺÒ
+ºØÉÂÒ
+ºØÉÃÒÀóì
+ºØËÅÑè¹
+ºÙê·Êì (»ÃÐà·Èä·Â)
+ºÙê·ÊìáÁ¹Ùῤà¨ÍÃìÃÔè§ (»ÃÐà·Èä·Â)
+ອ¨¾Ã
+ອ¨ÁÒ
+ອ¨ÅÑ¡É³ì ¾ÃÔé¹µÔé§
+ອ¨ÇÃó
+àºç­ÇÃó
+àºç·à·ÍÃì äÅ¿ì
+»¡Ã³ì
+»®ÔÁÒ
+»¯Ô­­Ò
+»¯Ô¾Å
+»¯ÔÁÒ
+»°ÁÇѲ¹ì
+»³ªÑÂ
+»³Ô´Ò
+»³ÔµÒ
+»·ØÁ
+»·ØÁ¾Ã
+»·ØÁÒ
+»¹Ñ´´Ò
+»ÀÑÊÊÃ
+»ÀÒ³Ø
+»ÀÒÇ´Õ
+»ÀÒÇÃÔ¹·ì
+»ÀÒÇÕ
+»ÂصÒ
+»ÃСͺ
+»ÃСÒÈ
+»ÃСÒÈÔµ
+»ÃСԨ
+»ÃСԵ
+»ÃФͧ
+»ÃШ§¨Ôµ
+»ÃШǺ
+»ÃШѡÉì
+»ÃШԵÃ
+»ÃЪÒ
+»ÃЪԵ
+»ÃЪØÁ¾Ã
+»Ãгµ
+»ÃдÔÉ°ì
+»ÃзѺã¨
+»Ãзջ
+»ÃзØÁ·Ô¾Âì
+»ÃÐà·×ͧ
+»Ãо¨¹ì
+»Ãо¹¸ì
+»Ãоķ¸Ôì
+»ÃоѲ¹ì
+»Ãоѹ¸ì
+»ÃÐä¾
+»ÃÐÀÑÊ
+»ÃÐÀÑÊÃì
+»ÃÐÀÑÊÃÒ¾Ã
+»ÃÐÀÑÊÊÃ
+»ÃÐÀÒ¾Ã
+»ÃÐÀÒ¾Ãó
+»ÃÐÀÒÀóì
+»ÃÐÀÒÊ
+»ÃÐÁÇÅ
+»ÃÐÁѾÃ
+»ÃÐÁÙÅ
+»ÃЧ¤ì
+»ÃÐÂÔ¹
+»ÃÐÂØ·¸
+»ÃÐÂÙÃ
+»ÃÐÂÙÃÈÃÕ
+»ÃÐ⪹ì
+»ÃÐÇѵÃ
+»ÃÐÇѵÔ
+»ÃÐÇÔµÃ
+»ÃÐÇÔ·
+»ÃÐÇÔ·Âì
+»ÃÐÇÕ³Ò
+»ÃÐàÇÈ
+»ÃÐʧ¤ì
+»ÃÐÊÒ·
+»ÃÐÊÒ¹
+»ÃÐÊÒÃ
+»ÃÐÊÔ·¸Ôì
+»ÃÐÊ׺
+»ÃÐàÊÃÔ°
+»ÃѪ­Ò
+»ÃÒ¡ÒÃ
+»ÃÒ§³Õ
+»ÃÒª­ì
+»ÃÒ³Õ
+»ÃÒ³ÕÂì
+»ÃÒâÁ·Âì
+»ÃÒö¹Ò
+»ÃÔ­­ì
+»ÃÔ­­Ò
+»ÃÔ­´Ò
+»ÃÔ³´Ò
+»ÃÔ·ÑÈ
+»ÃÔ¹´Ò
+»ÃÔÂÒÇÃó
+»ÃÔȹÒ
+»ÃÔȹÕ
+»ÃÕªÒ
+»ÃÕ­Ò
+»ÃÕÂÒÀóì
+»ÇÕ³ÃѪ
+»ÇÕ³Ò
+»Êѹµì
+»Êѹ¹ì
+»Í§À¾
+»Ñ­¨ÃÑÈÁÔì
+»Ñ­­Ò
+»Ñ­­Ò¾Ã
+»Ñ­­Ò¾Å
+»Ñ³ÃÊÕ
+»Ñ·Á
+»Ñ·ÁÒ
+»Ñ·ÁÒÇ´Õ
+»Ò³ÔÊÃÒ
+»Ò¹
+»Ò¹à¾ªÃ
+»ÒÃÔªÒµ
+»ÒÃÔªÒµÔ
+»ÒÃԾѹ¸ì
+»ÒÃÕ³Ò
+»Ò˹ѹ
+»ÔµÔ
+»ÔµÔÇѪÃì
+»Ôè¹Á³Õ
+»Ôè¹ÁÒ⹪
+»Ô¡ҭ¨¹ì
+»Ô¹ѹ·ì
+»Ô¹ү
+»Ô¾§Èì
+»Ô¾§Éì
+»Ô¾Ã
+»ÔÂÁÒÀóì
+»ÔÂÃѵ¹ì
+»ÔÂÇÃó
+»ÔÂÇѲ¹ì
+»ÔÂÈÑ¡´Ôì
+»ÔÂÐ
+»ÔÂЪÑÂ
+»ÔÂй¹·ì
+»ÔÂйѹ·ì
+»ÔÂйت
+»ÔÂо§Èì
+»ÔÂоÃ
+»ÔÂоѹ¸ì
+»ÔÂоѹ¸Øì
+»ÔÂÐÁÒÈ
+»ÔÂÐÈÑ¡´Ôì
+»ÔÂÒ¾Ã
+»ÔÅѹ­Ò
+»Ø³³ÂÒ
+à»à»ÍÃìÅÔ¿
+à»ÃÁ
+à»ÃÁ»ÃÐÀÒ
+à»ÃÁÄ´Õ
+à»ÃÁÈÃÕ
+à»ÃÁÊÔ·¸Ôì
+à»ÕèÂÁÊØ¢
+á»Å¹âÁ·Ô¿
+¼¡Ò¡Ãͧ
+¼¡Ò¾Ãó
+¼§
+¼¨§¨Ôµµì
+¼´Ø§ÈÑ¡´Ôì
+¼à´ÔÁ
+¼èͧ¾Ãó
+¼èͧÈÃÕ
+¼è͹»ÃÐÀÒ
+¼éÒ¢¹Ë¹ÙªÔ¹àΧ
+¼éÒ¢¹Ë¹Ù«Ô¹àΧ
+¼éҢع˹٫ԹàΧ
+¼èÒ¹¿éÒ àÍ繨Ôà¹ÕÂÃÔè§
+¼èÒ¡ÒäÅѧ¡Í§¡ÅÒ§Êӹѡ»ÅÑ´¡Ãا෾ÁËÒ¹¤Ã
+¼ÒÊØ¢
+¼ØÊ´Õ
+¼Ùé༴ç¨
+¼ÙéãË­èàÅç¡
+༴ç¨
+à¼Ô§
+ä¼·
+½èÒ¡ÒäÅѧ¡Í§¡ÅÒ§ Êӹѡ»ÅÑ´¡Ãا෾ÁËÒ¹¤Ã
+¾§Èìà¡ÕÂõÔ
+¾§ÈìªÒÂ
+¾§Èìà·¾
+¾§È¸Ã
+¾§Èì¾Ñ¹¸ì
+¾§Èì¾Ô¾Ñ²¹ì
+¾§ÈìÀѤ
+¾§ÈìÊØà¡ÉÁ
+¾§Éìà·¾
+¾§Éì¾Ã
+¾§ÉìÈÑ¡´Ôì
+¾§ÉìÊѹµì
+¾§Éì͹ѹµì
+¾¨¹ì
+¾¨¹Ò
+¾¨¹Òö
+¾¨¹ÕÂì
+¾¨ÁÒ¹
+¾¨ÁÒÅÂì
+¾¹Á
+¾¹ÁªÑÂ
+¾¹ÒÊѹ±ì
+¾¹Ô´Ò
+¾Â¹µì
+¾Âا
+¾Ã
+¾Ã¡ÇÕ
+¾Ã¨Ôµµì
+¾ÃªÑÂ
+¾Ã·Ô¾Âì
+¾Ã·Ô¾Ò
+¾Ã·ÔÀÒ
+¾Ãà·¾
+¾Ã¹·Õ
+¾Ã¹ÀÒ
+¾Ã¹ÔµÔ¿ÔÅìÁá͹´ìÇÕ´ÕâÍ
+¾Ã¾§Éì
+¾Ã¾¹Ò
+¾Ã¾Ãó
+¾Ã¾Å
+¾Ã¾ÅÒ§ÒÁ
+¾Ã¾ÔÁÅ
+¾Ã¾ÔäÅ
+¾Ãà¾ç­
+¾ÃÁ§¤Åà¿ÍÃì¹Ôà¨ÍÃì
+¾Ãó·ÔÀÒ
+¾Ãó¹ÔÀÒ
+¾Ãó»ÃÐä¾Ç´Õ
+¾Ãó¾ÃÃÉ
+¾Ãó¾ÔÁÅ
+¾ÃóÃÒ³ì
+¾ÃóÊóì
+¾ÃóԡÒ
+¾ÃóÕ
+¾ÃøԴÒ
+¾ÃÇÔÁÅ
+¾ÃÇÔäÅ
+¾ÃÈÑ¡´Ôì
+¾ÃÈÔÃÔ
+¾ÃÊÃǧ
+¾ÃÊÇÃäì
+¾ÃËÁ¾Ñ²¹ì
+¾ÃéÍÁªÑÂ
+¾ÃлÃÐá´§ Î͹´éÒ¤ÒÃìÊì
+¾ÃлÃÐá´§ Î͹´éÒ¤ÒÃìÊì ¨Ó¡Ñ´
+¾ÃÐÃÒÁ 3 ¤ÒÃìà«ç¹àµÍÃì
+¾ÃÐÃÒÁ 3 Î͹´éÒ¤ÒÃìÊì
+¾ÃÔéÁà¾ÃÒ
+¾ÃÕàÁÕÂÃìà¤ÁÔ¤ÑÅ á͹´ì¾ÅÒʵԡ
+¾ÃÕàÁÕÂÃìÍÔ¹àµÍÃìÅÔ««Ôè§
+¾Å¡Äɳì
+¾ÅªÑÂ
+¾Åà·¾
+¾Å¾ÑªÃì
+¾Å¾Ñ²¹ì
+¾ÅÊÔ·¸Ôì
+¾Ç§·Í§
+¾Ç§à¾ç­
+¾Ç§Ãѵ¹ì
+¾ÈÔ¹
+¾ÊØࡵÔì
+¾Ñª¹Õ
+¾ÑªÃ
+¾ÑªÃÇäÅ
+¾ÑªÃÒ
+¾ÑªÃÒÀóì
+¾ÑªÃÒÀÒ
+¾ÑªÃÔ¹·Ãì
+¾ÑªÃÕ
+¾ÑªÃÕ¾Ã
+¾ÑªÃÕÀóì
+¾Ñ²·ÇÕ
+¾Ñ²¹ªÑÂ
+¾Ñ²¹Ð
+¾Ñ²¾§Éì
+¾Ñ·¸ì¸ÕÃÒ
+¾ÑÅÅÀ
+¾ÑʾÃ
+¾Ò³ÔªÂì
+¾Ò³Õ
+¾Òâµà¤ÁÕÍصÊÒË¡ÃÃÁ
+¾Ò¹·Í§
+¾ÒÃҡ͹ÍÔ¹â¿à·¤
+¾Ô ÈÁÑÂ
+¾Ô¨ÔµÃÒ
+¾Ôª­ì
+¾Ôª´Ò
+¾ÔªÂÒ
+¾ÔªÑÂ
+¾ÔªÑÂÇѲ¹ì
+¾ÔªÔµ
+¾ÔªÔµ¾Å
+¾Ôય
+¾Ôય°ì
+¾ÔàªÉ°
+¾ÔàªÉ°ì
+¾Ô±ÙÃÂì
+¾Ô³ªØ´Ò
+¾Ô³¹ÀÒ
+¾Ô·ÂÒ
+¾Ô·Ñ¡Éì
+¾Ôà·¾
+¾Ô¸Ò¹¡Ã
+¾Ô¹¹ÔÀÒ
+¾ÔºÙÅÂì
+¾Ô¾Ñ²¹ì
+¾ÔÀ¾
+¾ÔÁ¾ìã¨
+¾ÔÁ¾ìª¹¡
+¾ÔÁ¾ì»ÃоÃó
+¾ÔÁ¾ì¾Ã
+¾ÔÁ¾ìÀóì
+¾ÔÁ¾ìÀѤ
+¾ÔÁ¾ìÇÔÁÅ
+¾ÔÁÀÒ
+¾ÔÁÅ
+¾ÔÃÁÂì
+¾ÔÃس
+¾ÔÈÔÉ°ì
+¾ÔɳØ
+¾ÔÊÁÑÂ
+¾ÔÊÔ°
+¾ÔÊÔ·¸Ôì
+¾ÔÊÔÉ°ì
+¾Õ.«Õ.àºÊ·ì ¤ÃÕàÍ·
+¾Õ.àÍÊ.¨Õ ÅÔÊ«Ôè§
+¾Õ.àÍÊ.¾ÅÒʵԡºÃÒà´ÍÃì á͹´ì«Ñ¹
+¾Õ.àÍÊ.¾ÅÒʵԡºÃÒà´ÍÃìá͹´ì«Ñ¹
+¾Õ¹Ô¡«ì àÍç¡«ìà¾ÃÊ
+¾Õ¹Ô¡«ìàÍç¡«ìà¾ÃÊ
+¾Õ÷ѵ
+¾ÕþѲ¹ì
+¾ÕÃÇزÔ
+¾ÕÃÈÔÅ»ì
+¾ÕÃÐ
+¾ÕÃо§Èì
+¾ÕÃоÅ
+¾ÕÃÐÈÑ¡´Ôì
+¾Ù¹¾Ñ¹¸ì
+¾Ù¹ÈÑ¡´Ôì
+¾Ùŷͧ¾Ãç;à¾ÍÃìµÕé_
+¾ÙżÅ
+à¾ç§ ¿Ù ËÅÔ¹
+à¾çªÃì
+ྪÃÃѵ¹ì
+ྪÃÅ´Ò
+ྪÃÔ¹·Ãì
+à¾ç­¨Ñ¹·Ãì
+à¾ç­·Ô¾Âì
+à¾ç­¹ÀÒ
+à¾ç­»ÃÐÀÒ
+à¾ç­¼¡Ò
+à¾ç­¾ÔäÅ
+à¾ç­ÈÃÕ
+à¾ÃÔÁàÁ¹¹Ôª ÍâÃáÁµÔê¡Êì ¾Õ·ÕÍÕ ÅÔÁÔàµç´
+à¾ÅÔ¹¨Ôµµì
+à¾ÅԹĴÕ
+à¾Õ§¾Ã
+á¾´´Ôé§ (ä·ÂᏴì)
+á¾´´Ôé§(ä·ÂᏴì)
+á¾¹´éÒ à»à»ÍÃì ¤ÒÃìµÑ¹Ê
+á¾ÃÇ
+á¾ÃÇÒ
+ä¾±ÙÃÂì
+侺ÙÅÂì
+ä¾ÃÄ·¸Ôì
+ä¾Ãʳ±ì
+ä¾ÃÊÔ·¸Ôì
+ä¾ÃѪ
+ä¾Ãѵ¹ì
+ä¾ÃÔ¹·Ãì
+ä¾àÃÒÐ
+ä¾âè¹ì
+ä¾ÅÔ¹
+ä¾ÇÑÅÂì
+ä¾ÈÒÅ
+ä¾ÈÔÃÔ
+ä¾ÊÔ°
+¿ÅØÊÊÔ¡à¤Á
+¿Õ¹Ô¡«ì àÍç¡«ìà¾ÃÊ
+á¿Ã§¤ì
+á¿ÃìàÇÂì ÍÔ¹àµÍÃì๪Ñè¹á¹Å
+ÀÃÒ´Ã
+ÀÇÔ¹
+ÀÑ¡´Õ
+ÀѤ¨ÔÃÒ
+Àѳ±ÔÃÒ
+Àѷ÷ÔÃÒ
+Àѷþ§Èì
+ÀѷþÃ
+ÀѷþÅ
+ÀÑ·ÃÀÃ
+ÀÑ·ÃÃѧÊÕ
+ÀÑ·ÃÄ´Õ
+ÀÑ·ÃÒÀóì
+ÀÑ·ÃÔ¹·Ãì
+ÀÑÊÅÔ¹
+ÀÑÊÇÃó
+ÀÒ¡Ã
+ÀÒ¤ÀÙÁÔ
+ÀÒ³Õ
+ÀÒ³Ø
+ÀҳؾÅ
+ÀÒ³ØÇÃó
+ÀÒ¹ØÇѲ¹ì
+ÀÒ¹ØÇѵÃ
+ÀÒ¾Ã
+ÀÒôÕ
+ÀÒǹÒ
+ÀÒǾѹ¸¹ì
+ÀÒÇÔ³Õ
+ÀÒÇÔ¹
+ÀÒÇÔ¹Õ
+ÀÒÉÔµÒ
+ÀÔ¨ÔµÃÒ
+ÀÔ­­¾Ñ¡µÃì
+ÀÔ­â­
+ÀÔôÕ
+ÀÙàºÈ
+ÀÙÁÔ°Ò¹
+ÀÙÃÔ¾§Èì
+ÀÙÃÔÇÃò¡ì
+ÀÙÉÔµ
+Á¡Ãҹѹ·ì
+Á§¡Ø®Ãѵ¹ì
+Á§¤Å
+Á§¤Å¡Òûѡ
+Á³°Ô´Ò
+Á³±¹ì¡Ò­¨¹ì
+Á³±¹Ô¨
+Á³±ÅÕ
+Á³±Ò
+Á³à±ÕÂÃ
+Á³ÕÃѵ¹ì
+Á¹µìªÑÂ
+Á¹µÃÕ
+Á¹ÑÊ
+Á¹ÑÊÇÕ
+Á¹Ù­
+Áâ¹
+Á⹪
+ÁÂØÃÕ
+ÁÅÄ´Õ
+Áéǹáµé
+ÁËÀÑ®
+ÁËÒÃÒª
+ÁÐÅÔÇÑÅÂì
+Áѧ¡Ãä·ÂʵÕźÒÃì
+Áѳ±¹Ò
+ÁÑ·¹Ò
+ÁÑÅÅÔ¡Ò
+ÁÒªÍÃì¡ÇÒ¹
+ÁÒ³Õ
+ÁÒ¹¾
+ÁÒ¹Ð
+ÁÒ¹ÔµÂì
+ÁÒ⹪³ì
+ÁÒâ¹·
+ÁÒÃÔÉÒ
+ÁÒÅÑÂ
+ÁÒÅÔ¹Õ
+ÁÒÅÕ
+ÁÒÅÕÇÃó
+ÁÔµ·ÔÃÒ
+ÁÔÅàŹà¹ÕèÂÁ âÍ.àÍ 2000
+ÁÕ¾Å
+ÁØ¢
+ÁØ·ÔµÒ
+ÁÙËÐÁд×ÍàÃÐ
+àÁà¨ÍÃìÍصÊÒË¡ÃÃÁä·Â (1989)
+àÁ´Ô¤ÃÒ¿·ì
+àÁµµÒ
+àÁâ·ÃʻԹ¹Ôè§
+àÁ¸Ò
+àÁ¸ÒÇÕ
+àÁ¸Ô¹Õ
+àÁ¸Õ
+àÁÉÂÒ
+àÁÉÔ³Õ
+àÁ×ͧ·Í§
+áÁ··ÕàÃÕÂÅ¡ÃØê» ¨Ó¡Ñ´
+áÁé¹ÁÒµÃ
+äÁµÃÕ
+§ÂØ·¸
+Âè§àΧÇѲ¹Ò¡ÒþÔÁ¾ì
+ÂÃç¤ì
+ÂʹྪÃ
+Âѹ áÍÅ à¤âÂÊ
+ÂÔè§ÇÃó
+ÂؤžÃ
+ÂØ´Ò
+ÂØ·¸¹Ò
+ÂØ·¸¹ÒÇÕ
+ÂØ·¸Â§
+ÂظÒÁÒµÂì
+Âعâ¡Ð
+ÂؾÒ
+ÂؾҾÃ
+ÂؾÒÇ´Õ
+ÂؾԹ
+ÂØÀÒ¾Ã
+ÂØÀÒÀóì
+ÂØÇ´Õ
+ÂØÇÃÕ
+ÂÙ¹ÔÅÕàÇÍÃì ä·Â âÎÅ´Ôé§Êì
+ÂÙ¹ÔÅÕàÇÍÃìä·Â âÎÅ´Ôé§Êì
+ÂÙ¹Õ¤ ÍÍÃì¤Ô´
+ÂÙà¹Õè¹á¡êÊá͹´ìàÅÁÔ¤ÑÅÊì
+àÂ繨Եµì
+àÂ繨ԵÃ
+àÂÒÇ´Õ
+àÂÒǾÒ
+àÂÒÇÀÒ
+àÂÒÇàÃÈ
+àÂÒÇÅѡɳì
+â¸Թ
+Ã.µË­Ô§ ¾Íã¨
+è¹Ò
+óç¤ì
+ôÒ
+ùԮ°Ò
+þվÃ
+þվѲ¹ì
+þÕÀÑ·Ã
+ÃÁÂì¨ÃÃÂì
+Ãǧ·Í§
+ÃÈÑ¡´Ôì
+ÃÊÊؤ¹¸ì
+ÃÍÂÑÅàÍ繨Ôà¹ÕÂÃÔè§
+ÃеÃÕ
+ÃоԹ·Ãì
+ÃоվÃ
+ÃоվÃó
+ÃоվÅ
+ÃÑ¡´Õ
+ÃÑ¡ÈÑ¡´Ôì
+ÃÑ¡ÉÔµÀÑ·Ã
+ÃѧÊÃäì
+ÃѧÊѹµì
+ÃѧÊÔÁÒ
+ÃѪà¡ÅéÒ
+ÃѪ®Ò
+ÃѪ®Ò¾Ã
+ÃѪ´Ò
+ÃѪ¹Õ
+ÃѪ¹Õ¡Ã
+ÃѪ¹Õ¾Ã
+ÃÑ°¾§Éì
+ÃÑ°ÊØ´Ò
+Ãѵ³Ò
+ÃѵµªÑÂ
+ÃѵµÔÂÒ
+Ãѵ¹ªÑÂ
+Ãѵ¹Àóì
+Ãѵ¹Á³Õ
+Ãѵ¹Ò
+Ãѵ¹Ò¾Ã
+Ãѵ¹ÒÀóì
+ÃѵÔÂÒ
+ÃѵÔÂÒÀóì
+ÃÑÈÁÕ
+ÃÑÈÁÕÀÑÊÊÃ
+ÃҪѹÂì
+ÃÒªÒÍÙªÔâ¹
+ÃÒહ
+ÃÒ³Õ
+ÃÒµÃÕ
+ÃÒàÁÈÃì
+ÃÒÂÕ¹
+Ã×è¹ÇÃÒËì
+ÃØé§
+ÃØ觷ԾÂì
+ÃØ觷ÔÇÒ
+ÃØ觹ÀÒ
+ÃØè§à¾ªÃ
+ÃØè§ÃѪ¹Õ
+ÃØè§Ãѵ¹ì
+ÃØè§ÃÑÈÁÕ
+ÃØè§àÃ×ͧ
+ÃØè§âè¹ì
+ÃØè§âè¹ì¢¹Êè§
+ÃØé§ÅÒÇÃó
+ÃØè§ÇÔ·Âì
+ÃØè§ÍÃس
+ÃبÒ
+ÃبÒÀÒ
+ÃØËйÒ
+ÃÙàºÕÂÍصÊÒË¡ÃÃÁ
+àâ­Ò
+àóÙ
+àþᾤ à·Ã´´Ôé§
+àþᾤ¤Í¹ÊµÃѤªÑè¹
+àÃÇѵ
+àÃÔ§·ÔÇÒ
+àÃÔ§ÃÐÇÕ
+àÃԧķ¸Ôì
+àÃ×ͧÂÈ
+áþᾤ ¤Í¹ÊµÃѤªÑè¹
+âç§Ò¹àËÅç¡¡Ãا෾Ï
+âè¹ì»ÃÐàÊÃÔ°
+Ä·¸Ôì
+Ä·¸ÔªÑÂ
+ÅÅÔ´Ò
+ÅÅÔµÒ
+ÅÐÁèÍÁ
+ÅÐÁÑÂ
+ÅÐÍͧ´ÒÇ
+ÅÐàÍÕ´
+ÅÑ¡¢³Ò
+ÅѡɳÒ
+ÅÑ¡ÉÁÕ
+ÅÑ­ª¹Ò
+ÅÑ´´Ò
+ÅÑ´´ÒÇÃó
+ÅÑ´´ÒÇÑÅÂì
+ÅÑ·¸ÈÑ¡´Ôì
+ÅÒÇѳÂì
+ÅÓä¾
+ÅÓäÂ
+ÅÔ¹´ÒÇÃó
+ÅÔÁ
+ÅÔÅÒÀóì
+Å×ͪÑÂ
+àÅͪÑÂ
+àÅÍÈÑ¡´Ôì
+àÅÍÊÃäì
+àÅÍÊØ¢
+àÅÔȪÑÂ
+àÅÔÈÈÑ¡´Ôì
+àÅÔÈÊÒÁÒö â¸Ò
+âÅËСԨʵÕÅ
+ǧà´×͹
+ǧÈìä¾±ÙÃÂì¡Ãç» º
+ǧÈìä¾±ÙÃÂì¡ÃØê»
+ǧÈìä¾±ÙÃÂì¡ÃÙê»
+ǧÈìÇÒµ
+ǧÈìÊØÀÒ
+ǨÕÃѵ¹ì
+ǪÔÃÒÀÒ
+ǹѪ¾Ã
+ǹÑʹѹ·ì
+ǹÒ
+ǹԪ
+ǹԴÒ
+ÇáÒÃ
+ÇêÑÂ
+ÇêҵÔ
+ÇôÔÉ°ì
+ÇÃà·¾
+ÇøѹÂì
+Çùت
+Çþ§Éì
+Çþ¨¹ì
+ÇþÅ
+ÇÃÁÅ
+ÇÃÂØ·¸ì
+ÇÃó¨Ôµ
+ÇÃóªÑÂ
+ÇÃó±¹Ò
+ÇÃó´Õ
+ÇÃóì´Õ
+ÇÃó·¹Ò
+ÇÃó·¹Õ
+ÇÃó¸³Õ
+ÇÃó¸ÁÅ
+ÇÃó¹ÀÒ
+ÇÃó¹ÒÃÕ
+ÇÃó¾Ã
+ÇÃó¾Ò
+ÇÃóà¾ç­
+ÇÃóÀ¾
+ÇÃóÀóì
+ÇÃóÀÒ
+ÇÃóǴÕ
+ÇÃóÈÔÃÔ
+ÇÃóÒ
+ÇÃóÕ
+ÇÃø¹Ò
+ÇÃÃѪ
+ÇÃÅѡɳì
+ÇÃÇÃó
+ÇÃÇÃø¹ì
+ÇÃÇѲ¹ì
+ÇÃÇÔÀÒ
+ÇÃÑ­¸Ã
+ÇÃÒ
+ÇÃÒ§¤³Ò
+ÇÃÒ§Ãѵ¹ì
+ÇÃÒ¾Ã
+ÇÃÒÀóì
+ÇÃÒÃѵ¹ì
+ÇÃÒÅѡɳì
+ÇÃÒÇزÔ
+ÇÃÒÇظ
+ÇÃÔ¹·Ãì
+ÇÃÔ¹¸Ã
+ÇÃÔÁÒ
+ÇÃÔÈÃÒ
+ÇÃÕÇÃó
+ÇÃس
+ÇÅѾÃ
+ÇÈÔ³Ò
+ÇÈÔ¹
+ÇÊѹµì
+ÇÊØ
+Çèͧ
+ÇѪáÃ
+ÇѪþÅ
+ÇѪÃÐ
+ÇѪÃÑ­­Ò
+ÇѪÃÔ¹·Ãì
+ÇѪÃÕ
+ÇѲ¹Ð
+ÇѲ¹Ò
+Çѹà©ÅÔÁ
+ÇѹªÑÂ
+ÇѹªÒµÔ
+Çѹ´Õ
+Çѹ·¹Ò
+Çѹ·¹Õ
+Çѹ·¹ÕÂì
+Çѹà¾ç­
+ÇѹÃѪ´Ò
+ÇѹÇÔÊÒ¢ì
+ÇѹʶÒ
+ÇÑÅÅÀ
+ÇÑÅÅÀÒ
+ÇÑÅÅÒÀÒ
+ÇÑȾÅ
+ÇÑʹÑÂ
+ÇÒ³Õ
+ÇÒ·Ôµ
+ÇÒ·Ô¹
+ÇÒ·Ô¹ÕÂì
+ÇÒÃÔª
+ÇÒÃÕ
+ÇÒÃسÕ
+ÇÒʹÒ
+ÇÔ¤µÍÃÕè â¾Ãà¡Ã·
+ÇÔ¤Á
+ÇÔ¨Òóì
+ÇÔ¨ÔµÃ
+ÇÔ¨ÔÃÒ
+ÇÔªªÒ
+ÇÔª­ÐÃب
+ÇÔªÑÂ
+ÇÔªÒ­
+ÇÔªÔµ
+ÇԪشÒ
+ÇÔàªÉ°
+ÇÔàªÕÂÃ
+ÇÔ­­Ø´Ò
+ÇÔ±ÙÅÂì
+ÇÔ·¸ÇѪ
+ÇÔ·ÂÒ
+ÇÔ·ÇÑÊ
+ÇÔ·ÙÃ
+ÇÔ¹ÊÃäì
+ÇÔ¹ÑÂ
+ÇÔ¹Ô¨
+ÇÔºÙÅÂì
+ÇÔÀÒ
+ÇÔÀҡóì
+ÇÔÀÒ¤
+ÇÔÀÒ¾Ãó
+ÇÔÀÒÃѵ¹ì
+ÇÔÀÒɳÕÂì
+ÇÔÀÒÊ
+ÇÔÀÙÉÔµ
+ÇÔÁÅ
+ÇÔÁžÃ
+ÇÔÁÅÇÃó
+ÇÔÃÁÅ
+ÇÔÃѪ
+ÇÔÃѵ¹ì
+ÇÔâè¹ì
+ÇÔÅÇѳÂì
+ÇÔÅÒÇÃó
+ÇÔÅÒÇѳÂì
+ÇÔÅÒÇÑÅÂì
+ÇÔÅÒÊÔ¹Õ
+ÇÔÅÔµ
+ÇÔäÅ
+ÇÔäžÃ
+ÇÔäÅÃѵ¹ì
+ÇÔäÅÅѡɳì
+ÇÔäÅÇÃó
+ÇÔÇ
+ÇÔÇÃø¹ì
+ÇÔÇѲ¹ì
+ÇÔÇѲ¹ìªÑÂ
+ÇÔȹÕ
+ÇÔÈÃص
+ÇÔÈÒÅ
+ÇÔÈÔÉ®ì
+ÇÔÈÔÉ°ì
+ÇÔÉÃب¹ì
+ÇÔÊÔ°ÈÑ¡´Ôì
+ÇÔÊÔ·¸Ôì
+ÇÔÊØ·¸Ô
+ÇÔÊØ·¸Ôì
+ÇÔÊÙµ
+ÇÕ àÍÊ à¹à¹ÍÃÑÅ à¤Á
+ÇÕ«èÒ (2000)
+ÇÕ³Ò
+ÇÕ¹ÑÊ
+ÇÕêÑÂ
+ÇÕÃ⪵Ô
+ÇÕÃà´ª
+ÇÕþ§Èì
+ÇÕþÅ
+ÇÕÃÂØ·Âì
+ÇÕÃÇÃó
+ÇÕÃÈÑ¡´Ôì
+ÇÕÃÊÔ·¸Ôì
+ÇÕÃÐ
+ÇÕÃЪÑÂ
+ÇÕÃЪҵÔ
+ÇÕÃЪÒÂ
+ÇÕÃÐà´ª
+ÇÕÃо§Éì
+ÇÕÃоÅ
+ÇÕÃÐÂØ·¸ì
+ÇÕÃÐÇÃó
+ÇÕÃÐÇѲ¹ì
+ÇÕÃÐÈÑ¡´Ôì
+ÇÕÃÒÀóì
+ÇزԡÃ
+ÇزԪÑÂ
+ÇزԹѹ·ì
+ÇزԹÑÂ
+ÇزԾ§Èì
+ÇزԾ¨¹ì
+ÇزԾÅ
+ÇزÔÃѵ¹ì
+àÇèÂà©Ô¹ÍÔ¹´ÑÊàµÃÕ¹
+àÇÍÃìâ¡é ·ÃҹʻÍÃìµ
+áÇÇÇ´Õ
+áÇÇÇÔÀÒ
+äÇ·Ô¹
+È¡ÅÇÃó
+ȨÕ
+ÈÁÅÇÃó
+ÈÂÒÁÅ
+ÈêÑÂ
+ÈÃÇÑÅÂì
+ÈÃÑ­­Ò
+ÈÃѳ¾Ã
+ÈÃѳÂì
+ÈÃÒÁÒÈ
+ÈÃÒÇزÔ
+ÈÃÒÇظ
+ÈÃÔ¹·Ãì
+ÈÃըѹ·Ãì
+ÈÃըѹ·ÃÒ
+ÈÃշͧà¹Áà¾Å·
+ÈÃշͧÍصÊÒË¡ÃÃÁ«Ñ¾¾ÅÒÂ
+ÈÃÕ¹ÇÅ
+ÈÃÕ»ÃÐä¾
+ÈÃÕ»ÃÐÀÒ
+ÈÃÕ¾§Éì
+ÈÃÕà¾ç­
+ÈÃÕÀÒ
+ÈÃÕÃѵ¹ì
+ÈÃÕÇѨ¹Ò
+ÈÃÕÇѲ¹Ò
+ÈÃÕÇÔ¡Ò
+ÈÃÕÈÑ¡´Ôì
+ÈÃÕÊ¡ØÅ
+ÈÃÕÊÁÃ
+ÈÃÕÊÁÃ
+ÈÃÕÊÁÃ
+ÈÃÕÊØÇÃó¤Í¹àÇàÂÍÃìàºÅ·ì á͹´ì ÃѺàºÍÃì
+ÈÃÕ͹§¤ì
+ÈÃÕÍÓ¾ÅÍصÊÒË¡ÃÃÁ
+ÈÅÔÉÒ
+ÈÈÁÅ
+ÈÈÔ
+ÈÈÔ¸Ã
+ÈÈÔ¾Ã
+ÈÈÔÀÒ
+ÈÈÔÁÒ
+ÈÈÔÇÔÁÅ
+ÈÈÔÉÒ
+ÈÑ¡´Ò
+ÈÑ¡´Ôì
+ÈÑ¡´ÔìªÑÂ
+ÈÑ¡´ÔìàªÇ§
+ÈÑ¡´Ôì´Ò
+ÈÑ¡´ÔìÇÔºÙÅÂì
+ÈÑ¡ÃÔ¹·Ãì
+ÈѹʹÕÂì
+ÈÒ¹µÔᏴì
+ÈÔÁÒÃÕ
+ÈÔÃÉÒ
+ÈÔÃÒ¾Ã
+ÈÔÃÔ
+ÈÔÃÔ¡ØÅ
+ÈÔÃԨѹ·Ãì
+ÈÔÃÔâ©Á
+ÈÔÃÔªÑÂ
+ÈÔÃÔ·Ñȹì
+ÈÔÃÔ¸Ã
+ÈÔÃÔ¹­Ò
+ÈÔÃÔ¹Òö
+ÈÔÃԹت
+ÈÔÃÔ¾§Éì
+ÈÔÃÔ¾Ã
+ÈÔÃÔ¾Ãó
+ÈÔÃÔà¾ç­
+ÈÔÃÔÁÒ
+ÈÔÃÔÃѨ¹ì
+ÈÔÃÔÃѵ¹ì
+ÈÔÃÔÅѡɳì
+ÈÔÃÔÇÃó
+ÈÔÃÔÇѲ¹ì
+ÈÔÃÔÈÑ¡´Ôì
+ÈÔâè¹ì
+ÈÔÅ»ªÑÂ
+ÈÔÅÒ
+ÈÔǾÃ
+ÈÔǾÅ
+ÈÔÇÒ¾Ã
+ÈÔÇÒÀóì
+ÈØÀ¡Ã
+ÈØÀ¡Ô¨
+ÈØÀªÑÂ
+ÈØÀ¾Ã
+ÈØÀÁÔµÃ
+ÈØÀÃ
+ÈØÀÃѵ¹ì
+ÈØÀÃÒÀóì
+ÈØÀÅѡɳì
+ÈØÀÇѲ¹ì
+ÈØÀÇÔ·Âì
+ÈØÀÈÑ¡´Ôì
+ÈØÀÔÊÃÒ
+àÈÃÉ°¸Ã
+àÈÃÉ°¾§Éì
+âÈôÒ
+ÉØÀÁ¹
+Ê ÍÒ´
+Ê.͹ѹµìàÍ繨Ôà¹ÕÂÃÔè§ á͹¤Í¹ÊµÃѤªÑè¹
+Ê¡ÅÃѵ¹ì
+Ê¡ÒÇÃѵ¹ì
+ʧ¡Ã³ì
+ʧ¡ÃÒ¹µì
+ʧǹ
+Êè§ÈÃÕ
+Êè§àÊÃÔÁ
+ʧѴ
+ʧèÒ
+ʴѺ¾Ô³
+Êáµ¹´ÒÃì´ ªÒÃìàµÍÃì (»ÃÐà·Èä·Â)
+ʶҾÃ
+ʶÔÃÂÒ
+ʹã¨
+ʹ·ÂÒ
+ʹ¸¾
+ʹ¸ÂÒ
+ʹͧ
+ʹÑè¹
+ʹԴÒ
+Êà»ç¤ à´ç¹ µÑÅ áź
+Ê໫¤ÍÁ
+ÊÁ
+ÊÁ¡ÁÅ
+ÊÁà¡ÕÂõÔ
+ÊÁ¤ÇÃ
+ÊÁ¤Ô´
+ÊÁ¨Ôµ
+ÊÁ¨Ôµµì
+ÊÁ¨ÔµÃ
+ÊÁ¨ÔµÃì
+ÊÁ¨Ô¹µ¹Ò
+ÊÁã¨
+ÊÁªÑÂ
+ÊÁªÒ­
+ÊÁªÒµÔ
+ÊÁªÒÂ
+ÊÁ⪤
+ÊÁ´Õ
+ÊÁà´ª
+ÊÁ·Ã§
+ÊÁ¹Ö¡
+ÊÁºÑµÔ
+ÊÁºØ­
+ÊÁºÙóì
+ÊÁ»Í§
+ÊÁ¾§Éì
+ÊÁ¾¨¹ì
+ÊÁ¾Ã
+ÊÁ¾Å
+ÊÁ¾ÔÈ
+ÊÁÀ¾
+ÊÁâÀª¹ì
+ÊÁÁÒö
+ÊÁÁÒȹì
+ÊÁâÁ·
+ÊÁÂÈ
+ÊÁÃ
+ÊÁÃÑ¡Éì
+ÊÁÄ´Õ
+ÊÁÄ·¸Ôì
+ÊÁÄ·ÑÂ
+ÊÁÅѡɳì
+ÊÁǧÉì
+ÊÁÈÃÕ
+ÊÁÈÑ¡´Ôì
+ÊÁÈÔÃÔ
+ÊÁÊØ¢
+ÊÁÊعÕÂì
+ÊÁË­Ô§
+ÊÁËÁÒÂ
+ÊÁËÇѧ
+ÊÁÑÂ
+ÊÁÒ¹
+ÊÁÔ·¸Ô
+ÊÁÔ·¸Ôì
+ÊÁتªÅ
+ÊÂÒÁ
+ÊÂÒÁ¤Í¹àÇàÂÍÃì
+ÊÂÒÁªÑÂâ¾ÅÕàÁÍÃì
+ÊÂÒÁä´à¤ÕÂÇ
+ÊÂÒÁ¹ÔÊÊѹ ÍÍâµéâÁºÔÅ
+ÊÂÒÁ¾Ãà·Ã´à«ç¹àµÍÃì
+ÊÂÒÁàÁ¦Õâ¾ÅÕàÁÍÃì
+ÊÂÒÁÂÙ¹Ôâ«Å
+ÊÂØÁ¾Ã
+ÊÃÃàÊÃÔ°­
+ÊÃÑ­­Ò
+ÊÃÒ¡Ã
+ÊÃÒ­¨Ôµ
+ÊÃÒÂظ
+ÊÃÒÇزÔ
+ÊÃÒÇظ
+ÊÃÔ¹ÃÒ
+ÊÃب
+ÊÅÑ¡¨ÔµÃ
+ÊàŤ·ì¿ÍÃìÁà¿ÍÃì¹Ôà¨ÍÃìáÅкصÃ
+ÊÇÅѡɳì
+ÊÇÑÊ´Ôì
+ÊÇÕâè¹ì
+ÊÇÕÇÃó
+ÊÊԾѹ¸Øì
+ÊËà¡ÕÂõÔâÅËÐà¡ÕÂõÔ
+Ê˾Å
+ÊÍÒ´
+Êзé͹
+ÊѧÇÒÅÂì
+ÊѨ¾§Éì
+ÊÑ­ª¹Ò
+ÊÑ­ªÑÂ
+ÊÑ­­Ò
+ÊѹµÔ
+ÊѹµÔªÑÂ
+ÊÑÁ¾Ñ¹¸ì
+ÊÑÁÄ·¸Ôì
+ÊÒ¤Ã
+ÊÒ¸Ôµ
+ÊÒ¹ÔµÂì
+ÊÒÁÀ¾
+ÊÒÁÒö
+ÊÒÂã¨
+ÊÒªÅ
+ÊÒ¹·Õ
+ÊÒ½¹
+ÊÒÂä¿¿éÒä·Â-ÂÒ«Ò¡Ô
+ÊÒ¹µì
+ÊÒÂÅÁ
+ÊÒÂÊÁÃ
+ÊÒÂÊسÕ
+ÊÒÂÊعÕÂì
+ÊÒÂѳ
+ÊÒÂѳËì
+ÊÒâè¹ì
+ÊÒâê
+ÊÒÅÕ
+ÊÒÅÕè
+ÊÒÇÔµÃÕ
+Êӹѡ¹âºÒÂáÅÐá¼¹¡Ãا෾ÁËÒ¹¤Ã
+ÊÓà¹Õ§
+ÊÓÃÇÁ
+ÊÓÃÇÂ
+ÊÓÃÒ­
+ÊÓÄ·¸Ôì
+ÊÓÅÕ
+ÊÔ§Ëì
+ÊÔ§Ëì¾Å
+ÊÔ§ËÒ
+ÊԵҹѹ
+ÊÔµÒ¾Ã
+ÊÔ·¸Ò
+ÊÔ·¸Ôì
+ÊÔ·¸ÔªÑÂ
+ÊÔ·¸Ôà´ª
+ÊÔ·¸Ô¾Ã
+ÊÔ·¸Ô¾Ãó
+ÊÔ·¸Ô¾Å
+ÊÔ¹·ÇÕ
+ÊÔÃÔªÑÂ
+ÊÔÃÔà´ª
+ÊÔÃÔ¹¾Ã
+ÊÔÃÔ¹Ãѵ¹ì
+ÊÔÃÔ»ÃÐÀÒ
+ÊÔÃÔ¾§Éì
+ÊÔÃÔ¾Ã
+ÊÔÃÔ¾Ãó
+ÊÔÃԾѹ¸ì
+ÊÔÃÔÁÒ
+ÊÔÃÔÃѵ¹ì
+ÊÔÃÔÅѡɳì
+ÊÔÃÔÇÃó
+ÊÔÃÔÇѲ¡ì
+ÊÔÃÔÇѲ¹Ò
+ÊÔâè¹ì
+ÊÔÇÅÕ
+ÊÕ¹ÇÅ
+ÊÕÇÔ¡Ò
+ÊØ¡ÃÕ
+ÊØ¡Ñ­­Ò
+ÊØ¡Ò¹´Ò
+ÊØ¡Ô¨
+ÊØ¡ÔµÔì
+ÊØ¡ÕµÔì
+ÊØ¡ØÁÒ
+ÊØ¢
+ÊØ¢ªÒÂ
+ÊآĴÕ
+ÊØ¢ÊÇÑÊ´Ôì¡Å¡ÒÃ
+ÊØ¢Êѹµì
+ÊØ¢ØÁ
+Êؤ¹¸ì
+Êؤ¹¸Ò
+ÊبÒÃÕ
+ÊبԵ
+ÊبԵµÒ
+ÊبԵÃÒ
+ÊبԹ´Ò
+ÊبԹµì
+ÊبԹµ¹ì
+ÊتÅ
+ÊتÑÂ
+ÊتҴÒ
+ÊتҵÔ
+ÊتÒÂ
+ÊتÒÊÔ¹Õ
+ÊتԵ
+ÊتԹ
+ÊرÒÁÒÈ
+ÊسÕ
+Êشʧǹ
+ÊØ´ÊÇÒ·
+ÊØ´Ò
+ÊØ´ÒªÅÕ
+ÊØ´Ò¾Ã
+ÊØ´ÒÀÒ
+ÊØ´ÒÃѵ¹ì
+ÊØ´ÒÃÒ
+ÊØ´Õà¾é¹·ìà«ç¹àµÍÃì
+ÊØ·¸Ò·Ô¾Âì
+ÊØ·¸Ô¡Ò¨
+ÊØ·¸ÔªÑÂ
+ÊØ·¸Ô¹Ñ¹·ì
+ÊØ·¸Ô¹Õ
+ÊØ·¸Ô쾧Éì
+ÊØ·¸Ô¾Ãó
+ÊØ·¸ÔÇѲ¹ì
+ÊØ·¸ÔÈÑ¡´Ôì
+ÊØ·ÃÕ
+ÊØ·ÑÈ
+ÊØ·Ñȹì
+ÊØ·ÔµÂì
+ÊØ·Ô¹
+ÊØ·Ô¾Ò
+ÊØ·ÔÈÒ
+ÊØà·¾
+ÊظҷԾÂì
+ÊظҹԸÔ
+ÊظԴÒ
+ÊظÔÈÑ¡´Ôì
+ÊظÕ
+ÊظÕÃì
+ÊظÕÃÒ
+Êع·Ã
+Êع·ÃÕ
+Êعѷ·Õ
+Êعѹ·ì
+Êعѹ·Ò
+ÊعԵÒ
+ÊعÔÈÒ
+ÊعÔÉÒ
+ÊعÔÊÒ
+ÊعÕÂì
+ÊØ๵Ã
+ÊØ»ÃдÔÉ°ì
+ÊØ»ÃÐÇÕ³ì
+ÊØ»ÃÒ³Õ
+ÊØ»ÃÕÂÒ
+ÊØ»ÃÕÃдÒ
+Êػѭ­Ò
+Êؾ¨¹ì
+Êؾ¨ÁÒÅÂì
+ÊؾÃ
+ÊؾÃóÕ
+ÊؾÃÃÉÒ
+ÊؾÅ
+ÊؾѲ¹ì
+ÊؾѵÃÒ
+ÊؾԪ­ìª­Ò
+ÊؾԹ
+ÊؾÔÈ
+ÊؾÕÃìªÑÂ
+ÊØÀ¡Ô¨
+ÊØÀªÒ
+ÊØÀ⪤
+ÊØÀÁÒÊ
+ÊØÀѤ
+ÊØÀѵÃÒ
+ÊØÀÑ·ÃÒ
+ÊØÀÒ
+ÊØÀÒ³Õ
+ÊØÀÒ¾
+ÊØÀÒ¾Ã
+ÊØÀÒ¾Ãó
+ÊØÀÒÀóì
+ÊØÀÒôÕ
+ÊØÀÒÇ´Õ
+ÊØÀÔ­­Ò
+ÊØÁ¹µì
+ÊØÁ¹Ò
+ÊØÁÒÅÕ
+ÊØÁÒÊÕ
+ÊØÁÔµÃ
+ÊØÁÔµÃÒ
+ÊØàÁ¸
+ÊØàÁ¸Õ¡ì
+ÊØáԨ
+ÊØêÑÂ
+ÊØêҵÔ
+ÊØÃàªÉ°ì
+ÊØÃà´ª
+ÊØ÷Թ
+ÊØþ§Éì
+ÊØþÅ
+ÊØþѹ¸ì
+ÊØþѹ¸Øì
+ÊØÃÈÑ¡´Ôì
+ÊØÃÊÔ·¸Ôì
+ÊØÃѪ¹Õ¡Ã
+ÊØÃѵ¹ì
+ÊØÃѵ¹Ç´Õ
+ÊØÃѵ¹ìÇ´Õ
+ÊØÃѵ¹Ò
+ÊØÃѵÂÒ
+ÊØÃÒ§¤¹Ò
+ÊØÃÔªÑÂ
+ÊØÃÔ¹·Ãì
+ÊØÃÔ§Èì
+ÊØÃÔ¹
+ÊØÃÔ¹µì
+ÊØÃÔ¾§Èì
+ÊØÃÔÂѹ
+ÊØÃÔÂѹµì
+ÊØÃÔÂÒ
+ÊØÃÕ¸Ò¾Ã
+ÊØÃÕ¾Ã
+ÊØÃÕÁÒÈ
+ÊØÃÕÂì
+ÊØÃÕÂì¾Ã
+ÊØÃÕÃѵ¹ì
+ÊØÅÑ´´Ò
+ÊØÇÀÑ·Ãì
+ÊØÇÃó
+ÊØÇÃóªÑÂ
+ÊØÇÃóÒ
+ÊØÇÃóÕ
+ÊØÇÃóÕÂì
+ÊØÇÃѵ¹ì
+ÊØÇѲ¹ì
+ÊØÇѲ¹ìªÑÂ
+ÊØÇѲ¹Ò
+ÊØÇѵªÑÂ
+ÊØÇÒÃÕ
+ÊØÇÔªÑÂ
+ÊØÇÔªÒ
+ÊØÇÔ´Ò
+ÊØÇÔ·Âì
+ÊØÇÔÁÅ
+ÊØÇÔÃѪ
+ÊØÊÔÃÔ
+ÊØËÑʪÒ
+àÊ¡ÊÃÃ
+àÊ¡ÊÃäì
+àʶÕÂÃ
+àʹËì
+àʹÕÂì
+àÊÁÒ
+àÊÃÔÁäªÂ¤éÒ¡ÃдÒÉ
+àÊÃÔÁÈÑ¡´Ôì
+àÊÃÕ
+àÊÇÂ
+àÊÒǤ¹¸ì
+àÊÒdzÕ
+àÊÒdzÕÂì
+àÊÒǹԵÂì
+àÊÒǹÕÂì
+àÊÒÇÅѡɳì
+áʧªÑÂ
+áʧà´×͹
+áʧ·Í§
+áʧÃÐÇÕ
+áʹ·ÇÕà·ç¡«ìä·Åì
+áʹÀ¾
+áʹÂÒ¡Ã
+áʹÃÑ¡
+áʹÊØ¢
+áÊǧ
+âÊÀ³
+âÊÀÒ
+âÊÀÒ¾¨¹Õ
+âÊÀÒ¾Ãó
+âÊÀÕ
+âÊèԵ
+âÊôÒ
+âÊÃÊ
+âÊÃѨ
+âÊÌÊ
+˧
+Ë·ÑÂ
+Ë·Ñ·ԾÂì
+Ë·ÑÂÃѵ¹ì
+˹Öè§Ä·ÑÂ
+ËÃÔ¹
+ËÄ·Â
+ËÇÒ¹
+ËÍÁ¨Ñ¹·Ãì
+ËÑʹÕ
+ËÑÊÂÒ
+àËÁÇ´Õ
+àËÁ×͹¢ÇÑ­
+àËÁ×͹¾¹Í
+àËÃÕ­
+áËÅÁ·Í§ÊË¡ÒÃ
+Í.à¨ÃÔ­ÎÒÃì´áÇÃì
+ͧÍÒ¨
+Íâ³·ÂÒ
+Í´Ôàá
+Í´ÔÈÃ
+Í´ÔÈÑ¡´Ôì
+Í´ØÅ
+Í´ØžѲ¹ì
+Í´ØÅÂìà´ª
+͵Թت
+͵ԾÃ
+ͶԪÒ
+͸Ի¾Å
+͹§¤ì¹Ò®
+͹§¤ìÇÃó
+͹¹·ì
+͹ÇѪ
+͹ѭ­Ò
+͹ѹµì
+͹ѹµÈÑ¡´Ôì
+͹ءԵÔ
+͹ءÙÅ
+͹تÒ
+͹تԵ
+͹شÒ
+͹صµÃÒ
+͹صÃ
+͹طԵÒ
+͹ؾ§Èì
+͹ؾ§Éì
+͹ؾÃ
+͹ؾѹ¸ì
+͹ØÃÑ¡Éì
+͹ØÃѵ¹ì
+͹ØÃÑÉì
+͹ØÇѲ¹ì
+͹ØÈÑ¡´Ôì
+͹ØÊóì
+Í⹪Ò
+ÍÀѹµÃÕÊì
+ÍÀÔªÑÂ
+ÍÀÔªÒ µÔ
+ÍÀÔªÒµ
+ÍÀÔªÒµÔ
+ÍÀÔવ
+ÍÀÔ­­Ò
+ÍÀÔà´ª
+ÍÀԹѹ·ì
+ÍÀÔÀÒ´Ò
+ÍÀÔôÕ
+ÍÀÔÃÑ¡Éì
+ÍÀÔÇѲ¹ì
+ÍÀÔÇѹ·ì
+ÍÀÔÈÑ¡´Ôì
+ÍÀÔÊÃ
+ÍÀÔÊÔ·¸Ôì
+ÍÁêÑÂ
+ÍÁÃà·¾
+ÍÁÃÃѵ¹ì
+ÍÁÃÈÑ¡´Ôì
+ÍÁÃÊÔÃÔ
+ÍÁÃÒÅѡɳì
+ÍÁÔµÒ
+ÍÁÔ¹µÒ
+ÍÂظÂѹ
+ÍèÔÃÒ
+ÍêÃ
+ÍêسËì
+Íóѭªì
+Í÷ÑÂ
+Í÷ԪÒ
+ÍùԵÂì
+Íùت
+ÍÃ๵Ã
+ÍþÃó
+ÍþԹ
+ÍþԹ·Ãì
+ÍÃÀÑ·Ãì
+ÍÃæÂì
+ÍÃó¾
+ÍÃö¾¹¸ì
+ÍÃö¾Ã
+ÍÃö¾Å
+ÍÃöÊÔ·¸Ôì
+ÍÃÄ´Õ
+ÍÃÇÃó
+ÍÃÇÔ· ÍÔ¹àµÍÃì๪Ñè¹á¹Å
+ÍÃÈÁ
+ÍÃÈÃÕ
+ÍÃÊÒ
+ÍÃ͹§¤ì
+ÍÃÍØÁÒ
+ÍÃÑ­
+ÍÃÑ­­Ò
+ÍÃèÒÁÈÃÕ
+ÍÃÔªÑÂ
+ÍÃÔ¹ª¹Ò
+ÍÃÔ¹·ÁÒ
+ÍÃÔÂÒ
+ÍÃÔÂÒÀóì
+ÍÃÔÈÃÒ
+ÍÃÔÊÃÒ
+ÍÃÔÊÒ
+ÍÃس
+ÍÃسÃѵ¹ì
+ÍÃسÃØè§
+ÍÃسÈÃÕ
+ÍÃسÕ
+Íŧ¡µ
+Íŧ¡Ã³ì
+ÍǪÑÂ
+ÍͤµéÒ àÁÁâÁàÃÕÂÅ
+ÍͤµéÒàÁÁâÁàÃÕÂÅ
+ÍÍâµàÁªÑè¹à«ÍÃìÇÔÊ
+ÍéÍ·ԾÂì
+ÍÍÊ·ì ÍÍÂÊì
+ÍФÙà·ç¤·ì
+ÍÐÅÒ¹
+ÍѤÃà´ª
+ÍѤþ¹¸ì
+ÍѤþѨ¹ì
+ÍѤÃÇÔ·Âì
+ÍѤÃÇÔ¹·ì
+ÍѤÃÒ
+ÍѧʹÒ
+ÍѨ©ÃÒ
+ÍѪÂÒ
+ÍÑ­ª³Ò¾Ã
+ÍÑ­ª´Ò
+ÍÑ­ª¹Ò
+ÍÑ­ªÅÕ
+ÍÑ­ªØÅÕ
+ÍÑ®ÉÁÒ
+ÍѹÊÃÕÂì
+ÍÑ»ÊÃ
+ÍÑÁ¾Ã
+ÍÑÁ¾Ãó
+ÍÑÁä¾ÇÃó
+ÍÒ¤Á
+ÍÒ¨³Ã§¤ì
+ÍÒ«ÒÎÕ-ä·Â ÍÑÅÅÍÂ
+ÍҳѹÂì
+ÍÒ·Ô¡Ã
+ÍÒ·Ôµ
+ÍÒ¹¹·ì
+ÍÒ¹¾
+ÍҹѴ
+ÍҹѹµÂÒ
+ÍÒ¹ØÀÒ¾
+ÍÒÀóì
+ÍÒÀÒ
+ÍÒÀÒ¡Ã
+ÍÒÀÒ³Õ
+ÍÒÀÒ¾Ã
+ÍÒÀÒÀóì
+ÍéÒÂÍÔé§
+ÍÒÃì«Õ ¹ÔµáÇÃì
+ÍÒÃì«Ø»à»ÍÃì⫹Ԥ¾Ô¤ÍѾÊì
+ÍÒÃÁ³ì
+ÍÒÃÂѹ
+ÍÒÃÂÒ
+ÍÒÃÑ¡Éì
+ÍÒÃÒ¾Ã
+ÍÒÃÔÂÒ
+ÍÒÃÕ
+ÍÒÃÕÂì
+ÍÒÃÕÂì àÊÁÒ©ÔÁ (ä·Âູ¡Ñ¹
+ÍÒÃÕÃѵ¹ì
+ÍÒÃÕÇÃó
+ÍÓ¹ÇÂ
+ÍÓ¹Ò¨
+ÍÓ¾Ã
+ÍÓ¾Ãó
+ÍÓ¾Å
+ÍӾѹ¸ì
+ÍÓä¾
+ÍÓÀÒ
+ÍÔê¡«èÒ ÍÔ¹àµÍÃì๪Ñè¹á¹Åਹà¹ÃÑÅ à«ÅÅì
+Íԧ˷ÑÂ
+ÍÔ·¸Ô¾Å
+ÍԹ䫷ìà¤Á
+ÍÔ¹àµÍÃìàÇç·(»ÃÐà·Èä·Â)
+ÍÔ¹·ÔÃÒ
+ÍÔ¾
+ÍÔÁâ¡éá¾ç¤ ¤ÍÃì»ÍÃìàêÑè¹
+ÍÔÈÃÒ
+ÍÕ·Õ«Õ
+ÍØè§á¤Ð
+ÍسÒÇ´Õ
+ÍØ´Á
+ÍØ´Á¾§Èì
+ÍØ´Á¾Ã
+ÍØ´Á¾Ñ¹¸ì
+ÍØ´ÁàÁ´Ô¤ÍÅ ÍÔ¤ÇÔ»àÁé¹
+ÍØ´ÁÅѡɳì
+ÍØ´ÁÇþѹ¸ì
+ÍØ´ÁÈÑ¡´Ôì
+ÍØ´Ã
+ÍصâÁ·Âì
+ÍصÊÒË¡ÃÃÁ¼éÒà¤Å×ͺ¾ÅÒʵԡä·Â
+ÍØ·ÑÂ
+ÍØ·ÑÂÇÃó
+ÍØ·ØÁ¾Ã
+ÍØà·¹·Ãì
+ÍØè¹ã¨
+ÍغÅ
+ÍغžÃó
+ÍغÅÇÃó
+ÍØÁÒ
+ÍØÁÒ¾Ã
+ÍØÃÕÂì
+ÍØäÃ
+ÍØäþÃ
+ÍØäÃÃѵ¹ì
+ꯊ̗̂
+ÍØɳÕ
+ÍØÉÒ
+ÍØÊÒËì
+ÍØÌÒÃ
+àÍ.à¨.¾ÅÒÊ·ì
+àÍ¡ªÑÂ
+àÍç¡«Õà«ÅàŹ¿ÍÃìÁ
+àÍ¡ÃÒª
+àÍ¡ÃÔ¹·Ãì
+àÍ¡ÊÔ·¸Ôì
+à͡͹ѹµì
+àÍ¡ÍÃö
+àÍçª àÍçÁ «Õ â»ÅÕàÁÍÃì
+àÍçª.àÍçÁ.«Õ.â»ÅÔàÁÍÃì
+àÍçª.àÍçÁ.«Õ.â»ÅÕàÁÍÃì (º¨¡.)
+àÍàªÕÂàÊÃÔÁ¡Ô¨ÅÔÊ«Ôè§
+àÍç¹ ´Õ ठ(»ÃÐà·Èä·Â)
+àÍ¿ ÍÕ «Ô¤ÅÔ¤ (¡Ãا෾)
+àÍçÁ .«Õ.¾ÕÅÔÊ«Ôè§
+àÍçÁ «Õ ÍÐâ¡Ãà¤ÁÕ¤ÍÅ
+àÍçÁ.«Õ.¾Õ. ÅÔÊ«Ôè§
+àÍçÁ.àÍçÁ.«Õ.â»ÅÔàÁÍÃì
+àÍçÁ«ÕÊÂÒÁ âŨÕʵԤÊì
+àÍÊ à¨ ¾ÅÒÊ·ì á͹´ì ᾤ
+àÍÊ ¾Õ Ê᡹
+àÍÊ àÍÊ à¤ ¡Å¡ÒÃ
+àÍÊ.à¤.ÍÕ.
+àÍÊ.«Õ.¾Õ.ᾤ
+àÍÊ.¾Õ.¹ÔµµÔé§
+àÍÊ.àÍçÁ.ÇÕ ÊË¡ÒÃ
+àÍÊ.àÍÊ.ठ¡Å¡ÒÃ
+àÍÊ.àÍÊ.à¤.¡Å¡ÒÃ
+àÍÊ.àÍÊ.ÍÔ¹¡Íµ ÍÅÙÁÔà¹ÕÂÁ1999
+àÍÊÇÕ¹Ô··Ñ¹¾ÃÔ«ÔªÑè¹
+àÍ×é;ѹ¸Øì
+àÍ×éÍÁ¾Ã
+àÍ×éÍÍÒÃÕ
+á͹¹Ò
+á͹¹ÒÃÕ
+áͺºÕà¤ÃÊ·ì(»ÃÐà·Èä·Â)
+áÍÃì«Õ à¿Ã· ¿ÍÃìàÇÔ´àµÍÃì
+áÍÃì¾Õà¾ÔÅÍÔ¹àµÍÃì๪Ñè¹á¹Å
+áÍÅ¿èÒ â»Ãà«Ê«Ôè§
+áÍÊષ¾ÅÑÊ
+âÍàÃÕÂÅ·ÍÅ ¿Øé´
+âÍÇÍÐËÅÑè¾ÒÃì·à«ç¹àµÍÃì
+äÍ.«Õ.«Õ.ÍÔ¹àµÍÃì๪Ñè¹á¹Å (ÁËÒª¹)
+äÍ.·Õ.áÍ´ìÇÒ¹« à·¤ ¨Ó¡Ñ´
+äÍ.·Õ.á͹´ìÇÒ¹« à·¤ ¨Ó¡Ñ´
+äÍ.àÍÊ.äÍ.ÍÔ¹àµÍÃì๪Ñè¹á¹Å
+äÍÂàÃÈ
+ÎÍÊ·ì ÍÍÂÅì
+ÎÙàÇÍÃìÍصÊÒË¡ÃÃÁ(»ÃÐà·Èä·Â)
+àΧà¨ÃÔ­ªÑ ¡ÃØê» ÍÔ¹´ÑÊàµÃÕÂÅ
+DROP TABLE t1;
+SELECT 'a' = 'a ';
+'a' = 'a '
+1
+SELECT 'a\0' < 'a';
+'a\0' < 'a'
+1
+SELECT 'a\0' < 'a ';
+'a\0' < 'a '
+1
+SELECT 'a\t' < 'a';
+'a\t' < 'a'
+1
+SELECT 'a\t' < 'a ';
+'a\t' < 'a '
+1
+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;
+hex(a) STRCMP(a,'a') STRCMP(a,'a ')
+61 0 0
+6100 -1 -1
+6109 -1 -1
+61 0 0
+DROP TABLE t1;
diff --git a/mysql-test/r/ctype_ujis.result b/mysql-test/r/ctype_ujis.result
index 1730b17eaed..b66ede3bed4 100644
--- a/mysql-test/r/ctype_ujis.result
+++ b/mysql-test/r/ctype_ujis.result
@@ -64,3 +64,31 @@ select 'A' like 'a';
select 'A' like 'a' collate ujis_bin;
'A' like 'a' collate ujis_bin
0
+set @ujis1= _ujis 0x8EA18EA28EA38EA48EA58EA68EA78EA88EA98EAA8EAB8EAC8EAD8EAE8EAF;
+set @ujis2= _ujis 0x8EB08EB18EB28EB38EB48EB58EB68EB78EB88EB98EBA8EBB8EBC8EBD8EBE8EBF;
+set @ujis3= _ujis 0x8EC08EC18EC28EC38EC48EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF;
+set @ujis4= _ujis 0x8ED08ED18ED28ED38ED48ED58ED68ED78ED88ED98EDA8EDB8EDC8EDD8EDE8EDF;
+select hex(@utf81:= CONVERT(@ujis1 USING utf8));
+hex(@utf81:= CONVERT(@ujis1 USING utf8))
+EFBDA1EFBDA2EFBDA3EFBDA4EFBDA5EFBDA6EFBDA7EFBDA8EFBDA9EFBDAAEFBDABEFBDACEFBDADEFBDAEEFBDAF
+select hex(@utf82:= CONVERT(@ujis2 USING utf8));
+hex(@utf82:= CONVERT(@ujis2 USING utf8))
+EFBDB0EFBDB1EFBDB2EFBDB3EFBDB4EFBDB5EFBDB6EFBDB7EFBDB8EFBDB9EFBDBAEFBDBBEFBDBCEFBDBDEFBDBEEFBDBF
+select hex(@utf83:= CONVERT(@ujis3 USING utf8));
+hex(@utf83:= CONVERT(@ujis3 USING utf8))
+EFBE80EFBE81EFBE82EFBE83EFBE84EFBE85EFBE86EFBE87EFBE88EFBE89EFBE8AEFBE8BEFBE8CEFBE8DEFBE8EEFBE8F
+select hex(@utf84:= CONVERT(@ujis4 USING utf8));
+hex(@utf84:= CONVERT(@ujis4 USING utf8))
+EFBE90EFBE91EFBE92EFBE93EFBE94EFBE95EFBE96EFBE97EFBE98EFBE99EFBE9AEFBE9BEFBE9CEFBE9DEFBE9EEFBE9F
+select @ujis1 = CONVERT(@utf81 USING ujis);
+@ujis1 = CONVERT(@utf81 USING ujis)
+1
+select @ujis2 = CONVERT(@utf82 USING ujis);
+@ujis2 = CONVERT(@utf82 USING ujis)
+1
+select @ujis3 = CONVERT(@utf83 USING ujis);
+@ujis3 = CONVERT(@utf83 USING ujis)
+1
+select @ujis4 = CONVERT(@utf84 USING ujis);
+@ujis4 = CONVERT(@utf84 USING ujis)
+1
diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result
index 8b7178993a7..28af71b7681 100644
--- a/mysql-test/r/ctype_utf8.result
+++ b/mysql-test/r/ctype_utf8.result
@@ -63,6 +63,30 @@ select 'A' like 'a' collate utf8_bin;
select _utf8 0xD0B0D0B1D0B2 like concat(_utf8'%',_utf8 0xD0B1,_utf8 '%');
_utf8 0xD0B0D0B1D0B2 like concat(_utf8'%',_utf8 0xD0B1,_utf8 '%')
1
+SELECT 'a' = 'a ';
+'a' = 'a '
+1
+SELECT 'a\0' < 'a';
+'a\0' < 'a'
+1
+SELECT 'a\0' < 'a ';
+'a\0' < 'a '
+1
+SELECT 'a\t' < 'a';
+'a\t' < 'a'
+1
+SELECT 'a\t' < 'a ';
+'a\t' < 'a '
+1
+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;
+hex(a) STRCMP(a,'a') STRCMP(a,'a ')
+61 0 0
+6100 -1 -1
+6109 -1 -1
+61 0 0
+DROP TABLE t1;
select insert('txs',2,1,'hi'),insert('is ',4,0,'a'),insert('txxxxt',2,4,'es');
insert('txs',2,1,'hi') insert('is ',4,0,'a') insert('txxxxt',2,4,'es')
this is a test
@@ -73,7 +97,7 @@ create table t1 select date_format("2004-01-19 10:10:10", "%Y-%m-%d");
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `date_format("2004-01-19 10:10:10", "%Y-%m-%d")` char(10) binary default NULL
+ `date_format("2004-01-19 10:10:10", "%Y-%m-%d")` binary(10) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t1;
date_format("2004-01-19 10:10:10", "%Y-%m-%d")
@@ -83,7 +107,7 @@ set names koi8r;
create table t1 (s1 char(1) character set utf8);
insert into t1 values (_koi8r'ÁÂ');
Warnings:
-Warning 1264 Data truncated for column 's1' at row 1
+Warning 1265 Data truncated for column 's1' at row 1
select s1,hex(s1),char_length(s1),octet_length(s1) from t1;
s1 hex(s1) char_length(s1) octet_length(s1)
Á D0B0 1 2
@@ -91,19 +115,19 @@ drop table t1;
create table t1 (s1 tinytext character set utf8);
insert into t1 select repeat('a',300);
Warnings:
-Warning 1264 Data truncated for column 's1' at row 1
+Warning 1265 Data truncated for column 's1' at row 1
insert into t1 select repeat('Ñ',300);
Warnings:
-Warning 1264 Data truncated for column 's1' at row 1
+Warning 1265 Data truncated for column 's1' at row 1
insert into t1 select repeat('aÑ',300);
Warnings:
-Warning 1264 Data truncated for column 's1' at row 1
+Warning 1265 Data truncated for column 's1' at row 1
insert into t1 select repeat('Ña',300);
Warnings:
-Warning 1264 Data truncated for column 's1' at row 1
+Warning 1265 Data truncated for column 's1' at row 1
insert into t1 select repeat('ÑÑ',300);
Warnings:
-Warning 1264 Data truncated for column 's1' at row 1
+Warning 1265 Data truncated for column 's1' at row 1
select hex(s1) from t1;
hex(s1)
616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161
@@ -122,19 +146,19 @@ drop table t1;
create table t1 (s1 text character set utf8);
insert into t1 select repeat('a',66000);
Warnings:
-Warning 1264 Data truncated for column 's1' at row 1
+Warning 1265 Data truncated for column 's1' at row 1
insert into t1 select repeat('Ñ',66000);
Warnings:
-Warning 1264 Data truncated for column 's1' at row 1
+Warning 1265 Data truncated for column 's1' at row 1
insert into t1 select repeat('aÑ',66000);
Warnings:
-Warning 1264 Data truncated for column 's1' at row 1
+Warning 1265 Data truncated for column 's1' at row 1
insert into t1 select repeat('Ña',66000);
Warnings:
-Warning 1264 Data truncated for column 's1' at row 1
+Warning 1265 Data truncated for column 's1' at row 1
insert into t1 select repeat('ÑÑ',66000);
Warnings:
-Warning 1264 Data truncated for column 's1' at row 1
+Warning 1265 Data truncated for column 's1' at row 1
select length(s1),char_length(s1) from t1;
length(s1) char_length(s1)
65535 65535
@@ -146,7 +170,7 @@ drop table t1;
create table t1 (s1 char(10) character set utf8);
insert into t1 values (0x41FF);
Warnings:
-Warning 1264 Data truncated for column 's1' at row 1
+Warning 1265 Data truncated for column 's1' at row 1
select hex(s1) from t1;
hex(s1)
41
@@ -154,7 +178,7 @@ drop table t1;
create table t1 (s1 varchar(10) character set utf8);
insert into t1 values (0x41FF);
Warnings:
-Warning 1264 Data truncated for column 's1' at row 1
+Warning 1265 Data truncated for column 's1' at row 1
select hex(s1) from t1;
hex(s1)
41
@@ -162,10 +186,35 @@ drop table t1;
create table t1 (s1 text character set utf8);
insert into t1 values (0x41FF);
Warnings:
-Warning 1264 Data truncated for column 's1' at row 1
+Warning 1265 Data truncated for column 's1' at row 1
select hex(s1) from t1;
hex(s1)
41
drop table t1;
-create table t1 (a char(160) character set utf8, primary key(a));
-ERROR HY000: Incorrect sub part key. The used key part isn't a string, the used length is longer than the key part or the storage engine doesn't support unique sub keys
+create table t1 (a text character set utf8, primary key(a(360)));
+ERROR 42000: Specified key was too long; max key length is 1000 bytes
+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;
+a a
+test test
+SELECT a.a, b.a FROM t1 a, t1 b WHERE a.a = 'test' and b.a = 'test';
+a a
+test test
+SELECT a.a, b.a FROM t1 a, t1 b WHERE a.a = b.a and a.a = 'test';
+a a
+test 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';
+a
+b
+b
+select * from t1 where a = 'b' and a = 'b';
+a
+b
+b
+select * from t1 where a = 'b' and a != 'b';
+a
+drop table t1;
diff --git a/mysql-test/r/date_formats.result b/mysql-test/r/date_formats.result
index 165a8d7011c..fba1d9f47e3 100644
--- a/mysql-test/r/date_formats.result
+++ b/mysql-test/r/date_formats.result
@@ -78,11 +78,11 @@ select str_to_date(concat('15-01-2001',' 2:59:58.999'),
concat('%d-%m-%Y',' ','%H:%i:%s.%f'));
str_to_date(concat('15-01-2001',' 2:59:58.999'),
concat('%d-%m-%Y',' ','%H:%i:%s.%f'))
-2001-01-15 02:59:58.000999
+2001-01-15 02:59:58.999000
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'),
@@ -106,16 +106,16 @@ insert into t1 values
select date,format,str_to_date(date, format) as str_to_date from t1;
date format str_to_date
2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 2003-01-02 10:11:12
-03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S 2003-01-02 08:11:02
+03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02
2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12
-2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 01:11:12.012345
-2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 2003-01-02 02:11:12.012345
-2003-01-02 12:11:12.12345 am %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 00:11:12.012345
+2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 01:11:12.123450
+2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 2003-01-02 02:11:12.123450
+2003-01-02 12:11:12.12345 am %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 00:11:12.123450
2003-01-02 11:11:12Pm %Y-%m-%d %h:%i:%S%p 2003-01-02 23:11:12
10:20:10 %H:%i:%s 0000-00-00 10:20:10
10:20:10 %h:%i:%s.%f 0000-00-00 10:20:10
10:20:10AM %h:%i:%s%p 0000-00-00 10:20:10
-10:20:10.44AM %h:%i:%s.%f%p 0000-00-00 10:20:10.000044
+10:20:10.44AM %h:%i:%s.%f%p 0000-00-00 10:20:10.440000
15-01-2001 12:59:58 %d-%m-%Y %H:%i:%S 2001-01-15 12:59:58
15 September 2001 %d %M %Y 2001-09-15 00:00:00
15 SEPTEMB 2001 %d %M %Y 2001-09-15 00:00:00
@@ -130,16 +130,16 @@ Thursday 53 1998 %W %u %Y 1998-12-31 00:00:00
select date,format,concat('',str_to_date(date, format)) as con from t1;
date format con
2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 2003-01-02 10:11:12
-03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S 2003-01-02 08:11:02
+03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02
2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12
-2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 01:11:12.012345
-2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 2003-01-02 02:11:12.012345
-2003-01-02 12:11:12.12345 am %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 00:11:12.012345
+2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 01:11:12.123450
+2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 2003-01-02 02:11:12.123450
+2003-01-02 12:11:12.12345 am %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 00:11:12.123450
2003-01-02 11:11:12Pm %Y-%m-%d %h:%i:%S%p 2003-01-02 23:11:12
10:20:10 %H:%i:%s 0000-00-00 10:20:10
10:20:10 %h:%i:%s.%f 0000-00-00 10:20:10
10:20:10AM %h:%i:%s%p 0000-00-00 10:20:10
-10:20:10.44AM %h:%i:%s.%f%p 0000-00-00 10:20:10.000044
+10:20:10.44AM %h:%i:%s.%f%p 0000-00-00 10:20:10.440000
15-01-2001 12:59:58 %d-%m-%Y %H:%i:%S 2001-01-15 12:59:58
15 September 2001 %d %M %Y 2001-09-15 00:00:00
15 SEPTEMB 2001 %d %M %Y 2001-09-15 00:00:00
@@ -154,16 +154,16 @@ Thursday 53 1998 %W %u %Y 1998-12-31 00:00:00
select date,format,cast(str_to_date(date, format) as datetime) as datetime from t1;
date format datetime
2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 2003-01-02 10:11:12
-03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S 2003-01-02 08:11:02
+03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02
2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12
-2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 01:11:12.012345
-2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 2003-01-02 02:11:12.012345
-2003-01-02 12:11:12.12345 am %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 00:11:12.012345
+2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 01:11:12.123450
+2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 2003-01-02 02:11:12.123450
+2003-01-02 12:11:12.12345 am %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 00:11:12.123450
2003-01-02 11:11:12Pm %Y-%m-%d %h:%i:%S%p 2003-01-02 23:11:12
10:20:10 %H:%i:%s 0000-00-00 10:20:10
10:20:10 %h:%i:%s.%f 0000-00-00 10:20:10
10:20:10AM %h:%i:%s%p 0000-00-00 10:20:10
-10:20:10.44AM %h:%i:%s.%f%p 0000-00-00 10:20:10.000044
+10:20:10.44AM %h:%i:%s.%f%p 0000-00-00 10:20:10.440000
15-01-2001 12:59:58 %d-%m-%Y %H:%i:%S 2001-01-15 12:59:58
15 September 2001 %d %M %Y 2001-09-15 00:00:00
15 SEPTEMB 2001 %d %M %Y 2001-09-15 00:00:00
@@ -178,7 +178,7 @@ Thursday 53 1998 %W %u %Y 1998-12-31 00:00:00
select date,format,DATE(str_to_date(date, format)) as date2 from t1;
date format date2
2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 2003-01-02
-03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S 2003-01-02
+03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 2003-01-02
2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02
2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 2003-01-02
2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 2003-01-02
@@ -202,16 +202,16 @@ Thursday 53 1998 %W %u %Y 1998-12-31
select date,format,TIME(str_to_date(date, format)) as time from t1;
date format time
2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 10:11:12
-03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S 08:11:02
+03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 08:11:02
2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 22:11:12
-2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 01:11:12.012345
-2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 02:11:12.012345
-2003-01-02 12:11:12.12345 am %Y-%m-%d %h:%i:%S.%f%p 00:11:12.012345
+2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 01:11:12.123450
+2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 02:11:12.123450
+2003-01-02 12:11:12.12345 am %Y-%m-%d %h:%i:%S.%f%p 00:11:12.123450
2003-01-02 11:11:12Pm %Y-%m-%d %h:%i:%S%p 23:11:12
10:20:10 %H:%i:%s 10:20:10
10:20:10 %h:%i:%s.%f 10:20:10
10:20:10AM %h:%i:%s%p 10:20:10
-10:20:10.44AM %h:%i:%s.%f%p 10:20:10.000044
+10:20:10.44AM %h:%i:%s.%f%p 10:20:10.440000
15-01-2001 12:59:58 %d-%m-%Y %H:%i:%S 12:59:58
15 September 2001 %d %M %Y 00:00:00
15 SEPTEMB 2001 %d %M %Y 00:00:00
@@ -226,16 +226,16 @@ Thursday 53 1998 %W %u %Y 00:00:00
select date,format,concat(TIME(str_to_date(date, format))) as time2 from t1;
date format time2
2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 10:11:12
-03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S 08:11:02
+03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 08:11:02
2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 22:11:12
-2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 01:11:12.012345
-2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 02:11:12.012345
-2003-01-02 12:11:12.12345 am %Y-%m-%d %h:%i:%S.%f%p 00:11:12.012345
+2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 01:11:12.123450
+2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 02:11:12.123450
+2003-01-02 12:11:12.12345 am %Y-%m-%d %h:%i:%S.%f%p 00:11:12.123450
2003-01-02 11:11:12Pm %Y-%m-%d %h:%i:%S%p 23:11:12
10:20:10 %H:%i:%s 10:20:10
10:20:10 %h:%i:%s.%f 10:20:10
10:20:10AM %h:%i:%s%p 10:20:10
-10:20:10.44AM %h:%i:%s.%f%p 10:20:10.000044
+10:20:10.44AM %h:%i:%s.%f%p 10:20:10.440000
15-01-2001 12:59:58 %d-%m-%Y %H:%i:%S 12:59:58
15 September 2001 %d %M %Y 00:00:00
15 SEPTEMB 2001 %d %M %Y 00:00:00
@@ -302,11 +302,15 @@ date format str_to_date
10:20:10AM %h:%i:%s 0000-00-00 10:20:10
2003-01-02 10:11:12 %Y-%m-%d %h:%i:%S 2003-01-02 10:11:12
03-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 0003-01-02 22:11:12
+Warnings:
+Note 1292 Truncated wrong string value: '10:20:10AM'
select date,format,concat(str_to_date(date, format),'') as con from t1;
date format con
10:20:10AM %h:%i:%s 0000-00-00 10:20:10
2003-01-02 10:11:12 %Y-%m-%d %h:%i:%S 2003-01-02 10:11:12
03-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 0003-01-02 22:11:12
+Warnings:
+Note 1292 Truncated wrong string value: '10:20:10AM'
drop table t1;
select get_format(DATE, 'USA') as a;
a
@@ -335,3 +339,56 @@ date_format(d,"%d")
14
14
drop table t1;
+select str_to_date("2003-....01ABCD-02 10:11:12.0012", "%Y-%.%m%@-%d %H:%i:%S.%f") as a;
+a
+2003-01-02 10:11:12.001200
+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;
+Field Type Null Key Default Extra
+f1 datetime YES NULL
+f2 time YES NULL
+f3 date YES NULL
+f4 date YES NULL
+f5 time YES NULL
+select * from t1;
+f1 f2 f3 f4 f5
+2003-01-02 10:11:12 10:11:12 2003-01-02 0000-00-02 58:00:00
+drop table t1;
+create table t1 select "02 10" as a, "%d %H" as b;
+select str_to_date(a,b) from t1;
+str_to_date(a,b)
+0000-00-02 10:00:00
+create table t2 select str_to_date(a,b) from t1;
+describe t2;
+Field Type Null Key Default Extra
+str_to_date(a,b) binary(29) YES NULL
+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;
+f1 f2 f3 f4 f5 f6
+2003-01-02 10:11:12.001200 2003-01-02 10:11:12 2003-01-02 58:11:12 58:11:12 48:00:00.100000
+Warnings:
+Note 1292 Truncated wrong datetime value: '2003-01-02 10:11:12.0012'
+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;
+f1 f2 f3
+2003-01-02 10:11:12.001200 -25:01:00.110000 10000
+Warnings:
+Note 1292 Truncated wrong datetime value: '2003-01-02 10:11:12.0012ABCD'
+Note 1292 Truncated wrong time value: '-01:01:01.01 GG'
+Note 1292 Truncated wrong datetime value: '1997-12-31 23:59:59.01XXXX'
+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;
+f1 f2
+2003-04-05 2003-04-05 10:11:12.101010
+Warnings:
+Note 1292 Truncated wrong date value: '2003-04-05 g'
+Note 1292 Truncated wrong datetime value: '2003-04-05 10:11:12.101010234567'
diff --git a/mysql-test/r/delete.result b/mysql-test/r/delete.result
index 10f2c069429..f1acc5d2dfa 100644
--- a/mysql-test/r/delete.result
+++ b/mysql-test/r/delete.result
@@ -93,8 +93,8 @@ a b
2 12
delete ignore t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b <> (select b from t2 where t11.a < t2.a);
Warnings:
-Error 1241 Subquery returns more than 1 row
-Error 1241 Subquery returns more than 1 row
+Error 1242 Subquery returns more than 1 row
+Error 1242 Subquery returns more than 1 row
select * from t11;
a b
0 10
@@ -113,8 +113,8 @@ a b
2 12
delete ignore from t11 where t11.b <> (select b from t2 where t11.a < t2.a);
Warnings:
-Error 1241 Subquery returns more than 1 row
-Error 1241 Subquery returns more than 1 row
+Error 1242 Subquery returns more than 1 row
+Error 1242 Subquery returns more than 1 row
select * from t11;
a b
0 10
diff --git a/mysql-test/r/derived.result b/mysql-test/r/derived.result
index 049d88c5154..f5754bb3332 100644
--- a/mysql-test/r/derived.result
+++ b/mysql-test/r/derived.result
@@ -213,7 +213,7 @@ ERROR 42000: You have an error in your SQL syntax. Check the manual that corres
create table t1 (a int);
insert into t1 values (1),(2),(3);
update (select * from t1) as t1 set a = 5;
-ERROR HY000: The target table t1 of the UPDATE is not updatable.
+ERROR HY000: The target table t1 of the UPDATE is not updatable
delete from (select * from t1);
ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(select * from t1)' at line 1
insert into (select * from t1) values (5);
@@ -264,15 +264,15 @@ N M
2 2
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, P2.N = 2;
-ERROR HY000: The target table P2 of the UPDATE is not updatable.
+ERROR HY000: The target table P2 of the UPDATE is not updatable
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;
ERROR 42S22: Unknown column 'aaaa' in 'field list'
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;
N M
3 0
-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 HY000: The target table P2 of the DELETE is not updatable.
+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 HY000: The target table p2 of the DELETE is not updatable
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;
ERROR 42S22: Unknown column 'aaa' in 'field list'
drop table t1;
@@ -320,3 +320,9 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <derived2> system NULL NULL NULL NULL 1
2 DERIVED t2 range PRIMARY PRIMARY 4 NULL 2 Using where; Using index
drop table t2;
+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;
+min max avg
+10.00 10.00 10
+DROP TABLE t1;
diff --git a/mysql-test/r/drop.result b/mysql-test/r/drop.result
index 3748af1b8f9..8b919964163 100644
--- a/mysql-test/r/drop.result
+++ b/mysql-test/r/drop.result
@@ -21,6 +21,7 @@ select * from mysqltest.mysqltest;
n
4
drop database if exists mysqltest;
+affected rows: 1
create database mysqltest;
drop database mysqltest;
flush tables with read lock;
diff --git a/mysql-test/r/drop_temp_table.result b/mysql-test/r/drop_temp_table.result
index 6d3f18f55e2..6eba97b089b 100644
--- a/mysql-test/r/drop_temp_table.result
+++ b/mysql-test/r/drop_temp_table.result
@@ -9,10 +9,6 @@ select get_lock("a",10);
get_lock("a",10)
1
show binlog events;
-Log_name Pos Event_type Server_id End_log_pos Info
-master-bin.000001 4 Format_desc 1 95 Server ver: VERSION, Binlog ver: 4
-master-bin.000001 95 Query 1 190 use `test`; create database `drop-temp+table-test`
-master-bin.000001 190 Query 1 306 use `drop-temp+table-test`; create temporary table `table:name` (a int)
-master-bin.000001 306 Query 1 447 use `drop-temp+table-test`; DROP /*!40005 TEMPORARY */ TABLE `drop-temp+table-test`.`table:name`
-master-bin.000001 447 Query 1 540 use `drop-temp+table-test`; DO RELEASE_LOCK("a")
+master-bin.000001 246 Query 1 246 use `drop-temp+table-test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `drop-temp+table-test`.`table:name`
+master-bin.000001 375 Query 1 375 use `drop-temp+table-test`; DO RELEASE_LOCK("a")
drop database `drop-temp+table-test`;
diff --git a/mysql-test/r/endspace.result b/mysql-test/r/endspace.result
new file mode 100644
index 00000000000..d2519523f36
--- /dev/null
+++ b/mysql-test/r/endspace.result
@@ -0,0 +1,196 @@
+drop table if exists t1;
+select 'a' = 'a', 'a' = 'a ', 'a ' = 'a';
+'a' = 'a' 'a' = 'a ' 'a ' = 'a'
+1 1 1
+select 'a\0' = 'a', 'a\0' < 'a', 'a\0' > 'a';
+'a\0' = 'a' 'a\0' < 'a' 'a\0' > 'a'
+0 1 0
+select 'a' = 'a\0', 'a' < 'a\0', 'a' > 'a\0';
+'a' = 'a\0' 'a' < 'a\0' 'a' > 'a\0'
+0 0 1
+select 'a\0' = 'a ', 'a\0' < 'a ', 'a\0' > 'a ';
+'a\0' = 'a ' 'a\0' < 'a ' 'a\0' > 'a '
+0 1 0
+select 'a ' = 'a\0', 'a ' < 'a\0', 'a ' > 'a\0';
+'a ' = 'a\0' 'a ' < 'a\0' 'a ' > 'a\0'
+0 0 1
+select 'a a' > 'a', 'a \0' < 'a';
+'a a' > 'a' 'a \0' < 'a'
+1 1
+select binary 'a a' > 'a', binary 'a \0' > 'a', binary 'a\0' > 'a';
+binary 'a a' > 'a' binary 'a \0' > 'a' binary 'a\0' > 'a'
+1 1 1
+create table t1 (text1 varchar(32) not NULL, KEY key1 (text1));
+insert into t1 values ('teststring'), ('nothing'), ('teststring\t');
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+select * from t1 ignore key (key1) where text1='teststring' or text1 like 'teststring_%';
+text1
+teststring
+teststring
+select * from t1 where text1='teststring' or text1 like 'teststring_%';
+text1
+teststring
+teststring
+select * from t1 where text1='teststring' or text1 > 'teststring\t';
+text1
+teststring
+select * from t1 order by text1;
+text1
+nothing
+teststring
+teststring
+explain select * from t1 order by text1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL key1 32 NULL 3 Using index
+alter table t1 modify text1 char(32) binary not null;
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+select * from t1 ignore key (key1) where text1='teststring' or text1 like 'teststring_%';
+text1
+teststring
+teststring
+select * from t1 where text1='teststring' or text1 like 'teststring_%';
+text1
+teststring
+teststring
+select * from t1 where text1='teststring' or text1 > 'teststring\t';
+text1
+teststring
+select text1, length(text1) from t1 order by text1;
+text1 length(text1)
+nothing 7
+teststring 11
+teststring 10
+select text1, length(text1) from t1 order by binary text1;
+text1 length(text1)
+nothing 7
+teststring 10
+teststring 11
+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;
+concat('|', text1, '|')
+|nothing|
+|teststring|
+|teststring |
+|teststring |
+alter table t1 modify text1 text not null, pack_keys=1;
+select * from t1 where text1 like 'teststring_%';
+text1
+teststring
+teststring
+select * from t1 where text1='teststring' or text1 like 'teststring_%';
+text1
+teststring
+teststring
+teststring
+select * from t1 where text1='teststring' or text1 > 'teststring\t';
+text1
+teststring
+teststring
+select concat('|', text1, '|') from t1 order by text1;
+concat('|', text1, '|')
+|nothing|
+|teststring |
+|teststring|
+|teststring |
+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_%';
+text1
+teststring
+teststring
+select * from t1 where text1='teststring' or text1 >= 'teststring\t';
+text1
+teststring
+teststring
+drop table t1;
+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_%';
+text1
+teststring
+teststring
+select * from t1 where text1='teststring' or text1 like 'teststring_%';
+text1
+teststring
+teststring
+select * from t1 where text1='teststring' or text1 >= 'teststring\t';
+text1
+teststring
+teststring
+select * from t1 order by text1;
+text1
+nothing
+teststring
+teststring
+explain select * from t1 order by text1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL key1 32 NULL 3
+alter table t1 modify text1 char(32) binary not null;
+select * from t1 order by text1;
+text1
+nothing
+teststring
+teststring
+drop table t1;
+create table t1 (text1 varchar(32) not NULL, KEY key1 (text1)) engine=innodb;
+insert into t1 values ('teststring'), ('nothing'), ('teststring\t');
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+select * from t1 where text1='teststring' or text1 like 'teststring_%';
+text1
+teststring
+teststring
+select * from t1 where text1='teststring' or text1 > 'teststring\t';
+text1
+teststring
+select * from t1 order by text1;
+text1
+nothing
+teststring
+teststring
+explain select * from t1 order by text1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL key1 32 NULL 4 Using index
+alter table t1 modify text1 char(32) binary not null;
+select * from t1 order by text1;
+text1
+nothing
+teststring
+teststring
+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;
+concat('|', text1, '|')
+|nothing|
+|teststring|
+|teststring |
+|teststring |
+alter table t1 modify text1 text not null, pack_keys=1;
+select * from t1 where text1 like 'teststring_%';
+text1
+teststring
+teststring
+select text1, length(text1) from t1 where text1='teststring' or text1 like 'teststring_%';
+text1 length(text1)
+teststring 10
+teststring 11
+teststring 11
+select text1, length(text1) from t1 where text1='teststring' or text1 >= 'teststring\t';
+text1 length(text1)
+teststring 10
+teststring 11
+teststring 11
+select concat('|', text1, '|') from t1 order by text1;
+concat('|', text1, '|')
+|nothing|
+|teststring |
+|teststring|
+|teststring |
+drop table t1;
diff --git a/mysql-test/r/fulltext.result b/mysql-test/r/fulltext.result
index 04c36f059e2..02850e4d902 100644
--- a/mysql-test/r/fulltext.result
+++ b/mysql-test/r/fulltext.result
@@ -5,6 +5,10 @@ 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;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+t1 1 a 1 a A NULL NULL NULL YES FULLTEXT
+t1 1 a 2 b A NULL NULL NULL YES FULLTEXT
select * from t1 where MATCH(a,b) AGAINST ("collections");
a b
Only MyISAM tables support collections
@@ -138,8 +142,15 @@ a b
MySQL has now support for full-text search
select * from t1 where MATCH a,b AGAINST ('"text i"' IN BOOLEAN MODE);
a b
+select * from t1 where MATCH a,b AGAINST ('+(support collections) +foobar*' IN BOOLEAN MODE);
+a b
+select * from t1 where MATCH a,b AGAINST ('+(+(support collections)) +foobar*' IN BOOLEAN MODE);
+a b
select * from t1 where MATCH a,b AGAINST ('"xt indexes"' IN BOOLEAN MODE);
a b
+select * from t1 where MATCH a,b AGAINST('"space model' IN BOOLEAN MODE);
+a b
+Full-text search in MySQL implements vector space model
select * from t1 where MATCH a AGAINST ("search" IN BOOLEAN MODE);
a b
Full-text search in MySQL implements vector space model
@@ -210,7 +221,7 @@ id
show keys from t2;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
t2 1 tig 1 ticket A NULL NULL NULL YES BTREE
-t2 1 tix 1 inhalt A NULL 1 NULL YES FULLTEXT
+t2 1 tix 1 inhalt A NULL NULL NULL YES FULLTEXT
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
@@ -339,6 +350,9 @@ t collation(t)
aus Osnabrück utf8_general_ci
SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabrueck');
t collation(t)
+SELECT t, collation(t),MATCH t AGAINST ('Osnabruck') FROM t1 WHERE MATCH t AGAINST ('Osnabruck');
+t collation(t) MATCH t AGAINST ('Osnabruck')
+aus Osnabrück utf8_general_ci 1.591139793396
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');
t collation(t)
diff --git a/mysql-test/r/fulltext_var.result b/mysql-test/r/fulltext_var.result
index 89d477c1a7c..50afea2a500 100644
--- a/mysql-test/r/fulltext_var.result
+++ b/mysql-test/r/fulltext_var.result
@@ -1,7 +1,38 @@
+drop table if exists t1;
show variables like "ft\_%";
Variable_name Value
ft_boolean_syntax + -><()~*:""&|
-ft_min_word_len 4
ft_max_word_len 84
+ft_min_word_len 4
ft_query_expansion_limit 20
ft_stopword_file (built-in)
+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);
+b
+aaaaaa bbbbbb cccccc
+aaaaaa cccccc
+set ft_boolean_syntax=' +-><()~*:""&|';
+ERROR HY000: Variable 'ft_boolean_syntax' is a GLOBAL variable and should be set with SET GLOBAL
+set global ft_boolean_syntax=' +-><()~*:""&|';
+select * from t1 where match b against ('+aaaaaa bbbbbb' in boolean mode);
+b
+aaaaaa bbbbbb cccccc
+bbbbbb cccccc
+set global ft_boolean_syntax='@ -><()~*:""&|';
+select * from t1 where match b against ('+aaaaaa bbbbbb' in boolean mode);
+b
+aaaaaa bbbbbb cccccc
+bbbbbb cccccc
+aaaaaa cccccc
+select * from t1 where match b against ('+aaaaaa @bbbbbb' in boolean mode);
+b
+aaaaaa bbbbbb cccccc
+bbbbbb cccccc
+set global ft_boolean_syntax='@ -><()~*:""@|';
+ERROR 42000: Variable 'ft_boolean_syntax' can't be set to the value of '@ -><()~*:""@|'
+set global ft_boolean_syntax='+ -><()~*:""@!|';
+ERROR 42000: Variable 'ft_boolean_syntax' can't be set to the value of '+ -><()~*:""@!|'
+drop table t1;
diff --git a/mysql-test/r/func_compress.result b/mysql-test/r/func_compress.result
index 1fcda7748b3..61aa1c0a497 100644
--- a/mysql-test/r/func_compress.result
+++ b/mysql-test/r/func_compress.result
@@ -65,6 +65,6 @@ NULL
50000
NULL
Warnings:
-Error 1258 ZLIB: Input data was corrupted for zlib
-Error 1255 Too big size of uncompressed data. The maximum size is 1048576. (probably, length of uncompressed data was corrupted)
+Error 1259 ZLIB: Input data corrupted
+Error 1256 Too big size of uncompressed data. The maximum size is 1048576. (probably, length of uncompressed data was corrupted)
drop table t1;
diff --git a/mysql-test/r/func_gconcat.result b/mysql-test/r/func_gconcat.result
index af6f7956fe3..dccd87e3d75 100644
--- a/mysql-test/r/func_gconcat.result
+++ b/mysql-test/r/func_gconcat.result
@@ -59,11 +59,16 @@ grp group_concat(d order by a desc)
1 a
2 b,a
3 c,d,d,b,b,a
-select grp,group_concat(a order by a,d+c) from t1 group by grp;
-grp group_concat(a order by a,d+c)
+select grp,group_concat(a order by a,d+c-ascii(c)-a) from t1 group by grp;
+grp group_concat(a order by a,d+c-ascii(c)-a)
1 1
2 2,3
3 4,5,6,7,8,9
+select grp,group_concat(a order by d+c-ascii(c),a) from t1 group by grp;
+grp group_concat(a order by d+c-ascii(c),a)
+1 1
+2 3,2
+3 7,8,4,6,9,5
select grp,group_concat(c order by 1) from t1 group by grp;
grp group_concat(c order by 1)
1 a
@@ -136,17 +141,7 @@ grp ROUND(group_concat(a separator ""))
3 456789
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;
grp group_concat(c order by c)
1 NULL
@@ -163,10 +158,10 @@ grp group_concat(c)
4
5 NULL
Warnings:
-Warning 1259 1 line(s) was(were) cut by group_concat()
+Warning 1260 1 line(s) was(were) cut by group_concat()
show warnings;
Level Code Message
-Warning 1259 1 line(s) was(were) cut by group_concat()
+Warning 1260 1 line(s) was(were) cut by group_concat()
set group_concat_max_len = 1024;
select group_concat(sum(a)) from t1 group by grp;
ERROR HY000: Invalid use of group function
@@ -207,9 +202,21 @@ NULL
drop table t1;
drop table t2;
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;
+group_concat(bar order by concat(bar,bar))
+test1,test2
+select group_concat(bar order by concat(bar,bar) desc) from t1;
+group_concat(bar order by concat(bar,bar) desc)
+test2,test1
+select bar from t1 having group_concat(bar)='';
+bar
+select bar from t1 having instr(group_concat(bar), "test") > 0;
bar
+test1
+select bar from t1 having instr(group_concat(bar order by concat(bar,bar) desc), "test2,test1") > 0;
+bar
+test1
drop table t1;
create table t1 (a int, a1 varchar(10));
create table t2 (a0 int);
@@ -222,3 +229,75 @@ select group_concat(a1 order by (t1.a)) from t1;
group_concat(a1 order by (t1.a))
b,a,c
drop table t1, t2;
+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;
+id1 concat_id
+1 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 GROUP BY t1.id1;
+id1 concat_id
+1 1,2,3,4,5
+2 1,2,3
+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;
+id1 concat_id
+1 5,4,3,2,1
+2 3,2,1
+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;
+id1 concat_id
+1 5,4,3,2,1
+2 3,2,1
+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;
+id1 concat_id
+1 51,42,33,24,15
+2 33,24,15
+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;
+id1 concat_id
+1 51,42,33,24,15
+2 33,24,15
+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;
+id1 concat_id
+1 5/1,4/2,3/3,2/4,1/5
+2 3/3,2/4,1/5
+drop table t1,t2;
+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;
+s1
+c
+a
+b
+select group_concat(distinct s1) from t1;
+group_concat(distinct s1)
+a,b,c
+select group_concat(distinct s1 order by s2) from t1 where s2 < 4;
+group_concat(distinct s1 order by s2)
+c,b,a
+select group_concat(distinct s1 order by s2) from t1;
+group_concat(distinct s1 order by s2)
+c,b,a,c
+drop table t1;
+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;
+group_concat(c)
+2,3,4,5
+select group_concat(c order by (select c from t2 where t2.a=t1.a limit 1)) as grp from t1;
+grp
+5,4,3,2
+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;
+grp
+5,4,3,2
+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;
+grp
+2,4,3,5
+select a,c,(select group_concat(c order by a) from t2 where a=t1.a) as grp from t1 order by grp;
+a c grp
+3 5 3,3
+2 3 4
+2 4 4
+1 2 5
+drop table t1,t2;
diff --git a/mysql-test/r/func_group.result b/mysql-test/r/func_group.result
index 6a704f2847d..147d7776e4d 100644
--- a/mysql-test/r/func_group.result
+++ b/mysql-test/r/func_group.result
@@ -551,7 +551,7 @@ id select_type table type possible_keys key key_len ref rows Extra
explain
select min(a1) from t1 where a1 between a3 and 'KKK';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL NULL NULL NULL NULL 14 Using where
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 14 Using where
explain
select min(a4) from t1 where (a4 + 0.01) between 0.07 and 0.08;
id select_type table type possible_keys key key_len ref rows Extra
diff --git a/mysql-test/r/func_if.result b/mysql-test/r/func_if.result
index bea16c07f86..0a04585d77d 100644
--- a/mysql-test/r/func_if.result
+++ b/mysql-test/r/func_if.result
@@ -59,6 +59,12 @@ id select_type table type possible_keys key key_len ref rows Extra
Warnings:
Note 1003 select high_priority nullif((test.t1.u = 0),_latin1'test') AS `nullif(u=0, 'test')` from test.t1
drop table t1;
+select NULLIF(NULL,NULL), NULLIF(NULL,1), NULLIF(NULL,1.0), NULLIF(NULL,"test");
+NULLIF(NULL,NULL) NULLIF(NULL,1) NULLIF(NULL,1.0) NULLIF(NULL,"test")
+NULL NULL NULL NULL
+select NULLIF(1,NULL), NULLIF(1.0, NULL), NULLIF("test", NULL);
+NULLIF(1,NULL) NULLIF(1.0, NULL) NULLIF("test", NULL)
+1 1.0 test
create table t1 (num double(12,2));
insert into t1 values (144.54);
select sum(if(num is null,0.00,num)) from t1;
diff --git a/mysql-test/r/func_like.result b/mysql-test/r/func_like.result
index 085e2f2f37e..75692738caf 100644
--- a/mysql-test/r/func_like.result
+++ b/mysql-test/r/func_like.result
@@ -37,6 +37,21 @@ select * from t1 where a like "%abc\d%";
a
abcd
drop table t1;
+create table t1 (a varchar(10), key(a));
+insert into t1 values ('a'), ('a\\b');
+select * from t1 where a like 'a\\%' escape '#';
+a
+a\b
+select * from t1 where a like 'a\\%' escape '#' and a like 'a\\\\b';
+a
+a\b
+drop table t1;
+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';
+a
+2004-03-11 12:00:21
+drop table t1;
SET NAMES koi8r;
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET koi8r);
INSERT INTO t1 VALUES ('ÆÙ×Á'),('æÙ×Á'),('Æù×Á'),('ÆÙ÷Á'),('ÆÙ×á'),('æù÷á');
diff --git a/mysql-test/r/func_math.result b/mysql-test/r/func_math.result
index 151a2902423..9085849e582 100644
--- a/mysql-test/r/func_math.result
+++ b/mysql-test/r/func_math.result
@@ -101,6 +101,24 @@ Note 1003 select high_priority pi() AS `pi()`,sin((pi() / 2)) AS `sin(pi()/2)`,c
select degrees(pi()),radians(360);
degrees(pi()) radians(360)
180 6.2831853071796
+SELECT ACOS(1.0);
+ACOS(1.0)
+0.000000
+SELECT ASIN(1.0);
+ASIN(1.0)
+1.570796
+SELECT ACOS(0.2*5.0);
+ACOS(0.2*5.0)
+0.000000
+SELECT ACOS(0.5*2.0);
+ACOS(0.5*2.0)
+0.000000
+SELECT ASIN(0.8+0.2);
+ASIN(0.8+0.2)
+1.570796
+SELECT ASIN(1.2-0.2);
+ASIN(1.2-0.2)
+1.570796
explain extended select degrees(pi()),radians(360);
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
diff --git a/mysql-test/r/func_misc.result b/mysql-test/r/func_misc.result
index ec5f76409e7..5a9f0f68228 100644
--- a/mysql-test/r/func_misc.result
+++ b/mysql-test/r/func_misc.result
@@ -1,5 +1,5 @@
-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);
-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);
+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)
2 123.6 1,234.56 12,345.556 123,456.5555 1,234,567.55550 12,345.24
select inet_ntoa(inet_aton("255.255.255.255.255.255.255.255"));
inet_ntoa(inet_aton("255.255.255.255.255.255.255.255"))
@@ -19,6 +19,9 @@ hex(inet_aton('127.1'))
select hex(inet_aton('127.1.1'));
hex(inet_aton('127.1.1'))
7F010001
+select length(uuid()), charset(uuid()), length(unhex(replace(uuid(),_utf8'-',_utf8'')));
+length(uuid()) charset(uuid()) length(unhex(replace(uuid(),_utf8'-',_utf8'')))
+36 utf8 16
select length(format('nan', 2)) > 0;
length(format('nan', 2)) > 0
1
diff --git a/mysql-test/r/func_sapdb.result b/mysql-test/r/func_sapdb.result
index 6bd4c6f46a2..3ea4e7f678d 100644
--- a/mysql-test/r/func_sapdb.result
+++ b/mysql-test/r/func_sapdb.result
@@ -159,14 +159,14 @@ time("1997-12-31 23:59:59.000001") as f9;
describe t1;
Field Type Null Key Default Extra
f1 date 0000-00-00
-f2 datetime 0000-00-00 00:00:00
-f3 time 00:00:00
+f2 datetime YES NULL
+f3 time YES NULL
f4 time 00:00:00
f5 time 00:00:00
f6 time 00:00:00
-f7 datetime 0000-00-00 00:00:00
-f8 date 0000-00-00
-f9 time 00:00:00
+f7 datetime YES NULL
+f8 date YES NULL
+f9 time YES NULL
select * from t1;
f1 f2 f3 f4 f5 f6 f7 f8 f9
1997-01-01 1998-01-02 01:01:00 49:01:01 46:58:57 -23:59:59 10:11:12 2001-12-01 01:01:01 1997-12-31 23:59:59
@@ -199,3 +199,18 @@ NULL NULL NULL NULL
NULL NULL NULL NULL
00:00:00 -24:00:00 24:00:00 NULL
drop table t1, test;
+select addtime("-01:01:01.01", "-23:59:59.1") as a;
+a
+-25:01:00.110000
+select microsecond("1997-12-31 23:59:59.01") as a;
+a
+10000
+select microsecond(19971231235959.01) as a;
+a
+10000
+select date_add("1997-12-31",INTERVAL "10.09" SECOND_MICROSECOND) as a;
+a
+1997-12-31 00:00:10.090000
+select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f");
+str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f")
+2003-01-02 10:11:12.001200
diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result
index f08ae1b1efd..d3225679b3e 100644
--- a/mysql-test/r/func_str.result
+++ b/mysql-test/r/func_str.result
@@ -192,6 +192,15 @@ length(quote(concat(char(0),"test")))
select hex(quote(concat(char(224),char(227),char(230),char(231),char(232),char(234),char(235))));
hex(quote(concat(char(224),char(227),char(230),char(231),char(232),char(234),char(235))))
27E0E3E6E7E8EAEB27
+select unhex(hex("foobar")), hex(unhex("1234567890ABCDEF")), unhex("345678");
+unhex(hex("foobar")) hex(unhex("1234567890ABCDEF")) unhex("345678")
+foobar 1234567890ABCDEF 4Vx
+select hex(unhex("1")), hex(unhex("12")), hex(unhex("123")), hex(unhex("1234")), hex(unhex("12345")), hex(unhex("123456"));
+hex(unhex("1")) hex(unhex("12")) hex(unhex("123")) hex(unhex("1234")) hex(unhex("12345")) hex(unhex("123456"))
+01 12 0123 1234 012345 123456
+select length(unhex(md5("abrakadabra")));
+length(unhex(md5("abrakadabra")))
+16
select reverse("");
reverse("")
@@ -268,6 +277,34 @@ INSERT INTO t1 VALUES (1, 'a545f661efdd1fb66fdee3aab79945bf');
SELECT 1 FROM t1 WHERE tmp=AES_DECRYPT(tmp,"password");
1
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;
+elt(status_wnio,data_podp)
+NULL
+NULL
+DROP TABLE t1;
+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;
+CONCAT("</a>",RPAD("",(55 - LENGTH(title)),"."))
+NULL
+</a>..........................
+DROP TABLE t1;
+CREATE TABLE t1 (i int, j int);
+INSERT INTO t1 VALUES (1,1),(2,2);
+SELECT DISTINCT i, ELT(j, '345', '34') FROM t1;
+i ELT(j, '345', '34')
+1 345
+2 34
+DROP TABLE t1;
select 1=_latin1'1';
1=_latin1'1'
1
@@ -302,6 +339,8 @@ select concat(_latin1'a',_latin2'a',_latin5'a');
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE), (latin2_general_ci,COERCIBLE), (latin5_turkish_ci,COERCIBLE) for operation 'concat'
select concat(_latin1'a',_latin2'a',_latin5'a',_latin7'a');
ERROR HY000: Illegal mix of collations for operation 'concat'
+select concat_ws(_latin1'a',_latin2'a');
+ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (latin2_general_ci,COERCIBLE) for operation 'concat_ws'
select FIELD('b','A','B');
FIELD('b','A','B')
2
@@ -514,7 +553,7 @@ insert(_latin2'abcd',2,3,_latin2'ef'),
replace(_latin2'abcd',_latin2'b',_latin2'B')
;
Warnings:
-Warning 1264 Data truncated for column 'format(130,10)' at row 1
+Warning 1265 Data truncated for column 'format(130,10)' at row 1
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -576,27 +615,6 @@ select * from t7
where concat(s1 collate latin1_general_ci,s1 collate latin1_swedish_ci) = 'AA';
ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT) and (latin1_swedish_ci,EXPLICIT) for operation 'concat'
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),
-);
-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;
-elt(status_wnio,data_podp)
-NULL
-NULL
-DROP TABLE t1;
-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;
-CONCAT("</a>",RPAD("",(55 - LENGTH(title)),"."))
-NULL
-</a>..........................
-DROP TABLE t1;
select substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2),substring_index("1abcd;2abcd;3abcd;4abcd", ';', -2);
substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2) substring_index("1abcd;2abcd;3abcd;4abcd", ';', -2)
1abcd;2abcd 3abcd;4abcd
@@ -608,3 +626,16 @@ Note 1003 select high_priority md5(_latin1'hello') AS `md5('hello')`,sha(_latin1
SELECT lpad(12345, 5, "#");
lpad(12345, 5, "#")
12345
+SELECT conv(71, 10, 36), conv('1Z', 36, 10);
+conv(71, 10, 36) conv('1Z', 36, 10)
+1Z 71
+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;
+name
+aaaaaaaaaaccccc
+bbbbbbbbbbddddd
+drop table t1, t2;
diff --git a/mysql-test/r/func_test.result b/mysql-test/r/func_test.result
index 7d0a76424fe..3a945c0826f 100644
--- a/mysql-test/r/func_test.result
+++ b/mysql-test/r/func_test.result
@@ -52,6 +52,9 @@ Note 1003 select high_priority (3 ^ 11) AS `3 ^ 11`,(1 ^ 1) AS `1 ^ 1`,(1 ^ 0) A
select 1 XOR 1, 1 XOR 0, 0 XOR 1, 0 XOR 0, NULL XOR 1, 1 XOR NULL, 0 XOR NULL;
1 XOR 1 1 XOR 0 0 XOR 1 0 XOR 0 NULL XOR 1 1 XOR NULL 0 XOR NULL
0 1 1 0 NULL NULL NULL
+select 1 like 2 xor 2 like 1;
+1 like 2 xor 2 like 1
+0
select 10 % 7, 10 mod 7, 10 div 3;
10 % 7 10 mod 7 10 div 3
3 3 3
diff --git a/mysql-test/r/func_time.result b/mysql-test/r/func_time.result
index 64a45837a15..b3726d58c96 100644
--- a/mysql-test/r/func_time.result
+++ b/mysql-test/r/func_time.result
@@ -563,17 +563,32 @@ last_day('2001-01-01 01:01:01') as f5, last_day(NULL),
last_day('2001-02-12');
f1 f2 f3 f4 f5 last_day(NULL) last_day('2001-02-12')
2000-02-29 2002-12-31 NULL 2003-04-30 2001-01-31 NULL 2001-02-28
-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;
Field Type Null Key Default Extra
a date 0000-00-00
+b date YES NULL
select * from t1;
-a
-2000-02-29
+a b
+2000-02-29 1996-01-01
drop table t1;
-select last_day('2000-02-05');
-last_day('2000-02-05')
-2000-02-29
+select last_day('2000-02-05') as a,
+from_days(to_days("960101")) as b;
+a b
+2000-02-29 1996-01-01
+select date_add(last_day("1997-12-1"), INTERVAL 1 DAY);
+date_add(last_day("1997-12-1"), INTERVAL 1 DAY)
+1998-01-01
+select length(last_day("1997-12-1"));
+length(last_day("1997-12-1"))
+10
+select last_day("1997-12-1")+0;
+last_day("1997-12-1")+0
+19971231
+select last_day("1997-12-1")+0.0;
+last_day("1997-12-1")+0.0
+19971231.0
select strcmp(date_sub(localtimestamp(), interval 3 hour), utc_timestamp())=0;
strcmp(date_sub(localtimestamp(), interval 3 hour), utc_timestamp())=0
1
@@ -597,6 +612,15 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
Note 1003 select high_priority no_cache period_add(_latin1'9602',-(12)) AS `period_add("9602",-12)`,period_diff(199505,_latin1'9404') AS `period_diff(199505,"9404")`,from_days(to_days(_latin1'960101')) AS `from_days(to_days("960101"))`,dayofmonth(_latin1'1997-01-02') AS `dayofmonth("1997-01-02")`,month(_latin1'1997-01-02') AS `month("1997-01-02")`,monthname(_latin1'1972-03-04') AS `monthname("1972-03-04")`,dayofyear(_latin1'0000-00-00') AS `dayofyear("0000-00-00")`,hour(_latin1'1997-03-03 23:03:22') AS `HOUR("1997-03-03 23:03:22")`,minute(_latin1'23:03:22') AS `MINUTE("23:03:22")`,second(230322) AS `SECOND(230322)`,quarter(980303) AS `QUARTER(980303)`,week(_latin1'1998-03-03',0) AS `WEEK("1998-03-03")`,yearweek(_latin1'2000-01-01',1) AS `yearweek("2000-01-01",1)`,week(19950101,1) AS `week(19950101,1)`,year(_latin1'98-02-03') AS `year("98-02-03")`,(weekday(to_days(curdate())) - weekday(to_days(now()))) AS `weekday(curdate())-weekday(now())`,dayname(to_days(_latin1'1962-03-03')) AS `dayname("1962-03-03")`,unix_timestamp() AS `unix_timestamp()`,sec_to_time((time_to_sec(_latin1'0:30:47') / 6.21)) AS `sec_to_time(time_to_sec("0:30:47")/6.21)`,curtime() AS `curtime()`,utc_time() AS `utc_time()`,curdate() AS `curdate()`,utc_date() AS `utc_date()`,utc_timestamp() AS `utc_timestamp()`,date_format(_latin1'1997-01-02 03:04:05',_latin1'%M %W %D %Y %y %m %d %h %i %s %w') AS `date_format("1997-01-02 03:04:05", "%M %W %D %Y %y %m %d %h %i %s %w")`,from_unixtime(unix_timestamp(_latin1'1994-03-02 10:11:12')) AS `from_unixtime(unix_timestamp("1994-03-02 10:11:12"))`,(_latin1'1997-12-31 23:59:59' + interval 1 second) AS `"1997-12-31 23:59:59" + INTERVAL 1 SECOND`,(_latin1'1998-01-01 00:00:00' - interval 1 second) AS `"1998-01-01 00:00:00" - INTERVAL 1 SECOND`,(_latin1'1997-12-31' + interval 1 day) AS `INTERVAL 1 DAY + "1997-12-31"`,extract(year from _latin1'1999-01-02 10:11:12') AS `extract(YEAR FROM "1999-01-02 10:11:12")`,(_latin1'1997-12-31 23:59:59' + interval 1 second) AS `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);
+count(*)
+3
+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;
id select_type table type possible_keys key key_len ref rows Extra
diff --git a/mysql-test/r/gis-rtree.result b/mysql-test/r/gis-rtree.result
index 2a47d0c048d..ab5338d383b 100644
--- a/mysql-test/r/gis-rtree.result
+++ b/mysql-test/r/gis-rtree.result
@@ -710,3 +710,43 @@ SELECT count(*) FROM t2;
count(*)
0
DROP TABLE t2;
+drop table if exists t1;
+Warnings:
+Note 1051 Unknown table '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;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+analyze table t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status OK
+drop table t1;
diff --git a/mysql-test/r/gis.result b/mysql-test/r/gis.result
index 7ee16d54724..be33c05c578 100644
--- a/mysql-test/r/gis.result
+++ b/mysql-test/r/gis.result
@@ -1,115 +1,115 @@
-DROP TABLE IF EXISTS pt, ls, p, mpt, mls, mp, gc, geo;
-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;
+DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
+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;
Field Type Null Key Default Extra
fid int(11) PRI 0
g point YES NULL
-SHOW FIELDS FROM ls;
+SHOW FIELDS FROM gis_line;
Field Type Null Key Default Extra
fid int(11) PRI 0
g linestring YES NULL
-SHOW FIELDS FROM p;
+SHOW FIELDS FROM gis_polygon;
Field Type Null Key Default Extra
fid int(11) PRI 0
g polygon YES NULL
-SHOW FIELDS FROM mpt;
+SHOW FIELDS FROM gis_multi_point;
Field Type Null Key Default Extra
fid int(11) PRI 0
g multipoint YES NULL
-SHOW FIELDS FROM mls;
+SHOW FIELDS FROM gis_multi_line;
Field Type Null Key Default Extra
fid int(11) PRI 0
g multilinestring YES NULL
-SHOW FIELDS FROM mp;
+SHOW FIELDS FROM gis_multi_polygon;
Field Type Null Key Default Extra
fid int(11) PRI 0
g multipolygon YES NULL
-SHOW FIELDS FROM gc;
+SHOW FIELDS FROM gis_geometrycollection;
Field Type Null Key Default Extra
fid int(11) PRI 0
g geometrycollection YES NULL
-SHOW FIELDS FROM geo;
+SHOW FIELDS FROM gis_geometry;
Field Type Null Key Default Extra
fid int(11) PRI 0
g geometry YES NULL
-INSERT INTO pt VALUES
+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;
+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;
fid AsText(g)
101 POINT(10 10)
102 POINT(20 10)
103 POINT(20 20)
104 POINT(10 20)
-SELECT fid, AsText(g) FROM ls;
+SELECT fid, AsText(g) FROM gis_line;
fid AsText(g)
105 LINESTRING(0 0,0 10,10 0)
106 LINESTRING(10 10,20 10,20 20,10 20,10 10)
107 LINESTRING(10 10,40 10)
-SELECT fid, AsText(g) FROM p;
+SELECT fid, AsText(g) FROM gis_polygon;
fid AsText(g)
108 POLYGON((10 10,20 10,20 20,10 20,10 10))
109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
110 POLYGON((0 0,30 0,30 30,0 0))
-SELECT fid, AsText(g) FROM mpt;
+SELECT fid, AsText(g) FROM gis_multi_point;
fid AsText(g)
111 MULTIPOINT(0 0,10 10,10 20,20 20)
112 MULTIPOINT(1 1,11 11,11 21,21 21)
113 MULTIPOINT(3 6,4 10)
-SELECT fid, AsText(g) FROM mls;
+SELECT fid, AsText(g) FROM gis_multi_line;
fid AsText(g)
114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
115 MULTILINESTRING((10 48,10 21,10 0))
116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
-SELECT fid, AsText(g) FROM mp;
+SELECT fid, AsText(g) FROM gis_multi_polygon;
fid AsText(g)
117 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 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 MULTIPOLYGON(((0 3,3 3,3 0,0 3)))
-SELECT fid, AsText(g) FROM gc;
+SELECT fid, AsText(g) FROM gis_geometrycollection;
fid AsText(g)
120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10))
121 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))
-SELECT fid, AsText(g) FROM geo;
+SELECT fid, AsText(g) FROM gis_geometry;
fid AsText(g)
101 POINT(10 10)
102 POINT(20 10)
@@ -132,7 +132,7 @@ fid AsText(g)
119 MULTIPOLYGON(((0 3,3 3,3 0,0 3)))
120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10))
121 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))
-SELECT fid, Dimension(g) FROM geo;
+SELECT fid, Dimension(g) FROM gis_geometry;
fid Dimension(g)
101 0
102 0
@@ -155,7 +155,7 @@ fid Dimension(g)
119 2
120 1
121 1
-SELECT fid, GeometryType(g) FROM geo;
+SELECT fid, GeometryType(g) FROM gis_geometry;
fid GeometryType(g)
101 POINT
102 POINT
@@ -178,7 +178,7 @@ fid GeometryType(g)
119 MULTIPOLYGON
120 GEOMETRYCOLLECTION
121 GEOMETRYCOLLECTION
-SELECT fid, IsEmpty(g) FROM geo;
+SELECT fid, IsEmpty(g) FROM gis_geometry;
fid IsEmpty(g)
101 0
102 0
@@ -201,7 +201,7 @@ fid IsEmpty(g)
119 0
120 0
121 0
-SELECT fid, AsText(Envelope(g)) FROM geo;
+SELECT fid, AsText(Envelope(g)) FROM gis_geometry;
fid AsText(Envelope(g))
101 POLYGON((10 10,10 10,10 10,10 10,10 10))
102 POLYGON((20 10,20 10,20 10,20 10,20 10))
@@ -224,161 +224,165 @@ fid AsText(Envelope(g))
119 POLYGON((0 0,3 0,3 3,0 3,0 0))
120 POLYGON((0 0,10 0,10 10,0 10,0 0))
121 POLYGON((3 6,44 6,44 9,3 9,3 6))
-explain extended select Dimension(g), GeometryType(g), IsEmpty(g), AsText(Envelope(g)) from geo;
+explain extended select Dimension(g), GeometryType(g), IsEmpty(g), AsText(Envelope(g)) from gis_geometry;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE geo ALL NULL NULL NULL NULL 21
+1 SIMPLE gis_geometry ALL NULL NULL NULL NULL 21
Warnings:
-Note 1003 select high_priority dimension(test.geo.g) AS `Dimension(g)`,geometrytype(test.geo.g) AS `GeometryType(g)`,isempty(test.geo.g) AS `IsEmpty(g)`,astext(envelope(test.geo.g)) AS `AsText(Envelope(g))` from test.geo
-SELECT fid, X(g) FROM pt;
+Note 1003 select high_priority dimension(test.gis_geometry.g) AS `Dimension(g)`,geometrytype(test.gis_geometry.g) AS `GeometryType(g)`,isempty(test.gis_geometry.g) AS `IsEmpty(g)`,astext(envelope(test.gis_geometry.g)) AS `AsText(Envelope(g))` from test.gis_geometry
+SELECT fid, X(g) FROM gis_point;
fid X(g)
101 10
102 20
103 20
104 10
-SELECT fid, Y(g) FROM pt;
+SELECT fid, Y(g) FROM gis_point;
fid Y(g)
101 10
102 10
103 20
104 20
-explain extended select X(g),Y(g) FROM pt;
+explain extended select X(g),Y(g) FROM gis_point;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE pt ALL NULL NULL NULL NULL 4
+1 SIMPLE gis_point ALL NULL NULL NULL NULL 4
Warnings:
-Note 1003 select high_priority x(test.pt.g) AS `X(g)`,y(test.pt.g) AS `Y(g)` from test.pt
-SELECT fid, AsText(StartPoint(g)) FROM ls;
+Note 1003 select high_priority x(test.gis_point.g) AS `X(g)`,y(test.gis_point.g) AS `Y(g)` from test.gis_point
+SELECT fid, AsText(StartPoint(g)) FROM gis_line;
fid AsText(StartPoint(g))
105 POINT(0 0)
106 POINT(10 10)
107 POINT(10 10)
-SELECT fid, AsText(EndPoint(g)) FROM ls;
+SELECT fid, AsText(EndPoint(g)) FROM gis_line;
fid AsText(EndPoint(g))
105 POINT(10 0)
106 POINT(10 10)
107 POINT(40 10)
-SELECT fid, GLength(g) FROM ls;
+SELECT fid, GLength(g) FROM gis_line;
fid GLength(g)
105 24.142135623731
106 40
107 30
-SELECT fid, NumPoints(g) FROM ls;
+SELECT fid, NumPoints(g) FROM gis_line;
fid NumPoints(g)
105 3
106 5
107 2
-SELECT fid, AsText(PointN(g, 2)) FROM ls;
+SELECT fid, AsText(PointN(g, 2)) FROM gis_line;
fid AsText(PointN(g, 2))
105 POINT(0 10)
106 POINT(20 10)
107 POINT(40 10)
-SELECT fid, IsClosed(g) FROM ls;
+SELECT fid, IsClosed(g) FROM gis_line;
fid IsClosed(g)
105 0
106 1
107 0
-explain extended select AsText(StartPoint(g)),AsText(EndPoint(g)),GLength(g),NumPoints(g),AsText(PointN(g, 2)),IsClosed(g) FROM ls;
+explain extended select AsText(StartPoint(g)),AsText(EndPoint(g)),GLength(g),NumPoints(g),AsText(PointN(g, 2)),IsClosed(g) FROM gis_line;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE ls ALL NULL NULL NULL NULL 3
+1 SIMPLE gis_line ALL NULL NULL NULL NULL 3
Warnings:
-Note 1003 select high_priority astext(startpoint(test.ls.g)) AS `AsText(StartPoint(g))`,astext(endpoint(test.ls.g)) AS `AsText(EndPoint(g))`,glength(test.ls.g) AS `GLength(g)`,numpoints(test.ls.g) AS `NumPoints(g)`,astext(pointn(test.ls.g,2)) AS `AsText(PointN(g, 2))`,isclosed(test.ls.g) AS `IsClosed(g)` from test.ls
-SELECT fid, AsText(Centroid(g)) FROM p;
+Note 1003 select high_priority astext(startpoint(test.gis_line.g)) AS `AsText(StartPoint(g))`,astext(endpoint(test.gis_line.g)) AS `AsText(EndPoint(g))`,glength(test.gis_line.g) AS `GLength(g)`,numpoints(test.gis_line.g) AS `NumPoints(g)`,astext(pointn(test.gis_line.g,2)) AS `AsText(PointN(g, 2))`,isclosed(test.gis_line.g) AS `IsClosed(g)` from test.gis_line
+SELECT fid, AsText(Centroid(g)) FROM gis_polygon;
fid AsText(Centroid(g))
108 POINT(15 15)
109 POINT(25.416666666667 25.416666666667)
110 POINT(20 10)
-SELECT fid, Area(g) FROM p;
+SELECT fid, Area(g) FROM gis_polygon;
fid Area(g)
108 100
109 2400
110 450
-SELECT fid, AsText(ExteriorRing(g)) FROM p;
+SELECT fid, AsText(ExteriorRing(g)) FROM gis_polygon;
fid AsText(ExteriorRing(g))
108 LINESTRING(10 10,20 10,20 20,10 20,10 10)
109 LINESTRING(0 0,50 0,50 50,0 50,0 0)
110 LINESTRING(0 0,30 0,30 30,0 0)
-SELECT fid, NumInteriorRings(g) FROM p;
+SELECT fid, NumInteriorRings(g) FROM gis_polygon;
fid NumInteriorRings(g)
108 0
109 1
110 0
-SELECT fid, AsText(InteriorRingN(g, 1)) FROM p;
+SELECT fid, AsText(InteriorRingN(g, 1)) FROM gis_polygon;
fid AsText(InteriorRingN(g, 1))
108 NULL
109 LINESTRING(10 10,20 10,20 20,10 20,10 10)
110 NULL
-explain extended select AsText(Centroid(g)),Area(g),AsText(ExteriorRing(g)),NumInteriorRings(g),AsText(InteriorRingN(g, 1)) FROM p;
+explain extended select AsText(Centroid(g)),Area(g),AsText(ExteriorRing(g)),NumInteriorRings(g),AsText(InteriorRingN(g, 1)) FROM gis_polygon;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE p ALL NULL NULL NULL NULL 3
+1 SIMPLE gis_polygon ALL NULL NULL NULL NULL 3
Warnings:
-Note 1003 select high_priority astext(centroid(test.p.g)) AS `AsText(Centroid(g))`,area(test.p.g) AS `Area(g)`,astext(exteriorring(test.p.g)) AS `AsText(ExteriorRing(g))`,numinteriorrings(test.p.g) AS `NumInteriorRings(g)`,astext(interiorringn(test.p.g,1)) AS `AsText(InteriorRingN(g, 1))` from test.p
-SELECT fid, IsClosed(g) FROM mls;
+Note 1003 select high_priority astext(centroid(test.gis_polygon.g)) AS `AsText(Centroid(g))`,area(test.gis_polygon.g) AS `Area(g)`,astext(exteriorring(test.gis_polygon.g)) AS `AsText(ExteriorRing(g))`,numinteriorrings(test.gis_polygon.g) AS `NumInteriorRings(g)`,astext(interiorringn(test.gis_polygon.g,1)) AS `AsText(InteriorRingN(g, 1))` from test.gis_polygon
+SELECT fid, IsClosed(g) FROM gis_multi_line;
fid IsClosed(g)
114 0
115 0
116 0
-SELECT fid, AsText(Centroid(g)) FROM mp;
+SELECT fid, AsText(Centroid(g)) FROM gis_multi_polygon;
fid AsText(Centroid(g))
117 POINT(55.588527753042 17.426536064114)
118 POINT(55.588527753042 17.426536064114)
119 POINT(2 2)
-SELECT fid, Area(g) FROM mp;
+SELECT fid, Area(g) FROM gis_multi_polygon;
fid Area(g)
117 1684.5
118 1684.5
119 4.5
-SELECT fid, NumGeometries(g) from mpt;
+SELECT fid, NumGeometries(g) from gis_multi_point;
fid NumGeometries(g)
111 4
112 4
113 2
-SELECT fid, NumGeometries(g) from mls;
+SELECT fid, NumGeometries(g) from gis_multi_line;
fid NumGeometries(g)
114 2
115 1
116 2
-SELECT fid, NumGeometries(g) from mp;
+SELECT fid, NumGeometries(g) from gis_multi_polygon;
fid NumGeometries(g)
117 2
118 2
119 1
-SELECT fid, NumGeometries(g) from gc;
+SELECT fid, NumGeometries(g) from gis_geometrycollection;
fid NumGeometries(g)
120 2
121 2
-explain extended SELECT fid, NumGeometries(g) from mpt;
+explain extended SELECT fid, NumGeometries(g) from gis_multi_point;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE mpt ALL NULL NULL NULL NULL 3
+1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3
Warnings:
-Note 1003 select high_priority test.mpt.fid AS `fid`,numgeometries(test.mpt.g) AS `NumGeometries(g)` from test.mpt
-SELECT fid, AsText(GeometryN(g, 2)) from mpt;
+Note 1003 select high_priority test.gis_multi_point.fid AS `fid`,numgeometries(test.gis_multi_point.g) AS `NumGeometries(g)` from test.gis_multi_point
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point;
fid AsText(GeometryN(g, 2))
111 POINT(10 10)
112 POINT(11 11)
113 POINT(4 10)
-SELECT fid, AsText(GeometryN(g, 2)) from mls;
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_line;
fid AsText(GeometryN(g, 2))
114 LINESTRING(16 0,16 23,16 48)
115 NULL
116 LINESTRING(2 5,5 8,21 7)
-SELECT fid, AsText(GeometryN(g, 2)) from mp;
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_polygon;
fid AsText(GeometryN(g, 2))
117 POLYGON((59 18,67 18,67 13,59 13,59 18))
118 POLYGON((59 18,67 18,67 13,59 13,59 18))
119 NULL
-SELECT fid, AsText(GeometryN(g, 2)) from gc;
+SELECT fid, AsText(GeometryN(g, 2)) from gis_geometrycollection;
fid AsText(GeometryN(g, 2))
120 LINESTRING(0 0,10 10)
121 LINESTRING(3 6,7 9)
-explain extended SELECT fid, AsText(GeometryN(g, 2)) from mpt;
+SELECT fid, AsText(GeometryN(g, 1)) from gis_geometrycollection;
+fid AsText(GeometryN(g, 1))
+120 POINT(0 0)
+121 POINT(44 6)
+explain extended SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE mpt ALL NULL NULL NULL NULL 3
+1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3
Warnings:
-Note 1003 select high_priority test.mpt.fid AS `fid`,astext(geometryn(test.mpt.g,2)) AS `AsText(GeometryN(g, 2))` from test.mpt
+Note 1003 select high_priority test.gis_multi_point.fid AS `fid`,astext(geometryn(test.gis_multi_point.g,2)) AS `AsText(GeometryN(g, 2))` from test.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;
first second w c o e d t i r
120 120 1 1 0 1 0 0 1 0
120 121 0 0 0 0 0 0 1 0
@@ -388,46 +392,46 @@ 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;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE g1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
1 SIMPLE g2 ALL NULL NULL NULL NULL 2
Warnings:
-Note 1003 select high_priority test.g1.fid AS `first`,test.g2.fid AS `second`,within(test.g1.g,test.g2.g) AS `w`,contains(test.g1.g,test.g2.g) AS `c`,overlaps(test.g1.g,test.g2.g) AS `o`,equals(test.g1.g,test.g2.g) AS `e`,disjoint(test.g1.g,test.g2.g) AS `d`,touches(test.g1.g,test.g2.g) AS `t`,intersects(test.g1.g,test.g2.g) AS `i`,crosses(test.g1.g,test.g2.g) AS `r` from test.gc g1 join test.gc g2 order by test.g1.fid,test.g2.fid
-DROP TABLE pt, ls, p, mpt, mls, mp, gc, geo;
-CREATE TABLE g1 (
-pt point,
+Note 1003 select high_priority test.g1.fid AS `first`,test.g2.fid AS `second`,within(test.g1.g,test.g2.g) AS `w`,contains(test.g1.g,test.g2.g) AS `c`,overlaps(test.g1.g,test.g2.g) AS `o`,equals(test.g1.g,test.g2.g) AS `e`,disjoint(test.g1.g,test.g2.g) AS `d`,touches(test.g1.g,test.g2.g) AS `t`,intersects(test.g1.g,test.g2.g) AS `i`,crosses(test.g1.g,test.g2.g) AS `r` from test.gis_geometrycollection g1 join test.gis_geometrycollection g2 order by test.g1.fid,test.g2.fid
+DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
+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;
+SHOW FIELDS FROM t1;
Field Type Null Key Default Extra
-pt point YES NULL
+gp point YES NULL
ln linestring YES NULL
pg polygon YES NULL
-mpt multipoint YES NULL
+mp multipoint YES NULL
mln multilinestring YES NULL
mpg multipolygon YES NULL
gc geometrycollection YES NULL
gm geometry YES NULL
-ALTER TABLE g1 ADD fid INT NOT NULL;
-SHOW FIELDS FROM g1;
+ALTER TABLE t1 ADD fid INT NOT NULL;
+SHOW FIELDS FROM t1;
Field Type Null Key Default Extra
-pt point YES NULL
+gp point YES NULL
ln linestring YES NULL
pg polygon YES NULL
-mpt multipoint YES NULL
+mp multipoint YES NULL
mln multilinestring YES NULL
mpg multipolygon YES NULL
gc geometrycollection YES NULL
gm geometry YES NULL
fid int(11) 0
-DROP TABLE g1;
+DROP TABLE t1;
SELECT AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)'))));
AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)'))))
POINT(1 4)
@@ -454,3 +458,11 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
Note 1003 select high_priority issimple(multipoint(point(3,6),point(4,10))) AS `issimple(MultiPoint(Point(3, 6), Point(4, 10)))`,issimple(point(3,6)) AS `issimple(Point(3, 6))`
+create table t1 (a geometry not null);
+insert into t1 values (GeomFromText('Point(1 2)'));
+insert into t1 values ('Garbage');
+ERROR HY000: Unknown error
+insert IGNORE into t1 values ('Garbage');
+ERROR HY000: Unknown error
+alter table t1 add spatial index(a);
+drop table t1;
diff --git a/mysql-test/r/grant.result b/mysql-test/r/grant.result
index 89426edb000..2c17373bd00 100644
--- a/mysql-test/r/grant.result
+++ b/mysql-test/r/grant.result
@@ -136,7 +136,7 @@ grant ALL PRIVILEGES on *.* to drop_user2@localhost with GRANT OPTION;
show grants for drop_user2@localhost;
Grants for drop_user2@localhost
GRANT ALL PRIVILEGES ON *.* TO 'drop_user2'@'localhost' WITH GRANT OPTION
-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;
@@ -146,12 +146,43 @@ Grants for drop_user@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'
-revoke all privileges, grant from drop_user@localhost;
+set sql_mode=ansi_quotes;
+show grants for drop_user@localhost;
+Grants for drop_user@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'
+set sql_mode=default;
+set sql_quote_show_create=0;
+show grants for drop_user@localhost;
+Grants for drop_user@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'
+set sql_mode="ansi_quotes";
+show grants for drop_user@localhost;
+Grants for drop_user@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'
+set sql_quote_show_create=1;
+show grants for drop_user@localhost;
+Grants for drop_user@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'
+set sql_mode="";
+show grants for drop_user@localhost;
+Grants for drop_user@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'
+revoke all privileges, grant option from drop_user@localhost;
show grants for drop_user@localhost;
Grants for drop_user@localhost
GRANT USAGE ON *.* TO 'drop_user'@'localhost'
drop user drop_user@localhost;
-revoke all privileges, grant from drop_user@localhost;
+revoke all privileges, grant option from drop_user@localhost;
ERROR HY000: Can't revoke all privileges, grant for one or more of the requested users
grant select(a) on test.t1 to drop_user1@localhost;
grant select on test.t1 to drop_user2@localhost;
@@ -160,8 +191,14 @@ grant select on *.* to drop_user4@localhost;
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
drop_user4@localhost;
ERROR HY000: Can't drop one or more of the requested users
-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;
+Grants for mysqltest_1@localhost
+GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'
+drop user mysqltest_1@localhost;
diff --git a/mysql-test/r/grant2.result b/mysql-test/r/grant2.result
index 0b127188586..d0765e2721f 100644
--- a/mysql-test/r/grant2.result
+++ b/mysql-test/r/grant2.result
@@ -5,6 +5,9 @@ grant all privileges on `my\_%`.* to mysqltest_1@localhost with grant option;
select current_user();
current_user()
mysqltest_1@localhost
+select current_user;
+current_user
+mysqltest_1@localhost
grant all privileges on `my\_1`.* to mysqltest_2@localhost with grant option;
grant all privileges on `my_%`.* to mysqltest_3@localhost with grant option;
ERROR 42000: Access denied for user: 'mysqltest_1'@'localhost' to database 'my_%'
diff --git a/mysql-test/r/grant_cache.result b/mysql-test/r/grant_cache.result
index f49db67a9f7..48068c0f68d 100644
--- a/mysql-test/r/grant_cache.result
+++ b/mysql-test/r/grant_cache.result
@@ -2,6 +2,12 @@ drop table if exists test.t1,mysqltest.t1,mysqltest.t2;
drop database if exists mysqltest;
reset query cache;
flush status;
+show grants for current_user;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+show grants;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
create database if not exists mysqltest;
create table mysqltest.t1 (a int,b int,c int);
create table mysqltest.t2 (a int,b int,c int);
@@ -41,17 +47,57 @@ grant SELECT on mysqltest.* to mysqltest_1@localhost;
grant SELECT on mysqltest.t1 to mysqltest_2@localhost;
grant SELECT on test.t1 to mysqltest_2@localhost;
grant SELECT(a) on mysqltest.t1 to mysqltest_3@localhost;
+show grants for current_user();
+Grants for mysqltest_1@localhost
+GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
+GRANT SELECT ON `mysqltest`.* TO 'mysqltest_1'@'localhost'
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 6
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+show status like "Qcache_not_cached";
+Variable_name Value
+Qcache_not_cached 0
select "user1";
user1
user1
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 6
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+show status like "Qcache_not_cached";
+Variable_name Value
+Qcache_not_cached 1
select * from t1;
a b c
1 1 1
2 2 2
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 6
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 1
+show status like "Qcache_not_cached";
+Variable_name Value
+Qcache_not_cached 1
select a from t1 ;
a
1
2
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 6
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 2
+show status like "Qcache_not_cached";
+Variable_name Value
+Qcache_not_cached 1
select c from t1;
c
1
@@ -65,6 +111,9 @@ Qcache_hits 3
show status like "Qcache_not_cached";
Variable_name Value
Qcache_not_cached 1
+show grants for current_user();
+Grants for @localhost
+GRANT USAGE ON *.* TO ''@'localhost'
select "user2";
user2
user2
@@ -94,7 +143,7 @@ Variable_name Value
Qcache_hits 7
show status like "Qcache_not_cached";
Variable_name Value
-Qcache_not_cached 3
+Qcache_not_cached 2
select "user3";
user3
user3
@@ -118,10 +167,14 @@ Variable_name Value
Qcache_hits 7
show status like "Qcache_not_cached";
Variable_name Value
-Qcache_not_cached 8
+Qcache_not_cached 7
select "user4";
user4
user4
+show grants;
+Grants for mysqltest_1@localhost
+GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
+GRANT SELECT ON `mysqltest`.* TO 'mysqltest_1'@'localhost'
select a from t1;
ERROR 3D000: No Database Selected
select * from mysqltest.t1,test.t1;
@@ -144,7 +197,7 @@ Variable_name Value
Qcache_hits 8
show status like "Qcache_not_cached";
Variable_name Value
-Qcache_not_cached 9
+Qcache_not_cached 8
delete from mysql.user where user in ("mysqltest_1","mysqltest_2","mysqltest_3");
delete from mysql.db where user in ("mysqltest_1","mysqltest_2","mysqltest_3");
delete from mysql.tables_priv where user in ("mysqltest_1","mysqltest_2","mysqltest_3");
diff --git a/mysql-test/r/handler.result b/mysql-test/r/handler.result
index d0ea16c5699..b25150919d6 100644
--- a/mysql-test/r/handler.result
+++ b/mysql-test/r/handler.result
@@ -175,3 +175,21 @@ ERROR 42S22: Unknown column 'W' in 'field list'
handler t1 read a=(a);
ERROR HY000: Wrong arguments to HANDLER ... READ
drop table t1;
+create table t1 (a char(5));
+insert into t1 values ("Ok");
+handler t1 open as t;
+handler t read first;
+a
+Ok
+use mysql;
+handler t read first;
+a
+Ok
+handler t close;
+handler test.t1 open as t;
+handler t read first;
+a
+Ok
+handler t close;
+use test;
+drop table t1;
diff --git a/mysql-test/r/have_sjis.require b/mysql-test/r/have_sjis.require
new file mode 100644
index 00000000000..72ce8ec88fe
--- /dev/null
+++ b/mysql-test/r/have_sjis.require
@@ -0,0 +1,2 @@
+Collation Charset Id Default Compiled Sortlen
+sjis_japanese_ci sjis 13 Yes Yes 1
diff --git a/mysql-test/r/heap_btree.result b/mysql-test/r/heap_btree.result
index ef63b1d4e00..5c60c97d674 100644
--- a/mysql-test/r/heap_btree.result
+++ b/mysql-test/r/heap_btree.result
@@ -173,9 +173,22 @@ f1 f2
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%";
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL btn NULL NULL NULL 14 Using where
+1 SIMPLE t1 range btn btn 10 NULL 1 Using where
+explain select * from t1 where btn like "h%";
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range btn btn 10 NULL # Using where
+explain select * from t1 where btn like "a%";
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range btn btn 10 NULL 1 Using where
+explain select * from t1 where btn like "b%";
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range btn btn 10 NULL 1 Using where
+select * from t1 where btn like "ff%";
+btn
+select * from t1 where btn like " %";
+btn
select * from t1 where btn like "q%";
btn
alter table t1 add column new_col char(1) not null, add key using BTREE (btn,new_col), drop key btn;
diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result
index eb0b9af8e38..5e513061821 100644
--- a/mysql-test/r/innodb.result
+++ b/mysql-test/r/innodb.result
@@ -1084,11 +1084,7 @@ select * from t1;
id
select * from t2;
id t1_id
-drop table t1,t2;
-DROP TABLE IF EXISTS t1,t2;
-Warnings:
-Note 1051 Unknown table 't1'
-Note 1051 Unknown table '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);
@@ -1333,13 +1329,29 @@ a
3
4
drop table t1;
+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;
+drop table t2,t1;
+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 ) ;
+delete t3,t2,t1 from t1,t2,t3 where t1.id =1 and t2.id = t1.id and t3.id = t2.id;
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails
+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 23000: Cannot delete or update a parent row: a foreign key constraint fails
+update t3 set t3.id=7 where t1.id =1 and t2.id = t1.id and t3.id = t2.id;
+ERROR 42S02: Unknown table 't1' in where clause
+drop table t3,t2,t1;
CREATE TABLE t1 (col1 int(1))ENGINE=InnoDB;
CREATE TABLE t2 (col1 int(1),stamp TIMESTAMP,INDEX stamp_idx
(stamp))ENGINE=InnoDB;
insert into t1 values (1),(2),(3);
insert into t2 values (1, 20020204130000),(2, 20020204130000),(4,20020204310000 ),(5,20020204230000);
Warnings:
-Warning 1264 Data truncated for column 'stamp' at row 3
+Warning 1265 Data truncated for column 'stamp' at row 3
SELECT col1 FROM t1 UNION SELECT col1 FROM t2 WHERE stamp <
'20020204120000' GROUP BY col1;
col1
@@ -1414,3 +1426,20 @@ test.t2 968604391
test.t3 968604391
test.t4 NULL
drop table t1,t2,t3;
+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;
+name2
+fff
+sss
+ttt
+first
+second
+third
+1
+2
+3
+drop table t1;
+create table t1 (a int) engine=innodb;
+create table t2 like t1;
+drop table t1,t2;
diff --git a/mysql-test/r/insert.result b/mysql-test/r/insert.result
index d9e57b48d39..44950d0927c 100644
--- a/mysql-test/r/insert.result
+++ b/mysql-test/r/insert.result
@@ -63,7 +63,7 @@ insert into t1 values(NULL);
ERROR 23000: Column 'id' cannot be null
insert into t1 values (1), (NULL), (2);
Warnings:
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'id' at row 2
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'id' at row 2
select * from t1;
id
1
@@ -87,6 +87,243 @@ create table t1 (c int);
insert into mysqltest.t1 set mysqltest.t1.c = '1';
drop database mysqltest;
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);
+Warnings:
+Warning 1265 Data truncated for column 'f_double' at row 1
+Warning 1265 Data truncated for column 'f_float' at row 1
+Warning 1265 Data truncated for column 'f_double_7_2' at row 1
+Warning 1265 Data truncated for column 'f_float_4_3' at row 1
+Warning 1265 Data truncated for column 'f_double_u' at row 1
+Warning 1265 Data truncated for column 'f_float_u' at row 1
+Warning 1265 Data truncated for column 'f_double_15_1_u' at row 1
+Warning 1265 Data truncated for column 'f_float_3_1_u' at row 1
+select * from t1 where number =last_insert_id();
+number 1
+original_value aa
+f_double 0
+f_float 0
+f_double_7_2 0.00
+f_float_4_3 0.000
+f_double_u 0
+f_float_u 0
+f_double_15_1_u 0.0
+f_float_3_1_u 0.0
+set @value= "1aa";
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+Warnings:
+Warning 1265 Data truncated for column 'f_double' at row 1
+Warning 1265 Data truncated for column 'f_float' at row 1
+Warning 1265 Data truncated for column 'f_double_7_2' at row 1
+Warning 1265 Data truncated for column 'f_float_4_3' at row 1
+Warning 1265 Data truncated for column 'f_double_u' at row 1
+Warning 1265 Data truncated for column 'f_float_u' at row 1
+Warning 1265 Data truncated for column 'f_double_15_1_u' at row 1
+Warning 1265 Data truncated for column 'f_float_3_1_u' at row 1
+select * from t1 where number =last_insert_id();
+number 2
+original_value 1aa
+f_double 1
+f_float 1
+f_double_7_2 1.00
+f_float_4_3 1.000
+f_double_u 1
+f_float_u 1
+f_double_15_1_u 1.0
+f_float_3_1_u 1.0
+set @value= "aa1";
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+Warnings:
+Warning 1265 Data truncated for column 'f_double' at row 1
+Warning 1265 Data truncated for column 'f_float' at row 1
+Warning 1265 Data truncated for column 'f_double_7_2' at row 1
+Warning 1265 Data truncated for column 'f_float_4_3' at row 1
+Warning 1265 Data truncated for column 'f_double_u' at row 1
+Warning 1265 Data truncated for column 'f_float_u' at row 1
+Warning 1265 Data truncated for column 'f_double_15_1_u' at row 1
+Warning 1265 Data truncated for column 'f_float_3_1_u' at row 1
+select * from t1 where number =last_insert_id();
+number 3
+original_value aa1
+f_double 0
+f_float 0
+f_double_7_2 0.00
+f_float_4_3 0.000
+f_double_u 0
+f_float_u 0
+f_double_15_1_u 0.0
+f_float_3_1_u 0.0
+set @value= "1e+1111111111a";
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+Warnings:
+Warning 1265 Data truncated for column 'f_double' at row 1
+Warning 1265 Data truncated for column 'f_float' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float' at row 1
+Warning 1265 Data truncated for column 'f_double_7_2' at row 1
+Warning 1264 Data truncated, out of range for column 'f_double_7_2' at row 1
+Warning 1265 Data truncated for column 'f_float_4_3' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_4_3' at row 1
+Warning 1265 Data truncated for column 'f_double_u' at row 1
+Warning 1265 Data truncated for column 'f_float_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_u' at row 1
+Warning 1265 Data truncated for column 'f_double_15_1_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_double_15_1_u' at row 1
+Warning 1265 Data truncated for column 'f_float_3_1_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_3_1_u' at row 1
+select * from t1 where number =last_insert_id();
+number 4
+original_value 1e+1111111111a
+f_double 1.79769313486232e+308
+f_float 3.40282e+38
+f_double_7_2 99999.99
+f_float_4_3 9.999
+f_double_u 1.79769313486232e+308
+f_float_u 3.40282e+38
+f_double_15_1_u 99999999999999.9
+f_float_3_1_u 99.9
+set @value= "-1e+1111111111a";
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+Warnings:
+Warning 1265 Data truncated for column 'f_double' at row 1
+Warning 1265 Data truncated for column 'f_float' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float' at row 1
+Warning 1265 Data truncated for column 'f_double_7_2' at row 1
+Warning 1264 Data truncated, out of range for column 'f_double_7_2' at row 1
+Warning 1265 Data truncated for column 'f_float_4_3' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_4_3' at row 1
+Warning 1265 Data truncated for column 'f_double_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_double_u' at row 1
+Warning 1265 Data truncated for column 'f_float_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_u' at row 1
+Warning 1265 Data truncated for column 'f_double_15_1_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_double_15_1_u' at row 1
+Warning 1265 Data truncated for column 'f_float_3_1_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_3_1_u' at row 1
+select * from t1 where number =last_insert_id();
+number 5
+original_value -1e+1111111111a
+f_double -1.79769313486232e+308
+f_float -3.40282e+38
+f_double_7_2 -99999.99
+f_float_4_3 -9.999
+f_double_u 0
+f_float_u 0
+f_double_15_1_u 0.0
+f_float_3_1_u 0.0
+set @value= 1e+1111111111;
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+Warnings:
+Warning 1264 Data truncated, out of range for column 'f_float' at row 1
+Warning 1264 Data truncated, out of range for column 'f_double_7_2' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_4_3' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_double_15_1_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_3_1_u' at row 1
+select * from t1 where number =last_insert_id();
+number 6
+original_value 1.7976931348623e+308
+f_double 1.79769313486232e+308
+f_float 3.40282e+38
+f_double_7_2 99999.99
+f_float_4_3 9.999
+f_double_u 1.79769313486232e+308
+f_float_u 3.40282e+38
+f_double_15_1_u 99999999999999.9
+f_float_3_1_u 99.9
+set @value= -1e+1111111111;
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+Warnings:
+Warning 1264 Data truncated, out of range for column 'f_float' at row 1
+Warning 1264 Data truncated, out of range for column 'f_double_7_2' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_4_3' at row 1
+Warning 1264 Data truncated, out of range for column 'f_double_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_double_15_1_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_3_1_u' at row 1
+select * from t1 where number =last_insert_id();
+number 7
+original_value -1.7976931348623e+308
+f_double -1.79769313486232e+308
+f_float -3.40282e+38
+f_double_7_2 -99999.99
+f_float_4_3 -9.999
+f_double_u 0
+f_float_u 0
+f_double_15_1_u 0.0
+f_float_3_1_u 0.0
+set @value= 1e+111;
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+Warnings:
+Warning 1264 Data truncated, out of range for column 'f_float' at row 1
+Warning 1264 Data truncated, out of range for column 'f_double_7_2' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_4_3' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_double_15_1_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_3_1_u' at row 1
+select * from t1 where number =last_insert_id();
+number 8
+original_value 1e+111
+f_double 1e+111
+f_float 3.40282e+38
+f_double_7_2 99999.99
+f_float_4_3 9.999
+f_double_u 1e+111
+f_float_u 3.40282e+38
+f_double_15_1_u 99999999999999.9
+f_float_3_1_u 99.9
+set @value= -1e+111;
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+Warnings:
+Warning 1264 Data truncated, out of range for column 'f_float' at row 1
+Warning 1264 Data truncated, out of range for column 'f_double_7_2' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_4_3' at row 1
+Warning 1264 Data truncated, out of range for column 'f_double_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_double_15_1_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_3_1_u' at row 1
+select * from t1 where number =last_insert_id();
+number 9
+original_value -1e+111
+f_double -1e+111
+f_float -3.40282e+38
+f_double_7_2 -99999.99
+f_float_4_3 -9.999
+f_double_u 0
+f_float_u 0
+f_double_15_1_u 0.0
+f_float_3_1_u 0.0
+set @value= 1;
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+select * from t1 where number =last_insert_id();
+number 10
+original_value 1
+f_double 1
+f_float 1
+f_double_7_2 1.00
+f_float_4_3 1.000
+f_double_u 1
+f_float_u 1
+f_double_15_1_u 1.0
+f_float_3_1_u 1.0
+set @value= -1;
+insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
+Warnings:
+Warning 1264 Data truncated, out of range for column 'f_double_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_double_15_1_u' at row 1
+Warning 1264 Data truncated, out of range for column 'f_float_3_1_u' at row 1
+select * from t1 where number =last_insert_id();
+number 11
+original_value -1
+f_double -1
+f_float -1
+f_double_7_2 -1.00
+f_float_4_3 -1.000
+f_double_u 0
+f_float_u 0
+f_double_15_1_u 0.0
+f_float_3_1_u 0.0
drop table if exists t1,t2,t3;
create table t1(id1 int not null auto_increment primary key, t char(12));
create table t2(id2 int not null, t char(12));
diff --git a/mysql-test/r/insert_select.result b/mysql-test/r/insert_select.result
index 378716ecc39..eb8c389e38f 100644
--- a/mysql-test/r/insert_select.result
+++ b/mysql-test/r/insert_select.result
@@ -595,3 +595,37 @@ 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;
+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;
+Month Type Field Count
+2003-09-01 1 1 100
+2003-09-01 1 2 100
+2003-09-01 2 1 100
+2003-09-01 2 2 100
+2003-09-01 3 1 100
+Select null, Field, Count From t1 Where Month=20030901 and Type=2;
+NULL Field Count
+NULL 1 100
+NULL 2 100
+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;
+Warnings:
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'No' at row 1
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'No' at row 2
+select * from t2;
+No Field Count
+0 1 100
+0 2 100
+drop table t1, t2;
diff --git a/mysql-test/r/insert_update.result b/mysql-test/r/insert_update.result
index 3a7679ce1e3..53867bf4546 100644
--- a/mysql-test/r/insert_update.result
+++ b/mysql-test/r/insert_update.result
@@ -67,3 +67,41 @@ id select_type table type possible_keys key key_len ref rows Extra
Warnings:
Note 1003 select high_priority test.t1.a AS `a`,test.t1.b AS `b`,test.t1.c AS `c` from test.t1
DROP TABLE t1;
+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;
+a b
+1 1
+2 2
+3 3
+4 4
+5 5
+insert into t1 values(4,14),(5,15),(6,16),(7,17),(8,18)
+on duplicate key update b=b+10;
+affected rows: 7
+info: Records: 5 Duplicates: 2 Warnings: 0
+select * from t1;
+a b
+1 1
+2 2
+3 3
+4 14
+5 15
+6 16
+7 17
+8 18
+replace into t1 values(5,25),(6,26),(7,27),(8,28),(9,29);
+affected rows: 9
+info: Records: 5 Duplicates: 4 Warnings: 0
+select * from t1;
+a b
+1 1
+2 2
+3 3
+4 14
+5 25
+6 26
+7 27
+8 28
+9 29
+drop table t1;
diff --git a/mysql-test/r/join.result b/mysql-test/r/join.result
index 7dbc09f9cc0..f9e49c40dc1 100644
--- a/mysql-test/r/join.result
+++ b/mysql-test/r/join.result
@@ -277,11 +277,11 @@ CREATE TABLE t2 (ID INTEGER NOT NULL PRIMARY KEY, Value2 VARCHAR(255));
INSERT INTO t1 VALUES (1, 'A');
INSERT INTO t2 VALUES (1, 'B');
SELECT * FROM t1 NATURAL JOIN t2 WHERE 1 AND (Value1 = 'A' AND Value2 <> 'B');
-ID Value1 ID Value2
+ID Value1 Value2
SELECT * FROM t1 NATURAL JOIN t2 WHERE 1 AND Value1 = 'A' AND Value2 <> 'B';
-ID Value1 ID Value2
+ID Value1 Value2
SELECT * FROM t1 NATURAL JOIN t2 WHERE (Value1 = 'A' AND Value2 <> 'B') AND 1;
-ID Value1 ID Value2
+ID Value1 Value2
drop table t1,t2;
create table t1 (i int);
create table t2 (i int);
diff --git a/mysql-test/r/join_outer.result b/mysql-test/r/join_outer.result
index c40f86827f8..9d7c3d98952 100644
--- a/mysql-test/r/join_outer.result
+++ b/mysql-test/r/join_outer.result
@@ -124,8 +124,8 @@ grp a c id a c d
3 5 C 3 5 B 5
3 6 D 3 6 C 6
select t1.*,t2.* from t1 natural join t2;
-grp a c id a c d
-1 1 a 1 1 a 1
+grp a c id d
+1 1 a 1 1
drop table t1,t2;
CREATE TABLE t1 (
usr_id INT unsigned NOT NULL,
@@ -467,10 +467,10 @@ count color
15 white
7 green
select * from t2 natural join t1;
-count color color name
-10 green green lime
-7 green green lime
-5 black black grape
+count color name
+10 green lime
+7 green lime
+5 black grape
select t2.count, t1.name from t2 natural join t1;
count name
10 lime
diff --git a/mysql-test/r/key.result b/mysql-test/r/key.result
index d8e10fd20c7..115f15bacb6 100644
--- a/mysql-test/r/key.result
+++ b/mysql-test/r/key.result
@@ -34,10 +34,10 @@ INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','N','N','N','N');
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','N','N','N','N');
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','','','','');
Warnings:
-Warning 1264 Data truncated for column 'transityes' at row 1
-Warning 1264 Data truncated for column 'shopsyes' at row 1
-Warning 1264 Data truncated for column 'schoolsyes' at row 1
-Warning 1264 Data truncated for column 'petsyes' at row 1
+Warning 1265 Data truncated for column 'transityes' at row 1
+Warning 1265 Data truncated for column 'shopsyes' at row 1
+Warning 1265 Data truncated for column 'schoolsyes' at row 1
+Warning 1265 Data truncated for column 'petsyes' at row 1
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y');
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y');
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y');
@@ -156,8 +156,8 @@ CREATE TABLE t1 (c CHAR(10) NOT NULL,i INT NOT NULL AUTO_INCREMENT,
UNIQUE (c,i));
INSERT INTO t1 (c) VALUES (NULL),(NULL);
Warnings:
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'c' at row 1
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'c' at row 2
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'c' at row 1
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'c' at row 2
SELECT * FROM t1;
c i
1
@@ -185,3 +185,24 @@ NULL 2
a 1
a 2
drop table t1;
+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));
+Warnings:
+Warning 1265 Data truncated for column 'a' at row 1
+insert t1 values (2, repeat(0xD0B1,215), repeat(0xD0B1, 310));
+Warnings:
+Warning 1265 Data truncated for column 'a' at row 1
+select i, length(a), length(b), char_length(a), char_length(b) from t1;
+i length(a) length(b) char_length(a) char_length(b)
+1 200 310 200 310
+2 400 620 200 310
+select i from t1 where a=repeat(_utf8 'a',200);
+i
+1
+select i from t1 where a=repeat(_utf8 0xD0B1,200);
+i
+2
+select i from t1 where b=repeat(_utf8 'b',310);
+i
+1
+drop table t1;
diff --git a/mysql-test/r/loaddata.result b/mysql-test/r/loaddata.result
index 0547596dfbd..5718397e1ec 100644
--- a/mysql-test/r/loaddata.result
+++ b/mysql-test/r/loaddata.result
@@ -2,12 +2,12 @@ drop table if exists t1;
create table t1 (a date, b date, c date not null, d date);
load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',';
Warnings:
-Warning 1264 Data truncated for column 'a' at row 1
-Warning 1264 Data truncated for column 'c' at row 1
-Warning 1264 Data truncated for column 'd' at row 1
-Warning 1264 Data truncated for column 'a' at row 2
-Warning 1264 Data truncated for column 'b' at row 2
-Warning 1264 Data truncated for column 'd' at row 2
+Warning 1265 Data truncated for column 'a' at row 1
+Warning 1265 Data truncated for column 'c' at row 1
+Warning 1265 Data truncated for column 'd' at row 1
+Warning 1265 Data truncated for column 'a' at row 2
+Warning 1265 Data truncated for column 'b' at row 2
+Warning 1265 Data truncated for column 'd' at row 2
load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' IGNORE 2 LINES;
SELECT * from t1;
a b c d
@@ -18,10 +18,10 @@ a b c d
truncate table t1;
load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d);
Warnings:
-Warning 1264 Data truncated for column 'c' at row 1
-Warning 1264 Data truncated for column 'd' at row 1
-Warning 1264 Data truncated for column 'b' at row 2
-Warning 1264 Data truncated for column 'd' at row 2
+Warning 1265 Data truncated for column 'c' at row 1
+Warning 1265 Data truncated for column 'd' at row 1
+Warning 1265 Data truncated for column 'b' at row 2
+Warning 1265 Data truncated for column 'd' at row 2
SELECT * from t1;
a b c d
NULL NULL 0000-00-00 0000-00-00
@@ -31,7 +31,7 @@ drop table t1;
create table t1 (a text, b text);
load data infile '../../std_data/loaddata2.dat' into table t1 fields terminated by ',' enclosed by '''';
Warnings:
-Warning 1260 Row 3 doesn't contain data for all columns
+Warning 1261 Row 3 doesn't contain data for all columns
select concat('|',a,'|'), concat('|',b,'|') from t1;
concat('|',a,'|') concat('|',b,'|')
|Field A| |Field B|
@@ -43,10 +43,10 @@ drop table t1;
create table t1 (a int, b char(10));
load data infile '../../std_data/loaddata3.dat' into table t1 fields terminated by '' enclosed by '' ignore 1 lines;
Warnings:
-Warning 1264 Data truncated for column 'a' at row 3
-Warning 1261 Row 3 was truncated; It contained more data than there where input columns
-Warning 1264 Data truncated for column 'a' at row 5
-Warning 1261 Row 5 was truncated; It contained more data than there where input columns
+Warning 1265 Data truncated for column 'a' at row 3
+Warning 1262 Row 3 was truncated; It contained more data than there were input columns
+Warning 1265 Data truncated for column 'a' at row 5
+Warning 1262 Row 5 was truncated; It contained more data than there were input columns
select * from t1;
a b
1 row 1
@@ -57,8 +57,8 @@ a b
truncate table t1;
load data infile '../../std_data/loaddata4.dat' into table t1 fields terminated by '' enclosed by '' lines terminated by '' ignore 1 lines;
Warnings:
-Warning 1264 Data truncated for column 'a' at row 4
-Warning 1260 Row 4 doesn't contain data for all columns
+Warning 1265 Data truncated for column 'a' at row 4
+Warning 1261 Row 4 doesn't contain data for all columns
select * from t1;
a b
1 row 1
diff --git a/mysql-test/r/lock.result b/mysql-test/r/lock.result
index 2cb9527b94b..429bc5ed352 100644
--- a/mysql-test/r/lock.result
+++ b/mysql-test/r/lock.result
@@ -41,5 +41,9 @@ lock tables t1 write;
check table t2;
Table Op Msg_type Msg_text
test.t2 check error Table 't2' was not locked with LOCK TABLES
+insert into t1 select nr from t1;
+ERROR HY000: Table 't1' was not locked with LOCK TABLES
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/r/lowercase0.require b/mysql-test/r/lowercase0.require
new file mode 100644
index 00000000000..a63906557f8
--- /dev/null
+++ b/mysql-test/r/lowercase0.require
@@ -0,0 +1,3 @@
+Variable_name Value
+lower_case_file_system ON
+lower_case_table_names 0
diff --git a/mysql-test/r/lowercase2.require b/mysql-test/r/lowercase2.require
new file mode 100644
index 00000000000..522eac63e81
--- /dev/null
+++ b/mysql-test/r/lowercase2.require
@@ -0,0 +1,2 @@
+Variable_name Value
+lower_case_table_names 2
diff --git a/mysql-test/r/lowercase_table.result b/mysql-test/r/lowercase_table.result
index 0ba4a4be945..8bf3db8cad0 100644
--- a/mysql-test/r/lowercase_table.result
+++ b/mysql-test/r/lowercase_table.result
@@ -1,4 +1,4 @@
-drop table if exists t1,t2,t3,t4,T1;
+drop table if exists t1,t2,t3,t4;
create table T1 (id int primary key, Word varchar(40) not null, Index(Word));
create table t4 (id int primary key, Word varchar(40) not null);
INSERT INTO T1 VALUES (1, 'a'), (2, 'b'), (3, 'c');
@@ -42,3 +42,19 @@ select count(bags.a) from t1 as Bags;
count(bags.a)
0
drop table t1;
+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;
+create table t1 (a int);
+create table t2 (a int);
+select * from t1 c, t2 C;
+ERROR 42000: Not unique table/alias: 'C'
+select C.a, c.a from t1 c, t2 C;
+ERROR 42000: Not unique table/alias: 'C'
+drop table t1, t2;
+show tables;
+Tables_in_test
diff --git a/mysql-test/r/lowercase_table2.result b/mysql-test/r/lowercase_table2.result
new file mode 100644
index 00000000000..c29d52ffffc
--- /dev/null
+++ b/mysql-test/r/lowercase_table2.result
@@ -0,0 +1,123 @@
+DROP TABLE IF EXISTS t1,t2,T1,T2,t3,T3;
+DROP DATABASE IF EXISTS `TEST_$1`;
+DROP DATABASE IF EXISTS `test_$1`;
+CREATE TABLE T1 (a int);
+INSERT INTO T1 VALUES (1);
+SHOW TABLES LIKE "T1";
+Tables_in_test (T1)
+T1
+SHOW TABLES LIKE "t1";
+Tables_in_test (t1)
+T1
+SHOW CREATE TABLE T1;
+Table Create Table
+T1 CREATE TABLE `T1` (
+ `a` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+RENAME TABLE T1 TO T2;
+SHOW TABLES LIKE "T2";
+Tables_in_test (T2)
+T2
+SELECT * FROM t2;
+a
+1
+RENAME TABLE T2 TO t3;
+SHOW TABLES LIKE "T3";
+Tables_in_test (T3)
+t3
+RENAME TABLE T3 TO T1;
+SHOW TABLES LIKE "T1";
+Tables_in_test (T1)
+T1
+ALTER TABLE T1 add b int;
+SHOW TABLES LIKE "T1";
+Tables_in_test (T1)
+t1
+ALTER TABLE T1 RENAME T2;
+SHOW TABLES LIKE "T2";
+Tables_in_test (T2)
+T2
+LOCK TABLE T2 WRITE;
+ALTER TABLE T2 drop b;
+SHOW TABLES LIKE "T2";
+Tables_in_test (T2)
+t2
+UNLOCK TABLES;
+RENAME TABLE T2 TO T1;
+SHOW TABLES LIKE "T1";
+Tables_in_test (T1)
+T1
+SELECT * from T1;
+a
+1
+DROP TABLE T1;
+CREATE DATABASE `TEST_$1`;
+SHOW DATABASES LIKE "TEST%";
+Database (TEST%)
+TEST_$1
+DROP DATABASE `test_$1`;
+CREATE TABLE T1 (a int) engine=innodb;
+INSERT INTO T1 VALUES (1);
+SHOW TABLES LIKE "T1";
+Tables_in_test (T1)
+T1
+SHOW TABLES LIKE "t1";
+Tables_in_test (t1)
+T1
+SHOW CREATE TABLE T1;
+Table Create Table
+T1 CREATE TABLE `T1` (
+ `a` int(11) default NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin
+RENAME TABLE T1 TO T2;
+SHOW TABLES LIKE "T2";
+Tables_in_test (T2)
+t2
+SELECT * FROM t2;
+a
+1
+RENAME TABLE T2 TO t3;
+SHOW TABLES LIKE "T3";
+Tables_in_test (T3)
+t3
+RENAME TABLE T3 TO T1;
+SHOW TABLES LIKE "T1";
+Tables_in_test (T1)
+t1
+ALTER TABLE T1 add b int;
+SHOW TABLES LIKE "T1";
+Tables_in_test (T1)
+t1
+ALTER TABLE T1 RENAME T2;
+SHOW TABLES LIKE "T2";
+Tables_in_test (T2)
+t2
+LOCK TABLE T2 WRITE;
+ALTER TABLE T2 drop b;
+SHOW TABLES LIKE "T2";
+Tables_in_test (T2)
+t2
+UNLOCK TABLES;
+RENAME TABLE T2 TO T1;
+SHOW TABLES LIKE "T1";
+Tables_in_test (T1)
+t1
+SELECT * from T1;
+a
+1
+DROP TABLE T1;
+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;
+LOCATION
+Mic-5
+Mic-6
+SELECT LOCATION FROM T1 WHERE EVENT_ID=2 UNION ALL SELECT LOCATION FROM T1 WHERE EVENT_ID=3;
+LOCATION
+Mic-5
+Mic-6
+SELECT LOCATION FROM T1 WHERE EVENT_ID=2 UNION ALL SELECT LOCATION FROM T1 WHERE EVENT_ID=3;
+LOCATION
+Mic-5
+Mic-6
+drop table T1;
diff --git a/mysql-test/r/lowercase_table3.result b/mysql-test/r/lowercase_table3.result
new file mode 100644
index 00000000000..362d17e0461
--- /dev/null
+++ b/mysql-test/r/lowercase_table3.result
@@ -0,0 +1,10 @@
+DROP TABLE IF EXISTS t1,T1;
+CREATE TABLE t1 (a int);
+SELECT * from T1;
+a
+drop table t1;
+flush tables;
+CREATE TABLE t1 (a int) type=INNODB;
+SELECT * from T1;
+Can't open file: 'T1.InnoDB'. (errno: 1)
+drop table t1;
diff --git a/mysql-test/r/lowercase_table_qcache.result b/mysql-test/r/lowercase_table_qcache.result
new file mode 100644
index 00000000000..f8d34e0f592
--- /dev/null
+++ b/mysql-test/r/lowercase_table_qcache.result
@@ -0,0 +1,24 @@
+set GLOBAL query_cache_size=1355776;
+drop database if exists MySQLtesT;
+create database MySQLtesT;
+create table MySQLtesT.t1 (a int);
+select * from MySQLtesT.t1;
+a
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 1
+drop database mysqltest;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+use MySQL;
+select * from db;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+use test;
+select * from MySQL.db;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+set GLOBAL query_cache_size=0;
diff --git a/mysql-test/r/metadata.result b/mysql-test/r/metadata.result
new file mode 100644
index 00000000000..80a01a0ca90
--- /dev/null
+++ b/mysql-test/r/metadata.result
@@ -0,0 +1,62 @@
+drop table if exists t1,t2;
+select 1, 1.0, -1, "hello", NULL;
+Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
+def 1 8 1 1 N 32769 0 8
+def 1.0 5 3 3 N 32769 1 8
+def -1 8 1 2 N 32769 0 8
+def hello 254 5 5 N 1 31 8
+def NULL 6 0 0 Y 32768 0 8
+1 1.0 -1 hello NULL
+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;
+Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 t1 a a 1 4 0 Y 32768 0 63
+def test t1 t1 b b 2 6 0 Y 32768 0 63
+def test t1 t1 c c 9 9 0 Y 32768 0 63
+def test t1 t1 d d 3 11 0 Y 32768 0 63
+def test t1 t1 e e 8 20 0 Y 32768 0 63
+def test t1 t1 f f 4 3 0 Y 32768 2 63
+def test t1 t1 g g 5 4 0 Y 32768 3 63
+def test t1 t1 h h 0 7 0 Y 32768 4 63
+def test t1 t1 i i 13 4 0 Y 32864 0 63
+def test t1 t1 j j 10 10 0 Y 128 0 63
+def test t1 t1 k k 7 19 0 N 1217 0 63
+def test t1 t1 l l 12 19 0 Y 128 0 63
+def test t1 t1 m m 254 1 0 Y 256 0 8
+def test t1 t1 n n 254 3 0 Y 2048 0 8
+def test t1 t1 o o 254 10 0 Y 0 0 8
+a b c d e f g h i j k l m n o
+select a b, b c from t1 as t2;
+Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 t2 a b 1 4 0 Y 32768 0 63
+def test t1 t2 b c 2 6 0 Y 32768 0 63
+b c
+drop table t1;
+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;
+Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 t1 id id 1 3 1 Y 32768 0 63
+def test t1 t1 data data 253 255 6 Y 0 0 8
+def test t2 t2 data data 254 3 3 Y 0 0 8
+id data data
+1 male yes
+2 female no
+select t1.id, t1.data, t2.data from t1, t2 where t1.id = t2.id order by t1.id;
+Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 t1 id id 1 3 1 Y 32768 0 63
+def test t1 t1 data data 253 255 6 Y 0 0 8
+def test t2 t2 data data 254 3 3 Y 0 0 8
+id data data
+1 male yes
+2 female no
+select t1.id from t1 union select t2.id from t2;
+Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 t1 id id 1 3 1 Y 32768 0 63
+id
+1
+2
+drop table t1,t2;
diff --git a/mysql-test/r/multi_update.result b/mysql-test/r/multi_update.result
index be09044f96f..10d07e51565 100644
--- a/mysql-test/r/multi_update.result
+++ b/mysql-test/r/multi_update.result
@@ -396,6 +396,45 @@ select 't1 rows after big delete', count(*) from t1;
t1 rows after big delete count(*)
t1 rows after big delete 1900001
drop table t1,t2;
+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;
+DELETE t1 FROM t1 AS t3, t2 AS t4;
+ERROR 42000: Not unique table/alias: 't1'
+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;
+a
+1
+2
+SELECT * from t2;
+a
+2
+DELETE t2 FROM t1 AS t2, t2 AS t1 where t1.a=t2.a and t1.a=2;
+SELECT * from t1;
+a
+1
+SELECT * from t2;
+a
+2
+DROP TABLE t1,t2;
+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;
+p_id p_code p_active
+1 A01-Comp 1
+2 B01-Comp 1
+select * from t2;
+c2_id c2_p_id c2_note c2_active
+1 1 A Note 1
+drop table t1, t2;
set @ttype_save=@@storage_engine;
set @@storage_engine=innodb;
create table t1 ( c char(8) not null );
diff --git a/mysql-test/r/myisam-blob.result b/mysql-test/r/myisam-blob.result
new file mode 100644
index 00000000000..43db7c8badd
--- /dev/null
+++ b/mysql-test/r/myisam-blob.result
@@ -0,0 +1,44 @@
+drop table if exists t1;
+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;
+length(data)
+18874368
+delete from t1 where left(data,1)='a';
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+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;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+UPDATE t1 set data=repeat('c',17*1024*1024);
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+delete from t1 where left(data,1)='c';
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+INSERT INTO t1 set data=repeat('a',18*1024*1024);
+select length(data) from t1;
+length(data)
+18874368
+alter table t1 modify data blob;
+select length(data) from t1;
+length(data)
+0
+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);
+Warnings:
+Warning 1265 Data truncated for column 'data' at row 1
+select length(data) from t1;
+length(data)
+65535
+drop table t1;
diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result
index ec70cefc63f..d210048a5c7 100644
--- a/mysql-test/r/myisam.result
+++ b/mysql-test/r/myisam.result
@@ -322,11 +322,11 @@ CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
drop table t1;
-CREATE TABLE t1 (a varchar(255), b varchar(255), c varchar(255), KEY t1 (a, b, c));
-ERROR 42000: Specified key was too long. Max key length is 500
-CREATE TABLE t1 (a varchar(255), b varchar(255), c varchar(255));
-ALTER TABLE t1 ADD INDEX t1 (a, b, c);
-ERROR 42000: Specified key was too long. Max key length is 500
+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));
+ERROR 42000: Specified key was too long; max key length is 1000 bytes
+CREATE TABLE t1 (a varchar(255), b varchar(255), c varchar(255), d varchar(255), e varchar(255));
+ALTER TABLE t1 ADD INDEX t1 (a, b, c, d, e);
+ERROR 42000: Specified key was too long; max key length is 1000 bytes
DROP TABLE t1;
CREATE TABLE t1 (a int not null, b int, c int, key(b), key(c), key(a,b), key(c,a));
INSERT into t1 values (0, null, 0), (0, null, 1), (0, null, 2), (0, null,3), (1,1,4);
@@ -398,6 +398,90 @@ check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
drop table t1;
+create table t1 ( a text not null, key a (a(20)));
+insert into t1 values ('aaa '),('aaa'),('aa');
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+repair table t1;
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+select concat(a,'.') from t1 where a='aaa';
+concat(a,'.')
+aaa.
+aaa .
+select concat(a,'.') from t1 where binary a='aaa';
+concat(a,'.')
+aaa.
+update t1 set a='bbb' where a='aaa';
+select concat(a,'.') from t1;
+concat(a,'.')
+bbb.
+bbb.
+aa.
+drop table t1;
+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';
+a b c
+807780 477 165
+drop table t1;
+create table t1 (a blob);
+insert into t1 values('a '),('a');
+select concat(a,'.') from t1 where a='a';
+concat(a,'.')
+a.
+select concat(a,'.') from t1 where a='a ';
+concat(a,'.')
+a .
+alter table t1 add key(a(2));
+select concat(a,'.') from t1 where a='a';
+concat(a,'.')
+a.
+select concat(a,'.') from t1 where a='a ';
+concat(a,'.')
+a .
+drop table t1;
+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;
+concat(b,'.')
+a.
+a .
+a .
+update t1 set b='b ' where a=2;
+update t1 set b='b ' where a > 1;
+ERROR 23000: Duplicate entry 'b ' for key 2
+delete from t1 where b='b';
+select a,concat(b,'.') from t1;
+a concat(b,'.')
+1 a.
+3 a .
+drop table t1;
+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;
+a
+1
+select distinct t1.a from t1,t2 order by t2.a;
+a
+1
+select sql_big_result distinct t1.a from t1,t2;
+a
+1
+explain select sql_big_result distinct t1.a from t1,t2 order by t2.a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 system NULL NULL NULL NULL 1 Using temporary
+1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index; Distinct
+explain select distinct t1.a from t1,t2 order by t2.a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 system NULL NULL NULL NULL 1 Using temporary
+1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index; Distinct
+drop table t1,t2;
CREATE TABLE t1 (`a` int(11) NOT NULL default '0', `b` int(11) NOT NULL default '0', UNIQUE KEY `a` USING RTREE (`a`,`b`)) ENGINE=MyISAM;
ERROR 42000: This version of MySQL doesn't yet support 'RTREE INDEX'
create table t1 (a int, b varchar(200), c text not null) checksum=1;
diff --git a/mysql-test/r/mysqldump.result b/mysql-test/r/mysqldump.result
index 0e642f48f3c..b0a15d9a021 100644
--- a/mysql-test/r/mysqldump.result
+++ b/mysql-test/r/mysqldump.result
@@ -25,7 +25,7 @@ INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT, CHARACTER_SET_CLIENT=utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
-/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=NO_AUTO_VALUE_ON_ZERO */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO" */;
DROP TABLE IF EXISTS `t1`;
CREATE TABLE `t1` (
`a` decimal(240,20) default NULL
@@ -50,7 +50,7 @@ INSERT INTO t1 VALUES (-9e999999);
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT, CHARACTER_SET_CLIENT=utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
-/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=NO_AUTO_VALUE_ON_ZERO */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO" */;
DROP TABLE IF EXISTS `t1`;
CREATE TABLE `t1` (
`a` double default NULL
@@ -119,7 +119,7 @@ INSERT INTO t1 VALUES (_koi8r x'C1C2C3C4C5');
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT, CHARACTER_SET_CLIENT=utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
-/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=NO_AUTO_VALUE_ON_ZERO */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO" */;
DROP TABLE IF EXISTS `t1`;
CREATE TABLE `t1` (
`a` varchar(255) default NULL
@@ -142,7 +142,7 @@ CREATE TABLE t1 (a int) ENGINE=MYISAM;
INSERT INTO t1 VALUES (1), (2);
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
-/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=NO_AUTO_VALUE_ON_ZERO */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO,MYSQL40" */;
DROP TABLE IF EXISTS `t1`;
CREATE TABLE `t1` (
`a` int(11) default NULL
@@ -161,7 +161,7 @@ UNLOCK TABLES;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
-/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=NO_AUTO_VALUE_ON_ZERO */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO,MYSQL323" */;
DROP TABLE IF EXISTS `t1`;
CREATE TABLE `t1` (
`a` int(11) default NULL
@@ -184,7 +184,7 @@ create table ```a` (i int);
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT, CHARACTER_SET_CLIENT=utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
-/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=NO_AUTO_VALUE_ON_ZERO */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO" */;
DROP TABLE IF EXISTS ```a`;
CREATE TABLE ```a` (
`i` int(11) default NULL
@@ -202,3 +202,103 @@ UNLOCK TABLES;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
drop table ```a`;
+create table t1(a int);
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT, CHARACTER_SET_CLIENT=utf8 */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO" */;
+DROP TABLE IF EXISTS `t1`;
+CREATE TABLE `t1` (
+ `a` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+LOCK TABLES `t1` WRITE;
+UNLOCK TABLES;
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO,ANSI" */;
+DROP TABLE IF EXISTS "t1";
+CREATE TABLE "t1" (
+ "a" int(11) default NULL
+);
+
+
+/*!40000 ALTER TABLE "t1" DISABLE KEYS */;
+LOCK TABLES "t1" WRITE;
+UNLOCK TABLES;
+/*!40000 ALTER TABLE "t1" ENABLE KEYS */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+
+set global sql_mode='ANSI_QUOTES';
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT, CHARACTER_SET_CLIENT=utf8 */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO" */;
+DROP TABLE IF EXISTS `t1`;
+CREATE TABLE `t1` (
+ `a` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+LOCK TABLES `t1` WRITE;
+UNLOCK TABLES;
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO,ANSI" */;
+DROP TABLE IF EXISTS "t1";
+CREATE TABLE "t1" (
+ "a" int(11) default NULL
+);
+
+
+/*!40000 ALTER TABLE "t1" DISABLE KEYS */;
+LOCK TABLES "t1" WRITE;
+UNLOCK TABLES;
+/*!40000 ALTER TABLE "t1" ENABLE KEYS */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+
+set global sql_mode='';
+drop table t1;
+create table t1(a int);
+insert into t1 values (1),(2),(3);
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT, CHARACTER_SET_CLIENT=utf8 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="" */;
+DROP TABLE IF EXISTS `t1`;
+CREATE TABLE `t1` (
+ `a` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+
+1
+2
+3
+drop table t1;
diff --git a/mysql-test/r/negation_elimination.result b/mysql-test/r/negation_elimination.result
index 8ca8ae2f12e..a3a2bad7ec6 100644
--- a/mysql-test/r/negation_elimination.result
+++ b/mysql-test/r/negation_elimination.result
@@ -243,10 +243,6 @@ a
3
4
5
-6
-7
-8
-9
10
11
12
diff --git a/mysql-test/r/null.result b/mysql-test/r/null.result
index aa56bce6453..cbd949d6e72 100644
--- a/mysql-test/r/null.result
+++ b/mysql-test/r/null.result
@@ -91,45 +91,45 @@ drop table t1;
CREATE TABLE t1 (a varchar(16) NOT NULL, b smallint(6) NOT NULL, c datetime NOT NULL, d smallint(6) NOT NULL);
INSERT INTO t1 SET a = "", d= "2003-01-14 03:54:55";
Warnings:
-Warning 1264 Data truncated for column 'd' at row 1
+Warning 1265 Data truncated for column 'd' at row 1
UPDATE t1 SET d=1/NULL;
Warnings:
-Warning 1264 Data truncated for column 'd' at row 1
+Warning 1265 Data truncated for column 'd' at row 1
UPDATE t1 SET d=NULL;
Warnings:
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'd' at row 1
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'd' at row 1
INSERT INTO t1 (a) values (null);
ERROR 23000: Column 'a' cannot be null
INSERT INTO t1 (a) values (1/null);
ERROR 23000: Column 'a' cannot be null
INSERT INTO t1 (a) values (null),(null);
Warnings:
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'a' at row 1
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'a' at row 2
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'a' at row 1
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'a' at row 2
INSERT INTO t1 (b) values (null);
ERROR 23000: Column 'b' cannot be null
INSERT INTO t1 (b) values (1/null);
ERROR 23000: Column 'b' cannot be null
INSERT INTO t1 (b) values (null),(null);
Warnings:
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'b' at row 1
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'b' at row 2
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'b' at row 1
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'b' at row 2
INSERT INTO t1 (c) values (null);
ERROR 23000: Column 'c' cannot be null
INSERT INTO t1 (c) values (1/null);
ERROR 23000: Column 'c' cannot be null
INSERT INTO t1 (c) values (null),(null);
Warnings:
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'c' at row 1
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'c' at row 2
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'c' at row 1
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'c' at row 2
INSERT INTO t1 (d) values (null);
ERROR 23000: Column 'd' cannot be null
INSERT INTO t1 (d) values (1/null);
ERROR 23000: Column 'd' cannot be null
INSERT INTO t1 (d) values (null),(null);
Warnings:
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'd' at row 1
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'd' at row 2
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'd' at row 1
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'd' at row 2
select * from t1;
a b c d
0 0000-00-00 00:00:00 0
diff --git a/mysql-test/r/null_key.result b/mysql-test/r/null_key.result
index 385108216bf..4dfd17991cc 100644
--- a/mysql-test/r/null_key.result
+++ b/mysql-test/r/null_key.result
@@ -337,7 +337,7 @@ index (id2)
);
insert into t1 values(null,null),(1,1);
Warnings:
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'id2' at row 1
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'id2' at row 1
select * from t1;
id id2
NULL 0
diff --git a/mysql-test/r/order_by.result b/mysql-test/r/order_by.result
index c1053087603..1a10c9c6ce9 100644
--- a/mysql-test/r/order_by.result
+++ b/mysql-test/r/order_by.result
@@ -333,10 +333,10 @@ a b c
1 NULL NULL
alter table t1 modify b int not null, modify c varchar(10) not null;
Warnings:
-Warning 1264 Data truncated for column 'b' at row 1
-Warning 1264 Data truncated for column 'c' at row 1
-Warning 1264 Data truncated for column 'b' at row 2
-Warning 1264 Data truncated for column 'c' at row 3
+Warning 1265 Data truncated for column 'b' at row 1
+Warning 1265 Data truncated for column 'c' at row 1
+Warning 1265 Data truncated for column 'b' at row 2
+Warning 1265 Data truncated for column 'c' at row 3
explain select * from t1 order by a, b, c;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index NULL a 18 NULL 11 Using index
@@ -546,6 +546,14 @@ a b
1 2
5 NULL
DROP TABLE t1;
+create table t1(id int not null auto_increment primary key, t char(12));
+explain select id,t from t1 order by id;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 Using filesort
+explain select id,t from t1 force index (primary) order by id;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL PRIMARY 4 NULL 1000
+drop table t1;
CREATE TABLE t1 (
FieldKey varchar(36) NOT NULL default '',
LongVal bigint(20) default NULL,
@@ -611,3 +619,35 @@ a b
5 2
6 2
drop table t1;
+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;
+Table Op Msg_type Msg_text
+test.t1 optimize status OK
+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;
+a b c d
+1 1 2 0
+1 1 12 -1
+1 1 52 -5
+1 1 92 -9
+select * from t1 where a=1 and b in (1);
+a b c d
+1 1 92 -9
+1 1 52 -5
+1 1 12 -1
+1 1 2 0
+drop table t1, t2;
diff --git a/mysql-test/r/query_cache.result b/mysql-test/r/query_cache.result
index c1d73f20e34..947a8ad25e1 100644
--- a/mysql-test/r/query_cache.result
+++ b/mysql-test/r/query_cache.result
@@ -292,7 +292,7 @@ DATABASE()
select ENCRYPT("test") from t1;
ENCRYPT("test")
select LAST_INSERT_ID() from t1;
-last_insert_id()
+LAST_INSERT_ID()
select RAND() from t1;
RAND()
select UNIX_TIMESTAMP() from t1;
@@ -593,7 +593,7 @@ select * from t1;
a
set GLOBAL query_cache_size=1024;
Warnings:
-Warning 1281 Query cache failed to set size 1024, new query cache size is 0
+Warning 1282 Query cache failed to set size 1024, new query cache size is 0
show global variables like "query_cache_size";
Variable_name Value
query_cache_size 0
@@ -601,7 +601,7 @@ select * from t1;
a
set GLOBAL query_cache_size=10240;
Warnings:
-Warning 1281 Query cache failed to set size 10240, new query cache size is 0
+Warning 1282 Query cache failed to set size 10240, new query cache size is 0
show global variables like "query_cache_size";
Variable_name Value
query_cache_size 0
@@ -609,7 +609,7 @@ select * from t1;
a
set GLOBAL query_cache_size=20480;
Warnings:
-Warning 1281 Query cache failed to set size 20480, new query cache size is 0
+Warning 1282 Query cache failed to set size 20480, new query cache size is 0
show global variables like "query_cache_size";
Variable_name Value
query_cache_size 0
@@ -617,7 +617,7 @@ select * from t1;
a
set GLOBAL query_cache_size=40960;
Warnings:
-Warning 1281 Query cache failed to set size 40960, new query cache size is 0
+Warning 1282 Query cache failed to set size 40960, new query cache size is 0
show global variables like "query_cache_size";
Variable_name Value
query_cache_size 0
@@ -774,6 +774,23 @@ select * from t3;
delete from t4 where a=1;
flush query cache;
drop table t1,t2,t3,t4;
+set query_cache_wlock_invalidate=1;
+create table t1 (a int not null);
+create table t2 (a int not null);
+select * from t1;
+a
+select * from t2;
+a
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 2
+lock table t1 write, t2 read;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 1
+unlock table;
+drop table t1,t2;
+set query_cache_wlock_invalidate=default;
SET NAMES koi8r;
CREATE TABLE t1 (a char(1) character set koi8r);
INSERT INTO t1 VALUES (_koi8r'á'),(_koi8r'Á');
@@ -829,6 +846,11 @@ SELECT * FROM test.t1;
a
USE test;
DROP TABLE t1;
+set character_set_results=null;
+select @@character_set_results;
+@@character_set_results
+NULL
+set character_set_results=default;
create table t1 (a int);
show status like "Qcache_queries_in_cache";
Variable_name Value
diff --git a/mysql-test/r/raid.result b/mysql-test/r/raid.result
index 6e16757a43d..690ef24d809 100644
--- a/mysql-test/r/raid.result
+++ b/mysql-test/r/raid.result
@@ -2,6 +2,7 @@ DROP TABLE IF EXISTS t1,t2;
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 (
id int unsigned not null auto_increment primary key,
diff --git a/mysql-test/r/range.result b/mysql-test/r/range.result
index 5e61b1c58c3..d1a5dd00370 100644
--- a/mysql-test/r/range.result
+++ b/mysql-test/r/range.result
@@ -150,7 +150,7 @@ believe in myself
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 '',
@@ -289,6 +289,20 @@ SELECT COUNT(*) FROM t1 WHERE (c=0 and b=1) or (c=0 and a=1);
COUNT(*)
6
DROP TABLE t1;
+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)
+);
+a b
+15 1
+47 1
+DROP TABLE t1;
create table t1 (id int(10) primary key);
insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9);
select id from t1 where id in (2,5,9) ;
diff --git a/mysql-test/r/rename.result b/mysql-test/r/rename.result
index e422fbe49c1..9bcf1bc7f97 100644
--- a/mysql-test/r/rename.result
+++ b/mysql-test/r/rename.result
@@ -39,3 +39,17 @@ select * from t3;
drop table if exists t1,t2,t3,t4;
Warnings:
Note 1051 Unknown table 't4'
+CREATE TABLE t1 (a int);
+CREATE TABLE t3 (a int);
+FLUSH TABLES WITH READ LOCK;
+ RENAME TABLE t1 TO t2, t3 to t4;
+show tables;
+Tables_in_test
+t1
+t3
+UNLOCK TABLES;
+show tables;
+Tables_in_test
+t2
+t4
+drop table t2, t4;
diff --git a/mysql-test/r/repair_part1.result b/mysql-test/r/repair_part1.result
index e0030327743..6dcec409ea6 100644
--- a/mysql-test/r/repair_part1.result
+++ b/mysql-test/r/repair_part1.result
@@ -9,6 +9,21 @@ repair table t1 use_frm;
Table Op Msg_type Msg_text
test.t1 repair error The storage engine for the table doesn't support repair
drop table t1;
+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;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+t1 0 PRIMARY 1 id A 1 NULL NULL BTREE
+t1 1 st_key 1 st A NULL NULL NULL YES BTREE disabled
+repair table t1 extended;
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+show keys from t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+t1 0 PRIMARY 1 id A 1 NULL NULL BTREE
+t1 1 st_key 1 st A NULL NULL NULL YES BTREE disabled
+drop table t1;
repair table t1 use_frm;
Table Op Msg_type Msg_text
test.t1 repair error Table 'test.t1' doesn't exist
diff --git a/mysql-test/r/rpl000002.result b/mysql-test/r/rpl000002.result
index 56e34b4874f..e5e661795fe 100644
--- a/mysql-test/r/rpl000002.result
+++ b/mysql-test/r/rpl000002.result
@@ -23,8 +23,24 @@ insert into t2 set created=now();
select * from t2;
id created
1 1970-01-01 06:25:45
+create table t3 like t2;
+create temporary table t4 like t2;
+create table t5 select * from t4;
start slave;
select * from t2;
id created
1 1970-01-01 06:25:45
-drop table t2;
+show create table t3;
+Table Create Table
+t3 CREATE TABLE `t3` (
+ `id` int(11) NOT NULL auto_increment,
+ `created` datetime default NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+show create table t5;
+Table Create Table
+t5 CREATE TABLE `t5` (
+ `id` int(11) NOT NULL default '0',
+ `created` datetime default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t2,t3,t5;
diff --git a/mysql-test/r/rpl000009.result b/mysql-test/r/rpl000009.result
index 1f78a505280..bb82dcb1e6a 100644
--- a/mysql-test/r/rpl000009.result
+++ b/mysql-test/r/rpl000009.result
@@ -112,6 +112,18 @@ n s
2 two test
3 three test
4 four test
+stop slave;
+reset slave;
+load data from master;
+start slave;
+insert into mysqltest.t1 values (5, 'five bar');
+select * from mysqltest.t1;
+n s
+1 one test
+2 two test
+3 three test
+4 four test
+5 five bar
load table mysqltest.t1 from master;
ERROR 42S01: Table 't1' already exists
drop table mysqltest.t1;
diff --git a/mysql-test/r/rpl_error_ignored_table.result b/mysql-test/r/rpl_error_ignored_table.result
index f5a535ea2ac..4a562dbfc70 100644
--- a/mysql-test/r/rpl_error_ignored_table.result
+++ b/mysql-test/r/rpl_error_ignored_table.result
@@ -9,7 +9,31 @@ insert into t1 values (1),(1);
ERROR 23000: Duplicate entry '1' for key 1
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 273 # # master-bin.000001 Yes Yes test.t1 0 0 273 # None 0 No #
+# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 213 slave-relay-bin.000002 257 master-bin.000001 Yes Yes test.t3,test.t1,test.t2 0 0 213 257 None 0 No #
show tables like 't1';
Tables_in_test (t1)
drop table t1;
+select get_lock('crash_lock%20C', 10);
+get_lock('crash_lock%20C', 10)
+1
+create table t2 (a int primary key);
+insert into t2 values(1);
+create table t3 (id int);
+insert into t3 values(connection_id());
+ update t2 set a = a + 1 + get_lock('crash_lock%20C', 10);
+select (@id := id) - id from t3;
+(@id := id) - id
+0
+kill @id;
+drop table t2,t3;
+show binlog events from 79;
+Log_name Pos Event_type Server_id Orig_log_pos Info
+master-bin.000001 79 Query 1 79 use `test`; create table t1 (a int primary key)
+master-bin.000001 149 Query 1 149 use `test`; insert into t1 values (1),(1)
+master-bin.000001 213 Query 1 213 use `test`; drop table t1
+master-bin.000001 261 Query 1 261 use `test`; create table t2 (a int primary key)
+master-bin.000001 331 Query 1 331 use `test`; insert into t2 values(1)
+master-bin.000001 390 Query 1 390 use `test`; create table t3 (id int)
+master-bin.000001 449 Query 1 449 use `test`; insert into t3 values(connection_id())
+master-bin.000001 522 Query 1 522 use `test`; update t2 set a = a + 1 + get_lock('crash_lock%20C', 10)
+master-bin.000001 613 Query 1 613 use `test`; drop table t2,t3
diff --git a/mysql-test/r/rpl_heap.result b/mysql-test/r/rpl_heap.result
new file mode 100644
index 00000000000..1556bcd5f25
--- /dev/null
+++ b/mysql-test/r/rpl_heap.result
@@ -0,0 +1,29 @@
+reset master;
+drop table if exists t1;
+create table t1 (a int) type=HEAP;
+insert into t1 values(10);
+show binlog events from 79;
+Log_name Pos Event_type Server_id Orig_log_pos Info
+master-bin.001 79 Query 1 79 use `test`; create table t1 (a int) type=HEAP
+master-bin.001 147 Query 1 147 use `test`; DELETE FROM `test`.`t1`
+master-bin.001 205 Query 1 205 use `test`; insert into t1 values(10)
+reset slave;
+start slave;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) default NULL
+) TYPE=HEAP
+select * from t1;
+a
+10
+select * from t1;
+a
+select * from t1 limit 10;
+a
+show binlog events in 'master-bin.002' from 79;
+Log_name Pos Event_type Server_id Orig_log_pos Info
+master-bin.002 79 Query 1 79 use `test`; DELETE FROM `test`.`t1`
+select * from t1;
+a
+drop table t1;
diff --git a/mysql-test/r/rpl_insert_id.result b/mysql-test/r/rpl_insert_id.result
index 6e331abf102..8001cb59a35 100644
--- a/mysql-test/r/rpl_insert_id.result
+++ b/mysql-test/r/rpl_insert_id.result
@@ -38,8 +38,8 @@ select * from t2;
b c
5 0
6 11
-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/r/rpl_multi_delete.result b/mysql-test/r/rpl_multi_delete.result
new file mode 100644
index 00000000000..e94a4e7947e
--- /dev/null
+++ b/mysql-test/r/rpl_multi_delete.result
@@ -0,0 +1,22 @@
+stop slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+reset master;
+reset slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+start slave;
+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;
+select * from t1;
+a
+select * from t2;
+a
+1
+select * from t1;
+a
+select * from t2;
+a
+1
+drop table t1,t2;
diff --git a/mysql-test/r/rpl_optimize.result b/mysql-test/r/rpl_optimize.result
new file mode 100644
index 00000000000..79891169fbc
--- /dev/null
+++ b/mysql-test/r/rpl_optimize.result
@@ -0,0 +1,27 @@
+stop slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+reset master;
+reset slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+start slave;
+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;
+update t1 set b=(a/2*rand());
+delete from t1 order by b limit 10000;
+optimize table t1;
+Table Op Msg_type Msg_text
+test.t1 optimize status OK
+drop table t1;
diff --git a/mysql-test/r/rpl_relayrotate.result b/mysql-test/r/rpl_relayrotate.result
index bd6e10409b9..42902e122b1 100644
--- a/mysql-test/r/rpl_relayrotate.result
+++ b/mysql-test/r/rpl_relayrotate.result
@@ -16,6 +16,21 @@ master_pos_wait('master-bin.001',3000)>=0
select max(a) from t1;
max(a)
8000
+show status like "binlog_cache_use";
+Variable_name Value
+Binlog_cache_use 1
+show status like "binlog_cache_disk_use";
+Variable_name Value
+Binlog_cache_disk_use 1
+begin;
+delete from t1;
+commit;
+show status like "binlog_cache_use";
+Variable_name Value
+Binlog_cache_use 2
+show status like "binlog_cache_disk_use";
+Variable_name Value
+Binlog_cache_disk_use 1
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 687207 # # master-bin.000001 Yes Yes 0 0 687207 # None 0 No #
diff --git a/mysql-test/r/rpl_temporary.result b/mysql-test/r/rpl_temporary.result
index 0c270958d8f..9826d4ff1c4 100644
--- a/mysql-test/r/rpl_temporary.result
+++ b/mysql-test/r/rpl_temporary.result
@@ -5,8 +5,21 @@ reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
reset master;
-SET @@session.pseudo_thread_id=100;
+SET @save_select_limit=@@session.sql_select_limit;
+SET @@session.sql_select_limit=10, @@session.pseudo_thread_id=100;
+ERROR HY000: Access denied. You need the SUPER privilege for this operation
+SELECT @@session.sql_select_limit = @save_select_limit;
+@@session.sql_select_limit = @save_select_limit
+1
+SET @@session.sql_select_limit=10, @@session.sql_log_bin=0;
ERROR HY000: Access denied. You need the SUPER privilege for this operation
+SELECT @@session.sql_select_limit = @save_select_limit;
+@@session.sql_select_limit = @save_select_limit
+1
+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;
drop table if exists t1,t2;
create table t1(f int);
create table t2(f int);
diff --git a/mysql-test/r/rpl_trunc_binlog.result b/mysql-test/r/rpl_trunc_binlog.result
index 2ae91e5f0e6..ad0fb9e5022 100644
--- a/mysql-test/r/rpl_trunc_binlog.result
+++ b/mysql-test/r/rpl_trunc_binlog.result
@@ -10,4 +10,4 @@ reset slave;
start slave;
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 1 master-bin.000002 4 # # master-bin.000001 Yes No 0 Rolling back unfinished transaction (no COMMIT or ROLLBACK) from relay log. Probably cause is that the master died while writing the transaction to it's binary log. 0 79 # None 0 No #
+# 127.0.0.1 root MASTER_PORT 1 master-bin.000002 4 slave-relay-bin.000002 123 master-bin.000001 Yes No 0 Rolling back unfinished transaction (no COMMIT or ROLLBACK) from relay log. A probable cause is that the master died while writing the transaction to its binary log. 0 79 326 None 0 No #
diff --git a/mysql-test/r/rpl_until.result b/mysql-test/r/rpl_until.result
index b6c525e0e9c..45bedd0b176 100644
--- a/mysql-test/r/rpl_until.result
+++ b/mysql-test/r/rpl_until.result
@@ -69,4 +69,4 @@ ERROR HY000: Wrong parameter or combination of parameters for START SLAVE UNTIL
start slave sql_thread;
start slave until master_log_file='master-bin.000001', master_log_pos=710;
Warnings:
-Note 1253 Slave is already running
+Note 1254 Slave is already running
diff --git a/mysql-test/r/select.result b/mysql-test/r/select.result
index 30b391dd947..43c41378f30 100644
--- a/mysql-test/r/select.result
+++ b/mysql-test/r/select.result
@@ -2279,10 +2279,10 @@ a a a
2 2 2
3 3 3
select * from t1 natural join (t1 as t2 left join t1 as t3 using (a));
-a a a
-1 1 1
-2 2 2
-3 3 3
+a a
+1 1
+2 2
+3 3
select * from (t1 as t2 left join t1 as t3 using (a)) natural join t1;
a a a
1 1 1
@@ -2321,3 +2321,23 @@ left join t4 on id3 = id4 where id2 = 1 or id4 = 1;
id1 id2 id3 id4 id44
1 1 NULL NULL NULL
drop table t1,t2,t3,t4;
+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';
+s
+select * from t2 where s = 'one';
+s
+select * from t3 where s = 'one';
+s
+one
+select * from t1,t2 where t1.s = t2.s;
+s s
+two two
+select * from t2,t3 where t2.s = t3.s;
+s s
+two two
+drop table t1, t2, t3;
diff --git a/mysql-test/r/select_found.result b/mysql-test/r/select_found.result
index e302a0cefeb..23a39a242a1 100644
--- a/mysql-test/r/select_found.result
+++ b/mysql-test/r/select_found.result
@@ -208,3 +208,21 @@ select FOUND_ROWS();
FOUND_ROWS()
0
drop table t1;
+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 )
+);
+a b
+DROP TABLE t1;
+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/r/show_check.result b/mysql-test/r/show_check.result
index 4645e7d9b9c..9d9b006cdd5 100644
--- a/mysql-test/r/show_check.result
+++ b/mysql-test/r/show_check.result
@@ -89,8 +89,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;
Table Create Table
@@ -98,8 +98,8 @@ t1 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(11) NOT NULL default '0' COMMENT 'int column',
- `c-b` int(11) default NULL COMMENT 'name with a space',
- `space ` int(11) default NULL COMMENT 'name with a space'
+ `c-b` int(11) default NULL COMMENT 'name with a minus',
+ `space 2` int(11) default NULL COMMENT 'name with a space'
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='it''s a table'
set sql_quote_show_create=0;
show create table t1;
@@ -108,8 +108,8 @@ t1 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(11) NOT NULL default '0' COMMENT 'int column',
- `c-b` int(11) default NULL COMMENT 'name with a space',
- `space ` int(11) default NULL COMMENT 'name with a space'
+ `c-b` int(11) default NULL COMMENT 'name with a minus',
+ `space 2` int(11) default NULL COMMENT 'name with a space'
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='it''s a table'
set sql_quote_show_create=1;
show full columns from t1;
@@ -117,8 +117,8 @@ Field Type Collation Null Key Default Extra Privileges Comment
test_set set('val1','val2','val3') latin1_swedish_ci select,insert,update,references
name char(20) latin1_swedish_ci YES O'Brien select,insert,update,references O'Brien as default
c int(11) NULL 0 select,insert,update,references int column
-c-b int(11) NULL YES NULL select,insert,update,references name with a space
-space int(11) NULL YES NULL select,insert,update,references name with a space
+c-b int(11) NULL YES NULL select,insert,update,references name with a minus
+space 2 int(11) NULL YES NULL select,insert,update,references name with a space
drop table t1;
create table t1 (a int not null, unique aa (a));
show create table t1;
@@ -225,7 +225,7 @@ t1 CREATE TABLE `t1` (
`empty_char` char(0) default NULL,
`type_char` char(2) default NULL,
`type_varchar` varchar(10) default NULL,
- `type_timestamp` timestamp NOT NULL,
+ `type_timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`type_date` date NOT NULL default '0000-00-00',
`type_time` time NOT NULL default '00:00:00',
`type_datetime` datetime NOT NULL default '0000-00-00 00:00:00',
@@ -265,39 +265,13 @@ c decimal(4,3) YES NULL
d double(4,3) YES NULL
f float(4,3) YES NULL
drop table t1;
-SET sql_mode='';
-SET sql_quote_show_create=OFF;
-CREATE TABLE ```ab``cd``` (i INT);
-SHOW CREATE TABLE ```ab``cd```;
-Table Create Table
-`ab`cd` CREATE TABLE ```ab``cd``` (
- i int(11) default NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE ```ab``cd```;
-CREATE TABLE ```ab````cd``` (i INT);
-SHOW CREATE TABLE ```ab````cd```;
-Table Create Table
-`ab``cd` CREATE TABLE ```ab````cd``` (
- i int(11) default NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE ```ab````cd```;
-CREATE TABLE ```a` (i INT);
-SHOW CREATE TABLE ```a`;
-Table Create Table
-`a CREATE TABLE ```a` (
- i int(11) default NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE ```a`;
-SET sql_mode='ANSI_QUOTES';
-CREATE TABLE """a" (i INT);
-SHOW CREATE TABLE """a";
-Table Create Table
-"a CREATE TABLE """a" (
- i int(11) default NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE """a";
-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 `a/b` (i INT);
+ERROR 42000: Incorrect table name 'a/b'
+SET sql_mode= 'ANSI_QUOTES';
+SET sql_mode= '';
+SET sql_quote_show_create= OFF;
CREATE TABLE t1 (i INT);
SHOW CREATE TABLE t1;
Table Create Table
@@ -312,4 +286,117 @@ table CREATE TABLE `table` (
i int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
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;
+select @@max_heap_table_size;
+@@max_heap_table_size
+1047552
+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);
+show table status;
+Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
+t1 HEAP Fixed 2 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 HEAP Fixed 2 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 HEAP Fixed 2 9 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+insert into t1 values (3),(4);
+insert into t2 values (3),(4);
+insert into t3 values (3,3),(4,4);
+show table status;
+Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
+t1 HEAP Fixed 4 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 HEAP Fixed 4 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 HEAP Fixed 4 9 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+insert into t1 values (5);
+insert into t2 values (5);
+insert into t3 values (5,5);
+show table status;
+Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
+t1 HEAP Fixed 5 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 HEAP Fixed 5 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 HEAP Fixed 5 9 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+delete from t1 where a=3;
+delete from t2 where b=3;
+delete from t3 where a=3;
+show table status;
+Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
+t1 HEAP Fixed 4 5 # # # 5 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 HEAP Fixed 4 5 # # # 5 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 HEAP Fixed 4 9 # # # 9 NULL NULL NULL NULL latin1_swedish_ci NULL
+delete from t1;
+delete from t2;
+delete from t3;
+show table status;
+Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
+t1 HEAP Fixed 0 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 HEAP Fixed 0 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 HEAP Fixed 0 9 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+insert into t1 values (5);
+insert into t2 values (5);
+insert into t3 values (5,5);
+show table status;
+Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
+t1 HEAP Fixed 1 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 HEAP Fixed 1 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 HEAP Fixed 1 9 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+delete from t1 where a=5;
+delete from t2 where b=5;
+delete from t3 where a=5;
+show table status;
+Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
+t1 HEAP Fixed 0 5 # # # 5 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 HEAP Fixed 0 5 # # # 5 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 HEAP Fixed 0 9 # # # 9 NULL NULL NULL NULL latin1_swedish_ci NULL
+drop table t1, t2, t3;
+create database test_$1;
+show create database test_$1;
+Database Create Database
+test_$1 CREATE DATABASE `test_$1` /*!40100 DEFAULT CHARACTER SET latin1 */
+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;
+select * from t1;
+a
+1
+show create database test_$1;
+Database Create Database
+test_$1 CREATE DATABASE `test_$1` /*!40100 DEFAULT CHARACTER SET latin1 */
+drop table t1;
+ERROR 42000: Access denied for user: 'mysqltest_1'@'localhost' to database 'test_$1'
+drop database test_$1;
+ERROR 42000: Access denied for user: 'mysqltest_1'@'localhost' to database 'test_$1'
+select * from test_$1.t1;
+ERROR 42000: Access denied for user: 'mysqltest_2'@'localhost' to database 'test_$1'
+show create database test_$1;
+ERROR 42000: Access denied for user: 'mysqltest_2'@'localhost' to database 'test_$1'
+drop table test_$1.t1;
+ERROR 42000: Access denied for user: 'mysqltest_2'@'localhost' to database 'test_$1'
+drop database test_$1;
+ERROR 42000: Access denied for user: 'mysqltest_2'@'localhost' to database 'test_$1'
+select * from test_$1.t1;
+ERROR 42000: Access denied for user: 'mysqltest_3'@'localhost' to database 'test_$1'
+show create database test_$1;
+ERROR 42000: Access denied for user: 'mysqltest_3'@'localhost' to database 'test_$1'
+drop table test_$1.t1;
+drop database test_$1;
+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/r/subselect.result b/mysql-test/r/subselect.result
index 18d403313d7..19bda2fec44 100644
--- a/mysql-test/r/subselect.result
+++ b/mysql-test/r/subselect.result
@@ -6,7 +6,7 @@ explain extended select (select 2);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1248 Select 2 was reduced during optimisation
+Note 1249 Select 2 was reduced during optimisation
Note 1003 select high_priority 2 AS `(select 2)`
SELECT (SELECT 1) UNION SELECT (SELECT 2);
(SELECT 1)
@@ -17,8 +17,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
3 UNION NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1248 Select 2 was reduced during optimisation
-Note 1248 Select 4 was reduced during optimisation
+Note 1249 Select 2 was reduced during optimisation
+Note 1249 Select 4 was reduced during optimisation
Note 1003 select high_priority 1 AS `(SELECT 1)` union select 2 AS `(SELECT 2)`
SELECT (SELECT (SELECT 0 UNION SELECT 0));
(SELECT (SELECT 0 UNION SELECT 0))
@@ -29,7 +29,7 @@ id select_type table type possible_keys key key_len ref rows Extra
3 SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
4 UNION NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1248 Select 2 was reduced during optimisation
+Note 1249 Select 2 was reduced during optimisation
Note 1003 select high_priority (select 0 AS `0` union select 0 AS `0`) AS `(SELECT (SELECT 0 UNION SELECT 0))`
SELECT (SELECT 1 FROM (SELECT 1) as b HAVING a=1) as a;
ERROR 42S22: Reference 'a' not supported (forward reference in item list)
@@ -46,8 +46,8 @@ id select_type table type possible_keys key key_len ref rows Extra
3 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
2 DERIVED NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1275 Field or reference 'a' of SELECT #3 was resolved in SELECT #1
-Note 1275 Field or reference 'b.a' of SELECT #3 was resolved in SELECT #1
+Note 1276 Field or reference 'a' of SELECT #3 was resolved in SELECT #1
+Note 1276 Field or reference 'b.a' of SELECT #3 was resolved in SELECT #1
Note 1003 select high_priority 1 AS `1` from (select 1 AS `a`) b having ((select b.a AS `a`) = 1)
SELECT 1 FROM (SELECT 1 as a) as b HAVING (SELECT a)=1;
1
@@ -219,7 +219,7 @@ id select_type table type possible_keys key key_len ref rows Extra
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2
3 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 3 Using where
Warnings:
-Note 1275 Field or reference 't4.a' of SELECT #3 was resolved in SELECT #1
+Note 1276 Field or reference 't4.a' of SELECT #3 was resolved in SELECT #1
Note 1003 select high_priority test.t4.b AS `b`,(select avg((test.t2.a + (select min(test.t3.a) AS `min(t3.a)` from test.t3 where (test.t3.a >= test.t4.a)))) AS `avg(t2.a+(select min(t3.a) from t3 where t3.a >= t4.a))` from test.t2) AS `(select avg(t2.a+(select min(t3.a) from t3 where t3.a >= t4.a)) from t2)` from test.t4
select * from t3 where exists (select * from t2 where t2.b=t3.a);
a
@@ -307,8 +307,8 @@ id select_type table type possible_keys key key_len ref rows Extra
2 DEPENDENT SUBQUERY t1 system NULL NULL NULL NULL 1
3 DEPENDENT UNION t5 ALL NULL NULL NULL NULL 2 Using where
Warnings:
-Note 1275 Field or reference 't2.a' of SELECT #2 was resolved in SELECT #1
-Note 1275 Field or reference 't2.a' of SELECT #3 was resolved in SELECT #1
+Note 1276 Field or reference 't2.a' of SELECT #2 was resolved in SELECT #1
+Note 1276 Field or reference 't2.a' of SELECT #3 was resolved in SELECT #1
Note 1003 select high_priority (select test.t1.a AS `a` from test.t1 where (test.t1.a = test.t2.a) union select test.t5.a AS `a` from test.t5 where (test.t5.a = test.t2.a)) AS `(select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a)`,test.t2.a AS `a` from test.t2
select (select a from t1 where t1.a=t2.a union all select a from t5 where t5.a=t2.a), a from t2;
ERROR 21000: Subquery returns more than 1 row
@@ -326,7 +326,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t6 ALL NULL NULL NULL NULL 4 Using where
2 DEPENDENT SUBQUERY t7 eq_ref PRIMARY PRIMARY 4 test.t6.clinic_uq 1
Warnings:
-Note 1275 Field or reference 'clinic_uq' of SELECT #2 was resolved in SELECT #1
+Note 1276 Field or reference 'clinic_uq' of SELECT #2 was resolved in SELECT #1
Note 1003 select high_priority test.t6.patient_uq AS `patient_uq`,test.t6.clinic_uq AS `clinic_uq` from test.t6 where exists(select test.t7.uq AS `uq`,test.t7.name AS `name` from test.t7 where (test.t7.uq = test.t6.clinic_uq) limit 1)
select * from t1 where a= (select a from t2,t4 where t2.b=t4.b);
ERROR 23000: Column: 'a' in field list is ambiguous
@@ -715,7 +715,7 @@ EXPLAIN EXTENDED SELECT * FROM t2 WHERE id IN (SELECT 1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ref id id 5 const 1 Using where; Using index
Warnings:
-Note 1248 Select 2 was reduced during optimisation
+Note 1249 Select 2 was reduced during optimisation
Note 1003 select high_priority test.t2.id AS `id` from test.t2 where (test.t2.id = 1)
SELECT * FROM t2 WHERE id IN (SELECT 1 UNION SELECT 3);
id
@@ -727,8 +727,8 @@ EXPLAIN EXTENDED SELECT * FROM t2 WHERE id IN (SELECT 1+(select 1));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ref id id 5 const 1 Using where; Using index
Warnings:
-Note 1248 Select 3 was reduced during optimisation
-Note 1248 Select 2 was reduced during optimisation
+Note 1249 Select 3 was reduced during optimisation
+Note 1249 Select 2 was reduced during optimisation
Note 1003 select high_priority test.t2.id AS `id` from test.t2 where (test.t2.id = (1 + 1))
EXPLAIN EXTENDED SELECT * FROM t2 WHERE id IN (SELECT 1 UNION SELECT 3);
id select_type table type possible_keys key key_len ref rows Extra
@@ -860,8 +860,8 @@ explain extended select (select a+1) from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3
Warnings:
-Note 1275 Field or reference 'a' of SELECT #2 was resolved in SELECT #1
-Note 1248 Select 2 was reduced during optimisation
+Note 1276 Field or reference 'a' of SELECT #2 was resolved in SELECT #1
+Note 1249 Select 2 was reduced during optimisation
Note 1003 select high_priority (test.t1.a + 1) AS `(select a+1)` from test.t1
select (select a+1) from t1;
(select a+1)
@@ -978,7 +978,7 @@ ERROR 42S02: Table 'test.t1' doesn't exist
CREATE TABLE t1 (a int, KEY(a));
HANDLER t1 OPEN;
HANDLER t1 READ a=((SELECT 1));
-ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use
+ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT 1))' at line 1
HANDLER t1 CLOSE;
drop table t1;
create table t1 (a int);
@@ -1049,12 +1049,12 @@ UNIQUE KEY `maxnumrep` (`maxnumrep`)
) ENGINE=MyISAM CHARSET=latin1;
INSERT INTO t1 VALUES ('joce','1','','joce'),('test','2','','test');
Warnings:
-Warning 1264 Data truncated for column 'date' at row 1
-Warning 1264 Data truncated for column 'date' at row 2
+Warning 1265 Data truncated for column 'date' at row 1
+Warning 1265 Data truncated for column 'date' at row 2
INSERT INTO t2 VALUES ('joce','1','','joce'),('test','2','','test');
Warnings:
-Warning 1264 Data truncated for column 'date' at row 1
-Warning 1264 Data truncated for column 'date' at row 2
+Warning 1265 Data truncated for column 'date' at row 1
+Warning 1265 Data truncated for column 'date' at row 2
INSERT INTO t3 VALUES (1,1);
SELECT DISTINCT topic FROM t2 WHERE NOT EXISTS(SELECT * FROM t3 WHERE
numeropost=topic);
@@ -1168,9 +1168,9 @@ SELECT 0 IN (SELECT 1 FROM t1 a);
EXPLAIN EXTENDED SELECT 0 IN (SELECT 1 FROM t1 a);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
-2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
+2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
Warnings:
-Note 1003 select high_priority <in_optimizer>(0,<exists>(select 1 AS `Not_used` from test.t1 a where isnull(1) having <is_not_null_test>(1) limit 1)) AS `0 IN (SELECT 1 FROM t1 a)`
+Note 1003 select high_priority <in_optimizer>(0,<exists>(select 1 AS `Not_used` from test.t1 a limit 1)) AS `0 IN (SELECT 1 FROM t1 a)`
INSERT INTO t1 (pseudo) VALUES ('test1');
SELECT 0 IN (SELECT 1 FROM t1 a);
0 IN (SELECT 1 FROM t1 a)
@@ -1178,9 +1178,9 @@ SELECT 0 IN (SELECT 1 FROM t1 a);
EXPLAIN EXTENDED SELECT 0 IN (SELECT 1 FROM t1 a);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
-2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
+2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
Warnings:
-Note 1003 select high_priority <in_optimizer>(0,<exists>(select 1 AS `Not_used` from test.t1 a where isnull(1) having <is_not_null_test>(1) limit 1)) AS `0 IN (SELECT 1 FROM t1 a)`
+Note 1003 select high_priority <in_optimizer>(0,<exists>(select 1 AS `Not_used` from test.t1 a limit 1)) AS `0 IN (SELECT 1 FROM t1 a)`
drop table t1;
CREATE TABLE `t1` (
`i` int(11) NOT NULL default '0',
@@ -1246,7 +1246,7 @@ insert into t1 values (1,0), (2,0), (3,0);
insert into t2 values (1,1), (2,1), (3,1), (2,2);
update ignore t1 set b=(select b from t2 where t1.a=t2.a);
Warnings:
-Error 1241 Subquery returns more than 1 row
+Error 1242 Subquery returns more than 1 row
select * from t1;
a b
1 1
@@ -1577,6 +1577,16 @@ 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);
COLC
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;
+(SELECT a)
+1
+2
+3
+4
+5
+DROP TABLE t1;
create table t1 (a int, b decimal(13, 3));
insert into t1 values (1, 0.123);
select a, (select max(b) from t1) into outfile "subselect.out.file.1" from t1;
@@ -1611,3 +1621,97 @@ id max_anno_dep PIPPO
50 1990 0
51 1990 NULL
DROP TABLE t1, t2;
+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;
+sum(a)
+6
+select 2 in (select * from t1);
+2 in (select * from t1)
+1
+SET SQL_SELECT_LIMIT=default;
+drop table t1;
+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;
+a b
+1 1
+1 2
+1 3
+DROP TABLE t1;
+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%');
+count(*)
+0
+drop table t1;
+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);
+id text
+8 text8
+9 text9
+10 text10
+11 text11
+12 text12
+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);
+id text
+8 text8
+9 text9
+10 text10
+11 text11
+12 text12
+explain extended select * from t1 where id not in (select id from t1 where id < 8);
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 12 Using where
+2 DEPENDENT SUBQUERY t1 unique_subquery PRIMARY PRIMARY 4 func 1 Using index; Using where
+Warnings:
+Note 1003 select high_priority test.t1.id AS `id`,test.t1.text AS `text` from test.t1 where not(<in_optimizer>(test.t1.id,<exists>(<primary_index_lookup>(<cache>(test.t1.id) in t1 on PRIMARY where (test.t1.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);
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY tt ALL NULL NULL NULL NULL 12 Using where
+2 DEPENDENT SUBQUERY t1 eq_ref PRIMARY PRIMARY 4 test.tt.id 7 Using where; Using index
+Warnings:
+Note 1276 Field or reference 'tt.id' of SELECT #2 was resolved in SELECT #1
+Note 1003 select high_priority test.tt.id AS `id`,test.tt.text AS `text` from test.t1 tt where not(exists(select test.t1.id AS `id` from test.t1 where ((test.t1.id < 8) and ((test.t1.id = test.tt.id) or isnull(test.t1.id))) having (test.t1.id is not null) limit 1))
+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);
+id text id text id text
+1 text1 1 text1 1 text1
+2 text2 2 text2 2 text2
+3 text3 3 text3 3 text3
+4 text4 4 text4 4 text4
+5 text5 5 text5 5 text5
+6 text6 6 text6 6 text6
+7 text7 7 text7 7 text7
+8 text8 8 text8 8 text8
+9 text9 9 text9 9 text9
+10 text10 10 text10 10 text10
+11 text11 11 text1 11 text11
+12 text12 12 text2 12 text12
+1000 text1000 NULL NULL 1000 text1000
+1001 text1001 NULL NULL 1000 text1000
+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);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE a ALL NULL NULL NULL NULL 14
+1 SIMPLE b eq_ref PRIMARY PRIMARY 4 test.a.id 2
+1 SIMPLE c eq_ref PRIMARY PRIMARY 4 func 1 Using where
+Warnings:
+Note 1003 select high_priority test.a.id AS `id`,test.a.text AS `text`,test.b.id AS `id`,test.b.text AS `text`,test.c.id AS `id`,test.c.text AS `text` from test.t1 a left join test.t2 b on(((test.a.id = test.b.id) or isnull(test.b.id))) join test.t1 c where (if(isnull(test.b.id),1000,test.b.id) = test.c.id)
+drop table t1,t2;
+create table t1 (a int);
+insert into t1 values (1);
+explain select benchmark(1000, (select a from t1 where a=sha(rand())));
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
+2 UNCACHEABLE SUBQUERY t1 system NULL NULL NULL NULL 1
+drop table t1;
+create table t1(id int);
+create table t2(id int);
+create table t3(flag int);
+select (select * from t3 where id not null) from t1, t2;
+ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'null) from t1, t2' at line 1
+drop table t1,t2,t3;
diff --git a/mysql-test/r/subselect2.result b/mysql-test/r/subselect2.result
index b04fec26c6f..c2780a08d36 100644
--- a/mysql-test/r/subselect2.result
+++ b/mysql-test/r/subselect2.result
@@ -120,9 +120,9 @@ DOCID DOCNAME DOCTYPEID FOLDERID AUTHOR CREATED TITLE SUBTITLE DOCABSTRACT PUBLI
c373e9f5ad07993f3859444553544200 Last Discussion c373e9f5ad079174ff17444553544200 c373e9f5ad0796c0eca4444553544200 Goldilocks 2003-06-09 11:21:06 Title: Last Discussion NULL Setting new abstract and keeping doc checked out 2003-06-09 10:51:26 2003-06-09 10:51:26 NULL NULL NULL 03eea05112b845949f3fd03278b5fe43 2003-06-09 11:21:06 admin 0 NULL Discussion NULL NULL
EXPLAIN SELECT t2.*, t4.DOCTYPENAME, t1.CONTENTSIZE,t1.MIMETYPE FROM t2 INNER JOIN t4 ON t2.DOCTYPEID = t4.DOCTYPEID LEFT OUTER JOIN t1 ON t2.DOCID = t1.DOCID WHERE t2.FOLDERID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID='2f6161e879db43c1a5b82c21ddc49089' AND t3.FOLDERNAME = 'Level1') AND t3.FOLDERNAME = 'Level2') AND t3.FOLDERNAME = 'Level3') AND t3.FOLDERNAME = 'CopiedFolder') AND t3.FOLDERNAME = 'Movie Reviews') AND t2.DOCNAME = 'Last Discussion';
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 system PRIMARY NULL NULL NULL 0 const row not found
-1 PRIMARY t2 ALL DDOCTYPEID_IDX NULL NULL NULL 9 Using where
+1 PRIMARY t2 ALL DDOCTYPEID_IDX NULL NULL NULL 10 Using where
1 PRIMARY t4 eq_ref PRIMARY PRIMARY 32 test.t2.DOCTYPEID 1
+1 PRIMARY t1 eq_ref PRIMARY PRIMARY 32 test.t2.DOCID 1
2 DEPENDENT SUBQUERY t3 unique_subquery PRIMARY,FFOLDERID_IDX PRIMARY 32 func 1 Using index; Using where
3 DEPENDENT SUBQUERY t3 unique_subquery PRIMARY,FFOLDERID_IDX PRIMARY 32 func 1 Using index; Using where
4 DEPENDENT SUBQUERY t3 unique_subquery PRIMARY,FFOLDERID_IDX PRIMARY 32 func 1 Using index; Using where
diff --git a/mysql-test/r/subselect_innodb.result b/mysql-test/r/subselect_innodb.result
index b2a055fa72c..9c1816e295c 100644
--- a/mysql-test/r/subselect_innodb.result
+++ b/mysql-test/r/subselect_innodb.result
@@ -62,7 +62,7 @@ processor_id (SELECT y.yod_id FROM t1 p2, t2 y WHERE p2.processor_id = p1.proces
1 1
2 2
3 3
-drop table t1,t2,t3;
+drop table t2,t1,t3;
CREATE TABLE t1 (
id int(11) NOT NULL default '0',
b int(11) default NULL,
diff --git a/mysql-test/r/symlink.result b/mysql-test/r/symlink.result
index 6dc48a0a77e..08d75d8b562 100644
--- a/mysql-test/r/symlink.result
+++ b/mysql-test/r/symlink.result
@@ -64,9 +64,7 @@ t9 CREATE TABLE `t9` (
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='TEST_DIR/var/tmp/' INDEX DIRECTORY='TEST_DIR/var/run/'
drop database mysqltest;
-create table t1 (a int not null) type=myisam;
-Warnings:
-Warning 1286 'TYPE=storage_engine' is deprecated. Use 'ENGINE=storage_engine' instead.
+create table t1 (a int not null) engine=myisam;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
diff --git a/mysql-test/r/synchronization.result b/mysql-test/r/synchronization.result
new file mode 100644
index 00000000000..ad9443c86da
--- /dev/null
+++ b/mysql-test/r/synchronization.result
@@ -0,0 +1,162 @@
+CREATE TABLE t1 (x1 int);
+ ALTER TABLE t1 CHANGE x1 x2 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x2 x1 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x1 x2 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x2 x1 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x1 x2 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x2 x1 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x1 x2 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x2 x1 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x1 x2 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x2 x1 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x1 x2 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x2 x1 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x1 x2 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x2 x1 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x1 x2 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x2 x1 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x1 x2 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x2 x1 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x1 x2 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+ ALTER TABLE t1 CHANGE x2 x1 int;
+CREATE TABLE t2 LIKE t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `xx` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t2;
+DROP TABLE t1;
diff --git a/mysql-test/r/system_mysql_db.result b/mysql-test/r/system_mysql_db.result
new file mode 100644
index 00000000000..d53ace261bf
--- /dev/null
+++ b/mysql-test/r/system_mysql_db.result
@@ -0,0 +1,123 @@
+show tables;
+Tables_in_db
+columns_priv
+db
+func
+help_category
+help_keyword
+help_relation
+help_topic
+host
+tables_priv
+user
+show create table db;
+Table Create Table
+db CREATE TABLE `db` (
+ `Host` char(60) character set latin1 collate latin1_bin NOT NULL default '',
+ `Db` char(64) character set latin1 collate latin1_bin NOT NULL default '',
+ `User` char(16) character set latin1 collate latin1_bin NOT NULL default '',
+ `Select_priv` enum('N','Y') NOT NULL default 'N',
+ `Insert_priv` enum('N','Y') NOT NULL default 'N',
+ `Update_priv` enum('N','Y') NOT NULL default 'N',
+ `Delete_priv` enum('N','Y') NOT NULL default 'N',
+ `Create_priv` enum('N','Y') NOT NULL default 'N',
+ `Drop_priv` enum('N','Y') NOT NULL default 'N',
+ `Grant_priv` enum('N','Y') NOT NULL default 'N',
+ `References_priv` enum('N','Y') NOT NULL default 'N',
+ `Index_priv` enum('N','Y') NOT NULL default 'N',
+ `Alter_priv` enum('N','Y') NOT NULL default 'N',
+ `Create_tmp_table_priv` enum('N','Y') NOT NULL default 'N',
+ `Lock_tables_priv` enum('N','Y') NOT NULL default 'N',
+ PRIMARY KEY (`Host`,`Db`,`User`),
+ KEY `User` (`User`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Database privileges'
+show create table host;
+Table Create Table
+host CREATE TABLE `host` (
+ `Host` char(60) character set latin1 collate latin1_bin NOT NULL default '',
+ `Db` char(64) character set latin1 collate latin1_bin NOT NULL default '',
+ `Select_priv` enum('N','Y') NOT NULL default 'N',
+ `Insert_priv` enum('N','Y') NOT NULL default 'N',
+ `Update_priv` enum('N','Y') NOT NULL default 'N',
+ `Delete_priv` enum('N','Y') NOT NULL default 'N',
+ `Create_priv` enum('N','Y') NOT NULL default 'N',
+ `Drop_priv` enum('N','Y') NOT NULL default 'N',
+ `Grant_priv` enum('N','Y') NOT NULL default 'N',
+ `References_priv` enum('N','Y') NOT NULL default 'N',
+ `Index_priv` enum('N','Y') NOT NULL default 'N',
+ `Alter_priv` enum('N','Y') NOT NULL default 'N',
+ `Create_tmp_table_priv` enum('N','Y') NOT NULL default 'N',
+ `Lock_tables_priv` enum('N','Y') NOT NULL default 'N',
+ PRIMARY KEY (`Host`,`Db`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Host privileges; Merged with database privileges'
+show create table user;
+Table Create Table
+user CREATE TABLE `user` (
+ `Host` varchar(60) character set latin1 collate latin1_bin NOT NULL default '',
+ `User` varchar(16) character set latin1 collate latin1_bin NOT NULL default '',
+ `Password` varchar(41) character set latin1 collate latin1_bin NOT NULL default '',
+ `Select_priv` enum('N','Y') NOT NULL default 'N',
+ `Insert_priv` enum('N','Y') NOT NULL default 'N',
+ `Update_priv` enum('N','Y') NOT NULL default 'N',
+ `Delete_priv` enum('N','Y') NOT NULL default 'N',
+ `Create_priv` enum('N','Y') NOT NULL default 'N',
+ `Drop_priv` enum('N','Y') NOT NULL default 'N',
+ `Reload_priv` enum('N','Y') NOT NULL default 'N',
+ `Shutdown_priv` enum('N','Y') NOT NULL default 'N',
+ `Process_priv` enum('N','Y') NOT NULL default 'N',
+ `File_priv` enum('N','Y') NOT NULL default 'N',
+ `Grant_priv` enum('N','Y') NOT NULL default 'N',
+ `References_priv` enum('N','Y') NOT NULL default 'N',
+ `Index_priv` enum('N','Y') NOT NULL default 'N',
+ `Alter_priv` enum('N','Y') NOT NULL default 'N',
+ `Show_db_priv` enum('N','Y') NOT NULL default 'N',
+ `Super_priv` enum('N','Y') NOT NULL default 'N',
+ `Create_tmp_table_priv` enum('N','Y') NOT NULL default 'N',
+ `Lock_tables_priv` enum('N','Y') NOT NULL default 'N',
+ `Execute_priv` enum('N','Y') NOT NULL default 'N',
+ `Repl_slave_priv` enum('N','Y') NOT NULL default 'N',
+ `Repl_client_priv` enum('N','Y') NOT NULL default 'N',
+ `ssl_type` enum('','ANY','X509','SPECIFIED') NOT NULL default '',
+ `ssl_cipher` blob NOT NULL,
+ `x509_issuer` blob NOT NULL,
+ `x509_subject` blob NOT NULL,
+ `max_questions` int(11) unsigned NOT NULL default '0',
+ `max_updates` int(11) unsigned NOT NULL default '0',
+ `max_connections` int(11) unsigned NOT NULL default '0',
+ PRIMARY KEY (`Host`,`User`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Users and global privileges'
+show create table func;
+Table Create Table
+func CREATE TABLE `func` (
+ `name` char(64) character set latin1 collate latin1_bin NOT NULL default '',
+ `ret` tinyint(1) NOT NULL default '0',
+ `dl` char(128) NOT NULL default '',
+ `type` enum('function','aggregate') NOT NULL default 'function',
+ PRIMARY KEY (`name`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='User defined functions'
+show create table tables_priv;
+Table Create Table
+tables_priv CREATE TABLE `tables_priv` (
+ `Host` char(60) character set latin1 collate latin1_bin NOT NULL default '',
+ `Db` char(64) character set latin1 collate latin1_bin NOT NULL default '',
+ `User` char(16) character set latin1 collate latin1_bin NOT NULL default '',
+ `Table_name` char(64) character set latin1 collate latin1_bin NOT NULL default '',
+ `Grantor` char(77) NOT NULL default '',
+ `Timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+ `Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter') NOT NULL default '',
+ `Column_priv` set('Select','Insert','Update','References') NOT NULL default '',
+ PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`),
+ KEY `Grantor` (`Grantor`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Table privileges'
+show create table columns_priv;
+Table Create Table
+columns_priv CREATE TABLE `columns_priv` (
+ `Host` char(60) character set latin1 collate latin1_bin NOT NULL default '',
+ `Db` char(64) character set latin1 collate latin1_bin NOT NULL default '',
+ `User` char(16) character set latin1 collate latin1_bin NOT NULL default '',
+ `Table_name` char(64) character set latin1 collate latin1_bin NOT NULL default '',
+ `Column_name` char(64) character set latin1 collate latin1_bin NOT NULL default '',
+ `Timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+ `Column_priv` set('Select','Insert','Update','References') NOT NULL default '',
+ PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`,`Column_name`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Column privileges'
diff --git a/mysql-test/r/system_mysql_db_refs.result b/mysql-test/r/system_mysql_db_refs.result
new file mode 100644
index 00000000000..e15934b03ac
--- /dev/null
+++ b/mysql-test/r/system_mysql_db_refs.result
@@ -0,0 +1,67 @@
+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";
+create table test_db select * from mysql.db;
+delete from test_db;
+insert into test_db (Host,Db,User) values (@name,@name,@name);
+create table test_host select * from mysql.host;
+delete from test_host;
+insert into test_host (Host,Db) values (@name,@name);
+create table test_user select * from mysql.user;
+delete from test_user;
+insert into test_user (Host,User) values (@name,@name);
+create table test_func select * from mysql.func;
+delete from test_func;
+insert into test_func (name) values (@name);
+create table test_tables_priv select * from mysql.tables_priv;
+delete from test_tables_priv;
+insert into test_tables_priv (Host,Db,User,Table_name) values (@name,@name,@name,@name);
+create table test_columns_priv select * from mysql.columns_priv;
+delete from test_columns_priv;
+insert into test_columns_priv (Host,Db,User,Table_name,Column_name) values (@name,@name,@name,@name,@name);
+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;
+test_db_Host test_host_Host test_user_Host test_tables_priv_Host test_columns_priv_Host
+ok ok ok ok ok
+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;
+test_db_Db test_host_Db test_tables_priv_Db est_columns_priv_Db
+ok ok ok ok
+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;
+test_db_User test_user_User test_tables_priv_User test_columns_priv_User
+ok ok ok ok
+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;
+test_tables_priv_User test_columns_priv_User
+ok ok
+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/r/timezone.result b/mysql-test/r/timezone.result
index 20706408075..15f0d4121c7 100644
--- a/mysql-test/r/timezone.result
+++ b/mysql-test/r/timezone.result
@@ -32,3 +32,9 @@ ts from_unixtime(ts)
1048989599 2003-03-30 03:59:59
1048989601 2003-03-30 04:00:01
DROP TABLE t1;
+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');
+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')
+0 1 2145916799 0
diff --git a/mysql-test/r/true.require b/mysql-test/r/true.require
new file mode 100644
index 00000000000..09aae1ed1d0
--- /dev/null
+++ b/mysql-test/r/true.require
@@ -0,0 +1,2 @@
+TRUE
+1
diff --git a/mysql-test/r/type_blob.result b/mysql-test/r/type_blob.result
index 255b7f0d942..e9861266b78 100644
--- a/mysql-test/r/type_blob.result
+++ b/mysql-test/r/type_blob.result
@@ -7,11 +7,11 @@ b text YES NULL
c blob YES NULL
d mediumtext YES NULL
e longtext YES NULL
-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));
Warnings:
-Warning 1245 Converting column 'a' from CHAR to TEXT
-Warning 1245 Converting column 'b' from CHAR to BLOB
-Warning 1245 Converting column 'c' from CHAR to TEXT
+Warning 1246 Converting column 'a' from CHAR to TEXT
+Warning 1246 Converting column 'b' from CHAR to BLOB
+Warning 1246 Converting column 'c' from CHAR to TEXT
show columns from t2;
Field Type Null Key Default Extra
a text YES NULL
@@ -57,7 +57,7 @@ select * from t1;
a
Where
drop table t1;
-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");
@@ -73,14 +73,14 @@ Field Type Collation Null Key Default Extra Privileges Comment
t text latin1_swedish_ci YES NULL select,insert,update,references
c varchar(10) latin1_swedish_ci YES NULL select,insert,update,references
b blob NULL YES NULL select,insert,update,references
-d varchar(10) binary YES NULL select,insert,update,references
+d varbinary(10) NULL YES NULL select,insert,update,references
lock tables t1 WRITE;
show full fields from t1;
Field Type Collation Null Key Default Extra Privileges Comment
t text latin1_swedish_ci YES NULL select,insert,update,references
c varchar(10) latin1_swedish_ci YES NULL select,insert,update,references
b blob NULL YES NULL select,insert,update,references
-d varchar(10) binary YES NULL select,insert,update,references
+d varbinary(10) NULL YES NULL select,insert,update,references
unlock tables;
select t from t1 where t like "hello";
t
@@ -346,9 +346,17 @@ HELLO MY 1
a 1
hello 1
drop table t1;
-create table t1 (a text, key (a(300)));
-ERROR HY000: Incorrect sub part key. The used key part isn't a string, the used length is longer than the key part or the storage engine doesn't support unique sub keys
-create table t1 (a text, key (a(255)));
+create table t1 (a text, unique (a(2100)));
+ERROR 42000: Specified key was too long; max key length is 1000 bytes
+create table t1 (a text, key (a(2100)));
+Warnings:
+Warning 1071 Specified key was too long; max key length is 1000 bytes
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` text,
+ KEY `a` (`a`(1000))
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
CREATE TABLE t1 (
t1_id bigint(21) NOT NULL auto_increment,
@@ -656,3 +664,9 @@ id txt
2 Chevy
4 Ford
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 = '';
+max(i)
+4
+drop table t1;
diff --git a/mysql-test/r/type_datetime.result b/mysql-test/r/type_datetime.result
index c1ee621697d..cc29c676283 100644
--- a/mysql-test/r/type_datetime.result
+++ b/mysql-test/r/type_datetime.result
@@ -2,11 +2,11 @@ drop table if exists t1;
create table t1 (t datetime);
insert into t1 values(101),(691231),(700101),(991231),(10000101),(99991231),(101000000),(691231000000),(700101000000),(991231235959),(10000101000000),(99991231235959),(20030102030460),(20030102036301),(20030102240401),(20030132030401),(20031302030460);
Warnings:
-Warning 1264 Data truncated for column 't' at row 13
-Warning 1264 Data truncated for column 't' at row 14
-Warning 1264 Data truncated for column 't' at row 15
-Warning 1264 Data truncated for column 't' at row 16
-Warning 1264 Data truncated for column 't' at row 17
+Warning 1265 Data truncated for column 't' at row 13
+Warning 1265 Data truncated for column 't' at row 14
+Warning 1265 Data truncated for column 't' at row 15
+Warning 1265 Data truncated for column 't' at row 16
+Warning 1265 Data truncated for column 't' at row 17
select * from t1;
t
2000-01-01 00:00:00
diff --git a/mysql-test/r/type_decimal.result b/mysql-test/r/type_decimal.result
index fa4cd231129..dc78369f583 100644
--- a/mysql-test/r/type_decimal.result
+++ b/mysql-test/r/type_decimal.result
@@ -158,17 +158,17 @@ insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 1
-Warning 1263 Data truncated, out of range for column 'a' at row 2
-Warning 1263 Data truncated, out of range for column 'a' at row 3
+Warning 1264 Data truncated, out of range for column 'a' at row 1
+Warning 1264 Data truncated, out of range for column 'a' at row 2
+Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000");
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 1
-Warning 1264 Data truncated for column 'a' at row 2
-Warning 1263 Data truncated, out of range for column 'a' at row 3
+Warning 1264 Data truncated, out of range for column 'a' at row 1
+Warning 1265 Data truncated for column 'a' at row 2
+Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0");
Warnings:
-Warning 1264 Data truncated for column 'a' at row 3
+Warning 1265 Data truncated for column 'a' at row 3
select * from t1;
a
0.00
@@ -201,32 +201,32 @@ drop table t1;
create table t1 (a decimal(10,2) unsigned);
insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0");
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 2
-Warning 1263 Data truncated, out of range for column 'a' at row 6
+Warning 1264 Data truncated, out of range for column 'a' at row 2
+Warning 1264 Data truncated, out of range for column 'a' at row 6
insert into t1 values ("-.1"),("+.1"),(".1");
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 1
+Warning 1264 Data truncated, out of range for column 'a' at row 1
insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 3
+Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 1
-Warning 1263 Data truncated, out of range for column 'a' at row 2
-Warning 1263 Data truncated, out of range for column 'a' at row 3
+Warning 1264 Data truncated, out of range for column 'a' at row 1
+Warning 1264 Data truncated, out of range for column 'a' at row 2
+Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 1
-Warning 1263 Data truncated, out of range for column 'a' at row 2
-Warning 1263 Data truncated, out of range for column 'a' at row 3
+Warning 1264 Data truncated, out of range for column 'a' at row 1
+Warning 1264 Data truncated, out of range for column 'a' at row 2
+Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000");
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 1
-Warning 1264 Data truncated for column 'a' at row 2
-Warning 1263 Data truncated, out of range for column 'a' at row 3
+Warning 1264 Data truncated, out of range for column 'a' at row 1
+Warning 1265 Data truncated for column 'a' at row 2
+Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0");
Warnings:
-Warning 1264 Data truncated for column 'a' at row 3
+Warning 1265 Data truncated for column 'a' at row 3
select * from t1;
a
0.00
@@ -259,32 +259,32 @@ drop table t1;
create table t1 (a decimal(10,2) zerofill);
insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0");
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 2
-Warning 1263 Data truncated, out of range for column 'a' at row 6
+Warning 1264 Data truncated, out of range for column 'a' at row 2
+Warning 1264 Data truncated, out of range for column 'a' at row 6
insert into t1 values ("-.1"),("+.1"),(".1");
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 1
+Warning 1264 Data truncated, out of range for column 'a' at row 1
insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 3
+Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 1
-Warning 1263 Data truncated, out of range for column 'a' at row 2
-Warning 1263 Data truncated, out of range for column 'a' at row 3
+Warning 1264 Data truncated, out of range for column 'a' at row 1
+Warning 1264 Data truncated, out of range for column 'a' at row 2
+Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 1
-Warning 1263 Data truncated, out of range for column 'a' at row 2
-Warning 1263 Data truncated, out of range for column 'a' at row 3
+Warning 1264 Data truncated, out of range for column 'a' at row 1
+Warning 1264 Data truncated, out of range for column 'a' at row 2
+Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000");
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 1
-Warning 1264 Data truncated for column 'a' at row 2
-Warning 1263 Data truncated, out of range for column 'a' at row 3
+Warning 1264 Data truncated, out of range for column 'a' at row 1
+Warning 1265 Data truncated for column 'a' at row 2
+Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0");
Warnings:
-Warning 1264 Data truncated for column 'a' at row 3
+Warning 1265 Data truncated for column 'a' at row 3
select * from t1;
a
00000000.00
@@ -321,13 +321,13 @@ insert into t1 values (00000000000001),(+0000000000001),(-0000000000001);
insert into t1 values (+111111111.11),(111111111.11),(-11111111.11);
insert into t1 values (-111111111.11),(+1111111111.11),(1111111111.11);
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 1
-Warning 1263 Data truncated, out of range for column 'a' at row 2
-Warning 1263 Data truncated, out of range for column 'a' at row 3
+Warning 1264 Data truncated, out of range for column 'a' at row 1
+Warning 1264 Data truncated, out of range for column 'a' at row 2
+Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values (1e+100),(1e-100),(-1e+100);
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 1
-Warning 1263 Data truncated, out of range for column 'a' at row 3
+Warning 1264 Data truncated, out of range for column 'a' at row 1
+Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values (123.4e0),(123.4e+2),(123.4e-2),(123e1),(123e+0);
select * from t1;
a
@@ -361,8 +361,8 @@ drop table t1;
create table t1 (a decimal);
insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+12345678901'),(99999999999999);
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 1
-Warning 1263 Data truncated, out of range for column 'a' at row 7
+Warning 1264 Data truncated, out of range for column 'a' at row 1
+Warning 1264 Data truncated, out of range for column 'a' at row 7
select * from t1;
a
-9999999999
@@ -376,9 +376,9 @@ drop table t1;
create table t1 (a decimal unsigned);
insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999);
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 1
-Warning 1263 Data truncated, out of range for column 'a' at row 2
-Warning 1263 Data truncated, out of range for column 'a' at row 7
+Warning 1264 Data truncated, out of range for column 'a' at row 1
+Warning 1264 Data truncated, out of range for column 'a' at row 2
+Warning 1264 Data truncated, out of range for column 'a' at row 7
select * from t1;
a
0
@@ -392,9 +392,9 @@ drop table t1;
create table t1 (a decimal zerofill);
insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999);
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 1
-Warning 1263 Data truncated, out of range for column 'a' at row 2
-Warning 1263 Data truncated, out of range for column 'a' at row 7
+Warning 1264 Data truncated, out of range for column 'a' at row 1
+Warning 1264 Data truncated, out of range for column 'a' at row 2
+Warning 1264 Data truncated, out of range for column 'a' at row 7
select * from t1;
a
0000000000
@@ -408,9 +408,9 @@ drop table t1;
create table t1 (a decimal unsigned zerofill);
insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999);
Warnings:
-Warning 1263 Data truncated, out of range for column 'a' at row 1
-Warning 1263 Data truncated, out of range for column 'a' at row 2
-Warning 1263 Data truncated, out of range for column 'a' at row 7
+Warning 1264 Data truncated, out of range for column 'a' at row 1
+Warning 1264 Data truncated, out of range for column 'a' at row 2
+Warning 1264 Data truncated, out of range for column 'a' at row 7
select * from t1;
a
0000000000
@@ -424,16 +424,16 @@ drop table t1;
create table t1(a decimal(10,0));
insert into t1 values ("1e4294967295");
Warnings:
-Warning 1264 Data truncated for column 'a' at row 1
-Warning 1263 Data truncated, out of range for column 'a' at row 1
+Warning 1265 Data truncated for column 'a' at row 1
+Warning 1264 Data truncated, out of range for column 'a' at row 1
select * from t1;
a
99999999999
delete from t1;
insert into t1 values("1e4294967297");
Warnings:
-Warning 1264 Data truncated for column 'a' at row 1
-Warning 1263 Data truncated, out of range for column 'a' at row 1
+Warning 1265 Data truncated for column 'a' at row 1
+Warning 1264 Data truncated, out of range for column 'a' at row 1
select * from t1;
a
99999999999
diff --git a/mysql-test/r/type_enum.result b/mysql-test/r/type_enum.result
index fe8f78453b7..976c484dabf 100644
--- a/mysql-test/r/type_enum.result
+++ b/mysql-test/r/type_enum.result
@@ -1639,13 +1639,13 @@ drop table t1;
create table t1 (a enum ('0','1'));
insert into t1 set a='foobar';
Warnings:
-Warning 1264 Data truncated for column 'a' at row 1
+Warning 1265 Data truncated for column 'a' at row 1
select * from t1;
a
update t1 set a = replace(a,'x','y');
Warnings:
-Warning 1264 Data truncated for column 'a' at row 1
+Warning 1265 Data truncated for column 'a' at row 1
select * from t1;
a
diff --git a/mysql-test/r/type_float.result b/mysql-test/r/type_float.result
index 2a461942853..a0c0e0f5503 100644
--- a/mysql-test/r/type_float.result
+++ b/mysql-test/r/type_float.result
@@ -15,8 +15,8 @@ f1 float NULL YES NULL select,insert,update,references
f2 double NULL YES NULL select,insert,update,references
insert into t1 values(10,10),(1e+5,1e+5),(1234567890,1234567890),(1e+10,1e+10),(1e+15,1e+15),(1e+20,1e+20),(1e+50,1e+50),(1e+150,1e+150);
Warnings:
-Warning 1263 Data truncated, out of range for column 'f1' at row 7
-Warning 1263 Data truncated, out of range for column 'f1' at row 8
+Warning 1264 Data truncated, out of range for column 'f1' at row 7
+Warning 1264 Data truncated, out of range for column 'f1' at row 8
insert into t1 values(-10,-10),(1e-5,1e-5),(1e-10,1e-10),(1e-15,1e-15),(1e-20,1e-20),(1e-50,1e-50),(1e-150,1e-150);
select * from t1;
f1 f2
diff --git a/mysql-test/r/type_ranges.result b/mysql-test/r/type_ranges.result
index 512df8fbaa9..8d80f342c1c 100644
--- a/mysql-test/r/type_ranges.result
+++ b/mysql-test/r/type_ranges.result
@@ -54,7 +54,7 @@ ushort smallint(5) unsigned zerofill NULL MUL 00000 select,insert,update,refer
umedium mediumint(8) unsigned NULL MUL 0 select,insert,update,references
ulong int(11) unsigned NULL MUL 0 select,insert,update,references
ulonglong bigint(13) unsigned NULL MUL 0 select,insert,update,references
-time_stamp timestamp NULL YES NULL select,insert,update,references
+time_stamp timestamp NULL YES CURRENT_TIMESTAMP select,insert,update,references
date_field date NULL YES NULL select,insert,update,references
time_field time NULL YES NULL select,insert,update,references
date_time datetime NULL YES NULL select,insert,update,references
@@ -89,34 +89,34 @@ insert into t1 values (NULL,2,2,2,2,2,2,2,2,2,2,2,2,2,NULL,NULL,NULL,NULL,NULL,N
insert into t1 values (0,1/3,3,3,3,3,3,3,3,3,3,3,3,3,NULL,'19970303','10:10:10','19970303101010','','','','3',3,3);
insert into t1 values (0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,NULL,19970807,080706,19970403090807,-1,-1,-1,'-1',-1,-1);
Warnings:
-Warning 1263 Data truncated, out of range for column 'utiny' at row 1
-Warning 1263 Data truncated, out of range for column 'ushort' at row 1
-Warning 1263 Data truncated, out of range for column 'umedium' at row 1
-Warning 1263 Data truncated, out of range for column 'ulong' at row 1
-Warning 1264 Data truncated for column 'options' at row 1
-Warning 1264 Data truncated for column 'flags' at row 1
+Warning 1264 Data truncated, out of range for column 'utiny' at row 1
+Warning 1264 Data truncated, out of range for column 'ushort' at row 1
+Warning 1264 Data truncated, out of range for column 'umedium' at row 1
+Warning 1264 Data truncated, out of range for column 'ulong' at row 1
+Warning 1265 Data truncated for column 'options' at row 1
+Warning 1265 Data truncated for column 'flags' at row 1
insert into t1 values (0,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,NULL,0,0,0,-4294967295,-4294967295,-4294967295,'-4294967295',0,"one,two,tree");
Warnings:
-Warning 1264 Data truncated for column 'string' at row 1
-Warning 1263 Data truncated, out of range for column 'tiny' at row 1
-Warning 1263 Data truncated, out of range for column 'short' at row 1
-Warning 1263 Data truncated, out of range for column 'medium' at row 1
-Warning 1263 Data truncated, out of range for column 'long_int' at row 1
-Warning 1263 Data truncated, out of range for column 'utiny' at row 1
-Warning 1263 Data truncated, out of range for column 'ushort' at row 1
-Warning 1263 Data truncated, out of range for column 'umedium' at row 1
-Warning 1263 Data truncated, out of range for column 'ulong' at row 1
-Warning 1264 Data truncated for column 'options' at row 1
+Warning 1265 Data truncated for column 'string' at row 1
+Warning 1264 Data truncated, out of range for column 'tiny' at row 1
+Warning 1264 Data truncated, out of range for column 'short' at row 1
+Warning 1264 Data truncated, out of range for column 'medium' at row 1
+Warning 1264 Data truncated, out of range for column 'long_int' at row 1
+Warning 1264 Data truncated, out of range for column 'utiny' at row 1
+Warning 1264 Data truncated, out of range for column 'ushort' at row 1
+Warning 1264 Data truncated, out of range for column 'umedium' at row 1
+Warning 1264 Data truncated, out of range for column 'ulong' at row 1
+Warning 1265 Data truncated for column 'options' at row 1
insert into t1 values (0,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,NULL,0,0,0,4294967295,4294967295,4294967295,'4294967295',0,0);
Warnings:
-Warning 1263 Data truncated, out of range for column 'tiny' at row 1
-Warning 1263 Data truncated, out of range for column 'short' at row 1
-Warning 1263 Data truncated, out of range for column 'medium' at row 1
-Warning 1263 Data truncated, out of range for column 'long_int' at row 1
-Warning 1263 Data truncated, out of range for column 'utiny' at row 1
-Warning 1263 Data truncated, out of range for column 'ushort' at row 1
-Warning 1263 Data truncated, out of range for column 'umedium' at row 1
-Warning 1264 Data truncated for column 'options' at row 1
+Warning 1264 Data truncated, out of range for column 'tiny' at row 1
+Warning 1264 Data truncated, out of range for column 'short' at row 1
+Warning 1264 Data truncated, out of range for column 'medium' at row 1
+Warning 1264 Data truncated, out of range for column 'long_int' at row 1
+Warning 1264 Data truncated, out of range for column 'utiny' at row 1
+Warning 1264 Data truncated, out of range for column 'ushort' at row 1
+Warning 1264 Data truncated, out of range for column 'umedium' at row 1
+Warning 1265 Data truncated for column 'options' at row 1
insert into t1 (tiny) values (1);
select auto,string,tiny,short,medium,long_int,longlong,real_float,real_double,utiny,ushort,umedium,ulong,ulonglong,mod(floor(time_stamp/1000000),1000000)-mod(curdate(),1000000),date_field,time_field,date_time,blob_col,tinyblob_col,mediumblob_col,longblob_col from t1;
auto string tiny short medium long_int longlong real_float real_double utiny ushort umedium ulong ulonglong mod(floor(time_stamp/1000000),1000000)-mod(curdate(),1000000) date_field time_field date_time blob_col tinyblob_col mediumblob_col longblob_col
@@ -165,12 +165,12 @@ PRIMARY KEY (auto)
);
INSERT INTO t2 (string,mediumblob_col,new_field) SELECT string,mediumblob_col,new_field from t1 where auto > 10;
Warnings:
-Warning 1264 Data truncated for column 'new_field' at row 2
-Warning 1264 Data truncated for column 'new_field' at row 3
-Warning 1264 Data truncated for column 'new_field' at row 4
-Warning 1264 Data truncated for column 'new_field' at row 5
-Warning 1264 Data truncated for column 'new_field' at row 6
-Warning 1264 Data truncated for column 'new_field' at row 7
+Warning 1265 Data truncated for column 'new_field' at row 2
+Warning 1265 Data truncated for column 'new_field' at row 3
+Warning 1265 Data truncated for column 'new_field' at row 4
+Warning 1265 Data truncated for column 'new_field' at row 5
+Warning 1265 Data truncated for column 'new_field' at row 6
+Warning 1265 Data truncated for column 'new_field' at row 7
select * from t2;
auto string mediumblob_col new_field
1 2 2 ne
@@ -202,9 +202,9 @@ one one
drop table t2;
create table t2 select * from t1;
Warnings:
-Warning 1264 Data truncated for column 'options' at row 4
-Warning 1264 Data truncated for column 'options' at row 5
-Warning 1264 Data truncated for column 'options' at row 6
+Warning 1265 Data truncated for column 'options' at row 4
+Warning 1265 Data truncated for column 'options' at row 5
+Warning 1265 Data truncated for column 'options' at row 6
update t2 set string="changed" where auto=16;
show full columns from t1;
Field Type Collation Null Key Default Extra Privileges Comment
@@ -222,7 +222,7 @@ ushort smallint(5) unsigned zerofill NULL 00000 select,insert,update,referenc
umedium mediumint(8) unsigned NULL MUL 0 select,insert,update,references
ulong int(11) unsigned NULL MUL 0 select,insert,update,references
ulonglong bigint(13) unsigned NULL MUL 0 select,insert,update,references
-time_stamp timestamp NULL YES NULL select,insert,update,references
+time_stamp timestamp NULL YES CURRENT_TIMESTAMP select,insert,update,references
date_field varchar(10) latin1_swedish_ci YES NULL select,insert,update,references
time_field time NULL YES NULL select,insert,update,references
date_time datetime NULL YES NULL select,insert,update,references
@@ -248,7 +248,7 @@ ushort smallint(5) unsigned zerofill NULL 00000 select,insert,update,referenc
umedium mediumint(8) unsigned NULL 0 select,insert,update,references
ulong int(11) unsigned NULL 0 select,insert,update,references
ulonglong bigint(13) unsigned NULL 0 select,insert,update,references
-time_stamp timestamp NULL YES NULL select,insert,update,references
+time_stamp timestamp NULL YES 0000-00-00 00:00:00 select,insert,update,references
date_field varchar(10) latin1_swedish_ci YES NULL select,insert,update,references
time_field time NULL YES NULL select,insert,update,references
date_time datetime NULL YES NULL select,insert,update,references
diff --git a/mysql-test/r/type_time.result b/mysql-test/r/type_time.result
index 5666e865518..68b56802120 100644
--- a/mysql-test/r/type_time.result
+++ b/mysql-test/r/type_time.result
@@ -25,9 +25,11 @@ t
36:30:31
insert into t1 values("10.22.22"),(1234567),(123456789),(123456789.10),("10 22:22"),("12.45a");
Warnings:
-Warning 1263 Data truncated, out of range for column 't' at row 2
-Warning 1263 Data truncated, out of range for column 't' at row 3
-Warning 1263 Data truncated, out of range for column 't' at row 4
+Note 1292 Truncated wrong time value: '10.22.22'
+Warning 1264 Data truncated, out of range for column 't' at row 2
+Warning 1264 Data truncated, out of range for column 't' at row 3
+Warning 1264 Data truncated, out of range for column 't' at row 4
+Note 1292 Truncated wrong time value: '12.45a'
select * from t1;
t
10:22:33
diff --git a/mysql-test/r/type_timestamp.result b/mysql-test/r/type_timestamp.result
index 172ccc440f4..976b3e72385 100644
--- a/mysql-test/r/type_timestamp.result
+++ b/mysql-test/r/type_timestamp.result
@@ -45,11 +45,11 @@ drop table t1;
create table t1 (ix timestamp);
insert into t1 values (19991101000000),(19990102030405),(19990630232922),(19990601000000),(19990930232922),(19990531232922),(19990501000000),(19991101000000),(19990501000000),(20030101010160),(20030101016001),(20030101240101),(20030132010101),(20031301010101);
Warnings:
-Warning 1264 Data truncated for column 'ix' at row 10
-Warning 1264 Data truncated for column 'ix' at row 11
-Warning 1264 Data truncated for column 'ix' at row 12
-Warning 1264 Data truncated for column 'ix' at row 13
-Warning 1264 Data truncated for column 'ix' at row 14
+Warning 1265 Data truncated for column 'ix' at row 10
+Warning 1265 Data truncated for column 'ix' at row 11
+Warning 1265 Data truncated for column 'ix' at row 12
+Warning 1265 Data truncated for column 'ix' at row 13
+Warning 1265 Data truncated for column 'ix' at row 14
select ix+0 from t1;
ix+0
19991101000000
@@ -128,5 +128,206 @@ t2 t4 t6 t8 t10 t12 t14
0000-00-00 00:00:00 0000-00-00 00:00:00 0000-00-00 00:00:00 0000-00-00 00:00:00 0000-00-00 00:00:00 0000-00-00 00:00:00 0000-00-00 00:00:00
1997-12-31 23:47:59 1997-12-31 23:47:59 1997-12-31 23:47:59 1997-12-31 23:47:59 1997-12-31 23:47:59 1997-12-31 23:47:59 1997-12-31 23:47:59
drop table t1;
-create table t1 (a timestamp default 1);
-ERROR 42000: Invalid default value for 'a'
+create table t1 (t1 timestamp, t2 timestamp default now());
+ERROR HY000: Incorrect table definition; There can only be one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
+create table t1 (t1 timestamp, t2 timestamp on update now());
+ERROR HY000: Incorrect table definition; There can only be one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
+create table t1 (t1 timestamp, t2 timestamp default now() on update now());
+ERROR HY000: Incorrect table definition; There can only be one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
+create table t1 (t1 timestamp default now(), t2 timestamp on update now());
+ERROR HY000: Incorrect table definition; There can only be one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
+create table t1 (t1 timestamp on update now(), t2 timestamp default now() on update now());
+ERROR HY000: Incorrect table definition; There can only be one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
+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;
+t1 t2 t3
+2003-01-01 00:00:00 2001-09-09 04:46:41 0000-00-00 00:00:00
+2003-01-01 00:00:00 NULL 0000-00-00 00:00:00
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `t1` timestamp NOT NULL default '2003-01-01 00:00:00',
+ `t2` datetime default NULL,
+ `t3` timestamp NOT NULL default '0000-00-00 00:00:00'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+show columns from t1;
+Field Type Null Key Default Extra
+t1 timestamp YES 2003-01-01 00:00:00
+t2 datetime YES NULL
+t3 timestamp YES 0000-00-00 00:00:00
+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;
+t1 t2 t3
+2001-09-09 04:46:42 2001-09-09 04:46:43 0000-00-00 00:00:00
+2001-09-09 04:46:43 NULL 0000-00-00 00:00:00
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `t1` timestamp NOT NULL default CURRENT_TIMESTAMP,
+ `t2` datetime default NULL,
+ `t3` timestamp NOT NULL default '0000-00-00 00:00:00'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+show columns from t1;
+Field Type Null Key Default Extra
+t1 timestamp YES CURRENT_TIMESTAMP
+t2 datetime YES NULL
+t3 timestamp YES 0000-00-00 00:00:00
+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;
+t1 t2
+2003-01-01 00:00:00 NULL
+SET TIMESTAMP=1000000005;
+update t1 set t2=now();
+SET TIMESTAMP=1000000005;
+insert into t1 (t1) values (default);
+select * from t1;
+t1 t2
+2001-09-09 04:46:45 2001-09-09 04:46:45
+2003-01-01 00:00:00 NULL
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `t1` timestamp NOT NULL default '2003-01-01 00:00:00' on update CURRENT_TIMESTAMP,
+ `t2` datetime default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+show columns from t1;
+Field Type Null Key Default Extra
+t1 timestamp YES 2003-01-01 00:00:00
+t2 datetime YES NULL
+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;
+t1 t2
+2001-09-09 04:46:46 NULL
+SET TIMESTAMP=1000000007;
+update t1 set t2=now();
+SET TIMESTAMP=1000000007;
+insert into t1 (t1) values (default);
+select * from t1;
+t1 t2
+2001-09-09 04:46:47 2001-09-09 04:46:47
+2001-09-09 04:46:47 NULL
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `t1` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+ `t2` datetime default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+show columns from t1;
+Field Type Null Key Default Extra
+t1 timestamp YES CURRENT_TIMESTAMP
+t2 datetime YES NULL
+drop table t1;
+create table t1 (t1 timestamp, t2 datetime, t3 timestamp);
+SET TIMESTAMP=1000000007;
+insert into t1 values ();
+select * from t1;
+t1 t2 t3
+2001-09-09 04:46:47 NULL 0000-00-00 00:00:00
+SET TIMESTAMP=1000000008;
+update t1 set t2=now();
+SET TIMESTAMP=1000000008;
+insert into t1 (t1,t3) values (default, default);
+select * from t1;
+t1 t2 t3
+2001-09-09 04:46:48 2001-09-09 04:46:48 0000-00-00 00:00:00
+2001-09-09 04:46:48 NULL 0000-00-00 00:00:00
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `t1` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+ `t2` datetime default NULL,
+ `t3` timestamp NOT NULL default '0000-00-00 00:00:00'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+show columns from t1;
+Field Type Null Key Default Extra
+t1 timestamp YES CURRENT_TIMESTAMP
+t2 datetime YES NULL
+t3 timestamp YES 0000-00-00 00:00:00
+drop table t1;
+create table t1 (t1 timestamp default current_timestamp on update current_timestamp, t2 datetime);
+SET TIMESTAMP=1000000009;
+insert into t1 values ();
+select * from t1;
+t1 t2
+2001-09-09 04:46:49 NULL
+SET TIMESTAMP=1000000010;
+update t1 set t2=now();
+SET TIMESTAMP=1000000011;
+insert into t1 (t1) values (default);
+select * from t1;
+t1 t2
+2001-09-09 04:46:50 2001-09-09 04:46:50
+2001-09-09 04:46:51 NULL
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `t1` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+ `t2` datetime default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+show columns from t1;
+Field Type Null Key Default Extra
+t1 timestamp YES CURRENT_TIMESTAMP
+t2 datetime YES NULL
+delete from t1;
+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;
+t1 t2
+2004-04-02 00:00:00 2004-04-01 00:00:00
+update t1 as ta, t1 as tb set tb.t1= '2004-04-03 00:00:00';
+select * from t1;
+t1 t2
+2004-04-03 00:00:00 2004-04-01 00:00:00
+drop table t1;
+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;
+pk t1 bulk
+1 2001-09-09 04:46:53 20
+drop table t1;
+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;
+pk t1 bulk
+1 2003-01-01 00:00:00 20
+drop table t1;
+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;
+pk t1 bulk
+1 2001-09-09 04:46:55 20
+drop table t1;
+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;
+t1 i
+2004-04-01 00:00:00 10
+drop table t1;
diff --git a/mysql-test/r/type_uint.result b/mysql-test/r/type_uint.result
index d948ca47972..f312e9b7f64 100644
--- a/mysql-test/r/type_uint.result
+++ b/mysql-test/r/type_uint.result
@@ -4,7 +4,7 @@ create table t1 (this int unsigned);
insert into t1 values (1);
insert into t1 values (-1);
Warnings:
-Warning 1263 Data truncated, out of range for column 'this' at row 1
+Warning 1264 Data truncated, out of range for column 'this' at row 1
select * from t1;
this
1
diff --git a/mysql-test/r/type_year.result b/mysql-test/r/type_year.result
index 25ddda88f48..84b688429db 100644
--- a/mysql-test/r/type_year.result
+++ b/mysql-test/r/type_year.result
@@ -26,3 +26,11 @@ y y2
2001 01
2069 69
drop table t1;
+create table t1 (y year);
+insert into t1 values (now());
+Warnings:
+Warning 1265 Data truncated for column 'y' at row 1
+select if(y = now(), 1, 0) from t1;
+if(y = now(), 1, 0)
+1
+drop table t1;
diff --git a/mysql-test/r/union.result b/mysql-test/r/union.result
index 4775dd5b9bb..7c02edb9c78 100644
--- a/mysql-test/r/union.result
+++ b/mysql-test/r/union.result
@@ -36,8 +36,6 @@ a b
1 a
2 b
3 c
-3 c
-3 c
4 d
5 f
6 e
@@ -48,8 +46,6 @@ select 0,'#' union select a,b from t1 union all select a,b from t2 union select
1 a
2 b
3 c
-3 c
-3 c
4 d
5 f
6 e
@@ -350,7 +346,7 @@ select found_rows();
found_rows()
4
(SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1) UNION SELECT * FROM t2 LIMIT 1;
-ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use
+ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION all SELECT * FROM t2 LIMIT 2;
a
1
@@ -438,6 +434,8 @@ create temporary table t1 select a from t1 union select a from t2;
drop temporary table t1;
create table t1 select a from t1 union select a from t2;
ERROR HY000: You can't specify target table 't1' for update in FROM clause
+select a from t1 union select a from t2 order by t2.a;
+ERROR 42S02: Unknown table 't2' in order clause
drop table t1,t2;
select length(version()) > 1 as `*` UNION select 2;
*
@@ -651,7 +649,7 @@ f
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `f` char(12) binary default NULL
+ `f` binary(12) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 SELECT y from t2 UNION select da from t2;
@@ -662,7 +660,7 @@ y
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `y` char(10) binary default NULL
+ `y` binary(10) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 SELECT y from t2 UNION select dt from t2;
@@ -673,7 +671,7 @@ y
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `y` char(19) binary default NULL
+ `y` binary(19) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 SELECT da from t2 UNION select dt from t2;
@@ -695,7 +693,7 @@ testc
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `dt` char(19) default NULL
+ `dt` binary(19) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 SELECT dt from t2 UNION select sv from t2;
@@ -706,7 +704,7 @@ testv
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `dt` char(19) default NULL
+ `dt` binary(19) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 SELECT sc from t2 UNION select sv from t2;
@@ -728,7 +726,7 @@ tetetetetest
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `dt` longblob
+ `dt` blob
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 SELECT sv from t2 UNION select b from t2;
@@ -856,7 +854,7 @@ Variable_name Value
Slow_queries 1
select count(*) from t1 where b=13 union select count(*) from t1 where a=7;
count(*)
-0
+10
26
show status like 'Slow_queries';
Variable_name Value
@@ -869,3 +867,60 @@ show status like 'Slow_queries';
Variable_name Value
Slow_queries 3
drop table t1;
+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);
+NAME PHONE NAME PHONE
+a 111 NULL NULL
+b 222 NULL NULL
+d 444 d 454
+NULL NULL f 666
+NULL NULL g 777
+drop table t1;
+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;
+n
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+alter table t1 add index myindex (col2);
+select col1 n from t1 union select col2 n from t1 order by n;
+n
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+drop table t1;
+create table t1 (i int);
+insert into t1 values (1);
+select * from t1 UNION select * from t1;
+i
+1
+select * from t1 UNION ALL select * from t1;
+i
+1
+1
+select * from t1 UNION select * from t1 UNION ALL select * from t1;
+i
+1
+1
+drop table t1;
+select 1 as a union all select 1 union all select 2 union select 1 union all select 2;
+a
+1
+2
+2
diff --git a/mysql-test/r/variables.result b/mysql-test/r/variables.result
index 5394c3e1e45..963dd97d336 100644
--- a/mysql-test/r/variables.result
+++ b/mysql-test/r/variables.result
@@ -115,7 +115,7 @@ explain extended select @@IDENTITY,last_insert_id(), @@identity;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select high_priority no_cache 345 AS `@@IDENTITY`,345 AS `last_insert_id()`,345 AS `@@identity`
+Note 1003 select high_priority no_cache 345 AS `@@IDENTITY`,last_insert_id() AS `last_insert_id()`,345 AS `@@identity`
set big_tables=OFF, big_tables=ON, big_tables=0, big_tables=1, big_tables="OFF", big_tables="ON";
set global concurrent_insert=ON;
show variables like 'concurrent_insert';
@@ -255,18 +255,22 @@ set character_set_client=UNKNOWN_CHARACTER_SET;
ERROR 42000: Unknown character set: 'UNKNOWN_CHARACTER_SET'
set collation_connection=UNKNOWN_COLLATION;
ERROR HY000: Unknown collation: 'UNKNOWN_COLLATION'
+set character_set_client=NULL;
+ERROR 42000: Variable 'character_set_client' can't be set to the value of 'NULL'
+set collation_connection=NULL;
+ERROR 42000: Variable 'collation_connection' can't be set to the value of 'NULL'
set global autocommit=1;
-ERROR HY000: Variable 'autocommit' is a LOCAL variable and can't be used with SET GLOBAL
+ERROR HY000: Variable 'autocommit' is a SESSION variable and can't be used with SET GLOBAL
select @@global.timestamp;
-ERROR HY000: Variable 'timestamp' is a LOCAL variable and can't be used with SET GLOBAL
+ERROR HY000: Variable 'timestamp' is a SESSION variable
set @@version='';
ERROR HY000: Unknown system variable 'version'
set @@concurrent_insert=1;
ERROR HY000: Variable 'concurrent_insert' is a GLOBAL variable and should be set with SET GLOBAL
set @@global.sql_auto_is_null=1;
-ERROR HY000: Variable 'sql_auto_is_null' is a LOCAL variable and can't be used with SET GLOBAL
+ERROR HY000: Variable 'sql_auto_is_null' is a SESSION variable and can't be used with SET GLOBAL
select @@global.sql_auto_is_null;
-ERROR HY000: Variable 'sql_auto_is_null' is a LOCAL variable and can't be used with SET GLOBAL
+ERROR HY000: Variable 'sql_auto_is_null' is a SESSION variable
set myisam_max_sort_file_size=100;
ERROR HY000: Variable 'myisam_max_sort_file_size' is a GLOBAL variable and should be set with SET GLOBAL
set myisam_max_extra_sort_file_size=100;
@@ -404,6 +408,19 @@ ERROR HY000: Unknown system variable 'xxxxxxxxxx'
select 1;
1
1
+select @@session.key_buffer_size;
+ERROR HY000: Variable 'key_buffer_size' is a GLOBAL variable
+set ft_boolean_syntax = @@init_connect;
+ERROR HY000: Variable 'ft_boolean_syntax' is a GLOBAL variable and should be set with SET GLOBAL
+set global ft_boolean_syntax = @@init_connect;
+ERROR 42000: Variable 'ft_boolean_syntax' can't be set to the value of ''
+set init_connect = NULL;
+ERROR HY000: Variable 'init_connect' is a GLOBAL variable and should be set with SET GLOBAL
+set global init_connect = NULL;
+set ft_boolean_syntax = @@init_connect;
+ERROR HY000: Variable 'ft_boolean_syntax' is a GLOBAL variable and should be set with SET GLOBAL
+set global ft_boolean_syntax = @@init_connect;
+ERROR 42000: Variable 'ft_boolean_syntax' can't be set to the value of ''
select @@global.max_user_connections,@@local.max_join_size;
@@global.max_user_connections @@session.max_join_size
100 200
@@ -428,3 +445,13 @@ set @a=@b, @b=@a;
select @a, @b;
@a @b
2 1
+set @@global.global.key_buffer_size= 1;
+ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'key_buffer_size= 1' at line 1
+set GLOBAL global.key_buffer_size= 1;
+ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'key_buffer_size= 1' at line 1
+SELECT @@global.global.key_buffer_size;
+ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'key_buffer_size' at line 1
+SELECT @@global.session.key_buffer_size;
+ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'key_buffer_size' at line 1
+SELECT @@global.local.key_buffer_size;
+ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'key_buffer_size' at line 1
diff --git a/mysql-test/r/warnings.result b/mysql-test/r/warnings.result
index b675d189d30..19d44ab6fea 100644
--- a/mysql-test/r/warnings.result
+++ b/mysql-test/r/warnings.result
@@ -4,19 +4,19 @@ create table t1 (a int);
insert into t1 values (1);
insert into t1 values ("hej");
Warnings:
-Warning 1264 Data truncated for column 'a' at row 1
+Warning 1265 Data truncated for column 'a' at row 1
insert into t1 values ("hej"),("då");
Warnings:
-Warning 1264 Data truncated for column 'a' at row 1
-Warning 1264 Data truncated for column 'a' at row 2
+Warning 1265 Data truncated for column 'a' at row 1
+Warning 1265 Data truncated for column 'a' at row 2
set SQL_WARNINGS=1;
insert into t1 values ("hej");
Warnings:
-Warning 1264 Data truncated for column 'a' at row 1
+Warning 1265 Data truncated for column 'a' at row 1
insert into t1 values ("hej"),("då");
Warnings:
-Warning 1264 Data truncated for column 'a' at row 1
-Warning 1264 Data truncated for column 'a' at row 2
+Warning 1265 Data truncated for column 'a' at row 1
+Warning 1265 Data truncated for column 'a' at row 2
drop table t1;
set SQL_WARNINGS=0;
drop temporary table if exists not_exists;
@@ -43,13 +43,13 @@ drop table t1;
create table t1(a tinyint, b int not null, c date, d char(5));
load data infile '../../std_data/warnings_loaddata.dat' into table t1 fields terminated by ',';
Warnings:
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'b' at row 2
-Warning 1264 Data truncated for column 'd' at row 3
-Warning 1264 Data truncated for column 'c' at row 4
-Warning 1260 Row 5 doesn't contain data for all columns
-Warning 1264 Data truncated for column 'b' at row 6
-Warning 1261 Row 7 was truncated; It contained more data than there where input columns
-Warning 1263 Data truncated, out of range for column 'a' at row 8
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'b' at row 2
+Warning 1265 Data truncated for column 'd' at row 3
+Warning 1265 Data truncated for column 'c' at row 4
+Warning 1261 Row 5 doesn't contain data for all columns
+Warning 1265 Data truncated for column 'b' at row 6
+Warning 1262 Row 7 was truncated; It contained more data than there were input columns
+Warning 1264 Data truncated, out of range for column 'a' at row 8
select @@warning_count;
@@warning_count
7
@@ -57,44 +57,44 @@ drop table t1;
create table t1(a tinyint NOT NULL, b tinyint unsigned, c char(5));
insert into t1 values(NULL,100,'mysql'),(10,-1,'mysql ab'),(500,256,'open source'),(20,NULL,'test');
Warnings:
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'a' at row 1
-Warning 1263 Data truncated, out of range for column 'b' at row 2
-Warning 1264 Data truncated for column 'c' at row 2
-Warning 1263 Data truncated, out of range for column 'a' at row 3
-Warning 1263 Data truncated, out of range for column 'b' at row 3
-Warning 1264 Data truncated for column 'c' at row 3
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'a' at row 1
+Warning 1264 Data truncated, out of range for column 'b' at row 2
+Warning 1265 Data truncated for column 'c' at row 2
+Warning 1264 Data truncated, out of range for column 'a' at row 3
+Warning 1264 Data truncated, out of range for column 'b' at row 3
+Warning 1265 Data truncated for column 'c' at row 3
alter table t1 modify c char(4);
Warnings:
-Warning 1264 Data truncated for column 'c' at row 1
-Warning 1264 Data truncated for column 'c' at row 2
+Warning 1265 Data truncated for column 'c' at row 1
+Warning 1265 Data truncated for column 'c' at row 2
alter table t1 add d char(2);
update t1 set a=NULL where a=10;
Warnings:
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'a' at row 2
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'a' at row 2
update t1 set c='mysql ab' where c='test';
Warnings:
-Warning 1264 Data truncated for column 'c' at row 4
+Warning 1265 Data truncated for column 'c' at row 4
update t1 set d=c;
Warnings:
-Warning 1264 Data truncated for column 'd' at row 1
-Warning 1264 Data truncated for column 'd' at row 2
-Warning 1264 Data truncated for column 'd' at row 3
-Warning 1264 Data truncated for column 'd' at row 4
+Warning 1265 Data truncated for column 'd' at row 1
+Warning 1265 Data truncated for column 'd' at row 2
+Warning 1265 Data truncated for column 'd' at row 3
+Warning 1265 Data truncated for column 'd' at row 4
create table t2(a tinyint NOT NULL, b char(3));
insert into t2 select b,c from t1;
Warnings:
-Warning 1264 Data truncated for column 'b' at row 1
-Warning 1264 Data truncated for column 'b' at row 2
-Warning 1264 Data truncated for column 'b' at row 3
-Warning 1262 Data truncated, NULL supplied to NOT NULL column 'a' at row 4
-Warning 1264 Data truncated for column 'b' at row 4
+Warning 1265 Data truncated for column 'b' at row 1
+Warning 1265 Data truncated for column 'b' at row 2
+Warning 1265 Data truncated for column 'b' at row 3
+Warning 1263 Data truncated, NULL supplied to NOT NULL column 'a' at row 4
+Warning 1265 Data truncated for column 'b' at row 4
insert into t2(b) values('mysqlab');
Warnings:
-Warning 1264 Data truncated for column 'b' at row 1
+Warning 1265 Data truncated for column 'b' at row 1
set sql_warnings=1;
insert into t2(b) values('mysqlab');
Warnings:
-Warning 1264 Data truncated for column 'b' at row 1
+Warning 1265 Data truncated for column 'b' at row 1
set sql_warnings=0;
drop table t1, t2;
create table t1(a char(10));
@@ -102,34 +102,34 @@ alter table t1 add b char;
set max_error_count=10;
update t1 set b=a;
Warnings:
-Warning 1264 Data truncated for column 'b' at row 1
-Warning 1264 Data truncated for column 'b' at row 2
-Warning 1264 Data truncated for column 'b' at row 3
-Warning 1264 Data truncated for column 'b' at row 4
-Warning 1264 Data truncated for column 'b' at row 5
-Warning 1264 Data truncated for column 'b' at row 6
-Warning 1264 Data truncated for column 'b' at row 7
-Warning 1264 Data truncated for column 'b' at row 8
-Warning 1264 Data truncated for column 'b' at row 9
-Warning 1264 Data truncated for column 'b' at row 10
+Warning 1265 Data truncated for column 'b' at row 1
+Warning 1265 Data truncated for column 'b' at row 2
+Warning 1265 Data truncated for column 'b' at row 3
+Warning 1265 Data truncated for column 'b' at row 4
+Warning 1265 Data truncated for column 'b' at row 5
+Warning 1265 Data truncated for column 'b' at row 6
+Warning 1265 Data truncated for column 'b' at row 7
+Warning 1265 Data truncated for column 'b' at row 8
+Warning 1265 Data truncated for column 'b' at row 9
+Warning 1265 Data truncated for column 'b' at row 10
select @@warning_count;
@@warning_count
50
drop table t1;
create table t1 (id int) engine=isam;
Warnings:
-Warning 1265 Using storage engine MyISAM for table 't1'
+Warning 1266 Using storage engine MyISAM for table 't1'
alter table t1 engine=isam;
Warnings:
-Warning 1265 Using storage engine MyISAM for table 't1'
+Warning 1266 Using storage engine MyISAM for table 't1'
drop table t1;
create table t1 (id int) type=heap;
Warnings:
-Warning 1286 'TYPE=storage_engine' is deprecated. Use 'ENGINE=storage_engine' instead.
+Warning 1287 'TYPE=storage_engine' is deprecated, use 'ENGINE=storage_engine' instead
alter table t1 type=myisam;
Warnings:
-Warning 1286 'TYPE=storage_engine' is deprecated. Use 'ENGINE=storage_engine' instead.
+Warning 1287 'TYPE=storage_engine' is deprecated, use 'ENGINE=storage_engine' instead
drop table t1;
set table_type=MYISAM;
Warnings:
-Warning 1286 'table_type' is deprecated. Use 'storage_engine' instead.
+Warning 1287 'table_type' is deprecated, use 'storage_engine' instead
diff --git a/mysql-test/std_data/init_file.dat b/mysql-test/std_data/init_file.dat
new file mode 100644
index 00000000000..4236ada1142
--- /dev/null
+++ b/mysql-test/std_data/init_file.dat
@@ -0,0 +1 @@
+select * from mysql.user as t1, mysql.user as t2, mysql.user as t3, mysql.user as t4, mysql.user as t5, mysql.user as t6, mysql.user as t7, mysql.user as t8; \ No newline at end of file
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;