From 453a941d50dc8ad60539812736021d74598f9ba7 Mon Sep 17 00:00:00 2001 From: Georgi Kodinov Date: Wed, 2 Sep 2009 13:23:37 +0300 Subject: moved version to 5.0-main --- .bzr-mysql/default.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.bzr-mysql/default.conf b/.bzr-mysql/default.conf index 557df1b1ffe..f79c1cd6319 100644 --- a/.bzr-mysql/default.conf +++ b/.bzr-mysql/default.conf @@ -1,4 +1,4 @@ [MYSQL] post_commit_to = "commits@lists.mysql.com" post_push_to = "commits@lists.mysql.com" -tree_name = "mysql-5.0-bugteam" +tree_name = "mysql-5.0" -- cgit v1.2.1 From 32c7efa6b420b09e00d42b99f29a790064694d3b Mon Sep 17 00:00:00 2001 From: Sergey Vojtovich Date: Wed, 2 Sep 2009 16:19:28 +0500 Subject: BUG#46483 - drop table of partitioned table may leave extraneous file Online/fast ALTER TABLE of a partitioned table may leave temporary file in database directory. Fixed by removing unnecessary call to handler::ha_create_handler_files(), which was creating partitioning definition file. mysql-test/r/partition_innodb.result: A test case for BUG#46483. mysql-test/t/partition_innodb.test: A test case for BUG#46483. sql/unireg.cc: Do not call ha_create_handler_files() when we were requested to create only dot-frm file. --- mysql-test/r/partition_innodb.result | 4 ++++ mysql-test/t/partition_innodb.test | 12 ++++++++++++ sql/unireg.cc | 8 ++++---- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/mysql-test/r/partition_innodb.result b/mysql-test/r/partition_innodb.result index ad4d08e89ff..8af9133ab3f 100644 --- a/mysql-test/r/partition_innodb.result +++ b/mysql-test/r/partition_innodb.result @@ -256,3 +256,7 @@ SUBPARTITION BY KEY (char_column) SUBPARTITIONS 2 (PARTITION p1 VALUES LESS THAN (5) ENGINE = MyISAM) */ drop table t1; +CREATE TABLE t1 (a INT) ENGINE=InnoDB +PARTITION BY list(a) (PARTITION p1 VALUES IN (1)); +CREATE INDEX i1 ON t1 (a); +DROP TABLE t1; diff --git a/mysql-test/t/partition_innodb.test b/mysql-test/t/partition_innodb.test index 2abbceffbb0..c2e98ab59b8 100644 --- a/mysql-test/t/partition_innodb.test +++ b/mysql-test/t/partition_innodb.test @@ -270,3 +270,15 @@ PARTITION BY RANGE (int_column) (PARTITION p1 VALUES LESS THAN (5)); show create table t1; drop table t1; + +# +# BUG#46483 - drop table of partitioned table may leave extraneous file +# Note: was only repeatable with InnoDB plugin +# +CREATE TABLE t1 (a INT) ENGINE=InnoDB + PARTITION BY list(a) (PARTITION p1 VALUES IN (1)); +CREATE INDEX i1 ON t1 (a); +DROP TABLE t1; +let $MYSQLD_DATADIR= `SELECT @@datadir`; +# Before the fix it should show extra file like #sql-2405_2.par +--list_files $MYSQLD_DATADIR/test/ * diff --git a/sql/unireg.cc b/sql/unireg.cc index 68a352e4a44..60674b8390b 100644 --- a/sql/unireg.cc +++ b/sql/unireg.cc @@ -412,10 +412,10 @@ int rea_create_table(THD *thd, const char *path, DBUG_ASSERT(*fn_rext(frm_name)); if (thd->variables.keep_files_on_create) create_info->options|= HA_CREATE_KEEP_FILES; - if (file->ha_create_handler_files(path, NULL, CHF_CREATE_FLAG, create_info)) - goto err_handler; - if (!create_info->frm_only && ha_create_table(thd, path, db, table_name, - create_info,0)) + if (!create_info->frm_only && + (file->ha_create_handler_files(path, NULL, CHF_CREATE_FLAG, + create_info) || + ha_create_table(thd, path, db, table_name, create_info, 0))) goto err_handler; DBUG_RETURN(0); -- cgit v1.2.1 From 183607b8c864684a67fea2c11fa2755abd11f6ab Mon Sep 17 00:00:00 2001 From: Georgi Kodinov Date: Wed, 2 Sep 2009 16:36:52 +0300 Subject: Backported the --parallel=str option from mtr2 for backward compatibility with the newer pb2 testing environments --- mysql-test/mysql-test-run.pl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index f60701b7b49..e98e05eadb1 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -302,6 +302,7 @@ our $debug_compiled_binaries; our %mysqld_variables; +our $opt_parallel; my $source_dist= 0; our $opt_max_save_core= 5; @@ -645,6 +646,7 @@ sub command_line_setup () { 'testcase-timeout=i' => \$opt_testcase_timeout, 'suite-timeout=i' => \$opt_suite_timeout, 'warnings|log-warnings' => \$opt_warnings, + 'parallel=s' => \$opt_parallel, # Options which are no longer used (map { $_ => \&warn_about_removed_option } @removed_options), @@ -5278,6 +5280,7 @@ Misc options the specified test case (if any) fast Don't try to clean up from earlier runs reorder Reorder tests to get fewer server restarts + parallel=STR Compatibility slot. Ignored. help Get this help text testcase-timeout=MINUTES Max test case run time (default $default_testcase_timeout) -- cgit v1.2.1 From b64e7fb5befaee89f1db90db05e80e4249feba77 Mon Sep 17 00:00:00 2001 From: Georgi Kodinov Date: Wed, 2 Sep 2009 18:42:08 +0300 Subject: fixed a valgrind warning in partition_pruning --- sql/partition_info.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sql/partition_info.h b/sql/partition_info.h index 8832b6ee409..9f438e8260b 100644 --- a/sql/partition_info.h +++ b/sql/partition_info.h @@ -311,5 +311,6 @@ void init_all_partitions_iterator(partition_info *part_info, { part_iter->part_nums.start= part_iter->part_nums.cur= 0; part_iter->part_nums.end= part_info->no_parts; + part_iter->ret_null_part= part_iter->ret_null_part_orig= FALSE; part_iter->get_next= get_next_partition_id_range; } -- cgit v1.2.1 From 9d82084d20b172c68fc84f2f1d0bc3a7b2ee2c2e Mon Sep 17 00:00:00 2001 From: Georgi Kodinov Date: Wed, 2 Sep 2009 19:42:46 +0300 Subject: back to -bugteam --- .bzr-mysql/default.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.bzr-mysql/default.conf b/.bzr-mysql/default.conf index f044f8e62da..e613cefc614 100644 --- a/.bzr-mysql/default.conf +++ b/.bzr-mysql/default.conf @@ -1,4 +1,4 @@ [MYSQL] post_commit_to = "commits@lists.mysql.com" post_push_to = "commits@lists.mysql.com" -tree_name = "mysql-5.1" +tree_name = "mysql-5.1-bugteam" -- cgit v1.2.1 From 2fc9c5d19993f4af526b97153ee7363ac108831b Mon Sep 17 00:00:00 2001 From: Satya B Date: Thu, 3 Sep 2009 16:02:03 +0530 Subject: Fix for BUG#46591 - .frm file isn't sync'd with sync_frm enabled for CREATE TABLE...LIKE... The mysql server option 'sync_frm' is ignored when table is created with syntax CREATE TABLE .. LIKE.. Fixed by adding the MY_SYNC flag and calling my_sync() from my_copy() when the flag is set. In mysql_create_table(), when the 'sync_frm' is set, MY_SYNC flag is passed to my_copy(). Note: TestCase is not attached and can be tested manually using debugger. client/Makefile.am: BUG#46591 - .frm file isn't sync'd with sync_frm enabled for CREATE TABLE...LIKE... add my_sync to sources as it is used in my_copy() method include/my_sys.h: BUG#46591 - .frm file isn't sync'd with sync_frm enabled for CREATE TABLE...LIKE... MY_SYNC flag is added to call my_sync() method mysys/my_copy.c: BUG#46591 - .frm file isn't sync'd with sync_frm enabled for CREATE TABLE...LIKE... my_sync() is method is called when MY_SYNC is set in my_copy() sql/sql_table.cc: BUG#46591 - .frm file isn't sync'd with sync_frm enabled for CREATE TABLE...LIKE... Fixed mysql_create_like_table() to call my_sync() when opt_sync_frm variable is set --- client/Makefile.am | 1 + include/my_sys.h | 1 + mysys/my_copy.c | 7 +++++++ sql/sql_table.cc | 7 ++++++- 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/client/Makefile.am b/client/Makefile.am index e77d294b0ac..192b89f8a2c 100644 --- a/client/Makefile.am +++ b/client/Makefile.am @@ -35,6 +35,7 @@ mysql_LDADD = @readline_link@ @TERMCAP_LIB@ $(LDADD) $(CXXLDFLAGS) mysqltest_SOURCES= mysqltest.c \ $(top_srcdir)/mysys/my_getsystime.c \ $(top_srcdir)/mysys/my_copy.c \ + $(top_srcdir)/mysys/my_sync.c \ $(top_srcdir)/mysys/my_mkdir.c mysqltest_LDADD = $(top_builddir)/regex/libregex.a $(LDADD) diff --git a/include/my_sys.h b/include/my_sys.h index 4254ec3dbcb..4ec4846f528 100644 --- a/include/my_sys.h +++ b/include/my_sys.h @@ -68,6 +68,7 @@ extern int NEAR my_errno; /* Last error in mysys */ #define MY_HOLD_ON_ERROR 256 /* my_realloc() ; Return old ptr on error */ #define MY_DONT_OVERWRITE_FILE 1024 /* my_copy: Don't overwrite file */ #define MY_THREADSAFE 2048 /* my_seek(): lock fd mutex */ +#define MY_SYNC 4096 /* my_copy(): sync dst file */ #define MY_CHECK_ERROR 1 /* Params to my_end; Check open-close */ #define MY_GIVE_INFO 2 /* Give time info about process*/ diff --git a/mysys/my_copy.c b/mysys/my_copy.c index b6bb925e898..f44a497fbc8 100644 --- a/mysys/my_copy.c +++ b/mysys/my_copy.c @@ -87,6 +87,13 @@ int my_copy(const char *from, const char *to, myf MyFlags) my_write(to_file,buff,Count,MYF(MyFlags | MY_NABP))) goto err; + /* sync the destination file */ + if (MyFlags & MY_SYNC) + { + if (my_sync(to_file, MyFlags)) + goto err; + } + if (my_close(from_file,MyFlags) | my_close(to_file,MyFlags)) DBUG_RETURN(-1); /* Error on close */ diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 84370873054..5a3100685e0 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -2773,6 +2773,7 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table, TABLE_LIST *src_table, int err; bool res= TRUE; db_type not_used; + myf flags= MY_DONT_OVERWRITE_FILE; DBUG_ENTER("mysql_create_like_table"); /* @@ -2859,10 +2860,14 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table, TABLE_LIST *src_table, DBUG_EXECUTE_IF("sleep_create_like_before_copy", my_sleep(6000000);); + if (opt_sync_frm && !(create_info->options & HA_LEX_CREATE_TMP_TABLE)) + flags|= MY_SYNC; + /* Create a new table by copying from source table + and sync the new table if the flag MY_SYNC is set */ - if (my_copy(src_path, dst_path, MYF(MY_DONT_OVERWRITE_FILE))) + if (my_copy(src_path, dst_path, flags)) { if (my_errno == ENOENT) my_error(ER_BAD_DB_ERROR,MYF(0),db); -- cgit v1.2.1 From 629557ff13e28e3422dfa1c354c44ef2fd62e4d0 Mon Sep 17 00:00:00 2001 From: Georgi Kodinov Date: Thu, 3 Sep 2009 18:03:46 +0300 Subject: Bug #46791: Assertion failed:(table->key_read==0),function unknown function,file sql_base.cc When uncacheable queries are written to a temp table the optimizer must preserve the original JOIN structure, because it is re-using the JOIN structure to read from the resulting temporary table. This was done only for uncacheable sub-queries. But top level queries can also benefit from this mechanism, specially if they're using index access and need a reset. Fixed by not limiting the saving of JOIN structure to subqueries exclusively. Added a new test file to extend the existing (large) subquery.test. --- mysql-test/r/subselect4.result | 30 ++++++++++++++++++++++++++++++ mysql-test/t/subselect4.test | 32 ++++++++++++++++++++++++++++++++ sql/sql_select.cc | 8 ++------ 3 files changed, 64 insertions(+), 6 deletions(-) create mode 100644 mysql-test/r/subselect4.result create mode 100644 mysql-test/t/subselect4.test diff --git a/mysql-test/r/subselect4.result b/mysql-test/r/subselect4.result new file mode 100644 index 00000000000..68577cb2a4c --- /dev/null +++ b/mysql-test/r/subselect4.result @@ -0,0 +1,30 @@ +# +# Bug #46791: Assertion failed:(table->key_read==0),function unknown +# function,file sql_base.cc +# +CREATE TABLE t1 (a INT, b INT, KEY(a)); +INSERT INTO t1 VALUES (1,1),(2,2); +CREATE TABLE t2 LIKE t1; +INSERT INTO t2 VALUES (1,1),(2,2); +CREATE TABLE t3 LIKE t1; +# should have 1 impossible where and 2 dependent subqueries +EXPLAIN +SELECT 1 FROM t1 +WHERE NOT EXISTS (SELECT 1 FROM t2 WHERE 1 = (SELECT MIN(t2.b) FROM t3)) +ORDER BY count(*); +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 index NULL a 5 NULL 2 Using index; Using temporary +2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where +3 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL no matching row in const table +# should not crash the next statement +SELECT 1 FROM t1 +WHERE NOT EXISTS (SELECT 1 FROM t2 WHERE 1 = (SELECT MIN(t2.b) FROM t3)) +ORDER BY count(*); +1 +1 +# should not crash: the crash is caused by the previous statement +SELECT 1; +1 +1 +DROP TABLE t1,t2,t3; +End of 5.0 tests. diff --git a/mysql-test/t/subselect4.test b/mysql-test/t/subselect4.test new file mode 100644 index 00000000000..ff4cdf3c439 --- /dev/null +++ b/mysql-test/t/subselect4.test @@ -0,0 +1,32 @@ +# General purpose bug fix tests go here : subselect.test too large + + +--echo # +--echo # Bug #46791: Assertion failed:(table->key_read==0),function unknown +--echo # function,file sql_base.cc +--echo # + +CREATE TABLE t1 (a INT, b INT, KEY(a)); +INSERT INTO t1 VALUES (1,1),(2,2); +CREATE TABLE t2 LIKE t1; +INSERT INTO t2 VALUES (1,1),(2,2); +CREATE TABLE t3 LIKE t1; + +--echo # should have 1 impossible where and 2 dependent subqueries +EXPLAIN +SELECT 1 FROM t1 +WHERE NOT EXISTS (SELECT 1 FROM t2 WHERE 1 = (SELECT MIN(t2.b) FROM t3)) +ORDER BY count(*); + +--echo # should not crash the next statement +SELECT 1 FROM t1 +WHERE NOT EXISTS (SELECT 1 FROM t2 WHERE 1 = (SELECT MIN(t2.b) FROM t3)) +ORDER BY count(*); + +--echo # should not crash: the crash is caused by the previous statement +SELECT 1; + +DROP TABLE t1,t2,t3; + + +--echo End of 5.0 tests. diff --git a/sql/sql_select.cc b/sql/sql_select.cc index b670e6e3637..9d5e67c9532 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -1474,12 +1474,8 @@ JOIN::optimize() } } - /* - If this join belongs to an uncacheable subquery save - the original join - */ - if (select_lex->uncacheable && !is_top_level_join() && - init_save_join_tab()) + /* If this join belongs to an uncacheable query save the original join */ + if (select_lex->uncacheable && init_save_join_tab()) DBUG_RETURN(-1); /* purecov: inspected */ } -- cgit v1.2.1 From fe79cb53853b9b0cdd81b21d144c9faaba586421 Mon Sep 17 00:00:00 2001 From: Satya B Date: Thu, 3 Sep 2009 23:34:42 +0530 Subject: Fix for Bug#33785 - myisamchk show warning message myisamchk tool generates warnings when run on an myisam files (.MYI or .MYD) This is because of the conversion of max_value for certain options in myisamchk from singed long to unsigned long The max value for the options key_buffer_size, read_buffer_size, write_buffer _size and sort_buffer_size is given as (long) ~0L which becomes -1 when casted from signed long to longlong and then casted to ulonglong. When (ulonglong) -1 is compared with maximal value for GET_ULONG data type, we adjust it to (ulonglong) ULONG_MAX and throw the warning. Fixed by using the right max size. Max values for the variables (from mysqld.cc) ---------------------------- 1. key_buffer_size 5.0: ULONG_MAX 5.1: SIZE_T_MAX 6.0: SIZE_T_MAX 2. read_buffer_size and write_buffer_size 5.0: INT_MAX32 5.1: INT_MAX32 6.0: INT_MAX32 3. sort_buffer_size (aka myisam_sort_buffer_size) 5.0: UINT_MAX32 5.1: ULONG_MAX 6.0: ULONG_MAX Note: testcase not attached myisam/myisamchk.c: Bug#33785 - myisamchk show warning message Fixed the Max value for key_buffer_size, read_buffer_size, write_buffer_size and sort_buffer_size options --- myisam/myisamchk.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/myisam/myisamchk.c b/myisam/myisamchk.c index b1a61f2f373..11d3ac2e430 100644 --- a/myisam/myisamchk.c +++ b/myisam/myisamchk.c @@ -295,7 +295,7 @@ static struct my_option my_long_options[] = { "key_buffer_size", OPT_KEY_BUFFER_SIZE, "", (gptr*) &check_param.use_buffers, (gptr*) &check_param.use_buffers, 0, GET_ULONG, REQUIRED_ARG, (long) USE_BUFFER_INIT, (long) MALLOC_OVERHEAD, - (long) ~0L, (long) MALLOC_OVERHEAD, (long) IO_SIZE, 0}, + ULONG_MAX, (long) MALLOC_OVERHEAD, (long) IO_SIZE, 0}, { "key_cache_block_size", OPT_KEY_CACHE_BLOCK_SIZE, "", (gptr*) &opt_key_cache_block_size, (gptr*) &opt_key_cache_block_size, 0, @@ -309,17 +309,17 @@ static struct my_option my_long_options[] = (gptr*) &check_param.read_buffer_length, (gptr*) &check_param.read_buffer_length, 0, GET_ULONG, REQUIRED_ARG, (long) READ_BUFFER_INIT, (long) MALLOC_OVERHEAD, - (long) ~0L, (long) MALLOC_OVERHEAD, (long) 1L, 0}, + INT_MAX32, (long) MALLOC_OVERHEAD, (long) 1L, 0}, { "write_buffer_size", OPT_WRITE_BUFFER_SIZE, "", (gptr*) &check_param.write_buffer_length, (gptr*) &check_param.write_buffer_length, 0, GET_ULONG, REQUIRED_ARG, (long) READ_BUFFER_INIT, (long) MALLOC_OVERHEAD, - (long) ~0L, (long) MALLOC_OVERHEAD, (long) 1L, 0}, + INT_MAX32, (long) MALLOC_OVERHEAD, (long) 1L, 0}, { "sort_buffer_size", OPT_SORT_BUFFER_SIZE, "", (gptr*) &check_param.sort_buffer_length, (gptr*) &check_param.sort_buffer_length, 0, GET_ULONG, REQUIRED_ARG, (long) SORT_BUFFER_INIT, (long) (MIN_SORT_BUFFER + MALLOC_OVERHEAD), - (long) ~0L, (long) MALLOC_OVERHEAD, (long) 1L, 0}, + UINT_MAX32, (long) MALLOC_OVERHEAD, (long) 1L, 0}, { "sort_key_blocks", OPT_SORT_KEY_BLOCKS, "", (gptr*) &check_param.sort_key_blocks, (gptr*) &check_param.sort_key_blocks, 0, GET_ULONG, REQUIRED_ARG, -- cgit v1.2.1 From 1eb40ce319411cf0f06a6115210b5475593cef7f Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 4 Sep 2009 09:33:45 +0800 Subject: BUG#45581 Test rpl_row_sp006_InnoDB fails randomly: Unknown database 'mysqltest1' Essentially, Bug#45574 results in this bug. The 'CREATE DATABASE IF NOT EXISTS' statement was not binlogged, when the database has existed. Sometimes, the master and slaves become inconsistent. The "CREATE DATABASE IF NOT EXISTS mysqltest1" statement is not binlogged if the db 'mysqltest1' existed before the test case is executed. So the db 'mysqltest1' can't be created on slave. Patch of Bug#45574 has resolved this problem. But I think it is better to replace 'mysqltest1' by default db 'test'. --- mysql-test/extra/rpl_tests/rpl_row_sp006.test | 41 ++++++++++------------ mysql-test/suite/rpl/r/rpl_row_sp006_InnoDB.result | 36 +++++++++---------- 2 files changed, 36 insertions(+), 41 deletions(-) diff --git a/mysql-test/extra/rpl_tests/rpl_row_sp006.test b/mysql-test/extra/rpl_tests/rpl_row_sp006.test index 897d7e492bf..16a8374ae7f 100644 --- a/mysql-test/extra/rpl_tests/rpl_row_sp006.test +++ b/mysql-test/extra/rpl_tests/rpl_row_sp006.test @@ -9,29 +9,27 @@ ############################################################################# # Begin clean up test section -connection master; --disable_warnings -create database if not exists mysqltest1; -DROP PROCEDURE IF EXISTS mysqltest1.p1; -DROP PROCEDURE IF EXISTS mysqltest1.p2; -DROP TABLE IF EXISTS mysqltest1.t2; -DROP TABLE IF EXISTS mysqltest1.t1; +DROP TABLE IF EXISTS t1; +DROP TABLE IF EXISTS t2; +DROP PROCEDURE IF EXISTS p1; +DROP PROCEDURE IF EXISTS p2; --enable_warnings # End of cleanup # Begin test section 1 -eval CREATE TABLE IF NOT EXISTS mysqltest1.t1(name CHAR(16), birth DATE,PRIMARY KEY(name))ENGINE=$engine_type; -eval CREATE TABLE IF NOT EXISTS mysqltest1.t2(name CHAR(16), age INT ,PRIMARY KEY(name))ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t1(name CHAR(16), birth DATE,PRIMARY KEY(name))ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t2(name CHAR(16), age INT ,PRIMARY KEY(name))ENGINE=$engine_type; delimiter |; -CREATE PROCEDURE mysqltest1.p1() +CREATE PROCEDURE p1() BEGIN DECLARE done INT DEFAULT 0; DECLARE spa CHAR(16); DECLARE spb INT; DECLARE cur1 CURSOR FOR SELECT name, (YEAR(CURDATE())-YEAR(birth))-(RIGHT(CURDATE(),5) $MYSQLTEST_VARDIR/tmp/sp006_master.sql ---exec $MYSQL_DUMP_SLAVE --compact --order-by-primary --skip-extended-insert --no-create-info mysqltest1 > $MYSQLTEST_VARDIR/tmp/sp006_slave.sql +--exec $MYSQL_DUMP --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/sp006_master.sql +--exec $MYSQL_DUMP_SLAVE --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/sp006_slave.sql -DROP PROCEDURE IF EXISTS mysqltest1.p1; -DROP PROCEDURE IF EXISTS mysqltest1.p2; -DROP TABLE IF EXISTS mysqltest1.t1; -DROP TABLE IF EXISTS mysqltest1.t2; -DROP DATABASE mysqltest1; +DROP TABLE t1; +DROP TABLE t2; +DROP PROCEDURE p1; +DROP PROCEDURE p2; # Lets compare. Note: If they match test will pass, if they do not match # the test will show that the diff statement failed and not reject file diff --git a/mysql-test/suite/rpl/r/rpl_row_sp006_InnoDB.result b/mysql-test/suite/rpl/r/rpl_row_sp006_InnoDB.result index 8339e77d3a0..6792a701577 100644 --- a/mysql-test/suite/rpl/r/rpl_row_sp006_InnoDB.result +++ b/mysql-test/suite/rpl/r/rpl_row_sp006_InnoDB.result @@ -4,21 +4,20 @@ reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; start slave; -create database if not exists mysqltest1; -DROP PROCEDURE IF EXISTS mysqltest1.p1; -DROP PROCEDURE IF EXISTS mysqltest1.p2; -DROP TABLE IF EXISTS mysqltest1.t2; -DROP TABLE IF EXISTS mysqltest1.t1; -CREATE TABLE IF NOT EXISTS mysqltest1.t1(name CHAR(16), birth DATE,PRIMARY KEY(name))ENGINE=InnoDB; -CREATE TABLE IF NOT EXISTS mysqltest1.t2(name CHAR(16), age INT ,PRIMARY KEY(name))ENGINE=InnoDB; -CREATE PROCEDURE mysqltest1.p1() +DROP TABLE IF EXISTS t1; +DROP TABLE IF EXISTS t2; +DROP PROCEDURE IF EXISTS p1; +DROP PROCEDURE IF EXISTS p2; +CREATE TABLE IF NOT EXISTS t1(name CHAR(16), birth DATE,PRIMARY KEY(name))ENGINE=InnoDB; +CREATE TABLE IF NOT EXISTS t2(name CHAR(16), age INT ,PRIMARY KEY(name))ENGINE=InnoDB; +CREATE PROCEDURE p1() BEGIN DECLARE done INT DEFAULT 0; DECLARE spa CHAR(16); DECLARE spb INT; DECLARE cur1 CURSOR FOR SELECT name, (YEAR(CURDATE())-YEAR(birth))-(RIGHT(CURDATE(),5) Date: Fri, 4 Sep 2009 09:27:11 +0530 Subject: Bug#45823 Assertion failure in file row/row0mysql.c line 1386 Inserting a negative value in the autoincrement column of a partitioned innodb table was causing the value of the auto increment counter to wrap around into a very large positive value. The consequences are the same as if a very large positive value was inserted into a column, e.g. reduced autoincrement range, failure to read autoincrement counter. The current patch ensures that before calculating the next auto increment value, the current value is within the positive maximum allowed limit. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#45823 Assertion failure in file row/row0mysql.c line 1386 Adds tests for performing insert,update and delete on a partition table with negative auto_increment values. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#45823 Assertion failure in file row/row0mysql.c line 1386 Result file for the innodb engine. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#45823 Assertion failure in file row/row0mysql.c line 1386 Result file for the memory engine. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#45823 Assertion failure in file row/row0mysql.c line 1386 Result file for the myisam engine. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#45823 Assertion failure in file row/row0mysql.c line 1386 Result file for the ndb engine. mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#45823 Assertion failure in file row/row0mysql.c line 1386 Adds a variable that allows the Archive engine to skip tests that involve insertion of negative auto increment values. mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#45823 Assertion failure in file row/row0mysql.c line 1386 Adds a variable that allows the Blackhole engine to skip tests that involve insertion of negative auto increment values. sql/ha_partition.cc: Bug#45823 Assertion failure in file row/row0mysql.c line 1386 Ensures that the current value is lesser than the upper limit for the type of the field before setting the next auto increment value to be calculated. sql/ha_partition.h: Bug#45823 Assertion failure in file row/row0mysql.c line 1386 Modifies the set_auto_increment_if_higher function, to take into account negative auto increment values when doing a comparison. --- .../suite/parts/inc/partition_auto_increment.inc | 192 +++++++++++++++++++++ .../parts/r/partition_auto_increment_innodb.result | 191 ++++++++++++++++++++ .../parts/r/partition_auto_increment_memory.result | 191 ++++++++++++++++++++ .../parts/r/partition_auto_increment_myisam.result | 191 ++++++++++++++++++++ .../parts/r/partition_auto_increment_ndb.result | 191 ++++++++++++++++++++ .../parts/t/partition_auto_increment_archive.test | 3 + .../t/partition_auto_increment_blackhole.test | 3 + sql/ha_partition.cc | 4 +- sql/ha_partition.h | 4 +- 9 files changed, 967 insertions(+), 3 deletions(-) diff --git a/mysql-test/suite/parts/inc/partition_auto_increment.inc b/mysql-test/suite/parts/inc/partition_auto_increment.inc index 6963de90c83..2c615e58ef9 100644 --- a/mysql-test/suite/parts/inc/partition_auto_increment.inc +++ b/mysql-test/suite/parts/inc/partition_auto_increment.inc @@ -623,3 +623,195 @@ SHOW CREATE TABLE t1; SELECT * FROM t1 ORDER BY c1; DROP TABLE t1; +if (!$skip_negative_auto_inc) +{ +--echo ############################################################################# +--echo # Bug #45823 - Assertion failure in file row/row0mysql.c line 1386 +--echo # Bug #43988 - AUTO_INCREMENT errors with partitioned InnoDB tables in 5.1.31 +--echo ############################################################################## + +--echo # Inserting negative autoincrement values into a partition table (partitions >= 4) + +eval CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), + c2 INT) ENGINE=$engine PARTITION BY HASH(c1) PARTITIONS 4; + +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +INSERT INTO t(c2) VALUES (30); +INSERT INTO t(c2) VALUES (40); + +SELECT * FROM t ORDER BY c1 ASC; + +DROP TABLE t; + +--echo # Reading from a partition table (partitions >= 2 ) after inserting a negative +--echo # value into the auto increment column + + +eval CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), + c2 INT) ENGINE=$engine PARTITION BY HASH(c1) PARTITIONS 2; + +INSERT INTO t VALUES (-2,-20); +INSERT INTO t(c2) VALUES (30); + +SELECT * FROM t ORDER BY c1 ASC; + +DROP TABLE t; + +--echo # Inserting negative auto increment value into a partition table (partitions >= 2) +--echo # auto increment value > 2. + +eval CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), + c2 INT) ENGINE=$engine PARTITION BY HASH(c1) PARTITIONS 2; + +INSERT INTO t VALUES (-4,-20); +INSERT INTO t(c2) VALUES (30); +INSERT INTO t(c2) VALUES (40); + +SELECT * FROM t ORDER BY c1 ASC; + +DROP TABLE t; + +--echo # Inserting -1 into autoincrement column of a partition table (partition >= 4) + +eval CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), + c2 INT) ENGINE=$engine PARTITION BY HASH(c1) PARTITIONS 4; + +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); + +SELECT * FROM t ORDER BY c1 ASC; + +INSERT INTO t(c2) VALUES (30); + +SELECT * FROM t ORDER BY c1 ASC; + +DROP TABLE t; + +--echo # Deleting from an auto increment table after inserting negative values + +eval CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), + c2 INT) ENGINE=$engine PARTITION BY HASH(c1) PARTITIONS 4; + +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +INSERT INTO t(c2) VALUES (30); +INSERT INTO t VALUES (-3,-20); +INSERT INTO t(c2) VALUES (40); + +SELECT * FROM t ORDER BY c1 ASC; + +if (!$skip_delete) +{ +DELETE FROM t WHERE c1 > 1; +} + +SELECT * FROM t ORDER BY c1 ASC; + +DROP TABLE t; + +--echo # Inserting a positive value that exceeds maximum allowed value for an +--echo # Auto Increment column (positive maximum) + +eval CREATE TABLE t (c1 TINYINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), + c2 INT) ENGINE=$engine PARTITION BY HASH(c1) PARTITIONS 4; + +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (126,30); +INSERT INTO t VALUES (127,40); + +--error ER_DUP_ENTRY +INSERT INTO t VALUES (128,50); +--error ER_DUP_ENTRY +INSERT INTO t VALUES (129,60); + +SELECT * FROM t ORDER BY c1 ASC; + +DROP TABLE t; + +--echo # Inserting a negative value that goes below minimum allowed value for an +--echo # Auto Increment column (negative minimum) + +eval CREATE TABLE t (c1 TINYINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), + c2 INT) ENGINE=$engine PARTITION BY HASH(c1) PARTITIONS 4; + +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-127,30); +INSERT INTO t VALUES (-128,40); + +--error ER_DUP_ENTRY +INSERT INTO t VALUES (-129,50); +--error ER_DUP_ENTRY +INSERT INTO t VALUES (-130,60); + +SELECT * FROM t ORDER BY c1 ASC; + +DROP TABLE t; + +--echo # Updating the partition table with a negative Auto Increment value + +eval CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), + c2 INT) ENGINE=$engine PARTITION BY HASH(c1) PARTITIONS 4; + +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +INSERT INTO t(c2) VALUES (30); + +SELECT * FROM t ORDER BY c1 ASC; + +if (!$skip_update) +{ +UPDATE t SET c1 = -6 WHERE c1 = 2; +} + +SELECT * FROM t ORDER BY c1 ASC; + +INSERT INTO t(c2) VALUES (40); +INSERT INTO t(c2) VALUES (50); + +if (!$skip_update) +{ +UPDATE t SET c1 = -6 WHERE c1 = 2; +} + +SELECT * FROM t ORDER BY c1 ASC; + +DROP TABLE t; + +--echo # Updating the partition table with a value that crosses the upper limits +--echo # on both the positive and the negative side. + +eval CREATE TABLE t (c1 TINYINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), + c2 INT) ENGINE=$engine PARTITION BY HASH(c1) PARTITIONS 4; + +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (126,30); +INSERT INTO t VALUES (127,40); + +SELECT * FROM t ORDER BY c1 ASC; + +if (!$skip_update) +{ +UPDATE t SET c1 = 130 where c1 = 127; +} + +SELECT * FROM t ORDER BY c1 ASC; + +if (!$skip_update) +{ +UPDATE t SET c1 = -140 where c1 = 126; +} + +SELECT * FROM t ORDER BY c1 ASC; + +DROP TABLE t; + +--echo ############################################################################## +} diff --git a/mysql-test/suite/parts/r/partition_auto_increment_innodb.result b/mysql-test/suite/parts/r/partition_auto_increment_innodb.result index 9a23cd4364e..6295d14d98f 100644 --- a/mysql-test/suite/parts/r/partition_auto_increment_innodb.result +++ b/mysql-test/suite/parts/r/partition_auto_increment_innodb.result @@ -825,3 +825,194 @@ c1 4 5 DROP TABLE t1; +############################################################################# +# Bug #45823 - Assertion failure in file row/row0mysql.c line 1386 +# Bug #43988 - AUTO_INCREMENT errors with partitioned InnoDB tables in 5.1.31 +############################################################################## +# Inserting negative autoincrement values into a partition table (partitions >= 4) +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='InnoDB' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +INSERT INTO t(c2) VALUES (30); +INSERT INTO t(c2) VALUES (40); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-1 -10 +1 10 +2 20 +3 30 +4 40 +DROP TABLE t; +# Reading from a partition table (partitions >= 2 ) after inserting a negative +# value into the auto increment column +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='InnoDB' PARTITION BY HASH(c1) PARTITIONS 2; +INSERT INTO t VALUES (-2,-20); +INSERT INTO t(c2) VALUES (30); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-2 -20 +1 30 +DROP TABLE t; +# Inserting negative auto increment value into a partition table (partitions >= 2) +# auto increment value > 2. +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='InnoDB' PARTITION BY HASH(c1) PARTITIONS 2; +INSERT INTO t VALUES (-4,-20); +INSERT INTO t(c2) VALUES (30); +INSERT INTO t(c2) VALUES (40); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-4 -20 +1 30 +2 40 +DROP TABLE t; +# Inserting -1 into autoincrement column of a partition table (partition >= 4) +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='InnoDB' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-1 -10 +1 10 +2 20 +INSERT INTO t(c2) VALUES (30); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-1 -10 +1 10 +2 20 +3 30 +DROP TABLE t; +# Deleting from an auto increment table after inserting negative values +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='InnoDB' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +INSERT INTO t(c2) VALUES (30); +INSERT INTO t VALUES (-3,-20); +INSERT INTO t(c2) VALUES (40); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-3 -20 +-1 -10 +1 10 +2 20 +3 30 +4 40 +DELETE FROM t WHERE c1 > 1; +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-3 -20 +-1 -10 +1 10 +DROP TABLE t; +# Inserting a positive value that exceeds maximum allowed value for an +# Auto Increment column (positive maximum) +CREATE TABLE t (c1 TINYINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='InnoDB' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (126,30); +INSERT INTO t VALUES (127,40); +INSERT INTO t VALUES (128,50); +ERROR 23000: Duplicate entry '127' for key 'PRIMARY' +INSERT INTO t VALUES (129,60); +ERROR 23000: Duplicate entry '127' for key 'PRIMARY' +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +1 10 +2 20 +126 30 +127 40 +DROP TABLE t; +# Inserting a negative value that goes below minimum allowed value for an +# Auto Increment column (negative minimum) +CREATE TABLE t (c1 TINYINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='InnoDB' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-127,30); +INSERT INTO t VALUES (-128,40); +INSERT INTO t VALUES (-129,50); +ERROR 23000: Duplicate entry '-128' for key 'PRIMARY' +INSERT INTO t VALUES (-130,60); +ERROR 23000: Duplicate entry '-128' for key 'PRIMARY' +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-128 40 +-127 30 +1 10 +2 20 +DROP TABLE t; +# Updating the partition table with a negative Auto Increment value +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='InnoDB' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +INSERT INTO t(c2) VALUES (30); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-1 -10 +1 10 +2 20 +3 30 +UPDATE t SET c1 = -6 WHERE c1 = 2; +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-6 20 +-1 -10 +1 10 +3 30 +INSERT INTO t(c2) VALUES (40); +INSERT INTO t(c2) VALUES (50); +UPDATE t SET c1 = -6 WHERE c1 = 2; +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-6 20 +-1 -10 +1 10 +3 30 +4 40 +5 50 +DROP TABLE t; +# Updating the partition table with a value that crosses the upper limits +# on both the positive and the negative side. +CREATE TABLE t (c1 TINYINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='InnoDB' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (126,30); +INSERT INTO t VALUES (127,40); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +1 10 +2 20 +126 30 +127 40 +UPDATE t SET c1 = 130 where c1 = 127; +Warnings: +Warning 1264 Out of range value for column 'c1' at row 1 +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +1 10 +2 20 +126 30 +127 40 +UPDATE t SET c1 = -140 where c1 = 126; +Warnings: +Warning 1264 Out of range value for column 'c1' at row 1 +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-128 30 +1 10 +2 20 +127 40 +DROP TABLE t; +############################################################################## diff --git a/mysql-test/suite/parts/r/partition_auto_increment_memory.result b/mysql-test/suite/parts/r/partition_auto_increment_memory.result index f4d783825f4..6e3b990dc0f 100644 --- a/mysql-test/suite/parts/r/partition_auto_increment_memory.result +++ b/mysql-test/suite/parts/r/partition_auto_increment_memory.result @@ -851,3 +851,194 @@ c1 4 5 DROP TABLE t1; +############################################################################# +# Bug #45823 - Assertion failure in file row/row0mysql.c line 1386 +# Bug #43988 - AUTO_INCREMENT errors with partitioned InnoDB tables in 5.1.31 +############################################################################## +# Inserting negative autoincrement values into a partition table (partitions >= 4) +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='Memory' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +INSERT INTO t(c2) VALUES (30); +INSERT INTO t(c2) VALUES (40); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-1 -10 +1 10 +2 20 +3 30 +4 40 +DROP TABLE t; +# Reading from a partition table (partitions >= 2 ) after inserting a negative +# value into the auto increment column +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='Memory' PARTITION BY HASH(c1) PARTITIONS 2; +INSERT INTO t VALUES (-2,-20); +INSERT INTO t(c2) VALUES (30); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-2 -20 +1 30 +DROP TABLE t; +# Inserting negative auto increment value into a partition table (partitions >= 2) +# auto increment value > 2. +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='Memory' PARTITION BY HASH(c1) PARTITIONS 2; +INSERT INTO t VALUES (-4,-20); +INSERT INTO t(c2) VALUES (30); +INSERT INTO t(c2) VALUES (40); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-4 -20 +1 30 +2 40 +DROP TABLE t; +# Inserting -1 into autoincrement column of a partition table (partition >= 4) +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='Memory' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-1 -10 +1 10 +2 20 +INSERT INTO t(c2) VALUES (30); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-1 -10 +1 10 +2 20 +3 30 +DROP TABLE t; +# Deleting from an auto increment table after inserting negative values +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='Memory' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +INSERT INTO t(c2) VALUES (30); +INSERT INTO t VALUES (-3,-20); +INSERT INTO t(c2) VALUES (40); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-3 -20 +-1 -10 +1 10 +2 20 +3 30 +4 40 +DELETE FROM t WHERE c1 > 1; +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-3 -20 +-1 -10 +1 10 +DROP TABLE t; +# Inserting a positive value that exceeds maximum allowed value for an +# Auto Increment column (positive maximum) +CREATE TABLE t (c1 TINYINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='Memory' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (126,30); +INSERT INTO t VALUES (127,40); +INSERT INTO t VALUES (128,50); +ERROR 23000: Duplicate entry '127' for key 'PRIMARY' +INSERT INTO t VALUES (129,60); +ERROR 23000: Duplicate entry '127' for key 'PRIMARY' +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +1 10 +2 20 +126 30 +127 40 +DROP TABLE t; +# Inserting a negative value that goes below minimum allowed value for an +# Auto Increment column (negative minimum) +CREATE TABLE t (c1 TINYINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='Memory' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-127,30); +INSERT INTO t VALUES (-128,40); +INSERT INTO t VALUES (-129,50); +ERROR 23000: Duplicate entry '-128' for key 'PRIMARY' +INSERT INTO t VALUES (-130,60); +ERROR 23000: Duplicate entry '-128' for key 'PRIMARY' +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-128 40 +-127 30 +1 10 +2 20 +DROP TABLE t; +# Updating the partition table with a negative Auto Increment value +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='Memory' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +INSERT INTO t(c2) VALUES (30); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-1 -10 +1 10 +2 20 +3 30 +UPDATE t SET c1 = -6 WHERE c1 = 2; +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-6 20 +-1 -10 +1 10 +3 30 +INSERT INTO t(c2) VALUES (40); +INSERT INTO t(c2) VALUES (50); +UPDATE t SET c1 = -6 WHERE c1 = 2; +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-6 20 +-1 -10 +1 10 +3 30 +4 40 +5 50 +DROP TABLE t; +# Updating the partition table with a value that crosses the upper limits +# on both the positive and the negative side. +CREATE TABLE t (c1 TINYINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='Memory' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (126,30); +INSERT INTO t VALUES (127,40); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +1 10 +2 20 +126 30 +127 40 +UPDATE t SET c1 = 130 where c1 = 127; +Warnings: +Warning 1264 Out of range value for column 'c1' at row 1 +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +1 10 +2 20 +126 30 +127 40 +UPDATE t SET c1 = -140 where c1 = 126; +Warnings: +Warning 1264 Out of range value for column 'c1' at row 1 +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-128 30 +1 10 +2 20 +127 40 +DROP TABLE t; +############################################################################## diff --git a/mysql-test/suite/parts/r/partition_auto_increment_myisam.result b/mysql-test/suite/parts/r/partition_auto_increment_myisam.result index 6abf08b68a0..047b974f0a3 100644 --- a/mysql-test/suite/parts/r/partition_auto_increment_myisam.result +++ b/mysql-test/suite/parts/r/partition_auto_increment_myisam.result @@ -870,3 +870,194 @@ c1 4 5 DROP TABLE t1; +############################################################################# +# Bug #45823 - Assertion failure in file row/row0mysql.c line 1386 +# Bug #43988 - AUTO_INCREMENT errors with partitioned InnoDB tables in 5.1.31 +############################################################################## +# Inserting negative autoincrement values into a partition table (partitions >= 4) +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='MyISAM' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +INSERT INTO t(c2) VALUES (30); +INSERT INTO t(c2) VALUES (40); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-1 -10 +1 10 +2 20 +3 30 +4 40 +DROP TABLE t; +# Reading from a partition table (partitions >= 2 ) after inserting a negative +# value into the auto increment column +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='MyISAM' PARTITION BY HASH(c1) PARTITIONS 2; +INSERT INTO t VALUES (-2,-20); +INSERT INTO t(c2) VALUES (30); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-2 -20 +1 30 +DROP TABLE t; +# Inserting negative auto increment value into a partition table (partitions >= 2) +# auto increment value > 2. +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='MyISAM' PARTITION BY HASH(c1) PARTITIONS 2; +INSERT INTO t VALUES (-4,-20); +INSERT INTO t(c2) VALUES (30); +INSERT INTO t(c2) VALUES (40); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-4 -20 +1 30 +2 40 +DROP TABLE t; +# Inserting -1 into autoincrement column of a partition table (partition >= 4) +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='MyISAM' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-1 -10 +1 10 +2 20 +INSERT INTO t(c2) VALUES (30); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-1 -10 +1 10 +2 20 +3 30 +DROP TABLE t; +# Deleting from an auto increment table after inserting negative values +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='MyISAM' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +INSERT INTO t(c2) VALUES (30); +INSERT INTO t VALUES (-3,-20); +INSERT INTO t(c2) VALUES (40); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-3 -20 +-1 -10 +1 10 +2 20 +3 30 +4 40 +DELETE FROM t WHERE c1 > 1; +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-3 -20 +-1 -10 +1 10 +DROP TABLE t; +# Inserting a positive value that exceeds maximum allowed value for an +# Auto Increment column (positive maximum) +CREATE TABLE t (c1 TINYINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='MyISAM' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (126,30); +INSERT INTO t VALUES (127,40); +INSERT INTO t VALUES (128,50); +ERROR 23000: Duplicate entry '127' for key 'PRIMARY' +INSERT INTO t VALUES (129,60); +ERROR 23000: Duplicate entry '127' for key 'PRIMARY' +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +1 10 +2 20 +126 30 +127 40 +DROP TABLE t; +# Inserting a negative value that goes below minimum allowed value for an +# Auto Increment column (negative minimum) +CREATE TABLE t (c1 TINYINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='MyISAM' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-127,30); +INSERT INTO t VALUES (-128,40); +INSERT INTO t VALUES (-129,50); +ERROR 23000: Duplicate entry '-128' for key 'PRIMARY' +INSERT INTO t VALUES (-130,60); +ERROR 23000: Duplicate entry '-128' for key 'PRIMARY' +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-128 40 +-127 30 +1 10 +2 20 +DROP TABLE t; +# Updating the partition table with a negative Auto Increment value +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='MyISAM' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +INSERT INTO t(c2) VALUES (30); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-1 -10 +1 10 +2 20 +3 30 +UPDATE t SET c1 = -6 WHERE c1 = 2; +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-6 20 +-1 -10 +1 10 +3 30 +INSERT INTO t(c2) VALUES (40); +INSERT INTO t(c2) VALUES (50); +UPDATE t SET c1 = -6 WHERE c1 = 2; +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-6 20 +-1 -10 +1 10 +3 30 +4 40 +5 50 +DROP TABLE t; +# Updating the partition table with a value that crosses the upper limits +# on both the positive and the negative side. +CREATE TABLE t (c1 TINYINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='MyISAM' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (126,30); +INSERT INTO t VALUES (127,40); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +1 10 +2 20 +126 30 +127 40 +UPDATE t SET c1 = 130 where c1 = 127; +Warnings: +Warning 1264 Out of range value for column 'c1' at row 1 +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +1 10 +2 20 +126 30 +127 40 +UPDATE t SET c1 = -140 where c1 = 126; +Warnings: +Warning 1264 Out of range value for column 'c1' at row 1 +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-128 30 +1 10 +2 20 +127 40 +DROP TABLE t; +############################################################################## diff --git a/mysql-test/suite/parts/r/partition_auto_increment_ndb.result b/mysql-test/suite/parts/r/partition_auto_increment_ndb.result index 5a1c5b06b36..317669be7ad 100644 --- a/mysql-test/suite/parts/r/partition_auto_increment_ndb.result +++ b/mysql-test/suite/parts/r/partition_auto_increment_ndb.result @@ -846,3 +846,194 @@ c1 4 5 DROP TABLE t1; +############################################################################# +# Bug #45823 - Assertion failure in file row/row0mysql.c line 1386 +# Bug #43988 - AUTO_INCREMENT errors with partitioned InnoDB tables in 5.1.31 +############################################################################## +# Inserting negative autoincrement values into a partition table (partitions >= 4) +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='NDB' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +INSERT INTO t(c2) VALUES (30); +INSERT INTO t(c2) VALUES (40); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-1 -10 +1 10 +2 20 +3 30 +4 40 +DROP TABLE t; +# Reading from a partition table (partitions >= 2 ) after inserting a negative +# value into the auto increment column +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='NDB' PARTITION BY HASH(c1) PARTITIONS 2; +INSERT INTO t VALUES (-2,-20); +INSERT INTO t(c2) VALUES (30); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-2 -20 +1 30 +DROP TABLE t; +# Inserting negative auto increment value into a partition table (partitions >= 2) +# auto increment value > 2. +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='NDB' PARTITION BY HASH(c1) PARTITIONS 2; +INSERT INTO t VALUES (-4,-20); +INSERT INTO t(c2) VALUES (30); +INSERT INTO t(c2) VALUES (40); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-4 -20 +1 30 +2 40 +DROP TABLE t; +# Inserting -1 into autoincrement column of a partition table (partition >= 4) +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='NDB' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-1 -10 +1 10 +2 20 +INSERT INTO t(c2) VALUES (30); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-1 -10 +1 10 +2 20 +3 30 +DROP TABLE t; +# Deleting from an auto increment table after inserting negative values +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='NDB' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +INSERT INTO t(c2) VALUES (30); +INSERT INTO t VALUES (-3,-20); +INSERT INTO t(c2) VALUES (40); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-3 -20 +-1 -10 +1 10 +2 20 +3 30 +4 40 +DELETE FROM t WHERE c1 > 1; +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-3 -20 +-1 -10 +1 10 +DROP TABLE t; +# Inserting a positive value that exceeds maximum allowed value for an +# Auto Increment column (positive maximum) +CREATE TABLE t (c1 TINYINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='NDB' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (126,30); +INSERT INTO t VALUES (127,40); +INSERT INTO t VALUES (128,50); +ERROR 23000: Duplicate entry '127' for key 'PRIMARY' +INSERT INTO t VALUES (129,60); +ERROR 23000: Duplicate entry '127' for key 'PRIMARY' +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +1 10 +2 20 +126 30 +127 40 +DROP TABLE t; +# Inserting a negative value that goes below minimum allowed value for an +# Auto Increment column (negative minimum) +CREATE TABLE t (c1 TINYINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='NDB' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-127,30); +INSERT INTO t VALUES (-128,40); +INSERT INTO t VALUES (-129,50); +ERROR 23000: Duplicate entry '-128' for key 'PRIMARY' +INSERT INTO t VALUES (-130,60); +ERROR 23000: Duplicate entry '-128' for key 'PRIMARY' +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-128 40 +-127 30 +1 10 +2 20 +DROP TABLE t; +# Updating the partition table with a negative Auto Increment value +CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='NDB' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (-1,-10); +INSERT INTO t(c2) VALUES (30); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-1 -10 +1 10 +2 20 +3 30 +UPDATE t SET c1 = -6 WHERE c1 = 2; +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-6 20 +-1 -10 +1 10 +3 30 +INSERT INTO t(c2) VALUES (40); +INSERT INTO t(c2) VALUES (50); +UPDATE t SET c1 = -6 WHERE c1 = 2; +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-6 20 +-1 -10 +1 10 +3 30 +4 40 +5 50 +DROP TABLE t; +# Updating the partition table with a value that crosses the upper limits +# on both the positive and the negative side. +CREATE TABLE t (c1 TINYINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1), +c2 INT) ENGINE='NDB' PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t(c2) VALUES (10); +INSERT INTO t(c2) VALUES (20); +INSERT INTO t VALUES (126,30); +INSERT INTO t VALUES (127,40); +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +1 10 +2 20 +126 30 +127 40 +UPDATE t SET c1 = 130 where c1 = 127; +Warnings: +Warning 1264 Out of range value for column 'c1' at row 1 +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +1 10 +2 20 +126 30 +127 40 +UPDATE t SET c1 = -140 where c1 = 126; +Warnings: +Warning 1264 Out of range value for column 'c1' at row 1 +SELECT * FROM t ORDER BY c1 ASC; +c1 c2 +-128 30 +1 10 +2 20 +127 40 +DROP TABLE t; +############################################################################## diff --git a/mysql-test/suite/parts/t/partition_auto_increment_archive.test b/mysql-test/suite/parts/t/partition_auto_increment_archive.test index fb09557204f..e99a0b23b36 100644 --- a/mysql-test/suite/parts/t/partition_auto_increment_archive.test +++ b/mysql-test/suite/parts/t/partition_auto_increment_archive.test @@ -30,6 +30,9 @@ let $skip_delete= 1; let $skip_truncate= 1; let $skip_update= 1; let $only_ai_pk= 1; +# Bug#45823 Assertion failure in file row/row0mysql.c line 1386 +# Archive does not handle negative autoincrement values correctly +let $skip_negative_auto_inc= 1; ##### Storage engine to be tested let $engine= 'Archive'; diff --git a/mysql-test/suite/parts/t/partition_auto_increment_blackhole.test b/mysql-test/suite/parts/t/partition_auto_increment_blackhole.test index 64cd96c6173..f92dc33f263 100644 --- a/mysql-test/suite/parts/t/partition_auto_increment_blackhole.test +++ b/mysql-test/suite/parts/t/partition_auto_increment_blackhole.test @@ -25,6 +25,9 @@ #------------------------------------------------------------------------------# # Engine specific settings and requirements --source include/have_blackhole.inc +# Bug#45823 Assertion failure in file row/row0mysql.c line 1386 +# Blackhole does not handle negative autoincrement values correctly +let $skip_negative_auto_inc= 1; ##### Storage engine to be tested let $engine= 'Blackhole'; diff --git a/sql/ha_partition.cc b/sql/ha_partition.cc index ac8c46ec4e3..63f8271cca1 100644 --- a/sql/ha_partition.cc +++ b/sql/ha_partition.cc @@ -3024,7 +3024,7 @@ int ha_partition::write_row(uchar * buf) tmp_disable_binlog(thd); /* Do not replicate the low-level changes. */ error= m_file[part_id]->ha_write_row(buf); if (have_auto_increment && !table->s->next_number_keypart) - set_auto_increment_if_higher(table->next_number_field->val_int()); + set_auto_increment_if_higher(table->next_number_field); reenable_binlog(thd); exit: table->timestamp_field_type= orig_timestamp_type; @@ -3128,7 +3128,7 @@ exit: HA_DATA_PARTITION *ha_data= (HA_DATA_PARTITION*) table_share->ha_data; if (!ha_data->auto_inc_initialized) info(HA_STATUS_AUTO); - set_auto_increment_if_higher(table->found_next_number_field->val_int()); + set_auto_increment_if_higher(table->found_next_number_field); } table->timestamp_field_type= orig_timestamp_type; DBUG_RETURN(error); diff --git a/sql/ha_partition.h b/sql/ha_partition.h index 8a81a759e2a..d0301e24a93 100644 --- a/sql/ha_partition.h +++ b/sql/ha_partition.h @@ -936,9 +936,11 @@ private: auto_increment_lock= FALSE; } } - virtual void set_auto_increment_if_higher(const ulonglong nr) + virtual void set_auto_increment_if_higher(Field *field) { HA_DATA_PARTITION *ha_data= (HA_DATA_PARTITION*) table_share->ha_data; + ulonglong nr= (((Field_num*) field)->unsigned_flag || + field->val_int() > 0) ? field->val_int() : 0; lock_auto_increment(); DBUG_ASSERT(ha_data->auto_inc_initialized == TRUE); /* must check when the mutex is taken */ -- cgit v1.2.1 From 482fdb5fc703e502a0cbb17ed035487e2b034fb7 Mon Sep 17 00:00:00 2001 From: Satya B Date: Fri, 4 Sep 2009 11:19:44 +0530 Subject: Addition to Fix for BUG#46591 - .frm file isn't sync'd with sync_frm enabled for CREATE TABLE...LIKE... Add my_sync.c to mysqltest sources list in CMakeLists.txt client/CMakeLists.txt: BUG#46591 - .frm file isn't sync'd with sync_frm enabled for CREATE TABLE...LIKE... Add my_sync.c to mysqltest sources list --- client/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index a419da5eabf..7426384f0cf 100755 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -33,7 +33,8 @@ ADD_EXECUTABLE(mysql completion_hash.cc mysql.cc readline.cc sql_string.cc ../my TARGET_LINK_LIBRARIES(mysql mysqlclient_notls wsock32) ADD_EXECUTABLE(mysqltest mysqltest.c ../mysys/my_getsystime.c - ../mysys/my_copy.c ../mysys/my_mkdir.c) + ../mysys/my_copy.c ../mysys/my_mkdir.c + ../mysys/my_sync.c) TARGET_LINK_LIBRARIES(mysqltest mysqlclient_notls regex wsock32) ADD_EXECUTABLE(mysqlcheck mysqlcheck.c) -- cgit v1.2.1 From 6e27ef435e3863382295f1a1d41424c9b8d4c197 Mon Sep 17 00:00:00 2001 From: Satya B Date: Fri, 4 Sep 2009 12:21:54 +0530 Subject: Fix for BUG#46384 - mysqld segfault when trying to create table with same name as existing view When trying to create a table with the same name as existing view with join, mysql server crashes. The problem is when create table is issued with the same name as view, while verifying with the existing tables, we assume that base table object is created always. In this case, since it is a view over multiple tables, we don't have the mysql derived table object. Fixed the logic which checks if there is an existing table to not to assume that table object is created when the base table is view over multiple tables. mysql-test/r/create.result: BUG#46384 - mysqld segfault when trying to create table with same name as existing view Testcase for the bug mysql-test/t/create.test: BUG#46384 - mysqld segfault when trying to create table with same name as existing view Testcase for the bug sql/sql_insert.cc: BUG#46384 - mysqld segfault when trying to create table with same name as existing view Fixed create_table_from_items() method to properly check, if the base table is a view over multiple tables. --- mysql-test/r/create.result | 13 +++++++++++++ mysql-test/t/create.test | 17 +++++++++++++++++ sql/sql_insert.cc | 2 +- 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result index d37c1a04daa..dfd376a6bde 100644 --- a/mysql-test/r/create.result +++ b/mysql-test/r/create.result @@ -1559,4 +1559,17 @@ CREATE TABLE IF NOT EXISTS t2 (a INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY) SELECT a FROM t1; ERROR 23000: Duplicate entry '1' for key 1 DROP TABLE t1, t2; +# +# BUG#46384 - mysqld segfault when trying to create table with same +# name as existing view +# +CREATE TABLE t1 (a INT); +CREATE TABLE t2 (a INT); +INSERT INTO t1 VALUES (1),(2),(3); +INSERT INTO t2 VALUES (1),(2),(3); +CREATE VIEW v1 AS SELECT t1.a FROM t1, t2; +CREATE TABLE v1 AS SELECT * FROM t1; +ERROR 42S01: Table 'v1' already exists +DROP VIEW v1; +DROP TABLE t1,t2; End of 5.0 tests diff --git a/mysql-test/t/create.test b/mysql-test/t/create.test index a837653d618..2ec416cfc87 100644 --- a/mysql-test/t/create.test +++ b/mysql-test/t/create.test @@ -1194,5 +1194,22 @@ CREATE TABLE IF NOT EXISTS t2 (a INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY) DROP TABLE t1, t2; +--echo # +--echo # BUG#46384 - mysqld segfault when trying to create table with same +--echo # name as existing view +--echo # + +CREATE TABLE t1 (a INT); +CREATE TABLE t2 (a INT); + +INSERT INTO t1 VALUES (1),(2),(3); +INSERT INTO t2 VALUES (1),(2),(3); + +CREATE VIEW v1 AS SELECT t1.a FROM t1, t2; +--error ER_TABLE_EXISTS_ERROR +CREATE TABLE v1 AS SELECT * FROM t1; + +DROP VIEW v1; +DROP TABLE t1,t2; --echo End of 5.0 tests diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index d2a0f47f1a9..b0958201795 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -3217,7 +3217,7 @@ static TABLE *create_table_from_items(THD *thd, HA_CREATE_INFO *create_info, DBUG_EXECUTE_IF("sleep_create_select_before_check_if_exists", my_sleep(6000000);); if (!(create_info->options & HA_LEX_CREATE_TMP_TABLE) && - create_table->table->db_stat) + (create_table->table && create_table->table->db_stat)) { /* Table already exists and was open at open_and_lock_tables() stage. */ if (create_info->options & HA_LEX_CREATE_IF_NOT_EXISTS) -- cgit v1.2.1 From 643fbe4234a06e51746c8912223652a3b41fe133 Mon Sep 17 00:00:00 2001 From: Sergey Glukhov Date: Fri, 4 Sep 2009 12:20:53 +0500 Subject: Bug#45989 memory leak after explain encounters an error in the query Memory allocated in TMP_TABLE_PARAM::copy_field is not cleaned up. The fix is to clean up TMP_TABLE_PARAM::copy_field array in JOIN::destroy. mysql-test/r/explain.result: test result mysql-test/t/explain.test: test case sql/sql_select.cc: Memory allocated in TMP_TABLE_PARAM::copy_field is not cleaned up. The fix is to clean up TMP_TABLE_PARAM::copy_field array in JOIN::destroy. --- mysql-test/r/explain.result | 8 ++++++++ mysql-test/t/explain.test | 11 +++++++++++ sql/sql_select.cc | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/explain.result b/mysql-test/r/explain.result index b0adc428e4c..8d3859fd68e 100644 --- a/mysql-test/r/explain.result +++ b/mysql-test/r/explain.result @@ -159,3 +159,11 @@ CREATE TABLE t1 (a INT PRIMARY KEY); EXPLAIN EXTENDED SELECT COUNT(a) FROM t1 USE KEY(a); ERROR HY000: Key 'a' doesn't exist in table 't1' DROP TABLE t1; +CREATE TABLE t1(a LONGTEXT); +INSERT INTO t1 VALUES (repeat('a',@@global.max_allowed_packet)); +INSERT INTO t1 VALUES (repeat('b',@@global.max_allowed_packet)); +EXPLAIN SELECT DISTINCT 1 FROM t1, +(SELECT DISTINCTROW a AS away FROM t1 GROUP BY a WITH ROLLUP) as d1 +WHERE t1.a = d1.a; +ERROR 42S22: Unknown column 'd1.a' in 'where clause' +DROP TABLE t1; diff --git a/mysql-test/t/explain.test b/mysql-test/t/explain.test index 1bc98a8acb1..7b7bdd3563c 100644 --- a/mysql-test/t/explain.test +++ b/mysql-test/t/explain.test @@ -135,5 +135,16 @@ EXPLAIN EXTENDED SELECT COUNT(a) FROM t1 USE KEY(a); DROP TABLE t1; +# +# Bug#45989 memory leak after explain encounters an error in the query +# +CREATE TABLE t1(a LONGTEXT); +INSERT INTO t1 VALUES (repeat('a',@@global.max_allowed_packet)); +INSERT INTO t1 VALUES (repeat('b',@@global.max_allowed_packet)); +--error ER_BAD_FIELD_ERROR +EXPLAIN SELECT DISTINCT 1 FROM t1, + (SELECT DISTINCTROW a AS away FROM t1 GROUP BY a WITH ROLLUP) as d1 + WHERE t1.a = d1.a; +DROP TABLE t1; # End of 5.0 tests. diff --git a/sql/sql_select.cc b/sql/sql_select.cc index ff179c432a8..b670e6e3637 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -2176,7 +2176,7 @@ JOIN::destroy() } } tmp_join->tmp_join= 0; - tmp_table_param.copy_field=0; + tmp_table_param.cleanup(); DBUG_RETURN(tmp_join->destroy()); } cond_equal= 0; -- cgit v1.2.1 From a7de20574749ececbe8492f340f6ddc7be1544fa Mon Sep 17 00:00:00 2001 From: Sergey Vojtovich Date: Fri, 4 Sep 2009 12:29:18 +0500 Subject: BUG#46961 - archive engine loses rows during self joining select! SELECT with join (not only self-join) from archive table may return incomplete result set, when result set size exceeds join buffer size. The problem was that archive row counter was initialzed too early, when ha_archive::info() method was called. Later, when optimizer exceeds join buffer, it attempts to reuse handler without calling ha_archive::info() again (which is correct). Fixed by moving row counter initialization from ha_archive::info() to ha_archive::rnd_init(). mysql-test/r/archive.result: A test case for BUG#46961. mysql-test/t/archive.test: A test case for BUG#46961. storage/archive/ha_archive.cc: Since a cursor may get reused without a call to ::info(), move assignment of scan_rows to a proper place, that is ::rnd_init(). --- mysql-test/r/archive.result | 11 +++++++++++ mysql-test/t/archive.test | 13 +++++++++++++ storage/archive/ha_archive.cc | 2 +- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/archive.result b/mysql-test/r/archive.result index 8c26ea1ff82..9a6edbaa85c 100644 --- a/mysql-test/r/archive.result +++ b/mysql-test/r/archive.result @@ -12695,3 +12695,14 @@ a b 1 NULL 2 NULL DROP TABLE t1; +SET @save_join_buffer_size= @@join_buffer_size; +SET @@join_buffer_size= 8228; +CREATE TABLE t1(a CHAR(255)) ENGINE=archive; +INSERT INTO t1 VALUES('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'), +('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'), +('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); +SELECT COUNT(t1.a) FROM t1, t1 a, t1 b, t1 c, t1 d, t1 e; +COUNT(t1.a) +729 +DROP TABLE t1; +SET @@join_buffer_size= @save_join_buffer_size; diff --git a/mysql-test/t/archive.test b/mysql-test/t/archive.test index 7139d95ab49..663f7faf208 100644 --- a/mysql-test/t/archive.test +++ b/mysql-test/t/archive.test @@ -1599,3 +1599,16 @@ INSERT INTO t1 VALUES (NULL, NULL),(NULL, NULL); FLUSH TABLE t1; SELECT * FROM t1 ORDER BY a; DROP TABLE t1; + +# +# BUG#46961 - archive engine loses rows during self joining select! +# +SET @save_join_buffer_size= @@join_buffer_size; +SET @@join_buffer_size= 8228; +CREATE TABLE t1(a CHAR(255)) ENGINE=archive; +INSERT INTO t1 VALUES('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'), + ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'), + ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); +SELECT COUNT(t1.a) FROM t1, t1 a, t1 b, t1 c, t1 d, t1 e; +DROP TABLE t1; +SET @@join_buffer_size= @save_join_buffer_size; diff --git a/storage/archive/ha_archive.cc b/storage/archive/ha_archive.cc index 1146b2eb73a..f1b9c26dfd6 100644 --- a/storage/archive/ha_archive.cc +++ b/storage/archive/ha_archive.cc @@ -993,6 +993,7 @@ int ha_archive::rnd_init(bool scan) /* We rewind the file so that we can read from the beginning if scan */ if (scan) { + scan_rows= stats.records; DBUG_PRINT("info", ("archive will retrieve %llu rows", (unsigned long long) scan_rows)); @@ -1461,7 +1462,6 @@ int ha_archive::info(uint flag) stats.records= share->rows_recorded; pthread_mutex_unlock(&share->mutex); - scan_rows= stats.records; stats.deleted= 0; DBUG_PRINT("ha_archive", ("Stats rows is %d\n", (int)stats.records)); -- cgit v1.2.1 From 2a6ac469fc7cd940d7864babafb72798b7643bf3 Mon Sep 17 00:00:00 2001 From: Ramil Kalimullin Date: Fri, 4 Sep 2009 13:14:54 +0500 Subject: Fix for bug#46629: Item_in_subselect::val_int(): Assertion `0' on subquery inside a SP Problem: repeated call of a SP containing an incorrect query with a subselect may lead to failed ASSERT(). Fix: set proper sublelect's state in case of error occured during subquery transformation. mysql-test/r/sp.result: Fix for bug#46629: Item_in_subselect::val_int(): Assertion `0' on subquery inside a SP - test result. mysql-test/t/sp.test: Fix for bug#46629: Item_in_subselect::val_int(): Assertion `0' on subquery inside a SP - test case. sql/item_subselect.cc: Fix for bug#46629: Item_in_subselect::val_int(): Assertion `0' on subquery inside a SP - don't set Item_subselect::changed in the Item_subselect::fix_fields() if an error occured during subquery transformation. That prevents us of further processing incorrect subqueries after Item_in_subselect::select_in_like_transformer(). --- mysql-test/r/sp.result | 16 ++++++++++++++++ mysql-test/t/sp.test | 22 ++++++++++++++++++++++ sql/item_subselect.cc | 10 ++++------ 3 files changed, 42 insertions(+), 6 deletions(-) diff --git a/mysql-test/r/sp.result b/mysql-test/r/sp.result index 3ad556b8c30..67514c314f4 100644 --- a/mysql-test/r/sp.result +++ b/mysql-test/r/sp.result @@ -6963,6 +6963,22 @@ CALL p1(); CALL p1(); DROP PROCEDURE p1; DROP TABLE t1; +# +# Bug #46629: Item_in_subselect::val_int(): Assertion `0' +# on subquery inside a SP +# +CREATE TABLE t1(a INT); +CREATE TABLE t2(a INT, b INT PRIMARY KEY); +CREATE PROCEDURE p1 () +BEGIN +SELECT a FROM t1 A WHERE A.b IN (SELECT b FROM t2 AS B); +END| +CALL p1; +ERROR 42S22: Unknown column 'A.b' in 'IN/ALL/ANY subquery' +CALL p1; +ERROR 42S22: Unknown column 'A.b' in 'IN/ALL/ANY subquery' +DROP PROCEDURE p1; +DROP TABLE t1, t2; # ------------------------------------------------------------------ # -- End of 5.1 tests # ------------------------------------------------------------------ diff --git a/mysql-test/t/sp.test b/mysql-test/t/sp.test index 5eeac457958..44c4556340e 100644 --- a/mysql-test/t/sp.test +++ b/mysql-test/t/sp.test @@ -8242,6 +8242,28 @@ while ($tab_count) DROP PROCEDURE p1; DROP TABLE t1; + +--echo # +--echo # Bug #46629: Item_in_subselect::val_int(): Assertion `0' +--echo # on subquery inside a SP +--echo # +CREATE TABLE t1(a INT); +CREATE TABLE t2(a INT, b INT PRIMARY KEY); + +DELIMITER |; +CREATE PROCEDURE p1 () +BEGIN + SELECT a FROM t1 A WHERE A.b IN (SELECT b FROM t2 AS B); +END| +DELIMITER ;| +--error ER_BAD_FIELD_ERROR +CALL p1; +--error ER_BAD_FIELD_ERROR +CALL p1; +DROP PROCEDURE p1; +DROP TABLE t1, t2; + + --echo # ------------------------------------------------------------------ --echo # -- End of 5.1 tests --echo # ------------------------------------------------------------------ diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc index cdb091fa07e..da651cec70c 100644 --- a/sql/item_subselect.cc +++ b/sql/item_subselect.cc @@ -155,13 +155,11 @@ bool Item_subselect::fix_fields(THD *thd_param, Item **ref) if (check_stack_overrun(thd, STACK_MIN_SIZE, (uchar*)&res)) return TRUE; - res= engine->prepare(); - - // all transformation is done (used by prepared statements) - changed= 1; - - if (!res) + if (!(res= engine->prepare())) { + // all transformation is done (used by prepared statements) + changed= 1; + if (substitution) { int ret= 0; -- cgit v1.2.1 From 35d6911b283b3cf7720af9a7edb8c7ed3b3726db Mon Sep 17 00:00:00 2001 From: Mattias Jonsson Date: Fri, 4 Sep 2009 15:02:15 +0200 Subject: Bug#35845: unneccesary call to ha_start_bulk_insert for not used partitions (Backport) Problem is that when insert (ha_start_bulk_insert) in i partitioned table, it will call ha_start_bulk_insert for every partition, used or not. Solution is to delay the call to the partitions ha_start_bulk_insert until the first row is to be inserted into that partition sql/ha_partition.cc: Bug#35845: unneccesary call to ha_start_bulk_insert for not used partitions Using a bitmap for keeping record of which partitions for which ha_start_bulk_insert has been called, and check against that if one should call it before continue with the insert/update, or if it has already been called. This way it will only call ha_start_bulk_insert for the used partitions. There is also a little prediction on how many rows that will be inserted into the current partition, it will guess on equal distribution of the records across all partitions, accept for the first used partition, which will guess at 50% of the given estimate, if it is a monotonic partitioning function. sql/ha_partition.h: Bug#35845: unneccesary call to ha_start_bulk_insert for not used partitions Added help variables and function for delaying ha_bulk_insert until it has to be called. Fixed a comment. --- sql/ha_partition.cc | 95 +++++++++++++++++++++++++++++++++++++++++++++-------- sql/ha_partition.h | 10 +++++- 2 files changed, 91 insertions(+), 14 deletions(-) diff --git a/sql/ha_partition.cc b/sql/ha_partition.cc index 63f8271cca1..c849bbd12c5 100644 --- a/sql/ha_partition.cc +++ b/sql/ha_partition.cc @@ -239,6 +239,7 @@ void ha_partition::init_handler_variables() m_curr_key_info[0]= NULL; m_curr_key_info[1]= NULL; is_clone= FALSE, + m_part_func_monotonicity_info= NON_MONOTONIC; auto_increment_lock= FALSE; auto_increment_safe_stmt_log_lock= FALSE; /* @@ -2464,11 +2465,18 @@ int ha_partition::open(const char *name, int mode, uint test_if_locked) } } + /* Initialize the bitmap we use to minimize ha_start_bulk_insert calls */ + if (bitmap_init(&m_bulk_insert_started, NULL, m_tot_parts + 1, FALSE)) + DBUG_RETURN(1); + bitmap_clear_all(&m_bulk_insert_started); /* Initialize the bitmap we use to determine what partitions are used */ if (!is_clone) { if (bitmap_init(&(m_part_info->used_partitions), NULL, m_tot_parts, TRUE)) + { + bitmap_free(&m_bulk_insert_started); DBUG_RETURN(1); + } bitmap_set_all(&(m_part_info->used_partitions)); } @@ -2552,12 +2560,18 @@ int ha_partition::open(const char *name, int mode, uint test_if_locked) calling open on all individual handlers. */ m_handler_status= handler_opened; + if (m_part_info->part_expr) + m_part_func_monotonicity_info= + m_part_info->part_expr->get_monotonicity_info(); + else if (m_part_info->list_of_part_fields) + m_part_func_monotonicity_info= MONOTONIC_STRICT_INCREASING; info(HA_STATUS_VARIABLE | HA_STATUS_CONST); DBUG_RETURN(0); err_handler: while (file-- != m_file) (*file)->close(); + bitmap_free(&m_bulk_insert_started); if (!is_clone) bitmap_free(&(m_part_info->used_partitions)); @@ -2605,6 +2619,7 @@ int ha_partition::close(void) DBUG_ASSERT(table->s == table_share); delete_queue(&m_queue); + bitmap_free(&m_bulk_insert_started); if (!is_clone) bitmap_free(&(m_part_info->used_partitions)); file= m_file; @@ -3021,6 +3036,8 @@ int ha_partition::write_row(uchar * buf) } m_last_part= part_id; DBUG_PRINT("info", ("Insert in partition %d", part_id)); + start_part_bulk_insert(part_id); + tmp_disable_binlog(thd); /* Do not replicate the low-level changes. */ error= m_file[part_id]->ha_write_row(buf); if (have_auto_increment && !table->s->next_number_keypart) @@ -3083,6 +3100,7 @@ int ha_partition::update_row(const uchar *old_data, uchar *new_data) } m_last_part= new_part_id; + start_part_bulk_insert(new_part_id); if (new_part_id == old_part_id) { DBUG_PRINT("info", ("Update in partition %d", new_part_id)); @@ -3247,22 +3265,65 @@ int ha_partition::delete_all_rows() DESCRIPTION rows == 0 means we will probably insert many rows */ - void ha_partition::start_bulk_insert(ha_rows rows) { - handler **file; DBUG_ENTER("ha_partition::start_bulk_insert"); - rows= rows ? rows/m_tot_parts + 1 : 0; - file= m_file; - do - { - (*file)->ha_start_bulk_insert(rows); - } while (*(++file)); + m_bulk_inserted_rows= 0; + bitmap_clear_all(&m_bulk_insert_started); + /* use the last bit for marking if bulk_insert_started was called */ + bitmap_set_bit(&m_bulk_insert_started, m_tot_parts); DBUG_VOID_RETURN; } +/* + Check if start_bulk_insert has been called for this partition, + if not, call it and mark it called +*/ +void ha_partition::start_part_bulk_insert(uint part_id) +{ + if (!bitmap_is_set(&m_bulk_insert_started, part_id) && + bitmap_is_set(&m_bulk_insert_started, m_tot_parts)) + { + m_file[part_id]->ha_start_bulk_insert(guess_bulk_insert_rows()); + bitmap_set_bit(&m_bulk_insert_started, part_id); + } + m_bulk_inserted_rows++; +} + + +/* + Try to predict the number of inserts into this partition. + + If less than 10 rows (including 0 which means Unknown) + just give that as a guess + If monotonic partitioning function was used + guess that 50 % of the inserts goes to the first partition + For all other cases, guess on equal distribution between the partitions +*/ +ha_rows ha_partition::guess_bulk_insert_rows() +{ + DBUG_ENTER("guess_bulk_insert_rows"); + + if (estimation_rows_to_insert < 10) + DBUG_RETURN(estimation_rows_to_insert); + + /* If first insert/partition and monotonic partition function, guess 50%. */ + if (!m_bulk_inserted_rows && + m_part_func_monotonicity_info != NON_MONOTONIC && + m_tot_parts > 1) + DBUG_RETURN(estimation_rows_to_insert / 2); + + /* Else guess on equal distribution (+1 is to avoid returning 0/Unknown) */ + if (m_bulk_inserted_rows < estimation_rows_to_insert) + DBUG_RETURN(((estimation_rows_to_insert - m_bulk_inserted_rows) + / m_tot_parts) + 1); + /* The estimation was wrong, must say 'Unknown' */ + DBUG_RETURN(0); +} + + /* Finish a large batch of insert rows @@ -3272,21 +3333,29 @@ void ha_partition::start_bulk_insert(ha_rows rows) RETURN VALUE >0 Error code 0 Success + + Note: end_bulk_insert can be called without start_bulk_insert + being called, see bug陇44108. + */ int ha_partition::end_bulk_insert() { int error= 0; - handler **file; + uint i; DBUG_ENTER("ha_partition::end_bulk_insert"); - file= m_file; - do + if (!bitmap_is_set(&m_bulk_insert_started, m_tot_parts)) + DBUG_RETURN(error); + + for (i= 0; i < m_tot_parts; i++) { int tmp; - if ((tmp= (*file)->ha_end_bulk_insert())) + if (bitmap_is_set(&m_bulk_insert_started, i) && + (tmp= m_file[i]->ha_end_bulk_insert())) error= tmp; - } while (*(++file)); + } + bitmap_clear_all(&m_bulk_insert_started); DBUG_RETURN(error); } diff --git a/sql/ha_partition.h b/sql/ha_partition.h index d0301e24a93..f47dfe8f621 100644 --- a/sql/ha_partition.h +++ b/sql/ha_partition.h @@ -176,6 +176,11 @@ private: This to ensure it will work with statement based replication. */ bool auto_increment_safe_stmt_log_lock; + /** For optimizing ha_start_bulk_insert calls */ + MY_BITMAP m_bulk_insert_started; + ha_rows m_bulk_inserted_rows; + /** used for prediction of start_bulk_insert rows */ + enum_monotonicity_info m_part_func_monotonicity_info; public: handler *clone(MEM_ROOT *mem_root); virtual void set_part_info(partition_info *part_info) @@ -353,7 +358,6 @@ public: Bulk inserts are supported if all underlying handlers support it. start_bulk_insert and end_bulk_insert is called before and after a number of calls to write_row. - Not yet though. */ virtual int write_row(uchar * buf); virtual int update_row(const uchar * old_data, uchar * new_data); @@ -361,6 +365,10 @@ public: virtual int delete_all_rows(void); virtual void start_bulk_insert(ha_rows rows); virtual int end_bulk_insert(); +private: + ha_rows guess_bulk_insert_rows(); + void start_part_bulk_insert(uint part_id); +public: virtual bool is_fatal_error(int error, uint flags) { -- cgit v1.2.1 From e49a210c8c47dedb2fd384f3f5c170506e580ba7 Mon Sep 17 00:00:00 2001 From: Davi Arnaut Date: Fri, 4 Sep 2009 17:02:17 -0300 Subject: Bug#45605: ps_not_windows.test fails: The plugin feature is disabled, you need HAVE_DLOPEN Selectively skip tests that require dynamic loading (ie: static builds). mysql-test/include/have_dynamic_loading.inc: Add require file. mysql-test/t/ps_not_windows.test: Test requires dynamic loading support. --- mysql-test/include/have_dynamic_loading.inc | 7 +++++++ mysql-test/include/have_example_plugin.inc | 5 +---- mysql-test/include/have_simple_parser.inc | 5 +---- mysql-test/include/have_udf.inc | 5 +---- mysql-test/t/ps_not_windows.test | 2 ++ 5 files changed, 12 insertions(+), 12 deletions(-) create mode 100644 mysql-test/include/have_dynamic_loading.inc diff --git a/mysql-test/include/have_dynamic_loading.inc b/mysql-test/include/have_dynamic_loading.inc new file mode 100644 index 00000000000..1b2c85b3904 --- /dev/null +++ b/mysql-test/include/have_dynamic_loading.inc @@ -0,0 +1,7 @@ +# +# Whether server supports dynamic loading. +# +--require r/have_dynamic_loading.require +disable_query_log; +show variables like 'have_dynamic_loading'; +enable_query_log; diff --git a/mysql-test/include/have_example_plugin.inc b/mysql-test/include/have_example_plugin.inc index 8e57c725eb5..a2fffc17b97 100644 --- a/mysql-test/include/have_example_plugin.inc +++ b/mysql-test/include/have_example_plugin.inc @@ -2,10 +2,7 @@ # Check if server has support for loading udf's # i.e it will support dlopen # ---require r/have_dynamic_loading.require -disable_query_log; -show variables like 'have_dynamic_loading'; -enable_query_log; +--source include/have_dynamic_loading.inc # # Check if the variable EXAMPLE_PLUGIN is set diff --git a/mysql-test/include/have_simple_parser.inc b/mysql-test/include/have_simple_parser.inc index c85786bd524..5a4dc93ec81 100644 --- a/mysql-test/include/have_simple_parser.inc +++ b/mysql-test/include/have_simple_parser.inc @@ -2,10 +2,7 @@ # Check if server has support for loading udf's # i.e it will support dlopen # ---require r/have_dynamic_loading.require -disable_query_log; -show variables like 'have_dynamic_loading'; -enable_query_log; +--source include/have_dynamic_loading.inc # # Check if the variable SIMPLE_PARSER is set diff --git a/mysql-test/include/have_udf.inc b/mysql-test/include/have_udf.inc index 3f7e260c5ba..7be57bbb7a9 100644 --- a/mysql-test/include/have_udf.inc +++ b/mysql-test/include/have_udf.inc @@ -2,10 +2,7 @@ # Check if server has support for loading udf's # i.e it will support dlopen # ---require r/have_dynamic_loading.require -disable_query_log; -show variables like 'have_dynamic_loading'; -enable_query_log; +--source include/have_dynamic_loading.inc # # Check if the variable UDF_EXAMPLE_LIB is set diff --git a/mysql-test/t/ps_not_windows.test b/mysql-test/t/ps_not_windows.test index 6d85f737b32..0ab08b59f1e 100644 --- a/mysql-test/t/ps_not_windows.test +++ b/mysql-test/t/ps_not_windows.test @@ -2,6 +2,8 @@ --source include/not_embedded.inc # Non-windows specific ps tests. --source include/not_windows.inc +# requires dynamic loading +--source include/have_dynamic_loading.inc # # Bug #20665: All commands supported in Stored Procedures should work in -- cgit v1.2.1 From 505346028f975d26f1353c46bdb3db618b1e306c Mon Sep 17 00:00:00 2001 From: Alexey Kopytov Date: Sun, 6 Sep 2009 00:42:17 +0400 Subject: Bug #46159: simple query that never returns The external 'for' loop in remove_dup_with_compare() handled HA_ERR_RECORD_DELETED by just starting over without advancing to the next record which caused an infinite loop. This condition could be triggered on certain data by a SELECT query containing DISTINCT, GROUP BY and HAVING clauses. Fixed remove_dup_with_compare() so that we always advance to the next record when receiving HA_ERR_RECORD_DELETED from rnd_next(). mysql-test/r/distinct.result: Added a test case for bug #46159. mysql-test/t/distinct.test: Added a test case for bug #46159. sql/sql_select.cc: Fixed remove_dup_with_compare() so that we always advance to the next record when receiving HA_ERR_RECORD_DELETED from rnd_next(). --- mysql-test/r/distinct.result | 30 ++++++++++++++++++++++++++++++ mysql-test/t/distinct.test | 40 ++++++++++++++++++++++++++++++++++++++++ sql/sql_select.cc | 5 ++++- 3 files changed, 74 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/distinct.result b/mysql-test/r/distinct.result index e0324af8cfd..b1cb70fa43c 100644 --- a/mysql-test/r/distinct.result +++ b/mysql-test/r/distinct.result @@ -763,4 +763,34 @@ a b d c 1 2 0 2 1 2 0 3 DROP TABLE t1; +# +# Bug #46159: simple query that never returns +# +SET @old_max_heap_table_size = @@max_heap_table_size; +SET @@max_heap_table_size = 16384; +SET @old_sort_buffer_size = @@sort_buffer_size; +SET @@sort_buffer_size = 32804; +CREATE TABLE t1(c1 int, c2 VARCHAR(20)); +INSERT INTO t1 VALUES (1, '1'), (1, '1'), (2, '2'), (3, '1'), (3, '1'), (4, '4'); +INSERT INTO t1 SELECT 5 + 10000 * RAND(), '5' FROM t1; +INSERT INTO t1 SELECT 5 + 10000 * RAND(), '5' FROM t1; +INSERT INTO t1 SELECT 5 + 10000 * RAND(), '5' FROM t1; +INSERT INTO t1 SELECT 5 + 10000 * RAND(), '5' FROM t1; +INSERT INTO t1 SELECT 5 + 10000 * RAND(), '5' FROM t1; +INSERT INTO t1 SELECT 5 + 10000 * RAND(), '5' FROM t1; +INSERT INTO t1 SELECT 5 + 10000 * RAND(), '5' FROM t1; +INSERT INTO t1 SELECT 5 + 10000 * RAND(), '5' FROM t1; +SELECT c1, c2, COUNT(*) FROM t1 GROUP BY c1 LIMIT 4; +c1 c2 COUNT(*) +1 1 2 +2 2 1 +3 1 2 +4 4 1 +SELECT DISTINCT c2 FROM t1 GROUP BY c1 HAVING COUNT(*) > 1; +c2 +1 +5 +DROP TABLE t1; +SET @@sort_buffer_size = @old_sort_buffer_size; +SET @@max_heap_table_size = @old_max_heap_table_size; End of 5.1 tests diff --git a/mysql-test/t/distinct.test b/mysql-test/t/distinct.test index a77d1136840..bf4c23562cf 100644 --- a/mysql-test/t/distinct.test +++ b/mysql-test/t/distinct.test @@ -573,4 +573,44 @@ SELECT DISTINCT a, b, d, c FROM t1; DROP TABLE t1; +--echo # +--echo # Bug #46159: simple query that never returns +--echo # + +# Set max_heap_table_size to the minimum value so that GROUP BY table in the +# SELECT query below gets converted to MyISAM +SET @old_max_heap_table_size = @@max_heap_table_size; +SET @@max_heap_table_size = 16384; + +# Set sort_buffer_size to the mininum value so that remove_duplicates() calls +# remove_dup_with_compare() +SET @old_sort_buffer_size = @@sort_buffer_size; +SET @@sort_buffer_size = 32804; + +CREATE TABLE t1(c1 int, c2 VARCHAR(20)); +INSERT INTO t1 VALUES (1, '1'), (1, '1'), (2, '2'), (3, '1'), (3, '1'), (4, '4'); +# Now we just need to pad the table with random data so we have enough unique +# values to force conversion of the GROUP BY table to MyISAM +INSERT INTO t1 SELECT 5 + 10000 * RAND(), '5' FROM t1; +INSERT INTO t1 SELECT 5 + 10000 * RAND(), '5' FROM t1; +INSERT INTO t1 SELECT 5 + 10000 * RAND(), '5' FROM t1; +INSERT INTO t1 SELECT 5 + 10000 * RAND(), '5' FROM t1; +INSERT INTO t1 SELECT 5 + 10000 * RAND(), '5' FROM t1; +INSERT INTO t1 SELECT 5 + 10000 * RAND(), '5' FROM t1; +INSERT INTO t1 SELECT 5 + 10000 * RAND(), '5' FROM t1; +INSERT INTO t1 SELECT 5 + 10000 * RAND(), '5' FROM t1; + +# First rows of the GROUP BY table that will be processed by +# remove_dup_with_compare() +SELECT c1, c2, COUNT(*) FROM t1 GROUP BY c1 LIMIT 4; + +# The actual test case +SELECT DISTINCT c2 FROM t1 GROUP BY c1 HAVING COUNT(*) > 1; + +# Cleanup + +DROP TABLE t1; +SET @@sort_buffer_size = @old_sort_buffer_size; +SET @@max_heap_table_size = @old_max_heap_table_size; + --echo End of 5.1 tests diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 5cb0de1ba5c..a02430446d1 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -13665,7 +13665,10 @@ static int remove_dup_with_compare(THD *thd, TABLE *table, Field **first_field, if (error) { if (error == HA_ERR_RECORD_DELETED) - continue; + { + error= file->rnd_next(record); + continue; + } if (error == HA_ERR_END_OF_FILE) break; goto err; -- cgit v1.2.1 From 5210d5a9a6bb30d1158ea0b0de934f7dddde854c Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 7 Sep 2009 13:01:03 +0800 Subject: Bug#45581 Test rpl_row_sp006_InnoDB fails randomly: Unknown database 'mysqltest1' Postfix. extra/rpl_tests/rpl_row_sp006.test had changed to fix this bug. extra/rpl_tests/rpl_row_sp006.test is also referenced by rpl_ndb_sp006, So rpl_row_sp006.result must be changed too. --- mysql-test/suite/rpl_ndb/r/rpl_ndb_sp006.result | 36 ++++++++++++------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_sp006.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_sp006.result index 482d43c8f10..047402f826f 100644 --- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_sp006.result +++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_sp006.result @@ -4,21 +4,20 @@ reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; start slave; -create database if not exists mysqltest1; -DROP PROCEDURE IF EXISTS mysqltest1.p1; -DROP PROCEDURE IF EXISTS mysqltest1.p2; -DROP TABLE IF EXISTS mysqltest1.t2; -DROP TABLE IF EXISTS mysqltest1.t1; -CREATE TABLE IF NOT EXISTS mysqltest1.t1(name CHAR(16), birth DATE,PRIMARY KEY(name))ENGINE=NDBCLUSTER; -CREATE TABLE IF NOT EXISTS mysqltest1.t2(name CHAR(16), age INT ,PRIMARY KEY(name))ENGINE=NDBCLUSTER; -CREATE PROCEDURE mysqltest1.p1() +DROP TABLE IF EXISTS t1; +DROP TABLE IF EXISTS t2; +DROP PROCEDURE IF EXISTS p1; +DROP PROCEDURE IF EXISTS p2; +CREATE TABLE IF NOT EXISTS t1(name CHAR(16), birth DATE,PRIMARY KEY(name))ENGINE=NDBCLUSTER; +CREATE TABLE IF NOT EXISTS t2(name CHAR(16), age INT ,PRIMARY KEY(name))ENGINE=NDBCLUSTER; +CREATE PROCEDURE p1() BEGIN DECLARE done INT DEFAULT 0; DECLARE spa CHAR(16); DECLARE spb INT; DECLARE cur1 CURSOR FOR SELECT name, (YEAR(CURDATE())-YEAR(birth))-(RIGHT(CURDATE(),5) Date: Mon, 7 Sep 2009 13:42:54 +0800 Subject: Bug#46010 main.ctype_gbk_binlog fails sporadically : Table 't2' already exists This test case uses mysqlbinlog to dump the content of master-bin.000001, but the content of master-bin.000001 is not that this test needs. MTR runs a lot of test cases on one server, so when this test starts, the current binlog file might not be master-bin.000001, or there are other events are written by tests before. 'RESET MASTER' command must be called at the begin, it ensures that binlog of this test is wrote to master-bin.000001 correctly. Three other tests have the same problem, They were fixed together. mysqlbinlog-cp932 binlog_incident binlog_tmp_table --- mysql-test/r/ctype_gbk_binlog.result | 1 + mysql-test/r/mysqlbinlog-cp932.result | 2 +- mysql-test/suite/binlog/r/binlog_incident.result | 1 + mysql-test/suite/binlog/r/binlog_tmp_table.result | 1 + mysql-test/suite/binlog/t/binlog_incident.test | 3 ++- mysql-test/suite/binlog/t/binlog_tmp_table.test | 1 + mysql-test/t/ctype_gbk_binlog.test | 1 + mysql-test/t/mysqlbinlog-cp932.test | 5 +++-- 8 files changed, 11 insertions(+), 4 deletions(-) diff --git a/mysql-test/r/ctype_gbk_binlog.result b/mysql-test/r/ctype_gbk_binlog.result index a49e170ff19..df927af9a6b 100644 --- a/mysql-test/r/ctype_gbk_binlog.result +++ b/mysql-test/r/ctype_gbk_binlog.result @@ -1,3 +1,4 @@ +RESET MASTER; SET NAMES gbk; CREATE TABLE t1 ( f1 BLOB diff --git a/mysql-test/r/mysqlbinlog-cp932.result b/mysql-test/r/mysqlbinlog-cp932.result index 1640a3b1642..cbf6159516a 100644 --- a/mysql-test/r/mysqlbinlog-cp932.result +++ b/mysql-test/r/mysqlbinlog-cp932.result @@ -1,4 +1,4 @@ -flush logs; +RESET MASTER; create table t3 (f text character set utf8); create table t4 (f text character set cp932); flush logs; diff --git a/mysql-test/suite/binlog/r/binlog_incident.result b/mysql-test/suite/binlog/r/binlog_incident.result index d8b0357b8c4..7a555743723 100644 --- a/mysql-test/suite/binlog/r/binlog_incident.result +++ b/mysql-test/suite/binlog/r/binlog_incident.result @@ -1,3 +1,4 @@ +RESET MASTER; CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (1),(2),(3); SELECT * FROM t1; diff --git a/mysql-test/suite/binlog/r/binlog_tmp_table.result b/mysql-test/suite/binlog/r/binlog_tmp_table.result index e4928432324..14b1963ffd9 100644 --- a/mysql-test/suite/binlog/r/binlog_tmp_table.result +++ b/mysql-test/suite/binlog/r/binlog_tmp_table.result @@ -1,3 +1,4 @@ +RESET MASTER; create table foo (a int); flush logs; create temporary table tmp1_foo like foo; diff --git a/mysql-test/suite/binlog/t/binlog_incident.test b/mysql-test/suite/binlog/t/binlog_incident.test index 208c7f24df2..901ac49ea24 100644 --- a/mysql-test/suite/binlog/t/binlog_incident.test +++ b/mysql-test/suite/binlog/t/binlog_incident.test @@ -6,6 +6,7 @@ source include/have_log_bin.inc; source include/have_debug.inc; let $MYSQLD_DATADIR= `select @@datadir`; +RESET MASTER; CREATE TABLE t1 (a INT); @@ -24,4 +25,4 @@ exec $MYSQL_BINLOG --start-position=106 $MYSQLD_DATADIR/master-bin.000001 >$MYSQ eval SELECT cont LIKE '%RELOAD DATABASE; # Shall generate syntax error%' AS `Contain RELOAD DATABASE` FROM (SELECT load_file('$MYSQLTEST_VARDIR/tmp/binlog_incident-bug44442.sql') AS cont) AS tbl; --enable_query_log -remove_file $MYSQLTEST_VARDIR/tmp/binlog_incident-bug44442.sql; \ No newline at end of file +remove_file $MYSQLTEST_VARDIR/tmp/binlog_incident-bug44442.sql; diff --git a/mysql-test/suite/binlog/t/binlog_tmp_table.test b/mysql-test/suite/binlog/t/binlog_tmp_table.test index 6947959a5e0..54af8a8cb68 100644 --- a/mysql-test/suite/binlog/t/binlog_tmp_table.test +++ b/mysql-test/suite/binlog/t/binlog_tmp_table.test @@ -30,6 +30,7 @@ source include/have_binlog_format_mixed_or_statement.inc; connect (master,127.0.0.1,root,,test,$MASTER_MYPORT,); connect (master1,127.0.0.1,root,,test,$MASTER_MYPORT,); +RESET MASTER; create table foo (a int); diff --git a/mysql-test/t/ctype_gbk_binlog.test b/mysql-test/t/ctype_gbk_binlog.test index a8f653d1b1e..e4c1bee19af 100644 --- a/mysql-test/t/ctype_gbk_binlog.test +++ b/mysql-test/t/ctype_gbk_binlog.test @@ -1,6 +1,7 @@ -- source include/have_binlog_format_mixed_or_statement.inc -- source include/have_gbk.inc +RESET MASTER; SET NAMES gbk; --character_set gbk diff --git a/mysql-test/t/mysqlbinlog-cp932.test b/mysql-test/t/mysqlbinlog-cp932.test index a7055bfc8ca..2a210bea0e0 100644 --- a/mysql-test/t/mysqlbinlog-cp932.test +++ b/mysql-test/t/mysqlbinlog-cp932.test @@ -5,8 +5,9 @@ -- source include/have_cp932.inc -- source include/have_log_bin.inc +RESET MASTER; + # Bug#16217 (mysql client did not know how not switch its internal charset) -flush logs; create table t3 (f text character set utf8); create table t4 (f text character set cp932); --exec $MYSQL --default-character-set=utf8 test -e "insert into t3 values(_utf8'銈')" @@ -14,7 +15,7 @@ create table t4 (f text character set cp932); flush logs; rename table t3 to t03, t4 to t04; let $MYSQLD_DATADIR= `select @@datadir`; ---exec $MYSQL_BINLOG --short-form $MYSQLD_DATADIR/master-bin.000002 | $MYSQL --default-character-set=utf8 +--exec $MYSQL_BINLOG --short-form $MYSQLD_DATADIR/master-bin.000001 | $MYSQL --default-character-set=utf8 # original and recovered data must be equal select HEX(f) from t03; select HEX(f) from t3; -- cgit v1.2.1 From dd407c5228df80a7ef6086c412940084e7498627 Mon Sep 17 00:00:00 2001 From: Mikael Ronstrom Date: Mon, 7 Sep 2009 10:37:54 +0200 Subject: Fix to ensure that all subpartitions gets deleted before renaming starts, BUG#47029 --- mysql-test/r/partition_innodb.result | 14 ++++++++++++++ mysql-test/t/partition_innodb.test | 17 +++++++++++++++++ sql/ha_partition.cc | 1 + 3 files changed, 32 insertions(+) diff --git a/mysql-test/r/partition_innodb.result b/mysql-test/r/partition_innodb.result index ad4d08e89ff..9c5675c0c75 100644 --- a/mysql-test/r/partition_innodb.result +++ b/mysql-test/r/partition_innodb.result @@ -1,4 +1,18 @@ drop table if exists t1; +create table t1 (a int not null, +b datetime not null, +primary key (a,b)) +engine=innodb +partition by range (to_days(b)) +subpartition by hash (a) +subpartitions 2 +( partition p0 values less than (to_days('2009-01-01')), +partition p1 values less than (to_days('2009-02-01')), +partition p2 values less than (to_days('2009-03-01')), +partition p3 values less than maxvalue); +alter table t1 reorganize partition p1,p2 into +( partition p2 values less than (to_days('2009-03-01'))); +drop table t1; CREATE TABLE t1 (id INT PRIMARY KEY, data INT) ENGINE = InnoDB PARTITION BY RANGE(id) ( PARTITION p0 VALUES LESS THAN (5), diff --git a/mysql-test/t/partition_innodb.test b/mysql-test/t/partition_innodb.test index 2abbceffbb0..b29ce289811 100644 --- a/mysql-test/t/partition_innodb.test +++ b/mysql-test/t/partition_innodb.test @@ -5,6 +5,23 @@ drop table if exists t1; --enable_warnings +# +# Bug#47029: Crash when reorganize partition with subpartition +# +create table t1 (a int not null, + b datetime not null, + primary key (a,b)) +engine=innodb +partition by range (to_days(b)) +subpartition by hash (a) +subpartitions 2 +( partition p0 values less than (to_days('2009-01-01')), + partition p1 values less than (to_days('2009-02-01')), + partition p2 values less than (to_days('2009-03-01')), + partition p3 values less than maxvalue); +alter table t1 reorganize partition p1,p2 into +( partition p2 values less than (to_days('2009-03-01'))); +drop table t1; # # Bug#40595: Non-matching rows not released with READ-COMMITTED on tables # with partitions diff --git a/sql/ha_partition.cc b/sql/ha_partition.cc index ac8c46ec4e3..2e303744c1a 100644 --- a/sql/ha_partition.cc +++ b/sql/ha_partition.cc @@ -705,6 +705,7 @@ int ha_partition::rename_partitions(const char *path) if (m_is_sub_partitioned) { List_iterator sub_it(part_elem->subpartitions); + j= 0; do { sub_elem= sub_it++; -- cgit v1.2.1 From 2cb3a131f47a8bcf0398a28e4a6a16d1c30c9708 Mon Sep 17 00:00:00 2001 From: Martin Hansson Date: Mon, 7 Sep 2009 11:57:22 +0200 Subject: Bug#46259: 5.0.83 -> 5.1.36, query doesn't work The parser rule for expressions in a udf parameter list contains two hacks: First, the parser input stream is read verbatim, bypassing the lexer. Second, the Item::name field is overwritten. If the argument to a udf was a field, the field's name as seen by name resolution was overwritten this way. If the field name was quoted or escaped, it would appear as e.g. "`field`". Fixed by not overwriting field names. mysql-test/r/udf.result: Bug#46259: Test result. mysql-test/t/udf.test: Bug#46259: Test case. sql/sql_yacc.yy: Bug#46259: Fix. --- mysql-test/r/udf.result | 16 ++++++++++++++++ mysql-test/t/udf.test | 12 ++++++++++++ sql/sql_yacc.yy | 8 +++++++- 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/udf.result b/mysql-test/r/udf.result index 15410ac2039..601b364fbbe 100644 --- a/mysql-test/r/udf.result +++ b/mysql-test/r/udf.result @@ -392,4 +392,20 @@ a 4 DROP FUNCTION sequence; DROP TABLE t1,t2; +# +# Bug#46259: 5.0.83 -> 5.1.36, query doesn't work +# +CREATE TABLE t1 ( a INT ); +INSERT INTO t1 VALUES (1), (2), (3); +SELECT IF( a = 1, a, a ) AS `b` FROM t1 ORDER BY field( `b` + 1, 1 ); +b +1 +2 +3 +SELECT IF( a = 1, a, a ) AS `b` FROM t1 ORDER BY field( `b`, 1 ); +b +2 +3 +1 +DROP TABLE t1; End of 5.0 tests. diff --git a/mysql-test/t/udf.test b/mysql-test/t/udf.test index e9ae1a31079..7bf252040e5 100644 --- a/mysql-test/t/udf.test +++ b/mysql-test/t/udf.test @@ -436,4 +436,16 @@ SELECT * FROM t2 WHERE a = sequence(); DROP FUNCTION sequence; DROP TABLE t1,t2; +--echo # +--echo # Bug#46259: 5.0.83 -> 5.1.36, query doesn't work +--echo # +CREATE TABLE t1 ( a INT ); + +INSERT INTO t1 VALUES (1), (2), (3); + +SELECT IF( a = 1, a, a ) AS `b` FROM t1 ORDER BY field( `b` + 1, 1 ); +SELECT IF( a = 1, a, a ) AS `b` FROM t1 ORDER BY field( `b`, 1 ); + +DROP TABLE t1; + --echo End of 5.0 tests. diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index a18f57bf9cf..db97e77bbd0 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -7921,7 +7921,13 @@ udf_expr: $2->is_autogenerated_name= FALSE; $2->set_name($4.str, $4.length, system_charset_info); } - else + /* + A field has to have its proper name in order for name + resolution to work, something we are only guaranteed if we + parse it out. If we hijack the input stream with + remember_name we may get quoted or escaped names. + */ + else if ($2->type() != Item::FIELD_ITEM) $2->set_name($1, (uint) ($3 - $1), YYTHD->charset()); $$= $2; } -- cgit v1.2.1 From 24f103e39c100d0ca4fa4a4777fe82cd6d69034b Mon Sep 17 00:00:00 2001 From: Georgi Kodinov Date: Wed, 9 Sep 2009 12:06:15 +0300 Subject: Bug #45159 Part 1 : rejuvenate the jp test suite using normal run. Updates the results of all the out-dated test suites and adds the special mysqltest command to enable innodb for the tests that need it. --- mysql-test/suite/jp/r/jp_alter_sjis.result | 78 +++---- mysql-test/suite/jp/r/jp_alter_ucs2.result | 78 +++---- mysql-test/suite/jp/r/jp_alter_ujis.result | 78 +++---- mysql-test/suite/jp/r/jp_alter_utf8.result | 78 +++---- mysql-test/suite/jp/r/jp_convert_sjis.result | 12 + mysql-test/suite/jp/r/jp_create_db_sjis.result | 1 + mysql-test/suite/jp/r/jp_create_db_ucs2.result | 1 + mysql-test/suite/jp/r/jp_create_db_ujis.result | 1 + mysql-test/suite/jp/r/jp_create_db_utf8.result | 1 + mysql-test/suite/jp/r/jp_create_tbl_sjis.result | 78 +++++-- mysql-test/suite/jp/r/jp_create_tbl_ucs2.result | 78 +++++-- mysql-test/suite/jp/r/jp_create_tbl_ujis.result | 78 +++++-- mysql-test/suite/jp/r/jp_create_tbl_utf8.result | 78 +++++-- mysql-test/suite/jp/r/jp_enum_sjis.result | 60 ++--- mysql-test/suite/jp/r/jp_enum_ucs2.result | 6 +- mysql-test/suite/jp/r/jp_enum_ujis.result | 60 ++--- mysql-test/suite/jp/r/jp_enum_utf8.result | 60 ++--- mysql-test/suite/jp/r/jp_join_sjis.result | 288 ++++++++++++------------ mysql-test/suite/jp/r/jp_join_ucs2.result | 288 ++++++++++++------------ mysql-test/suite/jp/r/jp_join_ujis.result | 288 ++++++++++++------------ mysql-test/suite/jp/r/jp_join_utf8.result | 288 ++++++++++++------------ mysql-test/suite/jp/r/jp_select_sjis.result | 4 + mysql-test/suite/jp/t/jp_alter_sjis.test | 2 + mysql-test/suite/jp/t/jp_alter_ucs2.test | 2 + mysql-test/suite/jp/t/jp_alter_ujis.test | 2 + mysql-test/suite/jp/t/jp_alter_utf8.test | 2 + mysql-test/suite/jp/t/jp_charlength_sjis.test | 2 + mysql-test/suite/jp/t/jp_charlength_ucs2.test | 2 + mysql-test/suite/jp/t/jp_charlength_ujis.test | 2 + mysql-test/suite/jp/t/jp_charlength_utf8.test | 2 + mysql-test/suite/jp/t/jp_charset_sjis.test | 2 + mysql-test/suite/jp/t/jp_charset_ucs2.test | 2 + mysql-test/suite/jp/t/jp_charset_ujis.test | 2 + mysql-test/suite/jp/t/jp_charset_utf8.test | 2 + mysql-test/suite/jp/t/jp_convert_sjis.test | 2 + mysql-test/suite/jp/t/jp_convert_ucs2.test | 2 + mysql-test/suite/jp/t/jp_convert_ujis.test | 2 + mysql-test/suite/jp/t/jp_convert_utf8.test | 2 + mysql-test/suite/jp/t/jp_create_tbl_sjis.test | 2 + mysql-test/suite/jp/t/jp_create_tbl_ucs2.test | 2 + mysql-test/suite/jp/t/jp_create_tbl_ujis.test | 2 + mysql-test/suite/jp/t/jp_create_tbl_utf8.test | 2 + mysql-test/suite/jp/t/jp_enum_sjis.test | 2 + mysql-test/suite/jp/t/jp_enum_ucs2.test | 2 + mysql-test/suite/jp/t/jp_enum_ujis.test | 2 + mysql-test/suite/jp/t/jp_enum_utf8.test | 2 + mysql-test/suite/jp/t/jp_insert_sjis.test | 2 + mysql-test/suite/jp/t/jp_insert_ucs2.test | 2 + mysql-test/suite/jp/t/jp_insert_ujis.test | 2 + mysql-test/suite/jp/t/jp_insert_utf8.test | 2 + mysql-test/suite/jp/t/jp_instr_sjis.test | 2 + mysql-test/suite/jp/t/jp_instr_ucs2.test | 2 + mysql-test/suite/jp/t/jp_instr_ujis.test | 2 + mysql-test/suite/jp/t/jp_instr_utf8.test | 2 + mysql-test/suite/jp/t/jp_join_sjis.test | 1 + mysql-test/suite/jp/t/jp_join_ucs2.test | 1 + mysql-test/suite/jp/t/jp_join_ujis.test | 1 + mysql-test/suite/jp/t/jp_join_utf8.test | 1 + mysql-test/suite/jp/t/jp_left_sjis.test | 2 + mysql-test/suite/jp/t/jp_left_ucs2.test | 2 + mysql-test/suite/jp/t/jp_left_ujis.test | 2 + mysql-test/suite/jp/t/jp_left_utf8.test | 2 + mysql-test/suite/jp/t/jp_length_sjis.test | 2 + mysql-test/suite/jp/t/jp_length_ucs2.test | 2 + mysql-test/suite/jp/t/jp_length_ujis.test | 2 + mysql-test/suite/jp/t/jp_length_utf8.test | 2 + mysql-test/suite/jp/t/jp_like_sjis.test | 2 + mysql-test/suite/jp/t/jp_like_ucs2.test | 2 + mysql-test/suite/jp/t/jp_like_ujis.test | 2 + mysql-test/suite/jp/t/jp_like_utf8.test | 2 + mysql-test/suite/jp/t/jp_locate_sjis.test | 2 + mysql-test/suite/jp/t/jp_locate_ucs2.test | 2 + mysql-test/suite/jp/t/jp_locate_ujis.test | 2 + mysql-test/suite/jp/t/jp_locate_utf8.test | 2 + mysql-test/suite/jp/t/jp_lpad_sjis.test | 2 + mysql-test/suite/jp/t/jp_lpad_ucs2.test | 2 + mysql-test/suite/jp/t/jp_lpad_ujis.test | 2 + mysql-test/suite/jp/t/jp_lpad_utf8.test | 2 + mysql-test/suite/jp/t/jp_ltrim_sjis.test | 2 + mysql-test/suite/jp/t/jp_ltrim_ucs2.test | 2 + mysql-test/suite/jp/t/jp_ltrim_ujis.test | 2 + mysql-test/suite/jp/t/jp_ltrim_utf8.test | 2 + mysql-test/suite/jp/t/jp_ps_sjis.test | 2 + mysql-test/suite/jp/t/jp_ps_ujis.test | 2 + mysql-test/suite/jp/t/jp_replace_sjis.test | 2 + mysql-test/suite/jp/t/jp_replace_ucs2.test | 2 + mysql-test/suite/jp/t/jp_replace_ujis.test | 2 + mysql-test/suite/jp/t/jp_replace_utf8.test | 2 + mysql-test/suite/jp/t/jp_reverse_sjis.test | 2 + mysql-test/suite/jp/t/jp_reverse_ucs2.test | 2 + mysql-test/suite/jp/t/jp_reverse_ujis.test | 2 + mysql-test/suite/jp/t/jp_reverse_utf8.test | 2 + mysql-test/suite/jp/t/jp_right_sjis.test | 2 + mysql-test/suite/jp/t/jp_right_ucs2.test | 2 + mysql-test/suite/jp/t/jp_right_ujis.test | 2 + mysql-test/suite/jp/t/jp_right_utf8.test | 2 + mysql-test/suite/jp/t/jp_rpad_sjis.test | 2 + mysql-test/suite/jp/t/jp_rpad_ucs2.test | 2 + mysql-test/suite/jp/t/jp_rpad_ujis.test | 2 + mysql-test/suite/jp/t/jp_rpad_utf8.test | 2 + mysql-test/suite/jp/t/jp_rtrim_sjis.test | 2 + mysql-test/suite/jp/t/jp_rtrim_ucs2.test | 2 + mysql-test/suite/jp/t/jp_rtrim_ujis.test | 2 + mysql-test/suite/jp/t/jp_rtrim_utf8.test | 2 + mysql-test/suite/jp/t/jp_select_sjis.test | 2 + mysql-test/suite/jp/t/jp_select_ucs2.test | 2 + mysql-test/suite/jp/t/jp_select_ujis.test | 2 + mysql-test/suite/jp/t/jp_select_utf8.test | 2 + mysql-test/suite/jp/t/jp_subquery_sjis.test | 1 + mysql-test/suite/jp/t/jp_subquery_ucs2.test | 1 + mysql-test/suite/jp/t/jp_subquery_ujis.test | 1 + mysql-test/suite/jp/t/jp_subquery_utf8.test | 1 + mysql-test/suite/jp/t/jp_substring_sjis.test | 2 + mysql-test/suite/jp/t/jp_substring_ucs2.test | 2 + mysql-test/suite/jp/t/jp_substring_ujis.test | 2 + mysql-test/suite/jp/t/jp_substring_utf8.test | 2 + mysql-test/suite/jp/t/jp_trim_sjis.test | 2 + mysql-test/suite/jp/t/jp_trim_ucs2.test | 2 + mysql-test/suite/jp/t/jp_trim_ujis.test | 2 + mysql-test/suite/jp/t/jp_trim_utf8.test | 2 + mysql-test/suite/jp/t/jp_union_ujis.test | 2 + mysql-test/suite/jp/t/jp_update_sjis.test | 2 + mysql-test/suite/jp/t/jp_update_ucs2.test | 2 + mysql-test/suite/jp/t/jp_update_ujis.test | 2 + mysql-test/suite/jp/t/jp_update_utf8.test | 2 + mysql-test/suite/jp/t/jp_where_sjis.test | 2 + mysql-test/suite/jp/t/jp_where_ucs2.test | 2 + mysql-test/suite/jp/t/jp_where_ujis.test | 2 + mysql-test/suite/jp/t/jp_where_utf8.test | 2 + 129 files changed, 1303 insertions(+), 885 deletions(-) diff --git a/mysql-test/suite/jp/r/jp_alter_sjis.result b/mysql-test/suite/jp/r/jp_alter_sjis.result index f970508229a..32ae7d5729d 100644 --- a/mysql-test/suite/jp/r/jp_alter_sjis.result +++ b/mysql-test/suite/jp/r/jp_alter_sjis.result @@ -31,8 +31,8 @@ NULL DESC `北盽; Field Type Null Key Default Extra 抖 char(1) YES MUL NULL -贩 char(6) PRI -父 char(1) YES MUL NULL +贩 char(6) NO PRI +父 char(1) YES UNI NULL 构 char(1) YES NULL SHOW CREATE TABLE `北盽; Table Create Table @@ -58,7 +58,7 @@ SELECT * FROM ` 吵吵 DESC `北盽; Field Type Null Key Default Extra -贩 char(6) +贩 char(6) NO SHOW CREATE TABLE `北盽; Table Create Table 北 CREATE TABLE `北盽 ( @@ -80,8 +80,8 @@ NULL DESC `偁偁偁`; Field Type Null Key Default Extra 偐偐 char(1) YES MUL NULL -偒偒偒 char(6) PRI -偔偔偔 char(1) YES MUL NULL +偒偒偒 char(6) NO PRI +偔偔偔 char(1) YES UNI NULL 偗偗偗 char(1) YES NULL SHOW CREATE TABLE `偁偁偁`; Table Create Table @@ -107,7 +107,7 @@ SELECT * FROM ` 偆偆偆偆偆 DESC `偁偁偁`; Field Type Null Key Default Extra -偒偒偒 char(6) +偒偒偒 char(6) NO SHOW CREATE TABLE `偁偁偁`; Table Create Table 偁偁偁 CREATE TABLE `偁偁偁` ( @@ -129,8 +129,8 @@ NULL DESC `僜僜僜`; Field Type Null Key Default Extra 峔峔 char(1) YES MUL NULL -昞昞昞 char(6) PRI -擻擻擻 char(1) YES MUL NULL +昞昞昞 char(6) NO PRI +擻擻擻 char(1) YES UNI NULL 梊梊梊 char(1) YES NULL SHOW CREATE TABLE `僜僜僜`; Table Create Table @@ -156,7 +156,7 @@ SELECT * FROM ` 昞昞昞昞昞 DESC `僜僜僜`; Field Type Null Key Default Extra -昞昞昞 char(6) +昞昞昞 char(6) NO SHOW CREATE TABLE `僜僜僜`; Table Create Table 僜僜僜 CREATE TABLE `僜僜僜` ( @@ -193,8 +193,8 @@ NULL DESC `北盽; Field Type Null Key Default Extra 抖 char(1) YES MUL NULL -贩 char(6) PRI -父 char(1) YES MUL NULL +贩 char(6) NO PRI +父 char(1) YES UNI NULL 构 char(1) YES NULL SHOW CREATE TABLE `北盽; Table Create Table @@ -220,7 +220,7 @@ SELECT * FROM ` 吵吵 DESC `北盽; Field Type Null Key Default Extra -贩 char(6) +贩 char(6) NO SHOW CREATE TABLE `北盽; Table Create Table 北 CREATE TABLE `北盽 ( @@ -242,8 +242,8 @@ NULL DESC `偁偁偁`; Field Type Null Key Default Extra 偐偐 char(1) YES MUL NULL -偒偒偒 char(6) PRI -偔偔偔 char(1) YES MUL NULL +偒偒偒 char(6) NO PRI +偔偔偔 char(1) YES UNI NULL 偗偗偗 char(1) YES NULL SHOW CREATE TABLE `偁偁偁`; Table Create Table @@ -269,7 +269,7 @@ SELECT * FROM ` 偆偆偆偆偆 DESC `偁偁偁`; Field Type Null Key Default Extra -偒偒偒 char(6) +偒偒偒 char(6) NO SHOW CREATE TABLE `偁偁偁`; Table Create Table 偁偁偁 CREATE TABLE `偁偁偁` ( @@ -291,8 +291,8 @@ NULL DESC `僜僜僜`; Field Type Null Key Default Extra 峔峔 char(1) YES MUL NULL -昞昞昞 char(6) PRI -擻擻擻 char(1) YES MUL NULL +昞昞昞 char(6) NO PRI +擻擻擻 char(1) YES UNI NULL 梊梊梊 char(1) YES NULL SHOW CREATE TABLE `僜僜僜`; Table Create Table @@ -318,7 +318,7 @@ SELECT * FROM ` 擻擻擻擻擻 DESC `僜僜僜`; Field Type Null Key Default Extra -昞昞昞 char(6) +昞昞昞 char(6) NO SHOW CREATE TABLE `僜僜僜`; Table Create Table 僜僜僜 CREATE TABLE `僜僜僜` ( @@ -355,8 +355,8 @@ NULL DESC `北盽; Field Type Null Key Default Extra 抖 char(1) YES MUL NULL -贩 char(6) PRI -父 char(1) YES MUL NULL +贩 char(6) NO PRI +父 char(1) YES UNI NULL 构 char(1) YES NULL SHOW CREATE TABLE `北盽; Table Create Table @@ -368,7 +368,7 @@ Table Create Table PRIMARY KEY (`贩穈), UNIQUE KEY `父竊 (`父竊), KEY `抖禶 (`抖`) -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis ALTER TABLE `北盽 DROP INDEX `抖禶; ALTER TABLE `北盽 DROP PRIMARY KEY; ALTER TABLE `北盽 DROP INDEX `父竊; @@ -382,12 +382,12 @@ SELECT * FROM ` 吵吵 DESC `北盽; Field Type Null Key Default Extra -贩 char(6) +贩 char(6) NO SHOW CREATE TABLE `北盽; Table Create Table 北 CREATE TABLE `北盽 ( `贩穈 char(6) NOT NULL default '' -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis ALTER TABLE `偁偁偁` ADD `偐偐偐` char(1) FIRST; ALTER TABLE `偁偁偁` ADD `偔偔偔` char(1) AFTER `偒偒偒`; ALTER TABLE `偁偁偁` ADD `偗偗偗` char(1); @@ -404,8 +404,8 @@ NULL DESC `偁偁偁`; Field Type Null Key Default Extra 偐偐 char(1) YES MUL NULL -偒偒偒 char(6) PRI -偔偔偔 char(1) YES MUL NULL +偒偒偒 char(6) NO PRI +偔偔偔 char(1) YES UNI NULL 偗偗偗 char(1) YES NULL SHOW CREATE TABLE `偁偁偁`; Table Create Table @@ -417,7 +417,7 @@ Table Create Table PRIMARY KEY (`偒偒偒`), UNIQUE KEY `偔偔偔` (`偔偔偔`), KEY `偐偐偐` (`偐偐`) -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis ALTER TABLE `偁偁偁` DROP INDEX `偐偐偐`; ALTER TABLE `偁偁偁` DROP PRIMARY KEY; ALTER TABLE `偁偁偁` DROP INDEX `偔偔偔`; @@ -431,12 +431,12 @@ SELECT * FROM ` 偆偆偆偆偆 DESC `偁偁偁`; Field Type Null Key Default Extra -偒偒偒 char(6) +偒偒偒 char(6) NO SHOW CREATE TABLE `偁偁偁`; Table Create Table 偁偁偁 CREATE TABLE `偁偁偁` ( `偒偒偒` char(6) NOT NULL default '' -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis ALTER TABLE `僜僜僜` ADD `峔峔峔` char(1) FIRST; ALTER TABLE `僜僜僜` ADD `擻擻擻` char(1) AFTER `昞昞昞`; ALTER TABLE `僜僜僜` ADD `梊梊梊` char(1); @@ -453,8 +453,8 @@ NULL DESC `僜僜僜`; Field Type Null Key Default Extra 峔峔 char(1) YES MUL NULL -昞昞昞 char(6) PRI -擻擻擻 char(1) YES MUL NULL +昞昞昞 char(6) NO PRI +擻擻擻 char(1) YES UNI NULL 梊梊梊 char(1) YES NULL SHOW CREATE TABLE `僜僜僜`; Table Create Table @@ -466,7 +466,7 @@ Table Create Table PRIMARY KEY (`昞昞昞`), UNIQUE KEY `擻擻擻` (`擻擻擻`), KEY `峔峔峔` (`峔峔`) -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis ALTER TABLE `僜僜僜` DROP INDEX `峔峔峔`; ALTER TABLE `僜僜僜` DROP PRIMARY KEY; ALTER TABLE `僜僜僜` DROP INDEX `擻擻擻`; @@ -480,12 +480,12 @@ SELECT * FROM ` 擻擻擻擻擻 DESC `僜僜僜`; Field Type Null Key Default Extra -昞昞昞 char(6) +昞昞昞 char(6) NO SHOW CREATE TABLE `僜僜僜`; Table Create Table 僜僜僜 CREATE TABLE `僜僜僜` ( `昞昞昞` char(6) NOT NULL default '' -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis DROP TABLE `北盽; DROP TABLE `膊瞏; DROP TABLE `偁偁偁`; @@ -516,7 +516,7 @@ NULL DESC `北盽; Field Type Null Key Default Extra 抖 char(1) YES MUL NULL -贩 char(6) PRI +贩 char(6) NO PRI 父 char(1) YES NULL 构 char(1) YES NULL SHOW CREATE TABLE `北盽; @@ -541,7 +541,7 @@ SELECT * FROM ` 吵吵 DESC `北盽; Field Type Null Key Default Extra -贩 char(6) +贩 char(6) NO SHOW CREATE TABLE `北盽; Table Create Table 北 CREATE TABLE `北盽 ( @@ -562,7 +562,7 @@ NULL DESC `偁偁偁`; Field Type Null Key Default Extra 偐偐 char(1) YES MUL NULL -偒偒偒 char(6) PRI +偒偒偒 char(6) NO PRI 偔偔偔 char(1) YES NULL 偗偗偗 char(1) YES NULL SHOW CREATE TABLE `偁偁偁`; @@ -587,7 +587,7 @@ SELECT * FROM ` 偆偆偆偆偆 DESC `偁偁偁`; Field Type Null Key Default Extra -偒偒偒 char(6) +偒偒偒 char(6) NO SHOW CREATE TABLE `偁偁偁`; Table Create Table 偁偁偁 CREATE TABLE `偁偁偁` ( @@ -608,7 +608,7 @@ NULL DESC `僜僜僜`; Field Type Null Key Default Extra 峔峔 char(1) YES MUL NULL -昞昞昞 char(6) PRI +昞昞昞 char(6) NO PRI 擻擻擻 char(1) YES NULL 梊梊梊 char(1) YES NULL SHOW CREATE TABLE `僜僜僜`; @@ -633,7 +633,7 @@ SELECT * FROM ` 昞昞昞昞昞 DESC `僜僜僜`; Field Type Null Key Default Extra -昞昞昞 char(6) +昞昞昞 char(6) NO SHOW CREATE TABLE `僜僜僜`; Table Create Table 僜僜僜 CREATE TABLE `僜僜僜` ( diff --git a/mysql-test/suite/jp/r/jp_alter_ucs2.result b/mysql-test/suite/jp/r/jp_alter_ucs2.result index 2756e5a758d..746dfdd62cc 100644 --- a/mysql-test/suite/jp/r/jp_alter_ucs2.result +++ b/mysql-test/suite/jp/r/jp_alter_ucs2.result @@ -32,8 +32,8 @@ NULL DESC `幈幈幈`; Field Type Null Key Default Extra 幎幎 char(1) YES MUL NULL -幏幏幏 char(6) PRI -幐幐幐 char(1) YES MUL NULL +幏幏幏 char(6) NO PRI +幐幐幐 char(1) YES UNI NULL 幑幑幑 char(1) YES NULL SHOW CREATE TABLE `幈幈幈`; Table Create Table @@ -59,7 +59,7 @@ SELECT * FROM ` 幊幊幊幊幊 DESC `幈幈幈`; Field Type Null Key Default Extra -幏幏幏 char(6) +幏幏幏 char(6) NO SHOW CREATE TABLE `幈幈幈`; Table Create Table 幈幈幈 CREATE TABLE `幈幈幈` ( @@ -81,8 +81,8 @@ NULL DESC `あああ`; Field Type Null Key Default Extra かか char(1) YES MUL NULL -ききき char(6) PRI -くくく char(1) YES MUL NULL +ききき char(6) NO PRI +くくく char(1) YES UNI NULL けけけ char(1) YES NULL SHOW CREATE TABLE `あああ`; Table Create Table @@ -108,7 +108,7 @@ SELECT * FROM ` ううううう DESC `あああ`; Field Type Null Key Default Extra -ききき char(6) +ききき char(6) NO SHOW CREATE TABLE `あああ`; Table Create Table あああ CREATE TABLE `あああ` ( @@ -130,8 +130,8 @@ NULL DESC `忢輳磔忢輅; Field Type Null Key Default Extra 彴阿 char(1) YES MUL NULL -彴啊彴 char(6) PRI -彴埃彴 char(1) YES MUL NULL +彴啊彴 char(6) NO PRI +彴埃彴 char(1) YES UNI NULL 彴磸按彴 char(1) YES NULL SHOW CREATE TABLE `忢輳磔忢輅; Table Create Table @@ -157,7 +157,7 @@ SELECT * FROM ` 彴埃彴埃彴 DESC `忢輳磔忢輅; Field Type Null Key Default Extra -彴啊彴 char(6) +彴啊彴 char(6) NO SHOW CREATE TABLE `忢輳磔忢輅; Table Create Table 忢輳磔忢 CREATE TABLE `忢輳磔忢輅 ( @@ -194,8 +194,8 @@ NULL DESC `幈幈幈`; Field Type Null Key Default Extra 幎幎 char(1) YES MUL NULL -幏幏幏 char(6) PRI -幐幐幐 char(1) YES MUL NULL +幏幏幏 char(6) NO PRI +幐幐幐 char(1) YES UNI NULL 幑幑幑 char(1) YES NULL SHOW CREATE TABLE `幈幈幈`; Table Create Table @@ -221,7 +221,7 @@ SELECT * FROM ` 幊幊幊幊幊 DESC `幈幈幈`; Field Type Null Key Default Extra -幏幏幏 char(6) +幏幏幏 char(6) NO SHOW CREATE TABLE `幈幈幈`; Table Create Table 幈幈幈 CREATE TABLE `幈幈幈` ( @@ -243,8 +243,8 @@ NULL DESC `あああ`; Field Type Null Key Default Extra かか char(1) YES MUL NULL -ききき char(6) PRI -くくく char(1) YES MUL NULL +ききき char(6) NO PRI +くくく char(1) YES UNI NULL けけけ char(1) YES NULL SHOW CREATE TABLE `あああ`; Table Create Table @@ -270,7 +270,7 @@ SELECT * FROM ` ううううう DESC `あああ`; Field Type Null Key Default Extra -ききき char(6) +ききき char(6) NO SHOW CREATE TABLE `あああ`; Table Create Table あああ CREATE TABLE `あああ` ( @@ -292,8 +292,8 @@ NULL DESC `忢輳磔忢輅; Field Type Null Key Default Extra 彴阿 char(1) YES MUL NULL -彴啊彴 char(6) PRI -彴埃彴 char(1) YES MUL NULL +彴啊彴 char(6) NO PRI +彴埃彴 char(1) YES UNI NULL 彴磸按彴 char(1) YES NULL SHOW CREATE TABLE `忢輳磔忢輅; Table Create Table @@ -319,7 +319,7 @@ SELECT * FROM ` 彴埃彴埃彴 DESC `忢輳磔忢輅; Field Type Null Key Default Extra -彴啊彴 char(6) +彴啊彴 char(6) NO SHOW CREATE TABLE `忢輳磔忢輅; Table Create Table 忢輳磔忢 CREATE TABLE `忢輳磔忢輅 ( @@ -356,8 +356,8 @@ NULL DESC `幈幈幈`; Field Type Null Key Default Extra 幎幎 char(1) YES MUL NULL -幏幏幏 char(6) PRI -幐幐幐 char(1) YES MUL NULL +幏幏幏 char(6) NO PRI +幐幐幐 char(1) YES UNI NULL 幑幑幑 char(1) YES NULL SHOW CREATE TABLE `幈幈幈`; Table Create Table @@ -369,7 +369,7 @@ Table Create Table PRIMARY KEY (`幏幏幏`), UNIQUE KEY `幐幐幐` (`幐幐幐`), KEY `幎幎幎` (`幎幎`) -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 ALTER TABLE `幈幈幈` DROP INDEX `幎幎幎`; ALTER TABLE `幈幈幈` DROP PRIMARY KEY; ALTER TABLE `幈幈幈` DROP INDEX `幐幐幐`; @@ -383,12 +383,12 @@ SELECT * FROM ` 幊幊幊幊幊 DESC `幈幈幈`; Field Type Null Key Default Extra -幏幏幏 char(6) +幏幏幏 char(6) NO SHOW CREATE TABLE `幈幈幈`; Table Create Table 幈幈幈 CREATE TABLE `幈幈幈` ( `幏幏幏` char(6) NOT NULL default '' -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 ALTER TABLE `あああ` ADD `かかか` char(1) FIRST; ALTER TABLE `あああ` ADD `くくく` char(1) AFTER `ききき`; ALTER TABLE `あああ` ADD `けけけ` char(1); @@ -405,8 +405,8 @@ NULL DESC `あああ`; Field Type Null Key Default Extra かか char(1) YES MUL NULL -ききき char(6) PRI -くくく char(1) YES MUL NULL +ききき char(6) NO PRI +くくく char(1) YES UNI NULL けけけ char(1) YES NULL SHOW CREATE TABLE `あああ`; Table Create Table @@ -418,7 +418,7 @@ Table Create Table PRIMARY KEY (`ききき`), UNIQUE KEY `くくく` (`くくく`), KEY `かかか` (`かか`) -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 ALTER TABLE `あああ` DROP INDEX `かかか`; ALTER TABLE `あああ` DROP PRIMARY KEY; ALTER TABLE `あああ` DROP INDEX `くくく`; @@ -432,12 +432,12 @@ SELECT * FROM ` ううううう DESC `あああ`; Field Type Null Key Default Extra -ききき char(6) +ききき char(6) NO SHOW CREATE TABLE `あああ`; Table Create Table あああ CREATE TABLE `あああ` ( `ききき` char(6) NOT NULL default '' -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 ALTER TABLE `忢輳磔忢輅 ADD `彴阿彴 char(1) FIRST; ALTER TABLE `忢輳磔忢輅 ADD `彴埃彴 char(1) AFTER `彴啊彴; ALTER TABLE `忢輳磔忢輅 ADD `彴磸按彴碻 char(1); @@ -454,8 +454,8 @@ NULL DESC `忢輳磔忢輅; Field Type Null Key Default Extra 彴阿 char(1) YES MUL NULL -彴啊彴 char(6) PRI -彴埃彴 char(1) YES MUL NULL +彴啊彴 char(6) NO PRI +彴埃彴 char(1) YES UNI NULL 彴磸按彴 char(1) YES NULL SHOW CREATE TABLE `忢輳磔忢輅; Table Create Table @@ -467,7 +467,7 @@ Table Create Table PRIMARY KEY (`彴啊彴), UNIQUE KEY `彴埃彴 (`彴埃彴), KEY `彴阿彴 (`彴阿`) -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 ALTER TABLE `忢輳磔忢輅 DROP INDEX `彴阿彴; ALTER TABLE `忢輳磔忢輅 DROP PRIMARY KEY; ALTER TABLE `忢輳磔忢輅 DROP INDEX `彴埃彴; @@ -481,12 +481,12 @@ SELECT * FROM ` 彴埃彴埃彴 DESC `忢輳磔忢輅; Field Type Null Key Default Extra -彴啊彴 char(6) +彴啊彴 char(6) NO SHOW CREATE TABLE `忢輳磔忢輅; Table Create Table 忢輳磔忢 CREATE TABLE `忢輳磔忢輅 ( `彴啊彴 char(6) NOT NULL default '' -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 DROP TABLE `幈幈幈`; DROP TABLE `幉幉幉`; DROP TABLE `あああ`; @@ -517,7 +517,7 @@ NULL DESC `幈幈幈`; Field Type Null Key Default Extra 幎幎 char(1) YES MUL NULL -幏幏幏 char(6) PRI +幏幏幏 char(6) NO PRI 幐幐幐 char(1) YES NULL 幑幑幑 char(1) YES NULL SHOW CREATE TABLE `幈幈幈`; @@ -542,7 +542,7 @@ SELECT * FROM ` 幊幊幊幊幊 DESC `幈幈幈`; Field Type Null Key Default Extra -幏幏幏 char(6) +幏幏幏 char(6) NO SHOW CREATE TABLE `幈幈幈`; Table Create Table 幈幈幈 CREATE TABLE `幈幈幈` ( @@ -563,7 +563,7 @@ NULL DESC `あああ`; Field Type Null Key Default Extra かか char(1) YES MUL NULL -ききき char(6) PRI +ききき char(6) NO PRI くくく char(1) YES NULL けけけ char(1) YES NULL SHOW CREATE TABLE `あああ`; @@ -588,7 +588,7 @@ SELECT * FROM ` ううううう DESC `あああ`; Field Type Null Key Default Extra -ききき char(6) +ききき char(6) NO SHOW CREATE TABLE `あああ`; Table Create Table あああ CREATE TABLE `あああ` ( @@ -609,7 +609,7 @@ NULL DESC `忢輳磔忢輅; Field Type Null Key Default Extra 彴阿 char(1) YES MUL NULL -彴啊彴 char(6) PRI +彴啊彴 char(6) NO PRI 彴埃彴 char(1) YES NULL 彴磸按彴 char(1) YES NULL SHOW CREATE TABLE `忢輳磔忢輅; @@ -634,7 +634,7 @@ SELECT * FROM ` 彴埃彴埃彴 DESC `忢輳磔忢輅; Field Type Null Key Default Extra -彴啊彴 char(6) +彴啊彴 char(6) NO SHOW CREATE TABLE `忢輳磔忢輅; Table Create Table 忢輳磔忢 CREATE TABLE `忢輳磔忢輅 ( diff --git a/mysql-test/suite/jp/r/jp_alter_ujis.result b/mysql-test/suite/jp/r/jp_alter_ujis.result index afa3c79cbce..daea68caa3f 100644 --- a/mysql-test/suite/jp/r/jp_alter_ujis.result +++ b/mysql-test/suite/jp/r/jp_alter_ujis.result @@ -31,8 +31,8 @@ NULL DESC `幈幈幈`; Field Type Null Key Default Extra 幎幎 char(1) YES MUL NULL -幏幏幏 char(6) PRI -幐幐幐 char(1) YES MUL NULL +幏幏幏 char(6) NO PRI +幐幐幐 char(1) YES UNI NULL 幑幑幑 char(1) YES NULL SHOW CREATE TABLE `幈幈幈`; Table Create Table @@ -58,7 +58,7 @@ SELECT * FROM ` 幊幊幊幊幊 DESC `幈幈幈`; Field Type Null Key Default Extra -幏幏幏 char(6) +幏幏幏 char(6) NO SHOW CREATE TABLE `幈幈幈`; Table Create Table 幈幈幈 CREATE TABLE `幈幈幈` ( @@ -80,8 +80,8 @@ NULL DESC `あああ`; Field Type Null Key Default Extra かか char(1) YES MUL NULL -ききき char(6) PRI -くくく char(1) YES MUL NULL +ききき char(6) NO PRI +くくく char(1) YES UNI NULL けけけ char(1) YES NULL SHOW CREATE TABLE `あああ`; Table Create Table @@ -107,7 +107,7 @@ SELECT * FROM ` ううううう DESC `あああ`; Field Type Null Key Default Extra -ききき char(6) +ききき char(6) NO SHOW CREATE TABLE `あああ`; Table Create Table あああ CREATE TABLE `あああ` ( @@ -129,8 +129,8 @@ NULL DESC `忢輳磔忢輅; Field Type Null Key Default Extra 彴阿 char(1) YES MUL NULL -彴啊彴 char(6) PRI -彴埃彴 char(1) YES MUL NULL +彴啊彴 char(6) NO PRI +彴埃彴 char(1) YES UNI NULL 彴磸按彴 char(1) YES NULL SHOW CREATE TABLE `忢輳磔忢輅; Table Create Table @@ -156,7 +156,7 @@ SELECT * FROM ` 彴埃彴埃彴 DESC `忢輳磔忢輅; Field Type Null Key Default Extra -彴啊彴 char(6) +彴啊彴 char(6) NO SHOW CREATE TABLE `忢輳磔忢輅; Table Create Table 忢輳磔忢 CREATE TABLE `忢輳磔忢輅 ( @@ -193,8 +193,8 @@ NULL DESC `幈幈幈`; Field Type Null Key Default Extra 幎幎 char(1) YES MUL NULL -幏幏幏 char(6) PRI -幐幐幐 char(1) YES MUL NULL +幏幏幏 char(6) NO PRI +幐幐幐 char(1) YES UNI NULL 幑幑幑 char(1) YES NULL SHOW CREATE TABLE `幈幈幈`; Table Create Table @@ -220,7 +220,7 @@ SELECT * FROM ` 幊幊幊幊幊 DESC `幈幈幈`; Field Type Null Key Default Extra -幏幏幏 char(6) +幏幏幏 char(6) NO SHOW CREATE TABLE `幈幈幈`; Table Create Table 幈幈幈 CREATE TABLE `幈幈幈` ( @@ -242,8 +242,8 @@ NULL DESC `あああ`; Field Type Null Key Default Extra かか char(1) YES MUL NULL -ききき char(6) PRI -くくく char(1) YES MUL NULL +ききき char(6) NO PRI +くくく char(1) YES UNI NULL けけけ char(1) YES NULL SHOW CREATE TABLE `あああ`; Table Create Table @@ -269,7 +269,7 @@ SELECT * FROM ` ううううう DESC `あああ`; Field Type Null Key Default Extra -ききき char(6) +ききき char(6) NO SHOW CREATE TABLE `あああ`; Table Create Table あああ CREATE TABLE `あああ` ( @@ -291,8 +291,8 @@ NULL DESC `忢輳磔忢輅; Field Type Null Key Default Extra 彴阿 char(1) YES MUL NULL -彴啊彴 char(6) PRI -彴埃彴 char(1) YES MUL NULL +彴啊彴 char(6) NO PRI +彴埃彴 char(1) YES UNI NULL 彴磸按彴 char(1) YES NULL SHOW CREATE TABLE `忢輳磔忢輅; Table Create Table @@ -318,7 +318,7 @@ SELECT * FROM ` 彴埃彴埃彴 DESC `忢輳磔忢輅; Field Type Null Key Default Extra -彴啊彴 char(6) +彴啊彴 char(6) NO SHOW CREATE TABLE `忢輳磔忢輅; Table Create Table 忢輳磔忢 CREATE TABLE `忢輳磔忢輅 ( @@ -355,8 +355,8 @@ NULL DESC `幈幈幈`; Field Type Null Key Default Extra 幎幎 char(1) YES MUL NULL -幏幏幏 char(6) PRI -幐幐幐 char(1) YES MUL NULL +幏幏幏 char(6) NO PRI +幐幐幐 char(1) YES UNI NULL 幑幑幑 char(1) YES NULL SHOW CREATE TABLE `幈幈幈`; Table Create Table @@ -368,7 +368,7 @@ Table Create Table PRIMARY KEY (`幏幏幏`), UNIQUE KEY `幐幐幐` (`幐幐幐`), KEY `幎幎幎` (`幎幎`) -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis ALTER TABLE `幈幈幈` DROP INDEX `幎幎幎`; ALTER TABLE `幈幈幈` DROP PRIMARY KEY; ALTER TABLE `幈幈幈` DROP INDEX `幐幐幐`; @@ -382,12 +382,12 @@ SELECT * FROM ` 幊幊幊幊幊 DESC `幈幈幈`; Field Type Null Key Default Extra -幏幏幏 char(6) +幏幏幏 char(6) NO SHOW CREATE TABLE `幈幈幈`; Table Create Table 幈幈幈 CREATE TABLE `幈幈幈` ( `幏幏幏` char(6) NOT NULL default '' -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis ALTER TABLE `あああ` ADD `かかか` char(1) FIRST; ALTER TABLE `あああ` ADD `くくく` char(1) AFTER `ききき`; ALTER TABLE `あああ` ADD `けけけ` char(1); @@ -404,8 +404,8 @@ NULL DESC `あああ`; Field Type Null Key Default Extra かか char(1) YES MUL NULL -ききき char(6) PRI -くくく char(1) YES MUL NULL +ききき char(6) NO PRI +くくく char(1) YES UNI NULL けけけ char(1) YES NULL SHOW CREATE TABLE `あああ`; Table Create Table @@ -417,7 +417,7 @@ Table Create Table PRIMARY KEY (`ききき`), UNIQUE KEY `くくく` (`くくく`), KEY `かかか` (`かか`) -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis ALTER TABLE `あああ` DROP INDEX `かかか`; ALTER TABLE `あああ` DROP PRIMARY KEY; ALTER TABLE `あああ` DROP INDEX `くくく`; @@ -431,12 +431,12 @@ SELECT * FROM ` ううううう DESC `あああ`; Field Type Null Key Default Extra -ききき char(6) +ききき char(6) NO SHOW CREATE TABLE `あああ`; Table Create Table あああ CREATE TABLE `あああ` ( `ききき` char(6) NOT NULL default '' -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis ALTER TABLE `忢輳磔忢輅 ADD `彴阿彴 char(1) FIRST; ALTER TABLE `忢輳磔忢輅 ADD `彴埃彴 char(1) AFTER `彴啊彴; ALTER TABLE `忢輳磔忢輅 ADD `彴磸按彴碻 char(1); @@ -453,8 +453,8 @@ NULL DESC `忢輳磔忢輅; Field Type Null Key Default Extra 彴阿 char(1) YES MUL NULL -彴啊彴 char(6) PRI -彴埃彴 char(1) YES MUL NULL +彴啊彴 char(6) NO PRI +彴埃彴 char(1) YES UNI NULL 彴磸按彴 char(1) YES NULL SHOW CREATE TABLE `忢輳磔忢輅; Table Create Table @@ -466,7 +466,7 @@ Table Create Table PRIMARY KEY (`彴啊彴), UNIQUE KEY `彴埃彴 (`彴埃彴), KEY `彴阿彴 (`彴阿`) -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis ALTER TABLE `忢輳磔忢輅 DROP INDEX `彴阿彴; ALTER TABLE `忢輳磔忢輅 DROP PRIMARY KEY; ALTER TABLE `忢輳磔忢輅 DROP INDEX `彴埃彴; @@ -480,12 +480,12 @@ SELECT * FROM ` 彴埃彴埃彴 DESC `忢輳磔忢輅; Field Type Null Key Default Extra -彴啊彴 char(6) +彴啊彴 char(6) NO SHOW CREATE TABLE `忢輳磔忢輅; Table Create Table 忢輳磔忢 CREATE TABLE `忢輳磔忢輅 ( `彴啊彴 char(6) NOT NULL default '' -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis DROP TABLE `幈幈幈`; DROP TABLE `幉幉幉`; DROP TABLE `あああ`; @@ -516,7 +516,7 @@ NULL DESC `幈幈幈`; Field Type Null Key Default Extra 幎幎 char(1) YES MUL NULL -幏幏幏 char(6) PRI +幏幏幏 char(6) NO PRI 幐幐幐 char(1) YES NULL 幑幑幑 char(1) YES NULL SHOW CREATE TABLE `幈幈幈`; @@ -541,7 +541,7 @@ SELECT * FROM ` 幊幊幊幊幊 DESC `幈幈幈`; Field Type Null Key Default Extra -幏幏幏 char(6) +幏幏幏 char(6) NO SHOW CREATE TABLE `幈幈幈`; Table Create Table 幈幈幈 CREATE TABLE `幈幈幈` ( @@ -562,7 +562,7 @@ NULL DESC `あああ`; Field Type Null Key Default Extra かか char(1) YES MUL NULL -ききき char(6) PRI +ききき char(6) NO PRI くくく char(1) YES NULL けけけ char(1) YES NULL SHOW CREATE TABLE `あああ`; @@ -587,7 +587,7 @@ SELECT * FROM ` ううううう DESC `あああ`; Field Type Null Key Default Extra -ききき char(6) +ききき char(6) NO SHOW CREATE TABLE `あああ`; Table Create Table あああ CREATE TABLE `あああ` ( @@ -608,7 +608,7 @@ NULL DESC `忢輳磔忢輅; Field Type Null Key Default Extra 彴阿 char(1) YES MUL NULL -彴啊彴 char(6) PRI +彴啊彴 char(6) NO PRI 彴埃彴 char(1) YES NULL 彴磸按彴 char(1) YES NULL SHOW CREATE TABLE `忢輳磔忢輅; @@ -633,7 +633,7 @@ SELECT * FROM ` 彴埃彴埃彴 DESC `忢輳磔忢輅; Field Type Null Key Default Extra -彴啊彴 char(6) +彴啊彴 char(6) NO SHOW CREATE TABLE `忢輳磔忢輅; Table Create Table 忢輳磔忢 CREATE TABLE `忢輳磔忢輅 ( diff --git a/mysql-test/suite/jp/r/jp_alter_utf8.result b/mysql-test/suite/jp/r/jp_alter_utf8.result index 19475e06a87..f2f374eed87 100644 --- a/mysql-test/suite/jp/r/jp_alter_utf8.result +++ b/mysql-test/suite/jp/r/jp_alter_utf8.result @@ -31,8 +31,8 @@ NULL 锝筹匠锝筹匠锝 NULL NULL DESC `锝憋奖锝盽; Field Type Null Key Default Extra 锝讹蕉 char(1) YES MUL NULL -锝凤椒锝 char(6) PRI -锝革礁锝 char(1) YES MUL NULL +锝凤椒锝 char(6) NO PRI +锝革礁锝 char(1) YES UNI NULL 锝癸焦锝 char(1) YES NULL SHOW CREATE TABLE `锝憋奖锝盽; Table Create Table @@ -58,7 +58,7 @@ SELECT * FROM `锝憋奖锝盽; 锝筹匠锝筹匠锝 DESC `锝憋奖锝盽; Field Type Null Key Default Extra -锝凤椒锝 char(6) +锝凤椒锝 char(6) NO SHOW CREATE TABLE `锝憋奖锝盽; Table Create Table 锝憋奖锝 CREATE TABLE `锝憋奖锝盽 ( @@ -80,8 +80,8 @@ NULL 銇嗐亞銇嗐亞銇 NULL NULL DESC `銇傘亗銇俙; Field Type Null Key Default Extra 銇嬨亱 char(1) YES MUL NULL -銇嶃亶銇 char(6) PRI -銇忋亸銇 char(1) YES MUL NULL +銇嶃亶銇 char(6) NO PRI +銇忋亸銇 char(1) YES UNI NULL 銇戙亼銇 char(1) YES NULL SHOW CREATE TABLE `銇傘亗銇俙; Table Create Table @@ -107,7 +107,7 @@ SELECT * FROM `銇傘亗銇俙; 銇嗐亞銇嗐亞銇 DESC `銇傘亗銇俙; Field Type Null Key Default Extra -銇嶃亶銇 char(6) +銇嶃亶銇 char(6) NO SHOW CREATE TABLE `銇傘亗銇俙; Table Create Table 銇傘亗銇 CREATE TABLE `銇傘亗銇俙 ( @@ -129,8 +129,8 @@ NULL 涓呬竻涓呬竻涓 NULL NULL DESC `榫栭緰榫朻; Field Type Null Key Default Extra 涓勪竸 char(1) YES MUL NULL -涓備競涓 char(6) PRI -涓呬竻涓 char(1) YES MUL NULL +涓備競涓 char(6) NO PRI +涓呬竻涓 char(1) YES UNI NULL 涔氫箽涔 char(1) YES NULL SHOW CREATE TABLE `榫栭緰榫朻; Table Create Table @@ -156,7 +156,7 @@ SELECT * FROM `榫栭緰榫朻; 涓呬竻涓呬竻涓 DESC `榫栭緰榫朻; Field Type Null Key Default Extra -涓備競涓 char(6) +涓備競涓 char(6) NO SHOW CREATE TABLE `榫栭緰榫朻; Table Create Table 榫栭緰榫 CREATE TABLE `榫栭緰榫朻 ( @@ -193,8 +193,8 @@ NULL 锝筹匠锝筹匠锝 NULL NULL DESC `锝憋奖锝盽; Field Type Null Key Default Extra 锝讹蕉 char(1) YES MUL NULL -锝凤椒锝 char(6) PRI -锝革礁锝 char(1) YES MUL NULL +锝凤椒锝 char(6) NO PRI +锝革礁锝 char(1) YES UNI NULL 锝癸焦锝 char(1) YES NULL SHOW CREATE TABLE `锝憋奖锝盽; Table Create Table @@ -220,7 +220,7 @@ SELECT * FROM `锝憋奖锝盽; 锝筹匠锝筹匠锝 DESC `锝憋奖锝盽; Field Type Null Key Default Extra -锝凤椒锝 char(6) +锝凤椒锝 char(6) NO SHOW CREATE TABLE `锝憋奖锝盽; Table Create Table 锝憋奖锝 CREATE TABLE `锝憋奖锝盽 ( @@ -242,8 +242,8 @@ NULL 銇嗐亞銇嗐亞銇 NULL NULL DESC `銇傘亗銇俙; Field Type Null Key Default Extra 銇嬨亱 char(1) YES MUL NULL -銇嶃亶銇 char(6) PRI -銇忋亸銇 char(1) YES MUL NULL +銇嶃亶銇 char(6) NO PRI +銇忋亸銇 char(1) YES UNI NULL 銇戙亼銇 char(1) YES NULL SHOW CREATE TABLE `銇傘亗銇俙; Table Create Table @@ -269,7 +269,7 @@ SELECT * FROM `銇傘亗銇俙; 銇嗐亞銇嗐亞銇 DESC `銇傘亗銇俙; Field Type Null Key Default Extra -銇嶃亶銇 char(6) +銇嶃亶銇 char(6) NO SHOW CREATE TABLE `銇傘亗銇俙; Table Create Table 銇傘亗銇 CREATE TABLE `銇傘亗銇俙 ( @@ -291,8 +291,8 @@ NULL 涓呬竻涓呬竻涓 NULL NULL DESC `榫栭緰榫朻; Field Type Null Key Default Extra 涓勪竸 char(1) YES MUL NULL -涓備競涓 char(6) PRI -涓呬竻涓 char(1) YES MUL NULL +涓備競涓 char(6) NO PRI +涓呬竻涓 char(1) YES UNI NULL 涔氫箽涔 char(1) YES NULL SHOW CREATE TABLE `榫栭緰榫朻; Table Create Table @@ -318,7 +318,7 @@ SELECT * FROM `榫栭緰榫朻; 涓呬竻涓呬竻涓 DESC `榫栭緰榫朻; Field Type Null Key Default Extra -涓備競涓 char(6) +涓備競涓 char(6) NO SHOW CREATE TABLE `榫栭緰榫朻; Table Create Table 榫栭緰榫 CREATE TABLE `榫栭緰榫朻 ( @@ -355,8 +355,8 @@ NULL 锝筹匠锝筹匠锝 NULL NULL DESC `锝憋奖锝盽; Field Type Null Key Default Extra 锝讹蕉 char(1) YES MUL NULL -锝凤椒锝 char(6) PRI -锝革礁锝 char(1) YES MUL NULL +锝凤椒锝 char(6) NO PRI +锝革礁锝 char(1) YES UNI NULL 锝癸焦锝 char(1) YES NULL SHOW CREATE TABLE `锝憋奖锝盽; Table Create Table @@ -368,7 +368,7 @@ Table Create Table PRIMARY KEY (`锝凤椒锝穈), UNIQUE KEY `锝革礁锝竊 (`锝革礁锝竊), KEY `锝讹蕉锝禶 (`锝讹蕉`) -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 ALTER TABLE `锝憋奖锝盽 DROP INDEX `锝讹蕉锝禶; ALTER TABLE `锝憋奖锝盽 DROP PRIMARY KEY; ALTER TABLE `锝憋奖锝盽 DROP INDEX `锝革礁锝竊; @@ -382,12 +382,12 @@ SELECT * FROM `锝憋奖锝盽; 锝筹匠锝筹匠锝 DESC `锝憋奖锝盽; Field Type Null Key Default Extra -锝凤椒锝 char(6) +锝凤椒锝 char(6) NO SHOW CREATE TABLE `锝憋奖锝盽; Table Create Table 锝憋奖锝 CREATE TABLE `锝憋奖锝盽 ( `锝凤椒锝穈 char(6) NOT NULL default '' -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 ALTER TABLE `銇傘亗銇俙 ADD `銇嬨亱銇媊 char(1) FIRST; ALTER TABLE `銇傘亗銇俙 ADD `銇忋亸銇廯 char(1) AFTER `銇嶃亶銇峘; ALTER TABLE `銇傘亗銇俙 ADD `銇戙亼銇慲 char(1); @@ -404,8 +404,8 @@ NULL 銇嗐亞銇嗐亞銇 NULL NULL DESC `銇傘亗銇俙; Field Type Null Key Default Extra 銇嬨亱 char(1) YES MUL NULL -銇嶃亶銇 char(6) PRI -銇忋亸銇 char(1) YES MUL NULL +銇嶃亶銇 char(6) NO PRI +銇忋亸銇 char(1) YES UNI NULL 銇戙亼銇 char(1) YES NULL SHOW CREATE TABLE `銇傘亗銇俙; Table Create Table @@ -417,7 +417,7 @@ Table Create Table PRIMARY KEY (`銇嶃亶銇峘), UNIQUE KEY `銇忋亸銇廯 (`銇忋亸銇廯), KEY `銇嬨亱銇媊 (`銇嬨亱`) -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 ALTER TABLE `銇傘亗銇俙 DROP INDEX `銇嬨亱銇媊; ALTER TABLE `銇傘亗銇俙 DROP PRIMARY KEY; ALTER TABLE `銇傘亗銇俙 DROP INDEX `銇忋亸銇廯; @@ -431,12 +431,12 @@ SELECT * FROM `銇傘亗銇俙; 銇嗐亞銇嗐亞銇 DESC `銇傘亗銇俙; Field Type Null Key Default Extra -銇嶃亶銇 char(6) +銇嶃亶銇 char(6) NO SHOW CREATE TABLE `銇傘亗銇俙; Table Create Table 銇傘亗銇 CREATE TABLE `銇傘亗銇俙 ( `銇嶃亶銇峘 char(6) NOT NULL default '' -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 ALTER TABLE `榫栭緰榫朻 ADD `涓勪竸涓刞 char(1) FIRST; ALTER TABLE `榫栭緰榫朻 ADD `涓呬竻涓卄 char(1) AFTER `涓備競涓俙; ALTER TABLE `榫栭緰榫朻 ADD `涔氫箽涔歚 char(1); @@ -453,8 +453,8 @@ NULL 涓呬竻涓呬竻涓 NULL NULL DESC `榫栭緰榫朻; Field Type Null Key Default Extra 涓勪竸 char(1) YES MUL NULL -涓備競涓 char(6) PRI -涓呬竻涓 char(1) YES MUL NULL +涓備競涓 char(6) NO PRI +涓呬竻涓 char(1) YES UNI NULL 涔氫箽涔 char(1) YES NULL SHOW CREATE TABLE `榫栭緰榫朻; Table Create Table @@ -466,7 +466,7 @@ Table Create Table PRIMARY KEY (`涓備競涓俙), UNIQUE KEY `涓呬竻涓卄 (`涓呬竻涓卄), KEY `涓勪竸涓刞 (`涓勪竸`) -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 ALTER TABLE `榫栭緰榫朻 DROP INDEX `涓勪竸涓刞; ALTER TABLE `榫栭緰榫朻 DROP PRIMARY KEY; ALTER TABLE `榫栭緰榫朻 DROP INDEX `涓呬竻涓卄; @@ -480,12 +480,12 @@ SELECT * FROM `榫栭緰榫朻; 涓呬竻涓呬竻涓 DESC `榫栭緰榫朻; Field Type Null Key Default Extra -涓備競涓 char(6) +涓備競涓 char(6) NO SHOW CREATE TABLE `榫栭緰榫朻; Table Create Table 榫栭緰榫 CREATE TABLE `榫栭緰榫朻 ( `涓備競涓俙 char(6) NOT NULL default '' -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 DROP TABLE `锝憋奖锝盽; DROP TABLE `锝诧讲锝瞏; DROP TABLE `銇傘亗銇俙; @@ -516,7 +516,7 @@ NULL 锝筹匠锝筹匠锝 NULL NULL DESC `锝憋奖锝盽; Field Type Null Key Default Extra 锝讹蕉 char(1) YES MUL NULL -锝凤椒锝 char(6) PRI +锝凤椒锝 char(6) NO PRI 锝革礁锝 char(1) YES NULL 锝癸焦锝 char(1) YES NULL SHOW CREATE TABLE `锝憋奖锝盽; @@ -541,7 +541,7 @@ SELECT * FROM `锝憋奖锝盽; 锝筹匠锝筹匠锝 DESC `锝憋奖锝盽; Field Type Null Key Default Extra -锝凤椒锝 char(6) +锝凤椒锝 char(6) NO SHOW CREATE TABLE `锝憋奖锝盽; Table Create Table 锝憋奖锝 CREATE TABLE `锝憋奖锝盽 ( @@ -562,7 +562,7 @@ NULL 銇嗐亞銇嗐亞銇 NULL NULL DESC `銇傘亗銇俙; Field Type Null Key Default Extra 銇嬨亱 char(1) YES MUL NULL -銇嶃亶銇 char(6) PRI +銇嶃亶銇 char(6) NO PRI 銇忋亸銇 char(1) YES NULL 銇戙亼銇 char(1) YES NULL SHOW CREATE TABLE `銇傘亗銇俙; @@ -587,7 +587,7 @@ SELECT * FROM `銇傘亗銇俙; 銇嗐亞銇嗐亞銇 DESC `銇傘亗銇俙; Field Type Null Key Default Extra -銇嶃亶銇 char(6) +銇嶃亶銇 char(6) NO SHOW CREATE TABLE `銇傘亗銇俙; Table Create Table 銇傘亗銇 CREATE TABLE `銇傘亗銇俙 ( @@ -608,7 +608,7 @@ NULL 涓呬竻涓呬竻涓 NULL NULL DESC `榫栭緰榫朻; Field Type Null Key Default Extra 涓勪竸 char(1) YES MUL NULL -涓備競涓 char(6) PRI +涓備競涓 char(6) NO PRI 涓呬竻涓 char(1) YES NULL 涔氫箽涔 char(1) YES NULL SHOW CREATE TABLE `榫栭緰榫朻; @@ -633,7 +633,7 @@ SELECT * FROM `榫栭緰榫朻; 涓呬竻涓呬竻涓 DESC `榫栭緰榫朻; Field Type Null Key Default Extra -涓備競涓 char(6) +涓備競涓 char(6) NO SHOW CREATE TABLE `榫栭緰榫朻; Table Create Table 榫栭緰榫 CREATE TABLE `榫栭緰榫朻 ( diff --git a/mysql-test/suite/jp/r/jp_convert_sjis.result b/mysql-test/suite/jp/r/jp_convert_sjis.result index 8c9df3606c8..ff8a3fb2cd9 100644 --- a/mysql-test/suite/jp/r/jp_convert_sjis.result +++ b/mysql-test/suite/jp/r/jp_convert_sjis.result @@ -278,12 +278,15 @@ SELECT ` 陳陸陹険陻陼陽陾陿隀隁隂隃隄隇丒丒丒丒丒 陳陸陹険陻陼陽陾陿隀隁隂隃隄隇丒丒丒丒丒 SELECT `俠侾`, CONVERT(`俠侾` using utf8) FROM `俿俁`; 俠侾 CONVERT(`俠侾` using utf8) + 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 SELECT `俠侾`, CONVERT(`俠侾` using ucs2) FROM `俿俁`; 俠侾 CONVERT(`俠侾` using ucs2) + 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 SELECT `俠侾`, CONVERT(`俠侾` using ujis) FROM `俿俁`; 俠侾 CONVERT(`俠侾` using ujis) + 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 SELECT `俠侾`, CONVERT(`俠侾` using utf8) FROM `俿係`; 俠侾 CONVERT(`俠侾` using utf8) @@ -527,12 +530,15 @@ SELECT ` 陳陸陹険陻陼陽陾陿隀隁隂隃隄隇丒丒丒丒丒 陳陸陹険陻陼陽陾陿隀隁隂隃隄隇丒丒丒丒丒 SELECT `俠侾`, CONVERT(`俠侾` using utf8) FROM `俿俇`; 俠侾 CONVERT(`俠侾` using utf8) + 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 SELECT `俠侾`, CONVERT(`俠侾` using ucs2) FROM `俿俇`; 俠侾 CONVERT(`俠侾` using ucs2) + 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 SELECT `俠侾`, CONVERT(`俠侾` using ujis) FROM `俿俇`; 俠侾 CONVERT(`俠侾` using ujis) + 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 SELECT `俠侾`, CONVERT(`俠侾` using utf8) FROM `俿俈`; 俠侾 CONVERT(`俠侾` using utf8) @@ -777,12 +783,15 @@ SELECT ` SELECT `俠侾`, CONVERT(`俠侾` using utf8) FROM `俿俋`; 俠侾 CONVERT(`俠侾` using utf8) 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 + SELECT `俠侾`, CONVERT(`俠侾` using ucs2) FROM `俿俋`; 俠侾 CONVERT(`俠侾` using ucs2) 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 + SELECT `俠侾`, CONVERT(`俠侾` using ujis) FROM `俿俋`; 俠侾 CONVERT(`俠侾` using ujis) 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 + SELECT `俠侾`, CONVERT(`俠侾` using utf8) FROM `俿侾侽`; 俠侾 CONVERT(`俠侾` using utf8) !"#$%&'()*+,-./ !"#$%&'()*+,-./ @@ -1026,12 +1035,15 @@ SELECT ` SELECT `俠侾`, CONVERT(`俠侾` using utf8) FROM `俿侾俀`; 俠侾 CONVERT(`俠侾` using utf8) 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 + SELECT `俠侾`, CONVERT(`俠侾` using ucs2) FROM `俿侾俀`; 俠侾 CONVERT(`俠侾` using ucs2) 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 + SELECT `俠侾`, CONVERT(`俠侾` using ujis) FROM `俿侾俀`; 俠侾 CONVERT(`俠侾` using ujis) 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 + drop table `俿侾`; drop table `俿俀`; drop table `俿俁`; diff --git a/mysql-test/suite/jp/r/jp_create_db_sjis.result b/mysql-test/suite/jp/r/jp_create_db_sjis.result index 1ce0b7228d5..5d13cf74a39 100644 --- a/mysql-test/suite/jp/r/jp_create_db_sjis.result +++ b/mysql-test/suite/jp/r/jp_create_db_sjis.result @@ -8,6 +8,7 @@ CREATE DATABASE ` CREATE DATABASE `僜廫昞`; SHOW DATABASES; Database +information_schema mysql test 僜廫昞 diff --git a/mysql-test/suite/jp/r/jp_create_db_ucs2.result b/mysql-test/suite/jp/r/jp_create_db_ucs2.result index 8fd921ea8e6..f03baadf707 100644 --- a/mysql-test/suite/jp/r/jp_create_db_ucs2.result +++ b/mysql-test/suite/jp/r/jp_create_db_ucs2.result @@ -9,6 +9,7 @@ CREATE DATABASE ` CREATE DATABASE `忢軓磔忢轥; SHOW DATABASES; Database +information_schema mysql test 泣塑胳 diff --git a/mysql-test/suite/jp/r/jp_create_db_ujis.result b/mysql-test/suite/jp/r/jp_create_db_ujis.result index 45fdb34717b..627381bbacb 100644 --- a/mysql-test/suite/jp/r/jp_create_db_ujis.result +++ b/mysql-test/suite/jp/r/jp_create_db_ujis.result @@ -8,6 +8,7 @@ CREATE DATABASE ` CREATE DATABASE `忢軓磔忢轥; SHOW DATABASES; Database +information_schema mysql test 泣塑胳 diff --git a/mysql-test/suite/jp/r/jp_create_db_utf8.result b/mysql-test/suite/jp/r/jp_create_db_utf8.result index c0e996040de..1813259bdc9 100644 --- a/mysql-test/suite/jp/r/jp_create_db_utf8.result +++ b/mysql-test/suite/jp/r/jp_create_db_utf8.result @@ -8,6 +8,7 @@ CREATE DATABASE `鏃ユ湰瑾瀈; CREATE DATABASE `榫旈緰榫梎; SHOW DATABASES; Database +information_schema mysql test 鏃ユ湰瑾 diff --git a/mysql-test/suite/jp/r/jp_create_tbl_sjis.result b/mysql-test/suite/jp/r/jp_create_tbl_sjis.result index ecc72f9d91b..763a25bc127 100644 --- a/mysql-test/suite/jp/r/jp_create_tbl_sjis.result +++ b/mysql-test/suite/jp/r/jp_create_tbl_sjis.result @@ -22,11 +22,23 @@ CREATE TABLE ` CREATE TABLE `僜僜僜`(`塡塡塡` char(1)) DEFAULT CHARSET = sjis engine=INNODB; CREATE TABLE `廫廫廫`(`嶾嶾嶾` char(1)) DEFAULT CHARSET = sjis engine=INNODB; CREATE TABLE IF NOT EXISTS `北盽(`抖禶 char(1)) DEFAULT CHARSET = sjis engine=INNODB; +Warnings: +Note 1050 Table '北' already exists CREATE TABLE IF NOT EXISTS `膊瞏(`贩穈 char(1)) DEFAULT CHARSET = sjis engine=INNODB; +Warnings: +Note 1050 Table '膊' already exists CREATE TABLE IF NOT EXISTS `偁偁偁`(`偐偐偐` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +Warnings: +Note 1050 Table '偁偁偁' already exists CREATE TABLE IF NOT EXISTS `偄偄偄`(`偒偒偒` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +Warnings: +Note 1050 Table '偄偄偄' already exists CREATE TABLE IF NOT EXISTS `僜僜僜`(`塡塡塡` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +Warnings: +Note 1050 Table '僜僜僜' already exists CREATE TABLE IF NOT EXISTS `廫廫廫`(`嶾嶾嶾` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +Warnings: +Note 1050 Table '廫廫廫' already exists CREATE TABLE IF NOT EXISTS `吵砢(`父竊 char(1)) DEFAULT CHARSET = sjis engine=INNODB; CREATE TABLE IF NOT EXISTS `偆偆偆`(`偔偔偔` char(1)) DEFAULT CHARSET = sjis engine=INNODB; CREATE TABLE IF NOT EXISTS `昞昞昞`(`怽怽怽`char(1)) DEFAULT CHARSET = sjis engine=INNODB; @@ -178,11 +190,23 @@ CREATE TABLE ` CREATE TABLE `僜僜僜`(`塡塡塡` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; CREATE TABLE `廫廫廫`(`嶾嶾嶾` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; CREATE TABLE IF NOT EXISTS `北盽(`抖禶 char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +Warnings: +Note 1050 Table '北' already exists CREATE TABLE IF NOT EXISTS `膊瞏(`贩穈 char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +Warnings: +Note 1050 Table '膊' already exists CREATE TABLE IF NOT EXISTS `偁偁偁`(`偐偐偐` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +Warnings: +Note 1050 Table '偁偁偁' already exists CREATE TABLE IF NOT EXISTS `偄偄偄`(`偒偒偒` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +Warnings: +Note 1050 Table '偄偄偄' already exists CREATE TABLE IF NOT EXISTS `僜僜僜`(`塡塡塡` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +Warnings: +Note 1050 Table '僜僜僜' already exists CREATE TABLE IF NOT EXISTS `廫廫廫`(`嶾嶾嶾` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +Warnings: +Note 1050 Table '廫廫廫' already exists CREATE TABLE IF NOT EXISTS `吵砢(`父竊 char(1)) DEFAULT CHARSET = sjis engine=MyISAM; CREATE TABLE IF NOT EXISTS `偆偆偆`(`偔偔偔` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; CREATE TABLE IF NOT EXISTS `昞昞昞`(`怽怽怽`char(1)) DEFAULT CHARSET = sjis engine=MyISAM; @@ -334,11 +358,23 @@ CREATE TABLE ` CREATE TABLE `僜僜僜`(`塡塡塡` char(1)) DEFAULT CHARSET = sjis engine=HEAP; CREATE TABLE `廫廫廫`(`嶾嶾嶾` char(1)) DEFAULT CHARSET = sjis engine=HEAP; CREATE TABLE IF NOT EXISTS `北盽(`抖禶 char(1)) DEFAULT CHARSET = sjis engine=HEAP; +Warnings: +Note 1050 Table '北' already exists CREATE TABLE IF NOT EXISTS `膊瞏(`贩穈 char(1)) DEFAULT CHARSET = sjis engine=HEAP; +Warnings: +Note 1050 Table '膊' already exists CREATE TABLE IF NOT EXISTS `偁偁偁`(`偐偐偐` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +Warnings: +Note 1050 Table '偁偁偁' already exists CREATE TABLE IF NOT EXISTS `偄偄偄`(`偒偒偒` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +Warnings: +Note 1050 Table '偄偄偄' already exists CREATE TABLE IF NOT EXISTS `僜僜僜`(`塡塡塡` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +Warnings: +Note 1050 Table '僜僜僜' already exists CREATE TABLE IF NOT EXISTS `廫廫廫`(`嶾嶾嶾` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +Warnings: +Note 1050 Table '廫廫廫' already exists CREATE TABLE IF NOT EXISTS `吵砢(`父竊 char(1)) DEFAULT CHARSET = sjis engine=HEAP; CREATE TABLE IF NOT EXISTS `偆偆偆`(`偔偔偔` char(1)) DEFAULT CHARSET = sjis engine=HEAP; CREATE TABLE IF NOT EXISTS `昞昞昞`(`怽怽怽`char(1)) DEFAULT CHARSET = sjis engine=HEAP; @@ -397,77 +433,77 @@ SHOW CREATE TABLE ` Table Create Table 北 CREATE TABLE `北盽 ( `抖禶 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `膊瞏; Table Create Table 膊 CREATE TABLE `膊瞏 ( `贩穈 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `吵砢; Table Create Table 吵 CREATE TABLE `吵砢 ( `父竊 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `创碻; Table Create Table 创 CREATE TEMPORARY TABLE `创碻 ( `构筦 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `档礰; Table Create Table 档 CREATE TEMPORARY TABLE `档礰 ( `汉篳 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `偁偁偁`; Table Create Table 偁偁偁 CREATE TABLE `偁偁偁` ( `偐偐偐` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `偄偄偄`; Table Create Table 偄偄偄 CREATE TABLE `偄偄偄` ( `偒偒偒` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `偆偆偆`; Table Create Table 偆偆偆 CREATE TABLE `偆偆偆` ( `偔偔偔` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `偊偊偊`; Table Create Table 偊偊偊 CREATE TEMPORARY TABLE `偊偊偊` ( `偗偗偗` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `偍偍偍`; Table Create Table 偍偍偍 CREATE TEMPORARY TABLE `偍偍偍` ( `偙偙偙` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `僜僜僜`; Table Create Table 僜僜僜 CREATE TABLE `僜僜僜` ( `塡塡塡` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `廫廫廫`; Table Create Table 廫廫廫 CREATE TABLE `廫廫廫` ( `嶾嶾嶾` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `昞昞昞`; Table Create Table 昞昞昞 CREATE TABLE `昞昞昞` ( `怽怽怽` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `梊梊梊`; Table Create Table 梊梊梊 CREATE TEMPORARY TABLE `梊梊梊` ( `揬揬揬` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `峔峔峔`; Table Create Table 峔峔峔 CREATE TEMPORARY TABLE `峔峔峔` ( `擻擻擻` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis DROP TABLE `北盽; DROP TABLE `膊瞏; DROP TABLE `吵砢; @@ -490,11 +526,23 @@ CREATE TABLE ` CREATE TABLE `僜僜僜`(`塡塡塡` char(1)) DEFAULT CHARSET = sjis engine=BDB; CREATE TABLE `廫廫廫`(`嶾嶾嶾` char(1)) DEFAULT CHARSET = sjis engine=BDB; CREATE TABLE IF NOT EXISTS `北盽(`抖禶 char(1)) DEFAULT CHARSET = sjis engine=BDB; +Warnings: +Note 1050 Table '北' already exists CREATE TABLE IF NOT EXISTS `膊瞏(`贩穈 char(1)) DEFAULT CHARSET = sjis engine=BDB; +Warnings: +Note 1050 Table '膊' already exists CREATE TABLE IF NOT EXISTS `偁偁偁`(`偐偐偐` char(1)) DEFAULT CHARSET = sjis engine=BDB; +Warnings: +Note 1050 Table '偁偁偁' already exists CREATE TABLE IF NOT EXISTS `偄偄偄`(`偒偒偒` char(1)) DEFAULT CHARSET = sjis engine=BDB; +Warnings: +Note 1050 Table '偄偄偄' already exists CREATE TABLE IF NOT EXISTS `僜僜僜`(`塡塡塡` char(1)) DEFAULT CHARSET = sjis engine=BDB; +Warnings: +Note 1050 Table '僜僜僜' already exists CREATE TABLE IF NOT EXISTS `廫廫廫`(`嶾嶾嶾` char(1)) DEFAULT CHARSET = sjis engine=BDB; +Warnings: +Note 1050 Table '廫廫廫' already exists CREATE TABLE IF NOT EXISTS `吵砢(`父竊 char(1)) DEFAULT CHARSET = sjis engine=BDB; CREATE TABLE IF NOT EXISTS `偆偆偆`(`偔偔偔` char(1)) DEFAULT CHARSET = sjis engine=BDB; CREATE TABLE IF NOT EXISTS `昞昞昞`(`怽怽怽`char(1)) DEFAULT CHARSET = sjis engine=BDB; diff --git a/mysql-test/suite/jp/r/jp_create_tbl_ucs2.result b/mysql-test/suite/jp/r/jp_create_tbl_ucs2.result index 0bf5a6891b0..d6616f66d9f 100644 --- a/mysql-test/suite/jp/r/jp_create_tbl_ucs2.result +++ b/mysql-test/suite/jp/r/jp_create_tbl_ucs2.result @@ -22,11 +22,23 @@ CREATE TABLE ` CREATE TABLE `忢輳磔忢輅(`彴啊彴 char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; CREATE TABLE `忢迯磙忢轥(`彴阿彴 char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; CREATE TABLE IF NOT EXISTS `幈幈幈`(`幎幎幎` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +Warnings: +Note 1050 Table '幈幈幈' already exists CREATE TABLE IF NOT EXISTS `幉幉幉`(`幏幏幏` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +Warnings: +Note 1050 Table '幉幉幉' already exists CREATE TABLE IF NOT EXISTS `あああ`(`かかか` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +Warnings: +Note 1050 Table 'あああ' already exists CREATE TABLE IF NOT EXISTS `いいい`(`ききき` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +Warnings: +Note 1050 Table 'いいい' already exists CREATE TABLE IF NOT EXISTS `忢輳磔忢輅(`彴啊彴 char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +Warnings: +Note 1050 Table '忢輳磔忢' already exists CREATE TABLE IF NOT EXISTS `忢迯磙忢轥(`彴阿彴 char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +Warnings: +Note 1050 Table '忢迯磙忢' already exists CREATE TABLE IF NOT EXISTS `幊幊幊`(`幐幐幐` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; CREATE TABLE IF NOT EXISTS `ううう`(`くくく` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; CREATE TABLE IF NOT EXISTS `忢邚磉忢違(`彴埃彴char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; @@ -178,11 +190,23 @@ CREATE TABLE ` CREATE TABLE `忢輳磔忢輅(`彴啊彴 char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; CREATE TABLE `忢迯磙忢轥(`彴阿彴 char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; CREATE TABLE IF NOT EXISTS `幈幈幈`(`幎幎幎` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +Warnings: +Note 1050 Table '幈幈幈' already exists CREATE TABLE IF NOT EXISTS `幉幉幉`(`幏幏幏` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +Warnings: +Note 1050 Table '幉幉幉' already exists CREATE TABLE IF NOT EXISTS `あああ`(`かかか` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +Warnings: +Note 1050 Table 'あああ' already exists CREATE TABLE IF NOT EXISTS `いいい`(`ききき` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +Warnings: +Note 1050 Table 'いいい' already exists CREATE TABLE IF NOT EXISTS `忢輳磔忢輅(`彴啊彴 char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +Warnings: +Note 1050 Table '忢輳磔忢' already exists CREATE TABLE IF NOT EXISTS `忢迯磙忢轥(`彴阿彴 char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +Warnings: +Note 1050 Table '忢迯磙忢' already exists CREATE TABLE IF NOT EXISTS `幊幊幊`(`幐幐幐` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; CREATE TABLE IF NOT EXISTS `ううう`(`くくく` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; CREATE TABLE IF NOT EXISTS `忢邚磉忢違(`彴埃彴char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; @@ -334,11 +358,23 @@ CREATE TABLE ` CREATE TABLE `忢輳磔忢輅(`彴啊彴 char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; CREATE TABLE `忢迯磙忢轥(`彴阿彴 char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; CREATE TABLE IF NOT EXISTS `幈幈幈`(`幎幎幎` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +Warnings: +Note 1050 Table '幈幈幈' already exists CREATE TABLE IF NOT EXISTS `幉幉幉`(`幏幏幏` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +Warnings: +Note 1050 Table '幉幉幉' already exists CREATE TABLE IF NOT EXISTS `あああ`(`かかか` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +Warnings: +Note 1050 Table 'あああ' already exists CREATE TABLE IF NOT EXISTS `いいい`(`ききき` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +Warnings: +Note 1050 Table 'いいい' already exists CREATE TABLE IF NOT EXISTS `忢輳磔忢輅(`彴啊彴 char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +Warnings: +Note 1050 Table '忢輳磔忢' already exists CREATE TABLE IF NOT EXISTS `忢迯磙忢轥(`彴阿彴 char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +Warnings: +Note 1050 Table '忢迯磙忢' already exists CREATE TABLE IF NOT EXISTS `幊幊幊`(`幐幐幐` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; CREATE TABLE IF NOT EXISTS `ううう`(`くくく` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; CREATE TABLE IF NOT EXISTS `忢邚磉忢違(`彴埃彴char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; @@ -397,77 +433,77 @@ SHOW CREATE TABLE ` Table Create Table 幈幈幈 CREATE TABLE `幈幈幈` ( `幎幎幎` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 SHOW CREATE TABLE `幉幉幉`; Table Create Table 幉幉幉 CREATE TABLE `幉幉幉` ( `幏幏幏` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 SHOW CREATE TABLE `幊幊幊`; Table Create Table 幊幊幊 CREATE TABLE `幊幊幊` ( `幐幐幐` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 SHOW CREATE TABLE `幋幋幋`; Table Create Table 幋幋幋 CREATE TEMPORARY TABLE `幋幋幋` ( `幑幑幑` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 SHOW CREATE TABLE `幍幍幍`; Table Create Table 幍幍幍 CREATE TEMPORARY TABLE `幍幍幍` ( `幒幒幒` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 SHOW CREATE TABLE `あああ`; Table Create Table あああ CREATE TABLE `あああ` ( `かかか` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 SHOW CREATE TABLE `いいい`; Table Create Table いいい CREATE TABLE `いいい` ( `ききき` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 SHOW CREATE TABLE `ううう`; Table Create Table ううう CREATE TABLE `ううう` ( `くくく` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 SHOW CREATE TABLE `えええ`; Table Create Table えええ CREATE TEMPORARY TABLE `えええ` ( `けけけ` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 SHOW CREATE TABLE `おおお`; Table Create Table おおお CREATE TEMPORARY TABLE `おおお` ( `こここ` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 SHOW CREATE TABLE `忢輳磔忢輅; Table Create Table 忢輳磔忢 CREATE TABLE `忢輳磔忢輅 ( `彴啊彴 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 SHOW CREATE TABLE `忢迯磙忢轥; Table Create Table 忢迯磙忢 CREATE TABLE `忢迯磙忢轥 ( `彴阿彴 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 SHOW CREATE TABLE `忢邚磉忢違; Table Create Table 忢邚磉忢 CREATE TABLE `忢邚磉忢違 ( `彴埃彴 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 SHOW CREATE TABLE `忢鄰磬忢郹; Table Create Table 忢鄰磬忢 CREATE TEMPORARY TABLE `忢鄰磬忢郹 ( `彴挨彴 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 SHOW CREATE TABLE `忢釓磲忢醏; Table Create Table 忢釓磲忢 CREATE TEMPORARY TABLE `忢釓磲忢醏 ( `彴哎彴 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 DROP TABLE `幈幈幈`; DROP TABLE `幉幉幉`; DROP TABLE `幊幊幊`; @@ -490,11 +526,23 @@ CREATE TABLE ` CREATE TABLE `忢輳磔忢輅(`彴啊彴 char(1)) DEFAULT CHARSET = ucs2 engine=BDB; CREATE TABLE `忢迯磙忢轥(`彴阿彴 char(1)) DEFAULT CHARSET = ucs2 engine=BDB; CREATE TABLE IF NOT EXISTS `幈幈幈`(`幎幎幎` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +Warnings: +Note 1050 Table '幈幈幈' already exists CREATE TABLE IF NOT EXISTS `幉幉幉`(`幏幏幏` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +Warnings: +Note 1050 Table '幉幉幉' already exists CREATE TABLE IF NOT EXISTS `あああ`(`かかか` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +Warnings: +Note 1050 Table 'あああ' already exists CREATE TABLE IF NOT EXISTS `いいい`(`ききき` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +Warnings: +Note 1050 Table 'いいい' already exists CREATE TABLE IF NOT EXISTS `忢輳磔忢輅(`彴啊彴 char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +Warnings: +Note 1050 Table '忢輳磔忢' already exists CREATE TABLE IF NOT EXISTS `忢迯磙忢轥(`彴阿彴 char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +Warnings: +Note 1050 Table '忢迯磙忢' already exists CREATE TABLE IF NOT EXISTS `幊幊幊`(`幐幐幐` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; CREATE TABLE IF NOT EXISTS `ううう`(`くくく` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; CREATE TABLE IF NOT EXISTS `忢邚磉忢違(`彴埃彴char(1)) DEFAULT CHARSET = ucs2 engine=BDB; diff --git a/mysql-test/suite/jp/r/jp_create_tbl_ujis.result b/mysql-test/suite/jp/r/jp_create_tbl_ujis.result index ae555e5af15..f53e1e58793 100644 --- a/mysql-test/suite/jp/r/jp_create_tbl_ujis.result +++ b/mysql-test/suite/jp/r/jp_create_tbl_ujis.result @@ -22,11 +22,23 @@ CREATE TABLE ` CREATE TABLE `忢輳磔忢輅(`彴啊彴 char(1)) DEFAULT CHARSET = ujis engine=INNODB; CREATE TABLE `忢迯磙忢轥(`彴阿彴 char(1)) DEFAULT CHARSET = ujis engine=INNODB; CREATE TABLE IF NOT EXISTS `幈幈幈`(`幎幎幎` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +Warnings: +Note 1050 Table '幈幈幈' already exists CREATE TABLE IF NOT EXISTS `幉幉幉`(`幏幏幏` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +Warnings: +Note 1050 Table '幉幉幉' already exists CREATE TABLE IF NOT EXISTS `あああ`(`かかか` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +Warnings: +Note 1050 Table 'あああ' already exists CREATE TABLE IF NOT EXISTS `いいい`(`ききき` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +Warnings: +Note 1050 Table 'いいい' already exists CREATE TABLE IF NOT EXISTS `忢輳磔忢輅(`彴啊彴 char(1)) DEFAULT CHARSET = ujis engine=INNODB; +Warnings: +Note 1050 Table '忢輳磔忢' already exists CREATE TABLE IF NOT EXISTS `忢迯磙忢轥(`彴阿彴 char(1)) DEFAULT CHARSET = ujis engine=INNODB; +Warnings: +Note 1050 Table '忢迯磙忢' already exists CREATE TABLE IF NOT EXISTS `幊幊幊`(`幐幐幐` char(1)) DEFAULT CHARSET = ujis engine=INNODB; CREATE TABLE IF NOT EXISTS `ううう`(`くくく` char(1)) DEFAULT CHARSET = ujis engine=INNODB; CREATE TABLE IF NOT EXISTS `忢邚磉忢違(`彴埃彴char(1)) DEFAULT CHARSET = ujis engine=INNODB; @@ -178,11 +190,23 @@ CREATE TABLE ` CREATE TABLE `忢輳磔忢輅(`彴啊彴 char(1)) DEFAULT CHARSET = ujis engine=MyISAM; CREATE TABLE `忢迯磙忢轥(`彴阿彴 char(1)) DEFAULT CHARSET = ujis engine=MyISAM; CREATE TABLE IF NOT EXISTS `幈幈幈`(`幎幎幎` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +Warnings: +Note 1050 Table '幈幈幈' already exists CREATE TABLE IF NOT EXISTS `幉幉幉`(`幏幏幏` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +Warnings: +Note 1050 Table '幉幉幉' already exists CREATE TABLE IF NOT EXISTS `あああ`(`かかか` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +Warnings: +Note 1050 Table 'あああ' already exists CREATE TABLE IF NOT EXISTS `いいい`(`ききき` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +Warnings: +Note 1050 Table 'いいい' already exists CREATE TABLE IF NOT EXISTS `忢輳磔忢輅(`彴啊彴 char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +Warnings: +Note 1050 Table '忢輳磔忢' already exists CREATE TABLE IF NOT EXISTS `忢迯磙忢轥(`彴阿彴 char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +Warnings: +Note 1050 Table '忢迯磙忢' already exists CREATE TABLE IF NOT EXISTS `幊幊幊`(`幐幐幐` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; CREATE TABLE IF NOT EXISTS `ううう`(`くくく` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; CREATE TABLE IF NOT EXISTS `忢邚磉忢違(`彴埃彴char(1)) DEFAULT CHARSET = ujis engine=MyISAM; @@ -334,11 +358,23 @@ CREATE TABLE ` CREATE TABLE `忢輳磔忢輅(`彴啊彴 char(1)) DEFAULT CHARSET = ujis engine=HEAP; CREATE TABLE `忢迯磙忢轥(`彴阿彴 char(1)) DEFAULT CHARSET = ujis engine=HEAP; CREATE TABLE IF NOT EXISTS `幈幈幈`(`幎幎幎` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +Warnings: +Note 1050 Table '幈幈幈' already exists CREATE TABLE IF NOT EXISTS `幉幉幉`(`幏幏幏` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +Warnings: +Note 1050 Table '幉幉幉' already exists CREATE TABLE IF NOT EXISTS `あああ`(`かかか` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +Warnings: +Note 1050 Table 'あああ' already exists CREATE TABLE IF NOT EXISTS `いいい`(`ききき` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +Warnings: +Note 1050 Table 'いいい' already exists CREATE TABLE IF NOT EXISTS `忢輳磔忢輅(`彴啊彴 char(1)) DEFAULT CHARSET = ujis engine=HEAP; +Warnings: +Note 1050 Table '忢輳磔忢' already exists CREATE TABLE IF NOT EXISTS `忢迯磙忢轥(`彴阿彴 char(1)) DEFAULT CHARSET = ujis engine=HEAP; +Warnings: +Note 1050 Table '忢迯磙忢' already exists CREATE TABLE IF NOT EXISTS `幊幊幊`(`幐幐幐` char(1)) DEFAULT CHARSET = ujis engine=HEAP; CREATE TABLE IF NOT EXISTS `ううう`(`くくく` char(1)) DEFAULT CHARSET = ujis engine=HEAP; CREATE TABLE IF NOT EXISTS `忢邚磉忢違(`彴埃彴char(1)) DEFAULT CHARSET = ujis engine=HEAP; @@ -397,77 +433,77 @@ SHOW CREATE TABLE ` Table Create Table 幈幈幈 CREATE TABLE `幈幈幈` ( `幎幎幎` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `幉幉幉`; Table Create Table 幉幉幉 CREATE TABLE `幉幉幉` ( `幏幏幏` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `幊幊幊`; Table Create Table 幊幊幊 CREATE TABLE `幊幊幊` ( `幐幐幐` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `幋幋幋`; Table Create Table 幋幋幋 CREATE TEMPORARY TABLE `幋幋幋` ( `幑幑幑` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `幍幍幍`; Table Create Table 幍幍幍 CREATE TEMPORARY TABLE `幍幍幍` ( `幒幒幒` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `あああ`; Table Create Table あああ CREATE TABLE `あああ` ( `かかか` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `いいい`; Table Create Table いいい CREATE TABLE `いいい` ( `ききき` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `ううう`; Table Create Table ううう CREATE TABLE `ううう` ( `くくく` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `えええ`; Table Create Table えええ CREATE TEMPORARY TABLE `えええ` ( `けけけ` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `おおお`; Table Create Table おおお CREATE TEMPORARY TABLE `おおお` ( `こここ` char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `忢輳磔忢輅; Table Create Table 忢輳磔忢 CREATE TABLE `忢輳磔忢輅 ( `彴啊彴 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `忢迯磙忢轥; Table Create Table 忢迯磙忢 CREATE TABLE `忢迯磙忢轥 ( `彴阿彴 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `忢邚磉忢違; Table Create Table 忢邚磉忢 CREATE TABLE `忢邚磉忢違 ( `彴埃彴 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `忢鄰磬忢郹; Table Create Table 忢鄰磬忢 CREATE TEMPORARY TABLE `忢鄰磬忢郹 ( `彴挨彴 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `忢釓磲忢醏; Table Create Table 忢釓磲忢 CREATE TEMPORARY TABLE `忢釓磲忢醏 ( `彴哎彴 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis DROP TABLE `幈幈幈`; DROP TABLE `幉幉幉`; DROP TABLE `幊幊幊`; @@ -490,11 +526,23 @@ CREATE TABLE ` CREATE TABLE `忢輳磔忢輅(`彴啊彴 char(1)) DEFAULT CHARSET = ujis engine=BDB; CREATE TABLE `忢迯磙忢轥(`彴阿彴 char(1)) DEFAULT CHARSET = ujis engine=BDB; CREATE TABLE IF NOT EXISTS `幈幈幈`(`幎幎幎` char(1)) DEFAULT CHARSET = ujis engine=BDB; +Warnings: +Note 1050 Table '幈幈幈' already exists CREATE TABLE IF NOT EXISTS `幉幉幉`(`幏幏幏` char(1)) DEFAULT CHARSET = ujis engine=BDB; +Warnings: +Note 1050 Table '幉幉幉' already exists CREATE TABLE IF NOT EXISTS `あああ`(`かかか` char(1)) DEFAULT CHARSET = ujis engine=BDB; +Warnings: +Note 1050 Table 'あああ' already exists CREATE TABLE IF NOT EXISTS `いいい`(`ききき` char(1)) DEFAULT CHARSET = ujis engine=BDB; +Warnings: +Note 1050 Table 'いいい' already exists CREATE TABLE IF NOT EXISTS `忢輳磔忢輅(`彴啊彴 char(1)) DEFAULT CHARSET = ujis engine=BDB; +Warnings: +Note 1050 Table '忢輳磔忢' already exists CREATE TABLE IF NOT EXISTS `忢迯磙忢轥(`彴阿彴 char(1)) DEFAULT CHARSET = ujis engine=BDB; +Warnings: +Note 1050 Table '忢迯磙忢' already exists CREATE TABLE IF NOT EXISTS `幊幊幊`(`幐幐幐` char(1)) DEFAULT CHARSET = ujis engine=BDB; CREATE TABLE IF NOT EXISTS `ううう`(`くくく` char(1)) DEFAULT CHARSET = ujis engine=BDB; CREATE TABLE IF NOT EXISTS `忢邚磉忢違(`彴埃彴char(1)) DEFAULT CHARSET = ujis engine=BDB; diff --git a/mysql-test/suite/jp/r/jp_create_tbl_utf8.result b/mysql-test/suite/jp/r/jp_create_tbl_utf8.result index d4873406c46..6df30acbd7f 100644 --- a/mysql-test/suite/jp/r/jp_create_tbl_utf8.result +++ b/mysql-test/suite/jp/r/jp_create_tbl_utf8.result @@ -22,11 +22,23 @@ CREATE TABLE `銇勩亜銇刞(`銇嶃亶銇峘 char(1)) DEFAULT CHARSET = utf8 engine=INNO CREATE TABLE `榫栭緰榫朻(`涓備競涓俙 char(1)) DEFAULT CHARSET = utf8 engine=INNODB; CREATE TABLE `榫楅緱榫梎(`涓勪竸涓刞 char(1)) DEFAULT CHARSET = utf8 engine=INNODB; CREATE TABLE IF NOT EXISTS `锝憋奖锝盽(`锝讹蕉锝禶 char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +Warnings: +Note 1050 Table '锝憋奖锝' already exists CREATE TABLE IF NOT EXISTS `锝诧讲锝瞏(`锝凤椒锝穈 char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +Warnings: +Note 1050 Table '锝诧讲锝' already exists CREATE TABLE IF NOT EXISTS `銇傘亗銇俙(`銇嬨亱銇媊 char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +Warnings: +Note 1050 Table '銇傘亗銇' already exists CREATE TABLE IF NOT EXISTS `銇勩亜銇刞(`銇嶃亶銇峘 char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +Warnings: +Note 1050 Table '銇勩亜銇' already exists CREATE TABLE IF NOT EXISTS `榫栭緰榫朻(`涓備競涓俙 char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +Warnings: +Note 1050 Table '榫栭緰榫' already exists CREATE TABLE IF NOT EXISTS `榫楅緱榫梎(`涓勪竸涓刞 char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +Warnings: +Note 1050 Table '榫楅緱榫' already exists CREATE TABLE IF NOT EXISTS `锝筹匠锝砢(`锝革礁锝竊 char(1)) DEFAULT CHARSET = utf8 engine=INNODB; CREATE TABLE IF NOT EXISTS `銇嗐亞銇哷(`銇忋亸銇廯 char(1)) DEFAULT CHARSET = utf8 engine=INNODB; CREATE TABLE IF NOT EXISTS `榫為緸榫瀈(`涓呬竻涓卄char(1)) DEFAULT CHARSET = utf8 engine=INNODB; @@ -178,11 +190,23 @@ CREATE TABLE `銇勩亜銇刞(`銇嶃亶銇峘 char(1)) DEFAULT CHARSET = utf8 engine=MyIS CREATE TABLE `榫栭緰榫朻(`涓備競涓俙 char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; CREATE TABLE `榫楅緱榫梎(`涓勪竸涓刞 char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; CREATE TABLE IF NOT EXISTS `锝憋奖锝盽(`锝讹蕉锝禶 char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +Warnings: +Note 1050 Table '锝憋奖锝' already exists CREATE TABLE IF NOT EXISTS `锝诧讲锝瞏(`锝凤椒锝穈 char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +Warnings: +Note 1050 Table '锝诧讲锝' already exists CREATE TABLE IF NOT EXISTS `銇傘亗銇俙(`銇嬨亱銇媊 char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +Warnings: +Note 1050 Table '銇傘亗銇' already exists CREATE TABLE IF NOT EXISTS `銇勩亜銇刞(`銇嶃亶銇峘 char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +Warnings: +Note 1050 Table '銇勩亜銇' already exists CREATE TABLE IF NOT EXISTS `榫栭緰榫朻(`涓備競涓俙 char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +Warnings: +Note 1050 Table '榫栭緰榫' already exists CREATE TABLE IF NOT EXISTS `榫楅緱榫梎(`涓勪竸涓刞 char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +Warnings: +Note 1050 Table '榫楅緱榫' already exists CREATE TABLE IF NOT EXISTS `锝筹匠锝砢(`锝革礁锝竊 char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; CREATE TABLE IF NOT EXISTS `銇嗐亞銇哷(`銇忋亸銇廯 char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; CREATE TABLE IF NOT EXISTS `榫為緸榫瀈(`涓呬竻涓卄char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; @@ -334,11 +358,23 @@ CREATE TABLE `銇勩亜銇刞(`銇嶃亶銇峘 char(1)) DEFAULT CHARSET = utf8 engine=HEAP CREATE TABLE `榫栭緰榫朻(`涓備競涓俙 char(1)) DEFAULT CHARSET = utf8 engine=HEAP; CREATE TABLE `榫楅緱榫梎(`涓勪竸涓刞 char(1)) DEFAULT CHARSET = utf8 engine=HEAP; CREATE TABLE IF NOT EXISTS `锝憋奖锝盽(`锝讹蕉锝禶 char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +Warnings: +Note 1050 Table '锝憋奖锝' already exists CREATE TABLE IF NOT EXISTS `锝诧讲锝瞏(`锝凤椒锝穈 char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +Warnings: +Note 1050 Table '锝诧讲锝' already exists CREATE TABLE IF NOT EXISTS `銇傘亗銇俙(`銇嬨亱銇媊 char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +Warnings: +Note 1050 Table '銇傘亗銇' already exists CREATE TABLE IF NOT EXISTS `銇勩亜銇刞(`銇嶃亶銇峘 char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +Warnings: +Note 1050 Table '銇勩亜銇' already exists CREATE TABLE IF NOT EXISTS `榫栭緰榫朻(`涓備競涓俙 char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +Warnings: +Note 1050 Table '榫栭緰榫' already exists CREATE TABLE IF NOT EXISTS `榫楅緱榫梎(`涓勪竸涓刞 char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +Warnings: +Note 1050 Table '榫楅緱榫' already exists CREATE TABLE IF NOT EXISTS `锝筹匠锝砢(`锝革礁锝竊 char(1)) DEFAULT CHARSET = utf8 engine=HEAP; CREATE TABLE IF NOT EXISTS `銇嗐亞銇哷(`銇忋亸銇廯 char(1)) DEFAULT CHARSET = utf8 engine=HEAP; CREATE TABLE IF NOT EXISTS `榫為緸榫瀈(`涓呬竻涓卄char(1)) DEFAULT CHARSET = utf8 engine=HEAP; @@ -397,77 +433,77 @@ SHOW CREATE TABLE `锝憋奖锝盽; Table Create Table 锝憋奖锝 CREATE TABLE `锝憋奖锝盽 ( `锝讹蕉锝禶 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `锝诧讲锝瞏; Table Create Table 锝诧讲锝 CREATE TABLE `锝诧讲锝瞏 ( `锝凤椒锝穈 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `锝筹匠锝砢; Table Create Table 锝筹匠锝 CREATE TABLE `锝筹匠锝砢 ( `锝革礁锝竊 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `锝达酱锝碻; Table Create Table 锝达酱锝 CREATE TEMPORARY TABLE `锝达酱锝碻 ( `锝癸焦锝筦 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `锝碉降锝礰; Table Create Table 锝碉降锝 CREATE TEMPORARY TABLE `锝碉降锝礰 ( `锝猴胶锝篳 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `銇傘亗銇俙; Table Create Table 銇傘亗銇 CREATE TABLE `銇傘亗銇俙 ( `銇嬨亱銇媊 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `銇勩亜銇刞; Table Create Table 銇勩亜銇 CREATE TABLE `銇勩亜銇刞 ( `銇嶃亶銇峘 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `銇嗐亞銇哷; Table Create Table 銇嗐亞銇 CREATE TABLE `銇嗐亞銇哷 ( `銇忋亸銇廯 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `銇堛亪銇坄; Table Create Table 銇堛亪銇 CREATE TEMPORARY TABLE `銇堛亪銇坄 ( `銇戙亼銇慲 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `銇娿亰銇奰; Table Create Table 銇娿亰銇 CREATE TEMPORARY TABLE `銇娿亰銇奰 ( `銇撱亾銇揱 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `榫栭緰榫朻; Table Create Table 榫栭緰榫 CREATE TABLE `榫栭緰榫朻 ( `涓備競涓俙 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `榫楅緱榫梎; Table Create Table 榫楅緱榫 CREATE TABLE `榫楅緱榫梎 ( `涓勪竸涓刞 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `榫為緸榫瀈; Table Create Table 榫為緸榫 CREATE TABLE `榫為緸榫瀈 ( `涓呬竻涓卄 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `榫¢尽榫; Table Create Table 榫¢尽榫 CREATE TEMPORARY TABLE `榫¢尽榫 ( `涓屼笇涓宍 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `榫㈤劲榫; Table Create Table 榫㈤劲榫 CREATE TEMPORARY TABLE `榫㈤劲榫 ( `涓掍笒涓抈 char(1) default NULL -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 DROP TABLE `锝憋奖锝盽; DROP TABLE `锝诧讲锝瞏; DROP TABLE `锝筹匠锝砢; @@ -490,11 +526,23 @@ CREATE TABLE `銇勩亜銇刞(`銇嶃亶銇峘 char(1)) DEFAULT CHARSET = utf8 engine=BDB; CREATE TABLE `榫栭緰榫朻(`涓備競涓俙 char(1)) DEFAULT CHARSET = utf8 engine=BDB; CREATE TABLE `榫楅緱榫梎(`涓勪竸涓刞 char(1)) DEFAULT CHARSET = utf8 engine=BDB; CREATE TABLE IF NOT EXISTS `锝憋奖锝盽(`锝讹蕉锝禶 char(1)) DEFAULT CHARSET = utf8 engine=BDB; +Warnings: +Note 1050 Table '锝憋奖锝' already exists CREATE TABLE IF NOT EXISTS `锝诧讲锝瞏(`锝凤椒锝穈 char(1)) DEFAULT CHARSET = utf8 engine=BDB; +Warnings: +Note 1050 Table '锝诧讲锝' already exists CREATE TABLE IF NOT EXISTS `銇傘亗銇俙(`銇嬨亱銇媊 char(1)) DEFAULT CHARSET = utf8 engine=BDB; +Warnings: +Note 1050 Table '銇傘亗銇' already exists CREATE TABLE IF NOT EXISTS `銇勩亜銇刞(`銇嶃亶銇峘 char(1)) DEFAULT CHARSET = utf8 engine=BDB; +Warnings: +Note 1050 Table '銇勩亜銇' already exists CREATE TABLE IF NOT EXISTS `榫栭緰榫朻(`涓備競涓俙 char(1)) DEFAULT CHARSET = utf8 engine=BDB; +Warnings: +Note 1050 Table '榫栭緰榫' already exists CREATE TABLE IF NOT EXISTS `榫楅緱榫梎(`涓勪竸涓刞 char(1)) DEFAULT CHARSET = utf8 engine=BDB; +Warnings: +Note 1050 Table '榫楅緱榫' already exists CREATE TABLE IF NOT EXISTS `锝筹匠锝砢(`锝革礁锝竊 char(1)) DEFAULT CHARSET = utf8 engine=BDB; CREATE TABLE IF NOT EXISTS `銇嗐亞銇哷(`銇忋亸銇廯 char(1)) DEFAULT CHARSET = utf8 engine=BDB; CREATE TABLE IF NOT EXISTS `榫為緸榫瀈(`涓呬竻涓卄char(1)) DEFAULT CHARSET = utf8 engine=BDB; diff --git a/mysql-test/suite/jp/r/jp_enum_sjis.result b/mysql-test/suite/jp/r/jp_enum_sjis.result index 1e46dbffbb1..43994123e3b 100644 --- a/mysql-test/suite/jp/r/jp_enum_sjis.result +++ b/mysql-test/suite/jp/r/jp_enum_sjis.result @@ -137,19 +137,19 @@ Table Create Table 俿俈 CREATE TABLE `俿俈` ( `俠侾` enum('','','') default NULL, KEY `俠侾` (`俠侾`) -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `俿俉`; Table Create Table 俿俉 CREATE TABLE `俿俉` ( `俠侾` enum('偁','偄','偆') default NULL, KEY `俠侾` (`俠侾`) -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `俿俋`; Table Create Table 俿俋 CREATE TABLE `俿俋` ( `俠侾` enum('僜','廫','昞') default NULL, KEY `俠侾` (`俠侾`) -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `俿侾侽`; Table Create Table 俿侾侽 CREATE TABLE `俿侾侽` ( @@ -219,134 +219,134 @@ ALTER TABLE ` SHOW CREATE TABLE `俿侾`; Table Create Table 俿侾 CREATE TABLE `俿侾` ( - `俠俀` char(1) NOT NULL default '', + `俠俀` char(1) NOT NULL, `俠侾` enum('','','') default NULL, KEY `俠侾` (`俠侾`) ) ENGINE=InnoDB DEFAULT CHARSET=sjis SHOW CREATE TABLE `俿俀`; Table Create Table 俿俀 CREATE TABLE `俿俀` ( - `俠俀` char(1) NOT NULL default '', + `俠俀` char(1) NOT NULL, `俠侾` enum('偁','偄','偆') default NULL, KEY `俠侾` (`俠侾`) ) ENGINE=InnoDB DEFAULT CHARSET=sjis SHOW CREATE TABLE `俿俁`; Table Create Table 俿俁 CREATE TABLE `俿俁` ( - `俠俀` char(1) NOT NULL default '', + `俠俀` char(1) NOT NULL, `俠侾` enum('僜','廫','昞') default NULL, KEY `俠侾` (`俠侾`) ) ENGINE=InnoDB DEFAULT CHARSET=sjis SHOW CREATE TABLE `俿係`; Table Create Table 俿係 CREATE TABLE `俿係` ( - `俠俀` char(1) NOT NULL default '', + `俠俀` char(1) NOT NULL, `俠侾` enum('','','') default NULL, KEY `俠侾` (`俠侾`) ) ENGINE=MyISAM DEFAULT CHARSET=sjis SHOW CREATE TABLE `俿俆`; Table Create Table 俿俆 CREATE TABLE `俿俆` ( - `俠俀` char(1) NOT NULL default '', + `俠俀` char(1) NOT NULL, `俠侾` enum('偁','偄','偆') default NULL, KEY `俠侾` (`俠侾`) ) ENGINE=MyISAM DEFAULT CHARSET=sjis SHOW CREATE TABLE `俿俇`; Table Create Table 俿俇 CREATE TABLE `俿俇` ( - `俠俀` char(1) NOT NULL default '', + `俠俀` char(1) NOT NULL, `俠侾` enum('僜','廫','昞') default NULL, KEY `俠侾` (`俠侾`) ) ENGINE=MyISAM DEFAULT CHARSET=sjis SHOW CREATE TABLE `俿俈`; Table Create Table 俿俈 CREATE TABLE `俿俈` ( - `俠俀` char(1) NOT NULL default '', + `俠俀` char(1) NOT NULL, `俠侾` enum('','','') default NULL, KEY `俠侾` (`俠侾`) -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `俿俉`; Table Create Table 俿俉 CREATE TABLE `俿俉` ( - `俠俀` char(1) NOT NULL default '', + `俠俀` char(1) NOT NULL, `俠侾` enum('偁','偄','偆') default NULL, KEY `俠侾` (`俠侾`) -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `俿俋`; Table Create Table 俿俋 CREATE TABLE `俿俋` ( - `俠俀` char(1) NOT NULL default '', + `俠俀` char(1) NOT NULL, `俠侾` enum('僜','廫','昞') default NULL, KEY `俠侾` (`俠侾`) -) ENGINE=HEAP DEFAULT CHARSET=sjis +) ENGINE=MEMORY DEFAULT CHARSET=sjis SHOW CREATE TABLE `俿侾侽`; Table Create Table 俿侾侽 CREATE TABLE `俿侾侽` ( - `俠俀` char(1) NOT NULL default '', + `俠俀` char(1) NOT NULL, `俠侾` enum('','','') default NULL, KEY `俠侾` (`俠侾`) ) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis SHOW CREATE TABLE `俿侾侾`; Table Create Table 俿侾侾 CREATE TABLE `俿侾侾` ( - `俠俀` char(1) NOT NULL default '', + `俠俀` char(1) NOT NULL, `俠侾` enum('偁','偄','偆') default NULL, KEY `俠侾` (`俠侾`) ) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis SHOW CREATE TABLE `俿侾俀`; Table Create Table 俿侾俀 CREATE TABLE `俿侾俀` ( - `俠俀` char(1) NOT NULL default '', + `俠俀` char(1) NOT NULL, `俠侾` enum('僜','廫','昞') default NULL, KEY `俠侾` (`俠侾`) ) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis DESC `俿侾`; Field Type Null Key Default Extra -俠俀 char(1) +俠俀 char(1) NO NULL 俠侾 enum('','','') YES MUL NULL DESC `俿俀`; Field Type Null Key Default Extra -俠俀 char(1) +俠俀 char(1) NO NULL 俠侾 enum('偁','偄','偆') YES MUL NULL DESC `俿俁`; Field Type Null Key Default Extra -俠俀 char(1) +俠俀 char(1) NO NULL 俠侾 enum('僜','廫','昞') YES MUL NULL DESC `俿係`; Field Type Null Key Default Extra -俠俀 char(1) +俠俀 char(1) NO NULL 俠侾 enum('','','') YES MUL NULL DESC `俿俆`; Field Type Null Key Default Extra -俠俀 char(1) +俠俀 char(1) NO NULL 俠侾 enum('偁','偄','偆') YES MUL NULL DESC `俿俇`; Field Type Null Key Default Extra -俠俀 char(1) +俠俀 char(1) NO NULL 俠侾 enum('僜','廫','昞') YES MUL NULL DESC `俿俈`; Field Type Null Key Default Extra -俠俀 char(1) +俠俀 char(1) NO NULL 俠侾 enum('','','') YES MUL NULL DESC `俿俉`; Field Type Null Key Default Extra -俠俀 char(1) +俠俀 char(1) NO NULL 俠侾 enum('偁','偄','偆') YES MUL NULL DESC `俿俋`; Field Type Null Key Default Extra -俠俀 char(1) +俠俀 char(1) NO NULL 俠侾 enum('僜','廫','昞') YES MUL NULL DESC `俿侾侽`; Field Type Null Key Default Extra -俠俀 char(1) +俠俀 char(1) NO NULL 俠侾 enum('','','') YES MUL NULL DESC `俿侾侾`; Field Type Null Key Default Extra -俠俀 char(1) +俠俀 char(1) NO NULL 俠侾 enum('偁','偄','偆') YES MUL NULL DESC `俿侾俀`; Field Type Null Key Default Extra -俠俀 char(1) +俠俀 char(1) NO NULL 俠侾 enum('僜','廫','昞') YES MUL NULL DROP TABLE `俿侾`; DROP TABLE `俿俀`; diff --git a/mysql-test/suite/jp/r/jp_enum_ucs2.result b/mysql-test/suite/jp/r/jp_enum_ucs2.result index a84cace35fe..c41e6c262eb 100644 --- a/mysql-test/suite/jp/r/jp_enum_ucs2.result +++ b/mysql-test/suite/jp/r/jp_enum_ucs2.result @@ -138,19 +138,19 @@ Table Create Table T7 CREATE TABLE `T7` ( `C1` enum('幈','幉','幊') default NULL, KEY `C1` (`C1`) -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 SHOW CREATE TABLE `T8`; Table Create Table T8 CREATE TABLE `T8` ( `C1` enum('あ','い','う') default NULL, KEY `C1` (`C1`) -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 SHOW CREATE TABLE `T9`; Table Create Table T9 CREATE TABLE `T9` ( `C1` enum('忢','忢','忢') default NULL, KEY `C1` (`C1`) -) ENGINE=HEAP DEFAULT CHARSET=ucs2 +) ENGINE=MEMORY DEFAULT CHARSET=ucs2 SHOW CREATE TABLE `T10`; Table Create Table T10 CREATE TABLE `T10` ( diff --git a/mysql-test/suite/jp/r/jp_enum_ujis.result b/mysql-test/suite/jp/r/jp_enum_ujis.result index dbc850b1368..9ba445eaba5 100644 --- a/mysql-test/suite/jp/r/jp_enum_ujis.result +++ b/mysql-test/suite/jp/r/jp_enum_ujis.result @@ -137,19 +137,19 @@ Table Create Table T7 CREATE TABLE `T7` ( `C1` enum('幈','幉','幊') default NULL, KEY `C1` (`C1`) -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `T8`; Table Create Table T8 CREATE TABLE `T8` ( `C1` enum('あ','い','う') default NULL, KEY `C1` (`C1`) -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `T9`; Table Create Table T9 CREATE TABLE `T9` ( `C1` enum('忢','忢','忢') default NULL, KEY `C1` (`C1`) -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `T10`; Table Create Table T10 CREATE TABLE `T10` ( @@ -219,134 +219,134 @@ ALTER TABLE ` SHOW CREATE TABLE `T1`; Table Create Table T1 CREATE TABLE `T1` ( - `C2` char(1) NOT NULL default '', + `C2` char(1) NOT NULL, `C1` enum('幈','幉','幊') default NULL, KEY `C1` (`C1`) ) ENGINE=InnoDB DEFAULT CHARSET=ujis SHOW CREATE TABLE `T2`; Table Create Table T2 CREATE TABLE `T2` ( - `C2` char(1) NOT NULL default '', + `C2` char(1) NOT NULL, `C1` enum('あ','い','う') default NULL, KEY `C1` (`C1`) ) ENGINE=InnoDB DEFAULT CHARSET=ujis SHOW CREATE TABLE `T3`; Table Create Table T3 CREATE TABLE `T3` ( - `C2` char(1) NOT NULL default '', + `C2` char(1) NOT NULL, `C1` enum('忢','忢','忢') default NULL, KEY `C1` (`C1`) ) ENGINE=InnoDB DEFAULT CHARSET=ujis SHOW CREATE TABLE `T4`; Table Create Table T4 CREATE TABLE `T4` ( - `C2` char(1) NOT NULL default '', + `C2` char(1) NOT NULL, `C1` enum('幈','幉','幊') default NULL, KEY `C1` (`C1`) ) ENGINE=MyISAM DEFAULT CHARSET=ujis SHOW CREATE TABLE `T5`; Table Create Table T5 CREATE TABLE `T5` ( - `C2` char(1) NOT NULL default '', + `C2` char(1) NOT NULL, `C1` enum('あ','い','う') default NULL, KEY `C1` (`C1`) ) ENGINE=MyISAM DEFAULT CHARSET=ujis SHOW CREATE TABLE `T6`; Table Create Table T6 CREATE TABLE `T6` ( - `C2` char(1) NOT NULL default '', + `C2` char(1) NOT NULL, `C1` enum('忢','忢','忢') default NULL, KEY `C1` (`C1`) ) ENGINE=MyISAM DEFAULT CHARSET=ujis SHOW CREATE TABLE `T7`; Table Create Table T7 CREATE TABLE `T7` ( - `C2` char(1) NOT NULL default '', + `C2` char(1) NOT NULL, `C1` enum('幈','幉','幊') default NULL, KEY `C1` (`C1`) -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `T8`; Table Create Table T8 CREATE TABLE `T8` ( - `C2` char(1) NOT NULL default '', + `C2` char(1) NOT NULL, `C1` enum('あ','い','う') default NULL, KEY `C1` (`C1`) -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `T9`; Table Create Table T9 CREATE TABLE `T9` ( - `C2` char(1) NOT NULL default '', + `C2` char(1) NOT NULL, `C1` enum('忢','忢','忢') default NULL, KEY `C1` (`C1`) -) ENGINE=HEAP DEFAULT CHARSET=ujis +) ENGINE=MEMORY DEFAULT CHARSET=ujis SHOW CREATE TABLE `T10`; Table Create Table T10 CREATE TABLE `T10` ( - `C2` char(1) NOT NULL default '', + `C2` char(1) NOT NULL, `C1` enum('幈','幉','幊') default NULL, KEY `C1` (`C1`) ) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis SHOW CREATE TABLE `T11`; Table Create Table T11 CREATE TABLE `T11` ( - `C2` char(1) NOT NULL default '', + `C2` char(1) NOT NULL, `C1` enum('あ','い','う') default NULL, KEY `C1` (`C1`) ) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis SHOW CREATE TABLE `T12`; Table Create Table T12 CREATE TABLE `T12` ( - `C2` char(1) NOT NULL default '', + `C2` char(1) NOT NULL, `C1` enum('忢','忢','忢') default NULL, KEY `C1` (`C1`) ) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis DESC `T1`; Field Type Null Key Default Extra -C2 char(1) +C2 char(1) NO NULL C1 enum('幈','幉','幊') YES MUL NULL DESC `T2`; Field Type Null Key Default Extra -C2 char(1) +C2 char(1) NO NULL C1 enum('あ','い','う') YES MUL NULL DESC `T3`; Field Type Null Key Default Extra -C2 char(1) +C2 char(1) NO NULL C1 enum('忢','忢','忢') YES MUL NULL DESC `T4`; Field Type Null Key Default Extra -C2 char(1) +C2 char(1) NO NULL C1 enum('幈','幉','幊') YES MUL NULL DESC `T5`; Field Type Null Key Default Extra -C2 char(1) +C2 char(1) NO NULL C1 enum('あ','い','う') YES MUL NULL DESC `T6`; Field Type Null Key Default Extra -C2 char(1) +C2 char(1) NO NULL C1 enum('忢','忢','忢') YES MUL NULL DESC `T7`; Field Type Null Key Default Extra -C2 char(1) +C2 char(1) NO NULL C1 enum('幈','幉','幊') YES MUL NULL DESC `T8`; Field Type Null Key Default Extra -C2 char(1) +C2 char(1) NO NULL C1 enum('あ','い','う') YES MUL NULL DESC `T9`; Field Type Null Key Default Extra -C2 char(1) +C2 char(1) NO NULL C1 enum('忢','忢','忢') YES MUL NULL DESC `T10`; Field Type Null Key Default Extra -C2 char(1) +C2 char(1) NO NULL C1 enum('幈','幉','幊') YES MUL NULL DESC `T11`; Field Type Null Key Default Extra -C2 char(1) +C2 char(1) NO NULL C1 enum('あ','い','う') YES MUL NULL DESC `T12`; Field Type Null Key Default Extra -C2 char(1) +C2 char(1) NO NULL C1 enum('忢','忢','忢') YES MUL NULL DROP TABLE `T1`; DROP TABLE `T2`; diff --git a/mysql-test/suite/jp/r/jp_enum_utf8.result b/mysql-test/suite/jp/r/jp_enum_utf8.result index f2515871ece..c4ff9193447 100644 --- a/mysql-test/suite/jp/r/jp_enum_utf8.result +++ b/mysql-test/suite/jp/r/jp_enum_utf8.result @@ -137,19 +137,19 @@ Table Create Table 锛达紬 CREATE TABLE `锛达紬` ( `锛o紤` enum('锝','锝','锝') default NULL, KEY `锛o紤` (`锛o紤`) -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `锛达紭`; Table Create Table 锛达紭 CREATE TABLE `锛达紭` ( `锛o紤` enum('銇','銇','銇') default NULL, KEY `锛o紤` (`锛o紤`) -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `锛达紮`; Table Create Table 锛达紮 CREATE TABLE `锛达紮` ( `锛o紤` enum('榫','榫','榫') default NULL, KEY `锛o紤` (`锛o紤`) -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `锛达紤锛恅; Table Create Table 锛达紤锛 CREATE TABLE `锛达紤锛恅 ( @@ -219,134 +219,134 @@ ALTER TABLE `锛达紤锛抈 ADD `锛o紥` CHAR(1) NOT NULL FIRST; SHOW CREATE TABLE `锛达紤`; Table Create Table 锛达紤 CREATE TABLE `锛达紤` ( - `锛o紥` char(1) NOT NULL default '', + `锛o紥` char(1) NOT NULL, `锛o紤` enum('锝','锝','锝') default NULL, KEY `锛o紤` (`锛o紤`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 SHOW CREATE TABLE `锛达紥`; Table Create Table 锛达紥 CREATE TABLE `锛达紥` ( - `锛o紥` char(1) NOT NULL default '', + `锛o紥` char(1) NOT NULL, `锛o紤` enum('銇','銇','銇') default NULL, KEY `锛o紤` (`锛o紤`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 SHOW CREATE TABLE `锛达紦`; Table Create Table 锛达紦 CREATE TABLE `锛达紦` ( - `锛o紥` char(1) NOT NULL default '', + `锛o紥` char(1) NOT NULL, `锛o紤` enum('榫','榫','榫') default NULL, KEY `锛o紤` (`锛o紤`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 SHOW CREATE TABLE `锛达紨`; Table Create Table 锛达紨 CREATE TABLE `锛达紨` ( - `锛o紥` char(1) NOT NULL default '', + `锛o紥` char(1) NOT NULL, `锛o紤` enum('锝','锝','锝') default NULL, KEY `锛o紤` (`锛o紤`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 SHOW CREATE TABLE `锛达紩`; Table Create Table 锛达紩 CREATE TABLE `锛达紩` ( - `锛o紥` char(1) NOT NULL default '', + `锛o紥` char(1) NOT NULL, `锛o紤` enum('銇','銇','銇') default NULL, KEY `锛o紤` (`锛o紤`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 SHOW CREATE TABLE `锛达紪`; Table Create Table 锛达紪 CREATE TABLE `锛达紪` ( - `锛o紥` char(1) NOT NULL default '', + `锛o紥` char(1) NOT NULL, `锛o紤` enum('榫','榫','榫') default NULL, KEY `锛o紤` (`锛o紤`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 SHOW CREATE TABLE `锛达紬`; Table Create Table 锛达紬 CREATE TABLE `锛达紬` ( - `锛o紥` char(1) NOT NULL default '', + `锛o紥` char(1) NOT NULL, `锛o紤` enum('锝','锝','锝') default NULL, KEY `锛o紤` (`锛o紤`) -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `锛达紭`; Table Create Table 锛达紭 CREATE TABLE `锛达紭` ( - `锛o紥` char(1) NOT NULL default '', + `锛o紥` char(1) NOT NULL, `锛o紤` enum('銇','銇','銇') default NULL, KEY `锛o紤` (`锛o紤`) -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `锛达紮`; Table Create Table 锛达紮 CREATE TABLE `锛达紮` ( - `锛o紥` char(1) NOT NULL default '', + `锛o紥` char(1) NOT NULL, `锛o紤` enum('榫','榫','榫') default NULL, KEY `锛o紤` (`锛o紤`) -) ENGINE=HEAP DEFAULT CHARSET=utf8 +) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW CREATE TABLE `锛达紤锛恅; Table Create Table 锛达紤锛 CREATE TABLE `锛达紤锛恅 ( - `锛o紥` char(1) NOT NULL default '', + `锛o紥` char(1) NOT NULL, `锛o紤` enum('锝','锝','锝') default NULL, KEY `锛o紤` (`锛o紤`) ) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 SHOW CREATE TABLE `锛达紤锛慲; Table Create Table 锛达紤锛 CREATE TABLE `锛达紤锛慲 ( - `锛o紥` char(1) NOT NULL default '', + `锛o紥` char(1) NOT NULL, `锛o紤` enum('銇','銇','銇') default NULL, KEY `锛o紤` (`锛o紤`) ) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 SHOW CREATE TABLE `锛达紤锛抈; Table Create Table 锛达紤锛 CREATE TABLE `锛达紤锛抈 ( - `锛o紥` char(1) NOT NULL default '', + `锛o紥` char(1) NOT NULL, `锛o紤` enum('榫','榫','榫') default NULL, KEY `锛o紤` (`锛o紤`) ) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 DESC `锛达紤`; Field Type Null Key Default Extra -锛o紥 char(1) +锛o紥 char(1) NO NULL 锛o紤 enum('锝','锝','锝') YES MUL NULL DESC `锛达紥`; Field Type Null Key Default Extra -锛o紥 char(1) +锛o紥 char(1) NO NULL 锛o紤 enum('銇','銇','銇') YES MUL NULL DESC `锛达紦`; Field Type Null Key Default Extra -锛o紥 char(1) +锛o紥 char(1) NO NULL 锛o紤 enum('榫','榫','榫') YES MUL NULL DESC `锛达紨`; Field Type Null Key Default Extra -锛o紥 char(1) +锛o紥 char(1) NO NULL 锛o紤 enum('锝','锝','锝') YES MUL NULL DESC `锛达紩`; Field Type Null Key Default Extra -锛o紥 char(1) +锛o紥 char(1) NO NULL 锛o紤 enum('銇','銇','銇') YES MUL NULL DESC `锛达紪`; Field Type Null Key Default Extra -锛o紥 char(1) +锛o紥 char(1) NO NULL 锛o紤 enum('榫','榫','榫') YES MUL NULL DESC `锛达紬`; Field Type Null Key Default Extra -锛o紥 char(1) +锛o紥 char(1) NO NULL 锛o紤 enum('锝','锝','锝') YES MUL NULL DESC `锛达紭`; Field Type Null Key Default Extra -锛o紥 char(1) +锛o紥 char(1) NO NULL 锛o紤 enum('銇','銇','銇') YES MUL NULL DESC `锛达紮`; Field Type Null Key Default Extra -锛o紥 char(1) +锛o紥 char(1) NO NULL 锛o紤 enum('榫','榫','榫') YES MUL NULL DESC `锛达紤锛恅; Field Type Null Key Default Extra -锛o紥 char(1) +锛o紥 char(1) NO NULL 锛o紤 enum('锝','锝','锝') YES MUL NULL DESC `锛达紤锛慲; Field Type Null Key Default Extra -锛o紥 char(1) +锛o紥 char(1) NO NULL 锛o紤 enum('銇','銇','銇') YES MUL NULL DESC `锛达紤锛抈; Field Type Null Key Default Extra -锛o紥 char(1) +锛o紥 char(1) NO NULL 锛o紤 enum('榫','榫','榫') YES MUL NULL DROP TABLE `锛达紤`; DROP TABLE `锛达紥`; diff --git a/mysql-test/suite/jp/r/jp_join_sjis.result b/mysql-test/suite/jp/r/jp_join_sjis.result index a5ccc58ae4c..95df2d5488e 100644 --- a/mysql-test/suite/jp/r/jp_join_sjis.result +++ b/mysql-test/suite/jp/r/jp_join_sjis.result @@ -71,31 +71,31 @@ SELECT * FROM ` SELECT * FROM `俿侾a` JOIN `俿侾b` USING (`俠侾`); -俠侾 俠侾 - +俠侾 + SELECT * FROM `俿侾a` INNER JOIN `俿侾b` USING (`俠侾`); -俠侾 俠侾 - +俠侾 + SELECT * FROM `俿侾a` CROSS JOIN `俿侾b`; 俠侾 俠侾 SELECT * FROM `俿侾a` LEFT JOIN `俿侾b` USING (`俠侾`); -俠侾 俠侾 - - NULL - NULL +俠侾 + + + SELECT * FROM `俿侾a` LEFT JOIN `俿侾b` ON (`俿侾a`.`俠侾` = `俿侾b`.`俠侾`); 俠侾 俠侾 NULL NULL SELECT * FROM `俿侾b` RIGHT JOIN `俿侾a` USING (`俠侾`); -俠侾 俠侾 - -NULL -NULL +俠侾 + + + SELECT * FROM `俿侾b` RIGHT JOIN `俿侾a` ON (`俿侾a`.`俠侾` = `俿侾b`.`俠侾`); 俠侾 俠侾 @@ -112,31 +112,31 @@ SELECT * FROM ` 偐 偁 偝 偁 SELECT * FROM `俿俀a` JOIN `俿俀b` USING (`俠侾`); -俠侾 俠侾 -偁 偁 +俠侾 +偁 SELECT * FROM `俿俀a` INNER JOIN `俿俀b` USING (`俠侾`); -俠侾 俠侾 -偁 偁 +俠侾 +偁 SELECT * FROM `俿俀a` CROSS JOIN `俿俀b`; 俠侾 俠侾 偁 偁 偐 偁 偝 偁 SELECT * FROM `俿俀a` LEFT JOIN `俿俀b` USING (`俠侾`); -俠侾 俠侾 -偁 偁 -偐 NULL -偝 NULL +俠侾 +偁 +偐 +偝 SELECT * FROM `俿俀a` LEFT JOIN `俿俀b` ON (`俿俀a`.`俠侾` = `俿俀b`.`俠侾`); 俠侾 俠侾 偁 偁 偐 NULL 偝 NULL SELECT * FROM `俿俀b` RIGHT JOIN `俿俀a` USING (`俠侾`); -俠侾 俠侾 -偁 偁 -NULL 偐 -NULL 偝 +俠侾 +偁 +偐 +偝 SELECT * FROM `俿俀b` RIGHT JOIN `俿俀a` ON (`俿俀a`.`俠侾` = `俿俀b`.`俠侾`); 俠侾 俠侾 偁 偁 @@ -153,31 +153,31 @@ SELECT * FROM ` 廫 僜 昞 僜 SELECT * FROM `俿俁a` JOIN `俿俁b` USING (`俠侾`); -俠侾 俠侾 -僜 僜 +俠侾 +僜 SELECT * FROM `俿俁a` INNER JOIN `俿俁b` USING (`俠侾`); -俠侾 俠侾 -僜 僜 +俠侾 +僜 SELECT * FROM `俿俁a` CROSS JOIN `俿俁b`; 俠侾 俠侾 僜 僜 廫 僜 昞 僜 SELECT * FROM `俿俁a` LEFT JOIN `俿俁b` USING (`俠侾`); -俠侾 俠侾 -僜 僜 -廫 NULL -昞 NULL +俠侾 +僜 +廫 +昞 SELECT * FROM `俿俁a` LEFT JOIN `俿俁b` ON (`俿俁a`.`俠侾` = `俿俁b`.`俠侾`); 俠侾 俠侾 僜 僜 廫 NULL 昞 NULL SELECT * FROM `俿俁b` RIGHT JOIN `俿俁a` USING (`俠侾`); -俠侾 俠侾 -僜 僜 -NULL 廫 -NULL 昞 +俠侾 +僜 +廫 +昞 SELECT * FROM `俿俁b` RIGHT JOIN `俿俁a` ON (`俿俁a`.`俠侾` = `俿俁b`.`俠侾`); 俠侾 俠侾 僜 僜 @@ -194,31 +194,31 @@ SELECT * FROM ` SELECT * FROM `俿係a` JOIN `俿係b` USING (`俠侾`); -俠侾 俠侾 - +俠侾 + SELECT * FROM `俿係a` INNER JOIN `俿係b` USING (`俠侾`); -俠侾 俠侾 - +俠侾 + SELECT * FROM `俿係a` CROSS JOIN `俿係b`; 俠侾 俠侾 SELECT * FROM `俿係a` LEFT JOIN `俿係b` USING (`俠侾`); -俠侾 俠侾 - - NULL - NULL +俠侾 + + + SELECT * FROM `俿係a` LEFT JOIN `俿係b` ON (`俿係a`.`俠侾` = `俿係b`.`俠侾`); 俠侾 俠侾 NULL NULL SELECT * FROM `俿係b` RIGHT JOIN `俿係a` USING (`俠侾`); -俠侾 俠侾 - -NULL -NULL +俠侾 + + + SELECT * FROM `俿係b` RIGHT JOIN `俿係a` ON (`俿係a`.`俠侾` = `俿係b`.`俠侾`); 俠侾 俠侾 @@ -235,31 +235,31 @@ SELECT * FROM ` 偐 偁 偝 偁 SELECT * FROM `俿俆a` JOIN `俿俆b` USING (`俠侾`); -俠侾 俠侾 -偁 偁 +俠侾 +偁 SELECT * FROM `俿俆a` INNER JOIN `俿俆b` USING (`俠侾`); -俠侾 俠侾 -偁 偁 +俠侾 +偁 SELECT * FROM `俿俆a` CROSS JOIN `俿俆b`; 俠侾 俠侾 偁 偁 偐 偁 偝 偁 SELECT * FROM `俿俆a` LEFT JOIN `俿俆b` USING (`俠侾`); -俠侾 俠侾 -偁 偁 -偐 NULL -偝 NULL +俠侾 +偁 +偐 +偝 SELECT * FROM `俿俆a` LEFT JOIN `俿俆b` ON (`俿俆a`.`俠侾` = `俿俆b`.`俠侾`); 俠侾 俠侾 偁 偁 偐 NULL 偝 NULL SELECT * FROM `俿俆b` RIGHT JOIN `俿俆a` USING (`俠侾`); -俠侾 俠侾 -偁 偁 -NULL 偐 -NULL 偝 +俠侾 +偁 +偐 +偝 SELECT * FROM `俿俆b` RIGHT JOIN `俿俆a` ON (`俿俆a`.`俠侾` = `俿俆b`.`俠侾`); 俠侾 俠侾 偁 偁 @@ -276,31 +276,31 @@ SELECT * FROM ` 廫 僜 昞 僜 SELECT * FROM `俿俇a` JOIN `俿俇b` USING (`俠侾`); -俠侾 俠侾 -僜 僜 +俠侾 +僜 SELECT * FROM `俿俇a` INNER JOIN `俿俇b` USING (`俠侾`); -俠侾 俠侾 -僜 僜 +俠侾 +僜 SELECT * FROM `俿俇a` CROSS JOIN `俿俇b`; 俠侾 俠侾 僜 僜 廫 僜 昞 僜 SELECT * FROM `俿俇a` LEFT JOIN `俿俇b` USING (`俠侾`); -俠侾 俠侾 -僜 僜 -廫 NULL -昞 NULL +俠侾 +僜 +廫 +昞 SELECT * FROM `俿俇a` LEFT JOIN `俿俇b` ON (`俿俇a`.`俠侾` = `俿俇b`.`俠侾`); 俠侾 俠侾 僜 僜 廫 NULL 昞 NULL SELECT * FROM `俿俇b` RIGHT JOIN `俿俇a` USING (`俠侾`); -俠侾 俠侾 -僜 僜 -NULL 廫 -NULL 昞 +俠侾 +僜 +廫 +昞 SELECT * FROM `俿俇b` RIGHT JOIN `俿俇a` ON (`俿俇a`.`俠侾` = `俿俇b`.`俠侾`); 俠侾 俠侾 僜 僜 @@ -317,31 +317,31 @@ SELECT * FROM ` SELECT * FROM `俿俈a` JOIN `俿俈b` USING (`俠侾`); -俠侾 俠侾 - +俠侾 + SELECT * FROM `俿俈a` INNER JOIN `俿俈b` USING (`俠侾`); -俠侾 俠侾 - +俠侾 + SELECT * FROM `俿俈a` CROSS JOIN `俿俈b`; 俠侾 俠侾 SELECT * FROM `俿俈a` LEFT JOIN `俿俈b` USING (`俠侾`); -俠侾 俠侾 - - NULL - NULL +俠侾 + + + SELECT * FROM `俿俈a` LEFT JOIN `俿俈b` ON (`俿俈a`.`俠侾` = `俿俈b`.`俠侾`); 俠侾 俠侾 NULL NULL SELECT * FROM `俿俈b` RIGHT JOIN `俿俈a` USING (`俠侾`); -俠侾 俠侾 - -NULL -NULL +俠侾 + + + SELECT * FROM `俿俈b` RIGHT JOIN `俿俈a` ON (`俿俈a`.`俠侾` = `俿俈b`.`俠侾`); 俠侾 俠侾 @@ -358,31 +358,31 @@ SELECT * FROM ` 偐 偁 偝 偁 SELECT * FROM `俿俉a` JOIN `俿俉b` USING (`俠侾`); -俠侾 俠侾 -偁 偁 +俠侾 +偁 SELECT * FROM `俿俉a` INNER JOIN `俿俉b` USING (`俠侾`); -俠侾 俠侾 -偁 偁 +俠侾 +偁 SELECT * FROM `俿俉a` CROSS JOIN `俿俉b`; 俠侾 俠侾 偁 偁 偐 偁 偝 偁 SELECT * FROM `俿俉a` LEFT JOIN `俿俉b` USING (`俠侾`); -俠侾 俠侾 -偁 偁 -偐 NULL -偝 NULL +俠侾 +偁 +偐 +偝 SELECT * FROM `俿俉a` LEFT JOIN `俿俉b` ON (`俿俉a`.`俠侾` = `俿俉b`.`俠侾`); 俠侾 俠侾 偁 偁 偐 NULL 偝 NULL SELECT * FROM `俿俉b` RIGHT JOIN `俿俉a` USING (`俠侾`); -俠侾 俠侾 -偁 偁 -NULL 偐 -NULL 偝 +俠侾 +偁 +偐 +偝 SELECT * FROM `俿俉b` RIGHT JOIN `俿俉a` ON (`俿俉a`.`俠侾` = `俿俉b`.`俠侾`); 俠侾 俠侾 偁 偁 @@ -399,31 +399,31 @@ SELECT * FROM ` 廫 僜 昞 僜 SELECT * FROM `俿俋a` JOIN `俿俋b` USING (`俠侾`); -俠侾 俠侾 -僜 僜 +俠侾 +僜 SELECT * FROM `俿俋a` INNER JOIN `俿俋b` USING (`俠侾`); -俠侾 俠侾 -僜 僜 +俠侾 +僜 SELECT * FROM `俿俋a` CROSS JOIN `俿俋b`; 俠侾 俠侾 僜 僜 廫 僜 昞 僜 SELECT * FROM `俿俋a` LEFT JOIN `俿俋b` USING (`俠侾`); -俠侾 俠侾 -僜 僜 -廫 NULL -昞 NULL +俠侾 +僜 +廫 +昞 SELECT * FROM `俿俋a` LEFT JOIN `俿俋b` ON (`俿俋a`.`俠侾` = `俿俋b`.`俠侾`); 俠侾 俠侾 僜 僜 廫 NULL 昞 NULL SELECT * FROM `俿俋b` RIGHT JOIN `俿俋a` USING (`俠侾`); -俠侾 俠侾 -僜 僜 -NULL 廫 -NULL 昞 +俠侾 +僜 +廫 +昞 SELECT * FROM `俿俋b` RIGHT JOIN `俿俋a` ON (`俿俋a`.`俠侾` = `俿俋b`.`俠侾`); 俠侾 俠侾 僜 僜 @@ -440,31 +440,31 @@ SELECT * FROM ` SELECT * FROM `俿侾侽a` JOIN `俿侾侽b` USING (`俠侾`); -俠侾 俠侾 - +俠侾 + SELECT * FROM `俿侾侽a` INNER JOIN `俿侾侽b` USING (`俠侾`); -俠侾 俠侾 - +俠侾 + SELECT * FROM `俿侾侽a` CROSS JOIN `俿侾侽b`; 俠侾 俠侾 SELECT * FROM `俿侾侽a` LEFT JOIN `俿侾侽b` USING (`俠侾`); -俠侾 俠侾 - - NULL - NULL +俠侾 + + + SELECT * FROM `俿侾侽a` LEFT JOIN `俿侾侽b` ON (`俿侾侽a`.`俠侾` = `俿侾侽b`.`俠侾`); 俠侾 俠侾 NULL NULL SELECT * FROM `俿侾侽b` RIGHT JOIN `俿侾侽a` USING (`俠侾`); -俠侾 俠侾 - -NULL -NULL +俠侾 + + + SELECT * FROM `俿侾侽b` RIGHT JOIN `俿侾侽a` ON (`俿侾侽a`.`俠侾` = `俿侾侽b`.`俠侾`); 俠侾 俠侾 @@ -481,31 +481,31 @@ SELECT * FROM ` 偐 偁 偝 偁 SELECT * FROM `俿侾侾a` JOIN `俿侾侾b` USING (`俠侾`); -俠侾 俠侾 -偁 偁 +俠侾 +偁 SELECT * FROM `俿侾侾a` INNER JOIN `俿侾侾b` USING (`俠侾`); -俠侾 俠侾 -偁 偁 +俠侾 +偁 SELECT * FROM `俿侾侾a` CROSS JOIN `俿侾侾b`; 俠侾 俠侾 偁 偁 偐 偁 偝 偁 SELECT * FROM `俿侾侾a` LEFT JOIN `俿侾侾b` USING (`俠侾`); -俠侾 俠侾 -偁 偁 -偐 NULL -偝 NULL +俠侾 +偁 +偐 +偝 SELECT * FROM `俿侾侾a` LEFT JOIN `俿侾侾b` ON (`俿侾侾a`.`俠侾` = `俿侾侾b`.`俠侾`); 俠侾 俠侾 偁 偁 偐 NULL 偝 NULL SELECT * FROM `俿侾侾b` RIGHT JOIN `俿侾侾a` USING (`俠侾`); -俠侾 俠侾 -偁 偁 -NULL 偐 -NULL 偝 +俠侾 +偁 +偐 +偝 SELECT * FROM `俿侾侾b` RIGHT JOIN `俿侾侾a` ON (`俿侾侾a`.`俠侾` = `俿侾侾b`.`俠侾`); 俠侾 俠侾 偁 偁 @@ -522,31 +522,31 @@ SELECT * FROM ` 廫 僜 昞 僜 SELECT * FROM `俿侾俀a` JOIN `俿侾俀b` USING (`俠侾`); -俠侾 俠侾 -僜 僜 +俠侾 +僜 SELECT * FROM `俿侾俀a` INNER JOIN `俿侾俀b` USING (`俠侾`); -俠侾 俠侾 -僜 僜 +俠侾 +僜 SELECT * FROM `俿侾俀a` CROSS JOIN `俿侾俀b`; 俠侾 俠侾 僜 僜 廫 僜 昞 僜 SELECT * FROM `俿侾俀a` LEFT JOIN `俿侾俀b` USING (`俠侾`); -俠侾 俠侾 -僜 僜 -廫 NULL -昞 NULL +俠侾 +僜 +廫 +昞 SELECT * FROM `俿侾俀a` LEFT JOIN `俿侾俀b` ON (`俿侾俀a`.`俠侾` = `俿侾俀b`.`俠侾`); 俠侾 俠侾 僜 僜 廫 NULL 昞 NULL SELECT * FROM `俿侾俀b` RIGHT JOIN `俿侾俀a` USING (`俠侾`); -俠侾 俠侾 -僜 僜 -NULL 廫 -NULL 昞 +俠侾 +僜 +廫 +昞 SELECT * FROM `俿侾俀b` RIGHT JOIN `俿侾俀a` ON (`俿侾俀a`.`俠侾` = `俿侾俀b`.`俠侾`); 俠侾 俠侾 僜 僜 diff --git a/mysql-test/suite/jp/r/jp_join_ucs2.result b/mysql-test/suite/jp/r/jp_join_ucs2.result index 76988f15cc4..ac19554eb5a 100644 --- a/mysql-test/suite/jp/r/jp_join_ucs2.result +++ b/mysql-test/suite/jp/r/jp_join_ucs2.result @@ -72,31 +72,31 @@ SELECT * FROM ` 幎 幈 幓 幈 SELECT * FROM `T1a` JOIN `T1b` USING (`C1`); -C1 C1 -幈 幈 +C1 +幈 SELECT * FROM `T1a` INNER JOIN `T1b` USING (`C1`); -C1 C1 -幈 幈 +C1 +幈 SELECT * FROM `T1a` CROSS JOIN `T1b`; C1 C1 幈 幈 幎 幈 幓 幈 SELECT * FROM `T1a` LEFT JOIN `T1b` USING (`C1`); -C1 C1 -幈 幈 -幎 NULL -幓 NULL +C1 +幈 +幎 +幓 SELECT * FROM `T1a` LEFT JOIN `T1b` ON (`T1a`.`C1` = `T1b`.`C1`); C1 C1 幈 幈 幎 NULL 幓 NULL SELECT * FROM `T1b` RIGHT JOIN `T1a` USING (`C1`); -C1 C1 -幈 幈 -NULL 幎 -NULL 幓 +C1 +幈 +幎 +幓 SELECT * FROM `T1b` RIGHT JOIN `T1a` ON (`T1a`.`C1` = `T1b`.`C1`); C1 C1 幈 幈 @@ -113,31 +113,31 @@ SELECT * FROM ` か あ さ あ SELECT * FROM `T2a` JOIN `T2b` USING (`C1`); -C1 C1 -あ あ +C1 +あ SELECT * FROM `T2a` INNER JOIN `T2b` USING (`C1`); -C1 C1 -あ あ +C1 +あ SELECT * FROM `T2a` CROSS JOIN `T2b`; C1 C1 あ あ か あ さ あ SELECT * FROM `T2a` LEFT JOIN `T2b` USING (`C1`); -C1 C1 -あ あ -か NULL -さ NULL +C1 +あ +か +さ SELECT * FROM `T2a` LEFT JOIN `T2b` ON (`T2a`.`C1` = `T2b`.`C1`); C1 C1 あ あ か NULL さ NULL SELECT * FROM `T2b` RIGHT JOIN `T2a` USING (`C1`); -C1 C1 -あ あ -NULL か -NULL さ +C1 +あ +か +さ SELECT * FROM `T2b` RIGHT JOIN `T2a` ON (`T2a`.`C1` = `T2b`.`C1`); C1 C1 あ あ @@ -154,31 +154,31 @@ SELECT * FROM ` 忢 忢 忢 忢 SELECT * FROM `T3a` JOIN `T3b` USING (`C1`); -C1 C1 -忢 忢 +C1 +忢 SELECT * FROM `T3a` INNER JOIN `T3b` USING (`C1`); -C1 C1 -忢 忢 +C1 +忢 SELECT * FROM `T3a` CROSS JOIN `T3b`; C1 C1 忢 忢 忢 忢 忢 忢 SELECT * FROM `T3a` LEFT JOIN `T3b` USING (`C1`); -C1 C1 -忢 忢 -忢 NULL -忢 NULL +C1 +忢 +忢 +忢 SELECT * FROM `T3a` LEFT JOIN `T3b` ON (`T3a`.`C1` = `T3b`.`C1`); C1 C1 忢 忢 忢 NULL 忢 NULL SELECT * FROM `T3b` RIGHT JOIN `T3a` USING (`C1`); -C1 C1 -忢 忢 -NULL 忢 -NULL 忢 +C1 +忢 +忢 +忢 SELECT * FROM `T3b` RIGHT JOIN `T3a` ON (`T3a`.`C1` = `T3b`.`C1`); C1 C1 忢 忢 @@ -195,31 +195,31 @@ SELECT * FROM ` 幎 幈 幓 幈 SELECT * FROM `T4a` JOIN `T4b` USING (`C1`); -C1 C1 -幈 幈 +C1 +幈 SELECT * FROM `T4a` INNER JOIN `T4b` USING (`C1`); -C1 C1 -幈 幈 +C1 +幈 SELECT * FROM `T4a` CROSS JOIN `T4b`; C1 C1 幈 幈 幎 幈 幓 幈 SELECT * FROM `T4a` LEFT JOIN `T4b` USING (`C1`); -C1 C1 -幈 幈 -幎 NULL -幓 NULL +C1 +幈 +幎 +幓 SELECT * FROM `T4a` LEFT JOIN `T4b` ON (`T4a`.`C1` = `T4b`.`C1`); C1 C1 幈 幈 幎 NULL 幓 NULL SELECT * FROM `T4b` RIGHT JOIN `T4a` USING (`C1`); -C1 C1 -幈 幈 -NULL 幎 -NULL 幓 +C1 +幈 +幎 +幓 SELECT * FROM `T4b` RIGHT JOIN `T4a` ON (`T4a`.`C1` = `T4b`.`C1`); C1 C1 幈 幈 @@ -236,31 +236,31 @@ SELECT * FROM ` か あ さ あ SELECT * FROM `T5a` JOIN `T5b` USING (`C1`); -C1 C1 -あ あ +C1 +あ SELECT * FROM `T5a` INNER JOIN `T5b` USING (`C1`); -C1 C1 -あ あ +C1 +あ SELECT * FROM `T5a` CROSS JOIN `T5b`; C1 C1 あ あ か あ さ あ SELECT * FROM `T5a` LEFT JOIN `T5b` USING (`C1`); -C1 C1 -あ あ -か NULL -さ NULL +C1 +あ +か +さ SELECT * FROM `T5a` LEFT JOIN `T5b` ON (`T5a`.`C1` = `T5b`.`C1`); C1 C1 あ あ か NULL さ NULL SELECT * FROM `T5b` RIGHT JOIN `T5a` USING (`C1`); -C1 C1 -あ あ -NULL か -NULL さ +C1 +あ +か +さ SELECT * FROM `T5b` RIGHT JOIN `T5a` ON (`T5a`.`C1` = `T5b`.`C1`); C1 C1 あ あ @@ -277,31 +277,31 @@ SELECT * FROM ` 忢 忢 忢 忢 SELECT * FROM `T6a` JOIN `T6b` USING (`C1`); -C1 C1 -忢 忢 +C1 +忢 SELECT * FROM `T6a` INNER JOIN `T6b` USING (`C1`); -C1 C1 -忢 忢 +C1 +忢 SELECT * FROM `T6a` CROSS JOIN `T6b`; C1 C1 忢 忢 忢 忢 忢 忢 SELECT * FROM `T6a` LEFT JOIN `T6b` USING (`C1`); -C1 C1 -忢 忢 -忢 NULL -忢 NULL +C1 +忢 +忢 +忢 SELECT * FROM `T6a` LEFT JOIN `T6b` ON (`T6a`.`C1` = `T6b`.`C1`); C1 C1 忢 忢 忢 NULL 忢 NULL SELECT * FROM `T6b` RIGHT JOIN `T6a` USING (`C1`); -C1 C1 -忢 忢 -NULL 忢 -NULL 忢 +C1 +忢 +忢 +忢 SELECT * FROM `T6b` RIGHT JOIN `T6a` ON (`T6a`.`C1` = `T6b`.`C1`); C1 C1 忢 忢 @@ -318,31 +318,31 @@ SELECT * FROM ` 幎 幈 幓 幈 SELECT * FROM `T7a` JOIN `T7b` USING (`C1`); -C1 C1 -幈 幈 +C1 +幈 SELECT * FROM `T7a` INNER JOIN `T7b` USING (`C1`); -C1 C1 -幈 幈 +C1 +幈 SELECT * FROM `T7a` CROSS JOIN `T7b`; C1 C1 幈 幈 幎 幈 幓 幈 SELECT * FROM `T7a` LEFT JOIN `T7b` USING (`C1`); -C1 C1 -幈 幈 -幎 NULL -幓 NULL +C1 +幈 +幎 +幓 SELECT * FROM `T7a` LEFT JOIN `T7b` ON (`T7a`.`C1` = `T7b`.`C1`); C1 C1 幈 幈 幎 NULL 幓 NULL SELECT * FROM `T7b` RIGHT JOIN `T7a` USING (`C1`); -C1 C1 -幈 幈 -NULL 幎 -NULL 幓 +C1 +幈 +幎 +幓 SELECT * FROM `T7b` RIGHT JOIN `T7a` ON (`T7a`.`C1` = `T7b`.`C1`); C1 C1 幈 幈 @@ -359,31 +359,31 @@ SELECT * FROM ` か あ さ あ SELECT * FROM `T8a` JOIN `T8b` USING (`C1`); -C1 C1 -あ あ +C1 +あ SELECT * FROM `T8a` INNER JOIN `T8b` USING (`C1`); -C1 C1 -あ あ +C1 +あ SELECT * FROM `T8a` CROSS JOIN `T8b`; C1 C1 あ あ か あ さ あ SELECT * FROM `T8a` LEFT JOIN `T8b` USING (`C1`); -C1 C1 -あ あ -か NULL -さ NULL +C1 +あ +か +さ SELECT * FROM `T8a` LEFT JOIN `T8b` ON (`T8a`.`C1` = `T8b`.`C1`); C1 C1 あ あ か NULL さ NULL SELECT * FROM `T8b` RIGHT JOIN `T8a` USING (`C1`); -C1 C1 -あ あ -NULL か -NULL さ +C1 +あ +か +さ SELECT * FROM `T8b` RIGHT JOIN `T8a` ON (`T8a`.`C1` = `T8b`.`C1`); C1 C1 あ あ @@ -400,31 +400,31 @@ SELECT * FROM ` 忢 忢 忢 忢 SELECT * FROM `T9a` JOIN `T9b` USING (`C1`); -C1 C1 -忢 忢 +C1 +忢 SELECT * FROM `T9a` INNER JOIN `T9b` USING (`C1`); -C1 C1 -忢 忢 +C1 +忢 SELECT * FROM `T9a` CROSS JOIN `T9b`; C1 C1 忢 忢 忢 忢 忢 忢 SELECT * FROM `T9a` LEFT JOIN `T9b` USING (`C1`); -C1 C1 -忢 忢 -忢 NULL -忢 NULL +C1 +忢 +忢 +忢 SELECT * FROM `T9a` LEFT JOIN `T9b` ON (`T9a`.`C1` = `T9b`.`C1`); C1 C1 忢 忢 忢 NULL 忢 NULL SELECT * FROM `T9b` RIGHT JOIN `T9a` USING (`C1`); -C1 C1 -忢 忢 -NULL 忢 -NULL 忢 +C1 +忢 +忢 +忢 SELECT * FROM `T9b` RIGHT JOIN `T9a` ON (`T9a`.`C1` = `T9b`.`C1`); C1 C1 忢 忢 @@ -441,31 +441,31 @@ SELECT * FROM ` 幎 幈 幓 幈 SELECT * FROM `T10a` JOIN `T10b` USING (`C1`); -C1 C1 -幈 幈 +C1 +幈 SELECT * FROM `T10a` INNER JOIN `T10b` USING (`C1`); -C1 C1 -幈 幈 +C1 +幈 SELECT * FROM `T10a` CROSS JOIN `T10b`; C1 C1 幈 幈 幎 幈 幓 幈 SELECT * FROM `T10a` LEFT JOIN `T10b` USING (`C1`); -C1 C1 -幈 幈 -幎 NULL -幓 NULL +C1 +幈 +幎 +幓 SELECT * FROM `T10a` LEFT JOIN `T10b` ON (`T10a`.`C1` = `T10b`.`C1`); C1 C1 幈 幈 幎 NULL 幓 NULL SELECT * FROM `T10b` RIGHT JOIN `T10a` USING (`C1`); -C1 C1 -幈 幈 -NULL 幎 -NULL 幓 +C1 +幈 +幎 +幓 SELECT * FROM `T10b` RIGHT JOIN `T10a` ON (`T10a`.`C1` = `T10b`.`C1`); C1 C1 幈 幈 @@ -482,31 +482,31 @@ SELECT * FROM ` か あ さ あ SELECT * FROM `T11a` JOIN `T11b` USING (`C1`); -C1 C1 -あ あ +C1 +あ SELECT * FROM `T11a` INNER JOIN `T11b` USING (`C1`); -C1 C1 -あ あ +C1 +あ SELECT * FROM `T11a` CROSS JOIN `T11b`; C1 C1 あ あ か あ さ あ SELECT * FROM `T11a` LEFT JOIN `T11b` USING (`C1`); -C1 C1 -あ あ -か NULL -さ NULL +C1 +あ +か +さ SELECT * FROM `T11a` LEFT JOIN `T11b` ON (`T11a`.`C1` = `T11b`.`C1`); C1 C1 あ あ か NULL さ NULL SELECT * FROM `T11b` RIGHT JOIN `T11a` USING (`C1`); -C1 C1 -あ あ -NULL か -NULL さ +C1 +あ +か +さ SELECT * FROM `T11b` RIGHT JOIN `T11a` ON (`T11a`.`C1` = `T11b`.`C1`); C1 C1 あ あ @@ -523,31 +523,31 @@ SELECT * FROM ` 忢 忢 忢 忢 SELECT * FROM `T12a` JOIN `T12b` USING (`C1`); -C1 C1 -忢 忢 +C1 +忢 SELECT * FROM `T12a` INNER JOIN `T12b` USING (`C1`); -C1 C1 -忢 忢 +C1 +忢 SELECT * FROM `T12a` CROSS JOIN `T12b`; C1 C1 忢 忢 忢 忢 忢 忢 SELECT * FROM `T12a` LEFT JOIN `T12b` USING (`C1`); -C1 C1 -忢 忢 -忢 NULL -忢 NULL +C1 +忢 +忢 +忢 SELECT * FROM `T12a` LEFT JOIN `T12b` ON (`T12a`.`C1` = `T12b`.`C1`); C1 C1 忢 忢 忢 NULL 忢 NULL SELECT * FROM `T12b` RIGHT JOIN `T12a` USING (`C1`); -C1 C1 -忢 忢 -NULL 忢 -NULL 忢 +C1 +忢 +忢 +忢 SELECT * FROM `T12b` RIGHT JOIN `T12a` ON (`T12a`.`C1` = `T12b`.`C1`); C1 C1 忢 忢 diff --git a/mysql-test/suite/jp/r/jp_join_ujis.result b/mysql-test/suite/jp/r/jp_join_ujis.result index ac430cd9b5e..838d701cdcc 100644 --- a/mysql-test/suite/jp/r/jp_join_ujis.result +++ b/mysql-test/suite/jp/r/jp_join_ujis.result @@ -71,31 +71,31 @@ SELECT * FROM ` 幎 幈 幓 幈 SELECT * FROM `T1a` JOIN `T1b` USING (`C1`); -C1 C1 -幈 幈 +C1 +幈 SELECT * FROM `T1a` INNER JOIN `T1b` USING (`C1`); -C1 C1 -幈 幈 +C1 +幈 SELECT * FROM `T1a` CROSS JOIN `T1b`; C1 C1 幈 幈 幎 幈 幓 幈 SELECT * FROM `T1a` LEFT JOIN `T1b` USING (`C1`); -C1 C1 -幈 幈 -幎 NULL -幓 NULL +C1 +幈 +幎 +幓 SELECT * FROM `T1a` LEFT JOIN `T1b` ON (`T1a`.`C1` = `T1b`.`C1`); C1 C1 幈 幈 幎 NULL 幓 NULL SELECT * FROM `T1b` RIGHT JOIN `T1a` USING (`C1`); -C1 C1 -幈 幈 -NULL 幎 -NULL 幓 +C1 +幈 +幎 +幓 SELECT * FROM `T1b` RIGHT JOIN `T1a` ON (`T1a`.`C1` = `T1b`.`C1`); C1 C1 幈 幈 @@ -112,31 +112,31 @@ SELECT * FROM ` か あ さ あ SELECT * FROM `T2a` JOIN `T2b` USING (`C1`); -C1 C1 -あ あ +C1 +あ SELECT * FROM `T2a` INNER JOIN `T2b` USING (`C1`); -C1 C1 -あ あ +C1 +あ SELECT * FROM `T2a` CROSS JOIN `T2b`; C1 C1 あ あ か あ さ あ SELECT * FROM `T2a` LEFT JOIN `T2b` USING (`C1`); -C1 C1 -あ あ -か NULL -さ NULL +C1 +あ +か +さ SELECT * FROM `T2a` LEFT JOIN `T2b` ON (`T2a`.`C1` = `T2b`.`C1`); C1 C1 あ あ か NULL さ NULL SELECT * FROM `T2b` RIGHT JOIN `T2a` USING (`C1`); -C1 C1 -あ あ -NULL か -NULL さ +C1 +あ +か +さ SELECT * FROM `T2b` RIGHT JOIN `T2a` ON (`T2a`.`C1` = `T2b`.`C1`); C1 C1 あ あ @@ -153,31 +153,31 @@ SELECT * FROM ` 忢 忢 忢 忢 SELECT * FROM `T3a` JOIN `T3b` USING (`C1`); -C1 C1 -忢 忢 +C1 +忢 SELECT * FROM `T3a` INNER JOIN `T3b` USING (`C1`); -C1 C1 -忢 忢 +C1 +忢 SELECT * FROM `T3a` CROSS JOIN `T3b`; C1 C1 忢 忢 忢 忢 忢 忢 SELECT * FROM `T3a` LEFT JOIN `T3b` USING (`C1`); -C1 C1 -忢 忢 -忢 NULL -忢 NULL +C1 +忢 +忢 +忢 SELECT * FROM `T3a` LEFT JOIN `T3b` ON (`T3a`.`C1` = `T3b`.`C1`); C1 C1 忢 忢 忢 NULL 忢 NULL SELECT * FROM `T3b` RIGHT JOIN `T3a` USING (`C1`); -C1 C1 -忢 忢 -NULL 忢 -NULL 忢 +C1 +忢 +忢 +忢 SELECT * FROM `T3b` RIGHT JOIN `T3a` ON (`T3a`.`C1` = `T3b`.`C1`); C1 C1 忢 忢 @@ -194,31 +194,31 @@ SELECT * FROM ` 幎 幈 幓 幈 SELECT * FROM `T4a` JOIN `T4b` USING (`C1`); -C1 C1 -幈 幈 +C1 +幈 SELECT * FROM `T4a` INNER JOIN `T4b` USING (`C1`); -C1 C1 -幈 幈 +C1 +幈 SELECT * FROM `T4a` CROSS JOIN `T4b`; C1 C1 幈 幈 幎 幈 幓 幈 SELECT * FROM `T4a` LEFT JOIN `T4b` USING (`C1`); -C1 C1 -幈 幈 -幎 NULL -幓 NULL +C1 +幈 +幎 +幓 SELECT * FROM `T4a` LEFT JOIN `T4b` ON (`T4a`.`C1` = `T4b`.`C1`); C1 C1 幈 幈 幎 NULL 幓 NULL SELECT * FROM `T4b` RIGHT JOIN `T4a` USING (`C1`); -C1 C1 -幈 幈 -NULL 幎 -NULL 幓 +C1 +幈 +幎 +幓 SELECT * FROM `T4b` RIGHT JOIN `T4a` ON (`T4a`.`C1` = `T4b`.`C1`); C1 C1 幈 幈 @@ -235,31 +235,31 @@ SELECT * FROM ` か あ さ あ SELECT * FROM `T5a` JOIN `T5b` USING (`C1`); -C1 C1 -あ あ +C1 +あ SELECT * FROM `T5a` INNER JOIN `T5b` USING (`C1`); -C1 C1 -あ あ +C1 +あ SELECT * FROM `T5a` CROSS JOIN `T5b`; C1 C1 あ あ か あ さ あ SELECT * FROM `T5a` LEFT JOIN `T5b` USING (`C1`); -C1 C1 -あ あ -か NULL -さ NULL +C1 +あ +か +さ SELECT * FROM `T5a` LEFT JOIN `T5b` ON (`T5a`.`C1` = `T5b`.`C1`); C1 C1 あ あ か NULL さ NULL SELECT * FROM `T5b` RIGHT JOIN `T5a` USING (`C1`); -C1 C1 -あ あ -NULL か -NULL さ +C1 +あ +か +さ SELECT * FROM `T5b` RIGHT JOIN `T5a` ON (`T5a`.`C1` = `T5b`.`C1`); C1 C1 あ あ @@ -276,31 +276,31 @@ SELECT * FROM ` 忢 忢 忢 忢 SELECT * FROM `T6a` JOIN `T6b` USING (`C1`); -C1 C1 -忢 忢 +C1 +忢 SELECT * FROM `T6a` INNER JOIN `T6b` USING (`C1`); -C1 C1 -忢 忢 +C1 +忢 SELECT * FROM `T6a` CROSS JOIN `T6b`; C1 C1 忢 忢 忢 忢 忢 忢 SELECT * FROM `T6a` LEFT JOIN `T6b` USING (`C1`); -C1 C1 -忢 忢 -忢 NULL -忢 NULL +C1 +忢 +忢 +忢 SELECT * FROM `T6a` LEFT JOIN `T6b` ON (`T6a`.`C1` = `T6b`.`C1`); C1 C1 忢 忢 忢 NULL 忢 NULL SELECT * FROM `T6b` RIGHT JOIN `T6a` USING (`C1`); -C1 C1 -忢 忢 -NULL 忢 -NULL 忢 +C1 +忢 +忢 +忢 SELECT * FROM `T6b` RIGHT JOIN `T6a` ON (`T6a`.`C1` = `T6b`.`C1`); C1 C1 忢 忢 @@ -317,31 +317,31 @@ SELECT * FROM ` 幎 幈 幓 幈 SELECT * FROM `T7a` JOIN `T7b` USING (`C1`); -C1 C1 -幈 幈 +C1 +幈 SELECT * FROM `T7a` INNER JOIN `T7b` USING (`C1`); -C1 C1 -幈 幈 +C1 +幈 SELECT * FROM `T7a` CROSS JOIN `T7b`; C1 C1 幈 幈 幎 幈 幓 幈 SELECT * FROM `T7a` LEFT JOIN `T7b` USING (`C1`); -C1 C1 -幈 幈 -幎 NULL -幓 NULL +C1 +幈 +幎 +幓 SELECT * FROM `T7a` LEFT JOIN `T7b` ON (`T7a`.`C1` = `T7b`.`C1`); C1 C1 幈 幈 幎 NULL 幓 NULL SELECT * FROM `T7b` RIGHT JOIN `T7a` USING (`C1`); -C1 C1 -幈 幈 -NULL 幎 -NULL 幓 +C1 +幈 +幎 +幓 SELECT * FROM `T7b` RIGHT JOIN `T7a` ON (`T7a`.`C1` = `T7b`.`C1`); C1 C1 幈 幈 @@ -358,31 +358,31 @@ SELECT * FROM ` か あ さ あ SELECT * FROM `T8a` JOIN `T8b` USING (`C1`); -C1 C1 -あ あ +C1 +あ SELECT * FROM `T8a` INNER JOIN `T8b` USING (`C1`); -C1 C1 -あ あ +C1 +あ SELECT * FROM `T8a` CROSS JOIN `T8b`; C1 C1 あ あ か あ さ あ SELECT * FROM `T8a` LEFT JOIN `T8b` USING (`C1`); -C1 C1 -あ あ -か NULL -さ NULL +C1 +あ +か +さ SELECT * FROM `T8a` LEFT JOIN `T8b` ON (`T8a`.`C1` = `T8b`.`C1`); C1 C1 あ あ か NULL さ NULL SELECT * FROM `T8b` RIGHT JOIN `T8a` USING (`C1`); -C1 C1 -あ あ -NULL か -NULL さ +C1 +あ +か +さ SELECT * FROM `T8b` RIGHT JOIN `T8a` ON (`T8a`.`C1` = `T8b`.`C1`); C1 C1 あ あ @@ -399,31 +399,31 @@ SELECT * FROM ` 忢 忢 忢 忢 SELECT * FROM `T9a` JOIN `T9b` USING (`C1`); -C1 C1 -忢 忢 +C1 +忢 SELECT * FROM `T9a` INNER JOIN `T9b` USING (`C1`); -C1 C1 -忢 忢 +C1 +忢 SELECT * FROM `T9a` CROSS JOIN `T9b`; C1 C1 忢 忢 忢 忢 忢 忢 SELECT * FROM `T9a` LEFT JOIN `T9b` USING (`C1`); -C1 C1 -忢 忢 -忢 NULL -忢 NULL +C1 +忢 +忢 +忢 SELECT * FROM `T9a` LEFT JOIN `T9b` ON (`T9a`.`C1` = `T9b`.`C1`); C1 C1 忢 忢 忢 NULL 忢 NULL SELECT * FROM `T9b` RIGHT JOIN `T9a` USING (`C1`); -C1 C1 -忢 忢 -NULL 忢 -NULL 忢 +C1 +忢 +忢 +忢 SELECT * FROM `T9b` RIGHT JOIN `T9a` ON (`T9a`.`C1` = `T9b`.`C1`); C1 C1 忢 忢 @@ -440,31 +440,31 @@ SELECT * FROM ` 幎 幈 幓 幈 SELECT * FROM `T10a` JOIN `T10b` USING (`C1`); -C1 C1 -幈 幈 +C1 +幈 SELECT * FROM `T10a` INNER JOIN `T10b` USING (`C1`); -C1 C1 -幈 幈 +C1 +幈 SELECT * FROM `T10a` CROSS JOIN `T10b`; C1 C1 幈 幈 幎 幈 幓 幈 SELECT * FROM `T10a` LEFT JOIN `T10b` USING (`C1`); -C1 C1 -幈 幈 -幎 NULL -幓 NULL +C1 +幈 +幎 +幓 SELECT * FROM `T10a` LEFT JOIN `T10b` ON (`T10a`.`C1` = `T10b`.`C1`); C1 C1 幈 幈 幎 NULL 幓 NULL SELECT * FROM `T10b` RIGHT JOIN `T10a` USING (`C1`); -C1 C1 -幈 幈 -NULL 幎 -NULL 幓 +C1 +幈 +幎 +幓 SELECT * FROM `T10b` RIGHT JOIN `T10a` ON (`T10a`.`C1` = `T10b`.`C1`); C1 C1 幈 幈 @@ -481,31 +481,31 @@ SELECT * FROM ` か あ さ あ SELECT * FROM `T11a` JOIN `T11b` USING (`C1`); -C1 C1 -あ あ +C1 +あ SELECT * FROM `T11a` INNER JOIN `T11b` USING (`C1`); -C1 C1 -あ あ +C1 +あ SELECT * FROM `T11a` CROSS JOIN `T11b`; C1 C1 あ あ か あ さ あ SELECT * FROM `T11a` LEFT JOIN `T11b` USING (`C1`); -C1 C1 -あ あ -か NULL -さ NULL +C1 +あ +か +さ SELECT * FROM `T11a` LEFT JOIN `T11b` ON (`T11a`.`C1` = `T11b`.`C1`); C1 C1 あ あ か NULL さ NULL SELECT * FROM `T11b` RIGHT JOIN `T11a` USING (`C1`); -C1 C1 -あ あ -NULL か -NULL さ +C1 +あ +か +さ SELECT * FROM `T11b` RIGHT JOIN `T11a` ON (`T11a`.`C1` = `T11b`.`C1`); C1 C1 あ あ @@ -522,31 +522,31 @@ SELECT * FROM ` 忢 忢 忢 忢 SELECT * FROM `T12a` JOIN `T12b` USING (`C1`); -C1 C1 -忢 忢 +C1 +忢 SELECT * FROM `T12a` INNER JOIN `T12b` USING (`C1`); -C1 C1 -忢 忢 +C1 +忢 SELECT * FROM `T12a` CROSS JOIN `T12b`; C1 C1 忢 忢 忢 忢 忢 忢 SELECT * FROM `T12a` LEFT JOIN `T12b` USING (`C1`); -C1 C1 -忢 忢 -忢 NULL -忢 NULL +C1 +忢 +忢 +忢 SELECT * FROM `T12a` LEFT JOIN `T12b` ON (`T12a`.`C1` = `T12b`.`C1`); C1 C1 忢 忢 忢 NULL 忢 NULL SELECT * FROM `T12b` RIGHT JOIN `T12a` USING (`C1`); -C1 C1 -忢 忢 -NULL 忢 -NULL 忢 +C1 +忢 +忢 +忢 SELECT * FROM `T12b` RIGHT JOIN `T12a` ON (`T12a`.`C1` = `T12b`.`C1`); C1 C1 忢 忢 diff --git a/mysql-test/suite/jp/r/jp_join_utf8.result b/mysql-test/suite/jp/r/jp_join_utf8.result index 716e97a2bb3..8c222653c3e 100644 --- a/mysql-test/suite/jp/r/jp_join_utf8.result +++ b/mysql-test/suite/jp/r/jp_join_utf8.result @@ -71,31 +71,31 @@ SELECT * FROM `锛达紤a` INNER JOIN `锛达紤b`; 锝 锝 锝 锝 SELECT * FROM `锛达紤a` JOIN `锛达紤b` USING (`锛o紤`); -锛o紤 锛o紤 -锝 锝 +锛o紤 +锝 SELECT * FROM `锛达紤a` INNER JOIN `锛达紤b` USING (`锛o紤`); -锛o紤 锛o紤 -锝 锝 +锛o紤 +锝 SELECT * FROM `锛达紤a` CROSS JOIN `锛达紤b`; 锛o紤 锛o紤 锝 锝 锝 锝 锝 锝 SELECT * FROM `锛达紤a` LEFT JOIN `锛达紤b` USING (`锛o紤`); -锛o紤 锛o紤 -锝 锝 -锝 NULL -锝 NULL +锛o紤 +锝 +锝 +锝 SELECT * FROM `锛达紤a` LEFT JOIN `锛达紤b` ON (`锛达紤a`.`锛o紤` = `锛达紤b`.`锛o紤`); 锛o紤 锛o紤 锝 锝 锝 NULL 锝 NULL SELECT * FROM `锛达紤b` RIGHT JOIN `锛达紤a` USING (`锛o紤`); -锛o紤 锛o紤 -锝 锝 -NULL 锝 -NULL 锝 +锛o紤 +锝 +锝 +锝 SELECT * FROM `锛达紤b` RIGHT JOIN `锛达紤a` ON (`锛达紤a`.`锛o紤` = `锛达紤b`.`锛o紤`); 锛o紤 锛o紤 锝 锝 @@ -112,31 +112,31 @@ SELECT * FROM `锛达紥a` INNER JOIN `锛达紥b`; 銇 銇 銇 銇 SELECT * FROM `锛达紥a` JOIN `锛达紥b` USING (`锛o紤`); -锛o紤 锛o紤 -銇 銇 +锛o紤 +銇 SELECT * FROM `锛达紥a` INNER JOIN `锛达紥b` USING (`锛o紤`); -锛o紤 锛o紤 -銇 銇 +锛o紤 +銇 SELECT * FROM `锛达紥a` CROSS JOIN `锛达紥b`; 锛o紤 锛o紤 銇 銇 銇 銇 銇 銇 SELECT * FROM `锛达紥a` LEFT JOIN `锛达紥b` USING (`锛o紤`); -锛o紤 锛o紤 -銇 銇 -銇 NULL -銇 NULL +锛o紤 +銇 +銇 +銇 SELECT * FROM `锛达紥a` LEFT JOIN `锛达紥b` ON (`锛达紥a`.`锛o紤` = `锛达紥b`.`锛o紤`); 锛o紤 锛o紤 銇 銇 銇 NULL 銇 NULL SELECT * FROM `锛达紥b` RIGHT JOIN `锛达紥a` USING (`锛o紤`); -锛o紤 锛o紤 -銇 銇 -NULL 銇 -NULL 銇 +锛o紤 +銇 +銇 +銇 SELECT * FROM `锛达紥b` RIGHT JOIN `锛达紥a` ON (`锛达紥a`.`锛o紤` = `锛达紥b`.`锛o紤`); 锛o紤 锛o紤 銇 銇 @@ -153,31 +153,31 @@ SELECT * FROM `锛达紦a` INNER JOIN `锛达紦b`; 榫 榫 榫 榫 SELECT * FROM `锛达紦a` JOIN `锛达紦b` USING (`锛o紤`); -锛o紤 锛o紤 -榫 榫 +锛o紤 +榫 SELECT * FROM `锛达紦a` INNER JOIN `锛达紦b` USING (`锛o紤`); -锛o紤 锛o紤 -榫 榫 +锛o紤 +榫 SELECT * FROM `锛达紦a` CROSS JOIN `锛达紦b`; 锛o紤 锛o紤 榫 榫 榫 榫 榫 榫 SELECT * FROM `锛达紦a` LEFT JOIN `锛达紦b` USING (`锛o紤`); -锛o紤 锛o紤 -榫 榫 -榫 NULL -榫 NULL +锛o紤 +榫 +榫 +榫 SELECT * FROM `锛达紦a` LEFT JOIN `锛达紦b` ON (`锛达紦a`.`锛o紤` = `锛达紦b`.`锛o紤`); 锛o紤 锛o紤 榫 榫 榫 NULL 榫 NULL SELECT * FROM `锛达紦b` RIGHT JOIN `锛达紦a` USING (`锛o紤`); -锛o紤 锛o紤 -榫 榫 -NULL 榫 -NULL 榫 +锛o紤 +榫 +榫 +榫 SELECT * FROM `锛达紦b` RIGHT JOIN `锛达紦a` ON (`锛达紦a`.`锛o紤` = `锛达紦b`.`锛o紤`); 锛o紤 锛o紤 榫 榫 @@ -194,31 +194,31 @@ SELECT * FROM `锛达紨a` INNER JOIN `锛达紨b`; 锝 锝 锝 锝 SELECT * FROM `锛达紨a` JOIN `锛达紨b` USING (`锛o紤`); -锛o紤 锛o紤 -锝 锝 +锛o紤 +锝 SELECT * FROM `锛达紨a` INNER JOIN `锛达紨b` USING (`锛o紤`); -锛o紤 锛o紤 -锝 锝 +锛o紤 +锝 SELECT * FROM `锛达紨a` CROSS JOIN `锛达紨b`; 锛o紤 锛o紤 锝 锝 锝 锝 锝 锝 SELECT * FROM `锛达紨a` LEFT JOIN `锛达紨b` USING (`锛o紤`); -锛o紤 锛o紤 -锝 锝 -锝 NULL -锝 NULL +锛o紤 +锝 +锝 +锝 SELECT * FROM `锛达紨a` LEFT JOIN `锛达紨b` ON (`锛达紨a`.`锛o紤` = `锛达紨b`.`锛o紤`); 锛o紤 锛o紤 锝 锝 锝 NULL 锝 NULL SELECT * FROM `锛达紨b` RIGHT JOIN `锛达紨a` USING (`锛o紤`); -锛o紤 锛o紤 -锝 锝 -NULL 锝 -NULL 锝 +锛o紤 +锝 +锝 +锝 SELECT * FROM `锛达紨b` RIGHT JOIN `锛达紨a` ON (`锛达紨a`.`锛o紤` = `锛达紨b`.`锛o紤`); 锛o紤 锛o紤 锝 锝 @@ -235,31 +235,31 @@ SELECT * FROM `锛达紩a` INNER JOIN `锛达紩b`; 銇 銇 銇 銇 SELECT * FROM `锛达紩a` JOIN `锛达紩b` USING (`锛o紤`); -锛o紤 锛o紤 -銇 銇 +锛o紤 +銇 SELECT * FROM `锛达紩a` INNER JOIN `锛达紩b` USING (`锛o紤`); -锛o紤 锛o紤 -銇 銇 +锛o紤 +銇 SELECT * FROM `锛达紩a` CROSS JOIN `锛达紩b`; 锛o紤 锛o紤 銇 銇 銇 銇 銇 銇 SELECT * FROM `锛达紩a` LEFT JOIN `锛达紩b` USING (`锛o紤`); -锛o紤 锛o紤 -銇 銇 -銇 NULL -銇 NULL +锛o紤 +銇 +銇 +銇 SELECT * FROM `锛达紩a` LEFT JOIN `锛达紩b` ON (`锛达紩a`.`锛o紤` = `锛达紩b`.`锛o紤`); 锛o紤 锛o紤 銇 銇 銇 NULL 銇 NULL SELECT * FROM `锛达紩b` RIGHT JOIN `锛达紩a` USING (`锛o紤`); -锛o紤 锛o紤 -銇 銇 -NULL 銇 -NULL 銇 +锛o紤 +銇 +銇 +銇 SELECT * FROM `锛达紩b` RIGHT JOIN `锛达紩a` ON (`锛达紩a`.`锛o紤` = `锛达紩b`.`锛o紤`); 锛o紤 锛o紤 銇 銇 @@ -276,31 +276,31 @@ SELECT * FROM `锛达紪a` INNER JOIN `锛达紪b`; 榫 榫 榫 榫 SELECT * FROM `锛达紪a` JOIN `锛达紪b` USING (`锛o紤`); -锛o紤 锛o紤 -榫 榫 +锛o紤 +榫 SELECT * FROM `锛达紪a` INNER JOIN `锛达紪b` USING (`锛o紤`); -锛o紤 锛o紤 -榫 榫 +锛o紤 +榫 SELECT * FROM `锛达紪a` CROSS JOIN `锛达紪b`; 锛o紤 锛o紤 榫 榫 榫 榫 榫 榫 SELECT * FROM `锛达紪a` LEFT JOIN `锛达紪b` USING (`锛o紤`); -锛o紤 锛o紤 -榫 榫 -榫 NULL -榫 NULL +锛o紤 +榫 +榫 +榫 SELECT * FROM `锛达紪a` LEFT JOIN `锛达紪b` ON (`锛达紪a`.`锛o紤` = `锛达紪b`.`锛o紤`); 锛o紤 锛o紤 榫 榫 榫 NULL 榫 NULL SELECT * FROM `锛达紪b` RIGHT JOIN `锛达紪a` USING (`锛o紤`); -锛o紤 锛o紤 -榫 榫 -NULL 榫 -NULL 榫 +锛o紤 +榫 +榫 +榫 SELECT * FROM `锛达紪b` RIGHT JOIN `锛达紪a` ON (`锛达紪a`.`锛o紤` = `锛达紪b`.`锛o紤`); 锛o紤 锛o紤 榫 榫 @@ -317,31 +317,31 @@ SELECT * FROM `锛达紬a` INNER JOIN `锛达紬b`; 锝 锝 锝 锝 SELECT * FROM `锛达紬a` JOIN `锛达紬b` USING (`锛o紤`); -锛o紤 锛o紤 -锝 锝 +锛o紤 +锝 SELECT * FROM `锛达紬a` INNER JOIN `锛达紬b` USING (`锛o紤`); -锛o紤 锛o紤 -锝 锝 +锛o紤 +锝 SELECT * FROM `锛达紬a` CROSS JOIN `锛达紬b`; 锛o紤 锛o紤 锝 锝 锝 锝 锝 锝 SELECT * FROM `锛达紬a` LEFT JOIN `锛达紬b` USING (`锛o紤`); -锛o紤 锛o紤 -锝 锝 -锝 NULL -锝 NULL +锛o紤 +锝 +锝 +锝 SELECT * FROM `锛达紬a` LEFT JOIN `锛达紬b` ON (`锛达紬a`.`锛o紤` = `锛达紬b`.`锛o紤`); 锛o紤 锛o紤 锝 锝 锝 NULL 锝 NULL SELECT * FROM `锛达紬b` RIGHT JOIN `锛达紬a` USING (`锛o紤`); -锛o紤 锛o紤 -锝 锝 -NULL 锝 -NULL 锝 +锛o紤 +锝 +锝 +锝 SELECT * FROM `锛达紬b` RIGHT JOIN `锛达紬a` ON (`锛达紬a`.`锛o紤` = `锛达紬b`.`锛o紤`); 锛o紤 锛o紤 锝 锝 @@ -358,31 +358,31 @@ SELECT * FROM `锛达紭a` INNER JOIN `锛达紭b`; 銇 銇 銇 銇 SELECT * FROM `锛达紭a` JOIN `锛达紭b` USING (`锛o紤`); -锛o紤 锛o紤 -銇 銇 +锛o紤 +銇 SELECT * FROM `锛达紭a` INNER JOIN `锛达紭b` USING (`锛o紤`); -锛o紤 锛o紤 -銇 銇 +锛o紤 +銇 SELECT * FROM `锛达紭a` CROSS JOIN `锛达紭b`; 锛o紤 锛o紤 銇 銇 銇 銇 銇 銇 SELECT * FROM `锛达紭a` LEFT JOIN `锛达紭b` USING (`锛o紤`); -锛o紤 锛o紤 -銇 銇 -銇 NULL -銇 NULL +锛o紤 +銇 +銇 +銇 SELECT * FROM `锛达紭a` LEFT JOIN `锛达紭b` ON (`锛达紭a`.`锛o紤` = `锛达紭b`.`锛o紤`); 锛o紤 锛o紤 銇 銇 銇 NULL 銇 NULL SELECT * FROM `锛达紭b` RIGHT JOIN `锛达紭a` USING (`锛o紤`); -锛o紤 锛o紤 -銇 銇 -NULL 銇 -NULL 銇 +锛o紤 +銇 +銇 +銇 SELECT * FROM `锛达紭b` RIGHT JOIN `锛达紭a` ON (`锛达紭a`.`锛o紤` = `锛达紭b`.`锛o紤`); 锛o紤 锛o紤 銇 銇 @@ -399,31 +399,31 @@ SELECT * FROM `锛达紮a` INNER JOIN `锛达紮b`; 榫 榫 榫 榫 SELECT * FROM `锛达紮a` JOIN `锛达紮b` USING (`锛o紤`); -锛o紤 锛o紤 -榫 榫 +锛o紤 +榫 SELECT * FROM `锛达紮a` INNER JOIN `锛达紮b` USING (`锛o紤`); -锛o紤 锛o紤 -榫 榫 +锛o紤 +榫 SELECT * FROM `锛达紮a` CROSS JOIN `锛达紮b`; 锛o紤 锛o紤 榫 榫 榫 榫 榫 榫 SELECT * FROM `锛达紮a` LEFT JOIN `锛达紮b` USING (`锛o紤`); -锛o紤 锛o紤 -榫 榫 -榫 NULL -榫 NULL +锛o紤 +榫 +榫 +榫 SELECT * FROM `锛达紮a` LEFT JOIN `锛达紮b` ON (`锛达紮a`.`锛o紤` = `锛达紮b`.`锛o紤`); 锛o紤 锛o紤 榫 榫 榫 NULL 榫 NULL SELECT * FROM `锛达紮b` RIGHT JOIN `锛达紮a` USING (`锛o紤`); -锛o紤 锛o紤 -榫 榫 -NULL 榫 -NULL 榫 +锛o紤 +榫 +榫 +榫 SELECT * FROM `锛达紮b` RIGHT JOIN `锛达紮a` ON (`锛达紮a`.`锛o紤` = `锛达紮b`.`锛o紤`); 锛o紤 锛o紤 榫 榫 @@ -440,31 +440,31 @@ SELECT * FROM `锛达紤锛恆` INNER JOIN `锛达紤锛恇`; 锝 锝 锝 锝 SELECT * FROM `锛达紤锛恆` JOIN `锛达紤锛恇` USING (`锛o紤`); -锛o紤 锛o紤 -锝 锝 +锛o紤 +锝 SELECT * FROM `锛达紤锛恆` INNER JOIN `锛达紤锛恇` USING (`锛o紤`); -锛o紤 锛o紤 -锝 锝 +锛o紤 +锝 SELECT * FROM `锛达紤锛恆` CROSS JOIN `锛达紤锛恇`; 锛o紤 锛o紤 锝 锝 锝 锝 锝 锝 SELECT * FROM `锛达紤锛恆` LEFT JOIN `锛达紤锛恇` USING (`锛o紤`); -锛o紤 锛o紤 -锝 锝 -锝 NULL -锝 NULL +锛o紤 +锝 +锝 +锝 SELECT * FROM `锛达紤锛恆` LEFT JOIN `锛达紤锛恇` ON (`锛达紤锛恆`.`锛o紤` = `锛达紤锛恇`.`锛o紤`); 锛o紤 锛o紤 锝 锝 锝 NULL 锝 NULL SELECT * FROM `锛达紤锛恇` RIGHT JOIN `锛达紤锛恆` USING (`锛o紤`); -锛o紤 锛o紤 -锝 锝 -NULL 锝 -NULL 锝 +锛o紤 +锝 +锝 +锝 SELECT * FROM `锛达紤锛恇` RIGHT JOIN `锛达紤锛恆` ON (`锛达紤锛恆`.`锛o紤` = `锛达紤锛恇`.`锛o紤`); 锛o紤 锛o紤 锝 锝 @@ -481,31 +481,31 @@ SELECT * FROM `锛达紤锛慳` INNER JOIN `锛达紤锛慴`; 銇 銇 銇 銇 SELECT * FROM `锛达紤锛慳` JOIN `锛达紤锛慴` USING (`锛o紤`); -锛o紤 锛o紤 -銇 銇 +锛o紤 +銇 SELECT * FROM `锛达紤锛慳` INNER JOIN `锛达紤锛慴` USING (`锛o紤`); -锛o紤 锛o紤 -銇 銇 +锛o紤 +銇 SELECT * FROM `锛达紤锛慳` CROSS JOIN `锛达紤锛慴`; 锛o紤 锛o紤 銇 銇 銇 銇 銇 銇 SELECT * FROM `锛达紤锛慳` LEFT JOIN `锛达紤锛慴` USING (`锛o紤`); -锛o紤 锛o紤 -銇 銇 -銇 NULL -銇 NULL +锛o紤 +銇 +銇 +銇 SELECT * FROM `锛达紤锛慳` LEFT JOIN `锛达紤锛慴` ON (`锛达紤锛慳`.`锛o紤` = `锛达紤锛慴`.`锛o紤`); 锛o紤 锛o紤 銇 銇 銇 NULL 銇 NULL SELECT * FROM `锛达紤锛慴` RIGHT JOIN `锛达紤锛慳` USING (`锛o紤`); -锛o紤 锛o紤 -銇 銇 -NULL 銇 -NULL 銇 +锛o紤 +銇 +銇 +銇 SELECT * FROM `锛达紤锛慴` RIGHT JOIN `锛达紤锛慳` ON (`锛达紤锛慳`.`锛o紤` = `锛达紤锛慴`.`锛o紤`); 锛o紤 锛o紤 銇 銇 @@ -522,31 +522,31 @@ SELECT * FROM `锛达紤锛抋` INNER JOIN `锛达紤锛抌`; 榫 榫 榫 榫 SELECT * FROM `锛达紤锛抋` JOIN `锛达紤锛抌` USING (`锛o紤`); -锛o紤 锛o紤 -榫 榫 +锛o紤 +榫 SELECT * FROM `锛达紤锛抋` INNER JOIN `锛达紤锛抌` USING (`锛o紤`); -锛o紤 锛o紤 -榫 榫 +锛o紤 +榫 SELECT * FROM `锛达紤锛抋` CROSS JOIN `锛达紤锛抌`; 锛o紤 锛o紤 榫 榫 榫 榫 榫 榫 SELECT * FROM `锛达紤锛抋` LEFT JOIN `锛达紤锛抌` USING (`锛o紤`); -锛o紤 锛o紤 -榫 榫 -榫 NULL -榫 NULL +锛o紤 +榫 +榫 +榫 SELECT * FROM `锛达紤锛抋` LEFT JOIN `锛达紤锛抌` ON (`锛达紤锛抋`.`锛o紤` = `锛达紤锛抌`.`锛o紤`); 锛o紤 锛o紤 榫 榫 榫 NULL 榫 NULL SELECT * FROM `锛达紤锛抌` RIGHT JOIN `锛达紤锛抋` USING (`锛o紤`); -锛o紤 锛o紤 -榫 榫 -NULL 榫 -NULL 榫 +锛o紤 +榫 +榫 +榫 SELECT * FROM `锛达紤锛抌` RIGHT JOIN `锛达紤锛抋` ON (`锛达紤锛抋`.`锛o紤` = `锛达紤锛抌`.`锛o紤`); 锛o紤 锛o紤 榫 榫 diff --git a/mysql-test/suite/jp/r/jp_select_sjis.result b/mysql-test/suite/jp/r/jp_select_sjis.result index d48d08d745f..652b538fb88 100644 --- a/mysql-test/suite/jp/r/jp_select_sjis.result +++ b/mysql-test/suite/jp/r/jp_select_sjis.result @@ -118,6 +118,7 @@ SELECT * FROM ` 陳陸陹険陻陼陽陾陿隀隁隂隃隄隇丒丒丒丒丒 SELECT * FROM `俿俁`; 俠侾 + 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 SELECT * FROM `俿係`; 俠侾 @@ -201,6 +202,7 @@ SELECT * FROM ` 陳陸陹険陻陼陽陾陿隀隁隂隃隄隇丒丒丒丒丒 SELECT * FROM `俿俇`; 俠侾 + 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 SELECT * FROM `俿俈`; 俠侾 @@ -285,6 +287,7 @@ SELECT * FROM ` SELECT * FROM `俿俋`; 俠侾 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 + SELECT * FROM `俿侾侽`; 俠侾 !"#$%&'()*+,-./ @@ -368,6 +371,7 @@ SELECT * FROM ` SELECT * FROM `俿侾俀`; 俠侾 僜廫昞梊峔塡嶾怽揬擻朶榎慭抃橽歕沑淺漒瀄 + drop table `俿侾`; drop table `俿俀`; drop table `俿俁`; diff --git a/mysql-test/suite/jp/t/jp_alter_sjis.test b/mysql-test/suite/jp/t/jp_alter_sjis.test index b7b31862599..f250afcf5dd 100644 --- a/mysql-test/suite/jp/t/jp_alter_sjis.test +++ b/mysql-test/suite/jp/t/jp_alter_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis SET NAMES sjis; SET character_set_database = sjis; diff --git a/mysql-test/suite/jp/t/jp_alter_ucs2.test b/mysql-test/suite/jp/t/jp_alter_ucs2.test index 6c5b3132edf..27cf5b72839 100644 --- a/mysql-test/suite/jp/t/jp_alter_ucs2.test +++ b/mysql-test/suite/jp/t/jp_alter_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_alter_ujis.test b/mysql-test/suite/jp/t/jp_alter_ujis.test index d388d20c49b..b817f608446 100644 --- a/mysql-test/suite/jp/t/jp_alter_ujis.test +++ b/mysql-test/suite/jp/t/jp_alter_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_alter_utf8.test b/mysql-test/suite/jp/t/jp_alter_utf8.test index 6771343f38f..60a67485ba5 100644 --- a/mysql-test/suite/jp/t/jp_alter_utf8.test +++ b/mysql-test/suite/jp/t/jp_alter_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings DROP TABLE IF EXISTS `锝憋奖锝盽; DROP TABLE IF EXISTS `锝诧讲锝瞏; diff --git a/mysql-test/suite/jp/t/jp_charlength_sjis.test b/mysql-test/suite/jp/t/jp_charlength_sjis.test index 5f3543bb7a6..350605450da 100644 --- a/mysql-test/suite/jp/t/jp_charlength_sjis.test +++ b/mysql-test/suite/jp/t/jp_charlength_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_charlength_ucs2.test b/mysql-test/suite/jp/t/jp_charlength_ucs2.test index 2db9db7cfc6..714ced47ff8 100644 --- a/mysql-test/suite/jp/t/jp_charlength_ucs2.test +++ b/mysql-test/suite/jp/t/jp_charlength_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_charlength_ujis.test b/mysql-test/suite/jp/t/jp_charlength_ujis.test index 08973231f27..923bffef540 100644 --- a/mysql-test/suite/jp/t/jp_charlength_ujis.test +++ b/mysql-test/suite/jp/t/jp_charlength_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_charlength_utf8.test b/mysql-test/suite/jp/t/jp_charlength_utf8.test index a3f74db27ee..bc099caf74a 100644 --- a/mysql-test/suite/jp/t/jp_charlength_utf8.test +++ b/mysql-test/suite/jp/t/jp_charlength_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_charset_sjis.test b/mysql-test/suite/jp/t/jp_charset_sjis.test index 3a9f264bdfe..276be86cd9d 100644 --- a/mysql-test/suite/jp/t/jp_charset_sjis.test +++ b/mysql-test/suite/jp/t/jp_charset_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_charset_ucs2.test b/mysql-test/suite/jp/t/jp_charset_ucs2.test index 5183071033b..f7971095fa6 100644 --- a/mysql-test/suite/jp/t/jp_charset_ucs2.test +++ b/mysql-test/suite/jp/t/jp_charset_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_charset_ujis.test b/mysql-test/suite/jp/t/jp_charset_ujis.test index de9ef318530..a8a6544537a 100644 --- a/mysql-test/suite/jp/t/jp_charset_ujis.test +++ b/mysql-test/suite/jp/t/jp_charset_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_charset_utf8.test b/mysql-test/suite/jp/t/jp_charset_utf8.test index 2d73daba42a..7d8311c2f72 100644 --- a/mysql-test/suite/jp/t/jp_charset_utf8.test +++ b/mysql-test/suite/jp/t/jp_charset_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_convert_sjis.test b/mysql-test/suite/jp/t/jp_convert_sjis.test index 93fa33029bf..835328c92eb 100644 --- a/mysql-test/suite/jp/t/jp_convert_sjis.test +++ b/mysql-test/suite/jp/t/jp_convert_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis SET NAMES sjis; SET character_set_database = sjis; diff --git a/mysql-test/suite/jp/t/jp_convert_ucs2.test b/mysql-test/suite/jp/t/jp_convert_ucs2.test index 88b0d0c9cba..3ed4efe158d 100644 --- a/mysql-test/suite/jp/t/jp_convert_ucs2.test +++ b/mysql-test/suite/jp/t/jp_convert_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_convert_ujis.test b/mysql-test/suite/jp/t/jp_convert_ujis.test index d6303b66f34..4409b6cad90 100644 --- a/mysql-test/suite/jp/t/jp_convert_ujis.test +++ b/mysql-test/suite/jp/t/jp_convert_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_convert_utf8.test b/mysql-test/suite/jp/t/jp_convert_utf8.test index a687b0f06cb..e7c180e72fc 100644 --- a/mysql-test/suite/jp/t/jp_convert_utf8.test +++ b/mysql-test/suite/jp/t/jp_convert_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_create_tbl_sjis.test b/mysql-test/suite/jp/t/jp_create_tbl_sjis.test index 45c0b24388b..93f3ac3c4a3 100644 --- a/mysql-test/suite/jp/t/jp_create_tbl_sjis.test +++ b/mysql-test/suite/jp/t/jp_create_tbl_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis SET NAMES sjis; SET character_set_database = sjis; diff --git a/mysql-test/suite/jp/t/jp_create_tbl_ucs2.test b/mysql-test/suite/jp/t/jp_create_tbl_ucs2.test index 519697e3530..553ef8a4dad 100644 --- a/mysql-test/suite/jp/t/jp_create_tbl_ucs2.test +++ b/mysql-test/suite/jp/t/jp_create_tbl_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_create_tbl_ujis.test b/mysql-test/suite/jp/t/jp_create_tbl_ujis.test index ac70facdce9..1106ddc1417 100644 --- a/mysql-test/suite/jp/t/jp_create_tbl_ujis.test +++ b/mysql-test/suite/jp/t/jp_create_tbl_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_create_tbl_utf8.test b/mysql-test/suite/jp/t/jp_create_tbl_utf8.test index 5c816eb169a..9b0ece77e34 100644 --- a/mysql-test/suite/jp/t/jp_create_tbl_utf8.test +++ b/mysql-test/suite/jp/t/jp_create_tbl_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings DROP TABLE IF EXISTS `锝憋奖锝盽; DROP TABLE IF EXISTS `锝诧讲锝瞏; diff --git a/mysql-test/suite/jp/t/jp_enum_sjis.test b/mysql-test/suite/jp/t/jp_enum_sjis.test index 2ea1bf320e0..c433e0bcac4 100644 --- a/mysql-test/suite/jp/t/jp_enum_sjis.test +++ b/mysql-test/suite/jp/t/jp_enum_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_enum_ucs2.test b/mysql-test/suite/jp/t/jp_enum_ucs2.test index 2239ebab478..79f5952cf97 100644 --- a/mysql-test/suite/jp/t/jp_enum_ucs2.test +++ b/mysql-test/suite/jp/t/jp_enum_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc # half-with kana is not handled correctly in 4.1 diff --git a/mysql-test/suite/jp/t/jp_enum_ujis.test b/mysql-test/suite/jp/t/jp_enum_ujis.test index da41165aad0..f48d176ec6b 100644 --- a/mysql-test/suite/jp/t/jp_enum_ujis.test +++ b/mysql-test/suite/jp/t/jp_enum_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_enum_utf8.test b/mysql-test/suite/jp/t/jp_enum_utf8.test index 4ce3576b604..64fe2129164 100644 --- a/mysql-test/suite/jp/t/jp_enum_utf8.test +++ b/mysql-test/suite/jp/t/jp_enum_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_insert_sjis.test b/mysql-test/suite/jp/t/jp_insert_sjis.test index 0266ad1eaca..a940eeb5782 100644 --- a/mysql-test/suite/jp/t/jp_insert_sjis.test +++ b/mysql-test/suite/jp/t/jp_insert_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_insert_ucs2.test b/mysql-test/suite/jp/t/jp_insert_ucs2.test index 9b0a02e57d8..443f6f1107b 100644 --- a/mysql-test/suite/jp/t/jp_insert_ucs2.test +++ b/mysql-test/suite/jp/t/jp_insert_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_insert_ujis.test b/mysql-test/suite/jp/t/jp_insert_ujis.test index 7b6d2838386..ab82db59326 100644 --- a/mysql-test/suite/jp/t/jp_insert_ujis.test +++ b/mysql-test/suite/jp/t/jp_insert_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_insert_utf8.test b/mysql-test/suite/jp/t/jp_insert_utf8.test index ef6acb90063..e8c41bab4ea 100644 --- a/mysql-test/suite/jp/t/jp_insert_utf8.test +++ b/mysql-test/suite/jp/t/jp_insert_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_instr_sjis.test b/mysql-test/suite/jp/t/jp_instr_sjis.test index c19b5f2b14c..83480ea0267 100644 --- a/mysql-test/suite/jp/t/jp_instr_sjis.test +++ b/mysql-test/suite/jp/t/jp_instr_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_instr_ucs2.test b/mysql-test/suite/jp/t/jp_instr_ucs2.test index b8f83961e90..7b442d09a3d 100644 --- a/mysql-test/suite/jp/t/jp_instr_ucs2.test +++ b/mysql-test/suite/jp/t/jp_instr_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_instr_ujis.test b/mysql-test/suite/jp/t/jp_instr_ujis.test index 696e1147372..d0373ba73ce 100644 --- a/mysql-test/suite/jp/t/jp_instr_ujis.test +++ b/mysql-test/suite/jp/t/jp_instr_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_instr_utf8.test b/mysql-test/suite/jp/t/jp_instr_utf8.test index b25b72bc8d0..c7491101872 100644 --- a/mysql-test/suite/jp/t/jp_instr_utf8.test +++ b/mysql-test/suite/jp/t/jp_instr_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_join_sjis.test b/mysql-test/suite/jp/t/jp_join_sjis.test index 30b23913929..77d1dc15c5c 100644 --- a/mysql-test/suite/jp/t/jp_join_sjis.test +++ b/mysql-test/suite/jp/t/jp_join_sjis.test @@ -1,3 +1,4 @@ +-- source include/have_innodb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_join_ucs2.test b/mysql-test/suite/jp/t/jp_join_ucs2.test index 27e49203dd2..276af80f7af 100644 --- a/mysql-test/suite/jp/t/jp_join_ucs2.test +++ b/mysql-test/suite/jp/t/jp_join_ucs2.test @@ -1,3 +1,4 @@ +-- source include/have_innodb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_join_ujis.test b/mysql-test/suite/jp/t/jp_join_ujis.test index 079f260cc26..5716ee12e60 100644 --- a/mysql-test/suite/jp/t/jp_join_ujis.test +++ b/mysql-test/suite/jp/t/jp_join_ujis.test @@ -1,3 +1,4 @@ +-- source include/have_innodb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_join_utf8.test b/mysql-test/suite/jp/t/jp_join_utf8.test index 0b2f033f8bb..36f8e930bc3 100644 --- a/mysql-test/suite/jp/t/jp_join_utf8.test +++ b/mysql-test/suite/jp/t/jp_join_utf8.test @@ -1,3 +1,4 @@ +-- source include/have_innodb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_left_sjis.test b/mysql-test/suite/jp/t/jp_left_sjis.test index 5d69d9892e2..e93e92493a1 100644 --- a/mysql-test/suite/jp/t/jp_left_sjis.test +++ b/mysql-test/suite/jp/t/jp_left_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_left_ucs2.test b/mysql-test/suite/jp/t/jp_left_ucs2.test index 59d10b7d736..2c1be4a7e6a 100644 --- a/mysql-test/suite/jp/t/jp_left_ucs2.test +++ b/mysql-test/suite/jp/t/jp_left_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_left_ujis.test b/mysql-test/suite/jp/t/jp_left_ujis.test index 718639cd8a4..f639bf643df 100644 --- a/mysql-test/suite/jp/t/jp_left_ujis.test +++ b/mysql-test/suite/jp/t/jp_left_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_left_utf8.test b/mysql-test/suite/jp/t/jp_left_utf8.test index f9c99718e0f..63d9061a879 100644 --- a/mysql-test/suite/jp/t/jp_left_utf8.test +++ b/mysql-test/suite/jp/t/jp_left_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_length_sjis.test b/mysql-test/suite/jp/t/jp_length_sjis.test index 7023891b7f0..81121a4432e 100644 --- a/mysql-test/suite/jp/t/jp_length_sjis.test +++ b/mysql-test/suite/jp/t/jp_length_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_length_ucs2.test b/mysql-test/suite/jp/t/jp_length_ucs2.test index 9951c9b6cd1..1dcc975d868 100644 --- a/mysql-test/suite/jp/t/jp_length_ucs2.test +++ b/mysql-test/suite/jp/t/jp_length_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_length_ujis.test b/mysql-test/suite/jp/t/jp_length_ujis.test index ac3aef2c768..ad41c7a7113 100644 --- a/mysql-test/suite/jp/t/jp_length_ujis.test +++ b/mysql-test/suite/jp/t/jp_length_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_length_utf8.test b/mysql-test/suite/jp/t/jp_length_utf8.test index 5c5021f37be..7bfe1896034 100644 --- a/mysql-test/suite/jp/t/jp_length_utf8.test +++ b/mysql-test/suite/jp/t/jp_length_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_like_sjis.test b/mysql-test/suite/jp/t/jp_like_sjis.test index 5c41b9ff7ef..1cb7aadb876 100644 --- a/mysql-test/suite/jp/t/jp_like_sjis.test +++ b/mysql-test/suite/jp/t/jp_like_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_like_ucs2.test b/mysql-test/suite/jp/t/jp_like_ucs2.test index feae40de49e..1f9b7c09b9d 100644 --- a/mysql-test/suite/jp/t/jp_like_ucs2.test +++ b/mysql-test/suite/jp/t/jp_like_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_like_ujis.test b/mysql-test/suite/jp/t/jp_like_ujis.test index 29ef7c5d48b..56c4fa8a8b0 100644 --- a/mysql-test/suite/jp/t/jp_like_ujis.test +++ b/mysql-test/suite/jp/t/jp_like_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_like_utf8.test b/mysql-test/suite/jp/t/jp_like_utf8.test index 4247242029d..f6cc895d814 100644 --- a/mysql-test/suite/jp/t/jp_like_utf8.test +++ b/mysql-test/suite/jp/t/jp_like_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_locate_sjis.test b/mysql-test/suite/jp/t/jp_locate_sjis.test index 92c671199b6..a015109e2a3 100644 --- a/mysql-test/suite/jp/t/jp_locate_sjis.test +++ b/mysql-test/suite/jp/t/jp_locate_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_locate_ucs2.test b/mysql-test/suite/jp/t/jp_locate_ucs2.test index d00ad67235a..111caefb02e 100644 --- a/mysql-test/suite/jp/t/jp_locate_ucs2.test +++ b/mysql-test/suite/jp/t/jp_locate_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_locate_ujis.test b/mysql-test/suite/jp/t/jp_locate_ujis.test index 5375fad75db..872555a4532 100644 --- a/mysql-test/suite/jp/t/jp_locate_ujis.test +++ b/mysql-test/suite/jp/t/jp_locate_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_locate_utf8.test b/mysql-test/suite/jp/t/jp_locate_utf8.test index cbf6714e322..85d2e69fd60 100644 --- a/mysql-test/suite/jp/t/jp_locate_utf8.test +++ b/mysql-test/suite/jp/t/jp_locate_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_lpad_sjis.test b/mysql-test/suite/jp/t/jp_lpad_sjis.test index 7038112cbc8..4b18402473d 100644 --- a/mysql-test/suite/jp/t/jp_lpad_sjis.test +++ b/mysql-test/suite/jp/t/jp_lpad_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_lpad_ucs2.test b/mysql-test/suite/jp/t/jp_lpad_ucs2.test index e3bead0855a..95dd088abce 100644 --- a/mysql-test/suite/jp/t/jp_lpad_ucs2.test +++ b/mysql-test/suite/jp/t/jp_lpad_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_lpad_ujis.test b/mysql-test/suite/jp/t/jp_lpad_ujis.test index eea4877ec3a..c1149a67207 100644 --- a/mysql-test/suite/jp/t/jp_lpad_ujis.test +++ b/mysql-test/suite/jp/t/jp_lpad_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_lpad_utf8.test b/mysql-test/suite/jp/t/jp_lpad_utf8.test index 599bf5eba28..42aa2fd860b 100644 --- a/mysql-test/suite/jp/t/jp_lpad_utf8.test +++ b/mysql-test/suite/jp/t/jp_lpad_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_ltrim_sjis.test b/mysql-test/suite/jp/t/jp_ltrim_sjis.test index 864238df07c..7b5e20ec9a4 100644 --- a/mysql-test/suite/jp/t/jp_ltrim_sjis.test +++ b/mysql-test/suite/jp/t/jp_ltrim_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_ltrim_ucs2.test b/mysql-test/suite/jp/t/jp_ltrim_ucs2.test index 0ae647f5222..25a6eaabc60 100644 --- a/mysql-test/suite/jp/t/jp_ltrim_ucs2.test +++ b/mysql-test/suite/jp/t/jp_ltrim_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_ltrim_ujis.test b/mysql-test/suite/jp/t/jp_ltrim_ujis.test index 64363aa330b..fbba90a38b5 100644 --- a/mysql-test/suite/jp/t/jp_ltrim_ujis.test +++ b/mysql-test/suite/jp/t/jp_ltrim_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_ltrim_utf8.test b/mysql-test/suite/jp/t/jp_ltrim_utf8.test index 846ce11163b..b33d22e459d 100644 --- a/mysql-test/suite/jp/t/jp_ltrim_utf8.test +++ b/mysql-test/suite/jp/t/jp_ltrim_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_ps_sjis.test b/mysql-test/suite/jp/t/jp_ps_sjis.test index cc93dca2a79..2e09c51cf7a 100644 --- a/mysql-test/suite/jp/t/jp_ps_sjis.test +++ b/mysql-test/suite/jp/t/jp_ps_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings DROP TABLE IF EXISTS t1; diff --git a/mysql-test/suite/jp/t/jp_ps_ujis.test b/mysql-test/suite/jp/t/jp_ps_ujis.test index 7d61c12e496..ab64fcf5216 100644 --- a/mysql-test/suite/jp/t/jp_ps_ujis.test +++ b/mysql-test/suite/jp/t/jp_ps_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_replace_sjis.test b/mysql-test/suite/jp/t/jp_replace_sjis.test index 811d3350a34..91996ba83e9 100644 --- a/mysql-test/suite/jp/t/jp_replace_sjis.test +++ b/mysql-test/suite/jp/t/jp_replace_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_replace_ucs2.test b/mysql-test/suite/jp/t/jp_replace_ucs2.test index 7739a30cd9c..3043115ef62 100644 --- a/mysql-test/suite/jp/t/jp_replace_ucs2.test +++ b/mysql-test/suite/jp/t/jp_replace_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_replace_ujis.test b/mysql-test/suite/jp/t/jp_replace_ujis.test index 3d8724e63d5..1ba29426010 100644 --- a/mysql-test/suite/jp/t/jp_replace_ujis.test +++ b/mysql-test/suite/jp/t/jp_replace_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_replace_utf8.test b/mysql-test/suite/jp/t/jp_replace_utf8.test index 1d89a43648b..81b892a5df7 100644 --- a/mysql-test/suite/jp/t/jp_replace_utf8.test +++ b/mysql-test/suite/jp/t/jp_replace_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_reverse_sjis.test b/mysql-test/suite/jp/t/jp_reverse_sjis.test index c1e2b2a17ca..5d9014dc3a6 100644 --- a/mysql-test/suite/jp/t/jp_reverse_sjis.test +++ b/mysql-test/suite/jp/t/jp_reverse_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_reverse_ucs2.test b/mysql-test/suite/jp/t/jp_reverse_ucs2.test index d91ec7f70e8..95afeeda570 100644 --- a/mysql-test/suite/jp/t/jp_reverse_ucs2.test +++ b/mysql-test/suite/jp/t/jp_reverse_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_reverse_ujis.test b/mysql-test/suite/jp/t/jp_reverse_ujis.test index d37d363f59a..0d66201c367 100644 --- a/mysql-test/suite/jp/t/jp_reverse_ujis.test +++ b/mysql-test/suite/jp/t/jp_reverse_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_reverse_utf8.test b/mysql-test/suite/jp/t/jp_reverse_utf8.test index 4e53d4be049..ee323b64ada 100644 --- a/mysql-test/suite/jp/t/jp_reverse_utf8.test +++ b/mysql-test/suite/jp/t/jp_reverse_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_right_sjis.test b/mysql-test/suite/jp/t/jp_right_sjis.test index f481ec532ec..edf3795c510 100644 --- a/mysql-test/suite/jp/t/jp_right_sjis.test +++ b/mysql-test/suite/jp/t/jp_right_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_right_ucs2.test b/mysql-test/suite/jp/t/jp_right_ucs2.test index 23ca2fa4fae..d3132b3e11f 100644 --- a/mysql-test/suite/jp/t/jp_right_ucs2.test +++ b/mysql-test/suite/jp/t/jp_right_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_right_ujis.test b/mysql-test/suite/jp/t/jp_right_ujis.test index b5284489c7e..92cd7ed83dc 100644 --- a/mysql-test/suite/jp/t/jp_right_ujis.test +++ b/mysql-test/suite/jp/t/jp_right_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_right_utf8.test b/mysql-test/suite/jp/t/jp_right_utf8.test index 863755c1dcf..6d884e55771 100644 --- a/mysql-test/suite/jp/t/jp_right_utf8.test +++ b/mysql-test/suite/jp/t/jp_right_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_rpad_sjis.test b/mysql-test/suite/jp/t/jp_rpad_sjis.test index cc008631548..1bf752020bb 100644 --- a/mysql-test/suite/jp/t/jp_rpad_sjis.test +++ b/mysql-test/suite/jp/t/jp_rpad_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_rpad_ucs2.test b/mysql-test/suite/jp/t/jp_rpad_ucs2.test index ca5059497d3..f3876dafe2f 100644 --- a/mysql-test/suite/jp/t/jp_rpad_ucs2.test +++ b/mysql-test/suite/jp/t/jp_rpad_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_rpad_ujis.test b/mysql-test/suite/jp/t/jp_rpad_ujis.test index d7725b80af7..6ace7442b8d 100644 --- a/mysql-test/suite/jp/t/jp_rpad_ujis.test +++ b/mysql-test/suite/jp/t/jp_rpad_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_rpad_utf8.test b/mysql-test/suite/jp/t/jp_rpad_utf8.test index b5a335bc6ce..6c075e20cb9 100644 --- a/mysql-test/suite/jp/t/jp_rpad_utf8.test +++ b/mysql-test/suite/jp/t/jp_rpad_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_rtrim_sjis.test b/mysql-test/suite/jp/t/jp_rtrim_sjis.test index c80cf9410f9..1a9511698ce 100644 --- a/mysql-test/suite/jp/t/jp_rtrim_sjis.test +++ b/mysql-test/suite/jp/t/jp_rtrim_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_rtrim_ucs2.test b/mysql-test/suite/jp/t/jp_rtrim_ucs2.test index 0fac38d12d1..2132eaa5cbe 100644 --- a/mysql-test/suite/jp/t/jp_rtrim_ucs2.test +++ b/mysql-test/suite/jp/t/jp_rtrim_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_rtrim_ujis.test b/mysql-test/suite/jp/t/jp_rtrim_ujis.test index 46cda84dd55..07b42b96dfd 100644 --- a/mysql-test/suite/jp/t/jp_rtrim_ujis.test +++ b/mysql-test/suite/jp/t/jp_rtrim_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_rtrim_utf8.test b/mysql-test/suite/jp/t/jp_rtrim_utf8.test index 4880a42db3e..48f863d891c 100644 --- a/mysql-test/suite/jp/t/jp_rtrim_utf8.test +++ b/mysql-test/suite/jp/t/jp_rtrim_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_select_sjis.test b/mysql-test/suite/jp/t/jp_select_sjis.test index d84ed7a4b2c..fc80ce01471 100644 --- a/mysql-test/suite/jp/t/jp_select_sjis.test +++ b/mysql-test/suite/jp/t/jp_select_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_select_ucs2.test b/mysql-test/suite/jp/t/jp_select_ucs2.test index 2e4602e7ea4..6cebdb65db1 100644 --- a/mysql-test/suite/jp/t/jp_select_ucs2.test +++ b/mysql-test/suite/jp/t/jp_select_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_select_ujis.test b/mysql-test/suite/jp/t/jp_select_ujis.test index 4ad9e581a92..0e4d1ffc771 100644 --- a/mysql-test/suite/jp/t/jp_select_ujis.test +++ b/mysql-test/suite/jp/t/jp_select_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_select_utf8.test b/mysql-test/suite/jp/t/jp_select_utf8.test index e614b9ccfb0..88fd6677f7c 100644 --- a/mysql-test/suite/jp/t/jp_select_utf8.test +++ b/mysql-test/suite/jp/t/jp_select_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_subquery_sjis.test b/mysql-test/suite/jp/t/jp_subquery_sjis.test index 5292c7a2519..b6aa3e52f51 100644 --- a/mysql-test/suite/jp/t/jp_subquery_sjis.test +++ b/mysql-test/suite/jp/t/jp_subquery_sjis.test @@ -1,3 +1,4 @@ +-- source include/have_innodb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_subquery_ucs2.test b/mysql-test/suite/jp/t/jp_subquery_ucs2.test index 311433438f4..d2c1fd29358 100644 --- a/mysql-test/suite/jp/t/jp_subquery_ucs2.test +++ b/mysql-test/suite/jp/t/jp_subquery_ucs2.test @@ -1,3 +1,4 @@ +-- source include/have_innodb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_subquery_ujis.test b/mysql-test/suite/jp/t/jp_subquery_ujis.test index 67c9f00fd85..2fd0427481c 100644 --- a/mysql-test/suite/jp/t/jp_subquery_ujis.test +++ b/mysql-test/suite/jp/t/jp_subquery_ujis.test @@ -1,3 +1,4 @@ +-- source include/have_innodb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_subquery_utf8.test b/mysql-test/suite/jp/t/jp_subquery_utf8.test index 97c2df8ce30..460f1c1a903 100644 --- a/mysql-test/suite/jp/t/jp_subquery_utf8.test +++ b/mysql-test/suite/jp/t/jp_subquery_utf8.test @@ -1,3 +1,4 @@ +-- source include/have_innodb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_substring_sjis.test b/mysql-test/suite/jp/t/jp_substring_sjis.test index ac929114880..a6c9496a873 100644 --- a/mysql-test/suite/jp/t/jp_substring_sjis.test +++ b/mysql-test/suite/jp/t/jp_substring_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_substring_ucs2.test b/mysql-test/suite/jp/t/jp_substring_ucs2.test index f3cd5550072..71c0f903aa8 100644 --- a/mysql-test/suite/jp/t/jp_substring_ucs2.test +++ b/mysql-test/suite/jp/t/jp_substring_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_substring_ujis.test b/mysql-test/suite/jp/t/jp_substring_ujis.test index c201c7148da..c93ab761352 100644 --- a/mysql-test/suite/jp/t/jp_substring_ujis.test +++ b/mysql-test/suite/jp/t/jp_substring_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_substring_utf8.test b/mysql-test/suite/jp/t/jp_substring_utf8.test index 9f88115c899..3bd1bbbb491 100644 --- a/mysql-test/suite/jp/t/jp_substring_utf8.test +++ b/mysql-test/suite/jp/t/jp_substring_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_trim_sjis.test b/mysql-test/suite/jp/t/jp_trim_sjis.test index 0f6821605ed..04dc832d49f 100644 --- a/mysql-test/suite/jp/t/jp_trim_sjis.test +++ b/mysql-test/suite/jp/t/jp_trim_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_trim_ucs2.test b/mysql-test/suite/jp/t/jp_trim_ucs2.test index 1d8a12650e0..7c82c249dcc 100644 --- a/mysql-test/suite/jp/t/jp_trim_ucs2.test +++ b/mysql-test/suite/jp/t/jp_trim_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_trim_ujis.test b/mysql-test/suite/jp/t/jp_trim_ujis.test index de401217fcf..bcd9942f0ae 100644 --- a/mysql-test/suite/jp/t/jp_trim_ujis.test +++ b/mysql-test/suite/jp/t/jp_trim_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_trim_utf8.test b/mysql-test/suite/jp/t/jp_trim_utf8.test index 0777de15c36..f6f487254bc 100644 --- a/mysql-test/suite/jp/t/jp_trim_utf8.test +++ b/mysql-test/suite/jp/t/jp_trim_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_union_ujis.test b/mysql-test/suite/jp/t/jp_union_ujis.test index e36d18c85c0..c1252b9f5a2 100644 --- a/mysql-test/suite/jp/t/jp_union_ujis.test +++ b/mysql-test/suite/jp/t/jp_union_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_update_sjis.test b/mysql-test/suite/jp/t/jp_update_sjis.test index 0dc7372ae92..4b3733cff76 100644 --- a/mysql-test/suite/jp/t/jp_update_sjis.test +++ b/mysql-test/suite/jp/t/jp_update_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_update_ucs2.test b/mysql-test/suite/jp/t/jp_update_ucs2.test index 7a3c1233210..6ad7db9c5a0 100644 --- a/mysql-test/suite/jp/t/jp_update_ucs2.test +++ b/mysql-test/suite/jp/t/jp_update_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_update_ujis.test b/mysql-test/suite/jp/t/jp_update_ujis.test index 852e45b9eeb..14ca6580f04 100644 --- a/mysql-test/suite/jp/t/jp_update_ujis.test +++ b/mysql-test/suite/jp/t/jp_update_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_update_utf8.test b/mysql-test/suite/jp/t/jp_update_utf8.test index b4b3d18ecab..135f6e6981c 100644 --- a/mysql-test/suite/jp/t/jp_update_utf8.test +++ b/mysql-test/suite/jp/t/jp_update_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; diff --git a/mysql-test/suite/jp/t/jp_where_sjis.test b/mysql-test/suite/jp/t/jp_where_sjis.test index 452d137f643..890a4c28f3c 100644 --- a/mysql-test/suite/jp/t/jp_where_sjis.test +++ b/mysql-test/suite/jp/t/jp_where_sjis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --character_set sjis --disable_warnings drop table if exists `俿侾`; diff --git a/mysql-test/suite/jp/t/jp_where_ucs2.test b/mysql-test/suite/jp/t/jp_where_ucs2.test index 3b82eacd615..7d90faaaa89 100644 --- a/mysql-test/suite/jp/t/jp_where_ucs2.test +++ b/mysql-test/suite/jp/t/jp_where_ucs2.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ucs2.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_where_ujis.test b/mysql-test/suite/jp/t/jp_where_ujis.test index e96404fbb17..2f0924e8c8e 100644 --- a/mysql-test/suite/jp/t/jp_where_ujis.test +++ b/mysql-test/suite/jp/t/jp_where_ujis.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --source include/have_ujis.inc --disable_warnings diff --git a/mysql-test/suite/jp/t/jp_where_utf8.test b/mysql-test/suite/jp/t/jp_where_utf8.test index 7280bc33f21..231553e8819 100644 --- a/mysql-test/suite/jp/t/jp_where_utf8.test +++ b/mysql-test/suite/jp/t/jp_where_utf8.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc +-- source include/have_bdb.inc --disable_warnings drop table if exists `锛达紤`; drop table if exists `锛达紥`; -- cgit v1.2.1 From 3228a2be669f5d92a607b8212c9c3260a02fd47f Mon Sep 17 00:00:00 2001 From: Sergey Vojtovich Date: Wed, 9 Sep 2009 14:38:50 +0500 Subject: BUG#45638 - Create temporary table with engine innodb fails Create temporary InnoDB table fails on case insensitive filesystems, when lower_case_table_names is 2 (e.g. OS X) and temporary directory path contains upper case letters. The problem was that tmpdir prefix was converted to lower case when table was created, but was passed as is when table was opened. Fixed by leaving tmpdir prefix part intact. mysql-test/r/lowercase_mixed_tmpdir_innodb.result: A test case for BUG#45638. mysql-test/t/lowercase_mixed_tmpdir_innodb-master.opt: A test case for BUG#45638. mysql-test/t/lowercase_mixed_tmpdir_innodb-master.sh: A test case for BUG#45638. mysql-test/t/lowercase_mixed_tmpdir_innodb.test: A test case for BUG#45638. sql/handler.cc: Fixed get_canonical_filename() to not lowercase filesystem path prefix for temporary tables. --- mysql-test/r/lowercase_mixed_tmpdir_innodb.result | 6 +++++ .../t/lowercase_mixed_tmpdir_innodb-master.opt | 2 ++ .../t/lowercase_mixed_tmpdir_innodb-master.sh | 6 +++++ mysql-test/t/lowercase_mixed_tmpdir_innodb.test | 12 +++++++++ sql/handler.cc | 30 ++++++++++++++++++++++ 5 files changed, 56 insertions(+) create mode 100755 mysql-test/r/lowercase_mixed_tmpdir_innodb.result create mode 100644 mysql-test/t/lowercase_mixed_tmpdir_innodb-master.opt create mode 100644 mysql-test/t/lowercase_mixed_tmpdir_innodb-master.sh create mode 100644 mysql-test/t/lowercase_mixed_tmpdir_innodb.test diff --git a/mysql-test/r/lowercase_mixed_tmpdir_innodb.result b/mysql-test/r/lowercase_mixed_tmpdir_innodb.result new file mode 100755 index 00000000000..a478b49cfda --- /dev/null +++ b/mysql-test/r/lowercase_mixed_tmpdir_innodb.result @@ -0,0 +1,6 @@ +drop table if exists t1; +create table t1 (id int) engine=InnoDB; +insert into t1 values (1); +create temporary table t2 engine=InnoDB select * from t1; +drop temporary table t2; +drop table t1; diff --git a/mysql-test/t/lowercase_mixed_tmpdir_innodb-master.opt b/mysql-test/t/lowercase_mixed_tmpdir_innodb-master.opt new file mode 100644 index 00000000000..272f91d629c --- /dev/null +++ b/mysql-test/t/lowercase_mixed_tmpdir_innodb-master.opt @@ -0,0 +1,2 @@ +--lower-case-table-names=2 +--tmpdir=$MYSQLTEST_VARDIR/tmp/MixedCase diff --git a/mysql-test/t/lowercase_mixed_tmpdir_innodb-master.sh b/mysql-test/t/lowercase_mixed_tmpdir_innodb-master.sh new file mode 100644 index 00000000000..95c26e3aa02 --- /dev/null +++ b/mysql-test/t/lowercase_mixed_tmpdir_innodb-master.sh @@ -0,0 +1,6 @@ +# This test requires a non-lowercase tmpdir directory on a case-sensitive +# filesystem. + +d="$MYSQLTEST_VARDIR/tmp/MixedCase" +test -d "$d" || mkdir "$d" +rm -f "$d"/* diff --git a/mysql-test/t/lowercase_mixed_tmpdir_innodb.test b/mysql-test/t/lowercase_mixed_tmpdir_innodb.test new file mode 100644 index 00000000000..e3b9b7b2a32 --- /dev/null +++ b/mysql-test/t/lowercase_mixed_tmpdir_innodb.test @@ -0,0 +1,12 @@ +--source include/have_lowercase2.inc +--source include/have_innodb.inc + +--disable_warnings +drop table if exists t1; +--enable_warnings + +create table t1 (id int) engine=InnoDB; +insert into t1 values (1); +create temporary table t2 engine=InnoDB select * from t1; +drop temporary table t2; +drop table t1; diff --git a/sql/handler.cc b/sql/handler.cc index e5c64452aaf..a4d88e84f4c 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -1885,12 +1885,42 @@ bool ha_flush_logs(handlerton *db_type) return FALSE; } + +/** + @brief make canonical filename + + @param[in] file table handler + @param[in] path original path + @param[out] tmp_path buffer for canonized path + + @details Lower case db name and table name path parts for + non file based tables when lower_case_table_names + is 2 (store as is, compare in lower case). + Filesystem path prefix (mysql_data_home or tmpdir) + is left intact. + + @note tmp_path may be left intact if no conversion was + performed. + + @retval canonized path + + @todo This may be done more efficiently when table path + gets built. Convert this function to something like + ASSERT_CANONICAL_FILENAME. +*/ const char *get_canonical_filename(handler *file, const char *path, char *tmp_path) { + uint i; if (lower_case_table_names != 2 || (file->ha_table_flags() & HA_FILE_BASED)) return path; + for (i= 0; i <= mysql_tmpdir_list.max; i++) + { + if (is_prefix(path, mysql_tmpdir_list.list[i])) + return path; + } + /* Ensure that table handler get path in lower case */ if (tmp_path != path) strmov(tmp_path, path); -- cgit v1.2.1 From 04ed3c9d94de3f426c97c7f193dbcfdd73886206 Mon Sep 17 00:00:00 2001 From: Sergey Vojtovich Date: Wed, 9 Sep 2009 14:42:12 +0500 Subject: BUG#29203 - archive tables have weird values in show table status Archive engine returns wrong values for average record length and max data length. With this fix they're calculated as following: - max data length is 2 ^ 63 where large files are supported and INT_MAX32 where this is not supported; - average record length is data length / records in data file. mysql-test/r/archive.result: A test case for BUG#29203. mysql-test/t/archive.test: A test case for BUG#29203. storage/archive/ha_archive.cc: Better estimation for average row length and maximal data file length. --- mysql-test/r/archive.result | 11 +++++++++++ mysql-test/t/archive.test | 11 +++++++++++ storage/archive/ha_archive.cc | 5 +++-- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/archive.result b/mysql-test/r/archive.result index 8c26ea1ff82..3271e2f46d4 100644 --- a/mysql-test/r/archive.result +++ b/mysql-test/r/archive.result @@ -12695,3 +12695,14 @@ a b 1 NULL 2 NULL DROP TABLE t1; +CREATE TABLE t1(a INT, b BLOB) ENGINE=archive; +SELECT DATA_LENGTH, AVG_ROW_LENGTH FROM +INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test'; +DATA_LENGTH AVG_ROW_LENGTH +8666 15 +INSERT INTO t1 VALUES(1, 'sampleblob1'),(2, 'sampleblob2'); +SELECT DATA_LENGTH, AVG_ROW_LENGTH FROM +INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test'; +DATA_LENGTH AVG_ROW_LENGTH +8700 4350 +DROP TABLE t1; diff --git a/mysql-test/t/archive.test b/mysql-test/t/archive.test index 7139d95ab49..afb8e413b2c 100644 --- a/mysql-test/t/archive.test +++ b/mysql-test/t/archive.test @@ -1599,3 +1599,14 @@ INSERT INTO t1 VALUES (NULL, NULL),(NULL, NULL); FLUSH TABLE t1; SELECT * FROM t1 ORDER BY a; DROP TABLE t1; + +# +# BUG#29203 - archive tables have weird values in show table status +# +CREATE TABLE t1(a INT, b BLOB) ENGINE=archive; +SELECT DATA_LENGTH, AVG_ROW_LENGTH FROM + INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test'; +INSERT INTO t1 VALUES(1, 'sampleblob1'),(2, 'sampleblob2'); +SELECT DATA_LENGTH, AVG_ROW_LENGTH FROM + INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test'; +DROP TABLE t1; diff --git a/storage/archive/ha_archive.cc b/storage/archive/ha_archive.cc index 1146b2eb73a..49bf036c5a6 100644 --- a/storage/archive/ha_archive.cc +++ b/storage/archive/ha_archive.cc @@ -1472,11 +1472,12 @@ int ha_archive::info(uint flag) VOID(my_stat(share->data_file_name, &file_stat, MYF(MY_WME))); - stats.mean_rec_length= table->s->reclength + buffer.alloced_length(); stats.data_file_length= file_stat.st_size; stats.create_time= (ulong) file_stat.st_ctime; stats.update_time= (ulong) file_stat.st_mtime; - stats.max_data_file_length= share->rows_recorded * stats.mean_rec_length; + stats.mean_rec_length= stats.records ? + stats.data_file_length / stats.records : table->s->reclength; + stats.max_data_file_length= MAX_FILE_SIZE; } stats.delete_length= 0; stats.index_file_length=0; -- cgit v1.2.1 From 70972926ab8970267fa8e3f06086282c4b9e747d Mon Sep 17 00:00:00 2001 From: Alexander Nozdrin Date: Thu, 10 Sep 2009 11:40:57 +0400 Subject: A patch for Bug#45118 (mysqld.exe crashed in debug mode on Windows in dbug.c) -- part 2: a patch for the DBUG subsystem to detect misuse of DBUG_ENTER / DBUG_RETURN macros. 5.1 version. --- client/mysqltest.cc | 7 ++- include/my_dbug.h | 51 +++++++++++++++-- sql/mysqld.cc | 4 +- sql/rpl_filter.cc | 2 + sql/set_var.cc | 1 + sql/sql_insert.cc | 85 ++++++++++++++++------------- sql/sql_parse.cc | 49 ++++++++++------- storage/ndb/src/kernel/blocks/suma/Suma.cpp | 18 +++--- 8 files changed, 144 insertions(+), 73 deletions(-) diff --git a/client/mysqltest.cc b/client/mysqltest.cc index b9535ba6b05..af2749e3191 100644 --- a/client/mysqltest.cc +++ b/client/mysqltest.cc @@ -1165,6 +1165,7 @@ void free_used_memory() mysql_server_end(); /* Don't use DBUG after mysql_server_end() */ + DBUG_VIOLATION_HELPER_LEAVE; return; } @@ -2487,7 +2488,7 @@ void do_source(struct st_command *command) } dynstr_free(&ds_filename); - return; + DBUG_VOID_RETURN; } @@ -7507,6 +7508,8 @@ static void init_signal_handling(void) #endif sigaction(SIGILL, &sa, NULL); sigaction(SIGFPE, &sa, NULL); + + DBUG_VOID_RETURN; } #endif /* !__WIN__ */ @@ -8121,6 +8124,8 @@ void do_get_replace_column(struct st_command *command) } my_free(start, MYF(0)); command->last_argument= command->end; + + DBUG_VOID_RETURN; } diff --git a/include/my_dbug.h b/include/my_dbug.h index a77e439b5db..71dc34791dc 100644 --- a/include/my_dbug.h +++ b/include/my_dbug.h @@ -16,6 +16,29 @@ #ifndef _dbug_h #define _dbug_h +#if defined(__cplusplus) && !defined(DBUG_OFF) +class Dbug_violation_helper +{ +public: + inline Dbug_violation_helper() : + _entered(TRUE) + { } + + inline ~Dbug_violation_helper() + { + assert(!_entered); + } + + inline void leave() + { + _entered= FALSE; + } + +private: + bool _entered; +}; +#endif /* C++ */ + #ifdef __cplusplus extern "C" { #endif @@ -47,11 +70,31 @@ extern void _db_lock_file_(void); extern void _db_unlock_file_(void); extern FILE *_db_fp_(void); -#define DBUG_ENTER(a) const char *_db_func_, *_db_file_; uint _db_level_; \ - char **_db_framep_; \ - _db_enter_ (a,__FILE__,__LINE__,&_db_func_,&_db_file_,&_db_level_, \ - &_db_framep_) +#ifdef __cplusplus + +#define DBUG_ENTER(a) \ + const char *_db_func_, *_db_file_; \ + uint _db_level_; \ + char **_db_framep_; \ + Dbug_violation_helper dbug_violation_helper; \ + _db_enter_ (a, __FILE__, __LINE__, &_db_func_, &_db_file_, \ + &_db_level_, &_db_framep_) +#define DBUG_VIOLATION_HELPER_LEAVE dbug_violation_helper.leave() + +#else /* C */ + +#define DBUG_ENTER(a) \ + const char *_db_func_, *_db_file_; \ + uint _db_level_; \ + char **_db_framep_; \ + _db_enter_ (a, __FILE__, __LINE__, &_db_func_, &_db_file_, \ + &_db_level_, &_db_framep_) +#define DBUG_VIOLATION_HELPER_LEAVE do { } while(0) + +#endif /* C++ */ + #define DBUG_LEAVE \ + DBUG_VIOLATION_HELPER_LEAVE; \ _db_return_ (__LINE__, &_db_func_, &_db_file_, &_db_level_) #define DBUG_RETURN(a1) do {DBUG_LEAVE; return(a1);} while(0) #define DBUG_VOID_RETURN do {DBUG_LEAVE; return;} while(0) diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 3e2f8eabd39..3f536f01094 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -4789,10 +4789,10 @@ static bool read_init_file(char *file_name) DBUG_ENTER("read_init_file"); DBUG_PRINT("enter",("name: %s",file_name)); if (!(file=my_fopen(file_name,O_RDONLY,MYF(MY_WME)))) - return(1); + DBUG_RETURN(TRUE); bootstrap(file); (void) my_fclose(file,MYF(MY_WME)); - return 0; + DBUG_RETURN(FALSE); } diff --git a/sql/rpl_filter.cc b/sql/rpl_filter.cc index 3004a3905e5..68272c58bb1 100644 --- a/sql/rpl_filter.cc +++ b/sql/rpl_filter.cc @@ -350,6 +350,7 @@ Rpl_filter::add_do_db(const char* table_spec) DBUG_ENTER("Rpl_filter::add_do_db"); i_string *db = new i_string(table_spec); do_db.push_back(db); + DBUG_VOID_RETURN; } @@ -359,6 +360,7 @@ Rpl_filter::add_ignore_db(const char* table_spec) DBUG_ENTER("Rpl_filter::add_ignore_db"); i_string *db = new i_string(table_spec); ignore_db.push_back(db); + DBUG_VOID_RETURN; } extern "C" uchar *get_table_key(const uchar *, size_t *, my_bool); diff --git a/sql/set_var.cc b/sql/set_var.cc index 0b89333ce03..b64b54fdd29 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -1238,6 +1238,7 @@ void fix_slave_exec_mode(enum_var_type type) } if (bit_is_set(slave_exec_mode_options, SLAVE_EXEC_MODE_IDEMPOTENT) == 0) bit_do_set(slave_exec_mode_options, SLAVE_EXEC_MODE_STRICT); + DBUG_VOID_RETURN; } diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index b79b9b1ae9e..3ac40ae825a 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -2274,44 +2274,9 @@ void kill_delayed_threads(void) } -/* - * Create a new delayed insert thread -*/ - -pthread_handler_t handle_delayed_insert(void *arg) +static void handle_delayed_insert_impl(THD *thd, Delayed_insert *di) { - Delayed_insert *di=(Delayed_insert*) arg; - THD *thd= &di->thd; - - pthread_detach_this_thread(); - /* Add thread to THD list so that's it's visible in 'show processlist' */ - pthread_mutex_lock(&LOCK_thread_count); - thd->thread_id= thd->variables.pseudo_thread_id= thread_id++; - thd->set_current_time(); - threads.append(thd); - thd->killed=abort_loop ? THD::KILL_CONNECTION : THD::NOT_KILLED; - pthread_mutex_unlock(&LOCK_thread_count); - - /* - Wait until the client runs into pthread_cond_wait(), - where we free it after the table is opened and di linked in the list. - If we did not wait here, the client might detect the opened table - before it is linked to the list. It would release LOCK_delayed_create - and allow another thread to create another handler for the same table, - since it does not find one in the list. - */ - pthread_mutex_lock(&di->mutex); -#if !defined( __WIN__) /* Win32 calls this in pthread_create */ - if (my_thread_init()) - { - /* Can't use my_error since store_globals has not yet been called */ - thd->main_da.set_error_status(thd, ER_OUT_OF_RESOURCES, - ER(ER_OUT_OF_RESOURCES)); - goto end; - } -#endif - - DBUG_ENTER("handle_delayed_insert"); + DBUG_ENTER("handle_delayed_insert_impl"); thd->thread_stack= (char*) &thd; if (init_thr_lock() || thd->store_globals()) { @@ -2500,6 +2465,49 @@ err: */ ha_autocommit_or_rollback(thd, 1); + DBUG_VOID_RETURN; +} + + +/* + * Create a new delayed insert thread +*/ + +pthread_handler_t handle_delayed_insert(void *arg) +{ + Delayed_insert *di=(Delayed_insert*) arg; + THD *thd= &di->thd; + + pthread_detach_this_thread(); + /* Add thread to THD list so that's it's visible in 'show processlist' */ + pthread_mutex_lock(&LOCK_thread_count); + thd->thread_id= thd->variables.pseudo_thread_id= thread_id++; + thd->set_current_time(); + threads.append(thd); + thd->killed=abort_loop ? THD::KILL_CONNECTION : THD::NOT_KILLED; + pthread_mutex_unlock(&LOCK_thread_count); + + /* + Wait until the client runs into pthread_cond_wait(), + where we free it after the table is opened and di linked in the list. + If we did not wait here, the client might detect the opened table + before it is linked to the list. It would release LOCK_delayed_create + and allow another thread to create another handler for the same table, + since it does not find one in the list. + */ + pthread_mutex_lock(&di->mutex); +#if !defined( __WIN__) /* Win32 calls this in pthread_create */ + if (my_thread_init()) + { + /* Can't use my_error since store_globals has not yet been called */ + thd->main_da.set_error_status(thd, ER_OUT_OF_RESOURCES, + ER(ER_OUT_OF_RESOURCES)); + goto end; + } +#endif + + handle_delayed_insert_impl(thd, di); + #ifndef __WIN__ end: #endif @@ -2523,7 +2531,8 @@ end: my_thread_end(); pthread_exit(0); - DBUG_RETURN(0); + + return 0; } diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index ca27d476213..a977740ebe2 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -408,29 +408,12 @@ void execute_init_command(THD *thd, sys_var_str *init_command_var, } -/** - Execute commands from bootstrap_file. - - Used when creating the initial grant tables. -*/ - -pthread_handler_t handle_bootstrap(void *arg) +static void handle_bootstrap_impl(THD *thd) { - THD *thd=(THD*) arg; FILE *file=bootstrap_file; char *buff; const char* found_semicolon= NULL; - /* The following must be called before DBUG_ENTER */ - thd->thread_stack= (char*) &thd; - if (my_thread_init() || thd->store_globals()) - { -#ifndef EMBEDDED_LIBRARY - close_connection(thd, ER_OUT_OF_RESOURCES, 1); -#endif - thd->fatal_error(); - goto end; - } DBUG_ENTER("handle_bootstrap"); #ifndef EMBEDDED_LIBRARY @@ -525,6 +508,33 @@ pthread_handler_t handle_bootstrap(void *arg) #endif } + DBUG_VOID_RETURN; +} + + +/** + Execute commands from bootstrap_file. + + Used when creating the initial grant tables. +*/ + +pthread_handler_t handle_bootstrap(void *arg) +{ + THD *thd=(THD*) arg; + + /* The following must be called before DBUG_ENTER */ + thd->thread_stack= (char*) &thd; + if (my_thread_init() || thd->store_globals()) + { +#ifndef EMBEDDED_LIBRARY + close_connection(thd, ER_OUT_OF_RESOURCES, 1); +#endif + thd->fatal_error(); + goto end; + } + + handle_bootstrap_impl(thd); + end: net_end(&thd->net); thd->cleanup(); @@ -539,7 +549,8 @@ end: my_thread_end(); pthread_exit(0); #endif - DBUG_RETURN(0); + + return 0; } diff --git a/storage/ndb/src/kernel/blocks/suma/Suma.cpp b/storage/ndb/src/kernel/blocks/suma/Suma.cpp index 5f0510cf43a..9179cf7fbbd 100644 --- a/storage/ndb/src/kernel/blocks/suma/Suma.cpp +++ b/storage/ndb/src/kernel/blocks/suma/Suma.cpp @@ -274,7 +274,7 @@ Suma::execSTTOR(Signal* signal) { jam(); send_start_me_req(signal); - return; + DBUG_VOID_RETURN; } } @@ -322,7 +322,7 @@ Suma::execSTTOR(Signal* signal) { if (ERROR_INSERTED(13030)) { ndbout_c("Dont start handover"); - return; + DBUG_VOID_RETURN; } }//if @@ -332,7 +332,7 @@ Suma::execSTTOR(Signal* signal) { * Allow API's to connect */ sendSTTORRY(signal); - return; + DBUG_VOID_RETURN; } if(startphase == 101) @@ -345,7 +345,7 @@ Suma::execSTTOR(Signal* signal) { */ c_startup.m_wait_handover= true; check_start_handover(signal); - return; + DBUG_VOID_RETURN; } } sendSTTORRY(signal); @@ -575,19 +575,19 @@ void Suma::execAPI_FAILREQ(Signal* signal) jam(); sendSignalWithDelay(reference(), GSN_API_FAILREQ, signal, 200, signal->getLength()); - return; + DBUG_VOID_RETURN; } if (c_failedApiNodes.get(failedApiNode)) { jam(); - return; + DBUG_VOID_RETURN; } if (!c_subscriber_nodes.get(failedApiNode)) { jam(); - return; + DBUG_VOID_RETURN; } c_failedApiNodes.set(failedApiNode); @@ -2453,7 +2453,7 @@ Suma::execSUB_START_REQ(Signal* signal){ jam(); c_subscriberPool.release(subbPtr); sendSubStartRef(signal, SubStartRef::PartiallyConnected); - return; + DBUG_VOID_RETURN; } DBUG_PRINT("info",("c_subscriberPool size: %d free: %d", @@ -4289,7 +4289,7 @@ Suma::Restart::runSUMA_START_ME_REQ(Signal* signal, Uint32 sumaRef) ref->errorCode = SumaStartMeRef::Busy; suma.sendSignal(sumaRef, GSN_SUMA_START_ME_REF, signal, SumaStartMeRef::SignalLength, JBB); - return; + DBUG_VOID_RETURN; } nodeId = refToNode(sumaRef); -- cgit v1.2.1 From 104d9ce76a68fd3da2f9217514a4c61454802c1d Mon Sep 17 00:00:00 2001 From: Sergey Glukhov Date: Thu, 10 Sep 2009 13:49:49 +0500 Subject: Bug#42364 SHOW ERRORS returns empty resultset after dropping non existent table partial backport of bug43138 fix mysql-test/r/warnings.result: test result mysql-test/t/warnings.test: test case sql/sql_class.cc: partial backport of bug43138 fix sql/sql_class.h: partial backport of bug43138 fix sql/sql_table.cc: partial backport of bug43138 fix --- mysql-test/r/warnings.result | 5 +++++ mysql-test/t/warnings.test | 7 +++++++ sql/sql_class.cc | 25 +++++++++++++++++++++++++ sql/sql_class.h | 25 +++++++++++++++++++++++++ sql/sql_table.cc | 8 ++++---- 5 files changed, 66 insertions(+), 4 deletions(-) diff --git a/mysql-test/r/warnings.result b/mysql-test/r/warnings.result index 2e393aea9e4..8a87852d582 100644 --- a/mysql-test/r/warnings.result +++ b/mysql-test/r/warnings.result @@ -313,4 +313,9 @@ ERROR 22001: Data too long for column 'c_tinytext' at row 1 insert into t2 values(@q); ERROR 22001: Data too long for column 'c_tinyblob' at row 1 drop table t1, t2; +DROP TABLE t1; +ERROR 42S02: Unknown table 't1' +SHOW ERRORS; +Level Code Message +Error 1051 Unknown table 't1' End of 5.0 tests diff --git a/mysql-test/t/warnings.test b/mysql-test/t/warnings.test index 12421170eba..176f320e390 100644 --- a/mysql-test/t/warnings.test +++ b/mysql-test/t/warnings.test @@ -225,4 +225,11 @@ insert into t2 values(@q); drop table t1, t2; +# +# Bug#42364 SHOW ERRORS returns empty resultset after dropping non existent table +# +--error ER_BAD_TABLE_ERROR +DROP TABLE t1; +SHOW ERRORS; + --echo End of 5.0 tests diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 3f568566c89..daef5a26742 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -399,6 +399,31 @@ char *thd_security_context(THD *thd, char *buffer, unsigned int length, return buffer; } + +/** + Implementation of Drop_table_error_handler::handle_error(). + The reason in having this implementation is to silence technical low-level + warnings during DROP TABLE operation. Currently we don't want to expose + the following warnings during DROP TABLE: + - Some of table files are missed or invalid (the table is going to be + deleted anyway, so why bother that something was missed); + - A trigger associated with the table does not have DEFINER (One of the + MySQL specifics now is that triggers are loaded for the table being + dropped. So, we may have a warning that trigger does not have DEFINER + attribute during DROP TABLE operation). + + @return TRUE if the condition is handled. +*/ +bool Drop_table_error_handler::handle_error(uint sql_errno, + const char *message, + MYSQL_ERROR::enum_warning_level level, + THD *thd) +{ + return ((sql_errno == EE_DELETE && my_errno == ENOENT) || + sql_errno == ER_TRG_NO_DEFINER); +} + + /** Clear this diagnostics area. diff --git a/sql/sql_class.h b/sql/sql_class.h index f52d5fae76f..c38eb17f191 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -1091,6 +1091,31 @@ public: }; +/** + This class is an internal error handler implementation for + DROP TABLE statements. The thing is that there may be warnings during + execution of these statements, which should not be exposed to the user. + This class is intended to silence such warnings. +*/ + +class Drop_table_error_handler : public Internal_error_handler +{ +public: + Drop_table_error_handler(Internal_error_handler *err_handler) + :m_err_handler(err_handler) + { } + +public: + bool handle_error(uint sql_errno, + const char *message, + MYSQL_ERROR::enum_warning_level level, + THD *thd); + +private: + Internal_error_handler *m_err_handler; +}; + + /** Stores status of the currently executed statement. Cleared at the beginning of the statement, and then diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 89a84ebc1fe..41e76211dd8 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -1772,6 +1772,7 @@ bool mysql_rm_table(THD *thd,TABLE_LIST *tables, my_bool if_exists, my_bool drop_temporary) { bool error= FALSE, need_start_waiters= FALSE; + Drop_table_error_handler err_handler(thd->get_internal_handler()); DBUG_ENTER("mysql_rm_table"); /* mark for close and remove all cached entries */ @@ -1792,7 +1793,10 @@ bool mysql_rm_table(THD *thd,TABLE_LIST *tables, my_bool if_exists, LOCK_open during wait_if_global_read_lock(), other threads could not close their tables. This would make a pretty deadlock. */ + thd->push_internal_handler(&err_handler); error= mysql_rm_table_part2(thd, tables, if_exists, drop_temporary, 0, 0); + thd->pop_internal_handler(); + if (need_start_waiters) start_waiting_global_read_lock(thd); @@ -1894,9 +1898,6 @@ int mysql_rm_table_part2(THD *thd, TABLE_LIST *tables, bool if_exists, DBUG_RETURN(1); } - /* Don't give warnings for not found errors, as we already generate notes */ - thd->no_warnings_for_error= 1; - for (table= tables; table; table= table->next_local) { char *db=table->db; @@ -2145,7 +2146,6 @@ int mysql_rm_table_part2(THD *thd, TABLE_LIST *tables, bool if_exists, err_with_placeholders: unlock_table_names(thd, tables, (TABLE_LIST*) 0); pthread_mutex_unlock(&LOCK_open); - thd->no_warnings_for_error= 0; DBUG_RETURN(error); } -- cgit v1.2.1 From e436b8866be640b2160f0b756f85559437cff67d Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 10 Sep 2009 18:05:53 +0800 Subject: BUG#45999 Row based replication fails when auto_increment field = 0 In RBR, There is an inconsistency between slaves and master. When INSERT statement which includes an auto_increment field is executed, Store engine of master will check the value of the auto_increment field. It will generate a sequence number and then replace the value, if its value is NULL or empty. if the field's value is 0, the store engine will do like encountering the NULL values unless NO_AUTO_VALUE_ON_ZERO is set into SQL_MODE. In contrast, if the field's value is 0, Store engine of slave always generates a new sequence number whether or not NO_AUTO_VALUE_ON_ZERO is set into SQL_MODE. SQL MODE of slave sql thread is always consistency with master's. Another variable is related to this bug. If generateing a sequence number is decided by the values of table->auto_increment_field_not_null and SQL_MODE(if includes MODE_NO_AUTO_VALUE_ON_ZERO) The table->auto_increment_is_not_null is FALSE, which causes this bug to appear. .. --- mysql-test/extra/rpl_tests/rpl_auto_increment.test | 76 ++++++++++++++++++++++ mysql-test/suite/rpl/r/rpl_auto_increment.result | 68 +++++++++++++++++++ sql/log_event.cc | 11 ++++ 3 files changed, 155 insertions(+) diff --git a/mysql-test/extra/rpl_tests/rpl_auto_increment.test b/mysql-test/extra/rpl_tests/rpl_auto_increment.test index 24448a38408..abf3b4ec676 100644 --- a/mysql-test/extra/rpl_tests/rpl_auto_increment.test +++ b/mysql-test/extra/rpl_tests/rpl_auto_increment.test @@ -163,5 +163,81 @@ show create table t1; connection master; drop table t1; +# +# BUG#45999 Row based replication fails when auto_increment field = 0. +# Store engine of Slaves auto-generates new sequence numbers for +# auto_increment fields if the values of them are 0. There is an inconsistency +# between slave and master. When MODE_NO_AUTO_VALUE_ON_ZERO are masters treat +# +source include/master-slave-reset.inc; + +connection master; +--disable_warnings +DROP TABLE IF EXISTS t1; +DROP TABLE IF EXISTS t2; +--enable_warnings + +eval CREATE TABLE t1 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=$engine_type; +eval CREATE TABLE t2 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=$engine_type2; +SET SQL_MODE=''; +# Value of the id will be 1; +INSERT INTO t1 VALUES(NULL); +INSERT INTO t2 VALUES(NULL); +SELECT * FROM t1; +SELECT * FROM t2; +# Value of the id will be 2; +INSERT INTO t1 VALUES(); +INSERT INTO t2 VALUES(); +SELECT * FROM t1; +SELECT * FROM t2; +# Value of the id will be 3. The master treats 0 as NULL or empty because +# NO_AUTO_VALUE_ON_ZERO is not assign to SQL_MODE. +INSERT INTO t1 VALUES(0); +INSERT INTO t2 VALUES(0); +SELECT * FROM t1; +SELECT * FROM t2; + +SET SQL_MODE=NO_AUTO_VALUE_ON_ZERO; +# Value of the id will be 0. The master does not treat 0 as NULL or empty +# because NO_AUTO_VALUE_ON_ZERO has assigned to SQL_MODE. +INSERT INTO t1 VALUES(0); +INSERT INTO t2 VALUES(0); +SELECT * FROM t1; +SELECT * FROM t2; + +INSERT INTO t1 VALUES(4); +INSERT INTO t2 VALUES(4); +FLUSH LOGS; +sync_slave_with_master; + +let $diff_table_1= master:test.t1; +let $diff_table_2= slave:test.t1; +source include/diff_tables.inc; + +let $diff_table_1= master:test.t2; +let $diff_table_2= slave:test.t2; +source include/diff_tables.inc; + +connection master; +DROP TABLE t1; +DROP TABLE t2; +sync_slave_with_master; + +connection master; +let $MYSQLD_DATADIR= `SELECT @@DATADIR`; +--exec $MYSQL_BINLOG $MYSQLD_DATADIR/master-bin.000001 | $MYSQL test +sync_slave_with_master; + +let $diff_table_1= master:test.t1; +let $diff_table_2= slave:test.t1; +source include/diff_tables.inc; + +let $diff_table_1= master:test.t2; +let $diff_table_2= slave:test.t2; +source include/diff_tables.inc; + # End cleanup +DROP TABLE t1; +DROP TABLE t2; +SET SQL_MODE=''; sync_slave_with_master; diff --git a/mysql-test/suite/rpl/r/rpl_auto_increment.result b/mysql-test/suite/rpl/r/rpl_auto_increment.result index 2a4c3a09361..fdd94264041 100644 --- a/mysql-test/suite/rpl/r/rpl_auto_increment.result +++ b/mysql-test/suite/rpl/r/rpl_auto_increment.result @@ -244,3 +244,71 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 drop table t1; +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; +DROP TABLE IF EXISTS t1; +DROP TABLE IF EXISTS t2; +CREATE TABLE t1 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=innodb; +CREATE TABLE t2 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=myisam; +SET SQL_MODE=''; +INSERT INTO t1 VALUES(NULL); +INSERT INTO t2 VALUES(NULL); +SELECT * FROM t1; +id +1 +SELECT * FROM t2; +id +1 +INSERT INTO t1 VALUES(); +INSERT INTO t2 VALUES(); +SELECT * FROM t1; +id +1 +2 +SELECT * FROM t2; +id +1 +2 +INSERT INTO t1 VALUES(0); +INSERT INTO t2 VALUES(0); +SELECT * FROM t1; +id +1 +2 +3 +SELECT * FROM t2; +id +1 +2 +3 +SET SQL_MODE=NO_AUTO_VALUE_ON_ZERO; +INSERT INTO t1 VALUES(0); +INSERT INTO t2 VALUES(0); +SELECT * FROM t1; +id +0 +1 +2 +3 +SELECT * FROM t2; +id +0 +1 +2 +3 +INSERT INTO t1 VALUES(4); +INSERT INTO t2 VALUES(4); +FLUSH LOGS; +Comparing tables master:test.t1 and slave:test.t1 +Comparing tables master:test.t2 and slave:test.t2 +DROP TABLE t1; +DROP TABLE t2; +Comparing tables master:test.t1 and slave:test.t1 +Comparing tables master:test.t2 and slave:test.t2 +DROP TABLE t1; +DROP TABLE t2; +SET SQL_MODE=''; diff --git a/sql/log_event.cc b/sql/log_event.cc index 0cda724b698..08fe3aba8ed 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -8312,6 +8312,16 @@ Write_rows_log_event::do_before_row_operations(const Slave_reporting_capability /* Honor next number column if present */ m_table->next_number_field= m_table->found_next_number_field; + /* + * Fixed Bug#45999, In RBR, Store engine of Slave auto-generates new + * sequence numbers for auto_increment fields if the values of them are 0. + * If generateing a sequence number is decided by the values of + * table->auto_increment_field_not_null and SQL_MODE(if includes + * MODE_NO_AUTO_VALUE_ON_ZERO) in update_auto_increment function. + * SQL_MODE of slave sql thread is always consistency with master's. + * In RBR, auto_increment fields never are NULL. + */ + m_table->auto_increment_field_not_null= TRUE; return error; } @@ -8321,6 +8331,7 @@ Write_rows_log_event::do_after_row_operations(const Slave_reporting_capability * { int local_error= 0; m_table->next_number_field=0; + m_table->auto_increment_field_not_null= FALSE; if (bit_is_set(slave_exec_mode, SLAVE_EXEC_MODE_IDEMPOTENT) == 1 || m_table->s->db_type()->db_type == DB_TYPE_NDBCLUSTER) { -- cgit v1.2.1 From 10406ae65871de074e807e626f9ede686e9321d4 Mon Sep 17 00:00:00 2001 From: Sergey Glukhov Date: Thu, 10 Sep 2009 15:24:07 +0500 Subject: Bug#46815 CONCAT_WS returning wrong data The problem is that argument buffer can be used as result buffer and it leads to argument value change. The fix is to use 'old buffer' as result buffer only if first argument is not constant item. mysql-test/r/func_str.result: test result mysql-test/t/func_str.test: test case sql/item_strfunc.cc: The problem is that argument buffer can be used as result buffer and it leads to argument value change. The fix is to use 'old buffer' as result buffer only if first argument is not constant item. --- mysql-test/r/func_str.result | 9 +++++++++ mysql-test/t/func_str.test | 13 +++++++++++++ sql/item_strfunc.cc | 7 ++++++- 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index 75f8983e838..bf2a9ca8901 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -2196,4 +2196,13 @@ SELECT LOAD_FILE(a) FROM t1; LOAD_FILE(a) NULL DROP TABLE t1; +CREATE TABLE t1 (f2 VARCHAR(20)); +CREATE TABLE t2 (f2 VARCHAR(20)); +INSERT INTO t1 VALUES ('MIN'),('MAX'); +INSERT INTO t2 VALUES ('LOAD'); +SELECT CONCAT_WS('_', (SELECT t2.f2 FROM t2), t1.f2) AS concat_name FROM t1; +concat_name +LOAD_MIN +LOAD_MAX +DROP TABLE t1, t2; End of 5.0 tests diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test index 4b0f91e4408..e396fbcebd8 100644 --- a/mysql-test/t/func_str.test +++ b/mysql-test/t/func_str.test @@ -1177,5 +1177,18 @@ INSERT INTO t1 VALUES ('aaaaaaaa'); SELECT LOAD_FILE(a) FROM t1; DROP TABLE t1; +# +# Bug#46815 CONCAT_WS returning wrong data +# +CREATE TABLE t1 (f2 VARCHAR(20)); +CREATE TABLE t2 (f2 VARCHAR(20)); + +INSERT INTO t1 VALUES ('MIN'),('MAX'); +INSERT INTO t2 VALUES ('LOAD'); + +SELECT CONCAT_WS('_', (SELECT t2.f2 FROM t2), t1.f2) AS concat_name FROM t1; + +DROP TABLE t1, t2; + --echo End of 5.0 tests diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index e3fe67f4324..6f697a1665a 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -600,6 +600,7 @@ String *Item_func_concat_ws::val_str(String *str) String tmp_sep_str(tmp_str_buff, sizeof(tmp_str_buff),default_charset_info), *sep_str, *res, *res2,*use_as_buff; uint i; + bool is_const= 0; null_value=0; if (!(sep_str= args[0]->val_str(&tmp_sep_str))) @@ -613,7 +614,11 @@ String *Item_func_concat_ws::val_str(String *str) // If not, return the empty string for (i=1; i < arg_count; i++) if ((res= args[i]->val_str(str))) + { + is_const= args[i]->const_item() || !args[i]->used_tables(); break; + } + if (i == arg_count) return &my_empty_string; @@ -631,7 +636,7 @@ String *Item_func_concat_ws::val_str(String *str) current_thd->variables.max_allowed_packet); goto null; } - if (res->alloced_length() >= + if (!is_const && res->alloced_length() >= res->length() + sep_str->length() + res2->length()) { // Use old buffer res->append(*sep_str); // res->length() > 0 always -- cgit v1.2.1 From 057192abbd261f453711a3296c48f091a702019a Mon Sep 17 00:00:00 2001 From: Alexander Nozdrin Date: Thu, 10 Sep 2009 16:18:54 +0400 Subject: Add DBUG_VIOLATION_HELPER_LEAVE definition to non-debug build. --- include/my_dbug.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/my_dbug.h b/include/my_dbug.h index 71dc34791dc..474a46f29dd 100644 --- a/include/my_dbug.h +++ b/include/my_dbug.h @@ -128,6 +128,7 @@ extern FILE *_db_fp_(void); #define DBUG_ENTER(a1) #define DBUG_LEAVE +#define DBUG_VIOLATION_HELPER_LEAVE #define DBUG_RETURN(a1) do { return(a1); } while(0) #define DBUG_VOID_RETURN do { return; } while(0) #define DBUG_EXECUTE(keyword,a1) do { } while(0) -- cgit v1.2.1 From b6c16b329a861b4b7da9cda2ede9921af912fd38 Mon Sep 17 00:00:00 2001 From: Ramil Kalimullin Date: Fri, 11 Sep 2009 22:06:27 +0500 Subject: Fix for bug#47130: misplaced or redundant check for null pointer? Problem: LOGGER::general_log_write() relied on valid "thd" parameter passed but had inconsistent "if (thd)" check. Fix: as we always pass a valid "thd" parameter to the method, redundant check removed. sql/log.cc: Fix for bug#47130: misplaced or redundant check for null pointer? - code clean-up, as we rely on the "thd" parameter in the LOGGER::general_log_write(), redundant "if (thd)" check removed, added assert(thd) instead. --- sql/log.cc | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/sql/log.cc b/sql/log.cc index 1af2f3a4ddc..feaa5499912 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -1024,14 +1024,10 @@ bool LOGGER::general_log_write(THD *thd, enum enum_server_command command, Log_event_handler **current_handler= general_log_handler_list; char user_host_buff[MAX_USER_HOST_SIZE + 1]; Security_context *sctx= thd->security_ctx; - ulong id; uint user_host_len= 0; time_t current_time; - if (thd) - id= thd->thread_id; /* Normal thread */ - else - id= 0; /* Log from connect handler */ + DBUG_ASSERT(thd); lock_shared(); if (!opt_log) @@ -1050,7 +1046,7 @@ bool LOGGER::general_log_write(THD *thd, enum enum_server_command command, while (*current_handler) error|= (*current_handler++)-> log_general(thd, current_time, user_host_buff, - user_host_len, id, + user_host_len, thd->thread_id, command_name[(uint) command].str, command_name[(uint) command].length, query, query_length, -- cgit v1.2.1 From 3c916057ad772fe613c294fb654f9a70b65b1b5a Mon Sep 17 00:00:00 2001 From: Luis Soares Date: Sun, 13 Sep 2009 21:52:14 +0100 Subject: BUG#47014: rpl_drop_temp fails on PB-2 with results mismatch The test case creates two temporary tables, then closes the connection, waits for it to disconnect, then syncs the slave with the master, checks for remaining opened temporary tables on slave (which should be 0) and finally drops the used database (mysqltest). Unfortunately, sometimes, the test fails with one open table on the slave. This seems to be caused by the fact that waiting for the connection to be closed is not sufficient. The test needs to wait for the DROP event to be logged and only then synchronize the slave with the master and proceed with the check. This is caused by the asynchronous nature of the disconnect wrt binlogging of the DROP temporary table statement. We fix this by deploying a call to wait_for_binlog_event.inc on the test case, which makes execution to wait for the DROP temp tables event before synchronizing master and slave. --- mysql-test/suite/rpl/t/rpl_drop_temp.test | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mysql-test/suite/rpl/t/rpl_drop_temp.test b/mysql-test/suite/rpl/t/rpl_drop_temp.test index df162d3b244..7827e16e45f 100644 --- a/mysql-test/suite/rpl/t/rpl_drop_temp.test +++ b/mysql-test/suite/rpl/t/rpl_drop_temp.test @@ -23,6 +23,8 @@ disconnect con_temp; --source include/wait_until_disconnected.inc connection master; +-- let $wait_binlog_event= DROP +-- source include/wait_for_binlog_event.inc sync_slave_with_master; connection slave; -- cgit v1.2.1 From 63a81c09946be5f008eb3423e24db93dc72a3fe8 Mon Sep 17 00:00:00 2001 From: Luis Soares Date: Sun, 13 Sep 2009 22:43:47 +0100 Subject: BUG#47016: rpl_do_grant fails on PB-2 with a failing connect The test case rpl_do_grant fails sporadically on PB2 with "Access denied for user 'create_rout_db'@'localhost' ...". Inspecting the test case, one may find that if issues a GRANT on the master connection and immediately after it creates two new connections (one to the master and one to the slave) using the credentials set with the GRANT. Unfortunately, there is no synchronization between master and slave after the grant and before the connections are established. This can result in slave not having executed the GRANT by the time the connection is attempted. This patch fixes this by deploying a sync_slave_with_master between the grant and the connections attempt. --- mysql-test/suite/rpl/t/rpl_do_grant.test | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mysql-test/suite/rpl/t/rpl_do_grant.test b/mysql-test/suite/rpl/t/rpl_do_grant.test index 806de780086..fc793c03649 100644 --- a/mysql-test/suite/rpl/t/rpl_do_grant.test +++ b/mysql-test/suite/rpl/t/rpl_do_grant.test @@ -129,6 +129,9 @@ CREATE DATABASE bug42217_db; GRANT CREATE ROUTINE ON bug42217_db.* TO 'create_rout_db'@'localhost' IDENTIFIED BY 'create_rout_db' WITH GRANT OPTION; +-- sync_slave_with_master +-- connection master + connect (create_rout_db_master, localhost, create_rout_db, create_rout_db, bug42217_db,$MASTER_MYPORT,); connect (create_rout_db_slave, localhost, create_rout_db, create_rout_db, bug42217_db, $SLAVE_MYPORT,); -- cgit v1.2.1