summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/extra/rpl_tests/rpl_ndb_apply_status.test290
-rw-r--r--mysql-test/extra/rpl_tests/rpl_row_UUID.test2
-rw-r--r--mysql-test/include/ddl_i18n.check_events.inc48
-rw-r--r--mysql-test/include/ddl_i18n.check_sp.inc83
-rw-r--r--mysql-test/include/ddl_i18n.check_triggers.inc106
-rw-r--r--mysql-test/include/ddl_i18n.check_views.inc32
-rw-r--r--mysql-test/include/have_cp1251.inc7
-rw-r--r--mysql-test/include/have_cp866.inc7
-rw-r--r--mysql-test/include/have_koi8r.inc7
-rw-r--r--mysql-test/include/have_utf8.inc7
-rw-r--r--mysql-test/include/mix1.inc48
-rw-r--r--mysql-test/include/query_cache_sql_prepare.inc12
-rw-r--r--mysql-test/include/rpl_events.inc82
-rw-r--r--mysql-test/include/select_ndb_apply_status.inc13
-rw-r--r--mysql-test/include/show_binlog_using_logname.inc13
-rw-r--r--mysql-test/include/tpcb.inc155
-rw-r--r--mysql-test/include/tpcb_disk_data.inc166
-rw-r--r--mysql-test/lib/mtr_cases.pl1
-rw-r--r--mysql-test/lib/mtr_report.pl7
-rw-r--r--mysql-test/r/binary.result38
-rw-r--r--mysql-test/r/binlog_multi_engine.result10
-rw-r--r--mysql-test/r/create.result642
-rw-r--r--mysql-test/r/ctype_collate.result8
-rw-r--r--mysql-test/r/ctype_cp932_binlog_stm.result6
-rw-r--r--mysql-test/r/ctype_uca.result92
-rw-r--r--mysql-test/r/ctype_ucs.result21
-rw-r--r--mysql-test/r/ctype_ucs2_def.result7
-rw-r--r--mysql-test/r/ctype_utf8.result37
-rw-r--r--mysql-test/r/ddl_i18n_koi8r.result2783
-rw-r--r--mysql-test/r/ddl_i18n_utf8.result2783
-rw-r--r--mysql-test/r/errors.result14
-rw-r--r--mysql-test/r/events.result139
-rw-r--r--mysql-test/r/events_bugs.result129
-rw-r--r--mysql-test/r/events_grant.result24
-rw-r--r--mysql-test/r/func_in.result4
-rw-r--r--mysql-test/r/gis.result4
-rw-r--r--mysql-test/r/grant.result24
-rw-r--r--mysql-test/r/have_cp1251.require2
-rw-r--r--mysql-test/r/have_cp866.require2
-rw-r--r--mysql-test/r/have_koi8r.require2
-rw-r--r--mysql-test/r/have_utf8.require2
-rw-r--r--mysql-test/r/information_schema.result100
-rw-r--r--mysql-test/r/information_schema_db.result26
-rw-r--r--mysql-test/r/innodb.result8
-rw-r--r--mysql-test/r/innodb_mysql.result23
-rw-r--r--mysql-test/r/lowercase_view.result12
-rw-r--r--mysql-test/r/mysqldump.result423
-rw-r--r--mysql-test/r/ndb_binlog_format.result30
-rw-r--r--mysql-test/r/ndb_read_multi_range.result2
-rw-r--r--mysql-test/r/ndb_sp.result4
-rw-r--r--mysql-test/r/ndb_trigger.result4
-rw-r--r--mysql-test/r/ps.result84
-rw-r--r--mysql-test/r/ps_1general.result6
-rw-r--r--mysql-test/r/ps_2myisam.result2
-rw-r--r--mysql-test/r/ps_3innodb.result2
-rw-r--r--mysql-test/r/ps_4heap.result2
-rw-r--r--mysql-test/r/ps_5merge.result4
-rw-r--r--mysql-test/r/ps_7ndb.result2
-rw-r--r--mysql-test/r/query_cache_ps_no_prot.result81
-rw-r--r--mysql-test/r/query_cache_ps_ps_prot.result81
-rw-r--r--mysql-test/r/rpl_events.result138
-rw-r--r--mysql-test/r/rpl_ndb_UUID.result2
-rw-r--r--mysql-test/r/rpl_ndb_ctype_ucs2_def.result9
-rw-r--r--mysql-test/r/rpl_ndb_dd_advance.result178
-rw-r--r--mysql-test/r/rpl_ndb_mix_innodb.result129
-rw-r--r--mysql-test/r/rpl_ndb_stm_innodb.result107
-rw-r--r--mysql-test/r/rpl_partition.result195
-rw-r--r--mysql-test/r/rpl_replicate_do.result14
-rw-r--r--mysql-test/r/rpl_row_UUID.result2
-rw-r--r--mysql-test/r/rpl_sp.result72
-rw-r--r--mysql-test/r/rpl_switch_stm_row_mixed.result4
-rw-r--r--mysql-test/r/rpl_trigger.result6
-rw-r--r--mysql-test/r/rpl_view.result4
-rw-r--r--mysql-test/r/show_check.result568
-rw-r--r--mysql-test/r/skip_grants.result12
-rw-r--r--mysql-test/r/sp-destruct.result19
-rw-r--r--mysql-test/r/sp-dynamic.result18
-rw-r--r--mysql-test/r/sp-error.result16
-rw-r--r--mysql-test/r/sp-security.result36
-rw-r--r--mysql-test/r/sp.result154
-rw-r--r--mysql-test/r/sql_mode.result24
-rw-r--r--mysql-test/r/subselect.result33
-rw-r--r--mysql-test/r/system_mysql_db.result8
-rw-r--r--mysql-test/r/temp_table.result4
-rw-r--r--mysql-test/r/trigger-compat.result6
-rw-r--r--mysql-test/r/trigger-grant.result18
-rw-r--r--mysql-test/r/trigger.result10
-rw-r--r--mysql-test/r/type_enum.result39
-rw-r--r--mysql-test/r/view.result163
-rw-r--r--mysql-test/r/view_grant.result76
-rw-r--r--mysql-test/t/binary.test38
-rw-r--r--mysql-test/t/binlog_multi_engine.test14
-rw-r--r--mysql-test/t/create.test333
-rw-r--r--mysql-test/t/ctype_collate.test11
-rw-r--r--mysql-test/t/ctype_uca.test54
-rw-r--r--mysql-test/t/ctype_ucs.test18
-rw-r--r--mysql-test/t/ctype_ucs2_def.test10
-rw-r--r--mysql-test/t/ctype_utf8.test25
-rw-r--r--mysql-test/t/ddl_i18n_koi8r.test1112
-rw-r--r--mysql-test/t/ddl_i18n_utf8.test1112
-rw-r--r--mysql-test/t/disabled.def4
-rw-r--r--mysql-test/t/errors.test13
-rw-r--r--mysql-test/t/events.test25
-rw-r--r--mysql-test/t/events_bugs.test64
-rw-r--r--mysql-test/t/information_schema.test2
-rw-r--r--mysql-test/t/innodb.test9
-rw-r--r--mysql-test/t/loaddata_autocom_ndb.test1
-rw-r--r--mysql-test/t/ndb_alter_table.test2
-rw-r--r--mysql-test/t/ndb_alter_table2.test2
-rw-r--r--mysql-test/t/ndb_alter_table3.test2
-rw-r--r--mysql-test/t/ndb_autodiscover.test1
-rw-r--r--mysql-test/t/ndb_autodiscover2.test1
-rw-r--r--mysql-test/t/ndb_autodiscover3.test33
-rw-r--r--mysql-test/t/ndb_basic.test1
-rw-r--r--mysql-test/t/ndb_binlog_ddl_multi.test1
-rw-r--r--mysql-test/t/ndb_binlog_format.test33
-rw-r--r--mysql-test/t/ndb_binlog_log_bin.test2
-rw-r--r--mysql-test/t/ndb_binlog_multi.test2
-rw-r--r--mysql-test/t/ndb_bitfield.test1
-rw-r--r--mysql-test/t/ndb_blob.test1
-rw-r--r--mysql-test/t/ndb_blob_partition.test1
-rw-r--r--mysql-test/t/ndb_cache.test1
-rw-r--r--mysql-test/t/ndb_cache2.test1
-rw-r--r--mysql-test/t/ndb_cache_multi.test2
-rw-r--r--mysql-test/t/ndb_cache_multi2.test2
-rw-r--r--mysql-test/t/ndb_charset.test1
-rw-r--r--mysql-test/t/ndb_condition_pushdown.test1
-rw-r--r--mysql-test/t/ndb_config.test1
-rw-r--r--mysql-test/t/ndb_config2.test1
-rw-r--r--mysql-test/t/ndb_cursor.test1
-rw-r--r--mysql-test/t/ndb_database.test1
-rw-r--r--mysql-test/t/ndb_dd_alter.test1
-rw-r--r--mysql-test/t/ndb_dd_backuprestore.test1
-rw-r--r--mysql-test/t/ndb_dd_basic.test1
-rw-r--r--mysql-test/t/ndb_dd_ddl.test1
-rw-r--r--mysql-test/t/ndb_dd_disk2memory.test1
-rw-r--r--mysql-test/t/ndb_dd_dump.test1
-rw-r--r--mysql-test/t/ndb_dd_sql_features.test1
-rw-r--r--mysql-test/t/ndb_gis.test1
-rw-r--r--mysql-test/t/ndb_index.test1
-rw-r--r--mysql-test/t/ndb_index_ordered.test1
-rw-r--r--mysql-test/t/ndb_index_unique.test1
-rw-r--r--mysql-test/t/ndb_insert.test1
-rw-r--r--mysql-test/t/ndb_limit.test1
-rw-r--r--mysql-test/t/ndb_loaddatalocal.test1
-rw-r--r--mysql-test/t/ndb_lock.test1
-rw-r--r--mysql-test/t/ndb_minmax.test1
-rw-r--r--mysql-test/t/ndb_multi.test1
-rw-r--r--mysql-test/t/ndb_partition_error.test1
-rw-r--r--mysql-test/t/ndb_partition_key.test1
-rw-r--r--mysql-test/t/ndb_partition_list.test1
-rw-r--r--mysql-test/t/ndb_partition_range.test1
-rw-r--r--mysql-test/t/ndb_read_multi_range.test3
-rw-r--r--mysql-test/t/ndb_rename.test1
-rw-r--r--mysql-test/t/ndb_replace.test1
-rw-r--r--mysql-test/t/ndb_restore.test1
-rw-r--r--mysql-test/t/ndb_restore_partition.test1
-rw-r--r--mysql-test/t/ndb_restore_print.test1
-rw-r--r--mysql-test/t/ndb_row_format.test1
-rw-r--r--mysql-test/t/ndb_single_user.test2
-rw-r--r--mysql-test/t/ndb_sp.test1
-rw-r--r--mysql-test/t/ndb_subquery.test1
-rw-r--r--mysql-test/t/ndb_temporary.test1
-rw-r--r--mysql-test/t/ndb_transaction.test1
-rw-r--r--mysql-test/t/ndb_trigger.test5
-rw-r--r--mysql-test/t/ndb_truncate.test1
-rw-r--r--mysql-test/t/ndb_types.test1
-rw-r--r--mysql-test/t/ndb_update.test1
-rw-r--r--mysql-test/t/ndb_view.test1
-rw-r--r--mysql-test/t/ndbapi.test1
-rw-r--r--mysql-test/t/ps_1general.test4
-rw-r--r--mysql-test/t/ps_7ndb.test1
-rw-r--r--mysql-test/t/rpl_ndb_commit_afterflush.test2
-rw-r--r--mysql-test/t/rpl_ndb_ctype_ucs2_def-master.opt1
-rw-r--r--mysql-test/t/rpl_ndb_ctype_ucs2_def.test42
-rw-r--r--mysql-test/t/rpl_ndb_dd_advance.test191
-rw-r--r--mysql-test/t/rpl_ndb_innodb_trans.test2
-rw-r--r--mysql-test/t/rpl_ndb_mix_innodb-master.opt1
-rw-r--r--mysql-test/t/rpl_ndb_mix_innodb.test36
-rw-r--r--mysql-test/t/rpl_ndb_stm_innodb-master.opt2
-rw-r--r--mysql-test/t/rpl_ndb_stm_innodb.test99
-rw-r--r--mysql-test/t/rpl_partition.test160
-rw-r--r--mysql-test/t/show_check.test298
-rw-r--r--mysql-test/t/sp-destruct.test15
-rw-r--r--mysql-test/t/sp-dynamic.test12
-rw-r--r--mysql-test/t/sp-error.test10
-rw-r--r--mysql-test/t/sp.test2
-rw-r--r--mysql-test/t/strict_autoinc_5ndb.test1
-rw-r--r--mysql-test/t/subselect.test42
-rw-r--r--mysql-test/t/type_enum.test37
-rw-r--r--mysql-test/t/view.test10
191 files changed, 13445 insertions, 1328 deletions
diff --git a/mysql-test/extra/rpl_tests/rpl_ndb_apply_status.test b/mysql-test/extra/rpl_tests/rpl_ndb_apply_status.test
new file mode 100644
index 00000000000..926c4106d6d
--- /dev/null
+++ b/mysql-test/extra/rpl_tests/rpl_ndb_apply_status.test
@@ -0,0 +1,290 @@
+#############################################
+#Authors: TU and Jeb
+#Date: 2007/04
+#Purpose: Generic replication to cluster
+# and ensuring that the ndb_apply_status
+# table is updated.
+#############################################
+# Notes:
+# include/select_ndb_apply_status.inc
+# Selects out the log name, start & end pos
+# from the ndb_apply_status table
+#
+# include/show_binlog_using_logname.inc
+# To select out 1 row from offset 1
+# from the start position in the binlog whose
+# name is = log_name
+#
+# include/tpcb.inc
+# Creates DATABASE tpcb, the tables and
+# stored procedures for loading the DB
+# and for running transactions against DB.
+##############################################
+
+
+--echo
+--echo *** Test 1 ***
+--echo
+
+connection master;
+create table t1 (a int key, b int) engine innodb;
+create table t2 (a int key, b int) engine innodb;
+
+--echo
+
+--sync_slave_with_master
+alter table t1 engine ndb;
+alter table t2 engine ndb;
+
+--echo
+
+# check binlog position without begin
+connection master;
+insert into t1 values (1,2);
+
+--echo
+
+--sync_slave_with_master
+--source include/select_ndb_apply_status.inc
+
+--echo
+
+connection master;
+# here is actually a bug, since there is no begin statement, the
+# query is autocommitted, and end_pos shows end of the insert and not
+# end of the commit
+--replace_result $start_pos <start_pos>
+--replace_column 5 #
+--eval show binlog events from $start_pos limit 1
+--echo
+--replace_result $start_pos <start_pos> $end_pos <end_pos>
+--replace_column 2 #
+--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
+--eval show binlog events from $start_pos limit 1,1
+
+--echo
+
+# check binlog position with begin
+begin;
+insert into t1 values (2,3);
+insert into t2 values (3,4);
+commit;
+
+--echo
+
+--sync_slave_with_master
+--source include/select_ndb_apply_status.inc
+
+connection master;
+--replace_result $start_pos <start_pos>
+--replace_column 5 #
+--eval show binlog events from $start_pos limit 1
+--echo
+--replace_result $start_pos <start_pos>
+--replace_column 2 # 4 # 5 #
+--eval show binlog events from $start_pos limit 1,2
+--echo
+--replace_result $start_pos <start_pos> $end_pos <end_pos>
+--replace_column 2 #
+--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
+--eval show binlog events from $start_pos limit 3,1
+
+--echo
+
+connection master;
+DROP TABLE test.t1, test.t2;
+--sync_slave_with_master
+SHOW TABLES;
+
+# Run in some transactions using stored procedures
+# and ensure that the ndb_apply_status table is
+# updated to show the transactions
+
+
+--echo
+--echo *** Test 2 ***
+--echo
+
+# Create database/tables and stored procdures
+connection master;
+--source include/tpcb.inc
+
+# Switch tables on slave to use NDB
+--sync_slave_with_master
+USE tpcb;
+ALTER TABLE account ENGINE NDB;
+ALTER TABLE branch ENGINE NDB;
+ALTER TABLE teller ENGINE NDB;
+ALTER TABLE history ENGINE NDB;
+
+--echo
+
+# Load DB tpcb and run some transactions
+connection master;
+--disable_query_log
+CALL tpcb.load();
+SET AUTOCOMMIT=0;
+let $run= 5;
+while ($run)
+{
+ START TRANSACTION;
+ --eval CALL tpcb.trans($rpl_format);
+ eval SET @my_errno= $mysql_errno;
+ let $run_good= `SELECT @my_errno = 0`;
+ let $run_bad= `SELECT @my_errno <> 0`;
+ if ($run_good)
+ {
+ COMMIT;
+ }
+ if ($run_bad)
+ {
+ ROLLBACK;
+ }
+ dec $run;
+}
+
+SET AUTOCOMMIT=1;
+--enable_query_log
+
+--sync_slave_with_master
+--source include/select_ndb_apply_status.inc
+
+--echo
+
+connection master;
+--source include/show_binlog_using_logname.inc
+
+# Flush the logs on the master moving all
+# Transaction to a new binlog and ensure
+# that the ndb_apply_status table is updated
+# to show the use of the new binlog.
+
+--echo
+--echo ** Test 3 **
+--echo
+
+# Flush logs on master which should force it
+# to switch to binlog #2
+
+FLUSH LOGS;
+
+# Run in some transaction to increase end pos in
+# binlog
+
+--disable_query_log
+SET AUTOCOMMIT=0;
+let $run= 5;
+while ($run)
+{
+ START TRANSACTION;
+ --eval CALL tpcb.trans($rpl_format);
+ eval SET @my_errno= $mysql_errno;
+ let $run_good= `SELECT @my_errno = 0`;
+ let $run_bad= `SELECT @my_errno <> 0`;
+ if ($run_good)
+ {
+ COMMIT;
+ }
+ if ($run_bad)
+ {
+ ROLLBACK;
+ }
+ dec $run;
+}
+SET AUTOCOMMIT=1;
+--enable_query_log
+
+--echo
+
+--sync_slave_with_master
+--source include/select_ndb_apply_status.inc
+
+--echo
+
+connection master;
+--source include/show_binlog_using_logname.inc
+
+# Now we reset both the master and the slave
+# Run some more transaction and ensure
+# that the ndb_apply_status is updated
+# correctly
+
+--echo
+--echo ** Test 4 **
+--echo
+
+# Reset both slave and master
+# This should reset binlog to #1
+--source include/master-slave-reset.inc
+
+--echo
+
+# Run in some transactions and check
+connection master;
+--disable_query_log
+SET AUTOCOMMIT=0;
+let $run= 5;
+while ($run)
+{
+ START TRANSACTION;
+ --eval CALL tpcb.trans($rpl_format);
+ eval SET @my_errno= $mysql_errno;
+ let $run_good= `SELECT @my_errno = 0`;
+ let $run_bad= `SELECT @my_errno <> 0`;
+ if ($run_good)
+ {
+ COMMIT;
+ }
+ if ($run_bad)
+ {
+ ROLLBACK;
+ }
+ dec $run;
+}
+SET AUTOCOMMIT=1;
+--enable_query_log
+
+--sync_slave_with_master
+--source include/select_ndb_apply_status.inc
+
+--echo
+
+connection master;
+--source include/show_binlog_using_logname.inc
+
+# Since we are doing replication, it is a good
+# idea to check to make sure all data was
+# Replicated correctly
+
+--echo
+--echo *** DUMP MASTER & SLAVE FOR COMPARE ********
+
+--exec $MYSQL_DUMP -n -t --compact --order-by-primary --skip-extended-insert tpcb account teller branch history > $MYSQLTEST_VARDIR/tmp/master_apply_status.sql
+
+--exec $MYSQL_DUMP_SLAVE -n -t --compact --order-by-primary --skip-extended-insert tpcb account teller branch history > $MYSQLTEST_VARDIR/tmp/slave_apply_status.sql
+
+connection master;
+DROP DATABASE tpcb;
+
+--sync_slave_with_master
+
+####### Commenting out until decision on Bug#27960 ###########
+
+#--source include/select_ndb_apply_status.inc
+
+#connection master;
+#--eval SHOW BINLOG EVENTS in '$log_name' from $start_pos
+#--source include/show_binlog_using_logname.inc
+
+--echo ****** Do dumps compare ************
+
+
+diff_files $MYSQLTEST_VARDIR/tmp/master_apply_status.sql $MYSQLTEST_VARDIR/tmp/slave_apply_status.sql;
+
+## Note: Ths files should only get removed, if the above diff succeeds.
+
+--exec rm $MYSQLTEST_VARDIR/tmp/master_apply_status.sql
+--exec rm $MYSQLTEST_VARDIR/tmp/slave_apply_status.sql
+
+
+# End of 5.1 Test
diff --git a/mysql-test/extra/rpl_tests/rpl_row_UUID.test b/mysql-test/extra/rpl_tests/rpl_row_UUID.test
index ee2a29ac938..9f2dbb4ce4b 100644
--- a/mysql-test/extra/rpl_tests/rpl_row_UUID.test
+++ b/mysql-test/extra/rpl_tests/rpl_row_UUID.test
@@ -41,7 +41,7 @@ end|
delimiter ;|
# test both in SELECT and in INSERT
select fn1(0);
-create table t2 (a int);
+eval create table t2 (a int) engine=$engine_type;
insert into t2 values(fn1(2));
sync_slave_with_master;
diff --git a/mysql-test/include/ddl_i18n.check_events.inc b/mysql-test/include/ddl_i18n.check_events.inc
new file mode 100644
index 00000000000..8b0d70e3c0e
--- /dev/null
+++ b/mysql-test/include/ddl_i18n.check_events.inc
@@ -0,0 +1,48 @@
+# - Check SHOW CREATE statement;
+
+--echo
+--echo
+
+SHOW CREATE EVENT ev1|
+--echo
+SHOW CREATE EVENT ev2|
+--echo
+SHOW CREATE EVENT mysqltest2.ev3|
+--echo
+SHOW CREATE EVENT mysqltest2.ev3|
+
+# - Check SHOW statement;
+
+--echo
+--echo
+
+SHOW EVENTS LIKE 'ev1'|
+
+--echo
+SHOW EVENTS LIKE 'ev2'|
+
+--echo
+SHOW EVENTS LIKE 'ev3'|
+
+--echo
+SHOW EVENTS LIKE 'ev4'|
+
+# - Check INFORMATION_SCHEMA;
+
+--echo
+--echo
+
+--replace_column 17 CREATED 18 LAST_ALTERED
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev1'|
+
+--echo
+--replace_column 17 CREATED 18 LAST_ALTERED
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'|
+
+--echo
+--replace_column 17 CREATED 18 LAST_ALTERED
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'|
+
+--echo
+--replace_column 17 CREATED 18 LAST_ALTERED
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'|
diff --git a/mysql-test/include/ddl_i18n.check_sp.inc b/mysql-test/include/ddl_i18n.check_sp.inc
new file mode 100644
index 00000000000..bb1657d7072
--- /dev/null
+++ b/mysql-test/include/ddl_i18n.check_sp.inc
@@ -0,0 +1,83 @@
+# - Check SHOW CREATE statement;
+
+--echo
+--echo
+
+SHOW CREATE PROCEDURE p1|
+--echo
+SHOW CREATE PROCEDURE p2|
+--echo
+SHOW CREATE PROCEDURE mysqltest2.p3|
+--echo
+SHOW CREATE PROCEDURE mysqltest2.p4|
+
+# - Check SHOW statement;
+
+--echo
+--echo
+
+--replace_column 5 MODIFIED 6 CREATED
+SHOW PROCEDURE STATUS LIKE 'p1'|
+
+--echo
+--replace_column 5 MODIFIED 6 CREATED
+SHOW PROCEDURE STATUS LIKE 'p2'|
+
+--echo
+--replace_column 5 MODIFIED 6 CREATED
+SHOW PROCEDURE STATUS LIKE 'p3'|
+
+--echo
+--replace_column 5 MODIFIED 6 CREATED
+SHOW PROCEDURE STATUS LIKE 'p4'|
+
+# - Check INFORMATION_SCHEMA;
+
+--echo
+--echo
+
+--replace_column 16 CREATED 17 ALTERED
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p1'|
+
+--echo
+--replace_column 16 CREATED 17 ALTERED
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p2'|
+
+--echo
+--replace_column 16 CREATED 17 ALTERED
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p3'|
+
+--echo
+--replace_column 16 CREATED 17 ALTERED
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p4'|
+
+# - Initialize the used variables (actual values don't matter);
+
+--echo
+--echo
+
+SET @a = '1'|
+SET @b = '2'|
+
+# - Execute the routines;
+
+--echo
+--echo
+
+CALL p1(@a, @b)|
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+
+--echo
+
+CALL p2(@a, @b)|
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+
+--echo
+
+CALL mysqltest2.p3(@a, @b)|
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+
+--echo
+
+CALL mysqltest2.p4(@a, @b)|
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
diff --git a/mysql-test/include/ddl_i18n.check_triggers.inc b/mysql-test/include/ddl_i18n.check_triggers.inc
new file mode 100644
index 00000000000..dbfbc3cda5e
--- /dev/null
+++ b/mysql-test/include/ddl_i18n.check_triggers.inc
@@ -0,0 +1,106 @@
+# - Check SHOW CREATE statement;
+
+--echo
+--echo
+
+SHOW CREATE TRIGGER trg1|
+--echo
+SHOW CREATE TRIGGER trg2|
+--echo
+SHOW CREATE TRIGGER mysqltest2.trg3|
+--echo
+SHOW CREATE TRIGGER mysqltest2.trg4|
+
+# - Check SHOW statement;
+
+--echo
+--echo
+
+SHOW TRIGGERS|
+
+--echo
+
+use mysqltest2|
+
+--echo
+
+SHOW TRIGGERS|
+
+use mysqltest1|
+
+# - Check INFORMATION_SCHEMA;
+
+--echo
+--echo
+
+--replace_column 17 CREATED
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg1'|
+
+--echo
+--replace_column 17 CREATED
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg2'|
+
+--echo
+--replace_column 17 CREATED
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg3'|
+
+--echo
+--replace_column 17 CREATED
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg4'|
+
+# - Initialize the used variables (actual values don't matter);
+
+--echo
+--echo
+
+SET @a1 = '1'|
+SET @a2 = '1'|
+SET @a3 = '1'|
+
+SET @b1 = '2'|
+SET @b2 = '2'|
+SET @b3 = '2'|
+
+# - Execute the triggers;
+
+--echo
+--echo
+
+INSERT INTO t1 VALUES(1)|
+
+--echo
+--echo ---> Log:
+SELECT msg FROM log|
+
+--echo
+SELECT
+ COLLATION(@a1) AS ca1,
+ COLLATION(@a2) AS ca2,
+ COLLATION(@a3) AS ca3,
+ COLLATION(@b1) AS cb1,
+ COLLATION(@b2) AS cb2,
+ COLLATION(@b3) AS cb3|
+
+--echo
+DELETE FROM log|
+
+--echo
+--echo
+
+INSERT INTO mysqltest2.t1 VALUES(1)|
+
+--echo
+--echo ---> Log:
+SELECT msg FROM mysqltest2.log|
+
+--echo
+SELECT
+ COLLATION(@a1) AS ca1,
+ COLLATION(@a2) AS ca2,
+ COLLATION(@a3) AS ca3,
+ COLLATION(@b1) AS cb1,
+ COLLATION(@b2) AS cb2,
+ COLLATION(@b3) AS cb3|
+
+--echo
+DELETE FROM mysqltest2.log|
diff --git a/mysql-test/include/ddl_i18n.check_views.inc b/mysql-test/include/ddl_i18n.check_views.inc
new file mode 100644
index 00000000000..727f3506e4a
--- /dev/null
+++ b/mysql-test/include/ddl_i18n.check_views.inc
@@ -0,0 +1,32 @@
+# - Check SHOW CREATE statement;
+
+--echo
+--echo
+
+SHOW CREATE VIEW v1|
+
+--echo
+
+SHOW CREATE VIEW v2|
+
+# - Check INFORMATION_SCHEMA;
+
+--echo
+--echo
+
+SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
+
+--echo
+
+SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
+
+# - Execute the views;
+
+--echo
+--echo
+
+SELECT COLLATION(c1), COLLATION(c2) FROM v1|
+
+--echo
+
+SELECT COLLATION(c1) FROM v2|
diff --git a/mysql-test/include/have_cp1251.inc b/mysql-test/include/have_cp1251.inc
new file mode 100644
index 00000000000..2d5f1b3b529
--- /dev/null
+++ b/mysql-test/include/have_cp1251.inc
@@ -0,0 +1,7 @@
+--require r/have_cp1251.require
+
+--disable_query_log
+
+SHOW COLLATION LIKE 'cp1251_general_ci';
+
+--enable_query_log
diff --git a/mysql-test/include/have_cp866.inc b/mysql-test/include/have_cp866.inc
new file mode 100644
index 00000000000..27390d87d51
--- /dev/null
+++ b/mysql-test/include/have_cp866.inc
@@ -0,0 +1,7 @@
+--require r/have_cp866.require
+
+--disable_query_log
+
+SHOW COLLATION LIKE 'cp866_general_ci';
+
+--enable_query_log
diff --git a/mysql-test/include/have_koi8r.inc b/mysql-test/include/have_koi8r.inc
new file mode 100644
index 00000000000..1fe163565ba
--- /dev/null
+++ b/mysql-test/include/have_koi8r.inc
@@ -0,0 +1,7 @@
+--require r/have_koi8r.require
+
+--disable_query_log
+
+SHOW COLLATION LIKE 'koi8r_general_ci';
+
+--enable_query_log
diff --git a/mysql-test/include/have_utf8.inc b/mysql-test/include/have_utf8.inc
new file mode 100644
index 00000000000..58b74f4072f
--- /dev/null
+++ b/mysql-test/include/have_utf8.inc
@@ -0,0 +1,7 @@
+--require r/have_utf8.require
+
+--disable_query_log
+
+SHOW COLLATION LIKE 'utf8_general_ci';
+
+--enable_query_log
diff --git a/mysql-test/include/mix1.inc b/mysql-test/include/mix1.inc
index cc2f0e0588e..aa8720fe2f8 100644
--- a/mysql-test/include/mix1.inc
+++ b/mysql-test/include/mix1.inc
@@ -672,6 +672,54 @@ SELECT * FROM t3 WHERE a = 'uk';
DROP TABLE t1,t2,t3;
+#
+# Test bug when trying to drop data file which no InnoDB directory entry
+#
+
+create table t1 (a int) engine=innodb;
+copy_file $MYSQLTEST_VARDIR/master-data/test/t1.frm $MYSQLTEST_VARDIR/master-data/test/t2.frm;
+--error 1146
+select * from t2;
+drop table t1;
+--error 1051
+drop table t2;
+create table t2 (a int);
+drop table t2;
+
+
+#
+# Bug #29154: LOCK TABLES is not atomic when >1 InnoDB tables are locked
+#
+
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+CREATE TABLE t2 (a INT) ENGINE=InnoDB;
+
+CONNECT (c1,localhost,root,,);
+CONNECT (c2,localhost,root,,);
+
+--echo switch to connection c1
+CONNECTION c1;
+SET AUTOCOMMIT=0;
+INSERT INTO t2 VALUES (1);
+
+--echo switch to connection c2
+CONNECTION c2;
+SET AUTOCOMMIT=0;
+--error ER_LOCK_WAIT_TIMEOUT
+LOCK TABLES t1 READ, t2 READ;
+
+--echo switch to connection c1
+CONNECTION c1;
+COMMIT;
+INSERT INTO t1 VALUES (1);
+
+--echo switch to connection default
+CONNECTION default;
+SET AUTOCOMMIT=default;
+DISCONNECT c1;
+DISCONNECT c2;
+DROP TABLE t1,t2;
+
--echo End of 5.0 tests
#
diff --git a/mysql-test/include/query_cache_sql_prepare.inc b/mysql-test/include/query_cache_sql_prepare.inc
index cdb3bd586e7..cf6d4c26959 100644
--- a/mysql-test/include/query_cache_sql_prepare.inc
+++ b/mysql-test/include/query_cache_sql_prepare.inc
@@ -33,7 +33,7 @@ drop table if exists t1;
create table t1(c1 int);
insert into t1 values(1),(10),(100);
-# Prepared statements has no parameters, query caching should happen
+# First, prepared statements with no parameters
prepare stmt1 from "select * from t1 where c1=10";
show status like 'Qcache_hits';
execute stmt1;
@@ -113,7 +113,9 @@ show status like 'Qcache_hits';
--echo ---- switch to connection default ----
connection default;
-# Prepared statement has parameters, query caching should not happen
+# Query caching also works when statement has parameters
+# (BUG#29318 Statements prepared with PREPARE and with one parameter don't use
+# query cache)
prepare stmt1 from "select * from t1 where c1=?";
show status like 'Qcache_hits';
set @a=1;
@@ -127,6 +129,12 @@ set @a=1;
prepare stmt4 from "select * from t1 where c1=?";
execute stmt4 using @a;
show status like 'Qcache_hits';
+# verify that presence of user variables forbids caching
+prepare stmt4 from "select @a from t1 where c1=?";
+execute stmt4 using @a;
+show status like 'Qcache_hits';
+execute stmt4 using @a;
+show status like 'Qcache_hits';
--echo ---- switch to connection default ----
connection default;
diff --git a/mysql-test/include/rpl_events.inc b/mysql-test/include/rpl_events.inc
index bbe52d3628b..4b57468b2d7 100644
--- a/mysql-test/include/rpl_events.inc
+++ b/mysql-test/include/rpl_events.inc
@@ -13,52 +13,63 @@ drop table if exists t1,t2;
# first, we need a table to record something from an event
eval CREATE TABLE `t1` (
- `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+ `id` INT(10) UNSIGNED NOT NULL,
`c` VARCHAR(50) NOT NULL,
`ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=$engine_type DEFAULT CHARSET=utf8;
-INSERT INTO t1 (c) VALUES ('manually');
+INSERT INTO t1 (id, c) VALUES (1, 'manually');
-# then, we create the event
-CREATE EVENT test.justonce ON SCHEDULE AT NOW() + INTERVAL 2 SECOND DO INSERT INTO t1
-(c) VALUES ('from justonce');
+# We create the event so that it inserts exactly 1 row in the table
+# A recuring event is used so that we can be sure the event will
+# fire regardless of timing delays on the server. Otherwise, it is
+# possible for the event to timeout before it has inserted a row.
+--echo "Creating event test.justonce on the master"
+CREATE EVENT test.justonce ON SCHEDULE EVERY 2 SECOND DO
+ INSERT IGNORE INTO t1 (id, c) VALUES (2, 'from justonce');
+# Show the event is alive and present on master
+--echo "Checking event is active on master"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'justonce';
-# wait 3 seconds, so the event can trigger
---real_sleep 3
-let $wait_condition=
- SELECT count(*) = 1 FROM t1 WHERE c = 'from justonce';
---source include/wait_condition.inc
+# Wait until event has fired. We know this because t1 will contain
+# the row from the event.
+let $wait_condition=
+ SELECT COUNT(*) = 1 FROM t1 WHERE c = 'from justonce';
+--source include/wait_condition.inc
# check that table t1 contains something
---echo "in the master"
+--echo "Checking event data on the master"
--enable_info
--replace_column 3 TIMESTAMP
-SELECT * FROM t1 WHERE c = 'from justonce' OR c = 'manually' ORDER BY id;
+SELECT * FROM t1 ORDER BY id;
--disable_info
sync_slave_with_master;
---echo "in the slave"
+--echo "Checking event data on the slave"
--enable_info
--replace_column 3 TIMESTAMP
-SELECT * FROM t1 WHERE c = 'from justonce' OR c = 'manually' ORDER BY id;
+SELECT * FROM t1 ORDER BY id;
--disable_info
+--echo "Checking event is inactive on slave"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'justonce';
# Create an event on the slave and check to see what the originator is.
+--echo "Dropping event test.slave_once on the slave"
--disable_warnings
DROP EVENT IF EXISTS test.slave_once;
--enable_warnings
CREATE EVENT test.slave_once ON SCHEDULE EVERY 5 MINUTE DO
-INSERT INTO t1(c) VALUES ('from slave_once');
+ INSERT IGNORE INTO t1(id, c) VALUES (3, 'from slave_once');
+
+--echo "Checking event status on the slave for originator value = slave's server_id"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'slave_once';
+--echo "Dropping event test.slave_once on the slave"
--disable_warnings
DROP EVENT IF EXISTS test.slave_once;
--enable_warnings
@@ -66,57 +77,74 @@ DROP EVENT IF EXISTS test.slave_once;
connection master;
# BUG#20384 - disable events on slave
+--echo "Dropping event test.justonce on the master"
--disable_warnings
DROP EVENT IF EXISTS test.justonce;
--enable_warnings
+--echo "Creating event test.er on the master"
CREATE EVENT test.er ON SCHEDULE EVERY 3 SECOND DO
-INSERT INTO t1(c) VALUES ('from er');
+ INSERT IGNORE INTO t1(id, c) VALUES (4, 'from er');
+
+--echo "Checking event status on the master"
SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND name = 'er';
sync_slave_with_master;
---echo "in the slave"
+--echo "Checking event status on the slave"
SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND name = 'er';
connection master;
---echo "in the master"
-ALTER EVENT test.er ON SCHEDULE EVERY 5 SECOND DO INSERT into t1(c) VALUES ('from alter er');
+--echo "Altering event test.er on the master"
+ALTER EVENT test.er ON SCHEDULE EVERY 5 SECOND DO
+ INSERT IGNORE INTO t1(id, c) VALUES (5, 'from alter er');
+
+--echo "Checking event status on the master"
SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND name = 'er';
sync_slave_with_master;
---echo "in the slave"
+--echo "Checking event status on the slave"
SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND name = 'er';
connection master;
---echo "in the master"
+--echo "Dropping event test.er on the master"
DROP EVENT test.er;
+
+--echo "Checking event status on the master"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test';
--disable_info
sync_slave_with_master;
---echo "in the slave"
+--echo "Checking event status on the slave"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test';
# test the DISABLE ON SLAVE for setting event SLAVESIDE_DISABLED as status
# on CREATE EVENT
-CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND
-DO INSERT INTO t1(c) VALUES ('from slave_terminate');
+--echo "Creating event test.slave_terminate on the slave"
+CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND DO
+ INSERT IGNORE INTO t1(id, c) VALUES (6, 'from slave_terminate');
+
+--echo "Checking event status on the slave"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'slave_terminate';
+--echo "Dropping event test.slave_terminate on the slave"
DROP EVENT test.slave_terminate;
-CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND
-DISABLE ON SLAVE DO INSERT INTO t1(c) VALUES ('from slave_terminate');
+--echo "Creating event test.slave_terminate with DISABLE ON SLAVE on the slave"
+CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND DISABLE ON SLAVE DO
+ INSERT IGNORE INTO t1(c) VALUES (7, 'from slave_terminate');
+
+--echo "Checking event status on the slave"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'slave_terminate';
+--echo "Dropping event test.slave_terminate on the slave"
DROP EVENT test.slave_terminate;
---echo "in the master"
+--echo "Cleanup"
connection master;
DROP TABLE t1;
diff --git a/mysql-test/include/select_ndb_apply_status.inc b/mysql-test/include/select_ndb_apply_status.inc
new file mode 100644
index 00000000000..a676b7cfb06
--- /dev/null
+++ b/mysql-test/include/select_ndb_apply_status.inc
@@ -0,0 +1,13 @@
+##################################################
+# Author: Jeb
+# Date: 2007/04
+# Purpose: To select out log name, start and end
+# positions from ndb_apply_status table
+##################################################
+--replace_column 1 <log_name> 2 <start_pos> 3 <end_pos>
+select @log_name:=log_name, @start_pos:=start_pos, @end_pos:=end_pos
+ from mysql.ndb_apply_status;
+--let $start_pos = `select @start_pos`
+--let $end_pos = `select @end_pos`
+--let $log_name = `select @log_name`
+
diff --git a/mysql-test/include/show_binlog_using_logname.inc b/mysql-test/include/show_binlog_using_logname.inc
new file mode 100644
index 00000000000..d78c28e5916
--- /dev/null
+++ b/mysql-test/include/show_binlog_using_logname.inc
@@ -0,0 +1,13 @@
+########################################################
+# Author: Jeb
+# Date: 2007/04
+# Purpose: To select out 1 row from offset 1
+# from the start position in the binlog whose
+# name is = log_name
+########################################################
+
+--replace_result $start_pos <start_pos> $end_pos <end_pos>
+--replace_column 2 #
+--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
+--eval show binlog events in '$log_name' from $start_pos limit $off_set,1
+
diff --git a/mysql-test/include/tpcb.inc b/mysql-test/include/tpcb.inc
new file mode 100644
index 00000000000..84a5c98f9c2
--- /dev/null
+++ b/mysql-test/include/tpcb.inc
@@ -0,0 +1,155 @@
+##################################################
+# Author: Jeb
+# Date: 2007/04
+# Purpose: To create a tpcb database, tables and
+# stored procedures to load the database
+# and run transactions against the DB
+##################################################
+--disable_warnings
+DROP DATABASE IF EXISTS tpcb;
+--enable_warnings
+CREATE DATABASE tpcb;
+
+--echo
+CREATE TABLE tpcb.account (id INT, bid INT, balance DECIMAL(10,2),
+ filler CHAR(255), PRIMARY KEY(id));
+--echo
+CREATE TABLE tpcb.branch (bid INT, balance DECIMAL(10,2), filler VARCHAR(255),
+ PRIMARY KEY(bid));
+--echo
+CREATE TABLE tpcb.teller (tid INT, balance DECIMAL(10,2), filler VARCHAR(255),
+ PRIMARY KEY(tid));
+--echo
+CREATE TABLE tpcb.history (id MEDIUMINT NOT NULL AUTO_INCREMENT,aid INT,
+ tid INT, bid INT, amount DECIMAL(10,2),
+ tdate DATETIME, teller CHAR(20), uuidf LONGBLOB,
+ filler CHAR(80),PRIMARY KEY (id));
+
+--echo
+--echo --- Create stored procedures & functions ---
+--echo
+
+--disable_query_log
+delimiter |;
+CREATE PROCEDURE tpcb.load()
+BEGIN
+ DECLARE acct INT DEFAULT 100;
+ DECLARE brch INT DEFAULT 10;
+ DECLARE tell INT DEFAULT 100;
+ DECLARE tmp INT DEFAULT 10;
+ WHILE brch > 0 DO
+ SET tmp = 100;
+ WHILE tmp > 0 DO
+ INSERT INTO tpcb.account VALUES (acct, brch, 0.0, "FRESH ACCOUNT");
+ SET acct = acct - 1;
+ SET tmp = tmp -1;
+ END WHILE;
+ INSERT INTO tpcb.branch VALUES (brch, 0.0, "FRESH BRANCH");
+ SET brch = brch - 1;
+ END WHILE;
+ WHILE tell > 0 DO
+ INSERT INTO tpcb.teller VALUES (tell, 0.0, "FRESH TELLER");
+ SET tell = tell - 1;
+ END WHILE;
+END|
+
+CREATE FUNCTION tpcb.account_id () RETURNS INT
+BEGIN
+ DECLARE num INT;
+ DECLARE ran INT;
+ SELECT RAND() * 10 INTO ran;
+ IF (ran < 5)
+ THEN
+ SELECT RAND() * 10 INTO num;
+ ELSE
+ SELECT RAND() * 100 INTO num;
+ END IF;
+ IF (num < 1)
+ THEN
+ RETURN 1;
+ END IF;
+ RETURN num;
+END|
+
+CREATE FUNCTION tpcb.teller_id () RETURNS INT
+BEGIN
+ DECLARE num INT;
+ DECLARE ran INT;
+ SELECT RAND() * 10 INTO ran;
+ IF (ran < 5)
+ THEN
+ SELECT RAND() * 10 INTO num;
+ ELSE
+ SELECT RAND() * 100 INTO num;
+ END IF;
+ IF (num < 1)
+ THEN
+ RETURN 1;
+ END IF;
+ RETURN num;
+END|
+
+CREATE PROCEDURE tpcb.trans(in format varchar(3))
+BEGIN
+ DECLARE acct INT DEFAULT 0;
+ DECLARE brch INT DEFAULT 0;
+ DECLARE tell INT DEFAULT 0;
+ DECLARE bal DECIMAL(10,2) DEFAULT 0.0;
+ DECLARE amount DECIMAL(10,2) DEFAULT 1.00;
+ DECLARE test INT DEFAULT 0;
+ DECLARE bbal DECIMAL(10,2) DEFAULT 0.0;
+ DECLARE tbal DECIMAL(10,2) DEFAULT 0.0;
+ DECLARE local_uuid VARCHAR(255);
+ DECLARE local_user VARCHAR(255);
+ DECLARE local_time TIMESTAMP;
+
+ SELECT RAND() * 10 INTO test;
+ SELECT tpcb.account_id() INTO acct;
+ SELECT tpcb.teller_id() INTO tell;
+
+ SELECT account.balance INTO bal FROM tpcb.account WHERE id = acct;
+ SELECT account.bid INTO brch FROM tpcb.account WHERE id = acct;
+ SELECT teller.balance INTO tbal FROM tpcb.teller WHERE tid = tell;
+ SELECT branch.balance INTO bbal FROM tpcb.branch WHERE bid = brch;
+
+ IF (test < 5)
+ THEN
+ SET bal = bal + amount;
+ SET bbal = bbal + amount;
+ SET tbal = tbal + amount;
+ UPDATE tpcb.account SET balance = bal, filler = 'account updated'
+ WHERE id = acct;
+ UPDATE tpcb.branch SET balance = bbal, filler = 'branch updated'
+ WHERE bid = brch;
+ UPDATE tpcb.teller SET balance = tbal, filler = 'teller updated'
+ WHERE tid = tell;
+ ELSE
+ SET bal = bal - amount;
+ SET bbal = bbal - amount;
+ SET tbal = tbal - amount;
+ UPDATE tpcb.account SET balance = bal, filler = 'account updated'
+ WHERE id = acct;
+ UPDATE tpcb.branch SET balance = bbal, filler = 'branch updated'
+ WHERE bid = brch;
+ UPDATE tpcb.teller SET balance = tbal, filler = 'teller updated'
+ WHERE tid = tell;
+ END IF;
+
+ IF (format = 'SBR')
+ THEN
+ SET local_uuid=UUID();
+ SET local_user=USER();
+ SET local_time= NOW();
+ INSERT INTO tpcb.history VALUES(NULL,acct,tell,brch,amount, local_time,local_user,
+ local_uuid,'completed trans');
+ ELSE
+ INSERT INTO tpcb.history VALUES(NULL,acct,tell,brch,amount, NOW(), USER(),
+ UUID(),'completed trans');
+ END IF;
+END|
+delimiter ;|
+--enable_query_log
+--echo
+--echo *** Stored Procedures Created ***
+--echo
+
diff --git a/mysql-test/include/tpcb_disk_data.inc b/mysql-test/include/tpcb_disk_data.inc
new file mode 100644
index 00000000000..dbdf3766bbc
--- /dev/null
+++ b/mysql-test/include/tpcb_disk_data.inc
@@ -0,0 +1,166 @@
+##################################################
+# Author: Jeb
+# Date: 2007/05
+# Purpose: To create a tpcb database using Disk Data,
+# tables and stored procedures to load the database
+# and run transactions against the DB
+##################################################
+--disable_warnings
+DROP DATABASE IF EXISTS tpcb;
+--enable_warnings
+CREATE DATABASE tpcb;
+
+--echo
+eval CREATE TABLE tpcb.account
+ (id INT, bid INT, balance DECIMAL(10,2),
+ filler CHAR(255), PRIMARY KEY(id))
+ TABLESPACE $table_space STORAGE DISK
+ ENGINE=$engine_type;
+--echo
+eval CREATE TABLE tpcb.branch
+ (bid INT, balance DECIMAL(10,2), filler VARCHAR(255),
+ PRIMARY KEY(bid))TABLESPACE $table_space STORAGE DISK
+ ENGINE=$engine_type;
+--echo
+eval CREATE TABLE tpcb.teller
+ (tid INT, balance DECIMAL(10,2), filler VARCHAR(255),
+ PRIMARY KEY(tid)) TABLESPACE $table_space STORAGE DISK
+ ENGINE=$engine_type;
+
+--echo
+eval CREATE TABLE tpcb.history
+ (id MEDIUMINT NOT NULL AUTO_INCREMENT,aid INT,
+ tid INT, bid INT, amount DECIMAL(10,2),
+ tdate DATETIME, teller CHAR(20), uuidf LONGBLOB,
+ filler CHAR(80),PRIMARY KEY (id))
+ TABLESPACE $table_space STORAGE DISK
+ ENGINE=$engine_type;
+
+--echo
+--echo --- Create stored procedures & functions ---
+--echo
+
+--disable_query_log
+delimiter |;
+CREATE PROCEDURE tpcb.load()
+BEGIN
+ DECLARE acct INT DEFAULT 100;
+ DECLARE brch INT DEFAULT 10;
+ DECLARE tell INT DEFAULT 100;
+ DECLARE tmp INT DEFAULT 10;
+ WHILE brch > 0 DO
+ SET tmp = 100;
+ WHILE tmp > 0 DO
+ INSERT INTO tpcb.account VALUES (acct, brch, 0.0, "FRESH ACCOUNT");
+ SET acct = acct - 1;
+ SET tmp = tmp -1;
+ END WHILE;
+ INSERT INTO tpcb.branch VALUES (brch, 0.0, "FRESH BRANCH");
+ SET brch = brch - 1;
+ END WHILE;
+ WHILE tell > 0 DO
+ INSERT INTO tpcb.teller VALUES (tell, 0.0, "FRESH TELLER");
+ SET tell = tell - 1;
+ END WHILE;
+END|
+
+CREATE FUNCTION tpcb.account_id () RETURNS INT
+BEGIN
+ DECLARE num INT;
+ DECLARE ran INT;
+ SELECT RAND() * 10 INTO ran;
+ IF (ran < 5)
+ THEN
+ SELECT RAND() * 10 INTO num;
+ ELSE
+ SELECT RAND() * 100 INTO num;
+ END IF;
+ IF (num < 1)
+ THEN
+ RETURN 1;
+ END IF;
+ RETURN num;
+END|
+
+CREATE FUNCTION tpcb.teller_id () RETURNS INT
+BEGIN
+ DECLARE num INT;
+ DECLARE ran INT;
+ SELECT RAND() * 10 INTO ran;
+ IF (ran < 5)
+ THEN
+ SELECT RAND() * 10 INTO num;
+ ELSE
+ SELECT RAND() * 100 INTO num;
+ END IF;
+ IF (num < 1)
+ THEN
+ RETURN 1;
+ END IF;
+ RETURN num;
+END|
+
+CREATE PROCEDURE tpcb.trans(in format varchar(3))
+BEGIN
+ DECLARE acct INT DEFAULT 0;
+ DECLARE brch INT DEFAULT 0;
+ DECLARE tell INT DEFAULT 0;
+ DECLARE bal DECIMAL(10,2) DEFAULT 0.0;
+ DECLARE amount DECIMAL(10,2) DEFAULT 1.00;
+ DECLARE test INT DEFAULT 0;
+ DECLARE bbal DECIMAL(10,2) DEFAULT 0.0;
+ DECLARE tbal DECIMAL(10,2) DEFAULT 0.0;
+ DECLARE local_uuid VARCHAR(255);
+ DECLARE local_user VARCHAR(255);
+ DECLARE local_time TIMESTAMP;
+
+ SELECT RAND() * 10 INTO test;
+ SELECT tpcb.account_id() INTO acct;
+ SELECT tpcb.teller_id() INTO tell;
+
+ SELECT account.balance INTO bal FROM tpcb.account WHERE id = acct;
+ SELECT account.bid INTO brch FROM tpcb.account WHERE id = acct;
+ SELECT teller.balance INTO tbal FROM tpcb.teller WHERE tid = tell;
+ SELECT branch.balance INTO bbal FROM tpcb.branch WHERE bid = brch;
+
+ IF (test < 5)
+ THEN
+ SET bal = bal + amount;
+ SET bbal = bbal + amount;
+ SET tbal = tbal + amount;
+ UPDATE tpcb.account SET balance = bal, filler = 'account updated'
+ WHERE id = acct;
+ UPDATE tpcb.branch SET balance = bbal, filler = 'branch updated'
+ WHERE bid = brch;
+ UPDATE tpcb.teller SET balance = tbal, filler = 'teller updated'
+ WHERE tid = tell;
+ ELSE
+ SET bal = bal - amount;
+ SET bbal = bbal - amount;
+ SET tbal = tbal - amount;
+ UPDATE tpcb.account SET balance = bal, filler = 'account updated'
+ WHERE id = acct;
+ UPDATE tpcb.branch SET balance = bbal, filler = 'branch updated'
+ WHERE bid = brch;
+ UPDATE tpcb.teller SET balance = tbal, filler = 'teller updated'
+ WHERE tid = tell;
+ END IF;
+
+ IF (format = 'SBR')
+ THEN
+ SET local_uuid=UUID();
+ SET local_user=USER();
+ SET local_time= NOW();
+ INSERT INTO tpcb.history VALUES(NULL,acct,tell,brch,amount, local_time,local_user,
+ local_uuid,'completed trans');
+ ELSE
+ INSERT INTO tpcb.history VALUES(NULL,acct,tell,brch,amount, NOW(), USER(),
+ UUID(),'completed trans');
+ END IF;
+END|
+delimiter ;|
+--enable_query_log
+--echo
+--echo *** Stored Procedures Created ***
+--echo
+
diff --git a/mysql-test/lib/mtr_cases.pl b/mysql-test/lib/mtr_cases.pl
index 11ff85818a7..120947c84a7 100644
--- a/mysql-test/lib/mtr_cases.pl
+++ b/mysql-test/lib/mtr_cases.pl
@@ -631,6 +631,7 @@ our @tags=
["include/big_test.inc", "big_test", 1],
["include/have_debug.inc", "need_debug", 1],
["include/have_ndb.inc", "ndb_test", 1],
+ ["include/have_multi_ndb.inc", "ndb_test", 1],
["include/have_ndb_extra.inc", "ndb_extra", 1],
["require_manager", "require_manager", 1],
);
diff --git a/mysql-test/lib/mtr_report.pl b/mysql-test/lib/mtr_report.pl
index d82ed200a4b..a9d6d17d870 100644
--- a/mysql-test/lib/mtr_report.pl
+++ b/mysql-test/lib/mtr_report.pl
@@ -364,7 +364,12 @@ sub mtr_report_stats ($) {
# Bug #28436: Incorrect position in SHOW BINLOG EVENTS causes
# server coredump
/\QError in Log_event::read_log_event(): 'Sanity check failed', data_len: 258, event_type: 49\E/ or
- /Statement is not safe to log in statement format/
+ /Statement is not safe to log in statement format/ or
+
+ # Test case for Bug#14233 produces the following warnings:
+ /Stored routine 'test'.'bug14233_1': invalid value in column mysql.proc/ or
+ /Stored routine 'test'.'bug14233_2': invalid value in column mysql.proc/ or
+ /Stored routine 'test'.'bug14233_3': invalid value in column mysql.proc/
)
{
next; # Skip these lines
diff --git a/mysql-test/r/binary.result b/mysql-test/r/binary.result
index ccafa43c7ab..be87c25e932 100644
--- a/mysql-test/r/binary.result
+++ b/mysql-test/r/binary.result
@@ -160,3 +160,41 @@ hex(col1)
62000000000000000000
62200000000000000000
drop table t1;
+CREATE TABLE t1 (
+a binary(20) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
+index idx(a)
+);
+INSERT INTO t1 SET a=unhex('1F9480179366F2BF567E1C4B964C1EF029087575');
+INSERT INTO t1 SET a=unhex('1F9480179366F2BF567E1C4B964C1EF029082020');
+INSERT INTO t1 SET a=unhex('1F9480179366F2BF567E1C4B964C1EF029080707');
+SELECT hex(a) FROM t1 order by a;
+hex(a)
+1F9480179366F2BF567E1C4B964C1EF029080707
+1F9480179366F2BF567E1C4B964C1EF029082020
+1F9480179366F2BF567E1C4B964C1EF029087575
+EXPLAIN SELECT hex(a) FROM t1 order by a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL idx 20 NULL 3 Using index
+SELECT hex(a) from t1 WHERE a=unhex('1F9480179366F2BF567E1C4B964C1EF029082020');
+hex(a)
+1F9480179366F2BF567E1C4B964C1EF029082020
+EXPLAIN
+SELECT hex(a) from t1 WHERE a=unhex('1F9480179366F2BF567E1C4B964C1EF029082020');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref idx idx 20 const 1 Using where; Using index
+SELECT hex(a) from t1 WHERE a=unhex('1F9480179366F2BF567E1C4B964C1EF02908');
+hex(a)
+DROP TABLE t1;
+CREATE TABLE t1 (
+id numeric(20) NOT NULL,
+lang varchar(8) NOT NULL,
+msg varchar(32) NOT NULL,
+PRIMARY KEY (id,lang)
+);
+INSERT INTO t1 VALUES (33, 'en', 'zzzzzzz');
+INSERT INTO t1 VALUES (31, 'en', 'xxxxxxx');
+INSERT INTO t1 VALUES (32, 'en', 'yyyyyyy');
+SELECT * FROM t1 WHERE id=32;
+id lang msg
+32 en yyyyyyy
+DROP TABLE t1;
diff --git a/mysql-test/r/binlog_multi_engine.result b/mysql-test/r/binlog_multi_engine.result
index 71b2d7b0c48..d605fbfaf67 100644
--- a/mysql-test/r/binlog_multi_engine.result
+++ b/mysql-test/r/binlog_multi_engine.result
@@ -30,8 +30,6 @@ master-bin.000001 # Query # # use `test`; TRUNCATE t1b
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (test.t1n)
master-bin.000001 # Table_map # # table_id: # (mysql.ndb_apply_status)
-master-bin.000001 # Write_rows # # table_id: #
-master-bin.000001 # Write_rows # # table_id: #
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # use `test`; TRUNCATE t1n
@@ -41,8 +39,10 @@ INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2);
INSERT INTO t1b VALUES (1,1), (1,2), (2,1), (2,2);
INSERT INTO t1n VALUES (1,1), (1,2), (2,1), (2,2);
UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c;
+UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f;
+ERROR HY000: Binary logging not possible. Message: Statement cannot be written atomically since more than one engine involved and at least one engine is self-logging
UPDATE t1n, t1b SET e = 2, b = 3 WHERE f = c;
-ERROR HY000: Binary logging not possible. Message: Statement cannot be logged to the binary log in row-based nor statement-based format
+ERROR HY000: Binary logging not possible. Message: Statement cannot be written atomically since more than one engine involved and at least one engine is self-logging
TRUNCATE t1m;
TRUNCATE t1b;
TRUNCATE t1n;
@@ -69,8 +69,10 @@ ERROR HY000: Binary logging not possible. Message: Row-based format required for
INSERT INTO t1n VALUES (1,1), (1,2), (2,1), (2,2);
UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c;
ERROR HY000: Binary logging not possible. Message: Row-based format required for this statement, but not allowed by this combination of engines
+UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f;
+ERROR HY000: Binary logging not possible. Message: Statement cannot be written atomically since more than one engine involved and at least one engine is self-logging
UPDATE t1n, t1b SET e = 2, b = 3 WHERE f = c;
-ERROR HY000: Binary logging not possible. Message: Statement cannot be logged to the binary log in row-based nor statement-based format
+ERROR HY000: Binary logging not possible. Message: Row-based format required for this statement, but not allowed by this combination of engines
show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Table_map # # table_id: # (test.t1m)
diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result
index e73b74ccac3..cdbb767dd9f 100644
--- a/mysql-test/r/create.result
+++ b/mysql-test/r/create.result
@@ -878,6 +878,644 @@ unlock tables;
drop table t1, t2;
create table t1 (upgrade int);
drop table t1;
+create table t1 (
+c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int,
+c9 int, c10 int, c11 int, c12 int, c13 int, c14 int, c15 int, c16 int,
+key a001_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a002_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a003_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a004_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a005_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a006_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a007_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a008_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a009_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a010_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a011_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a012_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a013_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a014_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a015_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a016_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a017_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a018_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a019_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a020_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a021_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a022_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a023_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a024_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a025_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a026_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a027_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a028_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a029_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a030_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a031_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a032_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a033_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a034_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a035_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a036_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a037_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a038_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a039_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a040_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a041_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a042_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a043_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a044_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a045_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a046_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a047_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a048_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a049_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a050_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a051_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a052_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a053_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a054_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a055_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a056_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a057_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a058_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a059_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a060_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a061_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a062_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a063_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a064_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16)
+);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `c1` int(11) DEFAULT NULL,
+ `c2` int(11) DEFAULT NULL,
+ `c3` int(11) DEFAULT NULL,
+ `c4` int(11) DEFAULT NULL,
+ `c5` int(11) DEFAULT NULL,
+ `c6` int(11) DEFAULT NULL,
+ `c7` int(11) DEFAULT NULL,
+ `c8` int(11) DEFAULT NULL,
+ `c9` int(11) DEFAULT NULL,
+ `c10` int(11) DEFAULT NULL,
+ `c11` int(11) DEFAULT NULL,
+ `c12` int(11) DEFAULT NULL,
+ `c13` int(11) DEFAULT NULL,
+ `c14` int(11) DEFAULT NULL,
+ `c15` int(11) DEFAULT NULL,
+ `c16` int(11) DEFAULT NULL,
+ KEY `a001_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a002_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a003_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a004_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a005_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a006_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a007_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a008_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a009_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a010_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a011_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a012_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a013_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a014_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a015_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a016_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a017_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a018_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a019_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a020_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a021_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a022_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a023_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a024_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a025_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a026_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a027_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a028_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a029_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a030_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a031_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a032_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a033_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a034_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a035_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a036_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a037_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a038_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a039_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a040_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a041_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a042_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a043_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a044_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a045_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a046_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a047_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a048_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a049_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a050_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a051_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a052_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a053_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a054_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a055_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a056_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a057_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a058_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a059_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a060_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a061_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a062_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a063_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a064_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+flush tables;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `c1` int(11) DEFAULT NULL,
+ `c2` int(11) DEFAULT NULL,
+ `c3` int(11) DEFAULT NULL,
+ `c4` int(11) DEFAULT NULL,
+ `c5` int(11) DEFAULT NULL,
+ `c6` int(11) DEFAULT NULL,
+ `c7` int(11) DEFAULT NULL,
+ `c8` int(11) DEFAULT NULL,
+ `c9` int(11) DEFAULT NULL,
+ `c10` int(11) DEFAULT NULL,
+ `c11` int(11) DEFAULT NULL,
+ `c12` int(11) DEFAULT NULL,
+ `c13` int(11) DEFAULT NULL,
+ `c14` int(11) DEFAULT NULL,
+ `c15` int(11) DEFAULT NULL,
+ `c16` int(11) DEFAULT NULL,
+ KEY `a001_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a002_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a003_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a004_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a005_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a006_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a007_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a008_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a009_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a010_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a011_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a012_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a013_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a014_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a015_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a016_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a017_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a018_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a019_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a020_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a021_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a022_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a023_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a024_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a025_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a026_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a027_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a028_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a029_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a030_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a031_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a032_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a033_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a034_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a035_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a036_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a037_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a038_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a039_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a040_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a041_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a042_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a043_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a044_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a045_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a046_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a047_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a048_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a049_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a050_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a051_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a052_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a053_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a054_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a055_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a056_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a057_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a058_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a059_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a060_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a061_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a062_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a063_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a064_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int,
+c8 int, c9 int, c10 int, c11 int, c12 int, c13 int, c14 int, c15 int, c16 int);
+alter table t1
+add key a001_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a002_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a003_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a004_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a005_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a006_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a007_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a008_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a009_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a010_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a011_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a012_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a013_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a014_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a015_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a016_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a017_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a018_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a019_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a020_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a021_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a022_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a023_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a024_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a025_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a026_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a027_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a028_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a029_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a030_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a031_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a032_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a033_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a034_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a035_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a036_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a037_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a038_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a039_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a040_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a041_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a042_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a043_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a044_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a045_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a046_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a047_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a048_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a049_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a050_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a051_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a052_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a053_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a054_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a055_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a056_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a057_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a058_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a059_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a060_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a061_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a062_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a063_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a064_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `c1` int(11) DEFAULT NULL,
+ `c2` int(11) DEFAULT NULL,
+ `c3` int(11) DEFAULT NULL,
+ `c4` int(11) DEFAULT NULL,
+ `c5` int(11) DEFAULT NULL,
+ `c6` int(11) DEFAULT NULL,
+ `c7` int(11) DEFAULT NULL,
+ `c8` int(11) DEFAULT NULL,
+ `c9` int(11) DEFAULT NULL,
+ `c10` int(11) DEFAULT NULL,
+ `c11` int(11) DEFAULT NULL,
+ `c12` int(11) DEFAULT NULL,
+ `c13` int(11) DEFAULT NULL,
+ `c14` int(11) DEFAULT NULL,
+ `c15` int(11) DEFAULT NULL,
+ `c16` int(11) DEFAULT NULL,
+ KEY `a001_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a002_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a003_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a004_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a005_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a006_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a007_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a008_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a009_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a010_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a011_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a012_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a013_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a014_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a015_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a016_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a017_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a018_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a019_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a020_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a021_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a022_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a023_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a024_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a025_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a026_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a027_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a028_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a029_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a030_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a031_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a032_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a033_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a034_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a035_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a036_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a037_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a038_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a039_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a040_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a041_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a042_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a043_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a044_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a045_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a046_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a047_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a048_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a049_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a050_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a051_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a052_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a053_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a054_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a055_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a056_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a057_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a058_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a059_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a060_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a061_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a062_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a063_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a064_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+flush tables;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `c1` int(11) DEFAULT NULL,
+ `c2` int(11) DEFAULT NULL,
+ `c3` int(11) DEFAULT NULL,
+ `c4` int(11) DEFAULT NULL,
+ `c5` int(11) DEFAULT NULL,
+ `c6` int(11) DEFAULT NULL,
+ `c7` int(11) DEFAULT NULL,
+ `c8` int(11) DEFAULT NULL,
+ `c9` int(11) DEFAULT NULL,
+ `c10` int(11) DEFAULT NULL,
+ `c11` int(11) DEFAULT NULL,
+ `c12` int(11) DEFAULT NULL,
+ `c13` int(11) DEFAULT NULL,
+ `c14` int(11) DEFAULT NULL,
+ `c15` int(11) DEFAULT NULL,
+ `c16` int(11) DEFAULT NULL,
+ KEY `a001_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a002_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a003_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a004_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a005_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a006_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a007_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a008_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a009_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a010_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a011_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a012_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a013_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a014_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a015_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a016_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a017_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a018_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a019_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a020_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a021_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a022_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a023_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a024_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a025_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a026_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a027_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a028_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a029_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a030_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a031_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a032_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a033_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a034_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a035_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a036_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a037_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a038_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a039_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a040_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a041_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a042_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a043_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a044_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a045_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a046_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a047_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a048_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a049_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a050_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a051_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a052_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a053_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a054_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a055_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a056_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a057_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a058_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a059_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a060_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a061_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a062_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a063_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a064_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+alter table t1 add key
+a065_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16);
+ERROR 42000: Too many keys specified; max 64 keys allowed
+drop table t1;
+create table t1 (c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int,
+c8 int, c9 int, c10 int, c11 int, c12 int, c13 int, c14 int, c15 int,
+c16 int, c17 int);
+alter table t1 add key i1 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16, c17);
+ERROR 42000: Too many key parts specified; max 16 parts allowed
+alter table t1 add key
+a001_long_123456789_123456789_123456789_123456789_123456789_12345 (c1);
+ERROR 42000: Identifier name 'a001_long_123456789_123456789_123456789_123456789_123456789_12345' is too long
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `c1` int(11) DEFAULT NULL,
+ `c2` int(11) DEFAULT NULL,
+ `c3` int(11) DEFAULT NULL,
+ `c4` int(11) DEFAULT NULL,
+ `c5` int(11) DEFAULT NULL,
+ `c6` int(11) DEFAULT NULL,
+ `c7` int(11) DEFAULT NULL,
+ `c8` int(11) DEFAULT NULL,
+ `c9` int(11) DEFAULT NULL,
+ `c10` int(11) DEFAULT NULL,
+ `c11` int(11) DEFAULT NULL,
+ `c12` int(11) DEFAULT NULL,
+ `c13` int(11) DEFAULT NULL,
+ `c14` int(11) DEFAULT NULL,
+ `c15` int(11) DEFAULT NULL,
+ `c16` int(11) DEFAULT NULL,
+ `c17` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
End of 5.0 tests
CREATE TABLE t1 (a int, b int);
insert into t1 values (1,1),(1,2);
@@ -980,8 +1618,8 @@ Table Create Table
KEY `имя_индекса_в_кодировке_утф8_длиной_больше_чем_48` (`имя_поля_в_кодировке_утф8_длиной_больше_чем_45`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show create view имя_вью_кодировке_утф8_длиной_больше_чем_42;
-View Create View
-имя_вью_кодировке_утф8_длиной_больше_чем_42 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `имя_вью_кодировке_утф8_длиной_больше_чем_42` AS select `имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48`.`имя_поля_в_кодировке_утф8_длиной_больше_чем_45` AS `имя_поля_в_кодировке_утф8_длиной_больше_чем_45` from `имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48`
+View Create View character_set_client collation_connection
+имя_вью_кодировке_утф8_длиной_больше_чем_42 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `имя_вью_кодировке_утф8_длиной_больше_чем_42` AS select `имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48`.`имя_поля_в_кодировке_утф8_длиной_больше_чем_45` AS `имя_поля_в_кодировке_утф8_длиной_больше_чем_45` from `имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48` utf8 utf8_general_ci
create event имя_события_в_кодировке_утф8_длиной_больше_чем_48 on schedule every 2 year do select 1;
select EVENT_NAME from information_schema.events
where event_schema='test';
diff --git a/mysql-test/r/ctype_collate.result b/mysql-test/r/ctype_collate.result
index c5d433cd080..5417c9da47e 100644
--- a/mysql-test/r/ctype_collate.result
+++ b/mysql-test/r/ctype_collate.result
@@ -595,3 +595,11 @@ EXPLAIN SELECT * FROM t1 WHERE s2 LIKE 'a' COLLATE latin1_german1_ci;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL s2 NULL NULL NULL 10 Using where
DROP TABLE t1;
+create table t1(f1 varchar(10) character set latin2 collate latin2_hungarian_ci, key(f1));
+insert into t1 set f1=0x3F3F9DC73F;
+insert into t1 set f1=0x3F3F1E563F;
+insert into t1 set f1=0x3F3F;
+check table t1 extended;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+drop table t1;
diff --git a/mysql-test/r/ctype_cp932_binlog_stm.result b/mysql-test/r/ctype_cp932_binlog_stm.result
index b9a39b88ae5..c6ca7a3f008 100644
--- a/mysql-test/r/ctype_cp932_binlog_stm.result
+++ b/mysql-test/r/ctype_cp932_binlog_stm.result
@@ -40,9 +40,9 @@ IN ind DECIMAL(10,2))
BEGIN
INSERT INTO t4 VALUES (ins1, ins2, ind);
END
-master-bin.000001 783 Query 1 1002 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172), NAME_CONST('ins2',_cp932 0xED40ED41ED42), NAME_CONST('ind',47.93))
-master-bin.000001 1002 Query 1 1091 use `test`; DROP PROCEDURE bug18293
-master-bin.000001 1091 Query 1 1170 use `test`; DROP TABLE t4
+master-bin.000001 783 Query 1 999 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172), NAME_CONST('ins2',_cp932 0xED40ED41ED42), NAME_CONST('ind',47.93))
+master-bin.000001 999 Query 1 1085 use `test`; DROP PROCEDURE bug18293
+master-bin.000001 1085 Query 1 1161 use `test`; DROP TABLE t4
End of 5.0 tests
SHOW BINLOG EVENTS FROM 364;
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Wrong offset or I/O error
diff --git a/mysql-test/r/ctype_uca.result b/mysql-test/r/ctype_uca.result
index 1fd1493bf1e..889702e380c 100644
--- a/mysql-test/r/ctype_uca.result
+++ b/mysql-test/r/ctype_uca.result
@@ -2663,3 +2663,95 @@ COUNT(*) c1
1
1 a
DROP TABLE IF EXISTS t1;
+set names utf8;
+create table t1 (
+a varchar(255),
+key a(a)
+) character set utf8 collate utf8_danish_ci;
+insert into t1 values ('åaaaa'),('ååaaa'),('aaaaa');
+select a as like_a from t1 where a like 'a%';
+like_a
+aaaaa
+select a as like_aa from t1 where a like 'aa%';
+like_aa
+aaaaa
+select a as like_aaa from t1 where a like 'aaa%';
+like_aaa
+aaaaa
+select a as like_aaaa from t1 where a like 'aaaa%';
+like_aaaa
+aaaaa
+select a as like_aaaaa from t1 where a like 'aaaaa%';
+like_aaaaa
+aaaaa
+alter table t1 convert to character set ucs2 collate ucs2_danish_ci;
+select a as like_a from t1 where a like 'a%';
+like_a
+aaaaa
+select a as like_aa from t1 where a like 'aa%';
+like_aa
+aaaaa
+select a as like_aaa from t1 where a like 'aaa%';
+like_aaa
+aaaaa
+select a as like_aaaa from t1 where a like 'aaaa%';
+like_aaaa
+aaaaa
+select a as like_aaaaa from t1 where a like 'aaaaa%';
+like_aaaaa
+aaaaa
+drop table t1;
+create table t1 (
+a varchar(255),
+key(a)
+) character set utf8 collate utf8_spanish2_ci;
+insert into t1 values ('aaaaa'),('lllll'),('zzzzz');
+select a as like_l from t1 where a like 'l%';
+like_l
+lllll
+select a as like_ll from t1 where a like 'll%';
+like_ll
+lllll
+select a as like_lll from t1 where a like 'lll%';
+like_lll
+lllll
+select a as like_llll from t1 where a like 'llll%';
+like_llll
+lllll
+select a as like_lllll from t1 where a like 'lllll%';
+like_lllll
+lllll
+alter table t1 convert to character set ucs2 collate ucs2_spanish2_ci;
+select a as like_l from t1 where a like 'l%';
+like_l
+lllll
+select a as like_ll from t1 where a like 'll%';
+like_ll
+lllll
+select a as like_lll from t1 where a like 'lll%';
+like_lll
+lllll
+select a as like_llll from t1 where a like 'llll%';
+like_llll
+lllll
+select a as like_lllll from t1 where a like 'lllll%';
+like_lllll
+lllll
+drop table t1;
+create table t1 (
+a varchar(255),
+key a(a)
+) character set utf8 collate utf8_czech_ci;
+insert into t1 values
+('b'),('c'),('d'),('e'),('f'),('g'),('h'),('ch'),('i'),('j');
+select * from t1 where a like 'c%';
+a
+c
+ch
+alter table t1 convert to character set ucs2 collate ucs2_czech_ci;
+select * from t1 where a like 'c%';
+a
+c
+ch
+drop table t1;
+End for 5.0 tests
diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result
index fcfe5d6345b..6f1c9d3d52a 100644
--- a/mysql-test/r/ctype_ucs.result
+++ b/mysql-test/r/ctype_ucs.result
@@ -865,4 +865,25 @@ blob 65535 65535
text 65535 65535
text 65535 32767
drop table t1;
+create table t1 (a char(1) character set ucs2);
+insert into t1 values ('a'),('b'),('c');
+select hex(group_concat(a)) from t1;
+hex(group_concat(a))
+0061002C0062002C0063
+select collation(group_concat(a)) from t1;
+collation(group_concat(a))
+ucs2_general_ci
+drop table t1;
+set names latin1;
+create table t1 (a char(1) character set latin1);
+insert into t1 values ('a'),('b'),('c');
+set character_set_connection=ucs2;
+select hex(group_concat(a separator ',')) from t1;
+hex(group_concat(a separator ','))
+612C622C63
+select collation(group_concat(a separator ',')) from t1;
+collation(group_concat(a separator ','))
+latin1_swedish_ci
+drop table t1;
+set names latin1;
End of 5.0 tests
diff --git a/mysql-test/r/ctype_ucs2_def.result b/mysql-test/r/ctype_ucs2_def.result
index fb21fb4a6c1..6fd45428368 100644
--- a/mysql-test/r/ctype_ucs2_def.result
+++ b/mysql-test/r/ctype_ucs2_def.result
@@ -7,6 +7,13 @@ character_set_server ucs2
DROP TABLE IF EXISTS t1;
create table t1 (a int);
drop table t1;
+End of 4.1 tests
+create table t1 (a char(1) character set latin1);
+insert into t1 values ('a'),('b'),('c');
+select hex(group_concat(a)) from t1;
+hex(group_concat(a))
+612C622C63
+drop table t1;
CREATE TABLE t1(col1 VARCHAR(32) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL,
col2 VARCHAR(32) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL,
UNIQUE KEY key1 USING HASH (col1, col2)) ENGINE=MEMORY;
diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result
index 8601e6890de..4778e9a6296 100644
--- a/mysql-test/r/ctype_utf8.result
+++ b/mysql-test/r/ctype_utf8.result
@@ -1657,3 +1657,40 @@ colA colB colA colB
1 foo 1 foo
2 foo bar 2 foo bar
DROP TABLE t1, t2;
+SELECT 'н1234567890' UNION SELECT _binary '1';
+н1234567890
+н1234567890
+1
+SELECT 'н1234567890' UNION SELECT 1;
+н1234567890
+н1234567890
+1
+SELECT '1' UNION SELECT 'н1234567890';
+1
+1
+н1234567890
+SELECT 1 UNION SELECT 'н1234567890';
+1
+1
+н1234567890
+CREATE TABLE t1 (c VARCHAR(11)) CHARACTER SET utf8;
+CREATE TABLE t2 (b CHAR(1) CHARACTER SET binary, i INT);
+INSERT INTO t1 (c) VALUES ('н1234567890');
+INSERT INTO t2 (b, i) VALUES ('1', 1);
+SELECT c FROM t1 UNION SELECT b FROM t2;
+c
+н1234567890
+1
+SELECT c FROM t1 UNION SELECT i FROM t2;
+c
+н1234567890
+1
+SELECT b FROM t2 UNION SELECT c FROM t1;
+b
+1
+н1234567890
+SELECT i FROM t2 UNION SELECT c FROM t1;
+i
+1
+н1234567890
+DROP TABLE t1, t2;
diff --git a/mysql-test/r/ddl_i18n_koi8r.result b/mysql-test/r/ddl_i18n_koi8r.result
new file mode 100644
index 00000000000..9e5931330e2
--- /dev/null
+++ b/mysql-test/r/ddl_i18n_koi8r.result
@@ -0,0 +1,2783 @@
+set names koi8r;
+
+-------------------------------------------------------------------
+Views
+-------------------------------------------------------------------
+
+DROP DATABASE IF EXISTS mysqltest1|
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+use mysqltest1|
+CREATE TABLE t1( INT)|
+INSERT INTO t1 VALUES(1)|
+
+CREATE VIEW v1 AS
+SELECT '' AS c1, AS c2
+FROM t1|
+
+CREATE VIEW v2 AS SELECT _utf8'тест' as c1|
+
+
+
+SHOW CREATE VIEW v1|
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select _koi8r'' AS `c1`,`t1`.`` AS `c2` from `t1` koi8r koi8r_general_ci
+
+SHOW CREATE VIEW v2|
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select _utf8'тест' AS `c1` koi8r koi8r_general_ci
+
+
+SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
+NULL mysqltest1 v1 SELECT '' AS c1, AS c2 NONE YES root@localhost DEFINER koi8r koi8r_general_ci
+
+SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
+NULL mysqltest1 v2 SELECT '' as c1 NONE NO root@localhost DEFINER koi8r koi8r_general_ci
+
+
+SELECT COLLATION(c1), COLLATION(c2) FROM v1|
+COLLATION(c1) COLLATION(c2)
+koi8r_general_ci binary
+
+SELECT COLLATION(c1) FROM v2|
+COLLATION(c1)
+utf8_general_ci
+
+
+ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
+
+---> connection: con2
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+SELECT * FROM mysqltest1.v1|
+SELECT * FROM mysqltest1.v2|
+use mysqltest1|
+set names koi8r|
+
+
+SHOW CREATE VIEW v1|
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select _koi8r'' AS `c1`,`t1`.`` AS `c2` from `t1` koi8r koi8r_general_ci
+
+SHOW CREATE VIEW v2|
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select _utf8'тест' AS `c1` koi8r koi8r_general_ci
+
+
+SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
+NULL mysqltest1 v1 SELECT '' AS c1, AS c2 NONE YES root@localhost DEFINER koi8r koi8r_general_ci
+
+SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
+NULL mysqltest1 v2 SELECT '' as c1 NONE NO root@localhost DEFINER koi8r koi8r_general_ci
+
+
+SELECT COLLATION(c1), COLLATION(c2) FROM v1|
+COLLATION(c1) COLLATION(c2)
+koi8r_general_ci binary
+
+SELECT COLLATION(c1) FROM v2|
+COLLATION(c1)
+utf8_general_ci
+
+---> Dumping mysqltest1 to ddl_i18n_koi8r.views.mysqltest1.sql
+
+
+DROP DATABASE mysqltest1|
+
+
+---> Restoring mysqltest1...
+
+---> connection: con3
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+SELECT * FROM mysqltest1.v1|
+SELECT * FROM mysqltest1.v2|
+use mysqltest1|
+set names koi8r|
+
+
+SHOW CREATE VIEW v1|
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select _koi8r'' AS `c1`,`t1`.`` AS `c2` from `t1` koi8r koi8r_general_ci
+
+SHOW CREATE VIEW v2|
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select _utf8'тест' AS `c1` koi8r koi8r_general_ci
+
+
+SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
+NULL mysqltest1 v1 select '' AS `c1`,`t1`.`` AS `c2` from `t1` NONE YES root@localhost DEFINER koi8r koi8r_general_ci
+
+SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
+NULL mysqltest1 v2 select '' AS `c1` NONE NO root@localhost DEFINER koi8r koi8r_general_ci
+
+
+SELECT COLLATION(c1), COLLATION(c2) FROM v1|
+COLLATION(c1) COLLATION(c2)
+koi8r_general_ci binary
+
+SELECT COLLATION(c1) FROM v2|
+COLLATION(c1)
+utf8_general_ci
+
+---> connection: default
+use test|
+DROP DATABASE mysqltest1|
+
+-------------------------------------------------------------------
+Stored procedures/functions
+-------------------------------------------------------------------
+
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+use mysqltest1|
+
+CREATE PROCEDURE p1(
+INOUT 1 CHAR(10),
+OUT 2 CHAR(10))
+BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END|
+
+CREATE PROCEDURE p2(
+INOUT 1 CHAR(10) CHARACTER SET utf8,
+OUT 2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END|
+
+CREATE PROCEDURE mysqltest2.p3(
+INOUT 1 CHAR(10),
+OUT 2 CHAR(10))
+BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END|
+
+CREATE PROCEDURE mysqltest2.p4(
+INOUT 1 CHAR(10) CHARACTER SET utf8,
+OUT 2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END|
+
+
+SHOW CREATE PROCEDURE p1|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(
+INOUT 1 CHAR(10),
+OUT 2 CHAR(10))
+BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE PROCEDURE p2|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p2 CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(
+INOUT 1 CHAR(10) CHARACTER SET utf8,
+OUT 2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE PROCEDURE mysqltest2.p3|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p3 CREATE DEFINER=`root`@`localhost` PROCEDURE `p3`(
+INOUT 1 CHAR(10),
+OUT 2 CHAR(10))
+BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE PROCEDURE mysqltest2.p4|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p4 CREATE DEFINER=`root`@`localhost` PROCEDURE `p4`(
+INOUT 1 CHAR(10) CHARACTER SET utf8,
+OUT 2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+
+SHOW PROCEDURE STATUS LIKE 'p1'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest1 p1 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW PROCEDURE STATUS LIKE 'p2'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest1 p2 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW PROCEDURE STATUS LIKE 'p3'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest2 p3 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW PROCEDURE STATUS LIKE 'p4'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest2 p4 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p1'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p1 NULL mysqltest1 p1 PROCEDURE NULL SQL BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION( '') AS c5,
+COLLATION( '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p2'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p2 NULL mysqltest1 p2 PROCEDURE NULL SQL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION( '') AS c5,
+COLLATION( '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p3'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p3 NULL mysqltest2 p3 PROCEDURE NULL SQL BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION( '') AS c5,
+COLLATION( '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p4'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p4 NULL mysqltest2 p4 PROCEDURE NULL SQL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION( '') AS c5,
+COLLATION( '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+
+SET @a = '1'|
+SET @b = '2'|
+
+
+CALL p1(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_unicode_ci utf8_unicode_ci
+
+CALL p2(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_general_ci utf8_general_ci
+
+CALL mysqltest2.p3(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_unicode_ci utf8_unicode_ci
+
+CALL mysqltest2.p4(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_general_ci utf8_general_ci
+
+
+ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
+ALTER DATABASE mysqltest2 COLLATE cp866_general_ci|
+
+---> connection: con2
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+CALL p1(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+CALL p2(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+CALL mysqltest2.p3(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+CALL mysqltest2.p4(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+set names koi8r|
+
+
+SHOW CREATE PROCEDURE p1|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(
+INOUT 1 CHAR(10),
+OUT 2 CHAR(10))
+BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE PROCEDURE p2|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p2 CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(
+INOUT 1 CHAR(10) CHARACTER SET utf8,
+OUT 2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE PROCEDURE mysqltest2.p3|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p3 CREATE DEFINER=`root`@`localhost` PROCEDURE `p3`(
+INOUT 1 CHAR(10),
+OUT 2 CHAR(10))
+BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE PROCEDURE mysqltest2.p4|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p4 CREATE DEFINER=`root`@`localhost` PROCEDURE `p4`(
+INOUT 1 CHAR(10) CHARACTER SET utf8,
+OUT 2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+
+SHOW PROCEDURE STATUS LIKE 'p1'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest1 p1 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW PROCEDURE STATUS LIKE 'p2'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest1 p2 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW PROCEDURE STATUS LIKE 'p3'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest2 p3 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW PROCEDURE STATUS LIKE 'p4'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest2 p4 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p1'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p1 NULL mysqltest1 p1 PROCEDURE NULL SQL BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION( '') AS c5,
+COLLATION( '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p2'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p2 NULL mysqltest1 p2 PROCEDURE NULL SQL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION( '') AS c5,
+COLLATION( '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p3'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p3 NULL mysqltest2 p3 PROCEDURE NULL SQL BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION( '') AS c5,
+COLLATION( '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p4'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p4 NULL mysqltest2 p4 PROCEDURE NULL SQL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION( '') AS c5,
+COLLATION( '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+
+SET @a = '1'|
+SET @b = '2'|
+
+
+CALL p1(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_unicode_ci utf8_unicode_ci
+
+CALL p2(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_general_ci utf8_general_ci
+
+CALL mysqltest2.p3(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_unicode_ci utf8_unicode_ci
+
+CALL mysqltest2.p4(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_general_ci utf8_general_ci
+
+---> Dump of mysqltest1
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest1` /*!40100 DEFAULT CHARACTER SET cp866 */;
+
+USE `mysqltest1`;
+ALTER DATABASE mysqltest1 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = koi8r */ ;
+/*!50003 SET character_set_results = koi8r */ ;
+/*!50003 SET collation_connection = koi8r_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `p1`(
+INOUT 1 CHAR(10),
+OUT 2 CHAR(10))
+BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE mysqltest1 CHARACTER SET cp866 COLLATE cp866_general_ci ;
+ALTER DATABASE mysqltest1 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = koi8r */ ;
+/*!50003 SET character_set_results = koi8r */ ;
+/*!50003 SET collation_connection = koi8r_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `p2`(
+INOUT 1 CHAR(10) CHARACTER SET utf8,
+OUT 2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE mysqltest1 CHARACTER SET cp866 COLLATE cp866_general_ci ;
+
+---> Dumping mysqltest1 to ddl_i18n_koi8r.sp.mysqltest1.sql
+
+---> Dump of mysqltest2
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest2` /*!40100 DEFAULT CHARACTER SET cp866 */;
+
+USE `mysqltest2`;
+ALTER DATABASE mysqltest2 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = koi8r */ ;
+/*!50003 SET character_set_results = koi8r */ ;
+/*!50003 SET collation_connection = koi8r_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `p3`(
+INOUT 1 CHAR(10),
+OUT 2 CHAR(10))
+BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE mysqltest2 CHARACTER SET cp866 COLLATE cp866_general_ci ;
+ALTER DATABASE mysqltest2 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = koi8r */ ;
+/*!50003 SET character_set_results = koi8r */ ;
+/*!50003 SET collation_connection = koi8r_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `p4`(
+INOUT 1 CHAR(10) CHARACTER SET utf8,
+OUT 2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE mysqltest2 CHARACTER SET cp866 COLLATE cp866_general_ci ;
+
+---> Dumping mysqltest2 to ddl_i18n_koi8r.sp.mysqltest2.sql
+
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+
+---> Restoring mysqltest1...
+---> Restoring mysqltest2...
+
+---> connection: con3
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+CALL p1(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+CALL p2(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+CALL mysqltest2.p3(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+CALL mysqltest2.p4(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+set names koi8r|
+
+
+SHOW CREATE PROCEDURE p1|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(
+INOUT 1 CHAR(10),
+OUT 2 CHAR(10))
+BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE PROCEDURE p2|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p2 CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(
+INOUT 1 CHAR(10) CHARACTER SET utf8,
+OUT 2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE PROCEDURE mysqltest2.p3|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p3 CREATE DEFINER=`root`@`localhost` PROCEDURE `p3`(
+INOUT 1 CHAR(10),
+OUT 2 CHAR(10))
+BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE PROCEDURE mysqltest2.p4|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p4 CREATE DEFINER=`root`@`localhost` PROCEDURE `p4`(
+INOUT 1 CHAR(10) CHARACTER SET utf8,
+OUT 2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION(_koi8r '') AS c5,
+COLLATION(_utf8 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+
+SHOW PROCEDURE STATUS LIKE 'p1'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest1 p1 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW PROCEDURE STATUS LIKE 'p2'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest1 p2 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW PROCEDURE STATUS LIKE 'p3'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest2 p3 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW PROCEDURE STATUS LIKE 'p4'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest2 p4 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p1'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p1 NULL mysqltest1 p1 PROCEDURE NULL SQL BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION( '') AS c5,
+COLLATION( '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p2'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p2 NULL mysqltest1 p2 PROCEDURE NULL SQL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION( '') AS c5,
+COLLATION( '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p3'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p3 NULL mysqltest2 p3 PROCEDURE NULL SQL BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION( '') AS c5,
+COLLATION( '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p4'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p4 NULL mysqltest2 p4 PROCEDURE NULL SQL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION(1) AS c2,
+COLLATION(2) AS c3;
+SELECT
+COLLATION('') AS c4,
+COLLATION( '') AS c5,
+COLLATION( '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET 1 = 'a';
+SET 2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+
+SET @a = '1'|
+SET @b = '2'|
+
+
+CALL p1(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_unicode_ci utf8_unicode_ci
+
+CALL p2(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_general_ci utf8_general_ci
+
+CALL mysqltest2.p3(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_unicode_ci utf8_unicode_ci
+
+CALL mysqltest2.p4(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_general_ci utf8_general_ci
+
+---> connection: default
+use test|
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+-------------------------------------------------------------------
+Triggers
+-------------------------------------------------------------------
+
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+use mysqltest1|
+CREATE TABLE t1(c INT)|
+CREATE TABLE mysqltest2.t1(c INT)|
+CREATE TABLE log(msg VARCHAR(255))|
+CREATE TABLE mysqltest2.log(msg VARCHAR(255))|
+
+CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = _koi8r '';
+SET @a2 = _utf8 'текст';
+END|
+
+CREATE TRIGGER trg2 AFTER INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = _koi8r '';
+SET @b2 = _utf8 'текст';
+END|
+
+CREATE TRIGGER mysqltest2.trg3 BEFORE INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = _koi8r '';
+SET @a2 = _utf8 'текст';
+END|
+
+CREATE TRIGGER mysqltest2.trg4 AFTER INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = _koi8r '';
+SET @b2 = _utf8 'текст';
+END|
+
+
+
+SHOW CREATE TRIGGER trg1|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg1 CREATE DEFINER=`root`@`localhost` TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = _koi8r '';
+SET @a2 = _utf8 'текст';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE TRIGGER trg2|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg2 CREATE DEFINER=`root`@`localhost` TRIGGER trg2 AFTER INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = _koi8r '';
+SET @b2 = _utf8 'текст';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE TRIGGER mysqltest2.trg3|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg3 CREATE DEFINER=`root`@`localhost` TRIGGER mysqltest2.trg3 BEFORE INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = _koi8r '';
+SET @a2 = _utf8 'текст';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE TRIGGER mysqltest2.trg4|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg4 CREATE DEFINER=`root`@`localhost` TRIGGER mysqltest2.trg4 AFTER INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = _koi8r '';
+SET @b2 = _utf8 'текст';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+
+SHOW TRIGGERS|
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+trg1 INSERT t1 BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = '';
+SET @a2 = '';
+END BEFORE NULL root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+trg2 INSERT t1 BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = '';
+SET @b2 = '';
+END AFTER NULL root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+use mysqltest2|
+
+SHOW TRIGGERS|
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+trg3 INSERT t1 BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = '';
+SET @a2 = '';
+END BEFORE NULL root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+trg4 INSERT t1 BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = '';
+SET @b2 = '';
+END AFTER NULL root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+use mysqltest1|
+
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg1'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 trg1 INSERT NULL mysqltest1 t1 0 NULL BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = '';
+SET @a2 = '';
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg2'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 trg2 INSERT NULL mysqltest1 t1 0 NULL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = '';
+SET @b2 = '';
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg3'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 trg3 INSERT NULL mysqltest2 t1 0 NULL BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = '';
+SET @a2 = '';
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg4'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 trg4 INSERT NULL mysqltest2 t1 0 NULL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = '';
+SET @b2 = '';
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+
+SET @a1 = '1'|
+SET @a2 = '1'|
+SET @a3 = '1'|
+SET @b1 = '2'|
+SET @b2 = '2'|
+SET @b3 = '2'|
+
+
+INSERT INTO t1 VALUES(1)|
+
+---> Log:
+SELECT msg FROM log|
+msg
+utf8_unicode_ci
+koi8r_general_ci
+koi8r_general_ci
+utf8_general_ci
+koi8r_general_ci
+koi8r
+utf8_general_ci
+koi8r_general_ci
+koi8r_general_ci
+utf8_general_ci
+koi8r_general_ci
+koi8r
+
+SELECT
+COLLATION(@a1) AS ca1,
+COLLATION(@a2) AS ca2,
+COLLATION(@a3) AS ca3,
+COLLATION(@b1) AS cb1,
+COLLATION(@b2) AS cb2,
+COLLATION(@b3) AS cb3|
+ca1 ca2 ca3 cb1 cb2 cb3
+koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci
+
+DELETE FROM log|
+
+
+INSERT INTO mysqltest2.t1 VALUES(1)|
+
+---> Log:
+SELECT msg FROM mysqltest2.log|
+msg
+utf8_unicode_ci
+koi8r_general_ci
+koi8r_general_ci
+utf8_general_ci
+koi8r_general_ci
+koi8r
+utf8_general_ci
+koi8r_general_ci
+koi8r_general_ci
+utf8_general_ci
+koi8r_general_ci
+koi8r
+
+SELECT
+COLLATION(@a1) AS ca1,
+COLLATION(@a2) AS ca2,
+COLLATION(@a3) AS ca3,
+COLLATION(@b1) AS cb1,
+COLLATION(@b2) AS cb2,
+COLLATION(@b3) AS cb3|
+ca1 ca2 ca3 cb1 cb2 cb3
+koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci
+
+DELETE FROM mysqltest2.log|
+
+
+ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
+ALTER DATABASE mysqltest2 COLLATE cp866_general_ci|
+ALTER TABLE t1 ADD COLUMN fake INT|
+ALTER TABLE t1 DROP COLUMN fake|
+ALTER TABLE mysqltest2.t1 ADD COLUMN fake INT|
+ALTER TABLE mysqltest2.t1 DROP COLUMN fake|
+
+---> connection: con2
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+INSERT INTO mysqltest1.t1 VALUES(0)|
+INSERT INTO mysqltest2.t1 VALUES(0)|
+DELETE FROM mysqltest1.log|
+DELETE FROM mysqltest2.log|
+set names koi8r|
+use mysqltest1|
+
+
+SHOW CREATE TRIGGER trg1|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg1 CREATE DEFINER=`root`@`localhost` TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = _koi8r '';
+SET @a2 = _utf8 'текст';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE TRIGGER trg2|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg2 CREATE DEFINER=`root`@`localhost` TRIGGER trg2 AFTER INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = _koi8r '';
+SET @b2 = _utf8 'текст';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE TRIGGER mysqltest2.trg3|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg3 CREATE DEFINER=`root`@`localhost` TRIGGER mysqltest2.trg3 BEFORE INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = _koi8r '';
+SET @a2 = _utf8 'текст';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE TRIGGER mysqltest2.trg4|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg4 CREATE DEFINER=`root`@`localhost` TRIGGER mysqltest2.trg4 AFTER INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = _koi8r '';
+SET @b2 = _utf8 'текст';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+
+SHOW TRIGGERS|
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+trg1 INSERT t1 BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = '';
+SET @a2 = '';
+END BEFORE NULL root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+trg2 INSERT t1 BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = '';
+SET @b2 = '';
+END AFTER NULL root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+use mysqltest2|
+
+SHOW TRIGGERS|
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+trg3 INSERT t1 BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = '';
+SET @a2 = '';
+END BEFORE NULL root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+trg4 INSERT t1 BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = '';
+SET @b2 = '';
+END AFTER NULL root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+use mysqltest1|
+
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg1'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 trg1 INSERT NULL mysqltest1 t1 0 NULL BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = '';
+SET @a2 = '';
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg2'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 trg2 INSERT NULL mysqltest1 t1 0 NULL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = '';
+SET @b2 = '';
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg3'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 trg3 INSERT NULL mysqltest2 t1 0 NULL BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = '';
+SET @a2 = '';
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg4'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 trg4 INSERT NULL mysqltest2 t1 0 NULL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = '';
+SET @b2 = '';
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+
+SET @a1 = '1'|
+SET @a2 = '1'|
+SET @a3 = '1'|
+SET @b1 = '2'|
+SET @b2 = '2'|
+SET @b3 = '2'|
+
+
+INSERT INTO t1 VALUES(1)|
+
+---> Log:
+SELECT msg FROM log|
+msg
+utf8_unicode_ci
+koi8r_general_ci
+koi8r_general_ci
+utf8_general_ci
+koi8r_general_ci
+koi8r
+utf8_general_ci
+koi8r_general_ci
+koi8r_general_ci
+utf8_general_ci
+koi8r_general_ci
+koi8r
+
+SELECT
+COLLATION(@a1) AS ca1,
+COLLATION(@a2) AS ca2,
+COLLATION(@a3) AS ca3,
+COLLATION(@b1) AS cb1,
+COLLATION(@b2) AS cb2,
+COLLATION(@b3) AS cb3|
+ca1 ca2 ca3 cb1 cb2 cb3
+koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci
+
+DELETE FROM log|
+
+
+INSERT INTO mysqltest2.t1 VALUES(1)|
+
+---> Log:
+SELECT msg FROM mysqltest2.log|
+msg
+utf8_unicode_ci
+koi8r_general_ci
+koi8r_general_ci
+utf8_general_ci
+koi8r_general_ci
+koi8r
+utf8_general_ci
+koi8r_general_ci
+koi8r_general_ci
+utf8_general_ci
+koi8r_general_ci
+koi8r
+
+SELECT
+COLLATION(@a1) AS ca1,
+COLLATION(@a2) AS ca2,
+COLLATION(@a3) AS ca3,
+COLLATION(@b1) AS cb1,
+COLLATION(@b2) AS cb2,
+COLLATION(@b3) AS cb3|
+ca1 ca2 ca3 cb1 cb2 cb3
+koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci
+
+DELETE FROM mysqltest2.log|
+
+---> Dump of mysqltest1
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest1` /*!40100 DEFAULT CHARACTER SET cp866 */;
+
+USE `mysqltest1`;
+CREATE TABLE `log` (
+ `msg` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+CREATE TABLE `t1` (
+ `c` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+INSERT INTO `t1` VALUES (1),(0),(1);
+ALTER DATABASE mysqltest1 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = koi8r */ ;
+/*!50003 SET character_set_results = koi8r */ ;
+/*!50003 SET collation_connection = koi8r_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = _koi8r '';
+SET @a2 = _utf8 'текст';
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE mysqltest1 CHARACTER SET cp866 COLLATE cp866_general_ci ;
+ALTER DATABASE mysqltest1 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = koi8r */ ;
+/*!50003 SET character_set_results = koi8r */ ;
+/*!50003 SET collation_connection = koi8r_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER trg2 AFTER INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = _koi8r '';
+SET @b2 = _utf8 'текст';
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE mysqltest1 CHARACTER SET cp866 COLLATE cp866_general_ci ;
+
+---> Dumping mysqltest1 to ddl_i18n_koi8r.triggers.mysqltest1.sql
+
+---> Dump of mysqltest2
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest2` /*!40100 DEFAULT CHARACTER SET cp866 */;
+
+USE `mysqltest2`;
+CREATE TABLE `log` (
+ `msg` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+CREATE TABLE `t1` (
+ `c` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+INSERT INTO `t1` VALUES (1),(0),(1);
+ALTER DATABASE mysqltest2 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = koi8r */ ;
+/*!50003 SET character_set_results = koi8r */ ;
+/*!50003 SET collation_connection = koi8r_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER mysqltest2.trg3 BEFORE INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = _koi8r '';
+SET @a2 = _utf8 'текст';
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE mysqltest2 CHARACTER SET cp866 COLLATE cp866_general_ci ;
+ALTER DATABASE mysqltest2 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = koi8r */ ;
+/*!50003 SET character_set_results = koi8r */ ;
+/*!50003 SET collation_connection = koi8r_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER mysqltest2.trg4 AFTER INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = _koi8r '';
+SET @b2 = _utf8 'текст';
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE mysqltest2 CHARACTER SET cp866 COLLATE cp866_general_ci ;
+
+---> Dumping mysqltest2 to ddl_i18n_koi8r.triggers.mysqltest2.sql
+
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+
+---> Restoring mysqltest1...
+---> Restoring mysqltest2...
+ALTER TABLE mysqltest1.t1 ADD COLUMN fake INT|
+ALTER TABLE mysqltest1.t1 DROP COLUMN fake|
+ALTER TABLE mysqltest2.t1 ADD COLUMN fake INT|
+ALTER TABLE mysqltest2.t1 DROP COLUMN fake|
+
+---> connection: con3
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+INSERT INTO mysqltest1.t1 VALUES(0)|
+INSERT INTO mysqltest2.t1 VALUES(0)|
+DELETE FROM mysqltest1.log|
+DELETE FROM mysqltest2.log|
+set names koi8r|
+use mysqltest1|
+
+
+SHOW CREATE TRIGGER trg1|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg1 CREATE DEFINER=`root`@`localhost` TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = _koi8r '';
+SET @a2 = _utf8 'текст';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE TRIGGER trg2|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg2 CREATE DEFINER=`root`@`localhost` TRIGGER trg2 AFTER INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = _koi8r '';
+SET @b2 = _utf8 'текст';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE TRIGGER mysqltest2.trg3|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg3 CREATE DEFINER=`root`@`localhost` TRIGGER mysqltest2.trg3 BEFORE INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = _koi8r '';
+SET @a2 = _utf8 'текст';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE TRIGGER mysqltest2.trg4|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg4 CREATE DEFINER=`root`@`localhost` TRIGGER mysqltest2.trg4 AFTER INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = _koi8r '';
+SET @b2 = _utf8 'текст';
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+
+SHOW TRIGGERS|
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+trg1 INSERT t1 BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = '';
+SET @a2 = '';
+END BEFORE NULL root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+trg2 INSERT t1 BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = '';
+SET @b2 = '';
+END AFTER NULL root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+use mysqltest2|
+
+SHOW TRIGGERS|
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+trg3 INSERT t1 BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = '';
+SET @a2 = '';
+END BEFORE NULL root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+trg4 INSERT t1 BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = '';
+SET @b2 = '';
+END AFTER NULL root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+use mysqltest1|
+
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg1'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 trg1 INSERT NULL mysqltest1 t1 0 NULL BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = '';
+SET @a2 = '';
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg2'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 trg2 INSERT NULL mysqltest1 t1 0 NULL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = '';
+SET @b2 = '';
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg3'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 trg3 INSERT NULL mysqltest2 t1 0 NULL BEGIN
+DECLARE 1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = '';
+SET @a1 = '';
+SET @a2 = '';
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg4'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 trg4 INSERT NULL mysqltest2 t1 0 NULL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(1));
+INSERT INTO log VALUES(COLLATION(''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(COLLATION( ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = '';
+SET @b1 = '';
+SET @b2 = '';
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+
+
+SET @a1 = '1'|
+SET @a2 = '1'|
+SET @a3 = '1'|
+SET @b1 = '2'|
+SET @b2 = '2'|
+SET @b3 = '2'|
+
+
+INSERT INTO t1 VALUES(1)|
+
+---> Log:
+SELECT msg FROM log|
+msg
+utf8_unicode_ci
+koi8r_general_ci
+koi8r_general_ci
+utf8_general_ci
+koi8r_general_ci
+koi8r
+utf8_general_ci
+koi8r_general_ci
+koi8r_general_ci
+utf8_general_ci
+koi8r_general_ci
+koi8r
+
+SELECT
+COLLATION(@a1) AS ca1,
+COLLATION(@a2) AS ca2,
+COLLATION(@a3) AS ca3,
+COLLATION(@b1) AS cb1,
+COLLATION(@b2) AS cb2,
+COLLATION(@b3) AS cb3|
+ca1 ca2 ca3 cb1 cb2 cb3
+koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci
+
+DELETE FROM log|
+
+
+INSERT INTO mysqltest2.t1 VALUES(1)|
+
+---> Log:
+SELECT msg FROM mysqltest2.log|
+msg
+utf8_unicode_ci
+koi8r_general_ci
+koi8r_general_ci
+utf8_general_ci
+koi8r_general_ci
+koi8r
+utf8_general_ci
+koi8r_general_ci
+koi8r_general_ci
+utf8_general_ci
+koi8r_general_ci
+koi8r
+
+SELECT
+COLLATION(@a1) AS ca1,
+COLLATION(@a2) AS ca2,
+COLLATION(@a3) AS ca3,
+COLLATION(@b1) AS cb1,
+COLLATION(@b2) AS cb2,
+COLLATION(@b3) AS cb3|
+ca1 ca2 ca3 cb1 cb2 cb3
+koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci
+
+DELETE FROM mysqltest2.log|
+
+---> connection: default
+use test|
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+-------------------------------------------------------------------
+Events
+-------------------------------------------------------------------
+
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+use mysqltest1|
+
+CREATE EVENT ev1 ON SCHEDULE AT '2030-01-01 00:00:00' DO
+BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END|
+
+CREATE EVENT ev2 ON SCHEDULE AT '2030-01-01 00:00:00' DO
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END|
+
+CREATE EVENT mysqltest2.ev3 ON SCHEDULE AT '2030-01-01 00:00:00' DO
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END|
+
+CREATE EVENT mysqltest2.ev4 ON SCHEDULE AT '2030-01-01 00:00:00' DO
+BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END|
+
+
+
+SHOW CREATE EVENT ev1|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev1 SYSTEM CREATE EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE EVENT ev2|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev2 SYSTEM CREATE EVENT `ev2` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE EVENT mysqltest2.ev3|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev3 SYSTEM CREATE EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE EVENT mysqltest2.ev3|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev3 SYSTEM CREATE EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+
+SHOW EVENTS LIKE 'ev1'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+mysqltest1 ev1 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW EVENTS LIKE 'ev2'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+mysqltest1 ev2 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW EVENTS LIKE 'ev3'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+
+SHOW EVENTS LIKE 'ev4'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev1'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 ev1 root@localhost SYSTEM SQL BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION( '') AS c3,
+COLLATION( '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 ev2 root@localhost SYSTEM SQL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION( '') AS c3,
+COLLATION( '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 ev3 root@localhost SYSTEM SQL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION( '') AS c3,
+COLLATION( '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 ev4 root@localhost SYSTEM SQL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION( '') AS c3,
+COLLATION( '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+
+
+ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
+ALTER DATABASE mysqltest2 COLLATE cp866_general_ci|
+
+---> connection: con2
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+SHOW CREATE EVENT ev1|
+SHOW CREATE EVENT ev2|
+SHOW CREATE EVENT mysqltest2.ev3|
+SHOW CREATE EVENT mysqltest2.ev4|
+set names koi8r|
+
+
+SHOW CREATE EVENT ev1|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev1 SYSTEM CREATE EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE EVENT ev2|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev2 SYSTEM CREATE EVENT `ev2` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE EVENT mysqltest2.ev3|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev3 SYSTEM CREATE EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE EVENT mysqltest2.ev3|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev3 SYSTEM CREATE EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+
+SHOW EVENTS LIKE 'ev1'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+mysqltest1 ev1 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW EVENTS LIKE 'ev2'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+mysqltest1 ev2 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW EVENTS LIKE 'ev3'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+
+SHOW EVENTS LIKE 'ev4'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev1'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 ev1 root@localhost SYSTEM SQL BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION( '') AS c3,
+COLLATION( '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 ev2 root@localhost SYSTEM SQL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION( '') AS c3,
+COLLATION( '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 ev3 root@localhost SYSTEM SQL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION( '') AS c3,
+COLLATION( '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 ev4 root@localhost SYSTEM SQL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION( '') AS c3,
+COLLATION( '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+
+---> Dump of mysqltest1
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest1` /*!40100 DEFAULT CHARACTER SET cp866 */;
+
+USE `mysqltest1`;
+/*!50106 SET @save_time_zone= @@TIME_ZONE */ ;
+DELIMITER ;;
+ALTER DATABASE mysqltest1 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;;
+/*!50003 SET character_set_client = koi8r */ ;;
+/*!50003 SET character_set_results = koi8r */ ;;
+/*!50003 SET collation_connection = koi8r_general_ci */ ;;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;;
+/*!50003 SET sql_mode = '' */ ;;
+/*!50003 SET @saved_time_zone = @@time_zone */ ;;
+/*!50003 SET time_zone = 'SYSTEM' */ ;;
+/*!50106 CREATE EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END */ ;;
+/*!50003 SET time_zone = @saved_time_zone */ ;;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;;
+/*!50003 SET character_set_client = @saved_cs_client */ ;;
+/*!50003 SET character_set_results = @saved_cs_results */ ;;
+/*!50003 SET collation_connection = @saved_col_connection */ ;;
+ALTER DATABASE mysqltest1 CHARACTER SET cp866 COLLATE cp866_general_ci ;;
+DELIMITER ;;
+ALTER DATABASE mysqltest1 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;;
+/*!50003 SET character_set_client = koi8r */ ;;
+/*!50003 SET character_set_results = koi8r */ ;;
+/*!50003 SET collation_connection = koi8r_general_ci */ ;;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;;
+/*!50003 SET sql_mode = '' */ ;;
+/*!50003 SET @saved_time_zone = @@time_zone */ ;;
+/*!50003 SET time_zone = 'SYSTEM' */ ;;
+/*!50106 CREATE EVENT `ev2` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END */ ;;
+/*!50003 SET time_zone = @saved_time_zone */ ;;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;;
+/*!50003 SET character_set_client = @saved_cs_client */ ;;
+/*!50003 SET character_set_results = @saved_cs_results */ ;;
+/*!50003 SET collation_connection = @saved_col_connection */ ;;
+ALTER DATABASE mysqltest1 CHARACTER SET cp866 COLLATE cp866_general_ci ;;
+DELIMITER ;
+/*!50106 SET TIME_ZONE= @save_time_zone */ ;
+
+---> Dumping mysqltest1 to ddl_i18n_koi8r.events.mysqltest1.sql
+
+---> Dump of mysqltest2
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest2` /*!40100 DEFAULT CHARACTER SET cp866 */;
+
+USE `mysqltest2`;
+/*!50106 SET @save_time_zone= @@TIME_ZONE */ ;
+DELIMITER ;;
+ALTER DATABASE mysqltest2 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;;
+/*!50003 SET character_set_client = koi8r */ ;;
+/*!50003 SET character_set_results = koi8r */ ;;
+/*!50003 SET collation_connection = koi8r_general_ci */ ;;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;;
+/*!50003 SET sql_mode = '' */ ;;
+/*!50003 SET @saved_time_zone = @@time_zone */ ;;
+/*!50003 SET time_zone = 'SYSTEM' */ ;;
+/*!50106 CREATE EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END */ ;;
+/*!50003 SET time_zone = @saved_time_zone */ ;;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;;
+/*!50003 SET character_set_client = @saved_cs_client */ ;;
+/*!50003 SET character_set_results = @saved_cs_results */ ;;
+/*!50003 SET collation_connection = @saved_col_connection */ ;;
+ALTER DATABASE mysqltest2 CHARACTER SET cp866 COLLATE cp866_general_ci ;;
+DELIMITER ;;
+ALTER DATABASE mysqltest2 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;;
+/*!50003 SET character_set_client = koi8r */ ;;
+/*!50003 SET character_set_results = koi8r */ ;;
+/*!50003 SET collation_connection = koi8r_general_ci */ ;;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;;
+/*!50003 SET sql_mode = '' */ ;;
+/*!50003 SET @saved_time_zone = @@time_zone */ ;;
+/*!50003 SET time_zone = 'SYSTEM' */ ;;
+/*!50106 CREATE EVENT `ev4` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END */ ;;
+/*!50003 SET time_zone = @saved_time_zone */ ;;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;;
+/*!50003 SET character_set_client = @saved_cs_client */ ;;
+/*!50003 SET character_set_results = @saved_cs_results */ ;;
+/*!50003 SET collation_connection = @saved_col_connection */ ;;
+ALTER DATABASE mysqltest2 CHARACTER SET cp866 COLLATE cp866_general_ci ;;
+DELIMITER ;
+/*!50106 SET TIME_ZONE= @save_time_zone */ ;
+
+---> Dumping mysqltest2 to ddl_i18n_koi8r.events.mysqltest2.sql
+
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+
+---> Restoring mysqltest1...
+---> Restoring mysqltest2...
+
+---> connection: con3
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+SHOW CREATE EVENT ev1|
+SHOW CREATE EVENT ev2|
+SHOW CREATE EVENT mysqltest2.ev3|
+SHOW CREATE EVENT mysqltest2.ev4|
+set names koi8r|
+
+
+SHOW CREATE EVENT ev1|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev1 SYSTEM CREATE EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE EVENT ev2|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev2 SYSTEM CREATE EVENT `ev2` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE EVENT mysqltest2.ev3|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev3 SYSTEM CREATE EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW CREATE EVENT mysqltest2.ev3|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev3 SYSTEM CREATE EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION(_koi8r '') AS c3,
+COLLATION(_utf8 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END koi8r koi8r_general_ci utf8_unicode_ci
+
+
+SHOW EVENTS LIKE 'ev1'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+mysqltest1 ev1 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW EVENTS LIKE 'ev2'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+mysqltest1 ev2 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 koi8r koi8r_general_ci utf8_unicode_ci
+
+SHOW EVENTS LIKE 'ev3'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+
+SHOW EVENTS LIKE 'ev4'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev1'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 ev1 root@localhost SYSTEM SQL BEGIN
+DECLARE 1 CHAR(10);
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION( '') AS c3,
+COLLATION( '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 ev2 root@localhost SYSTEM SQL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION( '') AS c3,
+COLLATION( '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 ev3 root@localhost SYSTEM SQL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION( '') AS c3,
+COLLATION( '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 ev4 root@localhost SYSTEM SQL BEGIN
+DECLARE 1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(1) AS c1,
+COLLATION('') AS c2,
+COLLATION( '') AS c3,
+COLLATION( '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+
+-------------------------------------------------------------------
+DDL statements within stored routine.
+-------------------------------------------------------------------
+
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+use mysqltest1|
+
+CREATE PROCEDURE p1()
+BEGIN
+CREATE TABLE t1(col1 VARCHAR(10));
+SHOW CREATE TABLE t1;
+END|
+
+CREATE PROCEDURE mysqltest2.p2()
+BEGIN
+CREATE TABLE t2(col1 VARCHAR(10));
+SHOW CREATE TABLE t2;
+END|
+
+CALL p1()|
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `col1` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
+
+SHOW CREATE TABLE t1|
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `col1` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
+
+
+CALL mysqltest2.p2()|
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `col1` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
+
+SHOW CREATE TABLE mysqltest2.t2|
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `col1` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
+
+ALTER DATABASE mysqltest1 COLLATE cp1251_general_cs|
+ALTER DATABASE mysqltest2 COLLATE cp1251_general_cs|
+DROP TABLE t1|
+DROP TABLE mysqltest2.t2|
+
+CALL p1()|
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `col1` varchar(10) COLLATE cp1251_general_cs DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
+
+SHOW CREATE TABLE t1|
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `col1` varchar(10) COLLATE cp1251_general_cs DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
+
+
+CALL mysqltest2.p2()|
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `col1` varchar(10) COLLATE cp1251_general_cs DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
+
+SHOW CREATE TABLE mysqltest2.t2|
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `col1` varchar(10) COLLATE cp1251_general_cs DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
+
+---> connection: default
+use test|
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
diff --git a/mysql-test/r/ddl_i18n_utf8.result b/mysql-test/r/ddl_i18n_utf8.result
new file mode 100644
index 00000000000..d74d014d755
--- /dev/null
+++ b/mysql-test/r/ddl_i18n_utf8.result
@@ -0,0 +1,2783 @@
+set names utf8;
+
+-------------------------------------------------------------------
+Views
+-------------------------------------------------------------------
+
+DROP DATABASE IF EXISTS mysqltest1|
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+use mysqltest1|
+CREATE TABLE t1(кол INT)|
+INSERT INTO t1 VALUES(1)|
+
+CREATE VIEW v1 AS
+SELECT 'тест' AS c1, кол AS c2
+FROM t1|
+
+CREATE VIEW v2 AS SELECT _koi8r'' as c1|
+
+
+
+SHOW CREATE VIEW v1|
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select _utf8'тест' AS `c1`,`t1`.`кол` AS `c2` from `t1` utf8 utf8_general_ci
+
+SHOW CREATE VIEW v2|
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select _koi8r'' AS `c1` utf8 utf8_general_ci
+
+
+SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
+NULL mysqltest1 v1 SELECT 'тест' AS c1, кол AS c2 NONE YES root@localhost DEFINER utf8 utf8_general_ci
+
+SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
+NULL mysqltest1 v2 SELECT 'тест' as c1 NONE NO root@localhost DEFINER utf8 utf8_general_ci
+
+
+SELECT COLLATION(c1), COLLATION(c2) FROM v1|
+COLLATION(c1) COLLATION(c2)
+utf8_general_ci binary
+
+SELECT COLLATION(c1) FROM v2|
+COLLATION(c1)
+koi8r_general_ci
+
+
+ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
+
+---> connection: con2
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+SELECT * FROM mysqltest1.v1|
+SELECT * FROM mysqltest1.v2|
+use mysqltest1|
+set names utf8|
+
+
+SHOW CREATE VIEW v1|
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select _utf8'тест' AS `c1`,`t1`.`кол` AS `c2` from `t1` utf8 utf8_general_ci
+
+SHOW CREATE VIEW v2|
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select _koi8r'' AS `c1` utf8 utf8_general_ci
+
+
+SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
+NULL mysqltest1 v1 SELECT 'тест' AS c1, кол AS c2 NONE YES root@localhost DEFINER utf8 utf8_general_ci
+
+SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
+NULL mysqltest1 v2 SELECT 'тест' as c1 NONE NO root@localhost DEFINER utf8 utf8_general_ci
+
+
+SELECT COLLATION(c1), COLLATION(c2) FROM v1|
+COLLATION(c1) COLLATION(c2)
+utf8_general_ci binary
+
+SELECT COLLATION(c1) FROM v2|
+COLLATION(c1)
+koi8r_general_ci
+
+---> Dumping mysqltest1 to ddl_i18n_utf8views.mysqltest1.sql
+
+
+DROP DATABASE mysqltest1|
+
+
+---> Restoring mysqltest1...
+
+---> connection: con3
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+SELECT * FROM mysqltest1.v1|
+SELECT * FROM mysqltest1.v2|
+use mysqltest1|
+set names utf8|
+
+
+SHOW CREATE VIEW v1|
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select _utf8'тест' AS `c1`,`t1`.`кол` AS `c2` from `t1` utf8 utf8_general_ci
+
+SHOW CREATE VIEW v2|
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select _koi8r'' AS `c1` utf8 utf8_general_ci
+
+
+SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
+NULL mysqltest1 v1 select 'тест' AS `c1`,`t1`.`кол` AS `c2` from `t1` NONE YES root@localhost DEFINER utf8 utf8_general_ci
+
+SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
+NULL mysqltest1 v2 select 'тест' AS `c1` NONE NO root@localhost DEFINER utf8 utf8_general_ci
+
+
+SELECT COLLATION(c1), COLLATION(c2) FROM v1|
+COLLATION(c1) COLLATION(c2)
+utf8_general_ci binary
+
+SELECT COLLATION(c1) FROM v2|
+COLLATION(c1)
+koi8r_general_ci
+
+---> connection: default
+use test|
+DROP DATABASE mysqltest1|
+
+-------------------------------------------------------------------
+Stored procedures/functions
+-------------------------------------------------------------------
+
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+use mysqltest1|
+
+CREATE PROCEDURE p1(
+INOUT парам1 CHAR(10),
+OUT парам2 CHAR(10))
+BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END|
+
+CREATE PROCEDURE p2(
+INOUT парам1 CHAR(10) CHARACTER SET utf8,
+OUT парам2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END|
+
+CREATE PROCEDURE mysqltest2.p3(
+INOUT парам1 CHAR(10),
+OUT парам2 CHAR(10))
+BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END|
+
+CREATE PROCEDURE mysqltest2.p4(
+INOUT парам1 CHAR(10) CHARACTER SET utf8,
+OUT парам2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END|
+
+
+SHOW CREATE PROCEDURE p1|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(
+INOUT парам1 CHAR(10),
+OUT парам2 CHAR(10))
+BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE PROCEDURE p2|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p2 CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(
+INOUT парам1 CHAR(10) CHARACTER SET utf8,
+OUT парам2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE PROCEDURE mysqltest2.p3|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p3 CREATE DEFINER=`root`@`localhost` PROCEDURE `p3`(
+INOUT парам1 CHAR(10),
+OUT парам2 CHAR(10))
+BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE PROCEDURE mysqltest2.p4|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p4 CREATE DEFINER=`root`@`localhost` PROCEDURE `p4`(
+INOUT парам1 CHAR(10) CHARACTER SET utf8,
+OUT парам2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+
+SHOW PROCEDURE STATUS LIKE 'p1'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest1 p1 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW PROCEDURE STATUS LIKE 'p2'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest1 p2 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW PROCEDURE STATUS LIKE 'p3'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest2 p3 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW PROCEDURE STATUS LIKE 'p4'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest2 p4 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p1'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p1 NULL mysqltest1 p1 PROCEDURE NULL SQL BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION( 'текст') AS c5,
+COLLATION( 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p2'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p2 NULL mysqltest1 p2 PROCEDURE NULL SQL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION( 'текст') AS c5,
+COLLATION( 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p3'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p3 NULL mysqltest2 p3 PROCEDURE NULL SQL BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION( 'текст') AS c5,
+COLLATION( 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p4'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p4 NULL mysqltest2 p4 PROCEDURE NULL SQL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION( 'текст') AS c5,
+COLLATION( 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+
+SET @a = '1'|
+SET @b = '2'|
+
+
+CALL p1(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_unicode_ci utf8_unicode_ci
+
+CALL p2(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_general_ci utf8_general_ci
+
+CALL mysqltest2.p3(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_unicode_ci utf8_unicode_ci
+
+CALL mysqltest2.p4(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_general_ci utf8_general_ci
+
+
+ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
+ALTER DATABASE mysqltest2 COLLATE cp866_general_ci|
+
+---> connection: con2
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+CALL p1(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+CALL p2(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+CALL mysqltest2.p3(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+CALL mysqltest2.p4(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+set names utf8|
+
+
+SHOW CREATE PROCEDURE p1|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(
+INOUT парам1 CHAR(10),
+OUT парам2 CHAR(10))
+BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE PROCEDURE p2|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p2 CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(
+INOUT парам1 CHAR(10) CHARACTER SET utf8,
+OUT парам2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE PROCEDURE mysqltest2.p3|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p3 CREATE DEFINER=`root`@`localhost` PROCEDURE `p3`(
+INOUT парам1 CHAR(10),
+OUT парам2 CHAR(10))
+BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE PROCEDURE mysqltest2.p4|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p4 CREATE DEFINER=`root`@`localhost` PROCEDURE `p4`(
+INOUT парам1 CHAR(10) CHARACTER SET utf8,
+OUT парам2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+
+SHOW PROCEDURE STATUS LIKE 'p1'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest1 p1 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW PROCEDURE STATUS LIKE 'p2'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest1 p2 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW PROCEDURE STATUS LIKE 'p3'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest2 p3 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW PROCEDURE STATUS LIKE 'p4'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest2 p4 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p1'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p1 NULL mysqltest1 p1 PROCEDURE NULL SQL BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION( 'текст') AS c5,
+COLLATION( 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p2'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p2 NULL mysqltest1 p2 PROCEDURE NULL SQL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION( 'текст') AS c5,
+COLLATION( 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p3'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p3 NULL mysqltest2 p3 PROCEDURE NULL SQL BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION( 'текст') AS c5,
+COLLATION( 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p4'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p4 NULL mysqltest2 p4 PROCEDURE NULL SQL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION( 'текст') AS c5,
+COLLATION( 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+
+SET @a = '1'|
+SET @b = '2'|
+
+
+CALL p1(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_unicode_ci utf8_unicode_ci
+
+CALL p2(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_general_ci utf8_general_ci
+
+CALL mysqltest2.p3(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_unicode_ci utf8_unicode_ci
+
+CALL mysqltest2.p4(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_general_ci utf8_general_ci
+
+---> Dump of mysqltest1
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest1` /*!40100 DEFAULT CHARACTER SET cp866 */;
+
+USE `mysqltest1`;
+ALTER DATABASE mysqltest1 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `p1`(
+INOUT парам1 CHAR(10),
+OUT парам2 CHAR(10))
+BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE mysqltest1 CHARACTER SET cp866 COLLATE cp866_general_ci ;
+ALTER DATABASE mysqltest1 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `p2`(
+INOUT парам1 CHAR(10) CHARACTER SET utf8,
+OUT парам2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE mysqltest1 CHARACTER SET cp866 COLLATE cp866_general_ci ;
+
+---> Dumping mysqltest1 to ddl_i18n_utf8sp.mysqltest1.sql
+
+---> Dump of mysqltest2
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest2` /*!40100 DEFAULT CHARACTER SET cp866 */;
+
+USE `mysqltest2`;
+ALTER DATABASE mysqltest2 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `p3`(
+INOUT парам1 CHAR(10),
+OUT парам2 CHAR(10))
+BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE mysqltest2 CHARACTER SET cp866 COLLATE cp866_general_ci ;
+ALTER DATABASE mysqltest2 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `p4`(
+INOUT парам1 CHAR(10) CHARACTER SET utf8,
+OUT парам2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE mysqltest2 CHARACTER SET cp866 COLLATE cp866_general_ci ;
+
+---> Dumping mysqltest2 to ddl_i18n_utf8sp.mysqltest2.sql
+
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+
+---> Restoring mysqltest1...
+---> Restoring mysqltest2...
+
+---> connection: con3
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+CALL p1(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+CALL p2(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+CALL mysqltest2.p3(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+CALL mysqltest2.p4(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+set names utf8|
+
+
+SHOW CREATE PROCEDURE p1|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(
+INOUT парам1 CHAR(10),
+OUT парам2 CHAR(10))
+BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE PROCEDURE p2|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p2 CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(
+INOUT парам1 CHAR(10) CHARACTER SET utf8,
+OUT парам2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE PROCEDURE mysqltest2.p3|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p3 CREATE DEFINER=`root`@`localhost` PROCEDURE `p3`(
+INOUT парам1 CHAR(10),
+OUT парам2 CHAR(10))
+BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE PROCEDURE mysqltest2.p4|
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p4 CREATE DEFINER=`root`@`localhost` PROCEDURE `p4`(
+INOUT парам1 CHAR(10) CHARACTER SET utf8,
+OUT парам2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION(_utf8 'текст') AS c5,
+COLLATION(_koi8r '') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+
+SHOW PROCEDURE STATUS LIKE 'p1'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest1 p1 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW PROCEDURE STATUS LIKE 'p2'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest1 p2 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW PROCEDURE STATUS LIKE 'p3'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest2 p3 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW PROCEDURE STATUS LIKE 'p4'|
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest2 p4 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p1'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p1 NULL mysqltest1 p1 PROCEDURE NULL SQL BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION( 'текст') AS c5,
+COLLATION( 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p2'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p2 NULL mysqltest1 p2 PROCEDURE NULL SQL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION( 'текст') AS c5,
+COLLATION( 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p3'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p3 NULL mysqltest2 p3 PROCEDURE NULL SQL BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION( 'текст') AS c5,
+COLLATION( 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p4'|
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+p4 NULL mysqltest2 p4 PROCEDURE NULL SQL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION(парам1) AS c2,
+COLLATION(парам2) AS c3;
+SELECT
+COLLATION('текст') AS c4,
+COLLATION( 'текст') AS c5,
+COLLATION( 'текст') AS c6,
+@@collation_connection AS c7,
+@@character_set_client AS c8;
+SET парам1 = 'a';
+SET парам2 = 'b';
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+
+SET @a = '1'|
+SET @b = '2'|
+
+
+CALL p1(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_unicode_ci utf8_unicode_ci
+
+CALL p2(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_general_ci utf8_general_ci
+
+CALL mysqltest2.p3(@a, @b)|
+c1 c2 c3
+utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_unicode_ci utf8_unicode_ci
+
+CALL mysqltest2.p4(@a, @b)|
+c1 c2 c3
+utf8_general_ci utf8_general_ci utf8_general_ci
+c4 c5 c6 c7 c8
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
+ca cb
+utf8_general_ci utf8_general_ci
+
+---> connection: default
+use test|
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+-------------------------------------------------------------------
+Triggers
+-------------------------------------------------------------------
+
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+use mysqltest1|
+CREATE TABLE t1(c INT)|
+CREATE TABLE mysqltest2.t1(c INT)|
+CREATE TABLE log(msg VARCHAR(255))|
+CREATE TABLE mysqltest2.log(msg VARCHAR(255))|
+
+CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = _utf8 'текст';
+SET @a3 = _koi8r '';
+END|
+
+CREATE TRIGGER trg2 AFTER INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = _utf8 'текст';
+SET @b3 = _koi8r '';
+END|
+
+CREATE TRIGGER mysqltest2.trg3 BEFORE INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = _utf8 'текст';
+SET @a3 = _koi8r '';
+END|
+
+CREATE TRIGGER mysqltest2.trg4 AFTER INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = _utf8 'текст';
+SET @b3 = _koi8r '';
+END|
+
+
+
+SHOW CREATE TRIGGER trg1|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg1 CREATE DEFINER=`root`@`localhost` TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = _utf8 'текст';
+SET @a3 = _koi8r '';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE TRIGGER trg2|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg2 CREATE DEFINER=`root`@`localhost` TRIGGER trg2 AFTER INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = _utf8 'текст';
+SET @b3 = _koi8r '';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE TRIGGER mysqltest2.trg3|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg3 CREATE DEFINER=`root`@`localhost` TRIGGER mysqltest2.trg3 BEFORE INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = _utf8 'текст';
+SET @a3 = _koi8r '';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE TRIGGER mysqltest2.trg4|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg4 CREATE DEFINER=`root`@`localhost` TRIGGER mysqltest2.trg4 AFTER INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = _utf8 'текст';
+SET @b3 = _koi8r '';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+
+SHOW TRIGGERS|
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+trg1 INSERT t1 BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = 'текст';
+SET @a3 = 'текст';
+END BEFORE NULL root@localhost utf8 utf8_general_ci utf8_unicode_ci
+trg2 INSERT t1 BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = 'текст';
+SET @b3 = 'текст';
+END AFTER NULL root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+use mysqltest2|
+
+SHOW TRIGGERS|
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+trg3 INSERT t1 BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = 'текст';
+SET @a3 = 'текст';
+END BEFORE NULL root@localhost utf8 utf8_general_ci utf8_unicode_ci
+trg4 INSERT t1 BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = 'текст';
+SET @b3 = 'текст';
+END AFTER NULL root@localhost utf8 utf8_general_ci utf8_unicode_ci
+use mysqltest1|
+
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg1'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 trg1 INSERT NULL mysqltest1 t1 0 NULL BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = 'текст';
+SET @a3 = 'текст';
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg2'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 trg2 INSERT NULL mysqltest1 t1 0 NULL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = 'текст';
+SET @b3 = 'текст';
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg3'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 trg3 INSERT NULL mysqltest2 t1 0 NULL BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = 'текст';
+SET @a3 = 'текст';
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg4'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 trg4 INSERT NULL mysqltest2 t1 0 NULL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = 'текст';
+SET @b3 = 'текст';
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+
+SET @a1 = '1'|
+SET @a2 = '1'|
+SET @a3 = '1'|
+SET @b1 = '2'|
+SET @b2 = '2'|
+SET @b3 = '2'|
+
+
+INSERT INTO t1 VALUES(1)|
+
+---> Log:
+SELECT msg FROM log|
+msg
+utf8_unicode_ci
+utf8_general_ci
+utf8_general_ci
+koi8r_general_ci
+utf8_general_ci
+utf8
+utf8_general_ci
+utf8_general_ci
+utf8_general_ci
+koi8r_general_ci
+utf8_general_ci
+utf8
+
+SELECT
+COLLATION(@a1) AS ca1,
+COLLATION(@a2) AS ca2,
+COLLATION(@a3) AS ca3,
+COLLATION(@b1) AS cb1,
+COLLATION(@b2) AS cb2,
+COLLATION(@b3) AS cb3|
+ca1 ca2 ca3 cb1 cb2 cb3
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8_general_ci koi8r_general_ci
+
+DELETE FROM log|
+
+
+INSERT INTO mysqltest2.t1 VALUES(1)|
+
+---> Log:
+SELECT msg FROM mysqltest2.log|
+msg
+utf8_unicode_ci
+utf8_general_ci
+utf8_general_ci
+koi8r_general_ci
+utf8_general_ci
+utf8
+utf8_general_ci
+utf8_general_ci
+utf8_general_ci
+koi8r_general_ci
+utf8_general_ci
+utf8
+
+SELECT
+COLLATION(@a1) AS ca1,
+COLLATION(@a2) AS ca2,
+COLLATION(@a3) AS ca3,
+COLLATION(@b1) AS cb1,
+COLLATION(@b2) AS cb2,
+COLLATION(@b3) AS cb3|
+ca1 ca2 ca3 cb1 cb2 cb3
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8_general_ci koi8r_general_ci
+
+DELETE FROM mysqltest2.log|
+
+
+ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
+ALTER DATABASE mysqltest2 COLLATE cp866_general_ci|
+ALTER TABLE t1 ADD COLUMN fake INT|
+ALTER TABLE t1 DROP COLUMN fake|
+ALTER TABLE mysqltest2.t1 ADD COLUMN fake INT|
+ALTER TABLE mysqltest2.t1 DROP COLUMN fake|
+
+---> connection: con2
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+INSERT INTO mysqltest1.t1 VALUES(0)|
+INSERT INTO mysqltest2.t1 VALUES(0)|
+DELETE FROM mysqltest1.log|
+DELETE FROM mysqltest2.log|
+set names utf8|
+use mysqltest1|
+
+
+SHOW CREATE TRIGGER trg1|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg1 CREATE DEFINER=`root`@`localhost` TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = _utf8 'текст';
+SET @a3 = _koi8r '';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE TRIGGER trg2|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg2 CREATE DEFINER=`root`@`localhost` TRIGGER trg2 AFTER INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = _utf8 'текст';
+SET @b3 = _koi8r '';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE TRIGGER mysqltest2.trg3|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg3 CREATE DEFINER=`root`@`localhost` TRIGGER mysqltest2.trg3 BEFORE INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = _utf8 'текст';
+SET @a3 = _koi8r '';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE TRIGGER mysqltest2.trg4|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg4 CREATE DEFINER=`root`@`localhost` TRIGGER mysqltest2.trg4 AFTER INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = _utf8 'текст';
+SET @b3 = _koi8r '';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+
+SHOW TRIGGERS|
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+trg1 INSERT t1 BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = 'текст';
+SET @a3 = 'текст';
+END BEFORE NULL root@localhost utf8 utf8_general_ci utf8_unicode_ci
+trg2 INSERT t1 BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = 'текст';
+SET @b3 = 'текст';
+END AFTER NULL root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+use mysqltest2|
+
+SHOW TRIGGERS|
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+trg3 INSERT t1 BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = 'текст';
+SET @a3 = 'текст';
+END BEFORE NULL root@localhost utf8 utf8_general_ci utf8_unicode_ci
+trg4 INSERT t1 BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = 'текст';
+SET @b3 = 'текст';
+END AFTER NULL root@localhost utf8 utf8_general_ci utf8_unicode_ci
+use mysqltest1|
+
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg1'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 trg1 INSERT NULL mysqltest1 t1 0 NULL BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = 'текст';
+SET @a3 = 'текст';
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg2'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 trg2 INSERT NULL mysqltest1 t1 0 NULL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = 'текст';
+SET @b3 = 'текст';
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg3'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 trg3 INSERT NULL mysqltest2 t1 0 NULL BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = 'текст';
+SET @a3 = 'текст';
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg4'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 trg4 INSERT NULL mysqltest2 t1 0 NULL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = 'текст';
+SET @b3 = 'текст';
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+
+SET @a1 = '1'|
+SET @a2 = '1'|
+SET @a3 = '1'|
+SET @b1 = '2'|
+SET @b2 = '2'|
+SET @b3 = '2'|
+
+
+INSERT INTO t1 VALUES(1)|
+
+---> Log:
+SELECT msg FROM log|
+msg
+utf8_unicode_ci
+utf8_general_ci
+utf8_general_ci
+koi8r_general_ci
+utf8_general_ci
+utf8
+utf8_general_ci
+utf8_general_ci
+utf8_general_ci
+koi8r_general_ci
+utf8_general_ci
+utf8
+
+SELECT
+COLLATION(@a1) AS ca1,
+COLLATION(@a2) AS ca2,
+COLLATION(@a3) AS ca3,
+COLLATION(@b1) AS cb1,
+COLLATION(@b2) AS cb2,
+COLLATION(@b3) AS cb3|
+ca1 ca2 ca3 cb1 cb2 cb3
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8_general_ci koi8r_general_ci
+
+DELETE FROM log|
+
+
+INSERT INTO mysqltest2.t1 VALUES(1)|
+
+---> Log:
+SELECT msg FROM mysqltest2.log|
+msg
+utf8_unicode_ci
+utf8_general_ci
+utf8_general_ci
+koi8r_general_ci
+utf8_general_ci
+utf8
+utf8_general_ci
+utf8_general_ci
+utf8_general_ci
+koi8r_general_ci
+utf8_general_ci
+utf8
+
+SELECT
+COLLATION(@a1) AS ca1,
+COLLATION(@a2) AS ca2,
+COLLATION(@a3) AS ca3,
+COLLATION(@b1) AS cb1,
+COLLATION(@b2) AS cb2,
+COLLATION(@b3) AS cb3|
+ca1 ca2 ca3 cb1 cb2 cb3
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8_general_ci koi8r_general_ci
+
+DELETE FROM mysqltest2.log|
+
+---> Dump of mysqltest1
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest1` /*!40100 DEFAULT CHARACTER SET cp866 */;
+
+USE `mysqltest1`;
+CREATE TABLE `log` (
+ `msg` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+CREATE TABLE `t1` (
+ `c` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+INSERT INTO `t1` VALUES (1),(0),(1);
+ALTER DATABASE mysqltest1 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = _utf8 'текст';
+SET @a3 = _koi8r '';
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE mysqltest1 CHARACTER SET cp866 COLLATE cp866_general_ci ;
+ALTER DATABASE mysqltest1 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER trg2 AFTER INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = _utf8 'текст';
+SET @b3 = _koi8r '';
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE mysqltest1 CHARACTER SET cp866 COLLATE cp866_general_ci ;
+
+---> Dumping mysqltest1 to ddl_i18n_utf8triggers.mysqltest1.sql
+
+---> Dump of mysqltest2
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest2` /*!40100 DEFAULT CHARACTER SET cp866 */;
+
+USE `mysqltest2`;
+CREATE TABLE `log` (
+ `msg` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+CREATE TABLE `t1` (
+ `c` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+INSERT INTO `t1` VALUES (1),(0),(1);
+ALTER DATABASE mysqltest2 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER mysqltest2.trg3 BEFORE INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = _utf8 'текст';
+SET @a3 = _koi8r '';
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE mysqltest2 CHARACTER SET cp866 COLLATE cp866_general_ci ;
+ALTER DATABASE mysqltest2 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER mysqltest2.trg4 AFTER INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = _utf8 'текст';
+SET @b3 = _koi8r '';
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE mysqltest2 CHARACTER SET cp866 COLLATE cp866_general_ci ;
+
+---> Dumping mysqltest2 to ddl_i18n_utf8triggers.mysqltest2.sql
+
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+
+---> Restoring mysqltest1...
+---> Restoring mysqltest2...
+ALTER TABLE mysqltest1.t1 ADD COLUMN fake INT|
+ALTER TABLE mysqltest1.t1 DROP COLUMN fake|
+ALTER TABLE mysqltest2.t1 ADD COLUMN fake INT|
+ALTER TABLE mysqltest2.t1 DROP COLUMN fake|
+
+---> connection: con3
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+INSERT INTO mysqltest1.t1 VALUES(0)|
+INSERT INTO mysqltest2.t1 VALUES(0)|
+DELETE FROM mysqltest1.log|
+DELETE FROM mysqltest2.log|
+set names utf8|
+use mysqltest1|
+
+
+SHOW CREATE TRIGGER trg1|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg1 CREATE DEFINER=`root`@`localhost` TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = _utf8 'текст';
+SET @a3 = _koi8r '';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE TRIGGER trg2|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg2 CREATE DEFINER=`root`@`localhost` TRIGGER trg2 AFTER INSERT ON t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = _utf8 'текст';
+SET @b3 = _koi8r '';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE TRIGGER mysqltest2.trg3|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg3 CREATE DEFINER=`root`@`localhost` TRIGGER mysqltest2.trg3 BEFORE INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = _utf8 'текст';
+SET @a3 = _koi8r '';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE TRIGGER mysqltest2.trg4|
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+trg4 CREATE DEFINER=`root`@`localhost` TRIGGER mysqltest2.trg4 AFTER INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+INSERT INTO log VALUES(COLLATION(_koi8r ''));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = _utf8 'текст';
+SET @b3 = _koi8r '';
+END utf8 utf8_general_ci utf8_unicode_ci
+
+
+SHOW TRIGGERS|
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+trg1 INSERT t1 BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = 'текст';
+SET @a3 = 'текст';
+END BEFORE NULL root@localhost utf8 utf8_general_ci utf8_unicode_ci
+trg2 INSERT t1 BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = 'текст';
+SET @b3 = 'текст';
+END AFTER NULL root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+use mysqltest2|
+
+SHOW TRIGGERS|
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+trg3 INSERT t1 BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = 'текст';
+SET @a3 = 'текст';
+END BEFORE NULL root@localhost utf8 utf8_general_ci utf8_unicode_ci
+trg4 INSERT t1 BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = 'текст';
+SET @b3 = 'текст';
+END AFTER NULL root@localhost utf8 utf8_general_ci utf8_unicode_ci
+use mysqltest1|
+
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg1'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 trg1 INSERT NULL mysqltest1 t1 0 NULL BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = 'текст';
+SET @a3 = 'текст';
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg2'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 trg2 INSERT NULL mysqltest1 t1 0 NULL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = 'текст';
+SET @b3 = 'текст';
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg3'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 trg3 INSERT NULL mysqltest2 t1 0 NULL BEGIN
+DECLARE перем1 CHAR(10);
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @a1 = 'текст';
+SET @a2 = 'текст';
+SET @a3 = 'текст';
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg4'|
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 trg4 INSERT NULL mysqltest2 t1 0 NULL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+INSERT INTO log VALUES(COLLATION(перем1));
+INSERT INTO log VALUES(COLLATION('текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(COLLATION( 'текст'));
+INSERT INTO log VALUES(@@collation_connection);
+INSERT INTO log VALUES(@@character_set_client);
+SET @b1 = 'текст';
+SET @b2 = 'текст';
+SET @b3 = 'текст';
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+
+
+SET @a1 = '1'|
+SET @a2 = '1'|
+SET @a3 = '1'|
+SET @b1 = '2'|
+SET @b2 = '2'|
+SET @b3 = '2'|
+
+
+INSERT INTO t1 VALUES(1)|
+
+---> Log:
+SELECT msg FROM log|
+msg
+utf8_unicode_ci
+utf8_general_ci
+utf8_general_ci
+koi8r_general_ci
+utf8_general_ci
+utf8
+utf8_general_ci
+utf8_general_ci
+utf8_general_ci
+koi8r_general_ci
+utf8_general_ci
+utf8
+
+SELECT
+COLLATION(@a1) AS ca1,
+COLLATION(@a2) AS ca2,
+COLLATION(@a3) AS ca3,
+COLLATION(@b1) AS cb1,
+COLLATION(@b2) AS cb2,
+COLLATION(@b3) AS cb3|
+ca1 ca2 ca3 cb1 cb2 cb3
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8_general_ci koi8r_general_ci
+
+DELETE FROM log|
+
+
+INSERT INTO mysqltest2.t1 VALUES(1)|
+
+---> Log:
+SELECT msg FROM mysqltest2.log|
+msg
+utf8_unicode_ci
+utf8_general_ci
+utf8_general_ci
+koi8r_general_ci
+utf8_general_ci
+utf8
+utf8_general_ci
+utf8_general_ci
+utf8_general_ci
+koi8r_general_ci
+utf8_general_ci
+utf8
+
+SELECT
+COLLATION(@a1) AS ca1,
+COLLATION(@a2) AS ca2,
+COLLATION(@a3) AS ca3,
+COLLATION(@b1) AS cb1,
+COLLATION(@b2) AS cb2,
+COLLATION(@b3) AS cb3|
+ca1 ca2 ca3 cb1 cb2 cb3
+utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8_general_ci koi8r_general_ci
+
+DELETE FROM mysqltest2.log|
+
+---> connection: default
+use test|
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+-------------------------------------------------------------------
+Events
+-------------------------------------------------------------------
+
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+use mysqltest1|
+
+CREATE EVENT ev1 ON SCHEDULE AT '2030-01-01 00:00:00' DO
+BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END|
+
+CREATE EVENT ev2 ON SCHEDULE AT '2030-01-01 00:00:00' DO
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END|
+
+CREATE EVENT mysqltest2.ev3 ON SCHEDULE AT '2030-01-01 00:00:00' DO
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END|
+
+CREATE EVENT mysqltest2.ev4 ON SCHEDULE AT '2030-01-01 00:00:00' DO
+BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END|
+
+
+
+SHOW CREATE EVENT ev1|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev1 SYSTEM CREATE EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE EVENT ev2|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev2 SYSTEM CREATE EVENT `ev2` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE EVENT mysqltest2.ev3|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev3 SYSTEM CREATE EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE EVENT mysqltest2.ev3|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev3 SYSTEM CREATE EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END utf8 utf8_general_ci utf8_unicode_ci
+
+
+SHOW EVENTS LIKE 'ev1'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+mysqltest1 ev1 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW EVENTS LIKE 'ev2'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+mysqltest1 ev2 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW EVENTS LIKE 'ev3'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+
+SHOW EVENTS LIKE 'ev4'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev1'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 ev1 root@localhost SYSTEM SQL BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION( 'текст') AS c3,
+COLLATION( 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 ev2 root@localhost SYSTEM SQL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION( 'текст') AS c3,
+COLLATION( 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 ev3 root@localhost SYSTEM SQL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION( 'текст') AS c3,
+COLLATION( 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 ev4 root@localhost SYSTEM SQL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION( 'текст') AS c3,
+COLLATION( 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+
+
+ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
+ALTER DATABASE mysqltest2 COLLATE cp866_general_ci|
+
+---> connection: con2
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+SHOW CREATE EVENT ev1|
+SHOW CREATE EVENT ev2|
+SHOW CREATE EVENT mysqltest2.ev3|
+SHOW CREATE EVENT mysqltest2.ev4|
+set names utf8|
+
+
+SHOW CREATE EVENT ev1|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev1 SYSTEM CREATE EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE EVENT ev2|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev2 SYSTEM CREATE EVENT `ev2` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE EVENT mysqltest2.ev3|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev3 SYSTEM CREATE EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE EVENT mysqltest2.ev3|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev3 SYSTEM CREATE EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END utf8 utf8_general_ci utf8_unicode_ci
+
+
+SHOW EVENTS LIKE 'ev1'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+mysqltest1 ev1 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW EVENTS LIKE 'ev2'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+mysqltest1 ev2 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW EVENTS LIKE 'ev3'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+
+SHOW EVENTS LIKE 'ev4'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev1'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 ev1 root@localhost SYSTEM SQL BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION( 'текст') AS c3,
+COLLATION( 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 ev2 root@localhost SYSTEM SQL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION( 'текст') AS c3,
+COLLATION( 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 ev3 root@localhost SYSTEM SQL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION( 'текст') AS c3,
+COLLATION( 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 ev4 root@localhost SYSTEM SQL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION( 'текст') AS c3,
+COLLATION( 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+
+---> Dump of mysqltest1
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest1` /*!40100 DEFAULT CHARACTER SET cp866 */;
+
+USE `mysqltest1`;
+/*!50106 SET @save_time_zone= @@TIME_ZONE */ ;
+DELIMITER ;;
+ALTER DATABASE mysqltest1 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;;
+/*!50003 SET character_set_client = utf8 */ ;;
+/*!50003 SET character_set_results = utf8 */ ;;
+/*!50003 SET collation_connection = utf8_general_ci */ ;;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;;
+/*!50003 SET sql_mode = '' */ ;;
+/*!50003 SET @saved_time_zone = @@time_zone */ ;;
+/*!50003 SET time_zone = 'SYSTEM' */ ;;
+/*!50106 CREATE EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END */ ;;
+/*!50003 SET time_zone = @saved_time_zone */ ;;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;;
+/*!50003 SET character_set_client = @saved_cs_client */ ;;
+/*!50003 SET character_set_results = @saved_cs_results */ ;;
+/*!50003 SET collation_connection = @saved_col_connection */ ;;
+ALTER DATABASE mysqltest1 CHARACTER SET cp866 COLLATE cp866_general_ci ;;
+DELIMITER ;;
+ALTER DATABASE mysqltest1 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;;
+/*!50003 SET character_set_client = utf8 */ ;;
+/*!50003 SET character_set_results = utf8 */ ;;
+/*!50003 SET collation_connection = utf8_general_ci */ ;;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;;
+/*!50003 SET sql_mode = '' */ ;;
+/*!50003 SET @saved_time_zone = @@time_zone */ ;;
+/*!50003 SET time_zone = 'SYSTEM' */ ;;
+/*!50106 CREATE EVENT `ev2` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END */ ;;
+/*!50003 SET time_zone = @saved_time_zone */ ;;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;;
+/*!50003 SET character_set_client = @saved_cs_client */ ;;
+/*!50003 SET character_set_results = @saved_cs_results */ ;;
+/*!50003 SET collation_connection = @saved_col_connection */ ;;
+ALTER DATABASE mysqltest1 CHARACTER SET cp866 COLLATE cp866_general_ci ;;
+DELIMITER ;
+/*!50106 SET TIME_ZONE= @save_time_zone */ ;
+
+---> Dumping mysqltest1 to ddl_i18n_utf8events.mysqltest1.sql
+
+---> Dump of mysqltest2
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest2` /*!40100 DEFAULT CHARACTER SET cp866 */;
+
+USE `mysqltest2`;
+/*!50106 SET @save_time_zone= @@TIME_ZONE */ ;
+DELIMITER ;;
+ALTER DATABASE mysqltest2 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;;
+/*!50003 SET character_set_client = utf8 */ ;;
+/*!50003 SET character_set_results = utf8 */ ;;
+/*!50003 SET collation_connection = utf8_general_ci */ ;;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;;
+/*!50003 SET sql_mode = '' */ ;;
+/*!50003 SET @saved_time_zone = @@time_zone */ ;;
+/*!50003 SET time_zone = 'SYSTEM' */ ;;
+/*!50106 CREATE EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END */ ;;
+/*!50003 SET time_zone = @saved_time_zone */ ;;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;;
+/*!50003 SET character_set_client = @saved_cs_client */ ;;
+/*!50003 SET character_set_results = @saved_cs_results */ ;;
+/*!50003 SET collation_connection = @saved_col_connection */ ;;
+ALTER DATABASE mysqltest2 CHARACTER SET cp866 COLLATE cp866_general_ci ;;
+DELIMITER ;;
+ALTER DATABASE mysqltest2 CHARACTER SET utf8 COLLATE utf8_unicode_ci ;;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;;
+/*!50003 SET character_set_client = utf8 */ ;;
+/*!50003 SET character_set_results = utf8 */ ;;
+/*!50003 SET collation_connection = utf8_general_ci */ ;;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;;
+/*!50003 SET sql_mode = '' */ ;;
+/*!50003 SET @saved_time_zone = @@time_zone */ ;;
+/*!50003 SET time_zone = 'SYSTEM' */ ;;
+/*!50106 CREATE EVENT `ev4` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END */ ;;
+/*!50003 SET time_zone = @saved_time_zone */ ;;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;;
+/*!50003 SET character_set_client = @saved_cs_client */ ;;
+/*!50003 SET character_set_results = @saved_cs_results */ ;;
+/*!50003 SET collation_connection = @saved_col_connection */ ;;
+ALTER DATABASE mysqltest2 CHARACTER SET cp866 COLLATE cp866_general_ci ;;
+DELIMITER ;
+/*!50106 SET TIME_ZONE= @save_time_zone */ ;
+
+---> Dumping mysqltest2 to ddl_i18n_utf8events.mysqltest2.sql
+
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+
+---> Restoring mysqltest1...
+---> Restoring mysqltest2...
+
+---> connection: con3
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+SHOW CREATE EVENT ev1|
+SHOW CREATE EVENT ev2|
+SHOW CREATE EVENT mysqltest2.ev3|
+SHOW CREATE EVENT mysqltest2.ev4|
+set names utf8|
+
+
+SHOW CREATE EVENT ev1|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev1 SYSTEM CREATE EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE EVENT ev2|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev2 SYSTEM CREATE EVENT `ev2` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE EVENT mysqltest2.ev3|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev3 SYSTEM CREATE EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW CREATE EVENT mysqltest2.ev3|
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ev3 SYSTEM CREATE EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION(_utf8 'текст') AS c3,
+COLLATION(_koi8r '') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END utf8 utf8_general_ci utf8_unicode_ci
+
+
+SHOW EVENTS LIKE 'ev1'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+mysqltest1 ev1 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW EVENTS LIKE 'ev2'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+mysqltest1 ev2 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 utf8 utf8_general_ci utf8_unicode_ci
+
+SHOW EVENTS LIKE 'ev3'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+
+SHOW EVENTS LIKE 'ev4'|
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev1'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 ev1 root@localhost SYSTEM SQL BEGIN
+DECLARE перем1 CHAR(10);
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION( 'текст') AS c3,
+COLLATION( 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest1 ev2 root@localhost SYSTEM SQL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION( 'текст') AS c3,
+COLLATION( 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 ev3 root@localhost SYSTEM SQL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION( 'текст') AS c3,
+COLLATION( 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+
+SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'|
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest2 ev4 root@localhost SYSTEM SQL BEGIN
+DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+SELECT
+COLLATION(перем1) AS c1,
+COLLATION('текст') AS c2,
+COLLATION( 'текст') AS c3,
+COLLATION( 'текст') AS c4,
+@@collation_connection AS c5,
+@@character_set_client AS c6;
+END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+
+-------------------------------------------------------------------
+DDL statements within stored routine.
+-------------------------------------------------------------------
+
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+use mysqltest1|
+
+CREATE PROCEDURE p1()
+BEGIN
+CREATE TABLE t1(col1 VARCHAR(10));
+SHOW CREATE TABLE t1;
+END|
+
+CREATE PROCEDURE mysqltest2.p2()
+BEGIN
+CREATE TABLE t2(col1 VARCHAR(10));
+SHOW CREATE TABLE t2;
+END|
+
+CALL p1()|
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `col1` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
+
+SHOW CREATE TABLE t1|
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `col1` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
+
+
+CALL mysqltest2.p2()|
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `col1` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
+
+SHOW CREATE TABLE mysqltest2.t2|
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `col1` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
+
+ALTER DATABASE mysqltest1 COLLATE cp1251_general_cs|
+ALTER DATABASE mysqltest2 COLLATE cp1251_general_cs|
+DROP TABLE t1|
+DROP TABLE mysqltest2.t2|
+
+CALL p1()|
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `col1` varchar(10) COLLATE cp1251_general_cs DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
+
+SHOW CREATE TABLE t1|
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `col1` varchar(10) COLLATE cp1251_general_cs DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
+
+
+CALL mysqltest2.p2()|
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `col1` varchar(10) COLLATE cp1251_general_cs DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
+
+SHOW CREATE TABLE mysqltest2.t2|
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `col1` varchar(10) COLLATE cp1251_general_cs DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
+
+---> connection: default
+use test|
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
diff --git a/mysql-test/r/errors.result b/mysql-test/r/errors.result
index 94debb1785f..022a32d9c9b 100644
--- a/mysql-test/r/errors.result
+++ b/mysql-test/r/errors.result
@@ -41,3 +41,17 @@ SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0)));
a
1
DROP TABLE t1;
+CREATE TABLE t1( a INT );
+SELECT b FROM t1;
+ERROR 42S22: Unknown column 'b' in 'field list'
+SHOW ERRORS;
+Level Code Message
+Error 1054 Unknown column 'b' in 'field list'
+CREATE TABLE t2 SELECT b FROM t1;
+ERROR 42S22: Unknown column 'b' in 'field list'
+SHOW ERRORS;
+Level Code Message
+Error 1054 Unknown column 'b' in 'field list'
+INSERT INTO t1 SELECT b FROM t1;
+ERROR 42S22: Unknown column 'b' in 'field list'
+DROP TABLE t1;
diff --git a/mysql-test/r/events.result b/mysql-test/r/events.result
index 0b1cd67f559..579f5907882 100644
--- a/mysql-test/r/events.result
+++ b/mysql-test/r/events.result
@@ -122,82 +122,105 @@ drop table t_event3;
set names utf8;
CREATE EVENT root6 ON SCHEDULE EVERY '10:20' MINUTE_SECOND ON COMPLETION PRESERVE ENABLE COMMENT 'some comment' DO select 1;
SHOW CREATE EVENT root6;
-Event sql_mode time_zone Create Event
-root6 SYSTEM CREATE EVENT `root6` ON SCHEDULE EVERY '10:20' MINUTE_SECOND STARTS '#' ON COMPLETION PRESERVE ENABLE COMMENT 'some comment' DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+root6 SYSTEM CREATE EVENT `root6` ON SCHEDULE EVERY '10:20' MINUTE_SECOND STARTS '#' ON COMPLETION PRESERVE ENABLE COMMENT 'some comment' DO select 1 utf8 utf8_general_ci latin1_swedish_ci
create event root7 on schedule every 2 year do select 1;
SHOW CREATE EVENT root7;
-Event sql_mode time_zone Create Event
-root7 SYSTEM CREATE EVENT `root7` ON SCHEDULE EVERY 2 YEAR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+root7 SYSTEM CREATE EVENT `root7` ON SCHEDULE EVERY 2 YEAR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
create event root8 on schedule every '2:5' year_month do select 1;
SHOW CREATE EVENT root8;
-Event sql_mode time_zone Create Event
-root8 SYSTEM CREATE EVENT `root8` ON SCHEDULE EVERY '2-5' YEAR_MONTH STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+root8 SYSTEM CREATE EVENT `root8` ON SCHEDULE EVERY '2-5' YEAR_MONTH STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
create event root8_1 on schedule every '2:15' year_month do select 1;
SHOW CREATE EVENT root8_1;
-Event sql_mode time_zone Create Event
-root8_1 SYSTEM CREATE EVENT `root8_1` ON SCHEDULE EVERY '3-3' YEAR_MONTH STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+root8_1 SYSTEM CREATE EVENT `root8_1` ON SCHEDULE EVERY '3-3' YEAR_MONTH STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
create event root9 on schedule every 2 week ON COMPLETION PRESERVE DISABLE COMMENT 'коментар на кирилица' do select 1;
SHOW CREATE EVENT root9;
-Event sql_mode time_zone Create Event
-root9 SYSTEM CREATE EVENT `root9` ON SCHEDULE EVERY 2 WEEK STARTS '#' ON COMPLETION PRESERVE DISABLE COMMENT 'коментар на кирилица' DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+root9 SYSTEM CREATE EVENT `root9` ON SCHEDULE EVERY 2 WEEK STARTS '#' ON COMPLETION PRESERVE DISABLE COMMENT 'коментар на кирилица' DO select 1 utf8 utf8_general_ci latin1_swedish_ci
create event root10 on schedule every '20:5' day_hour do select 1;
SHOW CREATE EVENT root10;
-Event sql_mode time_zone Create Event
-root10 SYSTEM CREATE EVENT `root10` ON SCHEDULE EVERY '20 5' DAY_HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+root10 SYSTEM CREATE EVENT `root10` ON SCHEDULE EVERY '20 5' DAY_HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
create event root11 on schedule every '20:25' day_hour do select 1;
SHOW CREATE EVENT root11;
-Event sql_mode time_zone Create Event
-root11 SYSTEM CREATE EVENT `root11` ON SCHEDULE EVERY '21 1' DAY_HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+root11 SYSTEM CREATE EVENT `root11` ON SCHEDULE EVERY '21 1' DAY_HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
create event root12 on schedule every '20:25' hour_minute do select 1;
SHOW CREATE EVENT root12;
-Event sql_mode time_zone Create Event
-root12 SYSTEM CREATE EVENT `root12` ON SCHEDULE EVERY '20:25' HOUR_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+root12 SYSTEM CREATE EVENT `root12` ON SCHEDULE EVERY '20:25' HOUR_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
create event root13 on schedule every '25:25' hour_minute do select 1;
SHOW CREATE EVENT root13;
-Event sql_mode time_zone Create Event
-root13 SYSTEM CREATE EVENT `root13` ON SCHEDULE EVERY '25:25' HOUR_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+root13 SYSTEM CREATE EVENT `root13` ON SCHEDULE EVERY '25:25' HOUR_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
create event root13_1 on schedule every '11:65' hour_minute do select 1;
SHOW CREATE EVENT root13_1;
-Event sql_mode time_zone Create Event
-root13_1 SYSTEM CREATE EVENT `root13_1` ON SCHEDULE EVERY '12:5' HOUR_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+root13_1 SYSTEM CREATE EVENT `root13_1` ON SCHEDULE EVERY '12:5' HOUR_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
create event root14 on schedule every '35:35' minute_second do select 1;
SHOW CREATE EVENT root14;
-Event sql_mode time_zone Create Event
-root14 SYSTEM CREATE EVENT `root14` ON SCHEDULE EVERY '35:35' MINUTE_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+root14 SYSTEM CREATE EVENT `root14` ON SCHEDULE EVERY '35:35' MINUTE_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
create event root15 on schedule every '35:66' minute_second do select 1;
SHOW CREATE EVENT root15;
-Event sql_mode time_zone Create Event
-root15 SYSTEM CREATE EVENT `root15` ON SCHEDULE EVERY '36:6' MINUTE_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+root15 SYSTEM CREATE EVENT `root15` ON SCHEDULE EVERY '36:6' MINUTE_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
create event root16 on schedule every '35:56' day_minute do select 1;
SHOW CREATE EVENT root16;
-Event sql_mode time_zone Create Event
-root16 SYSTEM CREATE EVENT `root16` ON SCHEDULE EVERY '1 11:56' DAY_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+root16 SYSTEM CREATE EVENT `root16` ON SCHEDULE EVERY '1 11:56' DAY_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
create event root17 on schedule every '35:12:45' day_minute do select 1;
SHOW CREATE EVENT root17;
-Event sql_mode time_zone Create Event
-root17 SYSTEM CREATE EVENT `root17` ON SCHEDULE EVERY '35 12:45' DAY_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+root17 SYSTEM CREATE EVENT `root17` ON SCHEDULE EVERY '35 12:45' DAY_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
create event root17_1 on schedule every '35:25:65' day_minute do select 1;
SHOW CREATE EVENT root17_1;
-Event sql_mode time_zone Create Event
-root17_1 SYSTEM CREATE EVENT `root17_1` ON SCHEDULE EVERY '36 2:5' DAY_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+root17_1 SYSTEM CREATE EVENT `root17_1` ON SCHEDULE EVERY '36 2:5' DAY_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
create event root18 on schedule every '35:12:45' hour_second do select 1;
SHOW CREATE EVENT root18;
-Event sql_mode time_zone Create Event
-root18 SYSTEM CREATE EVENT `root18` ON SCHEDULE EVERY '35:12:45' HOUR_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+root18 SYSTEM CREATE EVENT `root18` ON SCHEDULE EVERY '35:12:45' HOUR_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
create event root19 on schedule every '15:59:85' hour_second do select 1;
SHOW CREATE EVENT root19;
-Event sql_mode time_zone Create Event
-root19 SYSTEM CREATE EVENT `root19` ON SCHEDULE EVERY '16:0:25' HOUR_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+root19 SYSTEM CREATE EVENT `root19` ON SCHEDULE EVERY '16:0:25' HOUR_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
create event root20 on schedule every '50:20:12:45' day_second do select 1;
SHOW CREATE EVENT root20;
-Event sql_mode time_zone Create Event
-root20 SYSTEM CREATE EVENT `root20` ON SCHEDULE EVERY '50 20:12:45' DAY_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+root20 SYSTEM CREATE EVENT `root20` ON SCHEDULE EVERY '50 20:12:45' DAY_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
set names cp1251;
create event 21 on schedule every '50:23:59:95' day_second COMMENT ' 1251 ' do select 1;
SHOW CREATE EVENT 21;
-Event sql_mode time_zone Create Event
-21 SYSTEM CREATE EVENT `21` ON SCHEDULE EVERY '51 0:0:35' DAY_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE COMMENT ' 1251 ' DO select 1
-insert into mysql.event (db, name, body, definer, interval_value, interval_field, originator) values (database(), "root22", "select 1", user(), 100, "SECOND_MICROSECOND", 1);
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+21 SYSTEM CREATE EVENT `руут21` ON SCHEDULE EVERY '51 0:0:35' DAY_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE COMMENT 'това е 1251 коментар' DO select 1 cp1251 cp1251_general_ci latin1_swedish_ci
+insert into mysql.event (
+db,
+name,
+body,
+definer,
+interval_value,
+interval_field,
+originator,
+character_set_client,
+collation_connection,
+db_collation,
+body_utf8)
+values (
+database(),
+"root22",
+"select 1",
+user(),
+100,
+"SECOND_MICROSECOND",
+1,
+'utf8',
+'utf8_general_ci',
+'utf8_general_ci',
+'select 1');
show create event root22;
ERROR 42000: This version of MySQL doesn't yet support 'MICROSECOND'
SHOW EVENTS;
@@ -231,8 +254,8 @@ Create a test event. Only event metadata is relevant,
the actual schedule and body are not.
CREATE EVENT intact_check ON SCHEDULE EVERY 10 HOUR DO SELECT "nothing";
SHOW EVENTS;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
-events_test intact_check root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+events_test intact_check root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
Try to alter mysql.event: the server should fail to load
event information after mysql.event was tampered with.
@@ -241,14 +264,14 @@ works as before
ALTER TABLE mysql.event ADD dummy INT;
SHOW EVENTS;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
-events_test intact_check root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+events_test intact_check root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
SELECT event_name FROM INFORMATION_SCHEMA.events;
event_name
intact_check
SHOW CREATE EVENT intact_check;
-Event sql_mode time_zone Create Event
-intact_check SYSTEM CREATE EVENT `intact_check` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO SELECT "nothing"
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+intact_check SYSTEM CREATE EVENT `intact_check` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO SELECT "nothing" latin1 latin1_swedish_ci latin1_swedish_ci
DROP EVENT no_such_event;
ERROR HY000: Unknown event 'no_such_event'
CREATE EVENT intact_check_1 ON SCHEDULE EVERY 5 HOUR DO SELECT 5;
@@ -330,7 +353,7 @@ ERROR HY000: Cannot load from mysql.event. The table is probably corrupted
DROP EVENT no_such_event;
ERROR HY000: Unknown event 'no_such_event'
CREATE EVENT intact_check_1 ON SCHEDULE EVERY 5 HOUR DO SELECT 5;
-ERROR HY000: Column count of mysql.event is wrong. Expected 18, found 16. The table is probably corrupted
+ERROR HY000: Column count of mysql.event is wrong. Expected 22, found 20. The table is probably corrupted
ALTER EVENT intact_check_1 ON SCHEDULE EVERY 8 HOUR DO SELECT 8;
ERROR HY000: Unknown event 'intact_check_1'
ALTER EVENT intact_check_1 RENAME TO intact_check_2;
@@ -400,7 +423,7 @@ Restore the original table.
CREATE TABLE mysql.event like event_like;
DROP TABLE event_like;
SHOW EVENTS;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
create event e_26 on schedule at '2017-01-01 00:00:00' disable do set @a = 5;
select db, name, body, definer, convert_tz(execute_at, 'UTC', 'SYSTEM'), on_completion from mysql.event;
db name body definer convert_tz(execute_at, 'UTC', 'SYSTEM') on_completion
@@ -512,7 +535,7 @@ ERROR 42000: Incorrect database name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
SHOW EVENTS FROM ``;
ERROR 42000: Incorrect database name ''
SHOW EVENTS FROM `events\\test`;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
LOCK TABLES mode.
@@ -520,8 +543,8 @@ create table t1 (a int);
create event e1 on schedule every 10 hour do select 1;
lock table t1 read;
show create event e1;
-Event sql_mode time_zone Create Event
-e1 SYSTEM CREATE EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+e1 SYSTEM CREATE EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
select event_name from information_schema.events;
event_name
e1
@@ -538,8 +561,8 @@ ERROR HY000: Table 'event' was not locked with LOCK TABLES
unlock tables;
lock table t1 write;
show create event e1;
-Event sql_mode time_zone Create Event
-e1 SYSTEM CREATE EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+e1 SYSTEM CREATE EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
select event_name from information_schema.events;
event_name
e1
@@ -556,8 +579,8 @@ ERROR HY000: Table 'event' was not locked with LOCK TABLES
unlock tables;
lock table t1 read, mysql.event read;
show create event e1;
-Event sql_mode time_zone Create Event
-e1 SYSTEM CREATE EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+e1 SYSTEM CREATE EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
select event_name from information_schema.events;
event_name
e1
@@ -574,8 +597,8 @@ ERROR HY000: Table 'event' was locked with a READ lock and can't be updated
unlock tables;
lock table t1 write, mysql.event read;
show create event e1;
-Event sql_mode time_zone Create Event
-e1 SYSTEM CREATE EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+e1 SYSTEM CREATE EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
select event_name from information_schema.events;
event_name
e1
@@ -596,8 +619,8 @@ lock table t1 write, mysql.event write;
ERROR HY000: You can't combine write-locking of system tables with other tables or lock types
lock table mysql.event write;
show create event e1;
-Event sql_mode time_zone Create Event
-e1 SYSTEM CREATE EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+e1 SYSTEM CREATE EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
select event_name from information_schema.events;
event_name
e1
diff --git a/mysql-test/r/events_bugs.result b/mysql-test/r/events_bugs.result
index fae530f556b..a01f098affb 100644
--- a/mysql-test/r/events_bugs.result
+++ b/mysql-test/r/events_bugs.result
@@ -33,7 +33,7 @@ create event e_55 on schedule at 20000101000000 do drop table t;
Warnings:
Note 1584 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. Event has not been created
show events;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
create event e_55 on schedule at 20200101000000 starts 10000101000000 do drop table t;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'starts 10000101000000 do drop table t' at line 1
create event e_55 on schedule at 20200101000000 ends 10000101000000 do drop table t;
@@ -389,30 +389,30 @@ SET TIME_ZONE= '+00:00';
SET TIMESTAMP= UNIX_TIMESTAMP('2005-12-31 23:58:59');
CREATE EVENT e1 ON SCHEDULE EVERY 1 DAY DO SELECT 1;
SHOW EVENTS;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
-events_test e1 root@localhost +00:00 RECURRING NULL 1 DAY 2005-12-31 23:58:59 NULL ENABLED 1
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+events_test e1 root@localhost +00:00 RECURRING NULL 1 DAY 2005-12-31 23:58:59 NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
SET TIME_ZONE= '-01:00';
ALTER EVENT e1 ON SCHEDULE EVERY 1 DAY STARTS '2000-01-01 00:00:00';
SHOW EVENTS;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
-events_test e1 root@localhost -01:00 RECURRING NULL 1 DAY 2000-01-01 00:00:00 NULL ENABLED 1
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+events_test e1 root@localhost -01:00 RECURRING NULL 1 DAY 2000-01-01 00:00:00 NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
SET TIME_ZONE= '+02:00';
ALTER EVENT e1 ON SCHEDULE AT '2000-01-02 00:00:00'
ON COMPLETION PRESERVE DISABLE;
SHOW EVENTS;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
-events_test e1 root@localhost +02:00 ONE TIME 2000-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+events_test e1 root@localhost +02:00 ONE TIME 2000-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
SET TIME_ZONE= '-03:00';
ALTER EVENT e1 ON SCHEDULE EVERY 1 DAY ENDS '2030-01-03 00:00:00'
ON COMPLETION PRESERVE DISABLE;
SHOW EVENTS;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
-events_test e1 root@localhost -03:00 RECURRING NULL 1 DAY 2005-12-31 20:58:59 2030-01-03 00:00:00 DISABLED 1
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+events_test e1 root@localhost -03:00 RECURRING NULL 1 DAY 2005-12-31 20:58:59 2030-01-03 00:00:00 DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
SET TIME_ZONE= '+04:00';
ALTER EVENT e1 DO SELECT 2;
SHOW EVENTS;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
-events_test e1 root@localhost -03:00 RECURRING NULL 1 DAY 2005-12-31 20:58:59 2030-01-03 00:00:00 ENABLED 1
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+events_test e1 root@localhost -03:00 RECURRING NULL 1 DAY 2005-12-31 20:58:59 2030-01-03 00:00:00 ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
DROP EVENT e1;
SET TIME_ZONE='+05:00';
CREATE EVENT e1 ON SCHEDULE EVERY 1 DAY STARTS '2006-01-01 00:00:00' DO
@@ -426,24 +426,24 @@ SET TIME_ZONE='+00:00';
CREATE EVENT e3 ON SCHEDULE EVERY 1 DAY STARTS '2006-01-01 00:00:00' DO
SELECT 1;
SELECT * FROM INFORMATION_SCHEMA.EVENTS ORDER BY event_name;
-EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR
-NULL events_test e1 root@localhost +05:00 SQL SELECT 1 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED NOT PRESERVE 2005-12-31 23:58:59 2005-12-31 23:58:59 NULL 1
-NULL events_test e2 root@localhost -05:00 SQL SELECT 1 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED NOT PRESERVE 2005-12-31 23:59:00 2005-12-31 23:59:00 NULL 1
-NULL events_test e3 root@localhost +00:00 SQL SELECT 1 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED NOT PRESERVE 2005-12-31 23:59:01 2005-12-31 23:59:01 NULL 1
+EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL events_test e1 root@localhost +05:00 SQL SELECT 1 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED NOT PRESERVE 2005-12-31 23:58:59 2005-12-31 23:58:59 NULL 1 latin1 latin1_swedish_ci latin1_swedish_ci
+NULL events_test e2 root@localhost -05:00 SQL SELECT 1 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED NOT PRESERVE 2005-12-31 23:59:00 2005-12-31 23:59:00 NULL 1 latin1 latin1_swedish_ci latin1_swedish_ci
+NULL events_test e3 root@localhost +00:00 SQL SELECT 1 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED NOT PRESERVE 2005-12-31 23:59:01 2005-12-31 23:59:01 NULL 1 latin1 latin1_swedish_ci latin1_swedish_ci
SHOW EVENTS;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
-events_test e1 root@localhost +05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1
-events_test e2 root@localhost -05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1
-events_test e3 root@localhost +00:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+events_test e1 root@localhost +05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
+events_test e2 root@localhost -05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
+events_test e3 root@localhost +00:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
SHOW CREATE EVENT e1;
-Event sql_mode time_zone Create Event
-e1 +05:00 CREATE EVENT `e1` ON SCHEDULE EVERY 1 DAY STARTS '2006-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO SELECT 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+e1 +05:00 CREATE EVENT `e1` ON SCHEDULE EVERY 1 DAY STARTS '2006-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci
SHOW CREATE EVENT e2;
-Event sql_mode time_zone Create Event
-e2 -05:00 CREATE EVENT `e2` ON SCHEDULE EVERY 1 DAY STARTS '2006-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO SELECT 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+e2 -05:00 CREATE EVENT `e2` ON SCHEDULE EVERY 1 DAY STARTS '2006-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci
SHOW CREATE EVENT e3;
-Event sql_mode time_zone Create Event
-e3 +00:00 CREATE EVENT `e3` ON SCHEDULE EVERY 1 DAY STARTS '2006-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO SELECT 1
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+e3 +00:00 CREATE EVENT `e3` ON SCHEDULE EVERY 1 DAY STARTS '2006-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci
The following should fail, and nothing should be altered.
ALTER EVENT e1 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
ENDS '1999-01-02 00:00:00';
@@ -474,10 +474,10 @@ SELECT 1;
Warnings:
Note 1584 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. Event has not been created
SHOW EVENTS;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
-events_test e1 root@localhost +05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1
-events_test e2 root@localhost -05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1
-events_test e3 root@localhost +00:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+events_test e1 root@localhost +05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
+events_test e2 root@localhost -05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
+events_test e3 root@localhost +00:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
The following should succeed giving a warning.
ALTER EVENT e1 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
ENDS '1999-01-02 00:00:00' ON COMPLETION PRESERVE;
@@ -510,15 +510,15 @@ CREATE EVENT e8 ON SCHEDULE AT '1999-01-01 00:00:00'
DO
SELECT 1;
SHOW EVENTS;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
-events_test e1 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 1999-01-02 00:00:00 DISABLED 1
-events_test e2 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 NULL ENABLED 1
-events_test e3 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 1999-01-02 00:00:00 DISABLED 1
-events_test e4 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 1999-01-02 00:00:00 DISABLED 1
-events_test e5 root@localhost +00:00 ONE TIME 1999-01-01 00:00:00 NULL NULL NULL NULL DISABLED 1
-events_test e6 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 NULL ENABLED 1
-events_test e7 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 1999-01-02 00:00:00 DISABLED 1
-events_test e8 root@localhost +00:00 ONE TIME 1999-01-01 00:00:00 NULL NULL NULL NULL DISABLED 1
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+events_test e1 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 1999-01-02 00:00:00 DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
+events_test e2 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
+events_test e3 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 1999-01-02 00:00:00 DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
+events_test e4 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 1999-01-02 00:00:00 DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
+events_test e5 root@localhost +00:00 ONE TIME 1999-01-01 00:00:00 NULL NULL NULL NULL DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
+events_test e6 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
+events_test e7 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 1999-01-02 00:00:00 DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
+events_test e8 root@localhost +00:00 ONE TIME 1999-01-01 00:00:00 NULL NULL NULL NULL DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
DROP EVENT e8;
DROP EVENT e7;
DROP EVENT e6;
@@ -557,4 +557,57 @@ CREATE EVENT new_event ON SCHEDULE AT NOW() ENDS NOW() DO SELECT 1;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ENDS NOW() DO SELECT 1' at line 1
CREATE EVENT new_event ON SCHEDULE AT NOW() STARTS NOW() ENDS NOW() DO SELECT 1;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'STARTS NOW() ENDS NOW() DO SELECT 1' at line 1
+USE test;
+SHOW GRANTS FOR CURRENT_USER;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+SET GLOBAL event_scheduler = ON;
+CREATE TABLE event_log (id int KEY AUTO_INCREMENT,
+ev_nm char(40), ev_cnt int,
+ev_tm timestamp) ENGINE=MyISAM;
+SET @ev_base_date = 20281224180000;
+SET autocommit=0;
+CREATE USER evtest1@localhost;
+SET PASSWORD FOR evtest1@localhost = password('ev1');
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM evtest1@localhost;
+GRANT create, insert, select, event ON events_test.* TO evtest1@localhost;
+GRANT select,insert ON test.* TO evtest1@localhost;
+SHOW GRANTS FOR evtest1@localhost;
+Grants for evtest1@localhost
+GRANT USAGE ON *.* TO 'evtest1'@'localhost' IDENTIFIED BY PASSWORD '*3170F3644E31580C25DE4A08F4C07CC9A2D40C32'
+GRANT SELECT, INSERT ON `test`.* TO 'evtest1'@'localhost'
+GRANT SELECT, INSERT, CREATE, EVENT ON `events_test`.* TO 'evtest1'@'localhost'
+connection e1;
+USE events_test;
+CREATE EVENT ev_sched_1823 ON SCHEDULE EVERY 2 SECOND
+DO BEGIN
+SET AUTOCOMMIT = 0;
+SET @evname = 'ev_sched_1823';
+SET @cnt = 0;
+SELECT COUNT(*) INTO @cnt FROM test.event_log WHERE ev_nm = @evname;
+IF @cnt < 6 THEN
+INSERT INTO test.event_log VALUES (NULL,@evname,@cnt+1,current_timestamp());
+COMMIT;
+END IF;
+SELECT COUNT(*) INTO @cnt FROM test.event_log WHERE ev_nm = @evname;
+IF @cnt < 6 THEN
+INSERT INTO test.event_log VALUES (NULL,@evname,@cnt+1,current_timestamp());
+ROLLBACK;
+END IF;
+END;|
+connection default;
+DROP EVENT ev_sched_1823;
+DROP USER evtest1@localhost;
+USE test;
+=====================================================================================
+select id,ev_nm,ev_cnt from event_log order by id;
+id ev_nm ev_cnt
+1 ev_sched_1823 1
+2 ev_sched_1823 2
+3 ev_sched_1823 3
+4 ev_sched_1823 4
+5 ev_sched_1823 5
+6 ev_sched_1823 6
+DROP TABLE event_log;
+SET GLOBAL event_scheduler = OFF;
DROP DATABASE events_test;
diff --git a/mysql-test/r/events_grant.result b/mysql-test/r/events_grant.result
index 278cc5956f5..1aadf7e11f4 100644
--- a/mysql-test/r/events_grant.result
+++ b/mysql-test/r/events_grant.result
@@ -2,8 +2,8 @@ CREATE DATABASE IF NOT EXISTS events_test;
use events_test;
CREATE EVENT one_event ON SCHEDULE EVERY 10 SECOND DO SELECT 123;
SHOW EVENTS;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
-events_test one_event root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+events_test one_event root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS ORDER BY EVENT_SCHEMA, EVENT_NAME;
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT
NULL events_test one_event root@localhost SQL SELECT 123 RECURRING NULL 10 SECOND ENABLED NOT PRESERVE
@@ -29,8 +29,8 @@ ERROR 42000: Access denied for user 'ev_test'@'localhost' to database 'events_te
USE events_test;
"We should see one event";
SHOW EVENTS;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
-events_test one_event root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+events_test one_event root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
SELECT CONCAT("Let's create some new events from the name of ", USER());
CONCAT("Let's create some new events from the name of ", USER())
Let's create some new events from the name of ev_test@localhost
@@ -40,18 +40,18 @@ CREATE EVENT two_event ON SCHEDULE EVERY 20 SECOND ON COMPLETION NOT PRESERVE CO
CREATE EVENT three_event ON SCHEDULE EVERY 20 SECOND ON COMPLETION PRESERVE COMMENT "three event" DO SELECT 123;
"Now we should see 3 events:";
SHOW EVENTS;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
-events_test one_event root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1
-events_test three_event ev_test@localhost SYSTEM RECURRING NULL 20 # # NULL ENABLED 1
-events_test two_event ev_test@localhost SYSTEM RECURRING NULL 20 # # NULL ENABLED 1
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+events_test one_event root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
+events_test three_event ev_test@localhost SYSTEM RECURRING NULL 20 # # NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
+events_test two_event ev_test@localhost SYSTEM RECURRING NULL 20 # # NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
"This should show us only 2 events:";
SHOW EVENTS LIKE 't%event';
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
-events_test three_event ev_test@localhost SYSTEM RECURRING NULL 20 # # NULL ENABLED 1
-events_test two_event ev_test@localhost SYSTEM RECURRING NULL 20 # # NULL ENABLED 1
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+events_test three_event ev_test@localhost SYSTEM RECURRING NULL 20 # # NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
+events_test two_event ev_test@localhost SYSTEM RECURRING NULL 20 # # NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
"This should show us no events:";
SHOW EVENTS FROM test LIKE '%';
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
GRANT EVENT ON events_test2.* TO ev_test@localhost;
USE events_test2;
CREATE EVENT four_event ON SCHEDULE EVERY 20 SECOND DO SELECT 42;
diff --git a/mysql-test/r/func_in.result b/mysql-test/r/func_in.result
index 54b29353fb8..4f64d39ccc0 100644
--- a/mysql-test/r/func_in.result
+++ b/mysql-test/r/func_in.result
@@ -225,8 +225,8 @@ a
46
CREATE VIEW v1 AS SELECT * FROM t1 WHERE a NOT IN (45);
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` where (`t1`.`a` <> 45)
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` where (`t1`.`a` <> 45) latin1 latin1_swedish_ci
SELECT * FROM v1;
a
44
diff --git a/mysql-test/r/gis.result b/mysql-test/r/gis.result
index 4896210c19d..1529fe77ac4 100644
--- a/mysql-test/r/gis.result
+++ b/mysql-test/r/gis.result
@@ -745,10 +745,10 @@ drop table t1;
drop procedure if exists fn3;
create function fn3 () returns point deterministic return GeomFromText("point(1 1)");
show create function fn3;
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
fn3 CREATE DEFINER=`root`@`localhost` FUNCTION `fn3`() RETURNS point
DETERMINISTIC
-return GeomFromText("point(1 1)")
+return GeomFromText("point(1 1)") latin1 latin1_swedish_ci latin1_swedish_ci
select astext(fn3());
astext(fn3())
POINT(1 1)
diff --git a/mysql-test/r/grant.result b/mysql-test/r/grant.result
index a68cee5e52e..0d4dad39882 100644
--- a/mysql-test/r/grant.result
+++ b/mysql-test/r/grant.result
@@ -907,11 +907,11 @@ ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for tabl
SHOW CREATE TABLE mysqltest2.v_yn;
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_yn'
SHOW CREATE TABLE mysqltest2.v_ny;
-View Create View
-v_ny CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_ny` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn`
+View Create View character_set_client collation_connection
+v_ny CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_ny` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` latin1 latin1_swedish_ci
SHOW CREATE VIEW mysqltest2.v_ny;
-View Create View
-v_ny CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_ny` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn`
+View Create View character_set_client collation_connection
+v_ny CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_ny` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` latin1 latin1_swedish_ci
SHOW CREATE TABLE mysqltest3.t_nn;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't_nn'
SHOW CREATE VIEW mysqltest3.t_nn;
@@ -928,17 +928,17 @@ t_nn CREATE TABLE `t_nn` (
SHOW CREATE VIEW mysqltest2.t_nn;
ERROR HY000: 'mysqltest2.t_nn' is not VIEW
SHOW CREATE VIEW mysqltest2.v_yy;
-View Create View
-v_yy CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_yy` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` where (`mysqltest2`.`t_nn`.`c1` = 55)
+View Create View character_set_client collation_connection
+v_yy CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_yy` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` where (`mysqltest2`.`t_nn`.`c1` = 55) latin1 latin1_swedish_ci
SHOW CREATE TABLE mysqltest2.v_yy;
-View Create View
-v_yy CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_yy` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` where (`mysqltest2`.`t_nn`.`c1` = 55)
+View Create View character_set_client collation_connection
+v_yy CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_yy` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` where (`mysqltest2`.`t_nn`.`c1` = 55) latin1 latin1_swedish_ci
SHOW CREATE TABLE mysqltest2.v_nn;
-View Create View
-v_nn CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_nn` AS select `t_nn`.`c1` AS `c1` from `t_nn`
+View Create View character_set_client collation_connection
+v_nn CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_nn` AS select `t_nn`.`c1` AS `c1` from `t_nn` latin1 latin1_swedish_ci
SHOW CREATE VIEW mysqltest2.v_nn;
-View Create View
-v_nn CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_nn` AS select `t_nn`.`c1` AS `c1` from `t_nn`
+View Create View character_set_client collation_connection
+v_nn CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_nn` AS select `t_nn`.`c1` AS `c1` from `t_nn` latin1 latin1_swedish_ci
SHOW CREATE TABLE mysqltest2.t_nn;
Table Create Table
t_nn CREATE TABLE `t_nn` (
diff --git a/mysql-test/r/have_cp1251.require b/mysql-test/r/have_cp1251.require
new file mode 100644
index 00000000000..465e8338084
--- /dev/null
+++ b/mysql-test/r/have_cp1251.require
@@ -0,0 +1,2 @@
+Collation Charset Id Default Compiled Sortlen
+cp1251_general_ci cp1251 51 Yes 0
diff --git a/mysql-test/r/have_cp866.require b/mysql-test/r/have_cp866.require
new file mode 100644
index 00000000000..da2a3e2f05e
--- /dev/null
+++ b/mysql-test/r/have_cp866.require
@@ -0,0 +1,2 @@
+Collation Charset Id Default Compiled Sortlen
+cp866_general_ci cp866 36 Yes 0
diff --git a/mysql-test/r/have_koi8r.require b/mysql-test/r/have_koi8r.require
new file mode 100644
index 00000000000..b109b9ae520
--- /dev/null
+++ b/mysql-test/r/have_koi8r.require
@@ -0,0 +1,2 @@
+Collation Charset Id Default Compiled Sortlen
+koi8r_general_ci koi8r 7 Yes 0
diff --git a/mysql-test/r/have_utf8.require b/mysql-test/r/have_utf8.require
new file mode 100644
index 00000000000..71f8ccfff47
--- /dev/null
+++ b/mysql-test/r/have_utf8.require
@@ -0,0 +1,2 @@
+Collation Charset Id Default Compiled Sortlen
+utf8_general_ci utf8 33 Yes Yes 1
diff --git a/mysql-test/r/information_schema.result b/mysql-test/r/information_schema.result
index fc111430a4e..e290457d4ee 100644
--- a/mysql-test/r/information_schema.result
+++ b/mysql-test/r/information_schema.result
@@ -274,11 +274,11 @@ parameter_style sql_data_access dtd_identifier
SQL CONTAINS SQL NULL
SQL CONTAINS SQL int(11)
show procedure status;
-Db Name Type Definer Modified Created Security_type Comment
-test sel2 PROCEDURE root@localhost # # DEFINER
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+test sel2 PROCEDURE root@localhost # # DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
show function status;
-Db Name Type Definer Modified Created Security_type Comment
-test sub1 FUNCTION root@localhost # # DEFINER
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+test sub1 FUNCTION root@localhost # # DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
select a.ROUTINE_NAME from information_schema.ROUTINES a,
information_schema.SCHEMATA b where
a.ROUTINE_SCHEMA = b.SCHEMA_NAME;
@@ -327,26 +327,26 @@ sel2 NULL
sub1 NULL
sub2 return i+1
show create procedure sel2;
-Procedure sql_mode Create Procedure
-sel2 NULL
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+sel2 NULL latin1 latin1_swedish_ci latin1_swedish_ci
show create function sub1;
-Function sql_mode Create Function
-sub1 NULL
+Function sql_mode Create Function character_set_client collation_connection Database Collation
+sub1 NULL latin1 latin1_swedish_ci latin1_swedish_ci
show create function sub2;
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
sub2 CREATE DEFINER=`mysqltest_1`@`localhost` FUNCTION `sub2`(i int) RETURNS int(11)
-return i+1
+return i+1 latin1 latin1_swedish_ci latin1_swedish_ci
show function status like "sub2";
-Db Name Type Definer Modified Created Security_type Comment
-test sub2 FUNCTION mysqltest_1@localhost # # DEFINER
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+test sub2 FUNCTION mysqltest_1@localhost # # DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
drop function sub2;
show create procedure sel2;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
sel2 CREATE DEFINER=`root`@`localhost` PROCEDURE `sel2`()
begin
select * from t1;
select * from t2;
-end
+end latin1 latin1_swedish_ci latin1_swedish_ci
create view v0 (c) as select schema_name from information_schema.schemata;
select * from v0;
c
@@ -386,12 +386,12 @@ latin1_spanish_ci
show keys from v4;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
select * from information_schema.views where TABLE_NAME like "v%";
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
-NULL test v0 /* ALGORITHM=UNDEFINED */ select `schemata`.`SCHEMA_NAME` AS `c` from `information_schema`.`schemata` NONE NO root@localhost DEFINER
-NULL test v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_NAME` AS `c` from `information_schema`.`tables` where (`tables`.`TABLE_NAME` = _utf8'v1') NONE NO root@localhost DEFINER
-NULL test v2 /* ALGORITHM=UNDEFINED */ select `columns`.`COLUMN_NAME` AS `c` from `information_schema`.`columns` where (`columns`.`TABLE_NAME` = _utf8'v2') NONE NO root@localhost DEFINER
-NULL test v3 /* ALGORITHM=UNDEFINED */ select `character_sets`.`CHARACTER_SET_NAME` AS `c` from `information_schema`.`character_sets` where (`character_sets`.`CHARACTER_SET_NAME` like _utf8'latin1%') NONE NO root@localhost DEFINER
-NULL test v4 /* ALGORITHM=UNDEFINED */ select `collations`.`COLLATION_NAME` AS `c` from `information_schema`.`collations` where (`collations`.`COLLATION_NAME` like _utf8'latin1%') NONE NO root@localhost DEFINER
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
+NULL test v0 select schema_name from information_schema.schemata NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
+NULL test v1 select table_name from information_schema.tables NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
+NULL test v2 select column_name from information_schema.columns NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
+NULL test v3 select CHARACTER_SET_NAME from information_schema.character_sets NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
+NULL test v4 select COLLATION_NAME from information_schema.collations NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
drop view v0, v1, v2, v3, v4;
create table t1 (a int);
grant select,update,insert on t1 to mysqltest_1@localhost;
@@ -483,10 +483,10 @@ create view v1 (c) as select a from t1 with check option;
create view v2 (c) as select a from t1 WITH LOCAL CHECK OPTION;
create view v3 (c) as select a from t1 WITH CASCADED CHECK OPTION;
select * from information_schema.views;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
-NULL test v1 /* ALGORITHM=UNDEFINED */ select `test`.`t1`.`a` AS `c` from `test`.`t1` CASCADED YES root@localhost DEFINER
-NULL test v2 /* ALGORITHM=UNDEFINED */ select `test`.`t1`.`a` AS `c` from `test`.`t1` LOCAL YES root@localhost DEFINER
-NULL test v3 /* ALGORITHM=UNDEFINED */ select `test`.`t1`.`a` AS `c` from `test`.`t1` CASCADED YES root@localhost DEFINER
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
+NULL test v1 select a from t1 with check option CASCADED YES root@localhost DEFINER latin1 latin1_swedish_ci
+NULL test v2 select a from t1 WITH LOCAL CHECK OPTION LOCAL YES root@localhost DEFINER latin1 latin1_swedish_ci
+NULL test v3 select a from t1 WITH CASCADED CHECK OPTION CASCADED YES root@localhost DEFINER latin1 latin1_swedish_ci
grant select (a) on test.t1 to joe@localhost with grant option;
select * from INFORMATION_SCHEMA.COLUMN_PRIVILEGES;
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
@@ -586,6 +586,10 @@ proc created timestamp
proc modified timestamp
proc sql_mode set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE')
proc comment char(64)
+proc character_set_client char(32)
+proc collation_connection char(32)
+proc db_collation char(32)
+proc body_utf8 longblob
drop table t115;
create procedure p108 () begin declare c cursor for select data_type
from information_schema.columns; open c; open c; end;//
@@ -700,13 +704,13 @@ select constraint_name from information_schema.table_constraints
where table_schema='test';
constraint_name
show create view v2;
-View Create View
-v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `test`.`t1`.`f1` AS `c` from `t1`
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `test`.`t1`.`f1` AS `c` from `t1` latin1 latin1_swedish_ci
Warnings:
Warning 1356 View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
show create table v3;
-View Create View
-v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `sub1`(1) AS `c`
+View Create View character_set_client collation_connection
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `sub1`(1) AS `c` latin1 latin1_swedish_ci
Warnings:
Warning 1356 View 'test.v3' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
drop view v2;
@@ -872,39 +876,39 @@ set @fired:= "Yes";
end if;
end|
show triggers;
-Trigger Event Table Statement Timing Created sql_mode Definer
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
trg1 INSERT t1 begin
if new.j > 10 then
set new.j := 10;
end if;
-end BEFORE NULL root@localhost
+end BEFORE NULL root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
trg2 UPDATE t1 begin
if old.i % 2 = 0 then
set new.j := -1;
end if;
-end BEFORE NULL root@localhost
+end BEFORE NULL root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
trg3 UPDATE t1 begin
if new.j = -1 then
set @fired:= "Yes";
end if;
-end AFTER NULL root@localhost
+end AFTER NULL root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
select * from information_schema.triggers;
-TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
NULL test trg1 INSERT NULL test t1 0 NULL begin
if new.j > 10 then
set new.j := 10;
end if;
-end ROW BEFORE NULL NULL OLD NEW NULL root@localhost
+end ROW BEFORE NULL NULL OLD NEW NULL root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
NULL test trg2 UPDATE NULL test t1 0 NULL begin
if old.i % 2 = 0 then
set new.j := -1;
end if;
-end ROW BEFORE NULL NULL OLD NEW NULL root@localhost
+end ROW BEFORE NULL NULL OLD NEW NULL root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
NULL test trg3 UPDATE NULL test t1 0 NULL begin
if new.j = -1 then
set @fired:= "Yes";
end if;
-end ROW AFTER NULL NULL OLD NEW NULL root@localhost
+end ROW AFTER NULL NULL OLD NEW NULL root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
drop trigger trg1;
drop trigger trg2;
drop trigger trg3;
@@ -1156,7 +1160,7 @@ drop table t1;
use mysql;
INSERT INTO `proc` VALUES ('test','','PROCEDURE','','SQL','CONTAINS_SQL',
'NO','DEFINER','','','BEGIN\r\n \r\nEND','root@%','2006-03-02 18:40:03',
-'2006-03-02 18:40:03','','');
+'2006-03-02 18:40:03','','','utf8','utf8_general_ci','utf8_general_ci','n/a');
select routine_name from information_schema.routines;
routine_name
@@ -1169,9 +1173,9 @@ create definer = mysqltest_1@localhost
sql security definer view v2 as select 1;
select * from information_schema.views
where table_name='v1' or table_name='v2';
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
-NULL test v1 NONE YES root@localhost DEFINER
-NULL test v2 /* ALGORITHM=UNDEFINED */ select 1 AS `1` NONE NO mysqltest_1@localhost DEFINER
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
+NULL test v1 NONE YES root@localhost DEFINER latin1 latin1_swedish_ci
+NULL test v2 select 1 NONE NO mysqltest_1@localhost DEFINER latin1 latin1_swedish_ci
drop view v1, v2;
drop table t1;
drop user mysqltest_1@localhost;
@@ -1196,23 +1200,23 @@ ROUTINE_NAME ROUTINE_DEFINITION
f1 RETURN @a + 1
p1 SET @a= 1
SHOW CREATE PROCEDURE p1;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
-SET @a= 1
+SET @a= 1 latin1 latin1_swedish_ci latin1_swedish_ci
SHOW CREATE FUNCTION f1;
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
f1 CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11)
-RETURN @a + 1
+RETURN @a + 1 latin1 latin1_swedish_ci latin1_swedish_ci
SELECT ROUTINE_NAME, ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES;
ROUTINE_NAME ROUTINE_DEFINITION
f1 NULL
p1 NULL
SHOW CREATE PROCEDURE p1;
-Procedure sql_mode Create Procedure
-p1 NULL
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p1 NULL latin1 latin1_swedish_ci latin1_swedish_ci
SHOW CREATE FUNCTION f1;
-Function sql_mode Create Function
-f1 NULL
+Function sql_mode Create Function character_set_client collation_connection Database Collation
+f1 NULL latin1 latin1_swedish_ci latin1_swedish_ci
CALL p1();
SELECT f1();
f1()
diff --git a/mysql-test/r/information_schema_db.result b/mysql-test/r/information_schema_db.result
index 94ebc213122..a0fd33ac068 100644
--- a/mysql-test/r/information_schema_db.result
+++ b/mysql-test/r/information_schema_db.result
@@ -132,11 +132,11 @@ show fields from testdb_1.v6;
Field Type Null Key Default Extra
f1 char(4) YES NULL
show create view testdb_1.v6;
-View Create View
-v6 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v6` AS select `t1`.`f1` AS `f1` from `t1`
+View Create View character_set_client collation_connection
+v6 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v6` AS select `t1`.`f1` AS `f1` from `t1` latin1 latin1_swedish_ci
show create view testdb_1.v7;
-View Create View
-v7 CREATE ALGORITHM=UNDEFINED DEFINER=`no_such_user`@`no_such_host` SQL SECURITY DEFINER VIEW `v7` AS select `testdb_1`.`t2`.`f1` AS `f1` from `t2`
+View Create View character_set_client collation_connection
+v7 CREATE ALGORITHM=UNDEFINED DEFINER=`no_such_user`@`no_such_host` SQL SECURITY DEFINER VIEW `v7` AS select `testdb_1`.`t2`.`f1` AS `f1` from `t2` latin1 latin1_swedish_ci
Warnings:
Warning 1356 View 'testdb_1.v7' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
show fields from testdb_1.v7;
@@ -153,22 +153,22 @@ show fields from testdb_1.v5;
Field Type Null Key Default Extra
f1 char(4) YES NULL
show create view testdb_1.v5;
-View Create View
-v5 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_1`@`localhost` SQL SECURITY DEFINER VIEW `testdb_1`.`v5` AS select `testdb_1`.`t1`.`f1` AS `f1` from `testdb_1`.`t1`
+View Create View character_set_client collation_connection
+v5 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_1`@`localhost` SQL SECURITY DEFINER VIEW `testdb_1`.`v5` AS select `testdb_1`.`t1`.`f1` AS `f1` from `testdb_1`.`t1` latin1 latin1_swedish_ci
show fields from testdb_1.v6;
Field Type Null Key Default Extra
f1 char(4) YES NULL
show create view testdb_1.v6;
-View Create View
-v6 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `testdb_1`.`v6` AS select `testdb_1`.`t1`.`f1` AS `f1` from `testdb_1`.`t1`
+View Create View character_set_client collation_connection
+v6 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `testdb_1`.`v6` AS select `testdb_1`.`t1`.`f1` AS `f1` from `testdb_1`.`t1` latin1 latin1_swedish_ci
show fields from testdb_1.v7;
Field Type Null Key Default Extra
f1 null YES NULL
Warnings:
Note 1449 There is no 'no_such_user'@'no_such_host' registered
show create view testdb_1.v7;
-View Create View
-v7 CREATE ALGORITHM=UNDEFINED DEFINER=`no_such_user`@`no_such_host` SQL SECURITY DEFINER VIEW `v7` AS select `testdb_1`.`t2`.`f1` AS `f1` from `t2`
+View Create View character_set_client collation_connection
+v7 CREATE ALGORITHM=UNDEFINED DEFINER=`no_such_user`@`no_such_host` SQL SECURITY DEFINER VIEW `v7` AS select `testdb_1`.`t2`.`f1` AS `f1` from `t2` latin1 latin1_swedish_ci
Warnings:
Warning 1356 View 'testdb_1.v7' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
revoke insert(f1) on v3 from testdb_2@localhost;
@@ -200,8 +200,8 @@ show fields from testdb_1.v1;
Field Type Null Key Default Extra
f1 char(4) YES NULL
show create view v2;
-View Create View
-v2 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_2`@`localhost` SQL SECURITY DEFINER VIEW `test`.`v2` AS select `v1`.`f1` AS `f1` from `testdb_1`.`v1`
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_2`@`localhost` SQL SECURITY DEFINER VIEW `test`.`v2` AS select `v1`.`f1` AS `f1` from `testdb_1`.`v1` latin1 latin1_swedish_ci
show create view testdb_1.v1;
ERROR 42000: SHOW VIEW command denied to user 'testdb_2'@'localhost' for table 'v1'
select table_name from information_schema.columns a
@@ -211,7 +211,7 @@ v2
select view_definition from information_schema.views a
where a.table_name = 'v2';
view_definition
-/* ALGORITHM=UNDEFINED */ select `v1`.`f1` AS `f1` from `testdb_1`.`v1`
+select f1 from testdb_1.v1
select view_definition from information_schema.views a
where a.table_name = 'testdb_1.v1';
view_definition
diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result
index 85ff561d1c4..ad79a2a837a 100644
--- a/mysql-test/r/innodb.result
+++ b/mysql-test/r/innodb.result
@@ -1100,24 +1100,24 @@ insert into t1 values (1,1),(2,2);
insert into t2 values (1,1),(4,4);
reset master;
UPDATE t2,t1 SET t2.a=t1.a+2;
-ERROR 23000: Duplicate entry '3' for key 1
+ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
select * from t2 /* must be (3,1), (4,4) */;
a b
1 1
4 4
show master status /* there must no UPDATE in binlog */;
File Position Binlog_Do_DB Binlog_Ignore_DB
-master-bin.000001 98
+master-bin.000001 106
delete from t1;
delete from t2;
insert into t1 values (1,2),(3,4),(4,4);
insert into t2 values (1,2),(3,4),(4,4);
reset master;
UPDATE t2,t1 SET t2.a=t2.b where t2.a=t1.a;
-ERROR 23000: Duplicate entry '4' for key 1
+ERROR 23000: Duplicate entry '4' for key 'PRIMARY'
show master status /* there must be no UPDATE query event */;
File Position Binlog_Do_DB Binlog_Ignore_DB
-master-bin.000001 98
+master-bin.000001 106
drop table t1, t2;
create table t1 (a int, b int) engine=innodb;
insert into t1 values(20,null);
diff --git a/mysql-test/r/innodb_mysql.result b/mysql-test/r/innodb_mysql.result
index afecf30b94f..a88d199838b 100644
--- a/mysql-test/r/innodb_mysql.result
+++ b/mysql-test/r/innodb_mysql.result
@@ -665,6 +665,29 @@ UPDATE t3 SET a = 'us' WHERE a = 'uk';
SELECT * FROM t3 WHERE a = 'uk';
a
DROP TABLE t1,t2,t3;
+create table t1 (a int) engine=innodb;
+select * from t2;
+ERROR 42S02: Table 'test.t2' doesn't exist
+drop table t1;
+drop table t2;
+ERROR 42S02: Unknown table 't2'
+create table t2 (a int);
+drop table t2;
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+CREATE TABLE t2 (a INT) ENGINE=InnoDB;
+switch to connection c1
+SET AUTOCOMMIT=0;
+INSERT INTO t2 VALUES (1);
+switch to connection c2
+SET AUTOCOMMIT=0;
+LOCK TABLES t1 READ, t2 READ;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+switch to connection c1
+COMMIT;
+INSERT INTO t1 VALUES (1);
+switch to connection default
+SET AUTOCOMMIT=default;
+DROP TABLE t1,t2;
End of 5.0 tests
CREATE TABLE t1 (a int, b int);
insert into t1 values (1,1),(1,2);
diff --git a/mysql-test/r/lowercase_view.result b/mysql-test/r/lowercase_view.result
index f09725dafcb..3653461c6b8 100644
--- a/mysql-test/r/lowercase_view.result
+++ b/mysql-test/r/lowercase_view.result
@@ -6,8 +6,8 @@ use MySQLTest;
create table TaB (Field int);
create view ViE as select * from TAb;
show create table VIe;
-View Create View
-vie CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `vie` AS select `tab`.`Field` AS `Field` from `tab`
+View Create View character_set_client collation_connection
+vie CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `vie` AS select `tab`.`Field` AS `Field` from `tab` latin1 latin1_swedish_ci
drop database MySQLTest;
use test;
create table t1Aa (col1 int);
@@ -118,8 +118,8 @@ drop table t1Aa,t2Aa;
create table t1Aa (col1 int);
create view v1Aa as select col1 from t1Aa as AaA;
show create view v1AA;
-View Create View
-v1aa CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `AaA`
+View Create View character_set_client collation_connection
+v1aa CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `AaA` latin1 latin1_swedish_ci
drop view v1AA;
select Aaa.col1 from t1Aa as AaA;
col1
@@ -127,7 +127,7 @@ create view v1Aa as select Aaa.col1 from t1Aa as AaA;
drop view v1AA;
create view v1Aa as select AaA.col1 from t1Aa as AaA;
show create view v1AA;
-View Create View
-v1aa CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `AaA`
+View Create View character_set_client collation_connection
+v1aa CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `AaA` latin1 latin1_swedish_ci
drop view v1AA;
drop table t1Aa;
diff --git a/mysql-test/r/mysqldump.result b/mysql-test/r/mysqldump.result
index b6a0e506eda..007ed57f651 100644
--- a/mysql-test/r/mysqldump.result
+++ b/mysql-test/r/mysqldump.result
@@ -1892,10 +1892,19 @@ DROP TABLE IF EXISTS `v2`;
) */;
/*!50001 DROP TABLE IF EXISTS `v2`*/;
/*!50001 DROP VIEW IF EXISTS `v2`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = latin1 */;
+/*!50001 SET character_set_results = latin1 */;
+/*!50001 SET collation_connection = latin1_swedish_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `v2` AS select `t2`.`a` AS `a` from `t2` where (`t2`.`a` like _latin1'a%') */
/*!50002 WITH CASCADED CHECK OPTION */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
@@ -1974,9 +1983,18 @@ DROP TABLE IF EXISTS `v1`;
) */;
/*!50001 DROP TABLE IF EXISTS `v1`*/;
/*!50001 DROP VIEW IF EXISTS `v1`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = latin1 */;
+/*!50001 SET character_set_results = latin1 */;
+/*!50001 SET collation_connection = latin1_swedish_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `v1` AS select `t1`.`a` AS `a` from `t1` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
@@ -2033,10 +2051,19 @@ DROP TABLE IF EXISTS `v2`;
) */;
/*!50001 DROP TABLE IF EXISTS `v2`*/;
/*!50001 DROP VIEW IF EXISTS `v2`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = latin1 */;
+/*!50001 SET character_set_results = latin1 */;
+/*!50001 SET collation_connection = latin1_swedish_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `v2` AS select `t2`.`a` AS `a` from `t2` where (`t2`.`a` like _latin1'a%') */
/*!50002 WITH CASCADED CHECK OPTION */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
@@ -2143,19 +2170,46 @@ DROP TABLE IF EXISTS `v3`;
) */;
/*!50001 DROP TABLE IF EXISTS `v1`*/;
/*!50001 DROP VIEW IF EXISTS `v1`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = latin1 */;
+/*!50001 SET character_set_results = latin1 */;
+/*!50001 SET collation_connection = latin1_swedish_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `v1` AS select `v3`.`a` AS `a`,`v3`.`b` AS `b`,`v3`.`c` AS `c` from `v3` where (`v3`.`b` in (1,2,3,4,5,6,7)) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
/*!50001 DROP TABLE IF EXISTS `v2`*/;
/*!50001 DROP VIEW IF EXISTS `v2`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = latin1 */;
+/*!50001 SET character_set_results = latin1 */;
+/*!50001 SET collation_connection = latin1_swedish_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `v2` AS select `v3`.`a` AS `a` from (`v3` join `v1`) where ((`v1`.`a` = `v3`.`a`) and (`v3`.`b` = 3)) limit 1 */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
/*!50001 DROP TABLE IF EXISTS `v3`*/;
/*!50001 DROP VIEW IF EXISTS `v3`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = latin1 */;
+/*!50001 SET character_set_results = latin1 */;
+/*!50001 SET collation_connection = latin1_swedish_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `v3` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b`,`t1`.`c` AS `c` from `t1` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
@@ -2198,21 +2252,21 @@ end if;
end|
set sql_mode=default|
show triggers like "t1";
-Trigger Event Table Statement Timing Created sql_mode Definer
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
trg1 INSERT t1 begin
if new.a > 10 then
set new.a := 10;
set new.a := 11;
end if;
-end BEFORE 0000-00-00 00:00:00 root@localhost
+end BEFORE 0000-00-00 00:00:00 root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
trg2 UPDATE t1 begin
if old.a % 2 = 0 then set new.b := 12; end if;
-end BEFORE 0000-00-00 00:00:00 root@localhost
+end BEFORE 0000-00-00 00:00:00 root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
trg3 UPDATE t1 begin
if new.a = -1 then
set @fired:= "Yes";
end if;
-end AFTER 0000-00-00 00:00:00 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER root@localhost
+end AFTER 0000-00-00 00:00:00 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
INSERT INTO t1 (a) VALUES (1),(2),(3),(22);
update t1 set a = 4 where a=3;
@@ -2241,30 +2295,64 @@ LOCK TABLES `t1` WRITE;
INSERT INTO `t1` VALUES (1,NULL),(2,NULL),(4,NULL),(11,NULL);
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
-
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
DELIMITER ;;
-/*!50003 SET SESSION SQL_MODE="" */;;
-/*!50003 CREATE */ /*!50017 DEFINER=`root`@`localhost` */ /*!50003 TRIGGER `trg1` BEFORE INSERT ON `t1` FOR EACH ROW begin
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger trg1 before insert on t1 for each row
+begin
if new.a > 10 then
set new.a := 10;
set new.a := 11;
end if;
end */;;
-
-/*!50003 SET SESSION SQL_MODE="" */;;
-/*!50003 CREATE */ /*!50017 DEFINER=`root`@`localhost` */ /*!50003 TRIGGER `trg2` BEFORE UPDATE ON `t1` FOR EACH ROW begin
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger trg2 before update on t1 for each row begin
if old.a % 2 = 0 then set new.b := 12; end if;
end */;;
-
-/*!50003 SET SESSION SQL_MODE="STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER" */;;
-/*!50003 CREATE */ /*!50017 DEFINER=`root`@`localhost` */ /*!50003 TRIGGER `trg3` AFTER UPDATE ON `t1` FOR EACH ROW begin
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger trg3 after update on t1 for each row
+begin
if new.a = -1 then
set @fired:= "Yes";
end if;
end */;;
-
DELIMITER ;
-/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE */;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
DROP TABLE IF EXISTS `t2`;
CREATE TABLE `t2` (
`a` int(11) DEFAULT NULL
@@ -2274,17 +2362,26 @@ LOCK TABLES `t2` WRITE;
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
UNLOCK TABLES;
-
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER' */ ;
DELIMITER ;;
-/*!50003 SET SESSION SQL_MODE="STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER" */;;
-/*!50003 CREATE */ /*!50017 DEFINER=`root`@`localhost` */ /*!50003 TRIGGER `trg4` BEFORE INSERT ON `t2` FOR EACH ROW begin
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger trg4 before insert on t2 for each row
+begin
if new.a > 10 then
set @fired:= "No";
end if;
end */;;
-
DELIMITER ;
-/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE */;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
@@ -2346,26 +2443,26 @@ Tables_in_test
t1
t2
show triggers;
-Trigger Event Table Statement Timing Created sql_mode Definer
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
trg1 INSERT t1 begin
if new.a > 10 then
set new.a := 10;
set new.a := 11;
end if;
-end BEFORE # root@localhost
+end BEFORE # root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
trg2 UPDATE t1 begin
if old.a % 2 = 0 then set new.b := 12; end if;
-end BEFORE # root@localhost
+end BEFORE # root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
trg3 UPDATE t1 begin
if new.a = -1 then
set @fired:= "Yes";
end if;
-end AFTER # STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER root@localhost
+end AFTER # STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
trg4 INSERT t2 begin
if new.a > 10 then
set @fired:= "No";
end if;
-end BEFORE # STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER root@localhost
+end BEFORE # STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
DROP TABLE t1, t2;
#
# Bugs #9136, #12917: problems with --defaults-extra-file option
@@ -2394,9 +2491,9 @@ SELECT * FROM `test2`;
a2
1
SHOW TRIGGERS;
-Trigger Event Table Statement Timing Created sql_mode Definer
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
testref INSERT test1 BEGIN
-INSERT INTO test2 SET a2 = NEW.a1; END BEFORE NULL root@localhost
+INSERT INTO test2 SET a2 = NEW.a1; END BEFORE NULL root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
SELECT * FROM `test1`;
a1
1
@@ -2457,38 +2554,96 @@ LOCK TABLES `t1` WRITE;
INSERT INTO `t1` VALUES (1),(2),(3),(4),(5);
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
+/*!50003 DROP FUNCTION IF EXISTS `bug9056_func1` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
DELIMITER ;;
-/*!50003 DROP FUNCTION IF EXISTS `bug9056_func1` */;;
-/*!50003 SET SESSION SQL_MODE=""*/;;
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 FUNCTION `bug9056_func1`(a INT, b INT) RETURNS int(11)
RETURN a+b */;;
-/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;;
-/*!50003 DROP FUNCTION IF EXISTS `bug9056_func2` */;;
-/*!50003 SET SESSION SQL_MODE=""*/;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `bug9056_func2` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 FUNCTION `bug9056_func2`(f1 char binary) RETURNS char(1) CHARSET latin1
begin
set f1= concat( 'hello', f1 );
return f1;
end */;;
-/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;;
-/*!50003 DROP PROCEDURE IF EXISTS `a'b` */;;
-/*!50003 SET SESSION SQL_MODE="REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI"*/;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `a'b` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI' */ ;
+DELIMITER ;;
/*!50003 CREATE*/ /*!50020 DEFINER="root"@"localhost"*/ /*!50003 PROCEDURE "a'b"()
select 1 */;;
-/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;;
-/*!50003 DROP PROCEDURE IF EXISTS `bug9056_proc1` */;;
-/*!50003 SET SESSION SQL_MODE=""*/;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bug9056_proc1` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `bug9056_proc1`(IN a INT, IN b INT, OUT c INT)
BEGIN SELECT a+b INTO c; end */;;
-/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;;
-/*!50003 DROP PROCEDURE IF EXISTS `bug9056_proc2` */;;
-/*!50003 SET SESSION SQL_MODE=""*/;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bug9056_proc2` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `bug9056_proc2`(OUT a INT)
BEGIN
select sum(id) from t1 into a;
END */;;
-/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;;
DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
@@ -2631,14 +2786,22 @@ LOCK TABLES "t1 test" WRITE;
INSERT INTO "t1 test" VALUES (1),(2),(3);
/*!40000 ALTER TABLE "t1 test" ENABLE KEYS */;
UNLOCK TABLES;
-
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
DELIMITER ;;
-/*!50003 SET SESSION SQL_MODE="" */;;
-/*!50003 CREATE */ /*!50017 DEFINER=`root`@`localhost` */ /*!50003 TRIGGER `test trig` BEFORE INSERT ON `t1 test` FOR EACH ROW BEGIN
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `test trig` BEFORE INSERT ON `t1 test` FOR EACH ROW BEGIN
INSERT INTO `t2 test` SET a2 = NEW.a1; END */;;
-
DELIMITER ;
-/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE */;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
DROP TABLE IF EXISTS "t2 test";
CREATE TABLE "t2 test" (
"a2" int(11) DEFAULT NULL
@@ -2727,19 +2890,46 @@ DROP TABLE IF EXISTS `v2`;
USE `test`;
/*!50001 DROP TABLE IF EXISTS `v0`*/;
/*!50001 DROP VIEW IF EXISTS `v0`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = latin1 */;
+/*!50001 SET character_set_results = latin1 */;
+/*!50001 SET collation_connection = latin1_swedish_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `v0` AS select `v1`.`a` AS `a`,`v1`.`b` AS `b`,`v1`.`c` AS `c` from `v1` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
/*!50001 DROP TABLE IF EXISTS `v1`*/;
/*!50001 DROP VIEW IF EXISTS `v1`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = latin1 */;
+/*!50001 SET character_set_results = latin1 */;
+/*!50001 SET collation_connection = latin1_swedish_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `v1` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b`,`t1`.`c` AS `c` from `t1` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
/*!50001 DROP TABLE IF EXISTS `v2`*/;
/*!50001 DROP VIEW IF EXISTS `v2`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = latin1 */;
+/*!50001 SET character_set_results = latin1 */;
+/*!50001 SET collation_connection = latin1_swedish_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `v2` AS select `v0`.`a` AS `a`,`v0`.`b` AS `b`,`v0`.`c` AS `c` from `v0` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
@@ -2791,15 +2981,25 @@ LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
-
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE' */ ;
DELIMITER ;;
-/*!50003 SET SESSION SQL_MODE="IGNORE_SPACE" */;;
-/*!50003 CREATE */ /*!50017 DEFINER=`root`@`localhost` */ /*!50003 TRIGGER `tr1` BEFORE INSERT ON `t1` FOR EACH ROW BEGIN
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER tr1 BEFORE INSERT ON t1
+FOR EACH ROW
+BEGIN
SET new.a = 0;
END */;;
-
DELIMITER ;
-/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE */;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
@@ -2927,12 +3127,12 @@ drop trigger tr1;
drop trigger tr2;
drop table t1, t2;
show triggers;
-Trigger Event Table Statement Timing Created sql_mode Definer
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
tr1 INSERT t1 set
-new.created=now() BEFORE # root@localhost
+new.created=now() BEFORE # root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
tr2 INSERT t1 begin
insert into t2 set b=new.a and created=new.created;
-end AFTER # root@localhost
+end AFTER # root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
drop trigger tr1;
drop trigger tr2;
drop table t1, t2;
@@ -2945,14 +3145,32 @@ insert into t values(5, 51);
create view v1 as select qty, price, qty*price as value from t;
create view v2 as select qty from v1;
mysqldump {
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = latin1 */;
+/*!50001 SET character_set_results = latin1 */;
+/*!50001 SET collation_connection = latin1_swedish_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `v1` AS select `t`.`qty` AS `qty`,`t`.`price` AS `price`,(`t`.`qty` * `t`.`price`) AS `value` from `t` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
} mysqldump {
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = latin1 */;
+/*!50001 SET character_set_results = latin1 */;
+/*!50001 SET collation_connection = latin1_swedish_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `v2` AS select `v1`.`qty` AS `qty` from `v1` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
} mysqldump
drop view v1;
@@ -2967,13 +3185,13 @@ return 42 */|
/*!50003 CREATE PROCEDURE `p`()
select 42 */|
show create function f;
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
f CREATE DEFINER=`root`@`localhost` FUNCTION `f`() RETURNS bigint(20)
-return 42
+return 42 latin1 latin1_swedish_ci latin1_swedish_ci
show create procedure p;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
p CREATE DEFINER=`root`@`localhost` PROCEDURE `p`()
-select 42
+select 42 latin1 latin1_swedish_ci latin1_swedish_ci
drop function f;
drop procedure p;
#
@@ -3035,9 +3253,18 @@ DROP TABLE IF EXISTS `v1`;
USE `mysqldump_test_db`;
/*!50001 DROP TABLE IF EXISTS `v1`*/;
/*!50001 DROP VIEW IF EXISTS `v1`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = latin1 */;
+/*!50001 SET character_set_results = latin1 */;
+/*!50001 SET collation_connection = latin1_swedish_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `v1` AS select `t1`.`id` AS `id` from `t1` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
@@ -3080,9 +3307,18 @@ USE `mysqldump_views`;
USE `mysqldump_tables`;
USE `mysqldump_views`;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = latin1 */;
+/*!50001 SET character_set_results = latin1 */;
+/*!50001 SET collation_connection = latin1_swedish_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `mysqldump_views`.`nasishnasifu` AS select `mysqldump_tables`.`basetable`.`id` AS `id` from `mysqldump_tables`.`basetable` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
drop view nasishnasifu;
drop database mysqldump_views;
drop table mysqldump_tables.basetable;
@@ -3269,11 +3505,11 @@ create function f2() returns int return f1();
create view v3 as select bug23491_original.f1();
use bug23491_restore;
show create view bug23491_restore.v2;
-View Create View
-v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `f1`() AS `f1()`
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `f1`() AS `f1()` latin1 latin1_swedish_ci
show create view bug23491_restore.v3;
-View Create View
-v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `bug23491_original`.`f1`() AS `bug23491_original.f1()`
+View Create View character_set_client collation_connection
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `bug23491_original`.`f1`() AS `bug23491_original.f1()` latin1 latin1_swedish_ci
drop database bug23491_original;
drop database bug23491_restore;
use test;
@@ -3289,21 +3525,25 @@ grant all privileges on mysqldump_test_db.* to user1;
grant all privileges on mysqldump_test_db.* to user2;
create procedure mysqldump_test_db.sp1() select 'hello';
-/*!50003 SET @OLD_SQL_MODE=@@SQL_MODE*/;
-DELIMITER ;;
-
-- insufficient privileges to SHOW CREATE PROCEDURE `sp1`
-- does user2 have permissions on mysql.proc?
-DELIMITER ;
-
-/*!50003 SET @OLD_SQL_MODE=@@SQL_MODE*/;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
DELIMITER ;;
-/*!50003 SET SESSION SQL_MODE=""*/;;
/*!50003 CREATE*/ /*!50020 DEFINER=`user1`@`%`*/ /*!50003 PROCEDURE `sp1`()
select 'hello' */;;
-/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;;
DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
drop procedure sp1;
drop user user1;
drop user user2;
@@ -3543,35 +3783,35 @@ use first;
set time_zone = 'UTC';
create event ee1 on schedule at '2035-12-31 20:01:23' do set @a=5;
show events;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
-first ee1 root@localhost UTC ONE TIME 2035-12-31 20:01:23 NULL NULL NULL NULL ENABLED 1
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+first ee1 root@localhost UTC ONE TIME 2035-12-31 20:01:23 NULL NULL NULL NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
show create event ee1;
-Event sql_mode time_zone Create Event
-ee1 UTC CREATE EVENT `ee1` ON SCHEDULE AT '2035-12-31 20:01:23' ON COMPLETION NOT PRESERVE ENABLE DO set @a=5
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ee1 UTC CREATE EVENT `ee1` ON SCHEDULE AT '2035-12-31 20:01:23' ON COMPLETION NOT PRESERVE ENABLE DO set @a=5 latin1 latin1_swedish_ci latin1_swedish_ci
drop database first;
create database second;
use second;
show events;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
-second ee1 root@localhost UTC ONE TIME 2035-12-31 20:01:23 NULL NULL NULL NULL ENABLED 1
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+second ee1 root@localhost UTC ONE TIME 2035-12-31 20:01:23 NULL NULL NULL NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
show create event ee1;
-Event sql_mode time_zone Create Event
-ee1 NO_AUTO_VALUE_ON_ZERO UTC CREATE EVENT `ee1` ON SCHEDULE AT '2035-12-31 20:01:23' ON COMPLETION NOT PRESERVE ENABLE DO set @a=5
+Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
+ee1 UTC CREATE EVENT `ee1` ON SCHEDULE AT '2035-12-31 20:01:23' ON COMPLETION NOT PRESERVE ENABLE DO set @a=5 latin1 latin1_swedish_ci latin1_swedish_ci
create event ee2 on schedule at '2018-12-31 21:01:23' do set @a=5;
create event ee3 on schedule at '2030-12-31 22:01:23' do set @a=5;
show events;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
-second ee1 root@localhost UTC ONE TIME 2035-12-31 20:01:23 NULL NULL NULL NULL ENABLED 1
-second ee2 root@localhost UTC ONE TIME 2018-12-31 21:01:23 NULL NULL NULL NULL ENABLED 1
-second ee3 root@localhost UTC ONE TIME 2030-12-31 22:01:23 NULL NULL NULL NULL ENABLED 1
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+second ee1 root@localhost UTC ONE TIME 2035-12-31 20:01:23 NULL NULL NULL NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
+second ee2 root@localhost UTC ONE TIME 2018-12-31 21:01:23 NULL NULL NULL NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
+second ee3 root@localhost UTC ONE TIME 2030-12-31 22:01:23 NULL NULL NULL NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
drop database second;
create database third;
use third;
show events;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
-third ee1 root@localhost UTC ONE TIME 2035-12-31 20:01:23 NULL NULL NULL NULL ENABLED 1
-third ee2 root@localhost UTC ONE TIME 2018-12-31 21:01:23 NULL NULL NULL NULL ENABLED 1
-third ee3 root@localhost UTC ONE TIME 2030-12-31 22:01:23 NULL NULL NULL NULL ENABLED 1
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
+third ee1 root@localhost UTC ONE TIME 2035-12-31 20:01:23 NULL NULL NULL NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
+third ee2 root@localhost UTC ONE TIME 2018-12-31 21:01:23 NULL NULL NULL NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
+third ee3 root@localhost UTC ONE TIME 2030-12-31 22:01:23 NULL NULL NULL NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
drop database third;
set time_zone = 'SYSTEM';
use test;
@@ -3624,9 +3864,18 @@ DROP TABLE IF EXISTS `v1`;
USE `mysqldump_test_db`;
/*!50001 DROP TABLE IF EXISTS `v1`*/;
/*!50001 DROP VIEW IF EXISTS `v1`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = latin1 */;
+/*!50001 SET character_set_results = latin1 */;
+/*!50001 SET collation_connection = latin1_swedish_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `v1` AS select `t1`.`id` AS `id` from `t1` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
diff --git a/mysql-test/r/ndb_binlog_format.result b/mysql-test/r/ndb_binlog_format.result
new file mode 100644
index 00000000000..ed26060e2a4
--- /dev/null
+++ b/mysql-test/r/ndb_binlog_format.result
@@ -0,0 +1,30 @@
+drop table if exists t1, t2, t3;
+CREATE TABLE t1 (m INT, n INT) ENGINE=MYISAM;
+CREATE TABLE t2 (b INT, c INT) ENGINE=BLACKHOLE;
+CREATE TABLE t3 (e INT, f INT) ENGINE=NDB;
+RESET MASTER;
+SET SESSION BINLOG_FORMAT=STATEMENT;
+INSERT INTO t1 VALUES (1,1), (1,2), (2,1), (2,2);
+INSERT INTO t2 VALUES (1,1), (1,2), (2,1), (2,2);
+UPDATE t1, t2 SET m = 2, b = 3 WHERE n = c;
+START TRANSACTION;
+INSERT INTO t3 VALUES (1,1), (1,2), (2,1), (2,2);
+UPDATE t1, t3 SET m = 2, e = 3 WHERE n = f;
+UPDATE t3, t2 SET e = 2, b = 3 WHERE f = c;
+COMMIT;
+show binlog events from <binlog_start>;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1,1), (1,2), (2,1), (2,2)
+master-bin.000001 # Query # # use `test`; INSERT INTO t2 VALUES (1,1), (1,2), (2,1), (2,2)
+master-bin.000001 # Query # # use `test`; UPDATE t1, t2 SET m = 2, b = 3 WHERE n = c
+master-bin.000001 # Query # # use `test`; BEGIN
+master-bin.000001 # Query # # use `test`; INSERT INTO t3 VALUES (1,1), (1,2), (2,1), (2,2)
+master-bin.000001 # Query # # use `test`; UPDATE t1, t3 SET m = 2, e = 3 WHERE n = f
+master-bin.000001 # Query # # use `test`; UPDATE t3, t2 SET e = 2, b = 3 WHERE f = c
+master-bin.000001 # Query # # use `test`; COMMIT
+master-bin.000001 # Query # # BEGIN
+master-bin.000001 # Table_map # # table_id: # (test.t3)
+master-bin.000001 # Table_map # # table_id: # (mysql.ndb_apply_status)
+master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
+master-bin.000001 # Query # # COMMIT
+DROP TABLE t1, t2, t3;
diff --git a/mysql-test/r/ndb_read_multi_range.result b/mysql-test/r/ndb_read_multi_range.result
index aef009212a4..8443d0473a8 100644
--- a/mysql-test/r/ndb_read_multi_range.result
+++ b/mysql-test/r/ndb_read_multi_range.result
@@ -451,7 +451,7 @@ CREATE TABLE t2 (
var1 int(2) NOT NULL,
var2 int(2) NOT NULL,
PRIMARY KEY (var1)
-) ENGINE=MyISAM DEFAULT CHARSET=ascii CHECKSUM=1;
+) ENGINE=ndbcluster DEFAULT CHARSET=ascii CHECKSUM=1;
CREATE TRIGGER testtrigger
AFTER UPDATE ON t1 FOR EACH ROW BEGIN
REPLACE INTO t2 SELECT * FROM t1 WHERE t1.var1 = NEW.var1;END|
diff --git a/mysql-test/r/ndb_sp.result b/mysql-test/r/ndb_sp.result
index 32e6d2eddd7..dbd0325044d 100644
--- a/mysql-test/r/ndb_sp.result
+++ b/mysql-test/r/ndb_sp.result
@@ -31,12 +31,12 @@ select @test_var;
10
alter procedure test_proc1 comment 'new comment';
show create procedure test_proc1;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
test_proc1 CREATE DEFINER=`root`@`localhost` PROCEDURE `test_proc1`(in var_in int)
COMMENT 'new comment'
begin
select * from t1 where a = var_in;
-end
+end latin1 latin1_swedish_ci latin1_swedish_ci
drop procedure test_proc1;
drop procedure test_proc2;
drop procedure test_proc3;
diff --git a/mysql-test/r/ndb_trigger.result b/mysql-test/r/ndb_trigger.result
index 28f9f9bdc37..d074ad01c22 100644
--- a/mysql-test/r/ndb_trigger.result
+++ b/mysql-test/r/ndb_trigger.result
@@ -1,7 +1,7 @@
drop table if exists t1, t2, t3, t4, t5;
create table t1 (id int primary key, a int not null, b decimal (63,30) default 0) engine=ndb;
-create table t2 (op char(1), a int not null, b decimal (63,30));
-create table t3 select 1 as i;
+create table t2 (op char(1), a int not null, b decimal (63,30)) engine=ndb;
+create table t3 engine=ndb select 1 as i;
create table t4 (a int not null primary key, b int) engine=ndb;
create table t5 (a int not null primary key, b int) engine=ndb;
create trigger t1_bu before update on t1 for each row
diff --git a/mysql-test/r/ps.result b/mysql-test/r/ps.result
index 84fcb8634d6..9214d470b37 100644
--- a/mysql-test/r/ps.result
+++ b/mysql-test/r/ps.result
@@ -2118,11 +2118,11 @@ prepare abc from "show master logs";
deallocate prepare abc;
create procedure proc_1() show events;
call proc_1();
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
call proc_1();
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
call proc_1();
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
drop procedure proc_1;
create function func_1() returns int begin show events; return 1; end|
ERROR 0A000: Not allowed to return a result set from a function
@@ -2132,27 +2132,27 @@ drop function func_1;
ERROR 42000: FUNCTION test.func_1 does not exist
prepare abc from "show events";
execute abc;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
execute abc;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
execute abc;
-Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
+Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
deallocate prepare abc;
drop procedure if exists a;
create procedure a() select 42;
create procedure proc_1(a char(2)) show create procedure a;
call proc_1("bb");
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
a CREATE DEFINER=`root`@`localhost` PROCEDURE `a`()
-select 42
+select 42 latin1 latin1_swedish_ci latin1_swedish_ci
call proc_1("bb");
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
a CREATE DEFINER=`root`@`localhost` PROCEDURE `a`()
-select 42
+select 42 latin1 latin1_swedish_ci latin1_swedish_ci
call proc_1("bb");
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
a CREATE DEFINER=`root`@`localhost` PROCEDURE `a`()
-select 42
+select 42 latin1 latin1_swedish_ci latin1_swedish_ci
drop procedure proc_1;
create function func_1() returns int begin show create procedure a; return 1; end|
ERROR 0A000: Not allowed to return a result set from a function
@@ -2162,34 +2162,34 @@ drop function func_1;
ERROR 42000: FUNCTION test.func_1 does not exist
prepare abc from "show create procedure a";
execute abc;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
a CREATE DEFINER=`root`@`localhost` PROCEDURE `a`()
-select 42
+select 42 latin1 latin1_swedish_ci latin1_swedish_ci
execute abc;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
a CREATE DEFINER=`root`@`localhost` PROCEDURE `a`()
-select 42
+select 42 latin1 latin1_swedish_ci latin1_swedish_ci
execute abc;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
a CREATE DEFINER=`root`@`localhost` PROCEDURE `a`()
-select 42
+select 42 latin1 latin1_swedish_ci latin1_swedish_ci
deallocate prepare abc;
drop procedure a;
drop function if exists a;
create function a() returns int return 42+13;
create procedure proc_1(a char(2)) show create function a;
call proc_1("bb");
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
a CREATE DEFINER=`root`@`localhost` FUNCTION `a`() RETURNS int(11)
-return 42+13
+return 42+13 latin1 latin1_swedish_ci latin1_swedish_ci
call proc_1("bb");
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
a CREATE DEFINER=`root`@`localhost` FUNCTION `a`() RETURNS int(11)
-return 42+13
+return 42+13 latin1 latin1_swedish_ci latin1_swedish_ci
call proc_1("bb");
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
a CREATE DEFINER=`root`@`localhost` FUNCTION `a`() RETURNS int(11)
-return 42+13
+return 42+13 latin1 latin1_swedish_ci latin1_swedish_ci
drop procedure proc_1;
create function func_1() returns int begin show create function a; return 1; end|
ERROR 0A000: Not allowed to return a result set from a function
@@ -2199,17 +2199,17 @@ drop function func_1;
ERROR 42000: FUNCTION test.func_1 does not exist
prepare abc from "show create function a";
execute abc;
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
a CREATE DEFINER=`root`@`localhost` FUNCTION `a`() RETURNS int(11)
-return 42+13
+return 42+13 latin1 latin1_swedish_ci latin1_swedish_ci
execute abc;
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
a CREATE DEFINER=`root`@`localhost` FUNCTION `a`() RETURNS int(11)
-return 42+13
+return 42+13 latin1 latin1_swedish_ci latin1_swedish_ci
execute abc;
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
a CREATE DEFINER=`root`@`localhost` FUNCTION `a`() RETURNS int(11)
-return 42+13
+return 42+13 latin1 latin1_swedish_ci latin1_swedish_ci
deallocate prepare abc;
drop function a;
drop table if exists tab1;
@@ -2277,14 +2277,14 @@ union all
(select b, count(*) from t1 group by b);
create procedure proc_1() show create view v1;
call proc_1();
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS (select `t1`.`a` AS `a`,count(0) AS `count(*)` from `t1` group by `t1`.`a`) union all (select `t1`.`b` AS `b`,count(0) AS `count(*)` from `t1` group by `t1`.`b`)
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS (select `t1`.`a` AS `a`,count(0) AS `count(*)` from `t1` group by `t1`.`a`) union all (select `t1`.`b` AS `b`,count(0) AS `count(*)` from `t1` group by `t1`.`b`) latin1 latin1_swedish_ci
call proc_1();
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS (select `t1`.`a` AS `a`,count(0) AS `count(*)` from `t1` group by `t1`.`a`) union all (select `t1`.`b` AS `b`,count(0) AS `count(*)` from `t1` group by `t1`.`b`)
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS (select `t1`.`a` AS `a`,count(0) AS `count(*)` from `t1` group by `t1`.`a`) union all (select `t1`.`b` AS `b`,count(0) AS `count(*)` from `t1` group by `t1`.`b`) latin1 latin1_swedish_ci
call proc_1();
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS (select `t1`.`a` AS `a`,count(0) AS `count(*)` from `t1` group by `t1`.`a`) union all (select `t1`.`b` AS `b`,count(0) AS `count(*)` from `t1` group by `t1`.`b`)
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS (select `t1`.`a` AS `a`,count(0) AS `count(*)` from `t1` group by `t1`.`a`) union all (select `t1`.`b` AS `b`,count(0) AS `count(*)` from `t1` group by `t1`.`b`) latin1 latin1_swedish_ci
drop procedure proc_1;
create function func_1() returns int begin show create view v1; return 1; end|
ERROR 0A000: Not allowed to return a result set from a function
@@ -2294,14 +2294,14 @@ drop function func_1;
ERROR 42000: FUNCTION test.func_1 does not exist
prepare abc from "show create view v1";
execute abc;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS (select `t1`.`a` AS `a`,count(0) AS `count(*)` from `t1` group by `t1`.`a`) union all (select `t1`.`b` AS `b`,count(0) AS `count(*)` from `t1` group by `t1`.`b`)
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS (select `t1`.`a` AS `a`,count(0) AS `count(*)` from `t1` group by `t1`.`a`) union all (select `t1`.`b` AS `b`,count(0) AS `count(*)` from `t1` group by `t1`.`b`) latin1 latin1_swedish_ci
execute abc;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS (select `t1`.`a` AS `a`,count(0) AS `count(*)` from `t1` group by `t1`.`a`) union all (select `t1`.`b` AS `b`,count(0) AS `count(*)` from `t1` group by `t1`.`b`)
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS (select `t1`.`a` AS `a`,count(0) AS `count(*)` from `t1` group by `t1`.`a`) union all (select `t1`.`b` AS `b`,count(0) AS `count(*)` from `t1` group by `t1`.`b`) latin1 latin1_swedish_ci
execute abc;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS (select `t1`.`a` AS `a`,count(0) AS `count(*)` from `t1` group by `t1`.`a`) union all (select `t1`.`b` AS `b`,count(0) AS `count(*)` from `t1` group by `t1`.`b`)
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS (select `t1`.`a` AS `a`,count(0) AS `count(*)` from `t1` group by `t1`.`a`) union all (select `t1`.`b` AS `b`,count(0) AS `count(*)` from `t1` group by `t1`.`b`) latin1 latin1_swedish_ci
deallocate prepare abc;
drop view v1;
drop table t1;
diff --git a/mysql-test/r/ps_1general.result b/mysql-test/r/ps_1general.result
index 1b22bb0f39f..a532324719c 100644
--- a/mysql-test/r/ps_1general.result
+++ b/mysql-test/r/ps_1general.result
@@ -378,6 +378,8 @@ prepare stmt1 from ' execute stmt2 ' ;
ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt1 from ' deallocate prepare never_prepared ' ;
ERROR HY000: This command is not supported in the prepared statement protocol yet
+prepare stmt1 from 'alter view v1 as select 2';
+ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt4 from ' use test ' ;
ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt3 from ' create database mysqltest ';
@@ -442,7 +444,7 @@ def table 253 64 2 Y 0 31 8
def type 253 10 3 Y 0 31 8
def possible_keys 253 4096 0 Y 0 31 8
def key 253 64 0 Y 0 31 8
-def key_len 253 4096 0 Y 128 31 63
+def key_len 253 1365 0 Y 0 31 8
def ref 253 1024 0 Y 0 31 8
def rows 8 10 1 Y 32928 0 63
def Extra 253 255 14 N 1 31 8
@@ -458,7 +460,7 @@ def table 253 64 2 Y 0 31 8
def type 253 10 5 Y 0 31 8
def possible_keys 253 4096 7 Y 0 31 8
def key 253 64 7 Y 0 31 8
-def key_len 253 4096 1 Y 128 31 63
+def key_len 253 1365 1 Y 0 31 8
def ref 253 1024 0 Y 0 31 8
def rows 8 10 1 Y 32928 0 63
def Extra 253 255 27 N 1 31 8
diff --git a/mysql-test/r/ps_2myisam.result b/mysql-test/r/ps_2myisam.result
index 39a76378ad5..3ffebbdf1e4 100644
--- a/mysql-test/r/ps_2myisam.result
+++ b/mysql-test/r/ps_2myisam.result
@@ -1158,7 +1158,7 @@ def table 253 64 2 Y 0 31 8
def type 253 10 3 Y 0 31 8
def possible_keys 253 4096 0 Y 0 31 8
def key 253 64 0 Y 0 31 8
-def key_len 253 4096 0 Y 128 31 63
+def key_len 253 1365 0 Y 0 31 8
def ref 253 1024 0 Y 0 31 8
def rows 8 10 1 Y 32928 0 63
def Extra 253 255 0 N 1 31 8
diff --git a/mysql-test/r/ps_3innodb.result b/mysql-test/r/ps_3innodb.result
index c3aac0b2395..2a11564504a 100644
--- a/mysql-test/r/ps_3innodb.result
+++ b/mysql-test/r/ps_3innodb.result
@@ -1158,7 +1158,7 @@ def table 253 64 2 Y 0 31 8
def type 253 10 3 Y 0 31 8
def possible_keys 253 4096 0 Y 0 31 8
def key 253 64 0 Y 0 31 8
-def key_len 253 4096 0 Y 128 31 63
+def key_len 253 1365 0 Y 0 31 8
def ref 253 1024 0 Y 0 31 8
def rows 8 10 1 Y 32928 0 63
def Extra 253 255 0 N 1 31 8
diff --git a/mysql-test/r/ps_4heap.result b/mysql-test/r/ps_4heap.result
index fda3c6adf0b..e56e771564c 100644
--- a/mysql-test/r/ps_4heap.result
+++ b/mysql-test/r/ps_4heap.result
@@ -1159,7 +1159,7 @@ def table 253 64 2 Y 0 31 8
def type 253 10 3 Y 0 31 8
def possible_keys 253 4096 0 Y 0 31 8
def key 253 64 0 Y 0 31 8
-def key_len 253 4096 0 Y 128 31 63
+def key_len 253 1365 0 Y 0 31 8
def ref 253 1024 0 Y 0 31 8
def rows 8 10 1 Y 32928 0 63
def Extra 253 255 0 N 1 31 8
diff --git a/mysql-test/r/ps_5merge.result b/mysql-test/r/ps_5merge.result
index dfb876ea827..2f51b65152c 100644
--- a/mysql-test/r/ps_5merge.result
+++ b/mysql-test/r/ps_5merge.result
@@ -1201,7 +1201,7 @@ def table 253 64 2 Y 0 31 8
def type 253 10 3 Y 0 31 8
def possible_keys 253 4096 0 Y 0 31 8
def key 253 64 0 Y 0 31 8
-def key_len 253 4096 0 Y 128 31 63
+def key_len 253 1365 0 Y 0 31 8
def ref 253 1024 0 Y 0 31 8
def rows 8 10 1 Y 32928 0 63
def Extra 253 255 0 N 1 31 8
@@ -4222,7 +4222,7 @@ def table 253 64 2 Y 0 31 8
def type 253 10 3 Y 0 31 8
def possible_keys 253 4096 0 Y 0 31 8
def key 253 64 0 Y 0 31 8
-def key_len 253 4096 0 Y 128 31 63
+def key_len 253 1365 0 Y 0 31 8
def ref 253 1024 0 Y 0 31 8
def rows 8 10 1 Y 32928 0 63
def Extra 253 255 0 N 1 31 8
diff --git a/mysql-test/r/ps_7ndb.result b/mysql-test/r/ps_7ndb.result
index 413f1e25ab5..f59b6e4452b 100644
--- a/mysql-test/r/ps_7ndb.result
+++ b/mysql-test/r/ps_7ndb.result
@@ -1158,7 +1158,7 @@ def table 253 64 2 Y 0 31 8
def type 253 10 3 Y 0 31 8
def possible_keys 253 4096 0 Y 0 31 8
def key 253 64 0 Y 0 31 8
-def key_len 253 4096 0 Y 128 31 63
+def key_len 253 1365 0 Y 0 31 8
def ref 253 1024 0 Y 0 31 8
def rows 8 10 1 Y 32928 0 63
def Extra 253 255 0 N 1 31 8
diff --git a/mysql-test/r/query_cache_ps_no_prot.result b/mysql-test/r/query_cache_ps_no_prot.result
index bf162439918..29d16d8a619 100644
--- a/mysql-test/r/query_cache_ps_no_prot.result
+++ b/mysql-test/r/query_cache_ps_no_prot.result
@@ -144,7 +144,7 @@ c1
1
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 14
+Qcache_hits 15
---- switch to connection con1 ----
set @a=1;
prepare stmt4 from "select * from t1 where c1=?";
@@ -153,50 +153,63 @@ c1
1
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 14
+Qcache_hits 16
+prepare stmt4 from "select @a from t1 where c1=?";
+execute stmt4 using @a;
+@a
+1
+show status like 'Qcache_hits';
+Variable_name Value
+Qcache_hits 16
+execute stmt4 using @a;
+@a
+1
+show status like 'Qcache_hits';
+Variable_name Value
+Qcache_hits 16
---- switch to connection default ----
prepare stmt1 from "select * from t1 where c1=10";
set global query_cache_size=0;
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 14
+Qcache_hits 16
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 14
+Qcache_hits 16
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 14
+Qcache_hits 16
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 14
+Qcache_hits 16
---- switch to connection con1 ----
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 14
+Qcache_hits 16
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 14
+Qcache_hits 16
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 14
+Qcache_hits 16
---- switch to connection default ----
set global query_cache_size=100000;
execute stmt1;
@@ -204,80 +217,80 @@ c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 14
+Qcache_hits 16
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 15
+Qcache_hits 17
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 16
+Qcache_hits 18
---- switch to connection con1 ----
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 18
+Qcache_hits 20
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
---- switch to connection default ----
set global query_cache_size=0;
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
---- switch to connection con1 ----
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
---- switch to connection default ----
set global query_cache_size=0;
prepare stmt1 from "select * from t1 where c1=10";
@@ -287,75 +300,75 @@ prepare stmt3 from "select * from t1 where c1=10";
set global query_cache_size=100000;
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
---- switch to connection con1 ----
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
---- switch to connection default ----
set global query_cache_size=0;
prepare stmt1 from "select * from t1 where c1=?";
set global query_cache_size=100000;
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
set @a=1;
execute stmt1 using @a;
c1
1
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
set @a=100;
execute stmt1 using @a;
c1
100
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
set @a=10;
execute stmt1 using @a;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 19
+Qcache_hits 21
drop table t1;
---- disconnect connection con1 ----
set @@global.query_cache_size=@initial_query_cache_size;
diff --git a/mysql-test/r/query_cache_ps_ps_prot.result b/mysql-test/r/query_cache_ps_ps_prot.result
index 56aeda4a253..ba675d57f50 100644
--- a/mysql-test/r/query_cache_ps_ps_prot.result
+++ b/mysql-test/r/query_cache_ps_ps_prot.result
@@ -144,7 +144,7 @@ c1
1
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 12
+Qcache_hits 13
---- switch to connection con1 ----
set @a=1;
prepare stmt4 from "select * from t1 where c1=?";
@@ -153,50 +153,63 @@ c1
1
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 12
+Qcache_hits 14
+prepare stmt4 from "select @a from t1 where c1=?";
+execute stmt4 using @a;
+@a
+1
+show status like 'Qcache_hits';
+Variable_name Value
+Qcache_hits 14
+execute stmt4 using @a;
+@a
+1
+show status like 'Qcache_hits';
+Variable_name Value
+Qcache_hits 14
---- switch to connection default ----
prepare stmt1 from "select * from t1 where c1=10";
set global query_cache_size=0;
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 12
+Qcache_hits 14
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 12
+Qcache_hits 14
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 12
+Qcache_hits 14
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 12
+Qcache_hits 14
---- switch to connection con1 ----
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 12
+Qcache_hits 14
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 12
+Qcache_hits 14
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 12
+Qcache_hits 14
---- switch to connection default ----
set global query_cache_size=100000;
execute stmt1;
@@ -204,80 +217,80 @@ c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 12
+Qcache_hits 14
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 13
+Qcache_hits 15
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 14
+Qcache_hits 16
---- switch to connection con1 ----
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 15
+Qcache_hits 17
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 16
+Qcache_hits 18
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
---- switch to connection default ----
set global query_cache_size=0;
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
---- switch to connection con1 ----
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
---- switch to connection default ----
set global query_cache_size=0;
prepare stmt1 from "select * from t1 where c1=10";
@@ -287,75 +300,75 @@ prepare stmt3 from "select * from t1 where c1=10";
set global query_cache_size=100000;
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
execute stmt1;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
---- switch to connection con1 ----
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
execute stmt3;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
---- switch to connection default ----
set global query_cache_size=0;
prepare stmt1 from "select * from t1 where c1=?";
set global query_cache_size=100000;
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
set @a=1;
execute stmt1 using @a;
c1
1
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
set @a=100;
execute stmt1 using @a;
c1
100
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
set @a=10;
execute stmt1 using @a;
c1
10
show status like 'Qcache_hits';
Variable_name Value
-Qcache_hits 17
+Qcache_hits 19
drop table t1;
---- disconnect connection con1 ----
set @@global.query_cache_size=@initial_query_cache_size;
diff --git a/mysql-test/r/rpl_events.result b/mysql-test/r/rpl_events.result
index 0d7e7bb28a7..18fe72a9879 100644
--- a/mysql-test/r/rpl_events.result
+++ b/mysql-test/r/rpl_events.result
@@ -9,153 +9,191 @@ set binlog_format=row;
DROP EVENT IF EXISTS test.justonce;
drop table if exists t1,t2;
CREATE TABLE `t1` (
-`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+`id` INT(10) UNSIGNED NOT NULL,
`c` VARCHAR(50) NOT NULL,
`ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-INSERT INTO t1 (c) VALUES ('manually');
-CREATE EVENT test.justonce ON SCHEDULE AT NOW() + INTERVAL 2 SECOND DO INSERT INTO t1
-(c) VALUES ('from justonce');
+INSERT INTO t1 (id, c) VALUES (1, 'manually');
+"Creating event test.justonce on the master"
+CREATE EVENT test.justonce ON SCHEDULE EVERY 2 SECOND DO
+INSERT IGNORE INTO t1 (id, c) VALUES (2, 'from justonce');
+"Checking event is active on master"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'justonce';
db name status originator
test justonce ENABLED 1
-"in the master"
-SELECT * FROM t1 WHERE c = 'from justonce' OR c = 'manually' ORDER BY id;
+"Checking event data on the master"
+SELECT * FROM t1 ORDER BY id;
id c ts
1 manually TIMESTAMP
2 from justonce TIMESTAMP
affected rows: 2
-"in the slave"
-SELECT * FROM t1 WHERE c = 'from justonce' OR c = 'manually' ORDER BY id;
+"Checking event data on the slave"
+SELECT * FROM t1 ORDER BY id;
id c ts
1 manually TIMESTAMP
2 from justonce TIMESTAMP
affected rows: 2
+"Checking event is inactive on slave"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'justonce';
db name status originator
+test justonce SLAVESIDE_DISABLED 1
+"Dropping event test.slave_once on the slave"
DROP EVENT IF EXISTS test.slave_once;
CREATE EVENT test.slave_once ON SCHEDULE EVERY 5 MINUTE DO
-INSERT INTO t1(c) VALUES ('from slave_once');
+INSERT IGNORE INTO t1(id, c) VALUES (3, 'from slave_once');
+"Checking event status on the slave for originator value = slave's server_id"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'slave_once';
db name status originator
test slave_once ENABLED 2
+"Dropping event test.slave_once on the slave"
DROP EVENT IF EXISTS test.slave_once;
+"Dropping event test.justonce on the master"
DROP EVENT IF EXISTS test.justonce;
+"Creating event test.er on the master"
CREATE EVENT test.er ON SCHEDULE EVERY 3 SECOND DO
-INSERT INTO t1(c) VALUES ('from er');
+INSERT IGNORE INTO t1(id, c) VALUES (4, 'from er');
+"Checking event status on the master"
SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND name = 'er';
db name status originator body
-test er ENABLED 1 INSERT INTO t1(c) VALUES ('from er')
-"in the slave"
+test er ENABLED 1 INSERT IGNORE INTO t1(id, c) VALUES (4, 'from er')
+"Checking event status on the slave"
SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND name = 'er';
db name status originator body
-test er SLAVESIDE_DISABLED 1 INSERT INTO t1(c) VALUES ('from er')
-"in the master"
-ALTER EVENT test.er ON SCHEDULE EVERY 5 SECOND DO INSERT into t1(c) VALUES ('from alter er');
+test er SLAVESIDE_DISABLED 1 INSERT IGNORE INTO t1(id, c) VALUES (4, 'from er')
+"Altering event test.er on the master"
+ALTER EVENT test.er ON SCHEDULE EVERY 5 SECOND DO
+INSERT IGNORE INTO t1(id, c) VALUES (5, 'from alter er');
+"Checking event status on the master"
SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND name = 'er';
db name status originator body
-test er ENABLED 1 INSERT into t1(c) VALUES ('from alter er')
-"in the slave"
+test er ENABLED 1 INSERT IGNORE INTO t1(id, c) VALUES (5, 'from alter er')
+"Checking event status on the slave"
SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND name = 'er';
db name status originator body
-test er SLAVESIDE_DISABLED 1 INSERT into t1(c) VALUES ('from alter er')
-"in the master"
+test er SLAVESIDE_DISABLED 1 INSERT IGNORE INTO t1(id, c) VALUES (5, 'from alter er')
+"Dropping event test.er on the master"
DROP EVENT test.er;
+"Checking event status on the master"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test';
db name status originator
-"in the slave"
+"Checking event status on the slave"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test';
db name status originator
-CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND
-DO INSERT INTO t1(c) VALUES ('from slave_terminate');
+"Creating event test.slave_terminate on the slave"
+CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND DO
+INSERT IGNORE INTO t1(id, c) VALUES (6, 'from slave_terminate');
+"Checking event status on the slave"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'slave_terminate';
db name status originator
test slave_terminate ENABLED 2
+"Dropping event test.slave_terminate on the slave"
DROP EVENT test.slave_terminate;
-CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND
-DISABLE ON SLAVE DO INSERT INTO t1(c) VALUES ('from slave_terminate');
+"Creating event test.slave_terminate with DISABLE ON SLAVE on the slave"
+CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND DISABLE ON SLAVE DO
+INSERT IGNORE INTO t1(c) VALUES (7, 'from slave_terminate');
+"Checking event status on the slave"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'slave_terminate';
db name status originator
test slave_terminate SLAVESIDE_DISABLED 2
+"Dropping event test.slave_terminate on the slave"
DROP EVENT test.slave_terminate;
-"in the master"
+"Cleanup"
DROP TABLE t1;
set binlog_format=statement;
DROP EVENT IF EXISTS test.justonce;
drop table if exists t1,t2;
CREATE TABLE `t1` (
-`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+`id` INT(10) UNSIGNED NOT NULL,
`c` VARCHAR(50) NOT NULL,
`ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-INSERT INTO t1 (c) VALUES ('manually');
-CREATE EVENT test.justonce ON SCHEDULE AT NOW() + INTERVAL 2 SECOND DO INSERT INTO t1
-(c) VALUES ('from justonce');
+INSERT INTO t1 (id, c) VALUES (1, 'manually');
+"Creating event test.justonce on the master"
+CREATE EVENT test.justonce ON SCHEDULE EVERY 2 SECOND DO
+INSERT IGNORE INTO t1 (id, c) VALUES (2, 'from justonce');
+"Checking event is active on master"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'justonce';
db name status originator
test justonce ENABLED 1
-"in the master"
-SELECT * FROM t1 WHERE c = 'from justonce' OR c = 'manually' ORDER BY id;
+"Checking event data on the master"
+SELECT * FROM t1 ORDER BY id;
id c ts
1 manually TIMESTAMP
2 from justonce TIMESTAMP
affected rows: 2
-"in the slave"
-SELECT * FROM t1 WHERE c = 'from justonce' OR c = 'manually' ORDER BY id;
+"Checking event data on the slave"
+SELECT * FROM t1 ORDER BY id;
id c ts
1 manually TIMESTAMP
2 from justonce TIMESTAMP
affected rows: 2
+"Checking event is inactive on slave"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'justonce';
db name status originator
+test justonce SLAVESIDE_DISABLED 1
+"Dropping event test.slave_once on the slave"
DROP EVENT IF EXISTS test.slave_once;
CREATE EVENT test.slave_once ON SCHEDULE EVERY 5 MINUTE DO
-INSERT INTO t1(c) VALUES ('from slave_once');
+INSERT IGNORE INTO t1(id, c) VALUES (3, 'from slave_once');
+"Checking event status on the slave for originator value = slave's server_id"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'slave_once';
db name status originator
test slave_once ENABLED 2
+"Dropping event test.slave_once on the slave"
DROP EVENT IF EXISTS test.slave_once;
+"Dropping event test.justonce on the master"
DROP EVENT IF EXISTS test.justonce;
+"Creating event test.er on the master"
CREATE EVENT test.er ON SCHEDULE EVERY 3 SECOND DO
-INSERT INTO t1(c) VALUES ('from er');
+INSERT IGNORE INTO t1(id, c) VALUES (4, 'from er');
+"Checking event status on the master"
SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND name = 'er';
db name status originator body
-test er ENABLED 1 INSERT INTO t1(c) VALUES ('from er')
-"in the slave"
+test er ENABLED 1 INSERT IGNORE INTO t1(id, c) VALUES (4, 'from er')
+"Checking event status on the slave"
SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND name = 'er';
db name status originator body
-test er SLAVESIDE_DISABLED 1 INSERT INTO t1(c) VALUES ('from er')
-"in the master"
-ALTER EVENT test.er ON SCHEDULE EVERY 5 SECOND DO INSERT into t1(c) VALUES ('from alter er');
+test er SLAVESIDE_DISABLED 1 INSERT IGNORE INTO t1(id, c) VALUES (4, 'from er')
+"Altering event test.er on the master"
+ALTER EVENT test.er ON SCHEDULE EVERY 5 SECOND DO
+INSERT IGNORE INTO t1(id, c) VALUES (5, 'from alter er');
+"Checking event status on the master"
SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND name = 'er';
db name status originator body
-test er ENABLED 1 INSERT into t1(c) VALUES ('from alter er')
-"in the slave"
+test er ENABLED 1 INSERT IGNORE INTO t1(id, c) VALUES (5, 'from alter er')
+"Checking event status on the slave"
SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND name = 'er';
db name status originator body
-test er SLAVESIDE_DISABLED 1 INSERT into t1(c) VALUES ('from alter er')
-"in the master"
+test er SLAVESIDE_DISABLED 1 INSERT IGNORE INTO t1(id, c) VALUES (5, 'from alter er')
+"Dropping event test.er on the master"
DROP EVENT test.er;
+"Checking event status on the master"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test';
db name status originator
-"in the slave"
+"Checking event status on the slave"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test';
db name status originator
-CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND
-DO INSERT INTO t1(c) VALUES ('from slave_terminate');
+"Creating event test.slave_terminate on the slave"
+CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND DO
+INSERT IGNORE INTO t1(id, c) VALUES (6, 'from slave_terminate');
+"Checking event status on the slave"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'slave_terminate';
db name status originator
test slave_terminate ENABLED 2
+"Dropping event test.slave_terminate on the slave"
DROP EVENT test.slave_terminate;
-CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND
-DISABLE ON SLAVE DO INSERT INTO t1(c) VALUES ('from slave_terminate');
+"Creating event test.slave_terminate with DISABLE ON SLAVE on the slave"
+CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND DISABLE ON SLAVE DO
+INSERT IGNORE INTO t1(c) VALUES (7, 'from slave_terminate');
+"Checking event status on the slave"
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'slave_terminate';
db name status originator
test slave_terminate SLAVESIDE_DISABLED 2
+"Dropping event test.slave_terminate on the slave"
DROP EVENT test.slave_terminate;
-"in the master"
+"Cleanup"
DROP TABLE t1;
CREATE EVENT event1 ON SCHEDULE EVERY 1 YEAR
DO BEGIN
diff --git a/mysql-test/r/rpl_ndb_UUID.result b/mysql-test/r/rpl_ndb_UUID.result
index 422379d4f55..6babf49dcaa 100644
--- a/mysql-test/r/rpl_ndb_UUID.result
+++ b/mysql-test/r/rpl_ndb_UUID.result
@@ -24,7 +24,7 @@ end|
select fn1(0);
fn1(0)
0
-create table t2 (a int);
+create table t2 (a int) engine=NDB;
insert into t2 values(fn1(2));
SHOW CREATE TABLE test.t1;
Table Create Table
diff --git a/mysql-test/r/rpl_ndb_ctype_ucs2_def.result b/mysql-test/r/rpl_ndb_ctype_ucs2_def.result
new file mode 100644
index 00000000000..2f9dc4ae616
--- /dev/null
+++ b/mysql-test/r/rpl_ndb_ctype_ucs2_def.result
@@ -0,0 +1,9 @@
+show variables like 'collation_server';
+Variable_name Value
+collation_server ucs2_unicode_ci
+show variables like "%character_set_ser%";
+Variable_name Value
+character_set_server ucs2
+DROP TABLE IF EXISTS t1;
+create table t1 (a int);
+drop table t1;
diff --git a/mysql-test/r/rpl_ndb_dd_advance.result b/mysql-test/r/rpl_ndb_dd_advance.result
index a4614b4b484..7f26313894c 100644
--- a/mysql-test/r/rpl_ndb_dd_advance.result
+++ b/mysql-test/r/rpl_ndb_dd_advance.result
@@ -56,6 +56,7 @@ undofile.dat UNDO LOG NULL lg1
undofile02.dat UNDO LOG NULL lg1
**** Do First Set of ALTERs in the master table ****
CREATE INDEX t1_i ON t1(c2, c3);
+CREATE UNIQUE INDEX t1_i2 ON t1(c2);
ALTER TABLE t1 ADD c4 TIMESTAMP;
ALTER TABLE t1 ADD c5 DOUBLE;
ALTER TABLE t1 ADD INDEX (c5);
@@ -68,6 +69,7 @@ t1 CREATE TABLE `t1` (
`c4` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`c5` double DEFAULT NULL,
PRIMARY KEY (`c1`),
+ UNIQUE KEY `t1_i2` (`c2`),
KEY `t1_i` (`c2`,`c3`),
KEY `c5` (`c5`)
) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
@@ -81,6 +83,7 @@ t1 CREATE TABLE `t1` (
`c4` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`c5` double DEFAULT NULL,
PRIMARY KEY (`c1`),
+ UNIQUE KEY `t1_i2` (`c2`),
KEY `t1_i` (`c2`,`c3`),
KEY `c5` (`c5`)
) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
@@ -101,6 +104,7 @@ t1 CREATE TABLE `t1` (
`c4` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`c5` double DEFAULT NULL,
PRIMARY KEY (`c1`),
+ UNIQUE KEY `t1_i2` (`c2`),
KEY `t1_i` (`c2`,`c3`)
) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
**** Show second set of ALTERs on SLAVE ****
@@ -113,6 +117,7 @@ t1 CREATE TABLE `t1` (
`c4` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`c5` double DEFAULT NULL,
PRIMARY KEY (`c1`),
+ UNIQUE KEY `t1_i2` (`c2`),
KEY `t1_i` (`c2`,`c3`)
) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
**** Third and last set of alters for test1 ****
@@ -135,6 +140,7 @@ t1 CREATE TABLE `t1` (
`c3` blob,
`c5` double DEFAULT NULL,
PRIMARY KEY (`c1`),
+ UNIQUE KEY `t1_i2` (`c2`),
KEY `t1_i` (`c2`)
) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
SELECT * FROM t1 ORDER BY c1 LIMIT 5;
@@ -153,8 +159,16 @@ t1 CREATE TABLE `t1` (
`c3` blob,
`c5` double DEFAULT NULL,
PRIMARY KEY (`c1`),
+ UNIQUE KEY `t1_i2` (`c2`),
KEY `t1_i` (`c2`)
) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
+SELECT * FROM t1 ORDER BY c1 LIMIT 5;
+c1 c2 c3 c5
+1 2.00 b1b1b1b1b1b1b1b1b1b1 NULL
+2 4.00 b1b1b1b1b1b1b1b1b1b1 NULL
+3 6.00 0000-00-00 00:00:00 NULL
+4 8.00 0000-00-00 00:00:00 NULL
+5 10.00 0000-00-00 00:00:00 NULL
SELECT * FROM t1 where c1 = 1;
c1 c2 c3 c5
1 2.00 b1b1b1b1b1b1b1b1b1b1 NULL
@@ -167,148 +181,44 @@ START SLAVE;
CREATE TABLESPACE ts2
ADD DATAFILE 'datafile03.dat'
USE LOGFILE GROUP lg1
-INITIAL_SIZE 12M
+INITIAL_SIZE 10M
ENGINE=NDB;
ALTER TABLESPACE ts2
ADD DATAFILE 'datafile04.dat'
-INITIAL_SIZE 12M
+INITIAL_SIZE 5M
ENGINE=NDB;
DROP DATABASE IF EXISTS tpcb;
-Warnings:
-Note 1008 Can't drop database 'tpcb'; database doesn't exist
CREATE DATABASE tpcb;
-*********** Create TPCB Tables *****************
-CREATE TABLE tpcb.account
+
+CREATE TABLE tpcb.account
(id INT, bid INT, balance DECIMAL(10,2),
filler CHAR(255), PRIMARY KEY(id))
-TABLESPACE ts1 STORAGE DISK
-ENGINE=NDB;
-CREATE TABLE tpcb.branch
+TABLESPACE ts2 STORAGE DISK
+ENGINE=NDBCLUSTER;
+
+CREATE TABLE tpcb.branch
(bid INT, balance DECIMAL(10,2), filler VARCHAR(255),
-PRIMARY KEY(bid))
-ENGINE=NDB;
-CREATE TABLE tpcb.teller
+PRIMARY KEY(bid))TABLESPACE ts2 STORAGE DISK
+ENGINE=NDBCLUSTER;
+
+CREATE TABLE tpcb.teller
(tid INT, balance DECIMAL(10,2), filler VARCHAR(255),
-PRIMARY KEY(tid))
-TABLESPACE ts2 STORAGE DISK
-ENGINE=NDB;
-CREATE TABLE tpcb.history
+PRIMARY KEY(tid)) TABLESPACE ts2 STORAGE DISK
+ENGINE=NDBCLUSTER;
+
+CREATE TABLE tpcb.history
(id MEDIUMINT NOT NULL AUTO_INCREMENT,aid INT,
tid INT, bid INT, amount DECIMAL(10,2),
tdate DATETIME, teller CHAR(20), uuidf LONGBLOB,
filler CHAR(80),PRIMARY KEY (id))
TABLESPACE ts2 STORAGE DISK
-ENGINE=NDB;
-********* Create Procedures and Functions ************
-CREATE PROCEDURE tpcb.load()
-BEGIN
-DECLARE acct INT DEFAULT 1000;
-DECLARE brch INT DEFAULT 100;
-DECLARE tell INT DEFAULT 1000;
-DECLARE tmp INT DEFAULT 100;
-WHILE brch > 0 DO
-SET tmp = 100;
-WHILE tmp > 0 DO
-INSERT INTO tpcb.account VALUES (acct, brch, 0.0, "FRESH ACCOUNT");
-SET acct = acct - 1;
-SET tmp = tmp -1;
-END WHILE;
-INSERT INTO tpcb.branch VALUES (brch, 0.0, "FRESH BRANCH");
-SET brch = brch - 1;
-END WHILE;
-WHILE tell > 0 DO
-INSERT INTO tpcb.teller VALUES (tell, 0.0, "FRESH TELLER");
-SET tell = tell - 1;
-END WHILE;
-END|
-CREATE FUNCTION tpcb.account_id () RETURNS INT
-BEGIN
-DECLARE num INT;
-DECLARE ran INT;
-SELECT RAND() * 10 INTO ran;
-IF (ran < 2)
-THEN
-SELECT RAND() * 10 INTO num;
-ELSEIF (ran < 4)
-THEN
-SELECT RAND() * 100 INTO num;
-ELSE
-SELECT RAND() * 1000 INTO num;
-END IF;
-IF (num < 1)
-THEN
-RETURN 1;
-END IF;
-RETURN num;
-END|
-CREATE FUNCTION tpcb.teller_id () RETURNS INT
-BEGIN
-DECLARE num INT;
-DECLARE ran INT;
-SELECT RAND() * 10 INTO ran;
-IF (ran < 2)
-THEN
-SELECT RAND() * 10 INTO num;
-ELSEIF (ran < 5)
-THEN
-SELECT RAND() * 100 INTO num;
-ELSE
-SELECT RAND() * 1000 INTO num;
-END IF;
-IF (num < 1)
-THEN
-RETURN 1;
-END IF;
-RETURN num;
-END|
-CREATE PROCEDURE tpcb.trans()
-BEGIN
-DECLARE acct INT DEFAULT 0;
-DECLARE brch INT DEFAULT 0;
-DECLARE tell INT DEFAULT 0;
-DECLARE bal DECIMAL(10,2) DEFAULT 0.0;
-DECLARE amount DECIMAL(10,2) DEFAULT 1.00;
-DECLARE test INT DEFAULT 0;
-DECLARE bbal DECIMAL(10,2) DEFAULT 0.0;
-DECLARE tbal DECIMAL(10,2) DEFAULT 0.0;
-DECLARE local_uuid VARCHAR(255);
-DECLARE local_user VARCHAR(255);
-DECLARE local_time TIMESTAMP;
-SELECT RAND() * 10 INTO test;
-SELECT tpcb.account_id() INTO acct;
-SELECT tpcb.teller_id() INTO tell;
-SELECT account.balance INTO bal FROM tpcb.account WHERE id = acct;
-SELECT account.bid INTO brch FROM tpcb.account WHERE id = acct;
-SELECT teller.balance INTO tbal FROM tpcb.teller WHERE tid = tell;
-SELECT branch.balance INTO bbal FROM tpcb.branch WHERE bid = brch;
-IF (test < 5)
-THEN
-SET bal = bal + amount;
-SET bbal = bbal + amount;
-SET tbal = tbal + amount;
-UPDATE tpcb.account SET balance = bal, filler = 'account updated'
- WHERE id = acct;
-UPDATE tpcb.branch SET balance = bbal, filler = 'branch updated'
- WHERE bid = brch;
-UPDATE tpcb.teller SET balance = tbal, filler = 'teller updated'
- WHERE tid = tell;
-ELSE
-SET bal = bal - amount;
-SET bbal = bbal - amount;
-SET tbal = tbal - amount;
-UPDATE tpcb.account SET balance = bal, filler = 'account updated'
- WHERE id = acct;
-UPDATE tpcb.branch SET balance = bbal, filler = 'branch updated'
- WHERE bid = brch;
-UPDATE tpcb.teller SET balance = tbal, filler = 'teller updated'
- WHERE tid = tell;
-END IF;
-SET local_uuid=UUID();
-SET local_user=USER();
-SET local_time= NOW();
-INSERT INTO tpcb.history VALUES(NULL,acct,tell,brch,amount, local_time,local_user,
-local_uuid,'completed trans');
-END|
+ENGINE=NDBCLUSTER;
+
+--- Create stored procedures & functions ---
+
+
+*** Stored Procedures Created ***
+
****** TEST 2 test time *********************************
USE tpcb;
*********** Load up the database ******************
@@ -316,11 +226,11 @@ CALL tpcb.load();
********** Check load master and slave **************
SELECT COUNT(*) FROM account;
COUNT(*)
-10000
+1000
USE tpcb;
SELECT COUNT(*) FROM account;
COUNT(*)
-10000
+1000
******** Run in some transactions ***************
***** Time to try slave sync ***********
**** Must make sure slave is clean *****
@@ -351,10 +261,10 @@ DROP LOGFILE GROUP lg1 ENGINE=NDB;
********** Take a backup of the Master *************
SELECT COUNT(*) FROM history;
COUNT(*)
-1000
+100
SELECT COUNT(*) FROM history;
COUNT(*)
-2000
+200
CREATE TEMPORARY TABLE IF NOT EXISTS mysql.backup_info (id INT, backup_id INT) ENGINE = HEAP;
DELETE FROM mysql.backup_info;
LOAD DATA INFILE '../tmp.dat' INTO TABLE mysql.backup_info FIELDS TERMINATED BY ',';
@@ -368,7 +278,7 @@ CREATE DATABASE tpcb;
USE tpcb;
SELECT COUNT(*) FROM account;
COUNT(*)
-10000
+1000
***** Add some more records to master *********
***** Finsh the slave sync process *******
@the_epoch:=MAX(epoch)
@@ -384,12 +294,12 @@ START SLAVE;
USE tpcb;
SELECT COUNT(*) FROM history;
COUNT(*)
-4050
+400
****** SLAVE ********
USE tpcb;
SELECT COUNT(*) FROM history;
COUNT(*)
-4050
+400
*** DUMP MASTER & SLAVE FOR COMPARE ********
*************** TEST 2 CLEANUP SECTION ********************
DROP PROCEDURE IF EXISTS tpcb.load;
diff --git a/mysql-test/r/rpl_ndb_mix_innodb.result b/mysql-test/r/rpl_ndb_mix_innodb.result
new file mode 100644
index 00000000000..625d06de44b
--- /dev/null
+++ b/mysql-test/r/rpl_ndb_mix_innodb.result
@@ -0,0 +1,129 @@
+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;
+
+*** Test 1 ***
+
+create table t1 (a int key, b int) engine innodb;
+create table t2 (a int key, b int) engine innodb;
+
+alter table t1 engine ndb;
+alter table t2 engine ndb;
+
+insert into t1 values (1,2);
+
+select @log_name:=log_name, @start_pos:=start_pos, @end_pos:=end_pos
+from mysql.ndb_apply_status;
+@log_name:=log_name @start_pos:=start_pos @end_pos:=end_pos
+<log_name> <start_pos> <end_pos>
+
+show binlog events from <start_pos> limit 1;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 <start_pos> Query 1 # use `test`; insert into t1 values (1,2)
+
+show binlog events from <start_pos> limit 1,1;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Xid 1 445 COMMIT /* XID */
+
+begin;
+insert into t1 values (2,3);
+insert into t2 values (3,4);
+commit;
+
+select @log_name:=log_name, @start_pos:=start_pos, @end_pos:=end_pos
+from mysql.ndb_apply_status;
+@log_name:=log_name @start_pos:=start_pos @end_pos:=end_pos
+<log_name> <start_pos> <end_pos>
+show binlog events from <start_pos> limit 1;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 <start_pos> Query 1 # use `test`; BEGIN
+
+show binlog events from <start_pos> limit 1,2;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Query # # use `test`; insert into t1 values (2,3)
+master-bin.000001 # Query # # use `test`; insert into t2 values (3,4)
+
+show binlog events from <start_pos> limit 3,1;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Xid 1 <end_pos> COMMIT /* XID */
+
+DROP TABLE test.t1, test.t2;
+SHOW TABLES;
+Tables_in_test
+
+*** Test 2 ***
+
+DROP DATABASE IF EXISTS tpcb;
+CREATE DATABASE tpcb;
+
+CREATE TABLE tpcb.account (id INT, bid INT, balance DECIMAL(10,2),
+filler CHAR(255), PRIMARY KEY(id));
+
+CREATE TABLE tpcb.branch (bid INT, balance DECIMAL(10,2), filler VARCHAR(255),
+PRIMARY KEY(bid));
+
+CREATE TABLE tpcb.teller (tid INT, balance DECIMAL(10,2), filler VARCHAR(255),
+PRIMARY KEY(tid));
+
+CREATE TABLE tpcb.history (id MEDIUMINT NOT NULL AUTO_INCREMENT,aid INT,
+tid INT, bid INT, amount DECIMAL(10,2),
+tdate DATETIME, teller CHAR(20), uuidf LONGBLOB,
+filler CHAR(80),PRIMARY KEY (id));
+
+--- Create stored procedures & functions ---
+
+
+*** Stored Procedures Created ***
+
+USE tpcb;
+ALTER TABLE account ENGINE NDB;
+ALTER TABLE branch ENGINE NDB;
+ALTER TABLE teller ENGINE NDB;
+ALTER TABLE history ENGINE NDB;
+
+select @log_name:=log_name, @start_pos:=start_pos, @end_pos:=end_pos
+from mysql.ndb_apply_status;
+@log_name:=log_name @start_pos:=start_pos @end_pos:=end_pos
+<log_name> <start_pos> <end_pos>
+
+show binlog events in 'master-bin.000001' from <start_pos> limit 9,1;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Xid 1 <end_pos> COMMIT /* XID */
+
+** Test 3 **
+
+FLUSH LOGS;
+
+select @log_name:=log_name, @start_pos:=start_pos, @end_pos:=end_pos
+from mysql.ndb_apply_status;
+@log_name:=log_name @start_pos:=start_pos @end_pos:=end_pos
+<log_name> <start_pos> <end_pos>
+
+show binlog events in 'master-bin.000002' from <start_pos> limit 9,1;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000002 # Xid 1 <end_pos> COMMIT /* XID */
+
+** Test 4 **
+
+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;
+
+select @log_name:=log_name, @start_pos:=start_pos, @end_pos:=end_pos
+from mysql.ndb_apply_status;
+@log_name:=log_name @start_pos:=start_pos @end_pos:=end_pos
+<log_name> <start_pos> <end_pos>
+
+show binlog events in 'master-bin.000001' from <start_pos> limit 9,1;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Xid 1 <end_pos> COMMIT /* XID */
+
+*** DUMP MASTER & SLAVE FOR COMPARE ********
+DROP DATABASE tpcb;
+****** Do dumps compare ************
diff --git a/mysql-test/r/rpl_ndb_stm_innodb.result b/mysql-test/r/rpl_ndb_stm_innodb.result
index 624439754b2..426a09f945c 100644
--- a/mysql-test/r/rpl_ndb_stm_innodb.result
+++ b/mysql-test/r/rpl_ndb_stm_innodb.result
@@ -4,37 +4,126 @@ reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
+
+*** Test 1 ***
+
create table t1 (a int key, b int) engine innodb;
create table t2 (a int key, b int) engine innodb;
+
alter table t1 engine ndb;
alter table t2 engine ndb;
-STOP SLAVE;
-SET GLOBAL BINLOG_FORMAT=MIXED;
-START SLAVE;
+
insert into t1 values (1,2);
-select @start_pos:=start_pos, @end_pos:=end_pos from mysql.ndb_apply_status;
-@start_pos:=start_pos @end_pos:=end_pos
-<start_pos> <end_pos>
+
+select @log_name:=log_name, @start_pos:=start_pos, @end_pos:=end_pos
+from mysql.ndb_apply_status;
+@log_name:=log_name @start_pos:=start_pos @end_pos:=end_pos
+<log_name> <start_pos> <end_pos>
+
show binlog events from <start_pos> limit 1;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 <start_pos> Query 1 # use `test`; insert into t1 values (1,2)
+
show binlog events from <start_pos> limit 1,1;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Xid 1 445 COMMIT /* XID */
+
begin;
insert into t1 values (2,3);
insert into t2 values (3,4);
commit;
-select @start_pos:=start_pos, @end_pos:=end_pos from mysql.ndb_apply_status;
-@start_pos:=start_pos @end_pos:=end_pos
-<start_pos> <end_pos>
+
+select @log_name:=log_name, @start_pos:=start_pos, @end_pos:=end_pos
+from mysql.ndb_apply_status;
+@log_name:=log_name @start_pos:=start_pos @end_pos:=end_pos
+<log_name> <start_pos> <end_pos>
show binlog events from <start_pos> limit 1;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 <start_pos> Query 1 # use `test`; BEGIN
+
show binlog events from <start_pos> limit 1,2;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # use `test`; insert into t1 values (2,3)
master-bin.000001 # Query # # use `test`; insert into t2 values (3,4)
+
show binlog events from <start_pos> limit 3,1;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Xid 1 <end_pos> COMMIT /* XID */
+
+DROP TABLE test.t1, test.t2;
+SHOW TABLES;
+Tables_in_test
+
+*** Test 2 ***
+
+DROP DATABASE IF EXISTS tpcb;
+CREATE DATABASE tpcb;
+
+CREATE TABLE tpcb.account (id INT, bid INT, balance DECIMAL(10,2),
+filler CHAR(255), PRIMARY KEY(id));
+
+CREATE TABLE tpcb.branch (bid INT, balance DECIMAL(10,2), filler VARCHAR(255),
+PRIMARY KEY(bid));
+
+CREATE TABLE tpcb.teller (tid INT, balance DECIMAL(10,2), filler VARCHAR(255),
+PRIMARY KEY(tid));
+
+CREATE TABLE tpcb.history (id MEDIUMINT NOT NULL AUTO_INCREMENT,aid INT,
+tid INT, bid INT, amount DECIMAL(10,2),
+tdate DATETIME, teller CHAR(20), uuidf LONGBLOB,
+filler CHAR(80),PRIMARY KEY (id));
+
+--- Create stored procedures & functions ---
+
+
+*** Stored Procedures Created ***
+
+USE tpcb;
+ALTER TABLE account ENGINE NDB;
+ALTER TABLE branch ENGINE NDB;
+ALTER TABLE teller ENGINE NDB;
+ALTER TABLE history ENGINE NDB;
+
+select @log_name:=log_name, @start_pos:=start_pos, @end_pos:=end_pos
+from mysql.ndb_apply_status;
+@log_name:=log_name @start_pos:=start_pos @end_pos:=end_pos
+<log_name> <start_pos> <end_pos>
+
+show binlog events in 'master-bin.000001' from <start_pos> limit 6,1;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Xid 1 <end_pos> COMMIT /* XID */
+
+** Test 3 **
+
+FLUSH LOGS;
+
+select @log_name:=log_name, @start_pos:=start_pos, @end_pos:=end_pos
+from mysql.ndb_apply_status;
+@log_name:=log_name @start_pos:=start_pos @end_pos:=end_pos
+<log_name> <start_pos> <end_pos>
+
+show binlog events in 'master-bin.000002' from <start_pos> limit 6,1;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000002 # Xid 1 <end_pos> COMMIT /* XID */
+
+** Test 4 **
+
+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;
+
+select @log_name:=log_name, @start_pos:=start_pos, @end_pos:=end_pos
+from mysql.ndb_apply_status;
+@log_name:=log_name @start_pos:=start_pos @end_pos:=end_pos
+<log_name> <start_pos> <end_pos>
+
+show binlog events in 'master-bin.000001' from <start_pos> limit 6,1;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Xid 1 <end_pos> COMMIT /* XID */
+
+*** DUMP MASTER & SLAVE FOR COMPARE ********
+DROP DATABASE tpcb;
+****** Do dumps compare ************
diff --git a/mysql-test/r/rpl_partition.result b/mysql-test/r/rpl_partition.result
new file mode 100644
index 00000000000..cdd29919c48
--- /dev/null
+++ b/mysql-test/r/rpl_partition.result
@@ -0,0 +1,195 @@
+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;
+SET GLOBAL binlog_format = 'ROW';
+SET SESSION binlog_format = 'ROW';
+select @@global.binlog_format, @@session.binlog_format;
+@@global.binlog_format ROW
+@@session.binlog_format ROW
+DROP TABLE IF EXISTS t1, t2, t3;
+Warnings:
+Level Note
+Code 1051
+Message Unknown table 't1'
+Level Note
+Code 1051
+Message Unknown table 't2'
+Level Note
+Code 1051
+Message Unknown table 't3'
+DROP PROCEDURE IF EXISTS p1;
+Warnings:
+Level Note
+Code 1305
+Message PROCEDURE p1 does not exist
+DROP PROCEDURE IF EXISTS p2;
+Warnings:
+Level Note
+Code 1305
+Message PROCEDURE p2 does not exist
+DROP PROCEDURE IF EXISTS p3;
+Warnings:
+Level Note
+Code 1305
+Message PROCEDURE p3 does not exist
+CREATE TABLE t1(id MEDIUMINT NOT NULL AUTO_INCREMENT,
+dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
+fkid MEDIUMINT, filler VARCHAR(255),
+PRIMARY KEY(id)) ENGINE='innodb';
+CREATE TABLE t2(id MEDIUMINT NOT NULL AUTO_INCREMENT,
+dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
+fkid MEDIUMINT, filler VARCHAR(255),
+PRIMARY KEY(id)) ENGINE='innodb'
+PARTITION BY KEY(id) partitions 5;
+CREATE TABLE t3(id MEDIUMINT NOT NULL AUTO_INCREMENT,
+dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
+fkid MEDIUMINT, filler VARCHAR(255),
+PRIMARY KEY(id)) ENGINE='innodb'
+PARTITION BY RANGE(id)
+SUBPARTITION BY hash(id) subpartitions 2
+(PARTITION pa1 values less than (10),
+PARTITION pa2 values less than (20),
+PARTITION pa3 values less than (30),
+PARTITION pa4 values less than (40),
+PARTITION pa5 values less than (50),
+PARTITION pa6 values less than (60),
+PARTITION pa7 values less than (70),
+PARTITION pa8 values less than (80),
+PARTITION pa9 values less than (90),
+PARTITION pa10 values less than (100),
+PARTITION pa11 values less than MAXVALUE);
+CREATE PROCEDURE p1()
+BEGIN
+DECLARE ins_count INT DEFAULT 1000;
+DECLARE del_count INT;
+DECLARE cur_user VARCHAR(255);
+DECLARE local_uuid VARCHAR(255);
+DECLARE local_time TIMESTAMP;
+SET local_time= NOW();
+SET cur_user= CURRENT_USER();
+SET local_uuid= UUID();
+WHILE ins_count > 0 DO
+INSERT INTO t1 VALUES (NULL, NOW(), USER() , UUID(),
+ins_count,'Going to test MBR for MySQL');
+SET ins_count = ins_count - 1;
+END WHILE;
+SELECT MAX(id) FROM t1 INTO del_count;
+WHILE del_count > 0 DO
+DELETE FROM t1 WHERE id = del_count;
+SET del_count = del_count - 2;
+END WHILE;
+END|
+CREATE PROCEDURE p2()
+BEGIN
+DECLARE ins_count INT DEFAULT 1000;
+DECLARE del_count INT;
+DECLARE cur_user VARCHAR(255);
+DECLARE local_uuid VARCHAR(255);
+DECLARE local_time TIMESTAMP;
+SET local_time= NOW();
+SET cur_user= CURRENT_USER();
+SET local_uuid= UUID();
+WHILE ins_count > 0 DO
+INSERT INTO t2 VALUES (NULL, NOW(), USER() , UUID(),
+ins_count,'Going to test MBR for MySQL');
+SET ins_count = ins_count - 1;
+END WHILE;
+SELECT MAX(id) FROM t2 INTO del_count;
+WHILE del_count > 0 DO
+DELETE FROM t2 WHERE id = del_count;
+SET del_count = del_count - 2;
+END WHILE;
+END|
+CREATE PROCEDURE p3()
+BEGIN
+DECLARE ins_count INT DEFAULT 1000;
+DECLARE del_count INT;
+DECLARE cur_user VARCHAR(255);
+DECLARE local_uuid VARCHAR(255);
+DECLARE local_time TIMESTAMP;
+SET local_time= NOW();
+SET cur_user = CURRENT_USER();
+SET local_uuid=UUID();
+WHILE ins_count > 0 DO
+INSERT INTO t3 VALUES (NULL, NOW(), USER(), UUID(),
+ins_count,'Going to test MBR for MySQL');
+SET ins_count = ins_count - 1;
+END WHILE;
+SELECT MAX(id) FROM t3 INTO del_count;
+WHILE del_count > 0 DO
+DELETE FROM t3 WHERE id = del_count;
+SET del_count = del_count - 2;
+END WHILE;
+END|
+CALL p1();
+SELECT count(*) as "Master regular" FROM t1;
+Master regular 500
+CALL p2();
+SELECT count(*) as "Master bykey" FROM t2;
+Master bykey 500
+CALL p3();
+SELECT count(*) as "Master byrange" FROM t3;
+Master byrange 500
+show create table t3;
+Table t3
+Create Table CREATE TABLE `t3` (
+ `id` mediumint(9) NOT NULL AUTO_INCREMENT,
+ `dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `user` char(255) DEFAULT NULL,
+ `uuidf` longblob,
+ `fkid` mediumint(9) DEFAULT NULL,
+ `filler` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (id) SUBPARTITION BY HASH (id) SUBPARTITIONS 2 (PARTITION pa1 VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION pa2 VALUES LESS THAN (20) ENGINE = MyISAM, PARTITION pa3 VALUES LESS THAN (30) ENGINE = MyISAM, PARTITION pa4 VALUES LESS THAN (40) ENGINE = MyISAM, PARTITION pa5 VALUES LESS THAN (50) ENGINE = MyISAM, PARTITION pa6 VALUES LESS THAN (60) ENGINE = MyISAM, PARTITION pa7 VALUES LESS THAN (70) ENGINE = MyISAM, PARTITION pa8 VALUES LESS THAN (80) ENGINE = MyISAM, PARTITION pa9 VALUES LESS THAN (90) ENGINE = MyISAM, PARTITION pa10 VALUES LESS THAN (100) ENGINE = MyISAM, PARTITION pa11 VALUES LESS THAN MAXVALUE ENGINE = MyISAM) */
+show slave status;
+Slave_IO_State #
+Master_Host 127.0.0.1
+Master_User root
+Master_Port MASTER_MYPORT
+Connect_Retry 1
+Master_Log_File master-bin.000001
+Read_Master_Log_Pos #
+Relay_Log_File #
+Relay_Log_Pos #
+Relay_Master_Log_File master-bin.000001
+Slave_IO_Running Yes
+Slave_SQL_Running Yes
+Replicate_Do_DB
+Replicate_Ignore_DB
+Replicate_Do_Table
+Replicate_Ignore_Table
+Replicate_Wild_Do_Table
+Replicate_Wild_Ignore_Table
+Last_Errno 0
+Last_Error
+Skip_Counter 0
+Exec_Master_Log_Pos #
+Relay_Log_Space #
+Until_Condition None
+Until_Log_File
+Until_Log_Pos 0
+Master_SSL_Allowed No
+Master_SSL_CA_File
+Master_SSL_CA_Path
+Master_SSL_Cert
+Master_SSL_Cipher
+Master_SSL_Key
+Seconds_Behind_Master #
+Master_SSL_Verify_Server_Cert No
+Last_IO_Errno #
+Last_IO_Error #
+Last_SQL_Errno 0
+Last_SQL_Error
+SELECT count(*) "Slave norm" FROM t1;
+Slave norm 500
+SELECT count(*) "Slave bykey" FROM t2;
+Slave bykey 500
+SELECT count(*) "Slave byrange" FROM t3;
+Slave byrange 500
+DROP TABLE t1, t2, t3;
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+DROP PROCEDURE IF EXISTS p3;
diff --git a/mysql-test/r/rpl_replicate_do.result b/mysql-test/r/rpl_replicate_do.result
index 2a1dc4b44af..d854a2d0f8d 100644
--- a/mysql-test/r/rpl_replicate_do.result
+++ b/mysql-test/r/rpl_replicate_do.result
@@ -87,27 +87,27 @@ Tables_in_test
t1
t2
show triggers;
-Trigger Event Table Statement Timing Created sql_mode Definer
-trg1 INSERT t1 set new.b=2 BEFORE NULL root@localhost
-trg2 INSERT t2 set new.b=2 BEFORE NULL root@localhost
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+trg1 INSERT t1 set new.b=2 BEFORE NULL root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
+trg2 INSERT t2 set new.b=2 BEFORE NULL root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
*** slave ***
show tables;
Tables_in_test
t1
show triggers;
-Trigger Event Table Statement Timing Created sql_mode Definer
-trg1 INSERT t1 set new.b=2 BEFORE NULL root@localhost
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+trg1 INSERT t1 set new.b=2 BEFORE NULL root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
*** master ***
drop trigger trg1;
drop trigger trg2;
show triggers;
-Trigger Event Table Statement Timing Created sql_mode Definer
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
*** slave ***
show tables;
Tables_in_test
t1
show triggers;
-Trigger Event Table Statement Timing Created sql_mode Definer
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
*** master ***
drop table t1;
drop table t2;
diff --git a/mysql-test/r/rpl_row_UUID.result b/mysql-test/r/rpl_row_UUID.result
index f56dc145901..02174a7ecae 100644
--- a/mysql-test/r/rpl_row_UUID.result
+++ b/mysql-test/r/rpl_row_UUID.result
@@ -24,7 +24,7 @@ end|
select fn1(0);
fn1(0)
0
-create table t2 (a int);
+create table t2 (a int) engine=myisam;
insert into t2 values(fn1(2));
SHOW CREATE TABLE test.t1;
Table Create Table
diff --git a/mysql-test/r/rpl_sp.result b/mysql-test/r/rpl_sp.result
index 208c46c5fab..0b89b6d29c7 100644
--- a/mysql-test/r/rpl_sp.result
+++ b/mysql-test/r/rpl_sp.result
@@ -17,21 +17,31 @@ insert into t1 values (b);
insert into t1 values (unix_timestamp());
end|
select * from mysql.proc where name='foo' and db='mysqltest1';
-db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment character_set_client collation_connection db_collation body_utf8
mysqltest1 foo PROCEDURE foo SQL CONTAINS_SQL NO DEFINER begin
declare b int;
set b = 8;
insert into t1 values (b);
insert into t1 values (unix_timestamp());
-end root@localhost # #
+end root@localhost # # latin1 latin1_swedish_ci latin1_swedish_ci begin
+declare b int;
+set b = 8;
+insert into t1 values (b);
+insert into t1 values (unix_timestamp());
+end
select * from mysql.proc where name='foo' and db='mysqltest1';
-db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment character_set_client collation_connection db_collation body_utf8
mysqltest1 foo PROCEDURE foo SQL CONTAINS_SQL NO DEFINER begin
declare b int;
set b = 8;
insert into t1 values (b);
insert into t1 values (unix_timestamp());
-end root@localhost # #
+end root@localhost # # latin1 latin1_swedish_ci latin1_swedish_ci begin
+declare b int;
+set b = 8;
+insert into t1 values (b);
+insert into t1 values (unix_timestamp());
+end
set timestamp=1000000000;
call foo();
select * from t1;
@@ -115,15 +125,17 @@ select * from t2;
a
20
select * from mysql.proc where name="foo4" and db='mysqltest1';
-db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment character_set_client collation_connection db_collation body_utf8
mysqltest1 foo4 PROCEDURE foo4 SQL CONTAINS_SQL YES DEFINER begin
insert into t2 values(20),(20);
-end root@localhost # #
+end root@localhost # # latin1 latin1_swedish_ci latin1_swedish_ci begin
+insert into t2 values(20),(20);
+end
drop procedure foo4;
select * from mysql.proc where name="foo4" and db='mysqltest1';
-db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment character_set_client collation_connection db_collation body_utf8
select * from mysql.proc where name="foo4" and db='mysqltest1';
-db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment character_set_client collation_connection db_collation body_utf8
drop procedure foo;
drop procedure foo2;
drop procedure foo3;
@@ -202,16 +214,22 @@ select fn3();
fn3()
0
select * from mysql.proc where db='mysqltest1';
-db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment character_set_client collation_connection db_collation body_utf8
mysqltest1 fn1 FUNCTION fn1 SQL NO_SQL NO DEFINER int(11) begin
return unix_timestamp();
-end root@localhost # #
+end root@localhost # # latin1 latin1_swedish_ci latin1_swedish_ci begin
+return unix_timestamp();
+end
mysqltest1 fn2 FUNCTION fn2 SQL NO_SQL NO DEFINER int(11) begin
return unix_timestamp();
-end zedjzlcsjhd@localhost # #
+end zedjzlcsjhd@localhost # # latin1 latin1_swedish_ci latin1_swedish_ci begin
+return unix_timestamp();
+end
mysqltest1 fn3 FUNCTION fn3 SQL READS_SQL_DATA NO DEFINER int(11) begin
return 0;
-end root@localhost # #
+end root@localhost # # latin1 latin1_swedish_ci latin1_swedish_ci begin
+return 0;
+end
select * from t1;
a
1000000000
@@ -220,16 +238,22 @@ select * from t1;
a
1000000000
select * from mysql.proc where db='mysqltest1';
-db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment character_set_client collation_connection db_collation body_utf8
mysqltest1 fn1 FUNCTION fn1 SQL NO_SQL NO DEFINER int(11) begin
return unix_timestamp();
-end root@localhost # #
+end root@localhost # # latin1 latin1_swedish_ci latin1_swedish_ci begin
+return unix_timestamp();
+end
mysqltest1 fn2 FUNCTION fn2 SQL NO_SQL NO DEFINER int(11) begin
return unix_timestamp();
-end zedjzlcsjhd@localhost # #
+end zedjzlcsjhd@localhost # # latin1 latin1_swedish_ci latin1_swedish_ci begin
+return unix_timestamp();
+end
mysqltest1 fn3 FUNCTION fn3 SQL READS_SQL_DATA NO DEFINER int(11) begin
return 0;
-end root@localhost # #
+end root@localhost # # latin1 latin1_swedish_ci latin1_swedish_ci begin
+return 0;
+end
delete from t2;
alter table t2 add unique (a);
drop function fn1;
@@ -337,26 +361,26 @@ DROP FUNCTION IF EXISTS f1;
---> Checking on master...
SHOW CREATE PROCEDURE p1;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
-SET @a = 1
+SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
SHOW CREATE FUNCTION f1;
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
f1 CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11)
-RETURN 0
+RETURN 0 latin1 latin1_swedish_ci latin1_swedish_ci
---> Synchronizing slave with master...
---> connection: master
---> Checking on slave...
SHOW CREATE PROCEDURE p1;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
-SET @a = 1
+SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
SHOW CREATE FUNCTION f1;
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
f1 CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11)
-RETURN 0
+RETURN 0 latin1 latin1_swedish_ci latin1_swedish_ci
---> connection: master
diff --git a/mysql-test/r/rpl_switch_stm_row_mixed.result b/mysql-test/r/rpl_switch_stm_row_mixed.result
index 7c796bd5449..c3f0c07b92c 100644
--- a/mysql-test/r/rpl_switch_stm_row_mixed.result
+++ b/mysql-test/r/rpl_switch_stm_row_mixed.result
@@ -457,7 +457,7 @@ master-bin.000001 # Query # # use `mysqltest1`; CREATE TABLE `t2` (
master-bin.000001 # Table_map # # table_id: # (mysqltest1.t2)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # use `mysqltest1`; CREATE TABLE `t3` (
- `1` varbinary(36) NOT NULL DEFAULT ''
+ `1` varbinary(108) NOT NULL DEFAULT ''
)
master-bin.000001 # Table_map # # table_id: # (mysqltest1.t3)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
@@ -761,7 +761,7 @@ master-bin.000001 # Query # # use `mysqltest1`; CREATE TABLE `t2` (
master-bin.000001 # Table_map # # table_id: # (mysqltest1.t2)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # use `mysqltest1`; CREATE TABLE `t3` (
- `1` varbinary(36) NOT NULL DEFAULT ''
+ `1` varbinary(108) NOT NULL DEFAULT ''
)
master-bin.000001 # Table_map # # table_id: # (mysqltest1.t3)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
diff --git a/mysql-test/r/rpl_trigger.result b/mysql-test/r/rpl_trigger.result
index 815a87eede5..b4ce3ee1d36 100644
--- a/mysql-test/r/rpl_trigger.result
+++ b/mysql-test/r/rpl_trigger.result
@@ -868,8 +868,8 @@ Tables_in_test (t_)
t1
t2
SHOW TRIGGERS;
-Trigger Event Table Statement Timing Created sql_mode Definer
-trg1 INSERT t1 INSERT INTO t2 VALUES(CURRENT_USER()) AFTER NULL
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+trg1 INSERT t1 INSERT INTO t2 VALUES(CURRENT_USER()) AFTER NULL latin1 latin1_swedish_ci latin1_swedish_ci
SELECT * FROM t1;
c
1
@@ -895,7 +895,7 @@ RESET SLAVE;
SHOW TABLES LIKE 't_';
Tables_in_test (t_)
SHOW TRIGGERS;
-Trigger Event Table Statement Timing Created sql_mode Definer
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
RESET MASTER;
START SLAVE;
diff --git a/mysql-test/r/rpl_view.result b/mysql-test/r/rpl_view.result
index 0d862a2a912..12b7b46ffed 100644
--- a/mysql-test/r/rpl_view.result
+++ b/mysql-test/r/rpl_view.result
@@ -88,8 +88,8 @@ Field Type Null Key Default Extra
a int(11) YES NULL
b decimal(32,0) YES NULL
show create table v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,sum(`t1`.`b`) AS `b` from `t1` group by `t1`.`a`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,sum(`t1`.`b`) AS `b` from `t1` group by `t1`.`a` latin1 latin1_swedish_ci
select * from v1;
a b
1 6
diff --git a/mysql-test/r/show_check.result b/mysql-test/r/show_check.result
index 66cd929ee05..9ef10865cd7 100644
--- a/mysql-test/r/show_check.result
+++ b/mysql-test/r/show_check.result
@@ -7,60 +7,157 @@ delete from mysql.db where user='mysqltest_1' || user='mysqltest_2' || user='mys
flush privileges;
create table t1 (a int not null primary key, b int not null,c int not null, key(b,c));
insert into t1 values (1,2,2),(2,2,3),(3,2,4),(4,2,4);
+-- Here we enable metadata just to check that the collation of the
+-- resultset is non-binary for string type. This should be changed
+-- after Bug#29394 is implemented.
check table t1 fast;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 42 7 Y 0 31 8
+def Op 253 3 5 Y 0 31 8
+def Msg_type 253 3 6 Y 0 31 8
+def Msg_text 253 85 27 Y 0 31 8
Table Op Msg_type Msg_text
test.t1 check status Table is already up to date
check table t1 fast;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 42 7 Y 0 31 8
+def Op 253 3 5 Y 0 31 8
+def Msg_type 253 3 6 Y 0 31 8
+def Msg_text 253 85 27 Y 0 31 8
Table Op Msg_type Msg_text
test.t1 check status Table is already up to date
check table t1 changed;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 42 7 Y 0 31 8
+def Op 253 3 5 Y 0 31 8
+def Msg_type 253 3 6 Y 0 31 8
+def Msg_text 253 85 2 Y 0 31 8
Table Op Msg_type Msg_text
test.t1 check status OK
insert into t1 values (5,5,5);
check table t1 changed;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 42 7 Y 0 31 8
+def Op 253 3 5 Y 0 31 8
+def Msg_type 253 3 6 Y 0 31 8
+def Msg_text 253 85 2 Y 0 31 8
Table Op Msg_type Msg_text
test.t1 check status OK
check table t1 medium;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 42 7 Y 0 31 8
+def Op 253 3 5 Y 0 31 8
+def Msg_type 253 3 6 Y 0 31 8
+def Msg_text 253 85 2 Y 0 31 8
Table Op Msg_type Msg_text
test.t1 check status OK
check table t1 extended;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 42 7 Y 0 31 8
+def Op 253 3 5 Y 0 31 8
+def Msg_type 253 3 6 Y 0 31 8
+def Msg_text 253 85 2 Y 0 31 8
Table Op Msg_type Msg_text
test.t1 check status OK
show index from t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def STATISTICS TABLE_NAME Table 253 64 2 N 1 0 8
+def STATISTICS NON_UNIQUE Non_unique 8 1 1 N 32769 0 63
+def STATISTICS INDEX_NAME Key_name 253 64 7 N 1 0 8
+def STATISTICS SEQ_IN_INDEX Seq_in_index 8 2 1 N 32769 0 63
+def STATISTICS COLUMN_NAME Column_name 253 64 1 N 1 0 8
+def STATISTICS COLLATION Collation 253 1 1 Y 0 0 8
+def STATISTICS CARDINALITY Cardinality 8 21 1 Y 32768 0 63
+def STATISTICS SUB_PART Sub_part 8 3 0 Y 32768 0 63
+def STATISTICS PACKED Packed 253 10 0 Y 0 0 8
+def STATISTICS NULLABLE Null 253 3 0 N 1 0 8
+def STATISTICS INDEX_TYPE Index_type 253 16 5 N 1 0 8
+def STATISTICS COMMENT Comment 253 16 0 Y 0 0 8
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
t1 0 PRIMARY 1 a A 5 NULL NULL BTREE
t1 1 b 1 b A 1 NULL NULL BTREE
t1 1 b 2 c A 5 NULL NULL BTREE
insert into t1 values (5,5,5);
ERROR 23000: Duplicate entry '5' for key 'PRIMARY'
+-- Here we enable metadata just to check that the collation of the
+-- resultset is non-binary for string type. This should be changed
+-- after Bug#29394 is implemented.
optimize table t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 42 7 Y 0 31 8
+def Op 253 3 8 Y 0 31 8
+def Msg_type 253 3 6 Y 0 31 8
+def Msg_text 253 85 2 Y 0 31 8
Table Op Msg_type Msg_text
test.t1 optimize status OK
optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status Table is already up to date
drop table t1;
+-- Here we enable metadata just to check that the collation of the
+-- resultset is non-binary for string type. This should be changed
+-- after Bug#29394 is implemented.
show variables like "wait_timeout%";
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def VARIABLES VARIABLE_NAME Variable_name 253 64 12 N 1 0 8
+def VARIABLES VARIABLE_VALUE Value 253 20480 5 Y 0 0 8
Variable_name Value
wait_timeout 28800
show variables like "WAIT_timeout%";
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def VARIABLES VARIABLE_NAME Variable_name 253 64 12 N 1 0 8
+def VARIABLES VARIABLE_VALUE Value 253 20480 5 Y 0 0 8
Variable_name Value
wait_timeout 28800
show variables like "this_doesn't_exists%";
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def VARIABLES VARIABLE_NAME Variable_name 253 64 0 N 1 0 8
+def VARIABLES VARIABLE_VALUE Value 253 20480 0 Y 0 0 8
Variable_name Value
show table status from test like "this_doesn't_exists%";
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def TABLES TABLE_NAME Name 253 64 0 N 1 0 8
+def TABLES ENGINE Engine 253 64 0 Y 0 0 8
+def TABLES VERSION Version 8 21 0 Y 32800 0 63
+def TABLES ROW_FORMAT Row_format 253 10 0 Y 0 0 8
+def TABLES TABLE_ROWS Rows 8 21 0 Y 32800 0 63
+def TABLES AVG_ROW_LENGTH Avg_row_length 8 21 0 Y 32800 0 63
+def TABLES DATA_LENGTH Data_length 8 21 0 Y 32800 0 63
+def TABLES MAX_DATA_LENGTH Max_data_length 8 21 0 Y 32800 0 63
+def TABLES INDEX_LENGTH Index_length 8 21 0 Y 32800 0 63
+def TABLES DATA_FREE Data_free 8 21 0 Y 32800 0 63
+def TABLES AUTO_INCREMENT Auto_increment 8 21 0 Y 32800 0 63
+def TABLES CREATE_TIME Create_time 12 19 0 Y 128 0 63
+def TABLES UPDATE_TIME Update_time 12 19 0 Y 128 0 63
+def TABLES CHECK_TIME Check_time 12 19 0 Y 128 0 63
+def TABLES TABLE_COLLATION Collation 253 64 0 Y 0 0 8
+def TABLES CHECKSUM Checksum 8 21 0 Y 32800 0 63
+def TABLES CREATE_OPTIONS Create_options 253 255 0 Y 0 0 8
+def TABLES TABLE_COMMENT Comment 253 80 0 N 1 0 8
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
show databases;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def SCHEMATA SCHEMA_NAME Database 253 64 18 N 1 0 8
Database
information_schema
mysql
test
show databases like "test%";
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def SCHEMATA SCHEMA_NAME Database (test%) 253 64 4 N 1 0 8
Database (test%)
test
create table t1 (f1 int not null, f2 int not null, f3 int not null, f4 int not null, primary key(f1,f2,f3,f4));
insert into t1 values (1,1,1,0),(1,1,2,0),(1,1,3,0),(1,2,1,0),(1,2,2,0),(1,2,3,0),(1,3,1,0),(1,3,2,0),(1,3,3,0),(1,1,1,1),(1,1,2,1),(1,1,3,1),(1,2,1,1),(1,2,2,1),(1,2,3,1),(1,3,1,1),(1,3,2,1),(1,3,3,1);
+-- Here we enable metadata just to check that the collation of the
+-- resultset is non-binary for string type. This should be changed
+-- after Bug#29394 is implemented.
analyze table t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 42 7 Y 0 31 8
+def Op 253 3 7 Y 0 31 8
+def Msg_type 253 3 6 Y 0 31 8
+def Msg_text 253 85 2 Y 0 31 8
Table Op Msg_type Msg_text
test.t1 analyze status OK
show index from t1;
@@ -69,7 +166,15 @@ t1 0 PRIMARY 1 f1 A 1 NULL NULL BTREE
t1 0 PRIMARY 2 f2 A 3 NULL NULL BTREE
t1 0 PRIMARY 3 f3 A 9 NULL NULL BTREE
t1 0 PRIMARY 4 f4 A 18 NULL NULL BTREE
+-- Here we enable metadata just to check that the collation of the
+-- resultset is non-binary for string type. This should be changed
+-- after Bug#29394 is implemented.
repair table t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 42 7 Y 0 31 8
+def Op 253 3 6 Y 0 31 8
+def Msg_type 253 3 6 Y 0 31 8
+def Msg_text 253 85 2 Y 0 31 8
Table Op Msg_type Msg_text
test.t1 repair status OK
show index from t1;
@@ -617,48 +722,48 @@ DROP VIEW IF EXISTS v1;
DROP PROCEDURE IF EXISTS p1;
CREATE VIEW v1 AS SELECT 1;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1` binary binary
DROP VIEW v1;
CREATE VIEW v1 AS SELECT SQL_CACHE 1;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_cache 1 AS `1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_cache 1 AS `1` binary binary
DROP VIEW v1;
CREATE VIEW v1 AS SELECT SQL_NO_CACHE 1;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache 1 AS `1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache 1 AS `1` binary binary
DROP VIEW v1;
CREATE VIEW v1 AS SELECT NOW();
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select now() AS `NOW()`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select now() AS `NOW()` binary binary
DROP VIEW v1;
CREATE VIEW v1 AS SELECT SQL_CACHE NOW();
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_cache now() AS `NOW()`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_cache now() AS `NOW()` binary binary
DROP VIEW v1;
CREATE VIEW v1 AS SELECT SQL_NO_CACHE NOW();
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache now() AS `NOW()`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache now() AS `NOW()` binary binary
DROP VIEW v1;
CREATE VIEW v1 AS SELECT SQL_CACHE SQL_NO_CACHE NOW();
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache now() AS `NOW()`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache now() AS `NOW()` binary binary
DROP VIEW v1;
CREATE VIEW v1 AS SELECT SQL_NO_CACHE SQL_CACHE NOW();
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache now() AS `NOW()`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache now() AS `NOW()` binary binary
DROP VIEW v1;
CREATE VIEW v1 AS SELECT SQL_CACHE SQL_NO_CACHE SQL_CACHE NOW();
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache now() AS `NOW()`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache now() AS `NOW()` binary binary
DROP VIEW v1;
CREATE PROCEDURE p1()
BEGIN
@@ -669,8 +774,8 @@ DROP PREPARE stmt;
END |
CALL p1();
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_cache 1 AS `1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_cache 1 AS `1` binary binary
DROP PROCEDURE p1;
DROP VIEW v1;
SHOW TABLES FROM no_such_database;
@@ -692,6 +797,357 @@ select 1 from information_schema.tables limit 1;
show status like 'slow_queries';
Variable_name Value
Slow_queries 2
+DROP DATABASE IF EXISTS mysqltest1;
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+DROP PROCEDURE IF EXISTS p1;
+DROP FUNCTION IF EXISTS f1;
+CREATE DATABASE mysqltest1;
+CREATE TABLE t1(c INT NOT NULL PRIMARY KEY);
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1;
+CREATE VIEW v1 AS SELECT 1;
+CREATE PROCEDURE p1() SELECT 1;
+CREATE FUNCTION f1() RETURNS INT RETURN 1;
+set names utf8;
+-- Here we enable metadata just to check that the collation of the
+-- resultset is non-binary for string type. This should be changed
+-- after Bug#29394 is implemented.
+----------------------------------------------------------------
+SHOW CHARACTER SET LIKE 'utf8';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def CHARACTER_SETS CHARACTER_SET_NAME Charset 253 192 4 N 1 0 33
+def CHARACTER_SETS DESCRIPTION Description 253 180 13 N 1 0 33
+def CHARACTER_SETS DEFAULT_COLLATE_NAME Default collation 253 192 15 N 1 0 33
+def CHARACTER_SETS MAXLEN Maxlen 8 3 1 N 32769 0 63
+Charset Description Default collation Maxlen
+utf8 UTF-8 Unicode utf8_general_ci 3
+----------------------------------------------------------------
+SHOW COLLATION LIKE 'latin1_bin';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def COLLATIONS COLLATION_NAME Collation 253 192 10 N 1 0 33
+def COLLATIONS CHARACTER_SET_NAME Charset 253 192 6 N 1 0 33
+def COLLATIONS ID Id 8 11 2 N 32769 0 63
+def COLLATIONS IS_DEFAULT Default 253 9 0 N 1 0 33
+def COLLATIONS IS_COMPILED Compiled 253 9 3 N 1 0 33
+def COLLATIONS SORTLEN Sortlen 8 3 1 N 32769 0 63
+Collation Charset Id Default Compiled Sortlen
+latin1_bin latin1 47 Yes 1
+----------------------------------------------------------------
+SHOW CREATE DATABASE mysqltest1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Database 253 63 10 N 1 31 33
+def Create Database 253 1023 69 N 1 31 33
+Database Create Database
+mysqltest1 CREATE DATABASE `mysqltest1` /*!40100 DEFAULT CHARACTER SET latin1 */
+----------------------------------------------------------------
+SHOW DATABASES LIKE 'mysqltest1';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def SCHEMATA SCHEMA_NAME Database (mysqltest1) 253 192 10 N 1 0 33
+Database (mysqltest1)
+mysqltest1
+----------------------------------------------------------------
+SHOW CREATE TABLE t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 63 2 N 1 31 33
+def Create Table 253 1023 102 N 1 31 33
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `c` int(11) NOT NULL,
+ PRIMARY KEY (`c`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+----------------------------------------------------------------
+SHOW INDEX FROM t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def STATISTICS TABLE_NAME Table 253 192 2 N 1 0 33
+def STATISTICS NON_UNIQUE Non_unique 8 1 1 N 32769 0 63
+def STATISTICS INDEX_NAME Key_name 253 192 7 N 1 0 33
+def STATISTICS SEQ_IN_INDEX Seq_in_index 8 2 1 N 32769 0 63
+def STATISTICS COLUMN_NAME Column_name 253 192 1 N 1 0 33
+def STATISTICS COLLATION Collation 253 3 1 Y 0 0 33
+def STATISTICS CARDINALITY Cardinality 8 21 1 Y 32768 0 63
+def STATISTICS SUB_PART Sub_part 8 3 0 Y 32768 0 63
+def STATISTICS PACKED Packed 253 30 0 Y 0 0 33
+def STATISTICS NULLABLE Null 253 9 0 N 1 0 33
+def STATISTICS INDEX_TYPE Index_type 253 48 5 N 1 0 33
+def STATISTICS COMMENT Comment 253 48 0 Y 0 0 33
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+t1 0 PRIMARY 1 c A 0 NULL NULL BTREE
+----------------------------------------------------------------
+SELECT
+TABLE_CATALOG,
+TABLE_SCHEMA,
+TABLE_NAME,
+TABLE_TYPE,
+ENGINE,
+ROW_FORMAT,
+TABLE_COLLATION,
+CREATE_OPTIONS,
+TABLE_COMMENT
+FROM INFORMATION_SCHEMA.TABLES
+WHERE table_name = 't1';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def TABLES TABLE_CATALOG TABLE_CATALOG 253 1536 0 Y 0 0 33
+def TABLES TABLE_SCHEMA TABLE_SCHEMA 253 192 4 N 1 0 33
+def TABLES TABLE_NAME TABLE_NAME 253 192 2 N 1 0 33
+def TABLES TABLE_TYPE TABLE_TYPE 253 192 10 N 1 0 33
+def TABLES ENGINE ENGINE 253 192 6 Y 0 0 33
+def TABLES ROW_FORMAT ROW_FORMAT 253 30 5 Y 0 0 33
+def TABLES TABLE_COLLATION TABLE_COLLATION 253 192 17 Y 0 0 33
+def TABLES CREATE_OPTIONS CREATE_OPTIONS 253 765 0 Y 0 0 33
+def TABLES TABLE_COMMENT TABLE_COMMENT 253 240 0 N 1 0 33
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE ROW_FORMAT TABLE_COLLATION CREATE_OPTIONS TABLE_COMMENT
+NULL test t1 BASE TABLE MyISAM Fixed latin1_swedish_ci
+----------------------------------------------------------------
+SELECT
+TABLE_CATALOG,
+TABLE_SCHEMA,
+TABLE_NAME,
+COLUMN_NAME,
+COLUMN_DEFAULT,
+IS_NULLABLE,
+DATA_TYPE,
+CHARACTER_SET_NAME,
+COLLATION_NAME,
+COLUMN_TYPE,
+COLUMN_KEY,
+EXTRA,
+PRIVILEGES,
+COLUMN_COMMENT
+FROM INFORMATION_SCHEMA.COLUMNS
+WHERE table_name = 't1';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def COLUMNS TABLE_CATALOG TABLE_CATALOG 253 1536 0 Y 0 0 33
+def COLUMNS TABLE_SCHEMA TABLE_SCHEMA 253 192 4 N 1 0 33
+def COLUMNS TABLE_NAME TABLE_NAME 253 192 2 N 1 0 33
+def COLUMNS COLUMN_NAME COLUMN_NAME 253 192 1 N 1 0 33
+def COLUMNS COLUMN_DEFAULT COLUMN_DEFAULT 252 589815 0 Y 16 0 33
+def COLUMNS IS_NULLABLE IS_NULLABLE 253 9 2 N 1 0 33
+def COLUMNS DATA_TYPE DATA_TYPE 253 192 3 N 1 0 33
+def COLUMNS CHARACTER_SET_NAME CHARACTER_SET_NAME 253 192 0 Y 0 0 33
+def COLUMNS COLLATION_NAME COLLATION_NAME 253 192 0 Y 0 0 33
+def COLUMNS COLUMN_TYPE COLUMN_TYPE 252 589815 7 N 17 0 33
+def COLUMNS COLUMN_KEY COLUMN_KEY 253 9 3 N 1 0 33
+def COLUMNS EXTRA EXTRA 253 60 0 N 1 0 33
+def COLUMNS PRIVILEGES PRIVILEGES 253 240 31 N 1 0 33
+def COLUMNS COLUMN_COMMENT COLUMN_COMMENT 253 765 0 N 1 0 33
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL test t1 c NULL NO int NULL NULL int(11) PRI select,insert,update,references
+----------------------------------------------------------------
+SHOW TABLES LIKE 't1';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def TABLE_NAMES TABLE_NAME Tables_in_test (t1) 253 192 2 N 1 0 33
+Tables_in_test (t1)
+t1
+----------------------------------------------------------------
+SHOW COLUMNS FROM t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def COLUMNS COLUMN_NAME Field 253 192 1 N 1 0 33
+def COLUMNS COLUMN_TYPE Type 252 589815 7 N 17 0 33
+def COLUMNS IS_NULLABLE Null 253 9 2 N 1 0 33
+def COLUMNS COLUMN_KEY Key 253 9 3 N 1 0 33
+def COLUMNS COLUMN_DEFAULT Default 252 589815 0 Y 16 0 33
+def COLUMNS EXTRA Extra 253 60 0 N 1 0 33
+Field Type Null Key Default Extra
+c int(11) NO PRI
+----------------------------------------------------------------
+SHOW TRIGGERS LIKE 't1';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def TRIGGERS TRIGGER_NAME Trigger 253 192 5 N 1 0 33
+def TRIGGERS EVENT_MANIPULATION Event 253 18 6 N 1 0 33
+def TRIGGERS EVENT_OBJECT_TABLE Table 253 192 2 N 1 0 33
+def TRIGGERS ACTION_STATEMENT Statement 252 589815 10 N 17 0 33
+def TRIGGERS ACTION_TIMING Timing 253 18 6 N 1 0 33
+def TRIGGERS CREATED Created 12 19 0 Y 128 0 63
+def TRIGGERS SQL_MODE sql_mode 252 589815 0 N 17 0 33
+def TRIGGERS DEFINER Definer 252 589815 14 N 17 0 33
+def TRIGGERS CHARACTER_SET_CLIENT character_set_client 253 96 6 N 1 0 33
+def TRIGGERS COLLATION_CONNECTION collation_connection 253 96 6 N 1 0 33
+def TRIGGERS DATABASE_COLLATION Database Collation 253 96 17 N 1 0 33
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+t1_bi INSERT t1 SET @a = 1 BEFORE NULL root@localhost binary binary latin1_swedish_ci
+----------------------------------------------------------------
+SELECT
+TRIGGER_CATALOG,
+TRIGGER_SCHEMA,
+TRIGGER_NAME,
+EVENT_MANIPULATION,
+EVENT_OBJECT_CATALOG,
+EVENT_OBJECT_SCHEMA,
+EVENT_OBJECT_TABLE,
+ACTION_CONDITION,
+ACTION_STATEMENT,
+ACTION_ORIENTATION,
+ACTION_TIMING,
+ACTION_REFERENCE_OLD_TABLE,
+ACTION_REFERENCE_NEW_TABLE,
+ACTION_REFERENCE_OLD_ROW,
+ACTION_REFERENCE_NEW_ROW,
+SQL_MODE,
+DEFINER
+FROM INFORMATION_SCHEMA.TRIGGERS
+WHERE trigger_name = 't1_bi';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def TRIGGERS TRIGGER_CATALOG TRIGGER_CATALOG 253 1536 0 Y 0 0 33
+def TRIGGERS TRIGGER_SCHEMA TRIGGER_SCHEMA 253 192 4 N 1 0 33
+def TRIGGERS TRIGGER_NAME TRIGGER_NAME 253 192 5 N 1 0 33
+def TRIGGERS EVENT_MANIPULATION EVENT_MANIPULATION 253 18 6 N 1 0 33
+def TRIGGERS EVENT_OBJECT_CATALOG EVENT_OBJECT_CATALOG 253 1536 0 Y 0 0 33
+def TRIGGERS EVENT_OBJECT_SCHEMA EVENT_OBJECT_SCHEMA 253 192 4 N 1 0 33
+def TRIGGERS EVENT_OBJECT_TABLE EVENT_OBJECT_TABLE 253 192 2 N 1 0 33
+def TRIGGERS ACTION_CONDITION ACTION_CONDITION 252 589815 0 Y 16 0 33
+def TRIGGERS ACTION_STATEMENT ACTION_STATEMENT 252 589815 10 N 17 0 33
+def TRIGGERS ACTION_ORIENTATION ACTION_ORIENTATION 253 27 3 N 1 0 33
+def TRIGGERS ACTION_TIMING ACTION_TIMING 253 18 6 N 1 0 33
+def TRIGGERS ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_OLD_TABLE 253 192 0 Y 0 0 33
+def TRIGGERS ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_NEW_TABLE 253 192 0 Y 0 0 33
+def TRIGGERS ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_OLD_ROW 253 9 3 N 1 0 33
+def TRIGGERS ACTION_REFERENCE_NEW_ROW ACTION_REFERENCE_NEW_ROW 253 9 3 N 1 0 33
+def TRIGGERS SQL_MODE SQL_MODE 252 589815 0 N 17 0 33
+def TRIGGERS DEFINER DEFINER 252 589815 14 N 17 0 33
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW SQL_MODE DEFINER
+NULL test t1_bi INSERT NULL test t1 NULL SET @a = 1 ROW BEFORE NULL NULL OLD NEW root@localhost
+----------------------------------------------------------------
+SHOW CREATE VIEW v1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def View 253 63 2 N 1 31 33
+def Create View 253 1023 103 N 1 31 33
+def character_set_client 253 30 6 N 1 31 33
+def collation_connection 253 30 6 N 1 31 33
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1` binary binary
+----------------------------------------------------------------
+SELECT *
+FROM INFORMATION_SCHEMA.VIEWS
+WHERE table_name = 'v1';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def VIEWS TABLE_CATALOG TABLE_CATALOG 253 1536 0 Y 0 0 33
+def VIEWS TABLE_SCHEMA TABLE_SCHEMA 253 192 4 N 1 0 33
+def VIEWS TABLE_NAME TABLE_NAME 253 192 2 N 1 0 33
+def VIEWS VIEW_DEFINITION VIEW_DEFINITION 252 589815 8 N 17 0 33
+def VIEWS CHECK_OPTION CHECK_OPTION 253 24 4 N 1 0 33
+def VIEWS IS_UPDATABLE IS_UPDATABLE 253 9 2 N 1 0 33
+def VIEWS DEFINER DEFINER 253 231 14 N 1 0 33
+def VIEWS SECURITY_TYPE SECURITY_TYPE 253 21 7 N 1 0 33
+def VIEWS CHARACTER_SET_CLIENT CHARACTER_SET_CLIENT 253 96 6 N 1 0 33
+def VIEWS COLLATION_CONNECTION COLLATION_CONNECTION 253 96 6 N 1 0 33
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
+NULL test v1 SELECT 1 NONE NO root@localhost DEFINER binary binary
+----------------------------------------------------------------
+SHOW CREATE PROCEDURE p1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Procedure 253 63 2 N 1 31 33
+def sql_mode 253 0 0 N 1 31 33
+def Create Procedure 253 1023 59 Y 0 31 33
+def character_set_client 253 30 6 N 1 31 33
+def collation_connection 253 30 6 N 1 31 33
+def Database Collation 253 30 17 N 1 31 33
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
+SELECT 1 binary binary latin1_swedish_ci
+----------------------------------------------------------------
+SELECT
+SPECIFIC_NAME,
+ROUTINE_CATALOG,
+ROUTINE_SCHEMA,
+ROUTINE_NAME,
+ROUTINE_TYPE,
+DTD_IDENTIFIER,
+ROUTINE_BODY,
+ROUTINE_DEFINITION,
+EXTERNAL_NAME,
+EXTERNAL_LANGUAGE,
+PARAMETER_STYLE,
+IS_DETERMINISTIC,
+SQL_DATA_ACCESS,
+SQL_PATH,
+SECURITY_TYPE,
+SQL_MODE,
+ROUTINE_COMMENT,
+DEFINER
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE routine_name = 'p1';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def ROUTINES SPECIFIC_NAME SPECIFIC_NAME 253 192 2 N 1 0 33
+def ROUTINES ROUTINE_CATALOG ROUTINE_CATALOG 253 1536 0 Y 0 0 33
+def ROUTINES ROUTINE_SCHEMA ROUTINE_SCHEMA 253 192 4 N 1 0 33
+def ROUTINES ROUTINE_NAME ROUTINE_NAME 253 192 2 N 1 0 33
+def ROUTINES ROUTINE_TYPE ROUTINE_TYPE 253 27 9 N 1 0 33
+def ROUTINES DTD_IDENTIFIER DTD_IDENTIFIER 253 192 0 Y 0 0 33
+def ROUTINES ROUTINE_BODY ROUTINE_BODY 253 24 3 N 1 0 33
+def ROUTINES ROUTINE_DEFINITION ROUTINE_DEFINITION 252 589815 8 Y 16 0 33
+def ROUTINES EXTERNAL_NAME EXTERNAL_NAME 253 192 0 Y 0 0 33
+def ROUTINES EXTERNAL_LANGUAGE EXTERNAL_LANGUAGE 253 192 0 Y 0 0 33
+def ROUTINES PARAMETER_STYLE PARAMETER_STYLE 253 24 3 N 1 0 33
+def ROUTINES IS_DETERMINISTIC IS_DETERMINISTIC 253 9 2 N 1 0 33
+def ROUTINES SQL_DATA_ACCESS SQL_DATA_ACCESS 253 192 12 N 1 0 33
+def ROUTINES SQL_PATH SQL_PATH 253 192 0 Y 0 0 33
+def ROUTINES SECURITY_TYPE SECURITY_TYPE 253 21 7 N 1 0 33
+def ROUTINES SQL_MODE SQL_MODE 252 589815 0 N 17 0 33
+def ROUTINES ROUTINE_COMMENT ROUTINE_COMMENT 253 192 0 N 1 0 33
+def ROUTINES DEFINER DEFINER 253 231 14 N 1 0 33
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE SQL_MODE ROUTINE_COMMENT DEFINER
+p1 NULL test p1 PROCEDURE NULL SQL SELECT 1 NULL NULL SQL NO CONTAINS SQL NULL DEFINER root@localhost
+----------------------------------------------------------------
+SHOW CREATE FUNCTION f1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Function 253 63 2 N 1 31 33
+def sql_mode 253 0 0 N 1 31 33
+def Create Function 253 1023 74 Y 0 31 33
+def character_set_client 253 30 6 N 1 31 33
+def collation_connection 253 30 6 N 1 31 33
+def Database Collation 253 30 17 N 1 31 33
+Function sql_mode Create Function character_set_client collation_connection Database Collation
+f1 CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11)
+RETURN 1 binary binary latin1_swedish_ci
+----------------------------------------------------------------
+SELECT
+SPECIFIC_NAME,
+ROUTINE_CATALOG,
+ROUTINE_SCHEMA,
+ROUTINE_NAME,
+ROUTINE_TYPE,
+DTD_IDENTIFIER,
+ROUTINE_BODY,
+ROUTINE_DEFINITION,
+EXTERNAL_NAME,
+EXTERNAL_LANGUAGE,
+PARAMETER_STYLE,
+IS_DETERMINISTIC,
+SQL_DATA_ACCESS,
+SQL_PATH,
+SECURITY_TYPE,
+SQL_MODE,
+ROUTINE_COMMENT,
+DEFINER
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE routine_name = 'f1';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def ROUTINES SPECIFIC_NAME SPECIFIC_NAME 253 192 2 N 1 0 33
+def ROUTINES ROUTINE_CATALOG ROUTINE_CATALOG 253 1536 0 Y 0 0 33
+def ROUTINES ROUTINE_SCHEMA ROUTINE_SCHEMA 253 192 4 N 1 0 33
+def ROUTINES ROUTINE_NAME ROUTINE_NAME 253 192 2 N 1 0 33
+def ROUTINES ROUTINE_TYPE ROUTINE_TYPE 253 27 8 N 1 0 33
+def ROUTINES DTD_IDENTIFIER DTD_IDENTIFIER 253 192 7 Y 0 0 33
+def ROUTINES ROUTINE_BODY ROUTINE_BODY 253 24 3 N 1 0 33
+def ROUTINES ROUTINE_DEFINITION ROUTINE_DEFINITION 252 589815 8 Y 16 0 33
+def ROUTINES EXTERNAL_NAME EXTERNAL_NAME 253 192 0 Y 0 0 33
+def ROUTINES EXTERNAL_LANGUAGE EXTERNAL_LANGUAGE 253 192 0 Y 0 0 33
+def ROUTINES PARAMETER_STYLE PARAMETER_STYLE 253 24 3 N 1 0 33
+def ROUTINES IS_DETERMINISTIC IS_DETERMINISTIC 253 9 2 N 1 0 33
+def ROUTINES SQL_DATA_ACCESS SQL_DATA_ACCESS 253 192 12 N 1 0 33
+def ROUTINES SQL_PATH SQL_PATH 253 192 0 Y 0 0 33
+def ROUTINES SECURITY_TYPE SECURITY_TYPE 253 21 7 N 1 0 33
+def ROUTINES SQL_MODE SQL_MODE 252 589815 0 N 17 0 33
+def ROUTINES ROUTINE_COMMENT ROUTINE_COMMENT 253 192 0 N 1 0 33
+def ROUTINES DEFINER DEFINER 253 231 14 N 1 0 33
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE SQL_MODE ROUTINE_COMMENT DEFINER
+f1 NULL test f1 FUNCTION int(11) SQL RETURN 1 NULL NULL SQL NO CONTAINS SQL NULL DEFINER root@localhost
+----------------------------------------------------------------
+DROP DATABASE mysqltest1;
+DROP TABLE t1;
+DROP VIEW v1;
+DROP PROCEDURE p1;
+DROP FUNCTION f1;
End of 5.0 tests.
SHOW AUTHORS;
create database mysqltest;
@@ -754,4 +1210,76 @@ drop table `été`;
set names latin1;
show columns from `#mysql50#????????`;
Got one of the listed errors
+DROP TABLE IF EXISTS t1;
+DROP PROCEDURE IF EXISTS p1;
+CREATE TABLE t1(c1 INT);
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1;
+SHOW CREATE TRIGGER t1_bi;
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+CREATE PROCEDURE p1() SHOW CREATE TRIGGER t1_bi;
+CALL p1();
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+CALL p1();
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+CALL p1();
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+CALL p1();
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+CALL p1();
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+CALL p1();
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+CALL p1();
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+CALL p1();
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+CALL p1();
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+CALL p1();
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+PREPARE stmt1 FROM 'SHOW CREATE TRIGGER t1_bi';
+EXECUTE stmt1;
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+EXECUTE stmt1;
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+EXECUTE stmt1;
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+EXECUTE stmt1;
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+EXECUTE stmt1;
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+EXECUTE stmt1;
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+EXECUTE stmt1;
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+EXECUTE stmt1;
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+EXECUTE stmt1;
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+EXECUTE stmt1;
+Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
+t1_bi CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
+DROP TABLE t1;
+DROP PROCEDURE p1;
+DEALLOCATE PREPARE stmt1;
End of 5.1 tests
diff --git a/mysql-test/r/skip_grants.result b/mysql-test/r/skip_grants.result
index 0961ffd734c..6bb8cbea2f1 100644
--- a/mysql-test/r/skip_grants.result
+++ b/mysql-test/r/skip_grants.result
@@ -35,16 +35,16 @@ SELECT 3;
CREATE DEFINER=a@'' FUNCTION f3() RETURNS INT
RETURN 3;
SHOW CREATE VIEW v3;
-View Create View
-v3 CREATE ALGORITHM=UNDEFINED DEFINER=`a`@`` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`c` AS `c` from `t1`
+View Create View character_set_client collation_connection
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`a`@`` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`c` AS `c` from `t1` latin1 latin1_swedish_ci
SHOW CREATE PROCEDURE p3;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
p3 CREATE DEFINER=`a`@`` PROCEDURE `p3`()
-SELECT 3
+SELECT 3 latin1 latin1_swedish_ci latin1_swedish_ci
SHOW CREATE FUNCTION f3;
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
f3 CREATE DEFINER=`a`@`` FUNCTION `f3`() RETURNS int(11)
-RETURN 3
+RETURN 3 latin1 latin1_swedish_ci latin1_swedish_ci
DROP TRIGGER t1_bi;
DROP TRIGGER ti_ai;
DROP TRIGGER ti_bu;
diff --git a/mysql-test/r/sp-destruct.result b/mysql-test/r/sp-destruct.result
index 4df8086c84e..ae294f05b25 100644
--- a/mysql-test/r/sp-destruct.result
+++ b/mysql-test/r/sp-destruct.result
@@ -37,26 +37,33 @@ insert into mysql.proc
(
db, name, type, specific_name, language, sql_data_access, is_deterministic,
security_type, param_list, returns, body, definer, created, modified,
-sql_mode, comment
+sql_mode, comment, character_set_client, collation_connection, db_collation,
+body_utf8
)
values
(
'test', 'bug14233_1', 'FUNCTION', 'bug14233_1', 'SQL', 'READS_SQL_DATA', 'NO',
'DEFINER', '', 'int(10)',
'select count(*) from mysql.user',
-'root@localhost', NOW() , '0000-00-00 00:00:00', '', ''
+'root@localhost', NOW() , '0000-00-00 00:00:00', '', '',
+'', '', '',
+'select count(*) from mysql.user'
),
(
'test', 'bug14233_2', 'FUNCTION', 'bug14233_2', 'SQL', 'READS_SQL_DATA', 'NO',
'DEFINER', '', 'int(10)',
'begin declare x int; select count(*) into x from mysql.user; end',
-'root@localhost', NOW() , '0000-00-00 00:00:00', '', ''
+'root@localhost', NOW() , '0000-00-00 00:00:00', '', '',
+'', '', '',
+'begin declare x int; select count(*) into x from mysql.user; end'
),
(
'test', 'bug14233_3', 'PROCEDURE', 'bug14233_3', 'SQL', 'READS_SQL_DATA','NO',
'DEFINER', '', '',
'alksj wpsj sa ^#!@ ',
-'root@localhost', NOW() , '0000-00-00 00:00:00', '', ''
+'root@localhost', NOW() , '0000-00-00 00:00:00', '', '',
+'', '', '',
+'alksj wpsj sa ^#!@ '
);
select bug14233_1();
ERROR HY000: Failed to load routine test.bug14233_1. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6)
@@ -78,6 +85,6 @@ drop function bug14233_1;
drop function bug14233_2;
drop procedure bug14233_3;
show procedure status;
-Db Name Type Definer Modified Created Security_type Comment
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
show function status;
-Db Name Type Definer Modified Created Security_type Comment
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
diff --git a/mysql-test/r/sp-dynamic.result b/mysql-test/r/sp-dynamic.result
index f1c7e6076e5..34b76a9424f 100644
--- a/mysql-test/r/sp-dynamic.result
+++ b/mysql-test/r/sp-dynamic.result
@@ -87,6 +87,10 @@ prepare stmt from "create table t1 (a int)";
execute stmt;
insert into t1 (a) values (1);
select * from t1;
+prepare stmt_alter from "alter table t1 add (b int)";
+execute stmt_alter;
+insert into t1 (a,b) values (2,1);
+deallocate prepare stmt_alter;
deallocate prepare stmt;
deallocate prepare stmt_drop;
end|
@@ -245,6 +249,9 @@ a
1
drop procedure p1|
drop table if exists t1|
+drop table if exists t2|
+Warnings:
+Note 1051 Unknown table 't2'
create table t1 (id integer primary key auto_increment,
stmt_text char(35), status varchar(20))|
insert into t1 (stmt_text) values
@@ -255,7 +262,10 @@ insert into t1 (stmt_text) values
("help help"), ("show databases"), ("show tables"),
("show table status"), ("show open tables"), ("show storage engines"),
("insert into t1 (id) values (1)"), ("update t1 set status=''"),
-("delete from t1"), ("truncate t1"), ("call p1()"), ("foo bar")|
+("delete from t1"), ("truncate t1"), ("call p1()"), ("foo bar"),
+("create view v1 as select 1"), ("alter view v1 as select 2"),
+("drop view v1"),("create table t2 (a int)"),("alter table t2 add (b int)"),
+("drop table t2")|
create procedure p1()
begin
declare v_stmt_text varchar(255);
@@ -305,6 +315,12 @@ id stmt_text status
20 truncate t1 supported
21 call p1() supported
22 foo bar syntax error
+23 create view v1 as select 1 supported
+24 alter view v1 as select 2 not supported
+25 drop view v1 supported
+26 create table t2 (a int) supported
+27 alter table t2 add (b int) supported
+28 drop table t2 supported
drop procedure p1|
drop table t1|
prepare stmt from 'select 1'|
diff --git a/mysql-test/r/sp-error.result b/mysql-test/r/sp-error.result
index 16f39e39a46..675a59f1fb7 100644
--- a/mysql-test/r/sp-error.result
+++ b/mysql-test/r/sp-error.result
@@ -682,8 +682,8 @@ create procedure bug17015_012345678901234567890123456789012345678901234567890123
begin
end|
show procedure status like 'bug17015%'|
-Db Name Type Definer Modified Created Security_type Comment
-test bug17015_0123456789012345678901234567890123456789012345678901234 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+test bug17015_0123456789012345678901234567890123456789012345678901234 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
drop procedure bug17015_0123456789012345678901234567890123456789012345678901234|
drop procedure if exists bug10969|
create procedure bug10969()
@@ -982,9 +982,9 @@ ERROR HY000: Explicit or implicit commit is not allowed in stored function or tr
CREATE FUNCTION bug_13627_f() returns int BEGIN create view v1 as select 1; return 1; END |
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN alter view v1 as select 1; END |
-ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+ERROR 0A000: ALTER VIEW is not allowed in stored procedures
CREATE FUNCTION bug_13627_f() returns int BEGIN alter view v1 as select 1; return 1; END |
-ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+ERROR 0A000: ALTER VIEW is not allowed in stored procedures
CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN drop view v1; END |
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
CREATE FUNCTION bug_13627_f() returns int BEGIN drop view v1; return 1; END |
@@ -1087,8 +1087,8 @@ create procedure p2() select version();
ERROR 3D000: No database selected
use mysqltest2;
show procedure status;
-Db Name Type Definer Modified Created Security_type Comment
-mysqltest2 p1 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+mysqltest2 p1 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
drop database mysqltest2;
use test;
DROP FUNCTION IF EXISTS bug13012|
@@ -1177,8 +1177,8 @@ call ` bug15658`();
1
1
show procedure status;
-Db Name Type Definer Modified Created Security_type Comment
-test bug15658 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+test bug15658 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
drop procedure ` bug15658`;
drop function if exists bug14270;
drop table if exists t1;
diff --git a/mysql-test/r/sp-security.result b/mysql-test/r/sp-security.result
index 7315ef40083..1a1645ca971 100644
--- a/mysql-test/r/sp-security.result
+++ b/mysql-test/r/sp-security.result
@@ -12,8 +12,8 @@ insert into t1 values('test', 0);
create procedure stamp(i int)
insert into db1_secret.t1 values (user(), i);
show procedure status like 'stamp';
-Db Name Type Definer Modified Created Security_type Comment
-db1_secret stamp PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+db1_secret stamp PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
create function db() returns varchar(64)
begin
declare v varchar(64);
@@ -21,8 +21,8 @@ select u into v from t1 limit 1;
return v;
end|
show function status like 'db';
-Db Name Type Definer Modified Created Security_type Comment
-db1_secret db FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+db1_secret db FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
call stamp(1);
select * from t1;
u i
@@ -71,12 +71,12 @@ user1@localhost 2
anon@localhost 3
alter procedure stamp sql security invoker;
show procedure status like 'stamp';
-Db Name Type Definer Modified Created Security_type Comment
-db1_secret stamp PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 INVOKER
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+db1_secret stamp PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 INVOKER latin1 latin1_swedish_ci latin1_swedish_ci
alter function db sql security invoker;
show function status like 'db';
-Db Name Type Definer Modified Created Security_type Comment
-db1_secret db FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 INVOKER
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+db1_secret db FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 INVOKER latin1 latin1_swedish_ci latin1_swedish_ci
call stamp(4);
select * from t1;
u i
@@ -365,21 +365,21 @@ Note 1449 There is no 'a @ b @ c'@'localhost' registered
---> connection: con1root
use mysqltest;
SHOW CREATE PROCEDURE wl2897_p1;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
wl2897_p1 CREATE DEFINER=`mysqltest_2`@`localhost` PROCEDURE `wl2897_p1`()
-SELECT 1
+SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci
SHOW CREATE PROCEDURE wl2897_p3;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
wl2897_p3 CREATE DEFINER=`a @ b @ c`@`localhost` PROCEDURE `wl2897_p3`()
-SELECT 3
+SELECT 3 latin1 latin1_swedish_ci latin1_swedish_ci
SHOW CREATE FUNCTION wl2897_f1;
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
wl2897_f1 CREATE DEFINER=`mysqltest_2`@`localhost` FUNCTION `wl2897_f1`() RETURNS int(11)
-RETURN 1
+RETURN 1 latin1 latin1_swedish_ci latin1_swedish_ci
SHOW CREATE FUNCTION wl2897_f3;
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
wl2897_f3 CREATE DEFINER=`a @ b @ c`@`localhost` FUNCTION `wl2897_f3`() RETURNS int(11)
-RETURN 3
+RETURN 3 latin1 latin1_swedish_ci latin1_swedish_ci
DROP USER mysqltest_1@localhost;
DROP USER mysqltest_2@localhost;
DROP DATABASE mysqltest;
@@ -443,14 +443,14 @@ SET a=1;
SELECT a;
END //
SHOW CREATE PROCEDURE test.sp19857;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
sp19857 CREATE DEFINER=`user19857`@`localhost` PROCEDURE `sp19857`()
DETERMINISTIC
BEGIN
DECLARE a INT;
SET a=1;
SELECT a;
-END
+END latin1 latin1_swedish_ci latin1_swedish_ci
DROP PROCEDURE IF EXISTS test.sp19857;
---> connection: root
diff --git a/mysql-test/r/sp.result b/mysql-test/r/sp.result
index 98d73f7536c..b060bfb081a 100644
--- a/mysql-test/r/sp.result
+++ b/mysql-test/r/sp.result
@@ -787,11 +787,11 @@ sql security definer
comment 'Characteristics procedure test'
insert into t1 values ("chistics", 1)|
show create procedure chistics|
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
chistics CREATE DEFINER=`root`@`localhost` PROCEDURE `chistics`()
MODIFIES SQL DATA
COMMENT 'Characteristics procedure test'
-insert into t1 values ("chistics", 1)
+insert into t1 values ("chistics", 1) latin1 latin1_swedish_ci latin1_swedish_ci
call chistics()|
select * from t1|
id data
@@ -799,12 +799,12 @@ chistics 1
delete from t1|
alter procedure chistics sql security invoker|
show create procedure chistics|
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
chistics CREATE DEFINER=`root`@`localhost` PROCEDURE `chistics`()
MODIFIES SQL DATA
SQL SECURITY INVOKER
COMMENT 'Characteristics procedure test'
-insert into t1 values ("chistics", 1)
+insert into t1 values ("chistics", 1) latin1 latin1_swedish_ci latin1_swedish_ci
drop procedure chistics|
drop function if exists chistics|
create function chistics() returns int
@@ -814,12 +814,12 @@ sql security invoker
comment 'Characteristics procedure test'
return 42|
show create function chistics|
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
chistics CREATE DEFINER=`root`@`localhost` FUNCTION `chistics`() RETURNS int(11)
DETERMINISTIC
SQL SECURITY INVOKER
COMMENT 'Characteristics procedure test'
-return 42
+return 42 latin1 latin1_swedish_ci latin1_swedish_ci
select chistics()|
chistics()
42
@@ -827,13 +827,13 @@ alter function chistics
no sql
comment 'Characteristics function test'|
show create function chistics|
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
chistics CREATE DEFINER=`root`@`localhost` FUNCTION `chistics`() RETURNS int(11)
NO SQL
DETERMINISTIC
SQL SECURITY INVOKER
COMMENT 'Characteristics function test'
-return 42
+return 42 latin1 latin1_swedish_ci latin1_swedish_ci
drop function chistics|
insert into t1 values ("foo", 1), ("bar", 2), ("zip", 3)|
set @@sql_mode = 'ANSI'|
@@ -1223,12 +1223,12 @@ n f
20 2432902008176640000
drop table t3|
show function status like '%f%'|
-Db Name Type Definer Modified Created Security_type Comment
-test fac FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+test fac FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
drop procedure ifac|
drop function fac|
show function status like '%f%'|
-Db Name Type Definer Modified Created Security_type Comment
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
drop table if exists t3|
create table t3 (
i int unsigned not null primary key,
@@ -1290,7 +1290,7 @@ end;
end while;
end|
show create procedure opp|
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
opp CREATE DEFINER=`root`@`localhost` PROCEDURE `opp`(n bigint unsigned, out pp bool)
begin
declare r double;
@@ -1316,11 +1316,11 @@ set s = s+1;
end;
end if;
end loop;
-end
+end latin1 latin1_swedish_ci latin1_swedish_ci
show procedure status like '%p%'|
-Db Name Type Definer Modified Created Security_type Comment
-test ip PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
-test opp PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+test ip PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
+test opp PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
call ip(200)|
select * from t3 where i=45 or i=100 or i=199|
i p
@@ -1331,7 +1331,7 @@ drop table t3|
drop procedure opp|
drop procedure ip|
show procedure status like '%p%'|
-Db Name Type Definer Modified Created Security_type Comment
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
drop table if exists t3|
create table t3 ( f bigint unsigned not null )|
drop procedure if exists fib|
@@ -1383,19 +1383,19 @@ create procedure bar(x char(16), y int)
comment "111111111111" sql security invoker
insert into test.t1 values (x, y)|
show procedure status like 'bar'|
-Db Name Type Definer Modified Created Security_type Comment
-test bar PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 INVOKER 111111111111
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+test bar PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 INVOKER 111111111111 latin1 latin1_swedish_ci latin1_swedish_ci
alter procedure bar comment "2222222222" sql security definer|
alter procedure bar comment "3333333333"|
alter procedure bar|
show create procedure bar|
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
bar CREATE DEFINER=`root`@`localhost` PROCEDURE `bar`(x char(16), y int)
COMMENT '3333333333'
-insert into test.t1 values (x, y)
+insert into test.t1 values (x, y) latin1 latin1_swedish_ci latin1_swedish_ci
show procedure status like 'bar'|
-Db Name Type Definer Modified Created Security_type Comment
-test bar PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER 3333333333
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+test bar PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER 3333333333 latin1 latin1_swedish_ci latin1_swedish_ci
drop procedure bar|
drop procedure if exists p1|
create procedure p1 ()
@@ -1960,24 +1960,24 @@ show create function bug2267_4;
end|
create function bug2267_4() returns int return 100|
call bug2267_1()|
-Db Name Type Definer Modified Created Security_type Comment
-test bug2267_1 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
-test bug2267_2 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
-test bug2267_3 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
-test bug2267_4 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+test bug2267_1 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
+test bug2267_2 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
+test bug2267_3 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
+test bug2267_4 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
call bug2267_2()|
-Db Name Type Definer Modified Created Security_type Comment
-test bug2267_4 FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
+test bug2267_4 FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
call bug2267_3()|
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
bug2267_1 CREATE DEFINER=`root`@`localhost` PROCEDURE `bug2267_1`()
begin
show procedure status;
-end
+end latin1 latin1_swedish_ci latin1_swedish_ci
call bug2267_4()|
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
bug2267_4 CREATE DEFINER=`root`@`localhost` FUNCTION `bug2267_4`() RETURNS int(11)
-return 100
+return 100 latin1 latin1_swedish_ci latin1_swedish_ci
drop procedure bug2267_1|
drop procedure bug2267_2|
drop procedure bug2267_3|
@@ -2308,22 +2308,22 @@ create function bug2564_4(x int, y int) returns int
return x || y$
set @@sql_mode = ''|
show create procedure bug2564_1|
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
bug2564_1 CREATE DEFINER=`root`@`localhost` PROCEDURE `bug2564_1`()
COMMENT 'Joe''s procedure'
-insert into `t1` values ("foo", 1)
+insert into `t1` values ("foo", 1) latin1 latin1_swedish_ci latin1_swedish_ci
show create procedure bug2564_2|
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
bug2564_2 ANSI_QUOTES CREATE DEFINER="root"@"localhost" PROCEDURE "bug2564_2"()
-insert into "t1" values ('foo', 1)
+insert into "t1" values ('foo', 1) latin1 latin1_swedish_ci latin1_swedish_ci
show create function bug2564_3|
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
bug2564_3 CREATE DEFINER=`root`@`localhost` FUNCTION `bug2564_3`(x int, y int) RETURNS int(11)
-return x || y
+return x || y latin1 latin1_swedish_ci latin1_swedish_ci
show create function bug2564_4|
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
bug2564_4 REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI CREATE DEFINER="root"@"localhost" FUNCTION "bug2564_4"(x int, y int) RETURNS int(11)
-return x || y
+return x || y latin1 latin1_swedish_ci latin1_swedish_ci
drop procedure bug2564_1|
drop procedure bug2564_2|
drop function bug2564_3|
@@ -3999,11 +3999,11 @@ main_loop: begin
return 42;
end */;;
show create function bug14723;;
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
bug14723 CREATE DEFINER=`root`@`localhost` FUNCTION `bug14723`() RETURNS bigint(20)
main_loop: begin
return 42;
-end
+end latin1 latin1_swedish_ci latin1_swedish_ci
select bug14723();;
bug14723()
42
@@ -4012,11 +4012,11 @@ main_loop: begin
select 42;
end */;;
show create procedure bug14723;;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
bug14723 CREATE DEFINER=`root`@`localhost` PROCEDURE `bug14723`()
main_loop: begin
select 42;
-end
+end latin1 latin1_swedish_ci latin1_swedish_ci
call bug14723();;
42
42
@@ -5071,21 +5071,21 @@ RETURN ""|
CREATE FUNCTION mysqltest2.bug16211_f4() RETURNS CHAR(10) CHARSET koi8r
RETURN ""|
SHOW CREATE FUNCTION bug16211_f1|
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
bug16211_f1 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f1`() RETURNS char(10) CHARSET utf8
-RETURN ""
+RETURN "" latin1 latin1_swedish_ci utf8_general_ci
SHOW CREATE FUNCTION bug16211_f2|
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
bug16211_f2 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f2`() RETURNS char(10) CHARSET koi8r
-RETURN ""
+RETURN "" latin1 latin1_swedish_ci utf8_general_ci
SHOW CREATE FUNCTION mysqltest2.bug16211_f3|
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
bug16211_f3 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f3`() RETURNS char(10) CHARSET utf8
-RETURN ""
+RETURN "" latin1 latin1_swedish_ci utf8_general_ci
SHOW CREATE FUNCTION mysqltest2.bug16211_f4|
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
bug16211_f4 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f4`() RETURNS char(10) CHARSET koi8r
-RETURN ""
+RETURN "" latin1 latin1_swedish_ci utf8_general_ci
SELECT dtd_identifier
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA = "mysqltest1" AND ROUTINE_NAME = "bug16211_f1"|
@@ -5121,21 +5121,21 @@ koi8r
ALTER DATABASE mysqltest1 CHARACTER SET cp1251|
ALTER DATABASE mysqltest2 CHARACTER SET cp1251|
SHOW CREATE FUNCTION bug16211_f1|
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
bug16211_f1 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f1`() RETURNS char(10) CHARSET utf8
-RETURN ""
+RETURN "" latin1 latin1_swedish_ci utf8_general_ci
SHOW CREATE FUNCTION bug16211_f2|
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
bug16211_f2 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f2`() RETURNS char(10) CHARSET koi8r
-RETURN ""
+RETURN "" latin1 latin1_swedish_ci utf8_general_ci
SHOW CREATE FUNCTION mysqltest2.bug16211_f3|
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
bug16211_f3 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f3`() RETURNS char(10) CHARSET utf8
-RETURN ""
+RETURN "" latin1 latin1_swedish_ci utf8_general_ci
SHOW CREATE FUNCTION mysqltest2.bug16211_f4|
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
bug16211_f4 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f4`() RETURNS char(10) CHARSET koi8r
-RETURN ""
+RETURN "" latin1 latin1_swedish_ci utf8_general_ci
SELECT dtd_identifier
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA = "mysqltest1" AND ROUTINE_NAME = "bug16211_f1"|
@@ -5380,9 +5380,9 @@ ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghi
drop procedure if exists bug21416|
create procedure bug21416() show create procedure bug21416|
call bug21416()|
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
bug21416 CREATE DEFINER=`root`@`localhost` PROCEDURE `bug21416`()
-show create procedure bug21416
+show create procedure bug21416 latin1 latin1_swedish_ci latin1_swedish_ci
drop procedure bug21416|
DROP PROCEDURE IF EXISTS bug21414|
CREATE PROCEDURE bug21414() SELECT 1|
@@ -5395,7 +5395,7 @@ DROP PROCEDURE bug21414|
set names utf8|
drop database if exists това_е_дълго_име_за_база_данни_нали|
create database това_е_дълго_име_за_база_данни_нали|
-INSERT INTO mysql.proc VALUES ('това_е_дълго_име_за_база_данни_нали','това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго','PROCEDURE','това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго','SQL','CONTAINS_SQL','NO','DEFINER','','','bad_body','root@localhost',now(), now(),'','')|
+INSERT INTO mysql.proc VALUES ('това_е_дълго_име_за_база_данни_нали','това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго','PROCEDURE','това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго','SQL','CONTAINS_SQL','NO','DEFINER','','','bad_body','root@localhost',now(), now(),'','', 'utf8', 'utf8_general_ci', 'utf8_general_ci', 'n/a')|
call това_е_дълго_име_за_база_данни_нали.това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго()|
ERROR HY000: Failed to load routine това_е_дълго_име_за_база_данни_нали.това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6)
drop database това_е_дълго_име_за_база_данни_нали|
@@ -6240,9 +6240,9 @@ DROP FUNCTION bug5274_f2|
drop procedure if exists proc_21513|
create procedure proc_21513()`my_label`:BEGIN END|
show create procedure proc_21513|
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
proc_21513 CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_21513`()
-`my_label`:BEGIN END
+`my_label`:BEGIN END utf8 utf8_general_ci latin1_swedish_ci
drop procedure proc_21513|
End of 5.0 tests.
drop table t1,t2;
@@ -6276,8 +6276,8 @@ INSERT INTO t1 VALUES (1),(2);
CREATE FUNCTION metered(a INT) RETURNS INT RETURN 12;
CREATE VIEW v1 AS SELECT test.metered(a) as metered FROM t1;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`metered`(`t1`.`a`) AS `metered` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`metered`(`t1`.`a`) AS `metered` from `t1` utf8 utf8_general_ci
DROP VIEW v1;
DROP FUNCTION metered;
DROP TABLE t1;
@@ -6314,7 +6314,7 @@ select 1 /*!,2*/ /*!00000,3*/ /*!99999,4*/ ;
end
$$
show create procedure proc_25411_a;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
proc_25411_a CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_25411_a`()
begin
/* real comment */
@@ -6323,7 +6323,7 @@ select 1;
select 3;
select 4;
-end
+end utf8 utf8_general_ci latin1_swedish_ci
call proc_25411_a();
1
1
@@ -6334,7 +6334,7 @@ call proc_25411_a();
4
4
show create procedure proc_25411_b;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
proc_25411_b CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_25411_b`(
/* real comment */
p1 int,
@@ -6343,7 +6343,7 @@ proc_25411_b CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_25411_b`(
)
begin
select p1, p2;
-end
+end utf8 utf8_general_ci latin1_swedish_ci
select name, param_list, body from mysql.proc where name like "%25411%";
name param_list body
proc_25411_a begin
@@ -6373,7 +6373,7 @@ call proc_25411_b(10, 20);
p1 p2
10 20
show create procedure proc_25411_c;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
proc_25411_c CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_25411_c`()
begin
select 1,2,3;
@@ -6381,7 +6381,7 @@ select 1 ,2 ,3;
select 1,2 ,3 ;
select 1 ,2 ,3 ;
select 1 ,2 ,3 ;
-end
+end utf8 utf8_general_ci latin1_swedish_ci
call proc_25411_c();
1 2 3
1 2 3
@@ -6400,9 +6400,9 @@ drop procedure if exists proc_26302;
create procedure proc_26302()
select 1 /* testing */;
show create procedure proc_26302;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
proc_26302 CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_26302`()
-select 1 /* testing */
+select 1 /* testing */ utf8 utf8_general_ci latin1_swedish_ci
select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES
where ROUTINE_NAME = "proc_26302";
ROUTINE_NAME ROUTINE_DEFINITION
diff --git a/mysql-test/r/sql_mode.result b/mysql-test/r/sql_mode.result
index 9998a51fdc8..2b34ff8c021 100644
--- a/mysql-test/r/sql_mode.result
+++ b/mysql-test/r/sql_mode.result
@@ -426,37 +426,37 @@ a\b a\'b a"\b a"\'b
SET @@SQL_MODE='';
create function `foo` () returns int return 5;
show create function `foo`;
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
foo CREATE DEFINER=`root`@`localhost` FUNCTION `foo`() RETURNS int(11)
-return 5
+return 5 latin1 latin1_swedish_ci latin1_swedish_ci
SET @@SQL_MODE='ANSI_QUOTES';
show create function `foo`;
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
foo CREATE DEFINER=`root`@`localhost` FUNCTION `foo`() RETURNS int(11)
-return 5
+return 5 latin1 latin1_swedish_ci latin1_swedish_ci
drop function `foo`;
create function `foo` () returns int return 5;
show create function `foo`;
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
foo ANSI_QUOTES CREATE DEFINER="root"@"localhost" FUNCTION "foo"() RETURNS int(11)
-return 5
+return 5 latin1 latin1_swedish_ci latin1_swedish_ci
SET @@SQL_MODE='';
show create function `foo`;
-Function sql_mode Create Function
+Function sql_mode Create Function character_set_client collation_connection Database Collation
foo ANSI_QUOTES CREATE DEFINER="root"@"localhost" FUNCTION "foo"() RETURNS int(11)
-return 5
+return 5 latin1 latin1_swedish_ci latin1_swedish_ci
drop function `foo`;
SET @@SQL_MODE='';
create table t1 (a int);
create table t2 (a int);
create view v1 as select a from t1;
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` latin1 latin1_swedish_ci
SET @@SQL_MODE='ANSI_QUOTES';
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER="root"@"localhost" SQL SECURITY DEFINER VIEW "v1" AS select "t1"."a" AS "a" from "t1"
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER="root"@"localhost" SQL SECURITY DEFINER VIEW "v1" AS select "t1"."a" AS "a" from "t1" latin1 latin1_swedish_ci
create view v2 as select a from t2 where a in (select a from v1);
drop view v2, v1;
drop table t1, t2;
diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result
index 92cd58f2ba3..40b9e489577 100644
--- a/mysql-test/r/subselect.result
+++ b/mysql-test/r/subselect.result
@@ -4106,6 +4106,39 @@ d1
1
1
DROP TABLE t1,t2;
+CREATE TABLE t1 (a INTEGER, b INTEGER);
+CREATE TABLE t2 (x INTEGER);
+INSERT INTO t1 VALUES (1,11), (2,22), (2,22);
+INSERT INTO t2 VALUES (1), (2);
+SELECT a, COUNT(b), (SELECT COUNT(b) FROM t2) FROM t1 GROUP BY a;
+ERROR 21000: Subquery returns more than 1 row
+SELECT a, COUNT(b), (SELECT COUNT(b)+0 FROM t2) FROM t1 GROUP BY a;
+ERROR 21000: Subquery returns more than 1 row
+SELECT (SELECT SUM(t1.a)/AVG(t2.x) FROM t2) FROM t1;
+(SELECT SUM(t1.a)/AVG(t2.x) FROM t2)
+3.3333
+DROP TABLE t1,t2;
+CREATE TABLE t1 (a INT, b INT);
+INSERT INTO t1 VALUES (1, 2), (1,3), (1,4), (2,1), (2,2);
+SELECT a1.a, COUNT(*) FROM t1 a1 WHERE a1.a = 1
+AND EXISTS( SELECT a2.a FROM t1 a2 WHERE a2.a = a1.a)
+GROUP BY a1.a;
+a COUNT(*)
+1 3
+DROP TABLE t1;
+CREATE TABLE t1 (a INT);
+CREATE TABLE t2 (a INT);
+INSERT INTO t1 VALUES (1),(2);
+INSERT INTO t2 VALUES (1),(2);
+SELECT (SELECT SUM(t1.a) FROM t2 WHERE a=0) FROM t1;
+(SELECT SUM(t1.a) FROM t2 WHERE a=0)
+NULL
+SELECT (SELECT SUM(t1.a) FROM t2 WHERE a!=0) FROM t1;
+ERROR 21000: Subquery returns more than 1 row
+SELECT (SELECT SUM(t1.a) FROM t2 WHERE a=1) FROM t1;
+(SELECT SUM(t1.a) FROM t2 WHERE a=1)
+3
+DROP TABLE t1,t2;
End of 5.0 tests.
CREATE TABLE t1 (a int, b int);
INSERT INTO t1 VALUES (2,22),(1,11),(2,22);
diff --git a/mysql-test/r/system_mysql_db.result b/mysql-test/r/system_mysql_db.result
index 5acbace480a..7696afdf06d 100644
--- a/mysql-test/r/system_mysql_db.result
+++ b/mysql-test/r/system_mysql_db.result
@@ -203,6 +203,10 @@ proc CREATE TABLE `proc` (
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') NOT NULL DEFAULT '',
`comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `body_utf8` longblob,
PRIMARY KEY (`db`,`name`,`type`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Stored Procedures'
show create table event;
@@ -226,6 +230,10 @@ event CREATE TABLE `event` (
`comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
`originator` int(10) NOT NULL,
`time_zone` char(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM',
+ `character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `body_utf8` longblob,
PRIMARY KEY (`db`,`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Events'
show create table general_log;
diff --git a/mysql-test/r/temp_table.result b/mysql-test/r/temp_table.result
index 9cb4a6b2427..46724de4281 100644
--- a/mysql-test/r/temp_table.result
+++ b/mysql-test/r/temp_table.result
@@ -111,8 +111,8 @@ v1 CREATE TEMPORARY TABLE `v1` (
`A` varchar(19) NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select _latin1'This is view' AS `A`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select _latin1'This is view' AS `A` latin1 latin1_swedish_ci
drop view v1;
select * from v1;
A
diff --git a/mysql-test/r/trigger-compat.result b/mysql-test/r/trigger-compat.result
index 068bf6c6968..1609707fb09 100644
--- a/mysql-test/r/trigger-compat.result
+++ b/mysql-test/r/trigger-compat.result
@@ -32,9 +32,9 @@ Warnings:
Warning 1454 No definer attribute for trigger 'mysqltest_db1'.'wl2818_trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger.
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name;
-TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER
-NULL mysqltest_db1 wl2818_trg1 INSERT NULL mysqltest_db1 t1 0 NULL INSERT INTO t2 VALUES(CURRENT_USER()) ROW BEFORE NULL NULL OLD NEW NULL
-NULL mysqltest_db1 wl2818_trg2 INSERT NULL mysqltest_db1 t1 0 NULL INSERT INTO t2 VALUES(CURRENT_USER()) ROW AFTER NULL NULL OLD NEW NULL mysqltest_dfn@localhost
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest_db1 wl2818_trg1 INSERT NULL mysqltest_db1 t1 0 NULL INSERT INTO t2 VALUES(CURRENT_USER()) ROW BEFORE NULL NULL OLD NEW NULL latin1 latin1_swedish_ci latin1_swedish_ci
+NULL mysqltest_db1 wl2818_trg2 INSERT NULL mysqltest_db1 t1 0 NULL INSERT INTO t2 VALUES(CURRENT_USER()) ROW AFTER NULL NULL OLD NEW NULL mysqltest_dfn@localhost latin1 latin1_swedish_ci latin1_swedish_ci
DROP TRIGGER wl2818_trg1;
Warnings:
Warning 1454 No definer attribute for trigger 'mysqltest_db1'.'wl2818_trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger.
diff --git a/mysql-test/r/trigger-grant.result b/mysql-test/r/trigger-grant.result
index 49c36513fbc..14b8c98f2fa 100644
--- a/mysql-test/r/trigger-grant.result
+++ b/mysql-test/r/trigger-grant.result
@@ -137,9 +137,9 @@ Note 1449 There is no 'mysqltest_nonexs'@'localhost' registered
INSERT INTO t1 VALUES(6);
ERROR HY000: There is no 'mysqltest_nonexs'@'localhost' registered
SHOW TRIGGERS;
-Trigger Event Table Statement Timing Created sql_mode Definer
-trg1 INSERT t1 SET @new_sum = 0 BEFORE NULL mysqltest_inv@localhost
-trg2 INSERT t1 SET @new_sum = 0 AFTER NULL mysqltest_nonexs@localhost
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+trg1 INSERT t1 SET @new_sum = 0 BEFORE NULL mysqltest_inv@localhost latin1 latin1_swedish_ci latin1_swedish_ci
+trg2 INSERT t1 SET @new_sum = 0 AFTER NULL mysqltest_nonexs@localhost latin1 latin1_swedish_ci latin1_swedish_ci
DROP TRIGGER trg1;
DROP TRIGGER trg2;
CREATE TRIGGER trg1 BEFORE INSERT ON t1
@@ -169,12 +169,12 @@ Warnings:
Warning 1454 No definer attribute for trigger 'mysqltest_db1'.'trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger.
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name;
-TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER
-NULL mysqltest_db1 trg1 INSERT NULL mysqltest_db1 t1 0 NULL SET @a = 1 ROW BEFORE NULL NULL OLD NEW NULL
-NULL mysqltest_db1 trg2 INSERT NULL mysqltest_db1 t1 0 NULL SET @a = 2 ROW AFTER NULL NULL OLD NEW NULL @
-NULL mysqltest_db1 trg3 UPDATE NULL mysqltest_db1 t1 0 NULL SET @a = 3 ROW BEFORE NULL NULL OLD NEW NULL @abc@def@@
-NULL mysqltest_db1 trg4 UPDATE NULL mysqltest_db1 t1 0 NULL SET @a = 4 ROW AFTER NULL NULL OLD NEW NULL @hostname
-NULL mysqltest_db1 trg5 DELETE NULL mysqltest_db1 t1 0 NULL SET @a = 5 ROW BEFORE NULL NULL OLD NEW NULL @abcdef@@@hostname
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL mysqltest_db1 trg1 INSERT NULL mysqltest_db1 t1 0 NULL SET @a = 1 ROW BEFORE NULL NULL OLD NEW NULL latin1 latin1_swedish_ci latin1_swedish_ci
+NULL mysqltest_db1 trg2 INSERT NULL mysqltest_db1 t1 0 NULL SET @a = 2 ROW AFTER NULL NULL OLD NEW NULL @ latin1 latin1_swedish_ci latin1_swedish_ci
+NULL mysqltest_db1 trg3 UPDATE NULL mysqltest_db1 t1 0 NULL SET @a = 3 ROW BEFORE NULL NULL OLD NEW NULL @abc@def@@ latin1 latin1_swedish_ci latin1_swedish_ci
+NULL mysqltest_db1 trg4 UPDATE NULL mysqltest_db1 t1 0 NULL SET @a = 4 ROW AFTER NULL NULL OLD NEW NULL @hostname latin1 latin1_swedish_ci latin1_swedish_ci
+NULL mysqltest_db1 trg5 DELETE NULL mysqltest_db1 t1 0 NULL SET @a = 5 ROW BEFORE NULL NULL OLD NEW NULL @abcdef@@@hostname latin1 latin1_swedish_ci latin1_swedish_ci
---> connection: default
DROP USER mysqltest_dfn@localhost;
diff --git a/mysql-test/r/trigger.result b/mysql-test/r/trigger.result
index ecaef458e92..f901fd783e8 100644
--- a/mysql-test/r/trigger.result
+++ b/mysql-test/r/trigger.result
@@ -600,9 +600,9 @@ select @a;
@a
10
show triggers;
-Trigger Event Table Statement Timing Created sql_mode Definer
-t1_bi INSERT t1 set new."t1 column" = 5 BEFORE # REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI root@localhost
-t1_af INSERT t1 set @a=10 AFTER # root@localhost
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+t1_bi INSERT t1 set new."t1 column" = 5 BEFORE # REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
+t1_af INSERT t1 set @a=10 AFTER # root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
drop table t1;
set sql_mode="traditional";
create table t1 (a date);
@@ -622,8 +622,8 @@ t1 CREATE TABLE `t1` (
`a` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show triggers;
-Trigger Event Table Statement Timing Created sql_mode Definer
-t1_bi INSERT t1 set new.a = '2004-01-00' BEFORE # root@localhost
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+t1_bi INSERT t1 set new.a = '2004-01-00' BEFORE # root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
drop table t1;
create table t1 (id int);
create trigger t1_ai after insert on t1 for each row reset query cache;
diff --git a/mysql-test/r/type_enum.result b/mysql-test/r/type_enum.result
index fe63ad6d69e..9535e6dd18a 100644
--- a/mysql-test/r/type_enum.result
+++ b/mysql-test/r/type_enum.result
@@ -1754,14 +1754,6 @@ t1 CREATE TABLE `t1` (
`f2` enum('') DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
-End of 4.1 tests
-create table t1(f1 set('a','b'), index(f1));
-insert into t1 values(''),(''),('a'),('b');
-select * from t1 where f1='';
-f1
-
-
-drop table t1;
create table t1(russian enum('E','F','EF','FE') NOT NULL DEFAULT'E');
show create table t1;
Table Create Table
@@ -1786,4 +1778,35 @@ drop table t1;
create table t1(exhausting_charset enum('ABCDEFGHIJKLMNOPQRSTUVWXYZ','
 !"','#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~','xx\','yy\','zz'));
ERROR 42000: Field separator argument is not what is expected; check the manual
+CREATE TABLE t1 (
+id INT AUTO_INCREMENT PRIMARY KEY,
+c1 ENUM('a', '', 'b')
+);
+INSERT INTO t1 (c1) VALUES (0), ('a'), (''), ('b');
+Warnings:
+Warning 1265 Data truncated for column 'c1' at row 1
+SELECT id, c1 + 0, c1 FROM t1;
+id c1 + 0 c1
+1 0
+2 1 a
+3 2
+4 3 b
+ALTER TABLE t1 CHANGE c1 c1 ENUM('a', '') NOT NULL;
+Warnings:
+Warning 1265 Data truncated for column 'c1' at row 4
+SELECT id, c1 + 0, c1 FROM t1;
+id c1 + 0 c1
+1 0
+2 1 a
+3 2
+4 0
+DROP TABLE t1;
+End of 4.1 tests
+create table t1(f1 set('a','b'), index(f1));
+insert into t1 values(''),(''),('a'),('b');
+select * from t1 where f1='';
+f1
+
+
+drop table t1;
End of 5.1 tests
diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result
index 88e12e26c4a..cfad70a9bb5 100644
--- a/mysql-test/r/view.result
+++ b/mysql-test/r/view.result
@@ -37,11 +37,11 @@ c
6
11
show create table v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (`t1`.`b` + 1) AS `c` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (`t1`.`b` + 1) AS `c` from `t1` latin1 latin1_swedish_ci
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (`t1`.`b` + 1) AS `c` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (`t1`.`b` + 1) AS `c` from `t1` latin1 latin1_swedish_ci
show create view t1;
ERROR HY000: 'test.t1' is not VIEW
drop table t1;
@@ -60,8 +60,8 @@ Warnings:
Note 1003 select (`test`.`t1`.`b` + 1) AS `c` from `test`.`t1`
create algorithm=temptable view v2 (c) as select b+1 from t1;
show create view v2;
-View Create View
-v2 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select (`t1`.`b` + 1) AS `c` from `t1`
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select (`t1`.`b` + 1) AS `c` from `t1` latin1 latin1_swedish_ci
select c from v2;
c
3
@@ -576,8 +576,8 @@ set sql_mode='ansi';
create table t1 ("a*b" int);
create view v1 as select "a*b" from t1;
show create view v1;
-View Create View
-v1 CREATE VIEW "v1" AS select "t1"."a*b" AS "a*b" from "t1"
+View Create View character_set_client collation_connection
+v1 CREATE VIEW "v1" AS select "t1"."a*b" AS "a*b" from "t1" latin1 latin1_swedish_ci
drop view v1;
drop table t1;
set sql_mode=default;
@@ -682,8 +682,8 @@ drop view v1;
drop table t1;
CREATE VIEW v1 (f1,f2,f3,f4) AS SELECT connection_id(), pi(), current_user(), version();
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select connection_id() AS `f1`,pi() AS `f2`,current_user() AS `f3`,version() AS `f4`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select connection_id() AS `f1`,pi() AS `f2`,current_user() AS `f3`,version() AS `f4` latin1 latin1_swedish_ci
drop view v1;
create table t1 (s1 int);
create table t2 (s2 int);
@@ -716,14 +716,14 @@ create table t2 (a int);
create view v1 as select a from t1;
create view v2 as select a from t2 where a in (select a from v1);
show create view v2;
-View Create View
-v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t2`.`a` AS `a` from `t2` where `t2`.`a` in (select `v1`.`a` AS `a` from `v1`)
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t2`.`a` AS `a` from `t2` where `t2`.`a` in (select `v1`.`a` AS `a` from `v1`) latin1 latin1_swedish_ci
drop view v2, v1;
drop table t1, t2;
CREATE VIEW `v 1` AS select 5 AS `5`;
show create view `v 1`;
-View Create View
-v 1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v 1` AS select 5 AS `5`
+View Create View character_set_client collation_connection
+v 1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v 1` AS select 5 AS `5` latin1 latin1_swedish_ci
drop view `v 1`;
create database mysqltest;
create table mysqltest.t1 (a int, b int);
@@ -790,15 +790,15 @@ select * from v3;
a b
1 1
show create view v3;
-View Create View
-v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `v1`.`col1` AS `a`,`v2`.`col1` AS `b` from (`v1` join `v2`) where (`v1`.`col1` = `v2`.`col1`)
+View Create View character_set_client collation_connection
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `v1`.`col1` AS `a`,`v2`.`col1` AS `b` from (`v1` join `v2`) where (`v1`.`col1` = `v2`.`col1`) latin1 latin1_swedish_ci
drop view v3, v2, v1;
drop table t2, t1;
create function `f``1` () returns int return 5;
create view v1 as select test.`f``1` ();
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`f``1`() AS `test.``f````1`` ()`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`f``1`() AS `test.``f````1`` ()` latin1 latin1_swedish_ci
select * from v1;
test.`f``1` ()
5
@@ -814,11 +814,11 @@ drop function a;
create table t2 (col1 char collate latin1_german2_ci);
create view v2 as select col1 collate latin1_german1_ci from t2;
show create view v2;
-View Create View
-v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select (`t2`.`col1` collate latin1_german1_ci) AS `col1 collate latin1_german1_ci` from `t2`
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select (`t2`.`col1` collate latin1_german1_ci) AS `col1 collate latin1_german1_ci` from `t2` latin1 latin1_swedish_ci
show create view v2;
-View Create View
-v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select (`t2`.`col1` collate latin1_german1_ci) AS `col1 collate latin1_german1_ci` from `t2`
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select (`t2`.`col1` collate latin1_german1_ci) AS `col1 collate latin1_german1_ci` from `t2` latin1 latin1_swedish_ci
drop view v2;
drop table t2;
create table t1 (a int);
@@ -844,9 +844,12 @@ drop view v1;
drop table t1;
create view v1 as select 99999999999999999999999999999999999999999999999999999 as col1;
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 99999999999999999999999999999999999999999999999999999 AS `col1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 99999999999999999999999999999999999999999999999999999 AS `col1` latin1 latin1_swedish_ci
drop view v1;
+SET @old_cs_client = @@character_set_client;
+SET @old_cs_results = @@character_set_results;
+SET @old_cs_connection = @@character_set_connection;
set names utf8;
create table tü (cü char);
create view vü as select cü from tü;
@@ -856,7 +859,9 @@ cü
ü
drop view vü;
drop table tü;
-set names latin1;
+SET character_set_client = @old_cs_client;
+SET character_set_results = @old_cs_results;
+SET character_set_connection = @old_cs_connection;
create table t1 (a int, b int);
insert into t1 values (1,2), (1,3), (2,4), (2,5), (3,10);
create view v1(c) as select a+1 from t1 where b >= 4;
@@ -867,8 +872,8 @@ drop view v1;
drop table t1;
create view v1 as select cast(1 as char(3));
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(1 as char(3) charset latin1) AS `cast(1 as char(3))`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(1 as char(3) charset latin1) AS `cast(1 as char(3))` latin1 latin1_swedish_ci
select * from v1;
cast(1 as char(3))
1
@@ -1199,20 +1204,20 @@ drop table t1;
create table t1 (a int);
create view v1 as select * from t1;
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` latin1 latin1_swedish_ci
alter algorithm=undefined view v1 as select * from t1 with check option;
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` WITH CASCADED CHECK OPTION
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` WITH CASCADED CHECK OPTION latin1 latin1_swedish_ci
alter algorithm=merge view v1 as select * from t1 with cascaded check option;
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` WITH CASCADED CHECK OPTION
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` WITH CASCADED CHECK OPTION latin1 latin1_swedish_ci
alter algorithm=temptable view v1 as select * from t1;
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` latin1 latin1_swedish_ci
drop view v1;
drop table t1;
create table t1 (s1 int);
@@ -1885,25 +1890,25 @@ create table t1 (a timestamp default now());
create table t2 (b timestamp default now());
create view v1 as select a,b,t1.a < now() from t1,t2 where t1.a < now();
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,`t2`.`b` AS `b`,(`t1`.`a` < now()) AS `t1.a < now()` from (`t1` join `t2`) where (`t1`.`a` < now())
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,`t2`.`b` AS `b`,(`t1`.`a` < now()) AS `t1.a < now()` from (`t1` join `t2`) where (`t1`.`a` < now()) latin1 latin1_swedish_ci
drop view v1;
drop table t1, t2;
CREATE TABLE t1 ( a varchar(50) );
CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = CURRENT_USER();
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` where (`t1`.`a` = current_user())
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` where (`t1`.`a` = current_user()) latin1 latin1_swedish_ci
DROP VIEW v1;
CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = VERSION();
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` where (`t1`.`a` = version())
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` where (`t1`.`a` = version()) latin1 latin1_swedish_ci
DROP VIEW v1;
CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = DATABASE();
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` where (`t1`.`a` = database())
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` where (`t1`.`a` = database()) latin1 latin1_swedish_ci
DROP VIEW v1;
DROP TABLE t1;
CREATE TABLE t1 (col1 time);
@@ -2005,8 +2010,8 @@ drop table t1;
create table t1 (s1 int);
create view v1 as select var_samp(s1) from t1;
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select var_samp(`t1`.`s1`) AS `var_samp(s1)` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select var_samp(`t1`.`s1`) AS `var_samp(s1)` from `t1` latin1 latin1_swedish_ci
drop view v1;
drop table t1;
set sql_mode='strict_all_tables';
@@ -2251,16 +2256,16 @@ CREATE TABLE t1 (date DATE NOT NULL);
INSERT INTO t1 VALUES ('2005-09-06');
CREATE VIEW v1 AS SELECT DAYNAME(date) FROM t1;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select dayname(`t1`.`date`) AS `DAYNAME(date)` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select dayname(`t1`.`date`) AS `DAYNAME(date)` from `t1` latin1 latin1_swedish_ci
CREATE VIEW v2 AS SELECT DAYOFWEEK(date) FROM t1;
SHOW CREATE VIEW v2;
-View Create View
-v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select dayofweek(`t1`.`date`) AS `DAYOFWEEK(date)` from `t1`
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select dayofweek(`t1`.`date`) AS `DAYOFWEEK(date)` from `t1` latin1 latin1_swedish_ci
CREATE VIEW v3 AS SELECT WEEKDAY(date) FROM t1;
SHOW CREATE VIEW v3;
-View Create View
-v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select weekday(`t1`.`date`) AS `WEEKDAY(date)` from `t1`
+View Create View character_set_client collation_connection
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select weekday(`t1`.`date`) AS `WEEKDAY(date)` from `t1` latin1 latin1_swedish_ci
SELECT DAYNAME('2005-09-06');
DAYNAME('2005-09-06')
Tuesday
@@ -2419,13 +2424,13 @@ test.v1 repair error Corrupt
DROP VIEW v1;
create definer = current_user() sql security invoker view v1 as select 1;
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `v1` AS select 1 AS `1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `v1` AS select 1 AS `1` latin1 latin1_swedish_ci
drop view v1;
create definer = current_user sql security invoker view v1 as select 1;
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `v1` AS select 1 AS `1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `v1` AS select 1 AS `1` latin1 latin1_swedish_ci
drop view v1;
create table t1 (id INT, primary key(id));
insert into t1 values (1),(2);
@@ -2454,8 +2459,8 @@ end;
//
call p1();
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1` latin1 latin1_swedish_ci
drop view v1;
drop procedure p1;
CREATE VIEW v1 AS SELECT 42 AS Meaning;
@@ -2560,8 +2565,8 @@ drop table t1;
show create view v1;
drop view v1;
//
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`id` AS `id` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`id` AS `id` from `t1` latin1 latin1_swedish_ci
create table t1(f1 int, f2 int);
create view v1 as select ta.f1 as a, tb.f1 as b from t1 ta, t1 tb where ta.f1=tb
.f1 and ta.f2=tb.f2;
@@ -2677,8 +2682,8 @@ CREATE VIEW v1 AS
SELECT id, date(d) + INTERVAL TIME_TO_SEC(d) SECOND AS t, COUNT(*)
FROM t1 GROUP BY id, t;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`id` AS `id`,(cast(`t1`.`d` as date) + interval time_to_sec(`t1`.`d`) second) AS `t`,count(0) AS `COUNT(*)` from `t1` group by `t1`.`id`,(cast(`t1`.`d` as date) + interval time_to_sec(`t1`.`d`) second)
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`id` AS `id`,(cast(`t1`.`d` as date) + interval time_to_sec(`t1`.`d`) second) AS `t`,count(0) AS `COUNT(*)` from `t1` group by `t1`.`id`,(cast(`t1`.`d` as date) + interval time_to_sec(`t1`.`d`) second) latin1 latin1_swedish_ci
SELECT * FROM v1;
id t COUNT(*)
DROP VIEW v1;
@@ -2705,8 +2710,8 @@ CREATE VIEW v1 AS
SELECT (year(now())-year(DOB)) AS Age
FROM t1 HAVING Age < 75;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (year(now()) - year(`t1`.`DOB`)) AS `Age` from `t1` having (`Age` < 75)
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (year(now()) - year(`t1`.`DOB`)) AS `Age` from `t1` having (`Age` < 75) latin1 latin1_swedish_ci
set timestamp=1136066400;
SELECT (year(now())-year(DOB)) AS Age FROM t1 HAVING Age < 75;
Age
@@ -2835,12 +2840,12 @@ DROP TABLE t1;
CREATE TABLE t1 (x INT, y INT);
CREATE ALGORITHM=TEMPTABLE SQL SECURITY INVOKER VIEW v1 AS SELECT x FROM t1;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `v1` AS select `t1`.`x` AS `x` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `v1` AS select `t1`.`x` AS `x` from `t1` latin1 latin1_swedish_ci
ALTER VIEW v1 AS SELECT x, y FROM t1;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `v1` AS select `t1`.`x` AS `x`,`t1`.`y` AS `y` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `v1` AS select `t1`.`x` AS `x`,`t1`.`y` AS `y` from `t1` latin1 latin1_swedish_ci
DROP VIEW v1;
DROP TABLE t1;
CREATE TABLE t1 (s1 char);
@@ -2900,8 +2905,8 @@ USE test;
create table t1 (f1 datetime);
create view v1 as select * from t1 where f1 between now() and now() + interval 1 minute;
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` where (`t1`.`f1` between now() and (now() + interval 1 minute))
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` where (`t1`.`f1` between now() and (now() + interval 1 minute)) latin1 latin1_swedish_ci
drop view v1;
drop table t1;
DROP TABLE IF EXISTS t1;
@@ -2977,8 +2982,8 @@ t2.ver = (SELECT MAX(t.ver) FROM t2 t WHERE t.org = t2.org);
SHOW WARNINGS;
Level Code Message
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`pk` AS `pk` from (`t1` join `t2` on(((`t2`.`fk` = `t1`.`pk`) and (`t2`.`ver` = (select max(`t`.`ver`) AS `MAX(t.ver)` from `t2` `t` where (`t`.`org` = `t2`.`org`))))))
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`pk` AS `pk` from (`t1` join `t2` on(((`t2`.`fk` = `t1`.`pk`) and (`t2`.`ver` = (select max(`t`.`ver`) AS `MAX(t.ver)` from `t2` `t` where (`t`.`org` = `t2`.`org`)))))) latin1 latin1_swedish_ci
DROP VIEW v1;
DROP TABLE t1, t2;
DROP FUNCTION IF EXISTS f1;
@@ -3041,8 +3046,8 @@ DROP VIEW v1, v2;
DROP TABLE t1;
CREATE VIEW v AS SELECT !0 * 5 AS x FROM DUAL;
SHOW CREATE VIEW v;
-View Create View
-v CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v` AS select ((not(0)) * 5) AS `x`
+View Create View character_set_client collation_connection
+v CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v` AS select ((not(0)) * 5) AS `x` latin1 latin1_swedish_ci
SELECT !0 * 5 AS x FROM DUAL;
x
5
@@ -3056,8 +3061,8 @@ SELECT * FROM v1;
TheEnd
TheEnd
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select _latin1'The\ZEnd' AS `TheEnd`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select _latin1'The\ZEnd' AS `TheEnd` latin1 latin1_swedish_ci
DROP VIEW v1;
CREATE TABLE t1 (mydate DATETIME);
INSERT INTO t1 VALUES
@@ -3278,8 +3283,8 @@ old_isfalse int(1) NO 0
a IS NOT FALSE int(1) NO 0
old_isnotfalse int(1) NO 0
show create view view_24532_b;
-View Create View
-view_24532_b CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `view_24532_b` AS select (`table_24532`.`a` is true) AS `a IS TRUE`,if(ifnull(`table_24532`.`a`,0),1,0) AS `old_istrue`,(`table_24532`.`a` is not true) AS `a IS NOT TRUE`,if(ifnull(`table_24532`.`a`,0),0,1) AS `old_isnottrue`,(`table_24532`.`a` is false) AS `a IS FALSE`,if(ifnull(`table_24532`.`a`,1),0,1) AS `old_isfalse`,(`table_24532`.`a` is not false) AS `a IS NOT FALSE`,if(ifnull(`table_24532`.`a`,1),1,0) AS `old_isnotfalse` from `table_24532`
+View Create View character_set_client collation_connection
+view_24532_b CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `view_24532_b` AS select (`table_24532`.`a` is true) AS `a IS TRUE`,if(ifnull(`table_24532`.`a`,0),1,0) AS `old_istrue`,(`table_24532`.`a` is not true) AS `a IS NOT TRUE`,if(ifnull(`table_24532`.`a`,0),0,1) AS `old_isnottrue`,(`table_24532`.`a` is false) AS `a IS FALSE`,if(ifnull(`table_24532`.`a`,1),0,1) AS `old_isfalse`,(`table_24532`.`a` is not false) AS `a IS NOT FALSE`,if(ifnull(`table_24532`.`a`,1),1,0) AS `old_isnotfalse` from `table_24532` latin1 latin1_swedish_ci
insert into table_24532 values (0, 0, 0, 0);
select * from view_24532_b;
a IS TRUE old_istrue a IS NOT TRUE old_isnottrue a IS FALSE old_isfalse a IS NOT FALSE old_isnotfalse
@@ -3377,8 +3382,8 @@ col decimal(7,5) NO 0.00000
DROP VIEW v1;
CREATE VIEW v1 AS SELECT CAST(1.23456789 AS DECIMAL(8,0)) AS col;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(1.23456789 as decimal(8,0)) AS `col`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(1.23456789 as decimal(8,0)) AS `col` latin1 latin1_swedish_ci
DROP VIEW v1;
CREATE TABLE t1 (a INT);
CREATE TABLE t2 (b INT, c INT DEFAULT 0);
diff --git a/mysql-test/r/view_grant.result b/mysql-test/r/view_grant.result
index 0a32b3b3fcd..49c98d8e03f 100644
--- a/mysql-test/r/view_grant.result
+++ b/mysql-test/r/view_grant.result
@@ -27,8 +27,8 @@ ERROR 42000: CREATE VIEW command denied to user 'mysqltest_1'@'localhost' for ta
create view v2 as select * from mysqltest.t2;
ERROR 42000: ANY command denied to user 'mysqltest_1'@'localhost' for table 't2'
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`mysqltest_1`@`localhost` SQL SECURITY DEFINER VIEW `test`.`v1` AS select `mysqltest`.`t1`.`a` AS `a`,`mysqltest`.`t1`.`b` AS `b` from `mysqltest`.`t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`mysqltest_1`@`localhost` SQL SECURITY DEFINER VIEW `test`.`v1` AS select `mysqltest`.`t1`.`a` AS `a`,`mysqltest`.`t1`.`b` AS `b` from `mysqltest`.`t1` latin1 latin1_swedish_ci
grant create view,drop,select on test.* to mysqltest_1@localhost;
use test;
alter view v1 as select * from mysqltest.t1;
@@ -127,28 +127,28 @@ explain select c from mysqltest.v1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found
show create view mysqltest.v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v1` AS select (`mysqltest`.`t1`.`a` + 1) AS `c`,(`mysqltest`.`t1`.`b` + 1) AS `d` from `mysqltest`.`t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v1` AS select (`mysqltest`.`t1`.`a` + 1) AS `c`,(`mysqltest`.`t1`.`b` + 1) AS `d` from `mysqltest`.`t1` latin1 latin1_swedish_ci
explain select c from mysqltest.v2;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <derived2> system NULL NULL NULL NULL 0 const row not found
2 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
show create view mysqltest.v2;
-View Create View
-v2 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v2` AS select (`mysqltest`.`t1`.`a` + 1) AS `c`,(`mysqltest`.`t1`.`b` + 1) AS `d` from `mysqltest`.`t1`
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v2` AS select (`mysqltest`.`t1`.`a` + 1) AS `c`,(`mysqltest`.`t1`.`b` + 1) AS `d` from `mysqltest`.`t1` latin1 latin1_swedish_ci
explain select c from mysqltest.v3;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 system NULL NULL NULL NULL 0 const row not found
show create view mysqltest.v3;
-View Create View
-v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v3` AS select (`mysqltest`.`t2`.`a` + 1) AS `c`,(`mysqltest`.`t2`.`b` + 1) AS `d` from `mysqltest`.`t2`
+View Create View character_set_client collation_connection
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v3` AS select (`mysqltest`.`t2`.`a` + 1) AS `c`,(`mysqltest`.`t2`.`b` + 1) AS `d` from `mysqltest`.`t2` latin1 latin1_swedish_ci
explain select c from mysqltest.v4;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <derived2> system NULL NULL NULL NULL 0 const row not found
2 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
show create view mysqltest.v4;
-View Create View
-v4 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v4` AS select (`mysqltest`.`t2`.`a` + 1) AS `c`,(`mysqltest`.`t2`.`b` + 1) AS `d` from `mysqltest`.`t2`
+View Create View character_set_client collation_connection
+v4 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v4` AS select (`mysqltest`.`t2`.`a` + 1) AS `c`,(`mysqltest`.`t2`.`b` + 1) AS `d` from `mysqltest`.`t2` latin1 latin1_swedish_ci
revoke all privileges on mysqltest.* from mysqltest_1@localhost;
delete from mysql.user where user='mysqltest_1';
drop database mysqltest;
@@ -308,8 +308,8 @@ grant select on mysqltest.t1 to mysqltest_1@localhost;
grant create view,select on test.* to mysqltest_1@localhost;
create view v1 as select * from mysqltest.t1;
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`mysqltest_1`@`localhost` SQL SECURITY DEFINER VIEW `test`.`v1` AS select `mysqltest`.`t1`.`a` AS `a`,`mysqltest`.`t1`.`b` AS `b` from `mysqltest`.`t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`mysqltest_1`@`localhost` SQL SECURITY DEFINER VIEW `test`.`v1` AS select `mysqltest`.`t1`.`a` AS `a`,`mysqltest`.`t1`.`b` AS `b` from `mysqltest`.`t1` latin1 latin1_swedish_ci
revoke select on mysqltest.t1 from mysqltest_1@localhost;
select * from v1;
ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
@@ -476,15 +476,15 @@ grant all on test.* to 'test14256'@'%';
use test;
create view v1 as select 42;
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`test14256`@`%` SQL SECURITY DEFINER VIEW `v1` AS select 42 AS `42`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`test14256`@`%` SQL SECURITY DEFINER VIEW `v1` AS select 42 AS `42` latin1 latin1_swedish_ci
select definer into @v1def1 from information_schema.views
where table_schema = 'test' and table_name='v1';
drop view v1;
create definer=`test14256`@`%` view v1 as select 42;
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`test14256`@`%` SQL SECURITY DEFINER VIEW `v1` AS select 42 AS `42`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`test14256`@`%` SQL SECURITY DEFINER VIEW `v1` AS select 42 AS `42` latin1 latin1_swedish_ci
select definer into @v1def2 from information_schema.views
where table_schema = 'test' and table_name='v1';
drop view v1;
@@ -500,8 +500,8 @@ use mysqltest;
CREATE TABLE t1 (i INT);
CREATE VIEW v1 AS SELECT * FROM t1;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`i` AS `i` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`i` AS `i` from `t1` latin1 latin1_swedish_ci
GRANT SELECT, LOCK TABLES ON mysqltest.* TO mysqltest_1@localhost;
use mysqltest;
LOCK TABLES v1 READ;
@@ -519,11 +519,11 @@ create definer=some_user@localhost sql security invoker view v2 as select 1;
Warnings:
Note 1449 There is no 'some_user'@'localhost' registered
show create view v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`some_user`@`` SQL SECURITY INVOKER VIEW `v1` AS select 1 AS `1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`some_user`@`` SQL SECURITY INVOKER VIEW `v1` AS select 1 AS `1` latin1 latin1_swedish_ci
show create view v2;
-View Create View
-v2 CREATE ALGORITHM=UNDEFINED DEFINER=`some_user`@`localhost` SQL SECURITY INVOKER VIEW `v2` AS select 1 AS `1`
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`some_user`@`localhost` SQL SECURITY INVOKER VIEW `v2` AS select 1 AS `1` latin1 latin1_swedish_ci
drop view v1;
drop view v2;
CREATE DATABASE mysqltest1;
@@ -602,8 +602,8 @@ CREATE DEFINER = 'no-such-user'@localhost VIEW v AS SELECT a from t1;
Warnings:
Note 1449 There is no 'no-such-user'@'localhost' registered
SHOW CREATE VIEW v;
-View Create View
-v CREATE ALGORITHM=UNDEFINED DEFINER=`no-such-user`@`localhost` SQL SECURITY DEFINER VIEW `v` AS select `test`.`t1`.`a` AS `a` from `t1`
+View Create View character_set_client collation_connection
+v CREATE ALGORITHM=UNDEFINED DEFINER=`no-such-user`@`localhost` SQL SECURITY DEFINER VIEW `v` AS select `test`.`t1`.`a` AS `a` from `t1` latin1 latin1_swedish_ci
Warnings:
Warning 1356 View 'test.v' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
SELECT * FROM v;
@@ -619,14 +619,14 @@ CREATE TABLE t1 (f1 INTEGER);
CREATE VIEW view1 AS
SELECT * FROM t1;
SHOW CREATE VIEW view1;
-View Create View
-view1 CREATE ALGORITHM=UNDEFINED DEFINER=`mysqltest_db1`@`localhost` SQL SECURITY DEFINER VIEW `view1` AS select `t1`.`f1` AS `f1` from `t1`
+View Create View character_set_client collation_connection
+view1 CREATE ALGORITHM=UNDEFINED DEFINER=`mysqltest_db1`@`localhost` SQL SECURITY DEFINER VIEW `view1` AS select `t1`.`f1` AS `f1` from `t1` latin1 latin1_swedish_ci
CREATE VIEW view2 AS
SELECT * FROM view1;
# Here comes a suspicious warning
SHOW CREATE VIEW view2;
-View Create View
-view2 CREATE ALGORITHM=UNDEFINED DEFINER=`mysqltest_db1`@`localhost` SQL SECURITY DEFINER VIEW `view2` AS select `view1`.`f1` AS `f1` from `view1`
+View Create View character_set_client collation_connection
+view2 CREATE ALGORITHM=UNDEFINED DEFINER=`mysqltest_db1`@`localhost` SQL SECURITY DEFINER VIEW `view2` AS select `view1`.`f1` AS `f1` from `view1` latin1 latin1_swedish_ci
# But the view view2 is usable
SELECT * FROM view2;
f1
@@ -783,8 +783,8 @@ ALTER VIEW v2 AS SELECT f2 FROM t1;
ERROR 42000: DROP command denied to user 'u26813'@'localhost' for table 'v2'
ALTER VIEW v3 AS SELECT f2 FROM t1;
SHOW CREATE VIEW v3;
-View Create View
-v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`f2` AS `f2` from `t1`
+View Create View character_set_client collation_connection
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`f2` AS `f2` from `t1` latin1 latin1_swedish_ci
DROP USER u26813@localhost;
DROP DATABASE db26813;
DROP DATABASE IF EXISTS mysqltest1;
@@ -882,28 +882,28 @@ CREATE TABLE t1 (i INT);
CREATE VIEW v1 AS SELECT * FROM t1;
ALTER VIEW v1 AS SELECT * FROM t1;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`i` AS `i` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`i` AS `i` from `t1` latin1 latin1_swedish_ci
ALTER DEFINER=no_such@user_1 VIEW v1 AS SELECT * FROM t1;
Warnings:
Note 1449 There is no 'no_such'@'user_1' registered
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`no_such`@`user_1` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`i` AS `i` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`no_such`@`user_1` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`i` AS `i` from `t1` latin1 latin1_swedish_ci
Warnings:
Warning 1356 View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
ALTER ALGORITHM=MERGE VIEW v1 AS SELECT * FROM t1;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=MERGE DEFINER=`no_such`@`user_1` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`i` AS `i` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=MERGE DEFINER=`no_such`@`user_1` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`i` AS `i` from `t1` latin1 latin1_swedish_ci
Warnings:
Warning 1356 View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
ALTER ALGORITHM=TEMPTABLE DEFINER=no_such@user_2 VIEW v1 AS SELECT * FROM t1;
Warnings:
Note 1449 There is no 'no_such'@'user_2' registered
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`no_such`@`user_2` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`i` AS `i` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`no_such`@`user_2` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`i` AS `i` from `t1` latin1 latin1_swedish_ci
Warnings:
Warning 1356 View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
DROP VIEW v1;
diff --git a/mysql-test/t/binary.test b/mysql-test/t/binary.test
index 4ab6ee9eaf1..1cc6ae07675 100644
--- a/mysql-test/t/binary.test
+++ b/mysql-test/t/binary.test
@@ -101,3 +101,41 @@ select hex(col1) from t1;
insert into t1 values ('b'),('b ');
select hex(col1) from t1;
drop table t1;
+
+#
+# Bug #29087: assertion abort for a search in a BINARY non-nullable index
+# by a key with trailing spaces
+#
+
+CREATE TABLE t1 (
+ a binary(20) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
+ index idx(a)
+);
+INSERT INTO t1 SET a=unhex('1F9480179366F2BF567E1C4B964C1EF029087575');
+INSERT INTO t1 SET a=unhex('1F9480179366F2BF567E1C4B964C1EF029082020');
+INSERT INTO t1 SET a=unhex('1F9480179366F2BF567E1C4B964C1EF029080707');
+
+SELECT hex(a) FROM t1 order by a;
+EXPLAIN SELECT hex(a) FROM t1 order by a;
+
+SELECT hex(a) from t1 WHERE a=unhex('1F9480179366F2BF567E1C4B964C1EF029082020');
+EXPLAIN
+SELECT hex(a) from t1 WHERE a=unhex('1F9480179366F2BF567E1C4B964C1EF029082020');
+
+SELECT hex(a) from t1 WHERE a=unhex('1F9480179366F2BF567E1C4B964C1EF02908');
+
+DROP TABLE t1;
+
+CREATE TABLE t1 (
+ id numeric(20) NOT NULL,
+ lang varchar(8) NOT NULL,
+ msg varchar(32) NOT NULL,
+ PRIMARY KEY (id,lang)
+);
+INSERT INTO t1 VALUES (33, 'en', 'zzzzzzz');
+INSERT INTO t1 VALUES (31, 'en', 'xxxxxxx');
+INSERT INTO t1 VALUES (32, 'en', 'yyyyyyy');
+SELECT * FROM t1 WHERE id=32;
+
+DROP TABLE t1;
+
diff --git a/mysql-test/t/binlog_multi_engine.test b/mysql-test/t/binlog_multi_engine.test
index 6614b9e5d44..058aca0f715 100644
--- a/mysql-test/t/binlog_multi_engine.test
+++ b/mysql-test/t/binlog_multi_engine.test
@@ -1,6 +1,11 @@
+# Test to test how logging is done depending on the capabilities of
+# the engines. Unfortunately, we don't have a good row-only logging
+# engine, and NDB does not really cut is since it is also
+# self-logging. I'm using it nevertheless.
+
source include/have_blackhole.inc;
source include/have_ndb.inc;
-source include/have_binlog_format_mixed_or_row.inc;
+source include/have_log_bin.inc;
CREATE TABLE t1m (m INT, n INT) ENGINE=MYISAM;
CREATE TABLE t1b (b INT, c INT) ENGINE=BLACKHOLE;
@@ -15,9 +20,6 @@ INSERT INTO t1b VALUES (1,1), (1,2), (2,1), (2,2);
UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c;
-# I cannot use these statements since the rows logged to the NDB table
-# eventually shows up in the binary log. I use them anyway, since once
-# BUG#29222 is fixed, there will be a difference here.
echo *** Please look in binlog_multi_engine.test if you have a diff here ****;
START TRANSACTION;
INSERT INTO t1n VALUES (1,1), (1,2), (2,1), (2,2);
@@ -40,6 +42,8 @@ INSERT INTO t1b VALUES (1,1), (1,2), (2,1), (2,2);
INSERT INTO t1n VALUES (1,1), (1,2), (2,1), (2,2);
UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c;
+error ER_BINLOG_LOGGING_IMPOSSIBLE;
+UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f;
# Not possible to test this since NDB writes its own binlog, which
# might cause it to be out of sync with the results from MyISAM.
@@ -67,6 +71,8 @@ INSERT INTO t1n VALUES (1,1), (1,2), (2,1), (2,2);
error ER_BINLOG_LOGGING_IMPOSSIBLE;
UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c;
+error ER_BINLOG_LOGGING_IMPOSSIBLE;
+UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f;
# Not possible to test this since NDB writes its own binlog, which
# might cause it to be out of sync with the results from MyISAM.
diff --git a/mysql-test/t/create.test b/mysql-test/t/create.test
index 149982e23c5..dd3037ce88d 100644
--- a/mysql-test/t/create.test
+++ b/mysql-test/t/create.test
@@ -790,6 +790,339 @@ drop table t1, t2;
create table t1 (upgrade int);
drop table t1;
+
+#
+# Bug #26642: create index corrupts table definition in .frm
+#
+# Problem with creating keys with maximum key-parts and maximum name length
+# This test is made for a mysql server supporting names up to 64 bytes
+# and a maximum of 16 key segements per Key
+#
+
+create table t1 (
+ c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int,
+ c9 int, c10 int, c11 int, c12 int, c13 int, c14 int, c15 int, c16 int,
+
+ key a001_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a002_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a003_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a004_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a005_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a006_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a007_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a008_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a009_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ key a010_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a011_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a012_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a013_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a014_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a015_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a016_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a017_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a018_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a019_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ key a020_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a021_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a022_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a023_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a024_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a025_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a026_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a027_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a028_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a029_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ key a030_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a031_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a032_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a033_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a034_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a035_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a036_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a037_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a038_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a039_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ key a040_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a041_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a042_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a043_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a044_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a045_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a046_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a047_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a048_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a049_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ key a050_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a051_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a052_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a053_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a054_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a055_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a056_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a057_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a058_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a059_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ key a060_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a061_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a062_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a063_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a064_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16)
+);
+
+# Check that the table is not corrupted
+show create table t1;
+flush tables;
+show create table t1;
+
+# Repeat test using ALTER to add indexes
+
+drop table t1;
+create table t1 (c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int,
+c8 int, c9 int, c10 int, c11 int, c12 int, c13 int, c14 int, c15 int, c16 int);
+
+alter table t1
+
+ add key a001_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a002_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a003_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a004_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a005_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a006_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a007_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a008_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a009_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ add key a010_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a011_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a012_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a013_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a014_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a015_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a016_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a017_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a018_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a019_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ add key a020_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a021_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a022_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a023_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a024_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a025_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a026_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a027_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a028_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a029_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ add key a030_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a031_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a032_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a033_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a034_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a035_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a036_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a037_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a038_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a039_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ add key a040_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a041_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a042_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a043_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a044_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a045_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a046_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a047_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a048_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a049_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ add key a050_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a051_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a052_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a053_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a054_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a055_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a056_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a057_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a058_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a059_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ add key a060_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a061_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a062_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a063_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a064_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16);
+
+show create table t1;
+flush tables;
+show create table t1;
+
+# Test the server limits; if any of these pass, all above tests need
+# to be rewritten to hit the limit
+#
+# Ensure limit is really 64 keys
+--error 1069
+alter table t1 add key
+ a065_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16);
+
+drop table t1;
+
+# Ensure limit is really 16 key parts per key
+
+create table t1 (c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int,
+c8 int, c9 int, c10 int, c11 int, c12 int, c13 int, c14 int, c15 int,
+c16 int, c17 int);
+
+# Get error for max key parts
+--error 1070
+alter table t1 add key i1 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16, c17);
+
+# Get error for max key-name length
+--error 1059
+alter table t1 add key
+ a001_long_123456789_123456789_123456789_123456789_123456789_12345 (c1);
+
+show create table t1;
+
+drop table t1;
+
+
--echo End of 5.0 tests
#
diff --git a/mysql-test/t/ctype_collate.test b/mysql-test/t/ctype_collate.test
index aca240b46bc..4bbae42559a 100644
--- a/mysql-test/t/ctype_collate.test
+++ b/mysql-test/t/ctype_collate.test
@@ -207,3 +207,14 @@ EXPLAIN SELECT * FROM t1 WHERE s2 LIKE 'a' COLLATE latin1_german1_ci;
DROP TABLE t1;
# End of 4.1 tests
+
+#
+# Bug#29261: Sort order of the collation wasn't used when comparing trailing
+# spaces.
+#
+create table t1(f1 varchar(10) character set latin2 collate latin2_hungarian_ci, key(f1));
+insert into t1 set f1=0x3F3F9DC73F;
+insert into t1 set f1=0x3F3F1E563F;
+insert into t1 set f1=0x3F3F;
+check table t1 extended;
+drop table t1;
diff --git a/mysql-test/t/ctype_uca.test b/mysql-test/t/ctype_uca.test
index 64349bc40a6..17632e7c8fc 100644
--- a/mysql-test/t/ctype_uca.test
+++ b/mysql-test/t/ctype_uca.test
@@ -485,3 +485,57 @@ CREATE TABLE t1 (
insert into t1 values (''),('a');
SELECT COUNT(*), c1 FROM t1 GROUP BY c1;
DROP TABLE IF EXISTS t1;
+
+#
+# Bug#27345 Incorrect data returned when range-read from utf8_danish_ci indexes
+#
+set names utf8;
+create table t1 (
+ a varchar(255),
+ key a(a)
+) character set utf8 collate utf8_danish_ci;
+insert into t1 values ('åaaaa'),('ååaaa'),('aaaaa');
+select a as like_a from t1 where a like 'a%';
+select a as like_aa from t1 where a like 'aa%';
+select a as like_aaa from t1 where a like 'aaa%';
+select a as like_aaaa from t1 where a like 'aaaa%';
+select a as like_aaaaa from t1 where a like 'aaaaa%';
+alter table t1 convert to character set ucs2 collate ucs2_danish_ci;
+select a as like_a from t1 where a like 'a%';
+select a as like_aa from t1 where a like 'aa%';
+select a as like_aaa from t1 where a like 'aaa%';
+select a as like_aaaa from t1 where a like 'aaaa%';
+select a as like_aaaaa from t1 where a like 'aaaaa%';
+drop table t1;
+
+create table t1 (
+ a varchar(255),
+ key(a)
+) character set utf8 collate utf8_spanish2_ci;
+insert into t1 values ('aaaaa'),('lllll'),('zzzzz');
+select a as like_l from t1 where a like 'l%';
+select a as like_ll from t1 where a like 'll%';
+select a as like_lll from t1 where a like 'lll%';
+select a as like_llll from t1 where a like 'llll%';
+select a as like_lllll from t1 where a like 'lllll%';
+alter table t1 convert to character set ucs2 collate ucs2_spanish2_ci;
+select a as like_l from t1 where a like 'l%';
+select a as like_ll from t1 where a like 'll%';
+select a as like_lll from t1 where a like 'lll%';
+select a as like_llll from t1 where a like 'llll%';
+select a as like_lllll from t1 where a like 'lllll%';
+drop table t1;
+
+create table t1 (
+ a varchar(255),
+ key a(a)
+) character set utf8 collate utf8_czech_ci;
+-- In Czech 'ch' is a single letter between 'h' and 'i'
+insert into t1 values
+('b'),('c'),('d'),('e'),('f'),('g'),('h'),('ch'),('i'),('j');
+select * from t1 where a like 'c%';
+alter table t1 convert to character set ucs2 collate ucs2_czech_ci;
+select * from t1 where a like 'c%';
+drop table t1;
+
+-- echo End for 5.0 tests
diff --git a/mysql-test/t/ctype_ucs.test b/mysql-test/t/ctype_ucs.test
index c3320159c41..8828cd10eec 100644
--- a/mysql-test/t/ctype_ucs.test
+++ b/mysql-test/t/ctype_ucs.test
@@ -594,4 +594,22 @@ select data_type, character_octet_length, character_maximum_length
from information_schema.columns where table_name='t1';
drop table t1;
+#
+# Bug#28925 GROUP_CONCAT inserts wrong separators for a ucs2 column
+#
+create table t1 (a char(1) character set ucs2);
+insert into t1 values ('a'),('b'),('c');
+select hex(group_concat(a)) from t1;
+select collation(group_concat(a)) from t1;
+drop table t1;
+
+set names latin1;
+create table t1 (a char(1) character set latin1);
+insert into t1 values ('a'),('b'),('c');
+set character_set_connection=ucs2;
+select hex(group_concat(a separator ',')) from t1;
+select collation(group_concat(a separator ',')) from t1;
+drop table t1;
+set names latin1;
+
--echo End of 5.0 tests
diff --git a/mysql-test/t/ctype_ucs2_def.test b/mysql-test/t/ctype_ucs2_def.test
index 050710b208b..c80444daddd 100644
--- a/mysql-test/t/ctype_ucs2_def.test
+++ b/mysql-test/t/ctype_ucs2_def.test
@@ -15,6 +15,16 @@ DROP TABLE IF EXISTS t1;
create table t1 (a int);
drop table t1;
+--echo End of 4.1 tests
+
+#
+# Bug #28925 GROUP_CONCAT inserts wrong separators for a ucs2 column
+# Check that GROUP_CONCAT works fine with --default-character-set=ucs2
+#
+create table t1 (a char(1) character set latin1);
+insert into t1 values ('a'),('b'),('c');
+select hex(group_concat(a)) from t1;
+drop table t1;
#
# Bug #27643: query failed : 1114 (The table '' is full)
#
diff --git a/mysql-test/t/ctype_utf8.test b/mysql-test/t/ctype_utf8.test
index 03b3df44c73..204d59589e4 100644
--- a/mysql-test/t/ctype_utf8.test
+++ b/mysql-test/t/ctype_utf8.test
@@ -1339,3 +1339,28 @@ INSERT INTO t2 (colA, colB) VALUES (1, 'foo'),(2, 'foo bar');
SELECT * FROM t1 JOIN t2 ON t1.colA=t2.colA AND t1.colB=t2.colB
WHERE t1.colA < 3;
DROP TABLE t1, t2;
+
+#
+# Bug#29205: truncation of UTF8 values when the UNION statement
+# forces collation to the binary charset
+#
+
+SELECT 'н1234567890' UNION SELECT _binary '1';
+SELECT 'н1234567890' UNION SELECT 1;
+
+SELECT '1' UNION SELECT 'н1234567890';
+SELECT 1 UNION SELECT 'н1234567890';
+
+CREATE TABLE t1 (c VARCHAR(11)) CHARACTER SET utf8;
+CREATE TABLE t2 (b CHAR(1) CHARACTER SET binary, i INT);
+
+INSERT INTO t1 (c) VALUES ('н1234567890');
+INSERT INTO t2 (b, i) VALUES ('1', 1);
+
+SELECT c FROM t1 UNION SELECT b FROM t2;
+SELECT c FROM t1 UNION SELECT i FROM t2;
+
+SELECT b FROM t2 UNION SELECT c FROM t1;
+SELECT i FROM t2 UNION SELECT c FROM t1;
+
+DROP TABLE t1, t2;
diff --git a/mysql-test/t/ddl_i18n_koi8r.test b/mysql-test/t/ddl_i18n_koi8r.test
new file mode 100644
index 00000000000..e636d801b07
--- /dev/null
+++ b/mysql-test/t/ddl_i18n_koi8r.test
@@ -0,0 +1,1112 @@
+# Objects to test:
+# - stored procedures/functions;
+# - triggers;
+# - events;
+# - views;
+#
+# For stored routines:
+# - create a database with collation utf8_unicode_ci;
+# - create an object, which
+# - contains SP-var with explicit CHARSET-clause;
+# - contains SP-var without CHARSET-clause;
+# - contains text constant;
+# - has localized routine/parameter names;
+# - check:
+# - execute;
+# - SHOW CREATE output;
+# - SHOW output;
+# - SELECT FROM INFORMATION_SCHEMA output;
+# - alter database character set;
+# - change connection collation;
+# - check again;
+# - dump definition using mysqldump;
+# - drop object;
+# - restore object;
+#
+
+###########################################################################
+#
+# NOTE: this file contains text in UTF8 and KOI8-R encodings.
+#
+###########################################################################
+
+--source include/have_utf8.inc
+--source include/have_cp866.inc
+--source include/have_cp1251.inc
+--source include/have_koi8r.inc
+
+###########################################################################
+
+set names koi8r;
+delimiter |;
+
+###########################################################################
+#
+# * Views.
+#
+###########################################################################
+
+--echo
+--echo -------------------------------------------------------------------
+--echo Views
+--echo -------------------------------------------------------------------
+--echo
+
+#
+# Preparation:
+#
+
+# - Create database with fixed, pre-defined character set.
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1|
+--enable_warnings
+
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+
+use mysqltest1|
+
+CREATE TABLE t1( INT)|
+INSERT INTO t1 VALUES(1)|
+
+# - Create views;
+
+--echo
+
+CREATE VIEW v1 AS
+ SELECT '' AS c1, AS c2
+ FROM t1|
+
+--echo
+
+CREATE VIEW v2 AS SELECT _utf8'тест' as c1|
+
+--echo
+
+#
+# First-round checks.
+#
+
+--source include/ddl_i18n.check_views.inc
+
+#
+# Change running environment (alter database character set, change session
+# variables).
+#
+
+--echo
+--echo
+
+ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
+
+#
+# Second-round checks:
+#
+
+# - Change connection to flush cache;
+
+--connect (con2,localhost,root,,)
+--echo
+--echo ---> connection: con2
+
+# - Switch environment variables and trigger loading views;
+
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+
+--disable_result_log
+SELECT * FROM mysqltest1.v1|
+SELECT * FROM mysqltest1.v2|
+--enable_result_log
+
+use mysqltest1|
+
+# - Restore environment;
+
+set names koi8r|
+
+# - Check!
+
+--source include/ddl_i18n.check_views.inc
+
+#
+# Check mysqldump.
+#
+
+# - Dump mysqltest1;
+
+--echo
+--echo ---> Dumping mysqltest1 to ddl_i18n_koi8r.views.mysqltest1.sql
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.views.mysqltest1.sql
+
+# - Clean mysqltest1;
+
+--echo
+--echo
+
+DROP DATABASE mysqltest1|
+
+# - Restore mysqltest1;
+
+--echo
+--echo
+
+--echo ---> Restoring mysqltest1...
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.views.mysqltest1.sql
+
+#
+# Third-round checks.
+#
+
+# - Change connection to flush cache;
+
+--connect (con3,localhost,root,,)
+--echo
+--echo ---> connection: con3
+
+# - Switch environment variables and trigger loading stored procedures;
+
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+
+--disable_result_log
+SELECT * FROM mysqltest1.v1|
+SELECT * FROM mysqltest1.v2|
+--enable_result_log
+
+use mysqltest1|
+
+# - Restore environment;
+
+set names koi8r|
+
+# - Check!
+
+--source include/ddl_i18n.check_views.inc
+
+#
+# Cleanup.
+#
+
+--connection default
+--echo
+--echo ---> connection: default
+
+--disconnect con2
+--disconnect con3
+
+use test|
+
+DROP DATABASE mysqltest1|
+
+###########################################################################
+#
+# * Stored procedures/functions.
+#
+###########################################################################
+
+--echo
+--echo -------------------------------------------------------------------
+--echo Stored procedures/functions
+--echo -------------------------------------------------------------------
+--echo
+
+#
+# Preparation:
+#
+
+# - Create database with fixed, pre-defined character set.
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+--enable_warnings
+
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+
+use mysqltest1|
+
+# - Create two stored routines -- with and without explicit
+# CHARSET-clause for SP-variable;
+#
+
+--echo
+
+# - Procedure p1
+
+CREATE PROCEDURE p1(
+ INOUT 1 CHAR(10),
+ OUT 2 CHAR(10))
+BEGIN
+ DECLARE 1 CHAR(10);
+
+ SELECT
+ COLLATION(1) AS c1,
+ COLLATION(1) AS c2,
+ COLLATION(2) AS c3;
+
+ SELECT
+ COLLATION('') AS c4,
+ COLLATION(_koi8r '') AS c5,
+ COLLATION(_utf8 'текст') AS c6,
+ @@collation_connection AS c7,
+ @@character_set_client AS c8;
+
+ SET 1 = 'a';
+ SET 2 = 'b';
+END|
+
+--echo
+
+# - Procedure p2
+
+CREATE PROCEDURE p2(
+ INOUT 1 CHAR(10) CHARACTER SET utf8,
+ OUT 2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+ DECLARE 1 CHAR(10) CHARACTER SET utf8;
+
+ SELECT
+ COLLATION(1) AS c1,
+ COLLATION(1) AS c2,
+ COLLATION(2) AS c3;
+
+ SELECT
+ COLLATION('') AS c4,
+ COLLATION(_koi8r '') AS c5,
+ COLLATION(_utf8 'текст') AS c6,
+ @@collation_connection AS c7,
+ @@character_set_client AS c8;
+
+ SET 1 = 'a';
+ SET 2 = 'b';
+END|
+
+--echo
+
+# - Procedure p3
+
+CREATE PROCEDURE mysqltest2.p3(
+ INOUT 1 CHAR(10),
+ OUT 2 CHAR(10))
+BEGIN
+ DECLARE 1 CHAR(10);
+
+ SELECT
+ COLLATION(1) AS c1,
+ COLLATION(1) AS c2,
+ COLLATION(2) AS c3;
+
+ SELECT
+ COLLATION('') AS c4,
+ COLLATION(_koi8r '') AS c5,
+ COLLATION(_utf8 'текст') AS c6,
+ @@collation_connection AS c7,
+ @@character_set_client AS c8;
+
+ SET 1 = 'a';
+ SET 2 = 'b';
+END|
+
+--echo
+
+# - Procedure p4
+
+CREATE PROCEDURE mysqltest2.p4(
+ INOUT 1 CHAR(10) CHARACTER SET utf8,
+ OUT 2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+ DECLARE 1 CHAR(10) CHARACTER SET utf8;
+
+ SELECT
+ COLLATION(1) AS c1,
+ COLLATION(1) AS c2,
+ COLLATION(2) AS c3;
+
+ SELECT
+ COLLATION('') AS c4,
+ COLLATION(_koi8r '') AS c5,
+ COLLATION(_utf8 'текст') AS c6,
+ @@collation_connection AS c7,
+ @@character_set_client AS c8;
+
+ SET 1 = 'a';
+ SET 2 = 'b';
+END|
+
+#
+# First-round checks.
+#
+
+--source include/ddl_i18n.check_sp.inc
+
+#
+# Change running environment (alter database character set, change session
+# variables).
+#
+
+--echo
+--echo
+
+ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
+ALTER DATABASE mysqltest2 COLLATE cp866_general_ci|
+
+#
+# Second-round checks:
+#
+
+# - Change connection to flush SP-cache;
+
+--connect (con2,localhost,root,,mysqltest1)
+--echo
+--echo ---> connection: con2
+
+# - Switch environment variables and trigger loading stored procedures;
+
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+
+CALL p1(@a, @b)|
+CALL p2(@a, @b)|
+CALL mysqltest2.p3(@a, @b)|
+CALL mysqltest2.p4(@a, @b)|
+
+# - Restore environment;
+
+set names koi8r|
+
+# - Check!
+
+--source include/ddl_i18n.check_sp.inc
+
+#
+# Check mysqldump.
+#
+
+# - Dump mysqltest1, mysqltest2;
+
+--echo
+--echo ---> Dump of mysqltest1
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest1
+
+--echo
+--echo ---> Dumping mysqltest1 to ddl_i18n_koi8r.sp.mysqltest1.sql
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.sp.mysqltest1.sql
+
+--echo
+--echo ---> Dump of mysqltest2
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest2
+
+--echo
+--echo ---> Dumping mysqltest2 to ddl_i18n_koi8r.sp.mysqltest2.sql
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.sp.mysqltest2.sql
+
+# - Clean mysqltest1, mysqltest2;
+
+--echo
+--echo
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+# - Restore mysqltest1;
+
+--echo
+--echo
+
+--echo ---> Restoring mysqltest1...
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.sp.mysqltest1.sql
+
+--echo ---> Restoring mysqltest2...
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.sp.mysqltest2.sql
+
+#
+# Third-round checks.
+#
+
+# - Change connection to flush SP-cache;
+
+--connect (con3,localhost,root,,mysqltest1)
+--echo
+--echo ---> connection: con3
+
+# - Switch environment variables and trigger loading stored procedures;
+
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+
+CALL p1(@a, @b)|
+CALL p2(@a, @b)|
+CALL mysqltest2.p3(@a, @b)|
+CALL mysqltest2.p4(@a, @b)|
+
+# - Restore environment;
+
+set names koi8r|
+
+# - Check!
+
+--source include/ddl_i18n.check_sp.inc
+
+#
+# Cleanup.
+#
+
+--connection default
+--echo
+--echo ---> connection: default
+
+--disconnect con2
+--disconnect con3
+
+use test|
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+###########################################################################
+#
+# * Triggers.
+#
+###########################################################################
+
+--echo
+--echo -------------------------------------------------------------------
+--echo Triggers
+--echo -------------------------------------------------------------------
+--echo
+
+#
+# Preparation:
+#
+
+# - Create database with fixed, pre-defined character set;
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+--enable_warnings
+
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+
+use mysqltest1|
+
+# - Create tables for triggers;
+
+CREATE TABLE t1(c INT)|
+CREATE TABLE mysqltest2.t1(c INT)|
+
+# - Create log tables;
+
+CREATE TABLE log(msg VARCHAR(255))|
+CREATE TABLE mysqltest2.log(msg VARCHAR(255))|
+
+
+# - Create triggers -- with and without explicit CHARSET-clause for
+# SP-variable;
+#
+
+--echo
+
+# - Trigger trg1
+
+CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+ DECLARE 1 CHAR(10);
+
+ INSERT INTO log VALUES(COLLATION(1));
+ INSERT INTO log VALUES(COLLATION(''));
+ INSERT INTO log VALUES(COLLATION(_koi8r ''));
+ INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+ INSERT INTO log VALUES(@@collation_connection);
+ INSERT INTO log VALUES(@@character_set_client);
+
+ SET @a1 = '';
+ SET @a1 = _koi8r '';
+ SET @a2 = _utf8 'текст';
+END|
+
+--echo
+
+# - Trigger trg2
+
+CREATE TRIGGER trg2 AFTER INSERT ON t1 FOR EACH ROW
+BEGIN
+ DECLARE 1 CHAR(10) CHARACTER SET utf8;
+
+ INSERT INTO log VALUES(COLLATION(1));
+ INSERT INTO log VALUES(COLLATION(''));
+ INSERT INTO log VALUES(COLLATION(_koi8r ''));
+ INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+ INSERT INTO log VALUES(@@collation_connection);
+ INSERT INTO log VALUES(@@character_set_client);
+
+ SET @b1 = '';
+ SET @b1 = _koi8r '';
+ SET @b2 = _utf8 'текст';
+END|
+
+--echo
+
+# - Trigger trg3
+
+CREATE TRIGGER mysqltest2.trg3 BEFORE INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+ DECLARE 1 CHAR(10);
+
+ INSERT INTO log VALUES(COLLATION(1));
+ INSERT INTO log VALUES(COLLATION(''));
+ INSERT INTO log VALUES(COLLATION(_koi8r ''));
+ INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+ INSERT INTO log VALUES(@@collation_connection);
+ INSERT INTO log VALUES(@@character_set_client);
+
+ SET @a1 = '';
+ SET @a1 = _koi8r '';
+ SET @a2 = _utf8 'текст';
+END|
+
+--echo
+
+# - Trigger trg4
+
+CREATE TRIGGER mysqltest2.trg4 AFTER INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+ DECLARE 1 CHAR(10) CHARACTER SET utf8;
+
+ INSERT INTO log VALUES(COLLATION(1));
+ INSERT INTO log VALUES(COLLATION(''));
+ INSERT INTO log VALUES(COLLATION(_koi8r ''));
+ INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+ INSERT INTO log VALUES(@@collation_connection);
+ INSERT INTO log VALUES(@@character_set_client);
+
+ SET @b1 = '';
+ SET @b1 = _koi8r '';
+ SET @b2 = _utf8 'текст';
+END|
+
+--echo
+
+#
+# First-round checks.
+#
+
+--source include/ddl_i18n.check_triggers.inc
+
+#
+# Change running environment (alter database character set, change session
+# variables).
+#
+
+--echo
+--echo
+
+ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
+ALTER DATABASE mysqltest2 COLLATE cp866_general_ci|
+
+#
+# Second-round checks:
+#
+
+# - Flush table cache;
+
+ALTER TABLE t1 ADD COLUMN fake INT|
+ALTER TABLE t1 DROP COLUMN fake|
+
+ALTER TABLE mysqltest2.t1 ADD COLUMN fake INT|
+ALTER TABLE mysqltest2.t1 DROP COLUMN fake|
+
+# - Switch environment variables and initiate loading of triggers
+# (connect using NULL database);
+
+--connect (con2,localhost,root,,)
+--echo
+--echo ---> connection: con2
+
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+
+INSERT INTO mysqltest1.t1 VALUES(0)|
+INSERT INTO mysqltest2.t1 VALUES(0)|
+
+DELETE FROM mysqltest1.log|
+DELETE FROM mysqltest2.log|
+
+# - Restore environment;
+
+set names koi8r|
+
+use mysqltest1|
+
+# - Check!
+
+--source include/ddl_i18n.check_triggers.inc
+
+#
+# Check mysqldump.
+#
+
+# - Dump mysqltest1, mysqltest2;
+
+--echo
+--echo ---> Dump of mysqltest1
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest1
+
+--echo
+--echo ---> Dumping mysqltest1 to ddl_i18n_koi8r.triggers.mysqltest1.sql
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.triggers.mysqltest1.sql
+
+--echo
+--echo ---> Dump of mysqltest2
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest2
+
+--echo
+--echo ---> Dumping mysqltest2 to ddl_i18n_koi8r.triggers.mysqltest2.sql
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.triggers.mysqltest2.sql
+
+# - Clean mysqltest1, mysqltest2;
+
+--echo
+--echo
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+# - Restore mysqltest1;
+
+--echo
+--echo
+
+--echo ---> Restoring mysqltest1...
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.triggers.mysqltest1.sql
+
+--echo ---> Restoring mysqltest2...
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.triggers.mysqltest2.sql
+
+#
+# Third-round checks.
+#
+
+# - Flush table cache;
+
+ALTER TABLE mysqltest1.t1 ADD COLUMN fake INT|
+ALTER TABLE mysqltest1.t1 DROP COLUMN fake|
+
+ALTER TABLE mysqltest2.t1 ADD COLUMN fake INT|
+ALTER TABLE mysqltest2.t1 DROP COLUMN fake|
+
+# - Switch environment variables and initiate loading of triggers
+# (connect using NULL database);
+
+--connect (con3,localhost,root,,)
+--echo
+--echo ---> connection: con3
+
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+
+INSERT INTO mysqltest1.t1 VALUES(0)|
+INSERT INTO mysqltest2.t1 VALUES(0)|
+
+DELETE FROM mysqltest1.log|
+DELETE FROM mysqltest2.log|
+
+# - Restore environment;
+
+set names koi8r|
+
+use mysqltest1|
+
+# - Check!
+
+--source include/ddl_i18n.check_triggers.inc
+
+#
+# Cleanup.
+#
+
+--connection default
+--echo
+--echo ---> connection: default
+
+--disconnect con2
+--disconnect con3
+
+use test|
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+###########################################################################
+#
+# * Events
+#
+# We don't have EXECUTE EVENT so far, so this test is limited. It checks that
+# event with non-latin1 symbols can be created, dumped, restored and SHOW
+# statements work properly.
+#
+###########################################################################
+
+--echo
+--echo -------------------------------------------------------------------
+--echo Events
+--echo -------------------------------------------------------------------
+--echo
+
+#
+# Preparation:
+#
+
+# - Create database with fixed, pre-defined character set.
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+--enable_warnings
+
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+
+use mysqltest1|
+
+# - Create two stored routines -- with and without explicit
+# CHARSET-clause for SP-variable;
+#
+
+--echo
+
+# - Event ev1
+
+CREATE EVENT ev1 ON SCHEDULE AT '2030-01-01 00:00:00' DO
+BEGIN
+ DECLARE 1 CHAR(10);
+
+ SELECT
+ COLLATION(1) AS c1,
+ COLLATION('') AS c2,
+ COLLATION(_koi8r '') AS c3,
+ COLLATION(_utf8 'текст') AS c4,
+ @@collation_connection AS c5,
+ @@character_set_client AS c6;
+END|
+
+--echo
+
+# - Event ev2
+
+CREATE EVENT ev2 ON SCHEDULE AT '2030-01-01 00:00:00' DO
+BEGIN
+ DECLARE 1 CHAR(10) CHARACTER SET utf8;
+
+ SELECT
+ COLLATION(1) AS c1,
+ COLLATION('') AS c2,
+ COLLATION(_koi8r '') AS c3,
+ COLLATION(_utf8 'текст') AS c4,
+ @@collation_connection AS c5,
+ @@character_set_client AS c6;
+END|
+
+--echo
+
+# - Event ev3
+
+CREATE EVENT mysqltest2.ev3 ON SCHEDULE AT '2030-01-01 00:00:00' DO
+BEGIN
+ DECLARE 1 CHAR(10) CHARACTER SET utf8;
+
+ SELECT
+ COLLATION(1) AS c1,
+ COLLATION('') AS c2,
+ COLLATION(_koi8r '') AS c3,
+ COLLATION(_utf8 'текст') AS c4,
+ @@collation_connection AS c5,
+ @@character_set_client AS c6;
+END|
+
+--echo
+
+# - Event ev4
+
+CREATE EVENT mysqltest2.ev4 ON SCHEDULE AT '2030-01-01 00:00:00' DO
+BEGIN
+ DECLARE 1 CHAR(10) CHARACTER SET utf8;
+
+ SELECT
+ COLLATION(1) AS c1,
+ COLLATION('') AS c2,
+ COLLATION(_koi8r '') AS c3,
+ COLLATION(_utf8 'текст') AS c4,
+ @@collation_connection AS c5,
+ @@character_set_client AS c6;
+END|
+
+--echo
+
+
+#
+# First-round checks.
+#
+
+--source include/ddl_i18n.check_events.inc
+
+#
+# Change running environment (alter database character set, change session
+# variables).
+#
+
+--echo
+--echo
+
+ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
+ALTER DATABASE mysqltest2 COLLATE cp866_general_ci|
+
+#
+# Second-round checks:
+#
+
+# - Change connection to flush cache;
+
+--connect (con2,localhost,root,,mysqltest1)
+--echo
+--echo ---> connection: con2
+
+# - Switch environment variables and trigger loading stored procedures;
+
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+
+--disable_result_log
+SHOW CREATE EVENT ev1|
+SHOW CREATE EVENT ev2|
+SHOW CREATE EVENT mysqltest2.ev3|
+SHOW CREATE EVENT mysqltest2.ev4|
+--enable_result_log
+
+# - Restore environment;
+
+set names koi8r|
+
+# - Check!
+
+--source include/ddl_i18n.check_events.inc
+
+#
+# Check mysqldump.
+#
+
+# - Dump mysqltest1, mysqltest2;
+
+--echo
+--echo ---> Dump of mysqltest1
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest1
+
+--echo
+--echo ---> Dumping mysqltest1 to ddl_i18n_koi8r.events.mysqltest1.sql
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.events.mysqltest1.sql
+
+--echo
+--echo ---> Dump of mysqltest2
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest2
+
+--echo
+--echo ---> Dumping mysqltest2 to ddl_i18n_koi8r.events.mysqltest2.sql
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.events.mysqltest2.sql
+
+# - Clean mysqltest1, mysqltest2;
+
+--echo
+--echo
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+# - Restore mysqltest1;
+
+--echo
+--echo
+
+--echo ---> Restoring mysqltest1...
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.events.mysqltest1.sql
+
+--echo ---> Restoring mysqltest2...
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.events.mysqltest2.sql
+
+#
+# Third-round checks.
+#
+
+# - Change connection to flush cache;
+
+--connect (con3,localhost,root,,mysqltest1)
+--echo
+--echo ---> connection: con3
+
+# - Switch environment variables and trigger loading stored procedures;
+
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+
+--disable_result_log
+SHOW CREATE EVENT ev1|
+SHOW CREATE EVENT ev2|
+SHOW CREATE EVENT mysqltest2.ev3|
+SHOW CREATE EVENT mysqltest2.ev4|
+--enable_result_log
+
+# - Restore environment;
+
+set names koi8r|
+
+# - Check!
+
+--source include/ddl_i18n.check_events.inc
+
+###########################################################################
+#
+# * DDL statements inside stored routine.
+#
+# Here we check that DDL statements use actual database collation even if they
+# are called from stored routine.
+#
+###########################################################################
+
+--echo
+--echo -------------------------------------------------------------------
+--echo DDL statements within stored routine.
+--echo -------------------------------------------------------------------
+--echo
+
+#
+# Preparation:
+#
+
+# - Create database with fixed, pre-defined character set.
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+--enable_warnings
+
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+
+use mysqltest1|
+
+# - Create procedures;
+
+--echo
+
+CREATE PROCEDURE p1()
+BEGIN
+ CREATE TABLE t1(col1 VARCHAR(10));
+ SHOW CREATE TABLE t1;
+END|
+
+--echo
+
+CREATE PROCEDURE mysqltest2.p2()
+BEGIN
+ CREATE TABLE t2(col1 VARCHAR(10));
+ SHOW CREATE TABLE t2;
+END|
+
+--echo
+
+#
+# First-round checks.
+#
+
+CALL p1()|
+
+--echo
+
+SHOW CREATE TABLE t1|
+
+--echo
+--echo
+
+CALL mysqltest2.p2()|
+
+--echo
+
+SHOW CREATE TABLE mysqltest2.t2|
+
+#
+# Alter database.
+#
+
+--echo
+
+ALTER DATABASE mysqltest1 COLLATE cp1251_general_cs|
+ALTER DATABASE mysqltest2 COLLATE cp1251_general_cs|
+
+DROP TABLE t1|
+DROP TABLE mysqltest2.t2|
+
+--echo
+
+#
+# Second-round checks.
+#
+
+CALL p1()|
+
+--echo
+
+SHOW CREATE TABLE t1|
+
+--echo
+--echo
+
+CALL mysqltest2.p2()|
+
+--echo
+
+SHOW CREATE TABLE mysqltest2.t2|
+
+###########################################################################
+#
+# That's it.
+#
+###########################################################################
+
+#
+# Cleanup.
+#
+
+--connection default
+--echo
+--echo ---> connection: default
+
+--disconnect con2
+--disconnect con3
+
+use test|
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
diff --git a/mysql-test/t/ddl_i18n_utf8.test b/mysql-test/t/ddl_i18n_utf8.test
new file mode 100644
index 00000000000..5f032232e56
--- /dev/null
+++ b/mysql-test/t/ddl_i18n_utf8.test
@@ -0,0 +1,1112 @@
+# Objects to test:
+# - stored procedures/functions;
+# - triggers;
+# - events;
+# - views;
+#
+# For stored routines:
+# - create a database with collation utf8_unicode_ci;
+# - create an object, which
+# - contains SP-var with explicit CHARSET-clause;
+# - contains SP-var without CHARSET-clause;
+# - contains text constant;
+# - has localized routine/parameter names;
+# - check:
+# - execute;
+# - SHOW CREATE output;
+# - SHOW output;
+# - SELECT FROM INFORMATION_SCHEMA output;
+# - alter database character set;
+# - change connection collation;
+# - check again;
+# - dump definition using mysqldump;
+# - drop object;
+# - restore object;
+#
+
+###########################################################################
+#
+# NOTE: this file contains text in UTF8 and KOI8-R encodings.
+#
+###########################################################################
+
+--source include/have_utf8.inc
+--source include/have_cp866.inc
+--source include/have_cp1251.inc
+--source include/have_koi8r.inc
+
+###########################################################################
+
+set names utf8;
+delimiter |;
+
+###########################################################################
+#
+# * Views.
+#
+###########################################################################
+
+--echo
+--echo -------------------------------------------------------------------
+--echo Views
+--echo -------------------------------------------------------------------
+--echo
+
+#
+# Preparation:
+#
+
+# - Create database with fixed, pre-defined character set.
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1|
+--enable_warnings
+
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+
+use mysqltest1|
+
+CREATE TABLE t1(кол INT)|
+INSERT INTO t1 VALUES(1)|
+
+# - Create views;
+
+--echo
+
+CREATE VIEW v1 AS
+ SELECT 'тест' AS c1, кол AS c2
+ FROM t1|
+
+--echo
+
+CREATE VIEW v2 AS SELECT _koi8r'' as c1|
+
+--echo
+
+#
+# First-round checks.
+#
+
+--source include/ddl_i18n.check_views.inc
+
+#
+# Change running environment (alter database character set, change session
+# variables).
+#
+
+--echo
+--echo
+
+ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
+
+#
+# Second-round checks:
+#
+
+# - Change connection to flush cache;
+
+--connect (con2,localhost,root,,)
+--echo
+--echo ---> connection: con2
+
+# - Switch environment variables and trigger loading views;
+
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+
+--disable_result_log
+SELECT * FROM mysqltest1.v1|
+SELECT * FROM mysqltest1.v2|
+--enable_result_log
+
+use mysqltest1|
+
+# - Restore environment;
+
+set names utf8|
+
+# - Check!
+
+--source include/ddl_i18n.check_views.inc
+
+#
+# Check mysqldump.
+#
+
+# - Dump mysqltest1;
+
+--echo
+--echo ---> Dumping mysqltest1 to ddl_i18n_utf8views.mysqltest1.sql
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8views.mysqltest1.sql
+
+# - Clean mysqltest1;
+
+--echo
+--echo
+
+DROP DATABASE mysqltest1|
+
+# - Restore mysqltest1;
+
+--echo
+--echo
+
+--echo ---> Restoring mysqltest1...
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8views.mysqltest1.sql
+
+#
+# Third-round checks.
+#
+
+# - Change connection to flush cache;
+
+--connect (con3,localhost,root,,)
+--echo
+--echo ---> connection: con3
+
+# - Switch environment variables and trigger loading stored procedures;
+
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+
+--disable_result_log
+SELECT * FROM mysqltest1.v1|
+SELECT * FROM mysqltest1.v2|
+--enable_result_log
+
+use mysqltest1|
+
+# - Restore environment;
+
+set names utf8|
+
+# - Check!
+
+--source include/ddl_i18n.check_views.inc
+
+#
+# Cleanup.
+#
+
+--connection default
+--echo
+--echo ---> connection: default
+
+--disconnect con2
+--disconnect con3
+
+use test|
+
+DROP DATABASE mysqltest1|
+
+###########################################################################
+#
+# * Stored procedures/functions.
+#
+###########################################################################
+
+--echo
+--echo -------------------------------------------------------------------
+--echo Stored procedures/functions
+--echo -------------------------------------------------------------------
+--echo
+
+#
+# Preparation:
+#
+
+# - Create database with fixed, pre-defined character set.
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+--enable_warnings
+
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+
+use mysqltest1|
+
+# - Create two stored routines -- with and without explicit
+# CHARSET-clause for SP-variable;
+#
+
+--echo
+
+# - Procedure p1
+
+CREATE PROCEDURE p1(
+ INOUT парам1 CHAR(10),
+ OUT парам2 CHAR(10))
+BEGIN
+ DECLARE перем1 CHAR(10);
+
+ SELECT
+ COLLATION(перем1) AS c1,
+ COLLATION(парам1) AS c2,
+ COLLATION(парам2) AS c3;
+
+ SELECT
+ COLLATION('текст') AS c4,
+ COLLATION(_utf8 'текст') AS c5,
+ COLLATION(_koi8r '') AS c6,
+ @@collation_connection AS c7,
+ @@character_set_client AS c8;
+
+ SET парам1 = 'a';
+ SET парам2 = 'b';
+END|
+
+--echo
+
+# - Procedure p2
+
+CREATE PROCEDURE p2(
+ INOUT парам1 CHAR(10) CHARACTER SET utf8,
+ OUT парам2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+ DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+
+ SELECT
+ COLLATION(перем1) AS c1,
+ COLLATION(парам1) AS c2,
+ COLLATION(парам2) AS c3;
+
+ SELECT
+ COLLATION('текст') AS c4,
+ COLLATION(_utf8 'текст') AS c5,
+ COLLATION(_koi8r '') AS c6,
+ @@collation_connection AS c7,
+ @@character_set_client AS c8;
+
+ SET парам1 = 'a';
+ SET парам2 = 'b';
+END|
+
+--echo
+
+# - Procedure p3
+
+CREATE PROCEDURE mysqltest2.p3(
+ INOUT парам1 CHAR(10),
+ OUT парам2 CHAR(10))
+BEGIN
+ DECLARE перем1 CHAR(10);
+
+ SELECT
+ COLLATION(перем1) AS c1,
+ COLLATION(парам1) AS c2,
+ COLLATION(парам2) AS c3;
+
+ SELECT
+ COLLATION('текст') AS c4,
+ COLLATION(_utf8 'текст') AS c5,
+ COLLATION(_koi8r '') AS c6,
+ @@collation_connection AS c7,
+ @@character_set_client AS c8;
+
+ SET парам1 = 'a';
+ SET парам2 = 'b';
+END|
+
+--echo
+
+# - Procedure p4
+
+CREATE PROCEDURE mysqltest2.p4(
+ INOUT парам1 CHAR(10) CHARACTER SET utf8,
+ OUT парам2 CHAR(10) CHARACTER SET utf8)
+BEGIN
+ DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+
+ SELECT
+ COLLATION(перем1) AS c1,
+ COLLATION(парам1) AS c2,
+ COLLATION(парам2) AS c3;
+
+ SELECT
+ COLLATION('текст') AS c4,
+ COLLATION(_utf8 'текст') AS c5,
+ COLLATION(_koi8r '') AS c6,
+ @@collation_connection AS c7,
+ @@character_set_client AS c8;
+
+ SET парам1 = 'a';
+ SET парам2 = 'b';
+END|
+
+#
+# First-round checks.
+#
+
+--source include/ddl_i18n.check_sp.inc
+
+#
+# Change running environment (alter database character set, change session
+# variables).
+#
+
+--echo
+--echo
+
+ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
+ALTER DATABASE mysqltest2 COLLATE cp866_general_ci|
+
+#
+# Second-round checks:
+#
+
+# - Change connection to flush SP-cache;
+
+--connect (con2,localhost,root,,mysqltest1)
+--echo
+--echo ---> connection: con2
+
+# - Switch environment variables and trigger loading stored procedures;
+
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+
+CALL p1(@a, @b)|
+CALL p2(@a, @b)|
+CALL mysqltest2.p3(@a, @b)|
+CALL mysqltest2.p4(@a, @b)|
+
+# - Restore environment;
+
+set names utf8|
+
+# - Check!
+
+--source include/ddl_i18n.check_sp.inc
+
+#
+# Check mysqldump.
+#
+
+# - Dump mysqltest1, mysqltest2;
+
+--echo
+--echo ---> Dump of mysqltest1
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest1
+
+--echo
+--echo ---> Dumping mysqltest1 to ddl_i18n_utf8sp.mysqltest1.sql
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8sp.mysqltest1.sql
+
+--echo
+--echo ---> Dump of mysqltest2
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest2
+
+--echo
+--echo ---> Dumping mysqltest2 to ddl_i18n_utf8sp.mysqltest2.sql
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8sp.mysqltest2.sql
+
+# - Clean mysqltest1, mysqltest2;
+
+--echo
+--echo
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+# - Restore mysqltest1;
+
+--echo
+--echo
+
+--echo ---> Restoring mysqltest1...
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8sp.mysqltest1.sql
+
+--echo ---> Restoring mysqltest2...
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8sp.mysqltest2.sql
+
+#
+# Third-round checks.
+#
+
+# - Change connection to flush SP-cache;
+
+--connect (con3,localhost,root,,mysqltest1)
+--echo
+--echo ---> connection: con3
+
+# - Switch environment variables and trigger loading stored procedures;
+
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+
+CALL p1(@a, @b)|
+CALL p2(@a, @b)|
+CALL mysqltest2.p3(@a, @b)|
+CALL mysqltest2.p4(@a, @b)|
+
+# - Restore environment;
+
+set names utf8|
+
+# - Check!
+
+--source include/ddl_i18n.check_sp.inc
+
+#
+# Cleanup.
+#
+
+--connection default
+--echo
+--echo ---> connection: default
+
+--disconnect con2
+--disconnect con3
+
+use test|
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+###########################################################################
+#
+# * Triggers.
+#
+###########################################################################
+
+--echo
+--echo -------------------------------------------------------------------
+--echo Triggers
+--echo -------------------------------------------------------------------
+--echo
+
+#
+# Preparation:
+#
+
+# - Create database with fixed, pre-defined character set;
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+--enable_warnings
+
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+
+use mysqltest1|
+
+# - Create tables for triggers;
+
+CREATE TABLE t1(c INT)|
+CREATE TABLE mysqltest2.t1(c INT)|
+
+# - Create log tables;
+
+CREATE TABLE log(msg VARCHAR(255))|
+CREATE TABLE mysqltest2.log(msg VARCHAR(255))|
+
+
+# - Create triggers -- with and without explicit CHARSET-clause for
+# SP-variable;
+#
+
+--echo
+
+# - Trigger trg1
+
+CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+ DECLARE перем1 CHAR(10);
+
+ INSERT INTO log VALUES(COLLATION(перем1));
+ INSERT INTO log VALUES(COLLATION('текст'));
+ INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+ INSERT INTO log VALUES(COLLATION(_koi8r ''));
+ INSERT INTO log VALUES(@@collation_connection);
+ INSERT INTO log VALUES(@@character_set_client);
+
+ SET @a1 = 'текст';
+ SET @a2 = _utf8 'текст';
+ SET @a3 = _koi8r '';
+END|
+
+--echo
+
+# - Trigger trg2
+
+CREATE TRIGGER trg2 AFTER INSERT ON t1 FOR EACH ROW
+BEGIN
+ DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+
+ INSERT INTO log VALUES(COLLATION(перем1));
+ INSERT INTO log VALUES(COLLATION('текст'));
+ INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+ INSERT INTO log VALUES(COLLATION(_koi8r ''));
+ INSERT INTO log VALUES(@@collation_connection);
+ INSERT INTO log VALUES(@@character_set_client);
+
+ SET @b1 = 'текст';
+ SET @b2 = _utf8 'текст';
+ SET @b3 = _koi8r '';
+END|
+
+--echo
+
+# - Trigger trg3
+
+CREATE TRIGGER mysqltest2.trg3 BEFORE INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+ DECLARE перем1 CHAR(10);
+
+ INSERT INTO log VALUES(COLLATION(перем1));
+ INSERT INTO log VALUES(COLLATION('текст'));
+ INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+ INSERT INTO log VALUES(COLLATION(_koi8r ''));
+ INSERT INTO log VALUES(@@collation_connection);
+ INSERT INTO log VALUES(@@character_set_client);
+
+ SET @a1 = 'текст';
+ SET @a2 = _utf8 'текст';
+ SET @a3 = _koi8r '';
+END|
+
+--echo
+
+# - Trigger trg4
+
+CREATE TRIGGER mysqltest2.trg4 AFTER INSERT ON mysqltest2.t1 FOR EACH ROW
+BEGIN
+ DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+
+ INSERT INTO log VALUES(COLLATION(перем1));
+ INSERT INTO log VALUES(COLLATION('текст'));
+ INSERT INTO log VALUES(COLLATION(_utf8 'текст'));
+ INSERT INTO log VALUES(COLLATION(_koi8r ''));
+ INSERT INTO log VALUES(@@collation_connection);
+ INSERT INTO log VALUES(@@character_set_client);
+
+ SET @b1 = 'текст';
+ SET @b2 = _utf8 'текст';
+ SET @b3 = _koi8r '';
+END|
+
+--echo
+
+#
+# First-round checks.
+#
+
+--source include/ddl_i18n.check_triggers.inc
+
+#
+# Change running environment (alter database character set, change session
+# variables).
+#
+
+--echo
+--echo
+
+ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
+ALTER DATABASE mysqltest2 COLLATE cp866_general_ci|
+
+#
+# Second-round checks:
+#
+
+# - Flush table cache;
+
+ALTER TABLE t1 ADD COLUMN fake INT|
+ALTER TABLE t1 DROP COLUMN fake|
+
+ALTER TABLE mysqltest2.t1 ADD COLUMN fake INT|
+ALTER TABLE mysqltest2.t1 DROP COLUMN fake|
+
+# - Switch environment variables and initiate loading of triggers
+# (connect using NULL database);
+
+--connect (con2,localhost,root,,)
+--echo
+--echo ---> connection: con2
+
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+
+INSERT INTO mysqltest1.t1 VALUES(0)|
+INSERT INTO mysqltest2.t1 VALUES(0)|
+
+DELETE FROM mysqltest1.log|
+DELETE FROM mysqltest2.log|
+
+# - Restore environment;
+
+set names utf8|
+
+use mysqltest1|
+
+# - Check!
+
+--source include/ddl_i18n.check_triggers.inc
+
+#
+# Check mysqldump.
+#
+
+# - Dump mysqltest1, mysqltest2;
+
+--echo
+--echo ---> Dump of mysqltest1
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest1
+
+--echo
+--echo ---> Dumping mysqltest1 to ddl_i18n_utf8triggers.mysqltest1.sql
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8triggers.mysqltest1.sql
+
+--echo
+--echo ---> Dump of mysqltest2
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest2
+
+--echo
+--echo ---> Dumping mysqltest2 to ddl_i18n_utf8triggers.mysqltest2.sql
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8triggers.mysqltest2.sql
+
+# - Clean mysqltest1, mysqltest2;
+
+--echo
+--echo
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+# - Restore mysqltest1;
+
+--echo
+--echo
+
+--echo ---> Restoring mysqltest1...
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8triggers.mysqltest1.sql
+
+--echo ---> Restoring mysqltest2...
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8triggers.mysqltest2.sql
+
+#
+# Third-round checks.
+#
+
+# - Flush table cache;
+
+ALTER TABLE mysqltest1.t1 ADD COLUMN fake INT|
+ALTER TABLE mysqltest1.t1 DROP COLUMN fake|
+
+ALTER TABLE mysqltest2.t1 ADD COLUMN fake INT|
+ALTER TABLE mysqltest2.t1 DROP COLUMN fake|
+
+# - Switch environment variables and initiate loading of triggers
+# (connect using NULL database);
+
+--connect (con3,localhost,root,,)
+--echo
+--echo ---> connection: con3
+
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+
+INSERT INTO mysqltest1.t1 VALUES(0)|
+INSERT INTO mysqltest2.t1 VALUES(0)|
+
+DELETE FROM mysqltest1.log|
+DELETE FROM mysqltest2.log|
+
+# - Restore environment;
+
+set names utf8|
+
+use mysqltest1|
+
+# - Check!
+
+--source include/ddl_i18n.check_triggers.inc
+
+#
+# Cleanup.
+#
+
+--connection default
+--echo
+--echo ---> connection: default
+
+--disconnect con2
+--disconnect con3
+
+use test|
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+###########################################################################
+#
+# * Events
+#
+# We don't have EXECUTE EVENT so far, so this test is limited. It checks that
+# event with non-latin1 symbols can be created, dumped, restored and SHOW
+# statements work properly.
+#
+###########################################################################
+
+--echo
+--echo -------------------------------------------------------------------
+--echo Events
+--echo -------------------------------------------------------------------
+--echo
+
+#
+# Preparation:
+#
+
+# - Create database with fixed, pre-defined character set.
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+--enable_warnings
+
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+
+use mysqltest1|
+
+# - Create two stored routines -- with and without explicit
+# CHARSET-clause for SP-variable;
+#
+
+--echo
+
+# - Event ev1
+
+CREATE EVENT ev1 ON SCHEDULE AT '2030-01-01 00:00:00' DO
+BEGIN
+ DECLARE перем1 CHAR(10);
+
+ SELECT
+ COLLATION(перем1) AS c1,
+ COLLATION('текст') AS c2,
+ COLLATION(_utf8 'текст') AS c3,
+ COLLATION(_koi8r '') AS c4,
+ @@collation_connection AS c5,
+ @@character_set_client AS c6;
+END|
+
+--echo
+
+# - Event ev2
+
+CREATE EVENT ev2 ON SCHEDULE AT '2030-01-01 00:00:00' DO
+BEGIN
+ DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+
+ SELECT
+ COLLATION(перем1) AS c1,
+ COLLATION('текст') AS c2,
+ COLLATION(_utf8 'текст') AS c3,
+ COLLATION(_koi8r '') AS c4,
+ @@collation_connection AS c5,
+ @@character_set_client AS c6;
+END|
+
+--echo
+
+# - Event ev3
+
+CREATE EVENT mysqltest2.ev3 ON SCHEDULE AT '2030-01-01 00:00:00' DO
+BEGIN
+ DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+
+ SELECT
+ COLLATION(перем1) AS c1,
+ COLLATION('текст') AS c2,
+ COLLATION(_utf8 'текст') AS c3,
+ COLLATION(_koi8r '') AS c4,
+ @@collation_connection AS c5,
+ @@character_set_client AS c6;
+END|
+
+--echo
+
+# - Event ev4
+
+CREATE EVENT mysqltest2.ev4 ON SCHEDULE AT '2030-01-01 00:00:00' DO
+BEGIN
+ DECLARE перем1 CHAR(10) CHARACTER SET utf8;
+
+ SELECT
+ COLLATION(перем1) AS c1,
+ COLLATION('текст') AS c2,
+ COLLATION(_utf8 'текст') AS c3,
+ COLLATION(_koi8r '') AS c4,
+ @@collation_connection AS c5,
+ @@character_set_client AS c6;
+END|
+
+--echo
+
+
+#
+# First-round checks.
+#
+
+--source include/ddl_i18n.check_events.inc
+
+#
+# Change running environment (alter database character set, change session
+# variables).
+#
+
+--echo
+--echo
+
+ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
+ALTER DATABASE mysqltest2 COLLATE cp866_general_ci|
+
+#
+# Second-round checks:
+#
+
+# - Change connection to flush cache;
+
+--connect (con2,localhost,root,,mysqltest1)
+--echo
+--echo ---> connection: con2
+
+# - Switch environment variables and trigger loading stored procedures;
+
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+
+--disable_result_log
+SHOW CREATE EVENT ev1|
+SHOW CREATE EVENT ev2|
+SHOW CREATE EVENT mysqltest2.ev3|
+SHOW CREATE EVENT mysqltest2.ev4|
+--enable_result_log
+
+# - Restore environment;
+
+set names utf8|
+
+# - Check!
+
+--source include/ddl_i18n.check_events.inc
+
+#
+# Check mysqldump.
+#
+
+# - Dump mysqltest1, mysqltest2;
+
+--echo
+--echo ---> Dump of mysqltest1
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest1
+
+--echo
+--echo ---> Dumping mysqltest1 to ddl_i18n_utf8events.mysqltest1.sql
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8events.mysqltest1.sql
+
+--echo
+--echo ---> Dump of mysqltest2
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest2
+
+--echo
+--echo ---> Dumping mysqltest2 to ddl_i18n_utf8events.mysqltest2.sql
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8events.mysqltest2.sql
+
+# - Clean mysqltest1, mysqltest2;
+
+--echo
+--echo
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+# - Restore mysqltest1;
+
+--echo
+--echo
+
+--echo ---> Restoring mysqltest1...
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8events.mysqltest1.sql
+
+--echo ---> Restoring mysqltest2...
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8events.mysqltest2.sql
+
+#
+# Third-round checks.
+#
+
+# - Change connection to flush cache;
+
+--connect (con3,localhost,root,,mysqltest1)
+--echo
+--echo ---> connection: con3
+
+# - Switch environment variables and trigger loading stored procedures;
+
+SET @@character_set_client= cp1251|
+SET @@character_set_results= cp1251|
+SET @@collation_connection= cp1251_general_ci|
+
+--disable_result_log
+SHOW CREATE EVENT ev1|
+SHOW CREATE EVENT ev2|
+SHOW CREATE EVENT mysqltest2.ev3|
+SHOW CREATE EVENT mysqltest2.ev4|
+--enable_result_log
+
+# - Restore environment;
+
+set names utf8|
+
+# - Check!
+
+--source include/ddl_i18n.check_events.inc
+
+###########################################################################
+#
+# * DDL statements inside stored routine.
+#
+# Here we check that DDL statements use actual database collation even if they
+# are called from stored routine.
+#
+###########################################################################
+
+--echo
+--echo -------------------------------------------------------------------
+--echo DDL statements within stored routine.
+--echo -------------------------------------------------------------------
+--echo
+
+#
+# Preparation:
+#
+
+# - Create database with fixed, pre-defined character set.
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+--enable_warnings
+
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci|
+
+use mysqltest1|
+
+# - Create procedures;
+
+--echo
+
+CREATE PROCEDURE p1()
+BEGIN
+ CREATE TABLE t1(col1 VARCHAR(10));
+ SHOW CREATE TABLE t1;
+END|
+
+--echo
+
+CREATE PROCEDURE mysqltest2.p2()
+BEGIN
+ CREATE TABLE t2(col1 VARCHAR(10));
+ SHOW CREATE TABLE t2;
+END|
+
+--echo
+
+#
+# First-round checks.
+#
+
+CALL p1()|
+
+--echo
+
+SHOW CREATE TABLE t1|
+
+--echo
+--echo
+
+CALL mysqltest2.p2()|
+
+--echo
+
+SHOW CREATE TABLE mysqltest2.t2|
+
+#
+# Alter database.
+#
+
+--echo
+
+ALTER DATABASE mysqltest1 COLLATE cp1251_general_cs|
+ALTER DATABASE mysqltest2 COLLATE cp1251_general_cs|
+
+DROP TABLE t1|
+DROP TABLE mysqltest2.t2|
+
+--echo
+
+#
+# Second-round checks.
+#
+
+CALL p1()|
+
+--echo
+
+SHOW CREATE TABLE t1|
+
+--echo
+--echo
+
+CALL mysqltest2.p2()|
+
+--echo
+
+SHOW CREATE TABLE mysqltest2.t2|
+
+###########################################################################
+#
+# That's it.
+#
+###########################################################################
+
+#
+# Cleanup.
+#
+
+--connection default
+--echo
+--echo ---> connection: default
+
+--disconnect con2
+--disconnect con3
+
+use test|
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
diff --git a/mysql-test/t/disabled.def b/mysql-test/t/disabled.def
index 746af7a6c38..1ddecb5a887 100644
--- a/mysql-test/t/disabled.def
+++ b/mysql-test/t/disabled.def
@@ -19,7 +19,6 @@ im_instance_conf : Bug#20294 2007-05-30 alik Instance manager tests
im_life_cycle : BUG#27851 Instance manager dies on ASSERT in ~Thread_registry() or from not being able to close a mysqld instance.
im_instance_conf : BUG#28743 Instance manager generates warnings in test suite
im_utils : BUG#28743 Instance manager generates warnings in test suite
-innodb : Disabling test case awaiting reply from Innobase
concurrent_innodb : BUG#21579 2006-08-11 mleich innodb_concurrent random failures with varying differences
ndb_autodiscover : BUG#18952 2006-02-16 jmiller Needs to be fixed w.r.t binlog
ndb_autodiscover2 : BUG#18952 2006-02-16 jmiller Needs to be fixed w.r.t binlog
@@ -35,6 +34,8 @@ rpl_ndb_innodb2ndb : Bug #19710 Cluster replication to partition table fa
rpl_ndb_myisam2ndb : Bug #19710 Cluster replication to partition table fails on DELETE FROM statement
#rpl_row_blob_innodb : BUG#18980 2006-04-10 kent Test fails randomly
rpl_ndb_ddl : BUG#28798 2007-05-31 lars Valgrind failure in NDB
+rpl_ndb_mix_innodb : BUG#28123 rpl_ndb_mix_innodb.test casue slave to core on sol10-sparc-a
+rpl_ndb_ctype_ucs2_def : BUG#27404 util thd mysql_parse sig11 when mysqld default multibyte charset
rpl_invoked_features : BUG#29020 2007-06-21 Lars Non-deterministic test case
ctype_big5 : BUG#26711 2007-06-21 Lars Test has never worked on Double Whopper
@@ -51,5 +52,4 @@ im_options_set : Bug#20294: Instance manager tests fail randomly
im_options_unset : Bug#20294: Instance manager tests fail randomly
mysql_upgrade : Bug#28560 test links to /usr/local/mysql/lib libraries, causes non-determinism and failures on ABI breakage
rpl_udf : Bug#28993 rpl_udf test causes server crash and valgrind warning in pushbuild
-rpl_ndb_circular : Bug#29233 rpl_ndb_circular fails randomly
ndb_dd_sql_features : Bug#29102 ndb_dd_sql_features fails in pushbuild
diff --git a/mysql-test/t/errors.test b/mysql-test/t/errors.test
index 4fbdcba635f..89579ec1739 100644
--- a/mysql-test/t/errors.test
+++ b/mysql-test/t/errors.test
@@ -53,4 +53,17 @@ INSERT INTO t1 VALUES(2),(3);
SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0)));
DROP TABLE t1;
+#
+# Bug #28677: SELECT on missing column gives extra error
+#
+CREATE TABLE t1( a INT );
+--error ER_BAD_FIELD_ERROR
+SELECT b FROM t1;
+SHOW ERRORS;
+--error ER_BAD_FIELD_ERROR
+CREATE TABLE t2 SELECT b FROM t1;
+SHOW ERRORS;
+--error ER_BAD_FIELD_ERROR
+INSERT INTO t1 SELECT b FROM t1;
+DROP TABLE t1;
# End of 5.0 tests
diff --git a/mysql-test/t/events.test b/mysql-test/t/events.test
index dcb591352a8..d7232705b81 100644
--- a/mysql-test/t/events.test
+++ b/mysql-test/t/events.test
@@ -185,7 +185,30 @@ set names cp1251;
create event 21 on schedule every '50:23:59:95' day_second COMMENT ' 1251 ' do select 1;
--replace_regex /STARTS '[^']+'/STARTS '#'/
SHOW CREATE EVENT 21;
-insert into mysql.event (db, name, body, definer, interval_value, interval_field, originator) values (database(), "root22", "select 1", user(), 100, "SECOND_MICROSECOND", 1);
+insert into mysql.event (
+ db,
+ name,
+ body,
+ definer,
+ interval_value,
+ interval_field,
+ originator,
+ character_set_client,
+ collation_connection,
+ db_collation,
+ body_utf8)
+values (
+ database(),
+ "root22",
+ "select 1",
+ user(),
+ 100,
+ "SECOND_MICROSECOND",
+ 1,
+ 'utf8',
+ 'utf8_general_ci',
+ 'utf8_general_ci',
+ 'select 1');
--error ER_NOT_SUPPORTED_YET
show create event root22;
--error ER_NOT_SUPPORTED_YET
diff --git a/mysql-test/t/events_bugs.test b/mysql-test/t/events_bugs.test
index f369fbecd66..4186b4701fa 100644
--- a/mysql-test/t/events_bugs.test
+++ b/mysql-test/t/events_bugs.test
@@ -648,7 +648,69 @@ CREATE EVENT new_event ON SCHEDULE AT NOW() ENDS NOW() DO SELECT 1;
--error ER_PARSE_ERROR
CREATE EVENT new_event ON SCHEDULE AT NOW() STARTS NOW() ENDS NOW() DO SELECT 1;
-
+#
+# START - BUG#28924 If I drop the user who is the definer of an active event then server cores
+#
+let $engine=MyISAM;
+USE test;
+SHOW GRANTS FOR CURRENT_USER;
+SET GLOBAL event_scheduler = ON;
+eval CREATE TABLE event_log (id int KEY AUTO_INCREMENT,
+ ev_nm char(40), ev_cnt int,
+ ev_tm timestamp) ENGINE=$engine;
+SET @ev_base_date = 20281224180000;
+--disable_warnings
+SET autocommit=0;
+#DROP DATABASE IF EXISTS ev_db_1;
+#CREATE DATABASE ev_db_1;
+--enable_warnings
+CREATE USER evtest1@localhost;
+SET PASSWORD FOR evtest1@localhost = password('ev1');
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM evtest1@localhost;
+GRANT create, insert, select, event ON events_test.* TO evtest1@localhost;
+GRANT select,insert ON test.* TO evtest1@localhost;
+SHOW GRANTS FOR evtest1@localhost;
+
+--echo connection e1;
+--replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+connect (e1,localhost,evtest1,ev1,events_test,$MASTER_MYPORT,$MASTER_MYSOCK);
+USE events_test;
+
+DELIMITER |;
+CREATE EVENT ev_sched_1823 ON SCHEDULE EVERY 2 SECOND
+DO BEGIN
+ SET AUTOCOMMIT = 0;
+ SET @evname = 'ev_sched_1823';
+ SET @cnt = 0;
+ SELECT COUNT(*) INTO @cnt FROM test.event_log WHERE ev_nm = @evname;
+ IF @cnt < 6 THEN
+ INSERT INTO test.event_log VALUES (NULL,@evname,@cnt+1,current_timestamp());
+ COMMIT;
+ END IF;
+ SELECT COUNT(*) INTO @cnt FROM test.event_log WHERE ev_nm = @evname;
+ IF @cnt < 6 THEN
+ INSERT INTO test.event_log VALUES (NULL,@evname,@cnt+1,current_timestamp());
+ ROLLBACK;
+ END IF;
+END;|
+DELIMITER ;|
+
+--sleep 6
+--echo connection default;
+DROP EVENT ev_sched_1823;
+connection default;
+DROP USER evtest1@localhost;
+
+--sleep 6
+USE test;
+--echo =====================================================================================
+--sleep 5
+#--disable_result_log
+select id,ev_nm,ev_cnt from event_log order by id;
+#--enable_result_log
+DROP TABLE event_log;
+#DROP DATABASE ev_db_1;
+SET GLOBAL event_scheduler = OFF;
#
# End of tests
diff --git a/mysql-test/t/information_schema.test b/mysql-test/t/information_schema.test
index 755419cbf52..9babeddbae2 100644
--- a/mysql-test/t/information_schema.test
+++ b/mysql-test/t/information_schema.test
@@ -825,7 +825,7 @@ drop table t1;
use mysql;
INSERT INTO `proc` VALUES ('test','','PROCEDURE','','SQL','CONTAINS_SQL',
'NO','DEFINER','','','BEGIN\r\n \r\nEND','root@%','2006-03-02 18:40:03',
-'2006-03-02 18:40:03','','');
+'2006-03-02 18:40:03','','','utf8','utf8_general_ci','utf8_general_ci','n/a');
select routine_name from information_schema.routines;
delete from proc where name='';
use test;
diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test
index 1ca6b8b4d98..321a1f4763a 100644
--- a/mysql-test/t/innodb.test
+++ b/mysql-test/t/innodb.test
@@ -13,6 +13,11 @@
-- source include/not_embedded.inc
-- source include/have_innodb.inc
+-- source include/have_log_bin.inc
+
+# Disabling it temporarily for statement-based logging since some
+# tests are not safe while binlog is on.
+-- source include/have_binlog_format_mixed_or_row.inc
#
# Small basic test with ignore
@@ -774,7 +779,7 @@ CREATE TABLE `t2` (
insert into t1 values (1,1),(2,2);
insert into t2 values (1,1),(4,4);
reset master;
---error ER_DUP_ENTRY_WITH_KEY_NAME
+--error ER_DUP_ENTRY
UPDATE t2,t1 SET t2.a=t1.a+2;
# check
select * from t2 /* must be (3,1), (4,4) */;
@@ -786,7 +791,7 @@ delete from t2;
insert into t1 values (1,2),(3,4),(4,4);
insert into t2 values (1,2),(3,4),(4,4);
reset master;
---error ER_DUP_ENTRY_WITH_KEY_NAME
+--error ER_DUP_ENTRY
UPDATE t2,t1 SET t2.a=t2.b where t2.a=t1.a;
show master status /* there must be no UPDATE query event */;
diff --git a/mysql-test/t/loaddata_autocom_ndb.test b/mysql-test/t/loaddata_autocom_ndb.test
index a6a3aec2c4e..f4a6743aabe 100644
--- a/mysql-test/t/loaddata_autocom_ndb.test
+++ b/mysql-test/t/loaddata_autocom_ndb.test
@@ -1,5 +1,4 @@
--source include/have_ndb.inc
---source include/have_binlog_format_mixed_or_row.inc
let $engine_type=ndbcluster;
--source include/loaddata_autocom.inc
diff --git a/mysql-test/t/ndb_alter_table.test b/mysql-test/t/ndb_alter_table.test
index d85e4900337..082fe726927 100644
--- a/mysql-test/t/ndb_alter_table.test
+++ b/mysql-test/t/ndb_alter_table.test
@@ -1,5 +1,3 @@
--- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/have_multi_ndb.inc
-- source include/not_embedded.inc
diff --git a/mysql-test/t/ndb_alter_table2.test b/mysql-test/t/ndb_alter_table2.test
index 654453cc4cf..f078ed6b479 100644
--- a/mysql-test/t/ndb_alter_table2.test
+++ b/mysql-test/t/ndb_alter_table2.test
@@ -1,5 +1,3 @@
--- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/have_multi_ndb.inc
-- source include/not_embedded.inc
diff --git a/mysql-test/t/ndb_alter_table3.test b/mysql-test/t/ndb_alter_table3.test
index 2f8f9ebcf89..86e664b23b0 100644
--- a/mysql-test/t/ndb_alter_table3.test
+++ b/mysql-test/t/ndb_alter_table3.test
@@ -1,5 +1,3 @@
--- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/have_multi_ndb.inc
-- source include/not_embedded.inc
diff --git a/mysql-test/t/ndb_autodiscover.test b/mysql-test/t/ndb_autodiscover.test
index 6e70b8f5979..06d47693c10 100644
--- a/mysql-test/t/ndb_autodiscover.test
+++ b/mysql-test/t/ndb_autodiscover.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_autodiscover2.test b/mysql-test/t/ndb_autodiscover2.test
index 360ce7195a8..ebe14696cd2 100644
--- a/mysql-test/t/ndb_autodiscover2.test
+++ b/mysql-test/t/ndb_autodiscover2.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
#
diff --git a/mysql-test/t/ndb_autodiscover3.test b/mysql-test/t/ndb_autodiscover3.test
index 36ee191c065..452ccc50b4d 100644
--- a/mysql-test/t/ndb_autodiscover3.test
+++ b/mysql-test/t/ndb_autodiscover3.test
@@ -1,5 +1,3 @@
--- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/have_multi_ndb.inc
-- source include/ndb_default_cluster.inc
-- source include/not_embedded.inc
@@ -11,6 +9,9 @@
drop table if exists t1, t2;
--enable_warnings
+connect (con1,127.0.0.1,root,,test,$MASTER_MYPORT,);
+connect (con2,127.0.0.1,root,,test,$MASTER_MYPORT1,);
+
# Workaround for Bug#27644
# ndb: connecting api node/mysqld may "steal" node_id from running mysqld
# - let ndb_waiter use a fixed node id so "steal" cannot happen
@@ -28,8 +29,14 @@ insert into t1 values (1);
--exec $NDB_MGM --no-defaults -e "all restart" >> $NDB_TOOLS_OUTPUT
--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults -c $connect_str >> $NDB_TOOLS_OUTPUT
# Wait for mysqld to reconnect and exit from readonly mode
-# Should preferrably be a "while (!"select ndb_readonly")" loop
-sleep 2;
+--disable_query_log
+--connection con1
+--source include/ndb_not_readonly.inc
+--connection con2
+--source include/ndb_not_readonly.inc
+--enable_query_log
+
+--connection server1
--error 1297
insert into t1 values (2);
--error 1296
@@ -48,8 +55,13 @@ select * from t2 order by a limit 3;
--exec $NDB_MGM --no-defaults -e "all restart -i" >> $NDB_TOOLS_OUTPUT
--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults -c $connect_str >> $NDB_TOOLS_OUTPUT
# to ensure mysqld has connected again, and recreated system tables
---exec $NDB_TOOLS_DIR/ndb_desc --no-defaults -r 30 -d cluster ndb_apply_status >> $NDB_TOOLS_OUTPUT
-sleep 2;
+--disable_query_log
+--connection con1
+--source include/ndb_not_readonly.inc
+--connection con2
+--source include/ndb_not_readonly.inc
+--enable_query_log
+
--connection server2
--error ER_NO_SUCH_TABLE
select * from t2;
@@ -67,8 +79,13 @@ reset master;
--exec $NDB_MGM --no-defaults -e "all restart -i" >> $NDB_TOOLS_OUTPUT
--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults -c $connect_str >> $NDB_TOOLS_OUTPUT
# to ensure mysqld has connected again, and recreated system tables
---exec $NDB_TOOLS_DIR/ndb_desc --no-defaults -r 30 -d cluster ndb_apply_status >> $NDB_TOOLS_OUTPUT
-sleep 2;
+--disable_query_log
+--connection con1
+--source include/ndb_not_readonly.inc
+--connection con2
+--source include/ndb_not_readonly.inc
+--enable_query_log
+
--connection server1
--error ER_NO_SUCH_TABLE
select * from t2;
diff --git a/mysql-test/t/ndb_basic.test b/mysql-test/t/ndb_basic.test
index 8ef231599fa..b9ccdf9fd0d 100644
--- a/mysql-test/t/ndb_basic.test
+++ b/mysql-test/t/ndb_basic.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_binlog_ddl_multi.test b/mysql-test/t/ndb_binlog_ddl_multi.test
index 487dfbf16e5..e159fd6a24e 100644
--- a/mysql-test/t/ndb_binlog_ddl_multi.test
+++ b/mysql-test/t/ndb_binlog_ddl_multi.test
@@ -1,4 +1,3 @@
--- source include/have_ndb.inc
-- source include/have_multi_ndb.inc
-- source include/have_binlog_format_row.inc
diff --git a/mysql-test/t/ndb_binlog_format.test b/mysql-test/t/ndb_binlog_format.test
new file mode 100644
index 00000000000..acb34bb388c
--- /dev/null
+++ b/mysql-test/t/ndb_binlog_format.test
@@ -0,0 +1,33 @@
+#
+# test different behavior of ndb using different binlog formats
+#
+
+-- source include/have_blackhole.inc
+-- source include/have_ndb.inc
+-- source include/have_log_bin.inc
+
+--disable_warnings
+drop table if exists t1, t2, t3;
+--enable_warnings
+
+#
+# Bug #29222 Statement mode replicates both statement and
+# rows when writing to an NDB table
+#
+CREATE TABLE t1 (m INT, n INT) ENGINE=MYISAM;
+CREATE TABLE t2 (b INT, c INT) ENGINE=BLACKHOLE;
+CREATE TABLE t3 (e INT, f INT) ENGINE=NDB;
+RESET MASTER;
+SET SESSION BINLOG_FORMAT=STATEMENT;
+INSERT INTO t1 VALUES (1,1), (1,2), (2,1), (2,2);
+INSERT INTO t2 VALUES (1,1), (1,2), (2,1), (2,2);
+UPDATE t1, t2 SET m = 2, b = 3 WHERE n = c;
+# A transaction here is not necessary, but I wanted to group the bad statements
+START TRANSACTION;
+INSERT INTO t3 VALUES (1,1), (1,2), (2,1), (2,2);
+UPDATE t1, t3 SET m = 2, e = 3 WHERE n = f;
+UPDATE t3, t2 SET e = 2, b = 3 WHERE f = c;
+COMMIT;
+--source include/show_binlog_events.inc
+DROP TABLE t1, t2, t3;
+
diff --git a/mysql-test/t/ndb_binlog_log_bin.test b/mysql-test/t/ndb_binlog_log_bin.test
index 63b84134824..921b8608795 100644
--- a/mysql-test/t/ndb_binlog_log_bin.test
+++ b/mysql-test/t/ndb_binlog_log_bin.test
@@ -1,5 +1,3 @@
--- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/have_multi_ndb.inc
-- source include/have_binlog_format_row.inc
diff --git a/mysql-test/t/ndb_binlog_multi.test b/mysql-test/t/ndb_binlog_multi.test
index 4256b0bf993..14bd7ef174b 100644
--- a/mysql-test/t/ndb_binlog_multi.test
+++ b/mysql-test/t/ndb_binlog_multi.test
@@ -1,5 +1,3 @@
--- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/have_multi_ndb.inc
-- source include/have_binlog_format_row.inc
diff --git a/mysql-test/t/ndb_bitfield.test b/mysql-test/t/ndb_bitfield.test
index c8454f38cca..de0ae23bfe6 100644
--- a/mysql-test/t/ndb_bitfield.test
+++ b/mysql-test/t/ndb_bitfield.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_blob.test b/mysql-test/t/ndb_blob.test
index b565de74c26..b9a8c7e20ee 100644
--- a/mysql-test/t/ndb_blob.test
+++ b/mysql-test/t/ndb_blob.test
@@ -1,5 +1,4 @@
--source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_blob_partition.test b/mysql-test/t/ndb_blob_partition.test
index 13ad2ecc7c3..35df57b96ba 100644
--- a/mysql-test/t/ndb_blob_partition.test
+++ b/mysql-test/t/ndb_blob_partition.test
@@ -1,5 +1,4 @@
--source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_query_log
diff --git a/mysql-test/t/ndb_cache.test b/mysql-test/t/ndb_cache.test
index d8cb8b01e86..9c299b61c24 100644
--- a/mysql-test/t/ndb_cache.test
+++ b/mysql-test/t/ndb_cache.test
@@ -1,5 +1,4 @@
-- source include/have_query_cache.inc
--- source include/have_binlog_format_row.inc
-- source include/have_ndb.inc
-- source include/not_embedded.inc
diff --git a/mysql-test/t/ndb_cache2.test b/mysql-test/t/ndb_cache2.test
index 27d39b09cf6..352b01ef73f 100644
--- a/mysql-test/t/ndb_cache2.test
+++ b/mysql-test/t/ndb_cache2.test
@@ -1,5 +1,4 @@
-- source include/have_query_cache.inc
--- source include/have_binlog_format_row.inc
-- source include/have_ndb.inc
-- source include/not_embedded.inc
diff --git a/mysql-test/t/ndb_cache_multi.test b/mysql-test/t/ndb_cache_multi.test
index a7095139285..8c7f186b866 100644
--- a/mysql-test/t/ndb_cache_multi.test
+++ b/mysql-test/t/ndb_cache_multi.test
@@ -1,6 +1,4 @@
-- source include/have_query_cache.inc
--- source include/have_binlog_format_row.inc
--- source include/have_ndb.inc
-- source include/have_multi_ndb.inc
-- source include/not_embedded.inc
diff --git a/mysql-test/t/ndb_cache_multi2.test b/mysql-test/t/ndb_cache_multi2.test
index 40cc41f1c97..853e4090193 100644
--- a/mysql-test/t/ndb_cache_multi2.test
+++ b/mysql-test/t/ndb_cache_multi2.test
@@ -1,6 +1,4 @@
-- source include/have_query_cache.inc
--- source include/have_binlog_format_row.inc
--- source include/have_ndb.inc
-- source include/have_multi_ndb.inc
-- source include/not_embedded.inc
diff --git a/mysql-test/t/ndb_charset.test b/mysql-test/t/ndb_charset.test
index b36b70be94c..2d9f66564bc 100644
--- a/mysql-test/t/ndb_charset.test
+++ b/mysql-test/t/ndb_charset.test
@@ -1,5 +1,4 @@
--source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_condition_pushdown.test b/mysql-test/t/ndb_condition_pushdown.test
index 9df494aa3ab..ab56430ac1d 100644
--- a/mysql-test/t/ndb_condition_pushdown.test
+++ b/mysql-test/t/ndb_condition_pushdown.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_config.test b/mysql-test/t/ndb_config.test
index eb52bd249d6..f63c0087c1e 100644
--- a/mysql-test/t/ndb_config.test
+++ b/mysql-test/t/ndb_config.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/ndb_default_cluster.inc
-- source include/not_embedded.inc
diff --git a/mysql-test/t/ndb_config2.test b/mysql-test/t/ndb_config2.test
index 20946b53552..170f1b2e5e7 100644
--- a/mysql-test/t/ndb_config2.test
+++ b/mysql-test/t/ndb_config2.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/ndb_default_cluster.inc
-- source include/not_embedded.inc
diff --git a/mysql-test/t/ndb_cursor.test b/mysql-test/t/ndb_cursor.test
index 1ef745a13f7..406f8629cfe 100644
--- a/mysql-test/t/ndb_cursor.test
+++ b/mysql-test/t/ndb_cursor.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_database.test b/mysql-test/t/ndb_database.test
index 409ac33502a..8bfdf40de88 100644
--- a/mysql-test/t/ndb_database.test
+++ b/mysql-test/t/ndb_database.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_dd_alter.test b/mysql-test/t/ndb_dd_alter.test
index ee58968247f..7635a8944da 100644
--- a/mysql-test/t/ndb_dd_alter.test
+++ b/mysql-test/t/ndb_dd_alter.test
@@ -40,7 +40,6 @@
##############################################################
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/have_innodb.inc
-- source include/not_embedded.inc
diff --git a/mysql-test/t/ndb_dd_backuprestore.test b/mysql-test/t/ndb_dd_backuprestore.test
index 156ff88718e..48db8ec3e0b 100644
--- a/mysql-test/t/ndb_dd_backuprestore.test
+++ b/mysql-test/t/ndb_dd_backuprestore.test
@@ -5,7 +5,6 @@
########################################
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/ndb_default_cluster.inc
-- source include/not_embedded.inc
diff --git a/mysql-test/t/ndb_dd_basic.test b/mysql-test/t/ndb_dd_basic.test
index d20ffc6e4bd..3acf4669868 100644
--- a/mysql-test/t/ndb_dd_basic.test
+++ b/mysql-test/t/ndb_dd_basic.test
@@ -13,7 +13,6 @@
#################################
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
--disable_warnings
DROP TABLE IF EXISTS t1;
diff --git a/mysql-test/t/ndb_dd_ddl.test b/mysql-test/t/ndb_dd_ddl.test
index 10229e4c0c2..aa692385b07 100644
--- a/mysql-test/t/ndb_dd_ddl.test
+++ b/mysql-test/t/ndb_dd_ddl.test
@@ -27,7 +27,6 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
--disable_warnings
DROP TABLE IF EXISTS t1;
diff --git a/mysql-test/t/ndb_dd_disk2memory.test b/mysql-test/t/ndb_dd_disk2memory.test
index 760a1377bdf..5975f44e087 100644
--- a/mysql-test/t/ndb_dd_disk2memory.test
+++ b/mysql-test/t/ndb_dd_disk2memory.test
@@ -6,7 +6,6 @@
########################################
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
--disable_warnings
DROP TABLE IF EXISTS test.t1;
diff --git a/mysql-test/t/ndb_dd_dump.test b/mysql-test/t/ndb_dd_dump.test
index 54128d075ca..38ceafb7d80 100644
--- a/mysql-test/t/ndb_dd_dump.test
+++ b/mysql-test/t/ndb_dd_dump.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
--disable_warnings
DROP TABLE IF EXISTS t1, t2, t3;
diff --git a/mysql-test/t/ndb_dd_sql_features.test b/mysql-test/t/ndb_dd_sql_features.test
index ae8f6a7b9e7..f46cb217ab4 100644
--- a/mysql-test/t/ndb_dd_sql_features.test
+++ b/mysql-test/t/ndb_dd_sql_features.test
@@ -26,7 +26,6 @@
# gives a better idea of what the test is about
###########################################################
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
--disable_warnings
DROP TABLE IF EXISTS test.t1;
diff --git a/mysql-test/t/ndb_gis.test b/mysql-test/t/ndb_gis.test
index 104fdf41734..e14f462c32d 100644
--- a/mysql-test/t/ndb_gis.test
+++ b/mysql-test/t/ndb_gis.test
@@ -1,5 +1,4 @@
--source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
SET storage_engine=ndbcluster;
--source include/gis_generic.inc
set engine_condition_pushdown = on;
diff --git a/mysql-test/t/ndb_index.test b/mysql-test/t/ndb_index.test
index fc284407973..272f30e3e6f 100644
--- a/mysql-test/t/ndb_index.test
+++ b/mysql-test/t/ndb_index.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_index_ordered.test b/mysql-test/t/ndb_index_ordered.test
index 95b64eeef21..782f17ca5b2 100644
--- a/mysql-test/t/ndb_index_ordered.test
+++ b/mysql-test/t/ndb_index_ordered.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_index_unique.test b/mysql-test/t/ndb_index_unique.test
index ecd4077bb56..78757c3bcf7 100644
--- a/mysql-test/t/ndb_index_unique.test
+++ b/mysql-test/t/ndb_index_unique.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_insert.test b/mysql-test/t/ndb_insert.test
index 4b347e1a1ad..5b74cc9202c 100644
--- a/mysql-test/t/ndb_insert.test
+++ b/mysql-test/t/ndb_insert.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_limit.test b/mysql-test/t/ndb_limit.test
index b0d189ff5d9..01613606d66 100644
--- a/mysql-test/t/ndb_limit.test
+++ b/mysql-test/t/ndb_limit.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_loaddatalocal.test b/mysql-test/t/ndb_loaddatalocal.test
index 7453ae1bd64..3eae3891f43 100644
--- a/mysql-test/t/ndb_loaddatalocal.test
+++ b/mysql-test/t/ndb_loaddatalocal.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_lock.test b/mysql-test/t/ndb_lock.test
index e677cba8e59..b6cd1ca7eb4 100644
--- a/mysql-test/t/ndb_lock.test
+++ b/mysql-test/t/ndb_lock.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
connect (con1,localhost,root,,);
diff --git a/mysql-test/t/ndb_minmax.test b/mysql-test/t/ndb_minmax.test
index 4d9f132194a..a3ac677cd2a 100644
--- a/mysql-test/t/ndb_minmax.test
+++ b/mysql-test/t/ndb_minmax.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_multi.test b/mysql-test/t/ndb_multi.test
index 3e25227ae80..3482db1d1b2 100644
--- a/mysql-test/t/ndb_multi.test
+++ b/mysql-test/t/ndb_multi.test
@@ -1,6 +1,5 @@
-- source include/have_ndb.inc
-- source include/have_multi_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_partition_error.test b/mysql-test/t/ndb_partition_error.test
index ce25dfc0fd5..9db2a6a6f6d 100644
--- a/mysql-test/t/ndb_partition_error.test
+++ b/mysql-test/t/ndb_partition_error.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
#--disable_abort_on_error
#
# Simple test for the partition storage engine
diff --git a/mysql-test/t/ndb_partition_key.test b/mysql-test/t/ndb_partition_key.test
index 4760022d20f..78e2c9d15c2 100644
--- a/mysql-test/t/ndb_partition_key.test
+++ b/mysql-test/t/ndb_partition_key.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
--disable_warnings
DROP TABLE IF EXISTS t1;
diff --git a/mysql-test/t/ndb_partition_list.test b/mysql-test/t/ndb_partition_list.test
index 35c7104ff92..ccfcdbc84f4 100644
--- a/mysql-test/t/ndb_partition_list.test
+++ b/mysql-test/t/ndb_partition_list.test
@@ -1,5 +1,4 @@
--source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
#
# Simple test for the partition storage engine
# Focuses on range partitioning tests
diff --git a/mysql-test/t/ndb_partition_range.test b/mysql-test/t/ndb_partition_range.test
index e34cb92771c..7952ba502d2 100644
--- a/mysql-test/t/ndb_partition_range.test
+++ b/mysql-test/t/ndb_partition_range.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
#--disable_abort_on_error
#
# Simple test for the partition storage engine
diff --git a/mysql-test/t/ndb_read_multi_range.test b/mysql-test/t/ndb_read_multi_range.test
index b4e5943269c..ecca1f9862c 100644
--- a/mysql-test/t/ndb_read_multi_range.test
+++ b/mysql-test/t/ndb_read_multi_range.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
@@ -286,7 +285,7 @@ CREATE TABLE t2 (
var1 int(2) NOT NULL,
var2 int(2) NOT NULL,
PRIMARY KEY (var1)
- ) ENGINE=MyISAM DEFAULT CHARSET=ascii CHECKSUM=1;
+ ) ENGINE=ndbcluster DEFAULT CHARSET=ascii CHECKSUM=1;
DELIMITER |;
diff --git a/mysql-test/t/ndb_rename.test b/mysql-test/t/ndb_rename.test
index 1b2f6d72119..7f9fd0e6984 100644
--- a/mysql-test/t/ndb_rename.test
+++ b/mysql-test/t/ndb_rename.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_replace.test b/mysql-test/t/ndb_replace.test
index cb5f1cc46cb..aa2072b98dd 100644
--- a/mysql-test/t/ndb_replace.test
+++ b/mysql-test/t/ndb_replace.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
#
diff --git a/mysql-test/t/ndb_restore.test b/mysql-test/t/ndb_restore.test
index 2414e6b7268..7f0cafdfd77 100644
--- a/mysql-test/t/ndb_restore.test
+++ b/mysql-test/t/ndb_restore.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/ndb_default_cluster.inc
-- source include/not_embedded.inc
diff --git a/mysql-test/t/ndb_restore_partition.test b/mysql-test/t/ndb_restore_partition.test
index 0cddc38a876..f11324492c2 100644
--- a/mysql-test/t/ndb_restore_partition.test
+++ b/mysql-test/t/ndb_restore_partition.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/ndb_default_cluster.inc
-- source include/not_embedded.inc
diff --git a/mysql-test/t/ndb_restore_print.test b/mysql-test/t/ndb_restore_print.test
index d198623886b..6dbbfdf5933 100644
--- a/mysql-test/t/ndb_restore_print.test
+++ b/mysql-test/t/ndb_restore_print.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/ndb_default_cluster.inc
-- source include/not_embedded.inc
diff --git a/mysql-test/t/ndb_row_format.test b/mysql-test/t/ndb_row_format.test
index 49d771e4017..b1582cbe339 100644
--- a/mysql-test/t/ndb_row_format.test
+++ b/mysql-test/t/ndb_row_format.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_single_user.test b/mysql-test/t/ndb_single_user.test
index 5d2ee0a3a8d..f059ea9ba23 100644
--- a/mysql-test/t/ndb_single_user.test
+++ b/mysql-test/t/ndb_single_user.test
@@ -1,5 +1,3 @@
--- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/have_multi_ndb.inc
-- source include/ndb_default_cluster.inc
-- source include/not_embedded.inc
diff --git a/mysql-test/t/ndb_sp.test b/mysql-test/t/ndb_sp.test
index 703cb116c52..b833869cad0 100644
--- a/mysql-test/t/ndb_sp.test
+++ b/mysql-test/t/ndb_sp.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_subquery.test b/mysql-test/t/ndb_subquery.test
index c8aec569de9..6282c31c922 100644
--- a/mysql-test/t/ndb_subquery.test
+++ b/mysql-test/t/ndb_subquery.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_temporary.test b/mysql-test/t/ndb_temporary.test
index 3a9e7c94398..7f6902bf745 100644
--- a/mysql-test/t/ndb_temporary.test
+++ b/mysql-test/t/ndb_temporary.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_transaction.test b/mysql-test/t/ndb_transaction.test
index dca1fde8fc7..d3ebadb1a78 100644
--- a/mysql-test/t/ndb_transaction.test
+++ b/mysql-test/t/ndb_transaction.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_trigger.test b/mysql-test/t/ndb_trigger.test
index 00927f93d10..2e944174fd0 100644
--- a/mysql-test/t/ndb_trigger.test
+++ b/mysql-test/t/ndb_trigger.test
@@ -1,6 +1,5 @@
# Tests which involve triggers and NDB storage engine
--source include/have_ndb.inc
---source include/have_binlog_format_row.inc
--source include/not_embedded.inc
#
@@ -19,8 +18,8 @@ drop table if exists t1, t2, t3, t4, t5;
--enable_warnings
create table t1 (id int primary key, a int not null, b decimal (63,30) default 0) engine=ndb;
-create table t2 (op char(1), a int not null, b decimal (63,30));
-create table t3 select 1 as i;
+create table t2 (op char(1), a int not null, b decimal (63,30)) engine=ndb;
+create table t3 engine=ndb select 1 as i;
create table t4 (a int not null primary key, b int) engine=ndb;
create table t5 (a int not null primary key, b int) engine=ndb;
diff --git a/mysql-test/t/ndb_truncate.test b/mysql-test/t/ndb_truncate.test
index a62fd43408d..a1ef4be0d48 100644
--- a/mysql-test/t/ndb_truncate.test
+++ b/mysql-test/t/ndb_truncate.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_types.test b/mysql-test/t/ndb_types.test
index 9b395c12bf8..ab18817132e 100644
--- a/mysql-test/t/ndb_types.test
+++ b/mysql-test/t/ndb_types.test
@@ -1,5 +1,4 @@
--source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
--source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_update.test b/mysql-test/t/ndb_update.test
index a864aa28dc3..73a0ebc69cb 100644
--- a/mysql-test/t/ndb_update.test
+++ b/mysql-test/t/ndb_update.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndb_view.test b/mysql-test/t/ndb_view.test
index 4f2580ef15e..3b8fc330b40 100644
--- a/mysql-test/t/ndb_view.test
+++ b/mysql-test/t/ndb_view.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/not_embedded.inc
--disable_warnings
diff --git a/mysql-test/t/ndbapi.test b/mysql-test/t/ndbapi.test
index d58ed1c5ccd..3424513f8af 100644
--- a/mysql-test/t/ndbapi.test
+++ b/mysql-test/t/ndbapi.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/have_ndbapi_examples.inc
--disable_warnings
diff --git a/mysql-test/t/ps_1general.test b/mysql-test/t/ps_1general.test
index 9905d73fc32..13773504fb0 100644
--- a/mysql-test/t/ps_1general.test
+++ b/mysql-test/t/ps_1general.test
@@ -414,6 +414,10 @@ prepare stmt1 from ' execute stmt2 ' ;
--error ER_UNSUPPORTED_PS
prepare stmt1 from ' deallocate prepare never_prepared ' ;
+## We don't support alter view as prepared statements
+--error ER_UNSUPPORTED_PS
+prepare stmt1 from 'alter view v1 as select 2';
+
## switch the database connection
--error ER_UNSUPPORTED_PS
prepare stmt4 from ' use test ' ;
diff --git a/mysql-test/t/ps_7ndb.test b/mysql-test/t/ps_7ndb.test
index eb98a815d74..e3f65ec2c4e 100644
--- a/mysql-test/t/ps_7ndb.test
+++ b/mysql-test/t/ps_7ndb.test
@@ -11,7 +11,6 @@
use test;
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
let $type= 'NDB' ;
-- source include/ps_create.inc
-- source include/ps_renew.inc
diff --git a/mysql-test/t/rpl_ndb_commit_afterflush.test b/mysql-test/t/rpl_ndb_commit_afterflush.test
index 5bbd7f0414e..7adb62d5668 100644
--- a/mysql-test/t/rpl_ndb_commit_afterflush.test
+++ b/mysql-test/t/rpl_ndb_commit_afterflush.test
@@ -5,7 +5,7 @@
# By JBM 2004-02-15 #
#####################################
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
-- source include/ndb_master-slave.inc
+-- source include/have_log_bin.inc
let $engine_type=NDB;
-- source extra/rpl_tests/rpl_commit_after_flush.test
diff --git a/mysql-test/t/rpl_ndb_ctype_ucs2_def-master.opt b/mysql-test/t/rpl_ndb_ctype_ucs2_def-master.opt
new file mode 100644
index 00000000000..84d2a52b639
--- /dev/null
+++ b/mysql-test/t/rpl_ndb_ctype_ucs2_def-master.opt
@@ -0,0 +1 @@
+--default-collation=ucs2_unicode_ci --default-character-set=ucs2,latin1
diff --git a/mysql-test/t/rpl_ndb_ctype_ucs2_def.test b/mysql-test/t/rpl_ndb_ctype_ucs2_def.test
new file mode 100644
index 00000000000..be7fd1acd2e
--- /dev/null
+++ b/mysql-test/t/rpl_ndb_ctype_ucs2_def.test
@@ -0,0 +1,42 @@
+--source include/have_ucs2.inc
+--source include/have_ndb.inc
+--source include/ndb_master-slave.inc
+
+#
+# MySQL Bug#15276: MySQL ignores collation-server
+#
+show variables like 'collation_server';
+
+#
+# Check that NDB replication doesn't explode with default charset
+# being multibyte.
+#
+# Theorised that this could be a problem when dealing with:
+# Bug #27404 util thd mysql_parse sig11 when mysqld default multibyte charset
+#
+# Sort of related to:
+# Bug#18004 Connecting crashes server when default charset is UCS2
+#
+#
+show variables like "%character_set_ser%";
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+create table t1 (a int) ENGINE=NDB;
+drop table t1;
+
+--connection master
+CREATE TABLE `t1` ( `nid` int(11) NOT NULL default '0',
+ `nom` char(4) default NULL,
+ `prenom` char(4) default NULL,
+ PRIMARY KEY (`nid`))
+ ENGINE=ndbcluster;
+
+INSERT INTO t1 VALUES(1,"XYZ1","ABC1");
+select * from t1 order by nid;
+
+--sync_slave_with_master
+# connect to slave and ensure data it there.
+--connection slave
+select * from t1 order by nid;
+
diff --git a/mysql-test/t/rpl_ndb_dd_advance.test b/mysql-test/t/rpl_ndb_dd_advance.test
index 5e346d5fe3b..723672931ab 100644
--- a/mysql-test/t/rpl_ndb_dd_advance.test
+++ b/mysql-test/t/rpl_ndb_dd_advance.test
@@ -9,7 +9,7 @@
--source include/have_binlog_format_row.inc
--source include/ndb_default_cluster.inc
--source include/not_embedded.inc
---source include/big_test.inc
+#--source include/big_test.inc
#--source include/have_ndb_extra.inc
--source include/ndb_master-slave.inc
@@ -98,7 +98,7 @@ SELECT DISTINCT FILE_NAME, FILE_TYPE, TABLESPACE_NAME, LOGFILE_GROUP_NAME
connection master;
CREATE INDEX t1_i ON t1(c2, c3);
#Bug 18039
-#CREATE UNIQUE INDEX t1_i2 ON t1(c2);
+CREATE UNIQUE INDEX t1_i2 ON t1(c2);
ALTER TABLE t1 ADD c4 TIMESTAMP;
ALTER TABLE t1 ADD c5 DOUBLE;
ALTER TABLE t1 ADD INDEX (c5);
@@ -170,7 +170,7 @@ SELECT * FROM t1 ORDER BY c1 LIMIT 5;
connection slave;
SHOW CREATE TABLE t1;
# Bug 18094
-#SELECT * FROM t1 ORDER BY c1 LIMIT 5;
+SELECT * FROM t1 ORDER BY c1 LIMIT 5;
SELECT * FROM t1 where c1 = 1;
connection master;
@@ -198,163 +198,19 @@ connection master;
CREATE TABLESPACE ts2
ADD DATAFILE 'datafile03.dat'
USE LOGFILE GROUP lg1
-INITIAL_SIZE 12M
+INITIAL_SIZE 10M
ENGINE=NDB;
ALTER TABLESPACE ts2
ADD DATAFILE 'datafile04.dat'
-INITIAL_SIZE 12M
+INITIAL_SIZE 5M
ENGINE=NDB;
-###### CLEAN UP SECTION ##############
-DROP DATABASE IF EXISTS tpcb;
-CREATE DATABASE tpcb;
-######## Creat Table Section #########
---echo *********** Create TPCB Tables *****************
-CREATE TABLE tpcb.account
- (id INT, bid INT, balance DECIMAL(10,2),
- filler CHAR(255), PRIMARY KEY(id))
- TABLESPACE ts1 STORAGE DISK
- ENGINE=NDB;
-
-CREATE TABLE tpcb.branch
- (bid INT, balance DECIMAL(10,2), filler VARCHAR(255),
- PRIMARY KEY(bid))
- ENGINE=NDB;
-
-CREATE TABLE tpcb.teller
- (tid INT, balance DECIMAL(10,2), filler VARCHAR(255),
- PRIMARY KEY(tid))
- TABLESPACE ts2 STORAGE DISK
- ENGINE=NDB;
-
-CREATE TABLE tpcb.history
- (id MEDIUMINT NOT NULL AUTO_INCREMENT,aid INT,
- tid INT, bid INT, amount DECIMAL(10,2),
- tdate DATETIME, teller CHAR(20), uuidf LONGBLOB,
- filler CHAR(80),PRIMARY KEY (id))
- TABLESPACE ts2 STORAGE DISK
- ENGINE=NDB;
-
---echo ********* Create Procedures and Functions ************
-delimiter |;
-CREATE PROCEDURE tpcb.load()
-BEGIN
- DECLARE acct INT DEFAULT 1000;
- DECLARE brch INT DEFAULT 100;
- DECLARE tell INT DEFAULT 1000;
- DECLARE tmp INT DEFAULT 100;
- WHILE brch > 0 DO
- SET tmp = 100;
- WHILE tmp > 0 DO
- INSERT INTO tpcb.account VALUES (acct, brch, 0.0, "FRESH ACCOUNT");
- SET acct = acct - 1;
- SET tmp = tmp -1;
- END WHILE;
- INSERT INTO tpcb.branch VALUES (brch, 0.0, "FRESH BRANCH");
- SET brch = brch - 1;
- END WHILE;
- WHILE tell > 0 DO
- INSERT INTO tpcb.teller VALUES (tell, 0.0, "FRESH TELLER");
- SET tell = tell - 1;
- END WHILE;
-END|
-
-CREATE FUNCTION tpcb.account_id () RETURNS INT
-BEGIN
- DECLARE num INT;
- DECLARE ran INT;
- SELECT RAND() * 10 INTO ran;
- IF (ran < 2)
- THEN
- SELECT RAND() * 10 INTO num;
- ELSEIF (ran < 4)
- THEN
- SELECT RAND() * 100 INTO num;
- ELSE
- SELECT RAND() * 1000 INTO num;
- END IF;
- IF (num < 1)
- THEN
- RETURN 1;
- END IF;
- RETURN num;
-END|
-
-CREATE FUNCTION tpcb.teller_id () RETURNS INT
-BEGIN
- DECLARE num INT;
- DECLARE ran INT;
- SELECT RAND() * 10 INTO ran;
- IF (ran < 2)
- THEN
- SELECT RAND() * 10 INTO num;
- ELSEIF (ran < 5)
- THEN
- SELECT RAND() * 100 INTO num;
- ELSE
- SELECT RAND() * 1000 INTO num;
- END IF;
- IF (num < 1)
- THEN
- RETURN 1;
- END IF;
- RETURN num;
-END|
-
-CREATE PROCEDURE tpcb.trans()
-BEGIN
- DECLARE acct INT DEFAULT 0;
- DECLARE brch INT DEFAULT 0;
- DECLARE tell INT DEFAULT 0;
- DECLARE bal DECIMAL(10,2) DEFAULT 0.0;
- DECLARE amount DECIMAL(10,2) DEFAULT 1.00;
- DECLARE test INT DEFAULT 0;
- DECLARE bbal DECIMAL(10,2) DEFAULT 0.0;
- DECLARE tbal DECIMAL(10,2) DEFAULT 0.0;
- DECLARE local_uuid VARCHAR(255);
- DECLARE local_user VARCHAR(255);
- DECLARE local_time TIMESTAMP;
-
- SELECT RAND() * 10 INTO test;
- SELECT tpcb.account_id() INTO acct;
- SELECT tpcb.teller_id() INTO tell;
-
- SELECT account.balance INTO bal FROM tpcb.account WHERE id = acct;
- SELECT account.bid INTO brch FROM tpcb.account WHERE id = acct;
- SELECT teller.balance INTO tbal FROM tpcb.teller WHERE tid = tell;
- SELECT branch.balance INTO bbal FROM tpcb.branch WHERE bid = brch;
-
- IF (test < 5)
- THEN
- SET bal = bal + amount;
- SET bbal = bbal + amount;
- SET tbal = tbal + amount;
- UPDATE tpcb.account SET balance = bal, filler = 'account updated'
- WHERE id = acct;
- UPDATE tpcb.branch SET balance = bbal, filler = 'branch updated'
- WHERE bid = brch;
- UPDATE tpcb.teller SET balance = tbal, filler = 'teller updated'
- WHERE tid = tell;
- ELSE
- SET bal = bal - amount;
- SET bbal = bbal - amount;
- SET tbal = tbal - amount;
- UPDATE tpcb.account SET balance = bal, filler = 'account updated'
- WHERE id = acct;
- UPDATE tpcb.branch SET balance = bbal, filler = 'branch updated'
- WHERE bid = brch;
- UPDATE tpcb.teller SET balance = tbal, filler = 'teller updated'
- WHERE tid = tell;
- END IF;
-
- SET local_uuid=UUID();
- SET local_user=USER();
- SET local_time= NOW();
- INSERT INTO tpcb.history VALUES(NULL,acct,tell,brch,amount, local_time,local_user,
- local_uuid,'completed trans');
-END|
-delimiter ;|
+let engine_type=NDBCLUSTER;
+let table_space=ts2;
+let format='RBR';
+
+--source include/tpcb_disk_data.inc
--echo ****** TEST 2 test time *********************************
USE tpcb;
@@ -372,15 +228,16 @@ SELECT COUNT(*) FROM account;
--echo ******** Run in some transactions ***************
connection master;
-let $j= 1000;
+let $j= 100;
--disable_query_log
while ($j)
{
- CALL tpcb.trans();
+ eval CALL tpcb.trans($format);
dec $j;
}
--enable_query_log
+
--echo ***** Time to try slave sync ***********
--echo **** Must make sure slave is clean *****
--connection slave
@@ -421,11 +278,11 @@ connection master;
SELECT COUNT(*) FROM history;
-let $j= 1000;
+let $j= 100;
--disable_query_log
while ($j)
{
- CALL tpcb.trans();
+ eval CALL tpcb.trans($format);
dec $j;
}
--enable_query_log
@@ -464,11 +321,11 @@ SELECT COUNT(*) FROM account;
--echo ***** Add some more records to master *********
connection master;
-let $j= 1000;
+let $j= 100;
--disable_query_log
while ($j)
{
- CALL tpcb.trans();
+ eval CALL tpcb.trans($format);
dec $j;
}
--enable_query_log
@@ -484,17 +341,18 @@ while ($j)
--echo ***** Finsh the slave sync process *******
--disable_query_log
# 1. 2. 3.
+--sync_slave_with_master
--source include/ndb_setup_slave.inc
--enable_query_log
# 4.
--echo * 4. *
connection master;
-let $j= 1000;
+let $j= 100;
--disable_query_log
while ($j)
{
- CALL tpcb.trans();
+ eval CALL tpcb.trans($format);
dec $j;
}
--enable_query_log
@@ -507,15 +365,6 @@ START SLAVE;
--echo **** We should be ready to continue on *************
connection master;
-let $j= 50;
---disable_query_log
-while ($j)
-{
- CALL tpcb.trans();
- dec $j;
-}
---enable_query_log
-
--echo ****** Let's make sure we match *******
--echo ***** MASTER *******
USE tpcb;
diff --git a/mysql-test/t/rpl_ndb_innodb_trans.test b/mysql-test/t/rpl_ndb_innodb_trans.test
index efba6050554..63c5c5e93e3 100644
--- a/mysql-test/t/rpl_ndb_innodb_trans.test
+++ b/mysql-test/t/rpl_ndb_innodb_trans.test
@@ -2,8 +2,8 @@
-- source include/have_ndb.inc
-- source include/have_innodb.inc
--- source include/have_binlog_format_row.inc
-- source include/ndb_master-slave.inc
+-- source include/have_log_bin.inc
create table t1 (a int, unique(a)) engine=ndbcluster;
create table t2 (a int, unique(a)) engine=innodb;
diff --git a/mysql-test/t/rpl_ndb_mix_innodb-master.opt b/mysql-test/t/rpl_ndb_mix_innodb-master.opt
new file mode 100644
index 00000000000..3596fc4d3bd
--- /dev/null
+++ b/mysql-test/t/rpl_ndb_mix_innodb-master.opt
@@ -0,0 +1 @@
+--innodb --default-storage-engine=innodb
diff --git a/mysql-test/t/rpl_ndb_mix_innodb.test b/mysql-test/t/rpl_ndb_mix_innodb.test
new file mode 100644
index 00000000000..b730bcc08e0
--- /dev/null
+++ b/mysql-test/t/rpl_ndb_mix_innodb.test
@@ -0,0 +1,36 @@
+#############################################
+#Authors: TU and Jeb
+#Date: 2007/04
+#Purpose: Generic replication to cluster
+# and ensuring that the ndb_apply_status
+# table is updated.
+#############################################
+# Notes:
+# include/select_ndb_apply_status.inc
+# Selects out the log name, start & end pos
+# from the ndb_apply_status table
+#
+# include/show_binlog_using_logname.inc
+# To select out 1 row from offset 1
+# from the start position in the binlog whose
+# name is = log_name
+#
+# include/tpcb.inc
+# Creates DATABASE tpcb, the tables and
+# stored procedures for loading the DB
+# and for running transactions against DB.
+##############################################
+
+
+## Includes ##
+
+--disable_query_log
+--source include/have_ndb.inc
+--source include/have_innodb.inc
+--source include/have_binlog_format_mixed.inc
+--source include/ndb_master-slave.inc
+--enable_query_log
+let $off_set = 9;
+let $rpl_format = 'MIX';
+--source extra/rpl_tests/rpl_ndb_apply_status.test
+
diff --git a/mysql-test/t/rpl_ndb_stm_innodb-master.opt b/mysql-test/t/rpl_ndb_stm_innodb-master.opt
index 627becdbfb5..3596fc4d3bd 100644
--- a/mysql-test/t/rpl_ndb_stm_innodb-master.opt
+++ b/mysql-test/t/rpl_ndb_stm_innodb-master.opt
@@ -1 +1 @@
---innodb
+--innodb --default-storage-engine=innodb
diff --git a/mysql-test/t/rpl_ndb_stm_innodb.test b/mysql-test/t/rpl_ndb_stm_innodb.test
index d43fafa8406..bf7f1eed7b2 100644
--- a/mysql-test/t/rpl_ndb_stm_innodb.test
+++ b/mysql-test/t/rpl_ndb_stm_innodb.test
@@ -1,70 +1,35 @@
+#############################################
+#Authors: TU and Jeb
+#Date: 2007/04
+#Purpose: Generic replication to cluster
+# and ensuring that the ndb_apply_status
+# table is updated.
+#############################################
+# Notes:
+# include/select_ndb_apply_status.inc
+# Selects out the log name, start & end pos
+# from the ndb_apply_status table
+#
+# include/show_binlog_using_logname.inc
+# To select out 1 row from offset 1
+# from the start position in the binlog whose
+# name is = log_name
+#
+# include/tpcb.inc
+# Creates DATABASE tpcb, the tables and
+# stored procedures for loading the DB
+# and for running transactions against DB.
+##############################################
+
+
+## Includes ##
+
+--disable_query_log
--source include/have_ndb.inc
--source include/have_innodb.inc
---source include/have_binlog_format_mixed_or_statement.inc
+--source include/have_binlog_format_statement.inc
--source include/ndb_master-slave.inc
-
---connection master
-create table t1 (a int key, b int) engine innodb;
-create table t2 (a int key, b int) engine innodb;
-
---sync_slave_with_master
---connection slave
-alter table t1 engine ndb;
-alter table t2 engine ndb;
-
-# We need MIXED mode on the slave in the event that there are
-# statements coming in from the master. In this case, NDB can only
-# handle row-based format, so it has to be possible to switch to
-# this.
-STOP SLAVE;
-SET GLOBAL BINLOG_FORMAT=MIXED;
-START SLAVE;
-
-# check binlog position without begin
---connection master
-insert into t1 values (1,2);
-
---sync_slave_with_master
---connection slave
---replace_column 1 <start_pos> 2 <end_pos>
-select @start_pos:=start_pos, @end_pos:=end_pos from mysql.ndb_apply_status;
---let $start_pos = `select @start_pos`
---let $end_pos = `select @end_pos`
-
---connection master
-# here is actually a bug, since there is no begin statement, the
-# query is autocommitted, and end_pos shows end of the insert and not
-# end of the commit
---replace_result $start_pos <start_pos>
---replace_column 5 #
---eval show binlog events from $start_pos limit 1
---replace_result $start_pos <start_pos> $end_pos <end_pos>
---replace_column 2 #
---replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
---eval show binlog events from $start_pos limit 1,1
-
-# check binlog position with begin
---connection master
-begin;
-insert into t1 values (2,3);
-insert into t2 values (3,4);
-commit;
-
---sync_slave_with_master
---connection slave
---replace_column 1 <start_pos> 2 <end_pos>
-select @start_pos:=start_pos, @end_pos:=end_pos from mysql.ndb_apply_status;
---let $start_pos = `select @start_pos`
---let $end_pos = `select @end_pos`
-
---connection master
---replace_result $start_pos <start_pos>
---replace_column 5 #
---eval show binlog events from $start_pos limit 1
---replace_result $start_pos <start_pos>
---replace_column 2 # 4 # 5 #
---eval show binlog events from $start_pos limit 1,2
---replace_result $start_pos <start_pos> $end_pos <end_pos>
---replace_column 2 #
---replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
---eval show binlog events from $start_pos limit 3,1
+--enable_query_log
+let $off_set = 6;
+let $rpl_format = 'SBR';
+--source extra/rpl_tests/rpl_ndb_apply_status.test
diff --git a/mysql-test/t/rpl_partition.test b/mysql-test/t/rpl_partition.test
new file mode 100644
index 00000000000..7f6e05db20e
--- /dev/null
+++ b/mysql-test/t/rpl_partition.test
@@ -0,0 +1,160 @@
+--source include/have_innodb.inc
+--source include/master-slave.inc
+
+--vertical_results
+
+let $engine_type= 'innodb';
+
+SET GLOBAL binlog_format = 'ROW';
+SET SESSION binlog_format = 'ROW';
+select @@global.binlog_format, @@session.binlog_format;
+
+--disable-warnings
+DROP TABLE IF EXISTS t1, t2, t3;
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+DROP PROCEDURE IF EXISTS p3;
+--enable-warnings
+
+eval CREATE TABLE t1(id MEDIUMINT NOT NULL AUTO_INCREMENT,
+ dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
+ fkid MEDIUMINT, filler VARCHAR(255),
+ PRIMARY KEY(id)) ENGINE=$engine_type;
+
+eval CREATE TABLE t2(id MEDIUMINT NOT NULL AUTO_INCREMENT,
+ dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
+ fkid MEDIUMINT, filler VARCHAR(255),
+ PRIMARY KEY(id)) ENGINE=$engine_type
+ PARTITION BY KEY(id) partitions 5;
+
+eval CREATE TABLE t3(id MEDIUMINT NOT NULL AUTO_INCREMENT,
+ dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
+ fkid MEDIUMINT, filler VARCHAR(255),
+ PRIMARY KEY(id)) ENGINE=$engine_type
+ PARTITION BY RANGE(id)
+ SUBPARTITION BY hash(id) subpartitions 2
+ (PARTITION pa1 values less than (10),
+ PARTITION pa2 values less than (20),
+ PARTITION pa3 values less than (30),
+ PARTITION pa4 values less than (40),
+ PARTITION pa5 values less than (50),
+ PARTITION pa6 values less than (60),
+ PARTITION pa7 values less than (70),
+ PARTITION pa8 values less than (80),
+ PARTITION pa9 values less than (90),
+ PARTITION pa10 values less than (100),
+ PARTITION pa11 values less than MAXVALUE);
+
+######## Create SPs, Functions, Views and Triggers Section ##############
+
+delimiter |;
+CREATE PROCEDURE p1()
+BEGIN
+ DECLARE ins_count INT DEFAULT 1000;
+ DECLARE del_count INT;
+ DECLARE cur_user VARCHAR(255);
+ DECLARE local_uuid VARCHAR(255);
+ DECLARE local_time TIMESTAMP;
+
+ SET local_time= NOW();
+ SET cur_user= CURRENT_USER();
+ SET local_uuid= UUID();
+
+ WHILE ins_count > 0 DO
+ INSERT INTO t1 VALUES (NULL, NOW(), USER() , UUID(),
+ ins_count,'Going to test MBR for MySQL');
+ SET ins_count = ins_count - 1;
+ END WHILE;
+
+ SELECT MAX(id) FROM t1 INTO del_count;
+ WHILE del_count > 0 DO
+ DELETE FROM t1 WHERE id = del_count;
+ SET del_count = del_count - 2;
+ END WHILE;
+END|
+
+CREATE PROCEDURE p2()
+BEGIN
+ DECLARE ins_count INT DEFAULT 1000;
+ DECLARE del_count INT;
+ DECLARE cur_user VARCHAR(255);
+ DECLARE local_uuid VARCHAR(255);
+ DECLARE local_time TIMESTAMP;
+
+ SET local_time= NOW();
+ SET cur_user= CURRENT_USER();
+ SET local_uuid= UUID();
+
+ WHILE ins_count > 0 DO
+ INSERT INTO t2 VALUES (NULL, NOW(), USER() , UUID(),
+ ins_count,'Going to test MBR for MySQL');
+ SET ins_count = ins_count - 1;
+ END WHILE;
+
+ SELECT MAX(id) FROM t2 INTO del_count;
+ WHILE del_count > 0 DO
+ DELETE FROM t2 WHERE id = del_count;
+ SET del_count = del_count - 2;
+ END WHILE;
+END|
+
+CREATE PROCEDURE p3()
+BEGIN
+ DECLARE ins_count INT DEFAULT 1000;
+ DECLARE del_count INT;
+ DECLARE cur_user VARCHAR(255);
+ DECLARE local_uuid VARCHAR(255);
+ DECLARE local_time TIMESTAMP;
+
+ SET local_time= NOW();
+ SET cur_user = CURRENT_USER();
+ SET local_uuid=UUID();
+
+ WHILE ins_count > 0 DO
+ INSERT INTO t3 VALUES (NULL, NOW(), USER(), UUID(),
+ ins_count,'Going to test MBR for MySQL');
+ SET ins_count = ins_count - 1;
+ END WHILE;
+
+ SELECT MAX(id) FROM t3 INTO del_count;
+ WHILE del_count > 0 DO
+ DELETE FROM t3 WHERE id = del_count;
+ SET del_count = del_count - 2;
+ END WHILE;
+END|
+
+delimiter ;|
+
+############ Finish Setup Section ###################
+
+
+############ Test Section ###################
+
+CALL p1();
+SELECT count(*) as "Master regular" FROM t1;
+CALL p2();
+SELECT count(*) as "Master bykey" FROM t2;
+CALL p3();
+SELECT count(*) as "Master byrange" FROM t3;
+
+#--source include/master-slave-end.inc
+--sync_slave_with_master
+connection slave;
+show create table t3;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR $MASTER_MYPORT MASTER_MYPORT
+--replace_column 1 # 7 # 8 # 9 # 22 # 23 # 33 # 35 # 36 #
+show slave status;
+SELECT count(*) "Slave norm" FROM t1;
+SELECT count(*) "Slave bykey" FROM t2;
+SELECT count(*) "Slave byrange" FROM t3;
+
+connection master;
+DROP TABLE t1, t2, t3;
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+DROP PROCEDURE IF EXISTS p3;
+save_master_pos;
+connection slave;
+sync_with_master;
+
+# End of 5.1 tests
diff --git a/mysql-test/t/show_check.test b/mysql-test/t/show_check.test
index af2c044ee10..341c9039390 100644
--- a/mysql-test/t/show_check.test
+++ b/mysql-test/t/show_check.test
@@ -22,6 +22,12 @@ flush privileges;
create table t1 (a int not null primary key, b int not null,c int not null, key(b,c));
insert into t1 values (1,2,2),(2,2,3),(3,2,4),(4,2,4);
+
+--echo -- Here we enable metadata just to check that the collation of the
+--echo -- resultset is non-binary for string type. This should be changed
+--echo -- after Bug#29394 is implemented.
+
+--enable_metadata
check table t1 fast;
check table t1 fast;
check table t1 changed;
@@ -30,28 +36,58 @@ check table t1 changed;
check table t1 medium;
check table t1 extended;
show index from t1;
+--disable_metadata
--error ER_DUP_ENTRY
insert into t1 values (5,5,5);
+
+--echo -- Here we enable metadata just to check that the collation of the
+--echo -- resultset is non-binary for string type. This should be changed
+--echo -- after Bug#29394 is implemented.
+
+--enable_metadata
optimize table t1;
+--disable_metadata
optimize table t1;
drop table t1;
#show variables;
+
+--echo -- Here we enable metadata just to check that the collation of the
+--echo -- resultset is non-binary for string type. This should be changed
+--echo -- after Bug#29394 is implemented.
+
+--enable_metadata
show variables like "wait_timeout%";
show variables like "WAIT_timeout%";
show variables like "this_doesn't_exists%";
show table status from test like "this_doesn't_exists%";
show databases;
show databases like "test%";
+--disable_metadata
#
# Check of show index
#
create table t1 (f1 int not null, f2 int not null, f3 int not null, f4 int not null, primary key(f1,f2,f3,f4));
insert into t1 values (1,1,1,0),(1,1,2,0),(1,1,3,0),(1,2,1,0),(1,2,2,0),(1,2,3,0),(1,3,1,0),(1,3,2,0),(1,3,3,0),(1,1,1,1),(1,1,2,1),(1,1,3,1),(1,2,1,1),(1,2,2,1),(1,2,3,1),(1,3,1,1),(1,3,2,1),(1,3,3,1);
+
+--echo -- Here we enable metadata just to check that the collation of the
+--echo -- resultset is non-binary for string type. This should be changed
+--echo -- after Bug#29394 is implemented.
+
+--enable_metadata
analyze table t1;
+--disable_metadata
show index from t1;
+
+--echo -- Here we enable metadata just to check that the collation of the
+--echo -- resultset is non-binary for string type. This should be changed
+--echo -- after Bug#29394 is implemented.
+
+--enable_metadata
+
repair table t1;
+--disable_metadata
show index from t1;
drop table t1;
@@ -513,6 +549,217 @@ show status like 'slow_queries';
# (mysqld is started with --log-queries-not-using-indexes)
select 1 from information_schema.tables limit 1;
show status like 'slow_queries';
+#
+# BUG#10491: Server returns data as charset binary SHOW CREATE TABLE or SELECT
+# FROM I_S.
+#
+
+# Ensure that all needed objects are dropped.
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1;
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+DROP PROCEDURE IF EXISTS p1;
+DROP FUNCTION IF EXISTS f1;
+--enable_warnings
+
+# Create objects.
+
+CREATE DATABASE mysqltest1;
+
+CREATE TABLE t1(c INT NOT NULL PRIMARY KEY);
+
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1;
+
+CREATE VIEW v1 AS SELECT 1;
+
+CREATE PROCEDURE p1() SELECT 1;
+
+CREATE FUNCTION f1() RETURNS INT RETURN 1;
+
+
+# Test.
+
+set names utf8;
+
+--echo -- Here we enable metadata just to check that the collation of the
+--echo -- resultset is non-binary for string type. This should be changed
+--echo -- after Bug#29394 is implemented.
+
+--enable_metadata
+
+--echo ----------------------------------------------------------------
+
+SHOW CHARACTER SET LIKE 'utf8';
+
+--echo ----------------------------------------------------------------
+
+SHOW COLLATION LIKE 'latin1_bin';
+
+--echo ----------------------------------------------------------------
+
+SHOW CREATE DATABASE mysqltest1;
+
+--echo ----------------------------------------------------------------
+
+SHOW DATABASES LIKE 'mysqltest1';
+
+--echo ----------------------------------------------------------------
+
+SHOW CREATE TABLE t1;
+
+--echo ----------------------------------------------------------------
+
+SHOW INDEX FROM t1;
+
+--echo ----------------------------------------------------------------
+
+SELECT
+ TABLE_CATALOG,
+ TABLE_SCHEMA,
+ TABLE_NAME,
+ TABLE_TYPE,
+ ENGINE,
+ ROW_FORMAT,
+ TABLE_COLLATION,
+ CREATE_OPTIONS,
+ TABLE_COMMENT
+FROM INFORMATION_SCHEMA.TABLES
+WHERE table_name = 't1';
+
+--echo ----------------------------------------------------------------
+
+SELECT
+ TABLE_CATALOG,
+ TABLE_SCHEMA,
+ TABLE_NAME,
+ COLUMN_NAME,
+ COLUMN_DEFAULT,
+ IS_NULLABLE,
+ DATA_TYPE,
+ CHARACTER_SET_NAME,
+ COLLATION_NAME,
+ COLUMN_TYPE,
+ COLUMN_KEY,
+ EXTRA,
+ PRIVILEGES,
+ COLUMN_COMMENT
+FROM INFORMATION_SCHEMA.COLUMNS
+WHERE table_name = 't1';
+
+--echo ----------------------------------------------------------------
+
+SHOW TABLES LIKE 't1';
+
+--echo ----------------------------------------------------------------
+
+SHOW COLUMNS FROM t1;
+
+--echo ----------------------------------------------------------------
+
+SHOW TRIGGERS LIKE 't1';
+
+--echo ----------------------------------------------------------------
+
+SELECT
+ TRIGGER_CATALOG,
+ TRIGGER_SCHEMA,
+ TRIGGER_NAME,
+ EVENT_MANIPULATION,
+ EVENT_OBJECT_CATALOG,
+ EVENT_OBJECT_SCHEMA,
+ EVENT_OBJECT_TABLE,
+ ACTION_CONDITION,
+ ACTION_STATEMENT,
+ ACTION_ORIENTATION,
+ ACTION_TIMING,
+ ACTION_REFERENCE_OLD_TABLE,
+ ACTION_REFERENCE_NEW_TABLE,
+ ACTION_REFERENCE_OLD_ROW,
+ ACTION_REFERENCE_NEW_ROW,
+ SQL_MODE,
+ DEFINER
+FROM INFORMATION_SCHEMA.TRIGGERS
+WHERE trigger_name = 't1_bi';
+
+--echo ----------------------------------------------------------------
+
+SHOW CREATE VIEW v1;
+
+--echo ----------------------------------------------------------------
+
+SELECT *
+FROM INFORMATION_SCHEMA.VIEWS
+WHERE table_name = 'v1';
+
+--echo ----------------------------------------------------------------
+
+SHOW CREATE PROCEDURE p1;
+
+--echo ----------------------------------------------------------------
+
+SELECT
+ SPECIFIC_NAME,
+ ROUTINE_CATALOG,
+ ROUTINE_SCHEMA,
+ ROUTINE_NAME,
+ ROUTINE_TYPE,
+ DTD_IDENTIFIER,
+ ROUTINE_BODY,
+ ROUTINE_DEFINITION,
+ EXTERNAL_NAME,
+ EXTERNAL_LANGUAGE,
+ PARAMETER_STYLE,
+ IS_DETERMINISTIC,
+ SQL_DATA_ACCESS,
+ SQL_PATH,
+ SECURITY_TYPE,
+ SQL_MODE,
+ ROUTINE_COMMENT,
+ DEFINER
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE routine_name = 'p1';
+
+--echo ----------------------------------------------------------------
+
+SHOW CREATE FUNCTION f1;
+
+--echo ----------------------------------------------------------------
+
+SELECT
+ SPECIFIC_NAME,
+ ROUTINE_CATALOG,
+ ROUTINE_SCHEMA,
+ ROUTINE_NAME,
+ ROUTINE_TYPE,
+ DTD_IDENTIFIER,
+ ROUTINE_BODY,
+ ROUTINE_DEFINITION,
+ EXTERNAL_NAME,
+ EXTERNAL_LANGUAGE,
+ PARAMETER_STYLE,
+ IS_DETERMINISTIC,
+ SQL_DATA_ACCESS,
+ SQL_PATH,
+ SECURITY_TYPE,
+ SQL_MODE,
+ ROUTINE_COMMENT,
+ DEFINER
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE routine_name = 'f1';
+
+--echo ----------------------------------------------------------------
+
+--disable_metadata
+
+# Cleanup.
+
+DROP DATABASE mysqltest1;
+DROP TABLE t1;
+DROP VIEW v1;
+DROP PROCEDURE p1;
+DROP FUNCTION f1;
--echo End of 5.0 tests.
@@ -599,4 +846,55 @@ set names latin1;
--error ER_NO_SUCH_TABLE,ER_FILE_NOT_FOUND
show columns from `#mysql50#????????`;
+#
+# SHOW CREATE TRIGGER test.
+#
+
+# Prepare.
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP PROCEDURE IF EXISTS p1;
+--enable_warnings
+
+CREATE TABLE t1(c1 INT);
+
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1;
+
+# Test.
+
+SHOW CREATE TRIGGER t1_bi;
+
+CREATE PROCEDURE p1() SHOW CREATE TRIGGER t1_bi;
+
+CALL p1();
+CALL p1();
+CALL p1();
+CALL p1();
+CALL p1();
+CALL p1();
+CALL p1();
+CALL p1();
+CALL p1();
+CALL p1();
+
+PREPARE stmt1 FROM 'SHOW CREATE TRIGGER t1_bi';
+
+EXECUTE stmt1;
+EXECUTE stmt1;
+EXECUTE stmt1;
+EXECUTE stmt1;
+EXECUTE stmt1;
+EXECUTE stmt1;
+EXECUTE stmt1;
+EXECUTE stmt1;
+EXECUTE stmt1;
+EXECUTE stmt1;
+
+# Cleanup.
+
+DROP TABLE t1;
+DROP PROCEDURE p1;
+DEALLOCATE PREPARE stmt1;
+
--echo End of 5.1 tests
diff --git a/mysql-test/t/sp-destruct.test b/mysql-test/t/sp-destruct.test
index df07091d2de..04a581ab45f 100644
--- a/mysql-test/t/sp-destruct.test
+++ b/mysql-test/t/sp-destruct.test
@@ -94,26 +94,33 @@ insert into mysql.proc
(
db, name, type, specific_name, language, sql_data_access, is_deterministic,
security_type, param_list, returns, body, definer, created, modified,
- sql_mode, comment
+ sql_mode, comment, character_set_client, collation_connection, db_collation,
+ body_utf8
)
values
(
'test', 'bug14233_1', 'FUNCTION', 'bug14233_1', 'SQL', 'READS_SQL_DATA', 'NO',
'DEFINER', '', 'int(10)',
'select count(*) from mysql.user',
- 'root@localhost', NOW() , '0000-00-00 00:00:00', '', ''
+ 'root@localhost', NOW() , '0000-00-00 00:00:00', '', '',
+ '', '', '',
+ 'select count(*) from mysql.user'
),
(
'test', 'bug14233_2', 'FUNCTION', 'bug14233_2', 'SQL', 'READS_SQL_DATA', 'NO',
'DEFINER', '', 'int(10)',
'begin declare x int; select count(*) into x from mysql.user; end',
- 'root@localhost', NOW() , '0000-00-00 00:00:00', '', ''
+ 'root@localhost', NOW() , '0000-00-00 00:00:00', '', '',
+ '', '', '',
+ 'begin declare x int; select count(*) into x from mysql.user; end'
),
(
'test', 'bug14233_3', 'PROCEDURE', 'bug14233_3', 'SQL', 'READS_SQL_DATA','NO',
'DEFINER', '', '',
'alksj wpsj sa ^#!@ ',
- 'root@localhost', NOW() , '0000-00-00 00:00:00', '', ''
+ 'root@localhost', NOW() , '0000-00-00 00:00:00', '', '',
+ '', '', '',
+ 'alksj wpsj sa ^#!@ '
);
--error ER_SP_PROC_TABLE_CORRUPT
diff --git a/mysql-test/t/sp-dynamic.test b/mysql-test/t/sp-dynamic.test
index 6546a5ab548..e6f4aae96ac 100644
--- a/mysql-test/t/sp-dynamic.test
+++ b/mysql-test/t/sp-dynamic.test
@@ -85,7 +85,7 @@ call p1()|
call p1()|
drop procedure p1|
#
-# D. Create/Drop a table (a DDL that issues a commit) in Dynamic SQL.
+# D. Create/Drop/Alter a table (a DDL that issues a commit) in Dynamic SQL.
# (should work ok).
#
create procedure p1()
@@ -96,6 +96,10 @@ begin
execute stmt;
insert into t1 (a) values (1);
select * from t1;
+ prepare stmt_alter from "alter table t1 add (b int)";
+ execute stmt_alter;
+ insert into t1 (a,b) values (2,1);
+ deallocate prepare stmt_alter;
deallocate prepare stmt;
deallocate prepare stmt_drop;
end|
@@ -239,6 +243,7 @@ drop procedure p1|
# K. Use of continue handlers with Dynamic SQL.
#
drop table if exists t1|
+drop table if exists t2|
create table t1 (id integer primary key auto_increment,
stmt_text char(35), status varchar(20))|
insert into t1 (stmt_text) values
@@ -249,7 +254,10 @@ insert into t1 (stmt_text) values
("help help"), ("show databases"), ("show tables"),
("show table status"), ("show open tables"), ("show storage engines"),
("insert into t1 (id) values (1)"), ("update t1 set status=''"),
- ("delete from t1"), ("truncate t1"), ("call p1()"), ("foo bar")|
+ ("delete from t1"), ("truncate t1"), ("call p1()"), ("foo bar"),
+ ("create view v1 as select 1"), ("alter view v1 as select 2"),
+ ("drop view v1"),("create table t2 (a int)"),("alter table t2 add (b int)"),
+ ("drop table t2")|
create procedure p1()
begin
declare v_stmt_text varchar(255);
diff --git a/mysql-test/t/sp-error.test b/mysql-test/t/sp-error.test
index 69b1f77aa35..ef9bed8b789 100644
--- a/mysql-test/t/sp-error.test
+++ b/mysql-test/t/sp-error.test
@@ -1087,12 +1087,12 @@ delimiter ;|
#
# BUG 12490 (Packets out of order if calling HELP CONTENTS from Stored Procedure)
#
---error 1314
+--error ER_SP_BADSTATEMENT
CREATE PROCEDURE BUG_12490() HELP CONTENTS;
---error 1314
+--error ER_SP_BADSTATEMENT
CREATE FUNCTION BUG_12490() RETURNS INT HELP CONTENTS;
CREATE TABLE t_bug_12490(a int);
---error 1314
+--error ER_SP_BADSTATEMENT
CREATE TRIGGER BUG_12490 BEFORE UPDATE ON t_bug_12490 FOR EACH ROW HELP CONTENTS;
DROP TABLE t_bug_12490;
@@ -1401,9 +1401,9 @@ CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN create view v1 as sele
-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
CREATE FUNCTION bug_13627_f() returns int BEGIN create view v1 as select 1; return 1; END |
--- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+-- error ER_SP_BADSTATEMENT
CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN alter view v1 as select 1; END |
--- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+-- error ER_SP_BADSTATEMENT
CREATE FUNCTION bug_13627_f() returns int BEGIN alter view v1 as select 1; return 1; END |
-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
diff --git a/mysql-test/t/sp.test b/mysql-test/t/sp.test
index 29e759d7881..f5bad05a40a 100644
--- a/mysql-test/t/sp.test
+++ b/mysql-test/t/sp.test
@@ -6331,7 +6331,7 @@ set names utf8|
drop database if exists това_е_дълго_име_за_база_данни_нали|
--enable_warnings
create database това_е_дълго_име_за_база_данни_нали|
-INSERT INTO mysql.proc VALUES ('това_е_дълго_име_за_база_данни_нали','това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго','PROCEDURE','това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго','SQL','CONTAINS_SQL','NO','DEFINER','','','bad_body','root@localhost',now(), now(),'','')|
+INSERT INTO mysql.proc VALUES ('това_е_дълго_име_за_база_данни_нали','това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго','PROCEDURE','това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго','SQL','CONTAINS_SQL','NO','DEFINER','','','bad_body','root@localhost',now(), now(),'','', 'utf8', 'utf8_general_ci', 'utf8_general_ci', 'n/a')|
--error ER_SP_PROC_TABLE_CORRUPT
call това_е_дълго_име_за_база_данни_нали.това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго()|
drop database това_е_дълго_име_за_база_данни_нали|
diff --git a/mysql-test/t/strict_autoinc_5ndb.test b/mysql-test/t/strict_autoinc_5ndb.test
index 819d0068148..9e2090fddef 100644
--- a/mysql-test/t/strict_autoinc_5ndb.test
+++ b/mysql-test/t/strict_autoinc_5ndb.test
@@ -1,5 +1,4 @@
-- source include/have_ndb.inc
--- source include/have_binlog_format_row.inc
#
# Bug#20573 Strict mode auto-increment
diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test
index e88ded56914..4c046dfd3c6 100644
--- a/mysql-test/t/subselect.test
+++ b/mysql-test/t/subselect.test
@@ -2945,6 +2945,48 @@ SELECT (SELECT 1 FROM t1 WHERE t1.a=t2.a ORDER BY t1.b LIMIT 1) AS d1 FROM t2;
DROP TABLE t1,t2;
+
+#
+# Bug #27333: subquery grouped for aggregate of outer query / no aggregate
+# of subquery
+#
+CREATE TABLE t1 (a INTEGER, b INTEGER);
+CREATE TABLE t2 (x INTEGER);
+INSERT INTO t1 VALUES (1,11), (2,22), (2,22);
+INSERT INTO t2 VALUES (1), (2);
+
+# wasn't failing, but should
+--error ER_SUBQUERY_NO_1_ROW
+SELECT a, COUNT(b), (SELECT COUNT(b) FROM t2) FROM t1 GROUP BY a;
+
+# fails as it should
+--error ER_SUBQUERY_NO_1_ROW
+SELECT a, COUNT(b), (SELECT COUNT(b)+0 FROM t2) FROM t1 GROUP BY a;
+
+SELECT (SELECT SUM(t1.a)/AVG(t2.x) FROM t2) FROM t1;
+DROP TABLE t1,t2;
+
+# second test case from 27333
+CREATE TABLE t1 (a INT, b INT);
+INSERT INTO t1 VALUES (1, 2), (1,3), (1,4), (2,1), (2,2);
+
+-- returns no rows, when it should
+SELECT a1.a, COUNT(*) FROM t1 a1 WHERE a1.a = 1
+AND EXISTS( SELECT a2.a FROM t1 a2 WHERE a2.a = a1.a)
+GROUP BY a1.a;
+DROP TABLE t1;
+
+#test cases from 29297
+CREATE TABLE t1 (a INT);
+CREATE TABLE t2 (a INT);
+INSERT INTO t1 VALUES (1),(2);
+INSERT INTO t2 VALUES (1),(2);
+SELECT (SELECT SUM(t1.a) FROM t2 WHERE a=0) FROM t1;
+--error ER_SUBQUERY_NO_1_ROW
+SELECT (SELECT SUM(t1.a) FROM t2 WHERE a!=0) FROM t1;
+SELECT (SELECT SUM(t1.a) FROM t2 WHERE a=1) FROM t1;
+DROP TABLE t1,t2;
+
--echo End of 5.0 tests.
#
diff --git a/mysql-test/t/type_enum.test b/mysql-test/t/type_enum.test
index 200fd063b99..1e5b53a2c6e 100644
--- a/mysql-test/t/type_enum.test
+++ b/mysql-test/t/type_enum.test
@@ -136,16 +136,6 @@ alter table t1 add f2 enum(0xFFFF);
show create table t1;
drop table t1;
---echo End of 4.1 tests
-
-#
-# Bug#28729: Field_enum wrongly reported an error while storing an empty string.
-#
-create table t1(f1 set('a','b'), index(f1));
-insert into t1 values(''),(''),('a'),('b');
-select * from t1 where f1='';
-drop table t1;
-
#
# Bug#24660 "enum" field type definition problem
#
@@ -166,4 +156,31 @@ drop table t1;
create table t1(exhausting_charset enum('ABCDEFGHIJKLMNOPQRSTUVWXYZ','
 !"','#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~','xx\','yy\','zz'));
+#
+# Bug #29251: MySQL coerces special 0 enum values to normal '' value
+# when ALTERing the column
+#
+
+CREATE TABLE t1 (
+ id INT AUTO_INCREMENT PRIMARY KEY,
+ c1 ENUM('a', '', 'b')
+);
+INSERT INTO t1 (c1) VALUES (0), ('a'), (''), ('b');
+SELECT id, c1 + 0, c1 FROM t1;
+
+ALTER TABLE t1 CHANGE c1 c1 ENUM('a', '') NOT NULL;
+SELECT id, c1 + 0, c1 FROM t1;
+
+DROP TABLE t1;
+
+--echo End of 4.1 tests
+
+#
+# Bug#28729: Field_enum wrongly reported an error while storing an empty string.
+#
+create table t1(f1 set('a','b'), index(f1));
+insert into t1 values(''),(''),('a'),('b');
+select * from t1 where f1='';
+drop table t1;
+
--echo End of 5.1 tests
diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test
index c441c7b5efc..ee807a1ae25 100644
--- a/mysql-test/t/view.test
+++ b/mysql-test/t/view.test
@@ -752,6 +752,11 @@ drop view v1;
#
# VIEWs with national characters
#
+
+SET @old_cs_client = @@character_set_client;
+SET @old_cs_results = @@character_set_results;
+SET @old_cs_connection = @@character_set_connection;
+
set names utf8;
create table tü (cü char);
create view vü as select cü from tü;
@@ -759,7 +764,10 @@ insert into vü values ('ü');
select * from vü;
drop view vü;
drop table tü;
-set names latin1;
+
+SET character_set_client = @old_cs_client;
+SET character_set_results = @old_cs_results;
+SET character_set_connection = @old_cs_connection;
#
# problem with used_tables() of outer reference resolved in VIEW