summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorGalina Shalygina <galashalygina@gmail.com>2016-05-08 23:04:41 +0300
committerGalina Shalygina <galashalygina@gmail.com>2016-05-08 23:04:41 +0300
commitbe1d06c8a5f843e775374e5ec148aaee56970bdc (patch)
treebd7a95e771ca3b405583dccab8b468dd6fb4509f /mysql-test
parente09b1f2a226bf2763b211f74908a6486b83ebed1 (diff)
downloadmariadb-git-be1d06c8a5f843e775374e5ec148aaee56970bdc.tar.gz
Merge branch '10.2' into 10.2-mdev9864
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/include/crash_mysqld.inc18
-rw-r--r--mysql-test/include/galera_connect.inc5
-rw-r--r--mysql-test/r/analyze_format_json.result21
-rw-r--r--mysql-test/r/analyze_stmt_orderby.result65
-rw-r--r--mysql-test/r/connect2.result1
-rw-r--r--mysql-test/r/cte_nonrecursive.result13
-rw-r--r--mysql-test/r/cte_recursive.result289
-rw-r--r--mysql-test/r/ctype_eucjpms.result21
-rw-r--r--mysql-test/r/ctype_gbk_export_import.result3903
-rw-r--r--mysql-test/r/ctype_ujis.result21
-rw-r--r--mysql-test/r/ctype_utf8.result33
-rw-r--r--mysql-test/r/ctype_utf8mb4.result27
-rw-r--r--mysql-test/r/delayed.result34
-rw-r--r--mysql-test/r/derived_opt.result4
-rw-r--r--mysql-test/r/distinct.result18
-rw-r--r--mysql-test/r/explain_json.result12
-rw-r--r--mysql-test/r/func_analyse.result26
-rw-r--r--mysql-test/r/func_group.result2
-rw-r--r--mysql-test/r/group_by.result49
-rw-r--r--mysql-test/r/having.result10
-rw-r--r--mysql-test/r/join_cache.result4
-rw-r--r--mysql-test/r/join_outer.result12
-rw-r--r--mysql-test/r/join_outer_jcl6.result12
-rw-r--r--mysql-test/r/limit.result4
-rw-r--r--mysql-test/r/limit_rows_examined.result29
-rw-r--r--mysql-test/r/mrr_derived_crash_4610.result4
-rw-r--r--mysql-test/r/myisam.result8
-rw-r--r--mysql-test/r/order_by_optimizer.result30
-rw-r--r--mysql-test/r/parser.result4
-rw-r--r--mysql-test/r/select_found.result20
-rw-r--r--mysql-test/r/show_explain.result2
-rw-r--r--mysql-test/r/subselect.result2
-rw-r--r--mysql-test/r/subselect4.result6
-rw-r--r--mysql-test/r/subselect_no_exists_to_in.result2
-rw-r--r--mysql-test/r/subselect_no_mat.result2
-rw-r--r--mysql-test/r/subselect_no_opts.result2
-rw-r--r--mysql-test/r/subselect_no_scache.result2
-rw-r--r--mysql-test/r/subselect_no_semijoin.result2
-rw-r--r--mysql-test/r/win.result1961
-rw-r--r--mysql-test/r/win_avg.result95
-rw-r--r--mysql-test/r/win_bit.result117
-rw-r--r--mysql-test/r/win_ntile.result435
-rw-r--r--mysql-test/r/win_orderby.result26
-rw-r--r--mysql-test/r/win_percent_cume.result62
-rw-r--r--mysql-test/r/win_rank.result104
-rw-r--r--mysql-test/r/win_sum.result95
-rw-r--r--mysql-test/std_data/bad2_master.info35
-rw-r--r--mysql-test/std_data/bad3_master.info37
-rw-r--r--mysql-test/std_data/bad4_master.info35
-rw-r--r--mysql-test/std_data/bad5_master.info35
-rw-r--r--mysql-test/std_data/bad6_master.info36
-rw-r--r--mysql-test/std_data/bad_master.info35
-rw-r--r--mysql-test/std_data/loaddata/mdev9823.ujis.txt11
-rw-r--r--mysql-test/std_data/loaddata/mdev9823.utf8mb4.txt12
-rw-r--r--mysql-test/std_data/loaddata/mdev9874.xml1
-rw-r--r--mysql-test/suite/galera/include/galera_sst_set_mysqldump.inc1
-rw-r--r--mysql-test/suite/galera/r/binlog_checksum.result7
-rw-r--r--mysql-test/suite/galera/r/create.result4
-rw-r--r--mysql-test/suite/galera/r/enforce_storage_engine.result3
-rw-r--r--mysql-test/suite/galera/r/fk.result7
-rw-r--r--mysql-test/suite/galera/r/galera_account_management.result16
-rw-r--r--mysql-test/suite/galera/r/galera_alter_engine_innodb.result1
-rw-r--r--mysql-test/suite/galera/r/galera_alter_engine_myisam.result2
-rw-r--r--mysql-test/suite/galera/r/galera_alter_table_force.result1
-rw-r--r--mysql-test/suite/galera/r/galera_applier_ftwrl_table.result5
-rw-r--r--mysql-test/suite/galera/r/galera_applier_ftwrl_table_alter.result3
-rw-r--r--mysql-test/suite/galera/r/galera_as_master.result6
-rw-r--r--mysql-test/suite/galera/r/galera_as_master_large.result6
-rw-r--r--mysql-test/suite/galera/r/galera_as_slave.result9
-rw-r--r--mysql-test/suite/galera/r/galera_as_slave_gtid.result8
-rw-r--r--mysql-test/suite/galera/r/galera_bf_abort_flush_for_export.result3
-rw-r--r--mysql-test/suite/galera/r/galera_bf_abort_ftwrl.result3
-rw-r--r--mysql-test/suite/galera/r/galera_bf_abort_get_lock.result4
-rw-r--r--mysql-test/suite/galera/r/galera_bf_abort_lock_table.result3
-rw-r--r--mysql-test/suite/galera/r/galera_bf_abort_sleep.result3
-rw-r--r--mysql-test/suite/galera/r/galera_binlog_cache_size.result1
-rw-r--r--mysql-test/suite/galera/r/galera_binlog_checksum.result3
-rw-r--r--mysql-test/suite/galera/r/galera_binlog_event_max_size_min.result1
-rw-r--r--mysql-test/suite/galera/r/galera_concurrent_ctas.result2
-rw-r--r--mysql-test/suite/galera/r/galera_create_function.result6
-rw-r--r--mysql-test/suite/galera/r/galera_create_procedure.result6
-rw-r--r--mysql-test/suite/galera/r/galera_create_table_like.result2
-rw-r--r--mysql-test/suite/galera/r/galera_create_trigger.result2
-rw-r--r--mysql-test/suite/galera/r/galera_delete_limit.result5
-rw-r--r--mysql-test/suite/galera/r/galera_drop_multi.result2
-rw-r--r--mysql-test/suite/galera/r/galera_enum.result9
-rw-r--r--mysql-test/suite/galera/r/galera_events.result9
-rw-r--r--mysql-test/suite/galera/r/galera_fk_cascade_delete.result2
-rw-r--r--mysql-test/suite/galera/r/galera_fk_cascade_update.result2
-rw-r--r--mysql-test/suite/galera/r/galera_fk_conflict.result4
-rw-r--r--mysql-test/suite/galera/r/galera_fk_mismatch.result3
-rw-r--r--mysql-test/suite/galera/r/galera_fk_multicolumn.result2
-rw-r--r--mysql-test/suite/galera/r/galera_fk_multitable.result2
-rw-r--r--mysql-test/suite/galera/r/galera_fk_no_pk.result3
-rw-r--r--mysql-test/suite/galera/r/galera_fk_selfreferential.result2
-rw-r--r--mysql-test/suite/galera/r/galera_fk_setnull.result4
-rw-r--r--mysql-test/suite/galera/r/galera_forced_binlog_format.result3
-rw-r--r--mysql-test/suite/galera/r/galera_ftwrl.result3
-rw-r--r--mysql-test/suite/galera/r/galera_gcs_fc_limit.result6
-rw-r--r--mysql-test/suite/galera/r/galera_gtid.result2
-rw-r--r--mysql-test/suite/galera/r/galera_insert_ignore.result9
-rw-r--r--mysql-test/suite/galera/r/galera_insert_multi.result19
-rw-r--r--mysql-test/suite/galera/r/galera_ist_mysqldump.result1
-rw-r--r--mysql-test/suite/galera/r/galera_kill_applier.result1
-rw-r--r--mysql-test/suite/galera/r/galera_kill_ddl.result6
-rw-r--r--mysql-test/suite/galera/r/galera_kill_smallchanges.result6
-rw-r--r--mysql-test/suite/galera/r/galera_lock_table.result4
-rw-r--r--mysql-test/suite/galera/r/galera_log_bin.result4
-rw-r--r--mysql-test/suite/galera/r/galera_many_indexes.result10
-rw-r--r--mysql-test/suite/galera/r/galera_mdl_race.result10
-rw-r--r--mysql-test/suite/galera/r/galera_multi_database.result5
-rw-r--r--mysql-test/suite/galera/r/galera_myisam_autocommit.result1
-rw-r--r--mysql-test/suite/galera/r/galera_myisam_transactions.result3
-rw-r--r--mysql-test/suite/galera/r/galera_nopk_bit.result6
-rw-r--r--mysql-test/suite/galera/r/galera_nopk_blob.result6
-rw-r--r--mysql-test/suite/galera/r/galera_nopk_large_varchar.result6
-rw-r--r--mysql-test/suite/galera/r/galera_nopk_unicode.result5
-rw-r--r--mysql-test/suite/galera/r/galera_parallel_apply_lock_table.result5
-rw-r--r--mysql-test/suite/galera/r/galera_pc_ignore_sb.result6
-rw-r--r--mysql-test/suite/galera/r/galera_pk_bigint_signed.result6
-rw-r--r--mysql-test/suite/galera/r/galera_pk_bigint_unsigned.result6
-rw-r--r--mysql-test/suite/galera/r/galera_prepared_statement.result3
-rw-r--r--mysql-test/suite/galera/r/galera_query_cache.result5
-rw-r--r--mysql-test/suite/galera/r/galera_query_cache_sync_wait.result12
-rw-r--r--mysql-test/suite/galera/r/galera_read_only.result6
-rw-r--r--mysql-test/suite/galera/r/galera_repl_key_format_flat16.result3
-rw-r--r--mysql-test/suite/galera/r/galera_repl_max_ws_size.result1
-rw-r--r--mysql-test/suite/galera/r/galera_restart_nochanges.result5
-rw-r--r--mysql-test/suite/galera/r/galera_roles.result15
-rw-r--r--mysql-test/suite/galera/r/galera_rsu_error.result3
-rw-r--r--mysql-test/suite/galera/r/galera_rsu_simple.result4
-rw-r--r--mysql-test/suite/galera/r/galera_rsu_wsrep_desync.result8
-rw-r--r--mysql-test/suite/galera/r/galera_sbr.result3
-rw-r--r--mysql-test/suite/galera/r/galera_sbr_binlog.result3
-rw-r--r--mysql-test/suite/galera/r/galera_serializable.result10
-rw-r--r--mysql-test/suite/galera/r/galera_server.result6
-rw-r--r--mysql-test/suite/galera/r/galera_split_brain.result6
-rw-r--r--mysql-test/suite/galera/r/galera_sql_log_bin_zero.result2
-rw-r--r--mysql-test/suite/galera/r/galera_ssl.result1
-rw-r--r--mysql-test/suite/galera/r/galera_ssl_compression.result4
-rw-r--r--mysql-test/suite/galera/r/galera_sst_mysqldump.result1
-rw-r--r--mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result1
-rw-r--r--mysql-test/suite/galera/r/galera_status_cluster.result2
-rw-r--r--mysql-test/suite/galera/r/galera_status_local_index.result3
-rw-r--r--mysql-test/suite/galera/r/galera_suspend_slave.result7
-rw-r--r--mysql-test/suite/galera/r/galera_sync_wait_show.result15
-rw-r--r--mysql-test/suite/galera/r/galera_toi_alter_auto_increment.result14
-rw-r--r--mysql-test/suite/galera/r/galera_toi_ddl_locking.result8
-rw-r--r--mysql-test/suite/galera/r/galera_toi_ddl_nonconflicting.result4
-rw-r--r--mysql-test/suite/galera/r/galera_toi_ddl_sequential.result4
-rw-r--r--mysql-test/suite/galera/r/galera_toi_ftwrl.result3
-rw-r--r--mysql-test/suite/galera/r/galera_toi_lock_exclusive.result5
-rw-r--r--mysql-test/suite/galera/r/galera_toi_lock_shared.result3
-rw-r--r--mysql-test/suite/galera/r/galera_truncate.result7
-rw-r--r--mysql-test/suite/galera/r/galera_truncate_temporary.result9
-rw-r--r--mysql-test/suite/galera/r/galera_unicode_identifiers.result4
-rw-r--r--mysql-test/suite/galera/r/galera_unicode_pk.result9
-rw-r--r--mysql-test/suite/galera/r/galera_update_limit.result5
-rw-r--r--mysql-test/suite/galera/r/galera_v1_row_events.result3
-rw-r--r--mysql-test/suite/galera/r/galera_var_OSU_method.result8
-rw-r--r--mysql-test/suite/galera/r/galera_var_OSU_method2.result7
-rw-r--r--mysql-test/suite/galera/r/galera_var_auto_inc_control_off.result10
-rw-r--r--mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result5
-rw-r--r--mysql-test/suite/galera/r/galera_var_cluster_address.result11
-rw-r--r--mysql-test/suite/galera/r/galera_var_desync_on.result5
-rw-r--r--mysql-test/suite/galera/r/galera_var_dirty_reads.result4
-rw-r--r--mysql-test/suite/galera/r/galera_var_fkchecks.result2
-rw-r--r--mysql-test/suite/galera/r/galera_var_gtid_domain_id.result9
-rw-r--r--mysql-test/suite/galera/r/galera_var_innodb_disallow_writes.result5
-rw-r--r--mysql-test/suite/galera/r/galera_var_log_bin.result3
-rw-r--r--mysql-test/suite/galera/r/galera_var_max_ws_size.result1
-rw-r--r--mysql-test/suite/galera/r/galera_var_mysql_replication_bundle.result5
-rw-r--r--mysql-test/suite/galera/r/galera_var_node_address.result5
-rw-r--r--mysql-test/suite/galera/r/galera_var_replicate_myisam_off.result2
-rw-r--r--mysql-test/suite/galera/r/galera_var_replicate_myisam_on.result22
-rw-r--r--mysql-test/suite/galera/r/galera_var_slave_threads.result8
-rw-r--r--mysql-test/suite/galera/r/galera_var_sync_wait.result7
-rw-r--r--mysql-test/suite/galera/r/galera_var_wsrep_on_off.result3
-rw-r--r--mysql-test/suite/galera/r/galera_wan.result5
-rw-r--r--mysql-test/suite/galera/r/galera_wsrep_new_cluster.result1
-rw-r--r--mysql-test/suite/galera/r/galera_zero_length_column.result3
-rw-r--r--mysql-test/suite/galera/r/grant.result4
-rw-r--r--mysql-test/suite/galera/r/lp1276424.result1
-rw-r--r--mysql-test/suite/galera/r/lp1438990.result1
-rw-r--r--mysql-test/suite/galera/r/mdev_9290.result5
-rw-r--r--mysql-test/suite/galera/r/mysql-wsrep#110.result3
-rw-r--r--mysql-test/suite/galera/r/mysql-wsrep#198.result10
-rw-r--r--mysql-test/suite/galera/r/mysql-wsrep#201.result1
-rw-r--r--mysql-test/suite/galera/r/mysql-wsrep#237.result8
-rw-r--r--mysql-test/suite/galera/r/mysql-wsrep#247.result1
-rw-r--r--mysql-test/suite/galera/r/mysql-wsrep#31.result3
-rw-r--r--mysql-test/suite/galera/r/mysql-wsrep#33.result1
-rw-r--r--mysql-test/suite/galera/r/partition.result17
-rw-r--r--mysql-test/suite/galera/r/rename.result7
-rw-r--r--mysql-test/suite/galera/r/rpl_row_annotate.result7
-rw-r--r--mysql-test/suite/galera/r/sql_log_bin.result4
-rw-r--r--mysql-test/suite/galera/r/unique_key.result8
-rw-r--r--mysql-test/suite/galera/r/view.result4
-rw-r--r--mysql-test/suite/galera/t/mysql-wsrep#237.test2
-rw-r--r--mysql-test/suite/maria/maria.result4
-rw-r--r--mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result2
-rw-r--r--mysql-test/suite/rpl/r/rpl_upgrade_master_info.result102
-rw-r--r--mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_upgrade_master_info.test163
-rw-r--r--mysql-test/t/connect2.test3
-rw-r--r--mysql-test/t/cte_nonrecursive.test14
-rw-r--r--mysql-test/t/cte_recursive.test241
-rw-r--r--mysql-test/t/ctype_eucjpms.test16
-rw-r--r--mysql-test/t/ctype_gbk_export_import.test161
-rw-r--r--mysql-test/t/ctype_ujis.test17
-rw-r--r--mysql-test/t/ctype_utf8.test16
-rw-r--r--mysql-test/t/ctype_utf8mb4.test17
-rw-r--r--mysql-test/t/delayed.test41
-rw-r--r--mysql-test/t/func_analyse.test28
-rw-r--r--mysql-test/t/group_by.test35
-rw-r--r--mysql-test/t/limit_rows_examined.test4
-rw-r--r--mysql-test/t/myisam.test2
-rw-r--r--mysql-test/t/order_by_optimizer.test34
-rw-r--r--mysql-test/t/parser.test4
-rw-r--r--mysql-test/t/subselect.test2
-rw-r--r--mysql-test/t/win.test1203
-rw-r--r--mysql-test/t/win_avg.test47
-rw-r--r--mysql-test/t/win_bit.test89
-rw-r--r--mysql-test/t/win_ntile.test171
-rw-r--r--mysql-test/t/win_orderby.test32
-rw-r--r--mysql-test/t/win_percent_cume.test36
-rw-r--r--mysql-test/t/win_rank.test58
-rw-r--r--mysql-test/t/win_sum.test47
228 files changed, 11039 insertions, 134 deletions
diff --git a/mysql-test/include/crash_mysqld.inc b/mysql-test/include/crash_mysqld.inc
new file mode 100644
index 00000000000..4190d24d801
--- /dev/null
+++ b/mysql-test/include/crash_mysqld.inc
@@ -0,0 +1,18 @@
+# Crash mysqld hard and wait until it's restarted
+
+--source include/have_debug_sync.inc
+--source include/not_embedded.inc
+
+# Write file to make mysql-test-run.pl expect crash and restart
+--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+
+# Setup the mysqld to crash at shutdown
+SET debug_dbug="d,crash_shutdown";
+--error 2013
+shutdown;
+
+# Turn on reconnect
+--enable_reconnect
+
+# Call script that will poll the server waiting for it to be back online again
+--source include/wait_until_connected_again.inc
diff --git a/mysql-test/include/galera_connect.inc b/mysql-test/include/galera_connect.inc
index 9d458c5e063..a40b03bf421 100644
--- a/mysql-test/include/galera_connect.inc
+++ b/mysql-test/include/galera_connect.inc
@@ -37,12 +37,15 @@ if (!$_galera_port)
if ($galera_debug)
{
+--disable_query_log
--echo connect($galera_connection_name,127.0.0.1,root,,test,$_galera_port,)
+--enable_query_log
}
# Temporal solution to avoid concurrent IST MDEV-7178
--sleep 1
# Open a connection
+--disable_query_log
--connect($galera_connection_name,127.0.0.1,root,,test,$_galera_port,)
-
+--enable_query_log
diff --git a/mysql-test/r/analyze_format_json.result b/mysql-test/r/analyze_format_json.result
index 4f8876a8414..fadbe705f99 100644
--- a/mysql-test/r/analyze_format_json.result
+++ b/mysql-test/r/analyze_format_json.result
@@ -492,8 +492,9 @@ ANALYZE
"select_id": 1,
"r_loops": 1,
"volatile parameter": "REPLACED",
- "having_condition": "(TOP > a)",
+ "having_condition": "(TOP > t2.a)",
"filesort": {
+ "sort_key": "t2.a",
"r_loops": 1,
"volatile parameter": "REPLACED",
"r_used_priority_queue": false,
@@ -523,6 +524,7 @@ ANALYZE
"r_loops": 1,
"volatile parameter": "REPLACED",
"filesort": {
+ "sort_key": "t2.a",
"r_loops": 1,
"volatile parameter": "REPLACED",
"r_used_priority_queue": false,
@@ -563,6 +565,7 @@ ANALYZE
"r_loops": 1,
"volatile parameter": "REPLACED",
"filesort": {
+ "sort_key": "t2.a",
"r_loops": 1,
"volatile parameter": "REPLACED",
"r_used_priority_queue": false,
@@ -684,18 +687,20 @@ ANALYZE
"r_loops": 1,
"volatile parameter": "REPLACED",
"filesort": {
+ "sort_key": "group_concat(t3.f3 separator ',')",
"r_loops": 1,
"volatile parameter": "REPLACED",
"r_used_priority_queue": false,
"r_output_rows": 0,
"volatile parameter": "REPLACED",
- "filesort": {
- "r_loops": 1,
- "volatile parameter": "REPLACED",
- "r_used_priority_queue": false,
- "r_output_rows": 0,
- "volatile parameter": "REPLACED",
- "temporary_table": {
+ "temporary_table": {
+ "filesort": {
+ "sort_key": "(subquery#2)",
+ "r_loops": 1,
+ "volatile parameter": "REPLACED",
+ "r_used_priority_queue": false,
+ "r_output_rows": 0,
+ "volatile parameter": "REPLACED",
"temporary_table": {
"table": {
"table_name": "t2",
diff --git a/mysql-test/r/analyze_stmt_orderby.result b/mysql-test/r/analyze_stmt_orderby.result
index be1f01a2a52..37f0005148e 100644
--- a/mysql-test/r/analyze_stmt_orderby.result
+++ b/mysql-test/r/analyze_stmt_orderby.result
@@ -172,8 +172,8 @@ EXPLAIN
"query_block": {
"select_id": 1,
"filesort": {
+ "sort_key": "t2.b",
"temporary_table": {
- "function": "buffer",
"table": {
"table_name": "t0",
"access_type": "ALL",
@@ -205,6 +205,7 @@ ANALYZE
"r_loops": 1,
"r_total_time_ms": "REPLACED",
"filesort": {
+ "sort_key": "t2.b",
"r_loops": 1,
"r_total_time_ms": "REPLACED",
"r_limit": 4,
@@ -257,6 +258,7 @@ EXPLAIN
"select_id": 1,
"read_sorted_file": {
"filesort": {
+ "sort_key": "t0.a",
"table": {
"table_name": "t0",
"access_type": "ALL",
@@ -290,6 +292,7 @@ ANALYZE
"read_sorted_file": {
"r_rows": 10,
"filesort": {
+ "sort_key": "t0.a",
"r_loops": 1,
"r_total_time_ms": "REPLACED",
"r_used_priority_queue": false,
@@ -346,6 +349,7 @@ ANALYZE
"r_loops": 1,
"r_total_time_ms": "REPLACED",
"filesort": {
+ "sort_key": "t2.c",
"r_loops": 1,
"r_total_time_ms": "REPLACED",
"r_used_priority_queue": false,
@@ -455,18 +459,20 @@ ANALYZE
"r_loops": 1,
"r_total_time_ms": "REPLACED",
"filesort": {
+ "sort_key": "count(distinct t5.b)",
"r_loops": 1,
"r_total_time_ms": "REPLACED",
"r_limit": 1,
"r_used_priority_queue": true,
"r_output_rows": 2,
- "filesort": {
- "r_loops": 1,
- "r_total_time_ms": "REPLACED",
- "r_used_priority_queue": false,
- "r_output_rows": 6,
- "r_buffer_size": "REPLACED",
- "temporary_table": {
+ "temporary_table": {
+ "filesort": {
+ "sort_key": "t5.a",
+ "r_loops": 1,
+ "r_total_time_ms": "REPLACED",
+ "r_used_priority_queue": false,
+ "r_output_rows": 6,
+ "r_buffer_size": "REPLACED",
"temporary_table": {
"table": {
"table_name": "t6",
@@ -511,26 +517,31 @@ EXPLAIN
"query_block": {
"select_id": 1,
"filesort": {
+ "sort_key": "count(distinct t5.b)",
"temporary_table": {
- "function": "buffer",
- "table": {
- "table_name": "t6",
- "access_type": "ALL",
- "rows": 5,
- "filtered": 100,
- "attached_condition": "((t6.b > 0) and (t6.a <= 5))"
- },
- "block-nl-join": {
- "table": {
- "table_name": "t5",
- "access_type": "ALL",
- "rows": 7,
- "filtered": 100
- },
- "buffer_type": "flat",
- "buffer_size": "256Kb",
- "join_type": "BNL",
- "attached_condition": "(t5.a = t6.a)"
+ "filesort": {
+ "sort_key": "t5.a",
+ "temporary_table": {
+ "table": {
+ "table_name": "t6",
+ "access_type": "ALL",
+ "rows": 5,
+ "filtered": 100,
+ "attached_condition": "((t6.b > 0) and (t6.a <= 5))"
+ },
+ "block-nl-join": {
+ "table": {
+ "table_name": "t5",
+ "access_type": "ALL",
+ "rows": 7,
+ "filtered": 100
+ },
+ "buffer_type": "flat",
+ "buffer_size": "256Kb",
+ "join_type": "BNL",
+ "attached_condition": "(t5.a = t6.a)"
+ }
+ }
}
}
}
diff --git a/mysql-test/r/connect2.result b/mysql-test/r/connect2.result
index b68f7ae7c43..5430626a533 100644
--- a/mysql-test/r/connect2.result
+++ b/mysql-test/r/connect2.result
@@ -1,6 +1,7 @@
call mtr.add_suppression("Allocation failed");
SET @old_debug= @@session.debug;
set @old_thread_cache_size=@@global.thread_cache_size;
+set @@global.thread_cache_size=0;
connect con1,localhost,root,,test,,;
select 1;
1
diff --git a/mysql-test/r/cte_nonrecursive.result b/mysql-test/r/cte_nonrecursive.result
index df641156e61..a9c13f3f10b 100644
--- a/mysql-test/r/cte_nonrecursive.result
+++ b/mysql-test/r/cte_nonrecursive.result
@@ -746,3 +746,16 @@ with t(f1,f1) as (select * from t1 where b >= 'c')
select t1.b from t2,t1 where t1.a = t2.c;
ERROR 42S21: Duplicate column name 'f1'
drop table t1,t2;
+#
+# Bug mdev-9937: View used in the specification of with table
+# refers to the base table with the same name
+#
+create table t1 (a int);
+insert into t1 values (20), (30), (10);
+create view v1 as select * from t1 where a > 10;
+with t1 as (select * from v1) select * from t1;
+a
+20
+30
+drop view v1;
+drop table t1;
diff --git a/mysql-test/r/cte_recursive.result b/mysql-test/r/cte_recursive.result
new file mode 100644
index 00000000000..7408bc56e63
--- /dev/null
+++ b/mysql-test/r/cte_recursive.result
@@ -0,0 +1,289 @@
+create table t1 (a int, b varchar(32));
+insert into t1 values
+(4,'aaaa' ), (7,'bb'), (1,'ccc'), (4,'dd');
+insert into t1 values
+(3,'eee'), (7,'bb'), (1,'fff'), (4,'ggg');
+with recursive
+a1(a,b) as
+(select * from t1 where t1.a>3
+union
+select * from b1 where b1.a >3
+union
+select * from c1 where c1.a>3),
+b1(a,b) as
+(select * from a1 where a1.b > 'ccc'
+union
+select * from c1 where c1.b > 'ddd'),
+c1(a,b) as
+(select * from a1 where a1.a<6 and a1.b< 'zz'
+union
+select * from b1 where b1.b > 'auu')
+select * from c1;
+ERROR HY000: No anchors for recursive WITH element 'b1'
+drop table t1;
+create table folks(id int, name char(32), dob date, father int, mother int);
+insert into folks values
+(100, 'Vasya', '2000-01-01', 20, 30),
+(20, 'Dad', '1970-02-02', 10, 9),
+(30, 'Mom', '1975-03-03', 8, 7),
+(10, 'Grandpa Bill', '1940-04-05', null, null),
+(9, 'Grandma Ann', '1941-10-15', null, null),
+(25, 'Uncle Jim', '1968-11-18', 8, 7),
+(98, 'Sister Amy', '2001-06-20', 20, 30),
+(8, 'Grandma Sally', '1943-08-23', 5, 6),
+(6, 'Grandgrandma Martha', '1923-05-17', null, null),
+(67, 'Cousin Eddie', '1992-02-28', 25, 27),
+(27, 'Auntie Melinda', '1971-03-29', null, null);
+with recursive
+ancestors
+as
+(
+select *
+from folks
+where name = 'Vasya' and dob = '2000-01-01'
+ union
+select p.id, p.name, p.dob, p.father, p.mother
+from folks as p, ancestors AS a
+where p.id = a.father or p.id = a.mother
+)
+select * from ancestors;
+id name dob father mother
+100 Vasya 2000-01-01 20 30
+20 Dad 1970-02-02 10 9
+30 Mom 1975-03-03 8 7
+10 Grandpa Bill 1940-04-05 NULL NULL
+9 Grandma Ann 1941-10-15 NULL NULL
+8 Grandma Sally 1943-08-23 5 6
+6 Grandgrandma Martha 1923-05-17 NULL NULL
+with recursive
+ancestors
+as
+(
+select p.*
+from folks as p, ancestors AS a
+where p.id = a.father or p.id = a.mother
+union
+select *
+from folks
+where name = 'Vasya' and dob = '2000-01-01'
+)
+select * from ancestors;
+id name dob father mother
+100 Vasya 2000-01-01 20 30
+20 Dad 1970-02-02 10 9
+30 Mom 1975-03-03 8 7
+10 Grandpa Bill 1940-04-05 NULL NULL
+9 Grandma Ann 1941-10-15 NULL NULL
+8 Grandma Sally 1943-08-23 5 6
+6 Grandgrandma Martha 1923-05-17 NULL NULL
+with recursive
+ancestors
+as
+(
+select *
+from folks
+where name = 'Cousin Eddie'
+ union
+select p.*
+from folks as p, ancestors as a
+where p.id = a.father or p.id = a.mother
+)
+select * from ancestors;
+id name dob father mother
+67 Cousin Eddie 1992-02-28 25 27
+25 Uncle Jim 1968-11-18 8 7
+27 Auntie Melinda 1971-03-29 NULL NULL
+8 Grandma Sally 1943-08-23 5 6
+6 Grandgrandma Martha 1923-05-17 NULL NULL
+with recursive
+ancestors
+as
+(
+select *
+from folks
+where name = 'Vasya' or name='Sister Amy'
+ union
+select p.*
+from folks as p, ancestors as a
+where p.id = a.father or p.id = a.mother
+)
+select * from ancestors;
+id name dob father mother
+100 Vasya 2000-01-01 20 30
+98 Sister Amy 2001-06-20 20 30
+20 Dad 1970-02-02 10 9
+30 Mom 1975-03-03 8 7
+10 Grandpa Bill 1940-04-05 NULL NULL
+9 Grandma Ann 1941-10-15 NULL NULL
+8 Grandma Sally 1943-08-23 5 6
+6 Grandgrandma Martha 1923-05-17 NULL NULL
+with recursive
+prev_gen
+as
+(
+select folks.*
+from folks, prev_gen
+where folks.id=prev_gen.father or folks.id=prev_gen.mother
+union
+select *
+from folks
+where name='Vasya'
+),
+ancestors
+as
+(
+select *
+from folks
+where name='Vasya'
+ union
+select *
+from ancestors
+union
+select *
+from prev_gen
+)
+select ancestors.name, ancestors.dob from ancestors;
+name dob
+Vasya 2000-01-01
+Dad 1970-02-02
+Mom 1975-03-03
+Grandpa Bill 1940-04-05
+Grandma Ann 1941-10-15
+Grandma Sally 1943-08-23
+Grandgrandma Martha 1923-05-17
+with recursive
+descendants
+as
+(
+select *
+from folks
+where name = 'Grandpa Bill'
+ union
+select folks.*
+from folks, descendants as d
+where d.id=folks.father or d.id=folks.mother
+)
+select * from descendants;
+id name dob father mother
+10 Grandpa Bill 1940-04-05 NULL NULL
+20 Dad 1970-02-02 10 9
+100 Vasya 2000-01-01 20 30
+98 Sister Amy 2001-06-20 20 30
+with recursive
+descendants
+as
+(
+select *
+from folks
+where name = 'Grandma Sally'
+ union
+select folks.*
+from folks, descendants as d
+where d.id=folks.father or d.id=folks.mother
+)
+select * from descendants;
+id name dob father mother
+8 Grandma Sally 1943-08-23 5 6
+30 Mom 1975-03-03 8 7
+25 Uncle Jim 1968-11-18 8 7
+100 Vasya 2000-01-01 20 30
+98 Sister Amy 2001-06-20 20 30
+67 Cousin Eddie 1992-02-28 25 27
+with recursive
+ancestors
+as
+(
+select *
+from folks
+where name = 'Vasya' and dob = '2000-01-01'
+ union
+select p.*
+from folks as p, ancestors AS a
+where p.id = a.father OR p.id = a.mother
+)
+select *
+from ancestors t1, ancestors t2
+where exists (select * from ancestors a
+where a.father=t1.id AND a.mother=t2.id);
+id name dob father mother id name dob father mother
+20 Dad 1970-02-02 10 9 30 Mom 1975-03-03 8 7
+10 Grandpa Bill 1940-04-05 NULL NULL 9 Grandma Ann 1941-10-15 NULL NULL
+with
+ancestor_couples(husband, h_dob, wife, w_dob)
+as
+(
+with recursive
+ancestors
+as
+(
+select *
+from folks
+where name = 'Vasya'
+ union
+select p.*
+from folks as p, ancestors AS a
+where p.id = a.father OR p.id = a.mother
+)
+select t1.name, t1.dob, t2.name, t2.dob
+from ancestors t1, ancestors t2
+where exists (select * from ancestors a
+where a.father=t1.id AND a.mother=t2.id)
+)
+select * from ancestor_couples;
+husband h_dob wife w_dob
+Dad 1970-02-02 Mom 1975-03-03
+Grandpa Bill 1940-04-05 Grandma Ann 1941-10-15
+with recursive
+ancestors
+as
+(
+select *
+from folks
+where name = 'Vasya' and dob = '2000-01-01'
+ union
+select p.*
+from folks as p, ancestors AS a
+where p.id = a.father
+union
+select p.*
+from folks as p, ancestors AS a
+where p.id = a.mother
+)
+select * from ancestors;
+id name dob father mother
+100 Vasya 2000-01-01 20 30
+20 Dad 1970-02-02 10 9
+30 Mom 1975-03-03 8 7
+9 Grandma Ann 1941-10-15 NULL NULL
+10 Grandpa Bill 1940-04-05 NULL NULL
+8 Grandma Sally 1943-08-23 5 6
+6 Grandgrandma Martha 1923-05-17 NULL NULL
+with recursive
+ancestor_couples(h_id, h_name, h_dob, h_father, h_mother,
+w_id, w_name, w_dob, w_father, w_mother)
+as
+(
+select h.*, w.*
+from folks h, folks w, coupled_ancestors a
+where a.father = h.id AND a.mother = w.id
+union
+select h.*, w.*
+from folks v, folks h, folks w
+where v.name = 'Vasya' and
+(v.father = h.id AND v.mother= w.id)
+),
+coupled_ancestors (id, name, dob, father, mother)
+as
+(
+select h_id, h_name, h_dob, h_father, h_mother
+from ancestor_couples
+union
+select w_id, w_name, w_dob, w_father, w_mother
+from ancestor_couples
+)
+select h_name, h_dob, w_name, w_dob
+from ancestor_couples;
+h_name h_dob w_name w_dob
+Dad 1970-02-02 Mom 1975-03-03
+Grandpa Bill 1940-04-05 Grandma Ann 1941-10-15
+drop table folks;
diff --git a/mysql-test/r/ctype_eucjpms.result b/mysql-test/r/ctype_eucjpms.result
index f9cb4f1eecc..8d4d8f6d5f9 100644
--- a/mysql-test/r/ctype_eucjpms.result
+++ b/mysql-test/r/ctype_eucjpms.result
@@ -33913,3 +33913,24 @@ DROP TABLE t1;
#
# End of 10.1 tests
#
+#
+# End of 10.2 tests
+#
+#
+# MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis
+#
+CREATE TABLE t1 (a TEXT CHARACTER SET eucjpms);
+LOAD DATA INFILE '../../std_data/loaddata/mdev9823.ujis.txt' INTO TABLE t1 CHARACTER SET eucjpms IGNORE 4 LINES;
+SELECT HEX(a) FROM t1;
+HEX(a)
+3F
+78787831
+3F3F
+78787832
+8FA1A1
+78787833
+3F3F
+DROP TABLE t1;
+#
+# End of 10.2 tests
+#
diff --git a/mysql-test/r/ctype_gbk_export_import.result b/mysql-test/r/ctype_gbk_export_import.result
new file mode 100644
index 00000000000..d7d5aa98f02
--- /dev/null
+++ b/mysql-test/r/ctype_gbk_export_import.result
@@ -0,0 +1,3903 @@
+DROP DATABASE IF EXISTS gbk;
+CREATE DATABASE gbk DEFAULT CHARACTER SET gbk;
+USE gbk;
+CREATE TABLE t1 (
+id INT NOT NULL,
+a1 TEXT NOT NULL,
+a2 TEXT CHARACTER SET utf8 NOT NULL,
+b1 BLOB NOT NULL,
+eol TEXT NOT NULL);
+CREATE PROCEDURE populate()
+BEGIN
+TRUNCATE TABLE t1;
+INSERT INTO t1 SET id=1, a1=0xEE5C, a2=_gbk 0xEE5C, b1=0xEE5C, eol='$';
+INSERT INTO t1 SET id=2, a1=0xEE5C5C, a2=_gbk 0xEE5C5C, b1=0xEE5C5C, eol='$';
+END|
+CREATE FUNCTION cmt(id INT, field_name TEXT, field_value BLOB)
+RETURNS TEXT CHARACTER SET utf8
+BEGIN
+DECLARE comment TEXT CHARACTER SET utf8;
+DECLARE expected_value_01 BLOB;
+DECLARE expected_value_02 BLOB;
+SET comment= CASE field_name WHEN 'a1' THEN 'TEXT-GBK' WHEN 'a2' THEN 'TEXT-UTF8' WHEN 'b1' THEN 'BLOB' ELSE '' END;
+SET expected_value_01= CASE field_name WHEN 'a1' THEN 0xEE5C WHEN 'a2' THEN 0xE9A0AB WHEN 'b1' THEN 0xEE5C ELSE '' END;
+SET expected_value_02= CASE field_name WHEN 'a1' THEN 0xEE5C5C WHEN 'a2' THEN 0xE9A0AB5C WHEN 'b1' THEN 0xEE5C5C ELSE '' END;
+RETURN IF(CASE id
+WHEN 1 THEN expected_value_01
+WHEN 2 THEN expected_value_02
+ELSE ''
+ END <> field_value,
+CONCAT('BAD-', comment), '');
+END|
+CREATE FUNCTION display_file(file BLOB) RETURNS TEXT CHARACTER SET utf8
+BEGIN
+SET file=REPLACE(file, 0x09, '----');
+SET file=REPLACE(file, 0x0A, '++++');
+RETURN REPLACE(REPLACE(HEX(file), '2D2D2D2D','-'), '2B2B2B2B','|');
+END|
+CREATE VIEW v1 AS
+SELECT
+id,
+CONCAT(RPAD(HEX(a1),50,' '), cmt(id, 'a1', a1)) AS a1,
+CONCAT(RPAD(HEX(a2),50,' '), cmt(id, 'a2', a2)) AS a2,
+CONCAT(RPAD(HEX(b1),50,' '), cmt(id, 'b1', b1)) AS b1,
+CONCAT(RPAD(HEX(eol),50,' '), IF(eol<>'$','BAD-EOL','')) AS eol,
+'---' AS `---`
+FROM t1;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` int(11) NOT NULL,
+ `a1` text NOT NULL,
+ `a2` text CHARACTER SET utf8 NOT NULL,
+ `b1` blob NOT NULL,
+ `eol` text NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=gbk
+#
+# Dump using SELECT INTO OUTFILE
+#
+Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=auto }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto
+INFILE: --default-character-set=auto
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=auto }
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=auto CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto
+INFILE: --default-character-set=auto CHARACTER SET gbk
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=auto CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=auto CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto
+INFILE: --default-character-set=auto CHARACTER SET utf8
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=auto CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=auto CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto
+INFILE: --default-character-set=auto CHARACTER SET binary
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=auto CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=gbk }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto
+INFILE: --default-character-set=gbk
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=gbk }
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=gbk CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto
+INFILE: --default-character-set=gbk CHARACTER SET gbk
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=gbk CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=gbk CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto
+INFILE: --default-character-set=gbk CHARACTER SET utf8
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=gbk CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=gbk CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto
+INFILE: --default-character-set=gbk CHARACTER SET binary
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=gbk CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=utf8 }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto
+INFILE: --default-character-set=utf8
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=utf8 }
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=utf8 CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto
+INFILE: --default-character-set=utf8 CHARACTER SET gbk
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=utf8 CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=utf8 CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto
+INFILE: --default-character-set=utf8 CHARACTER SET utf8
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=utf8 CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=utf8 CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto
+INFILE: --default-character-set=utf8 CHARACTER SET binary
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=utf8 CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=auto }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET gbk
+INFILE: --default-character-set=auto
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=auto }
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET gbk
+INFILE: --default-character-set=auto CHARACTER SET gbk
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET gbk
+INFILE: --default-character-set=auto CHARACTER SET utf8
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET gbk
+INFILE: --default-character-set=auto CHARACTER SET binary
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F093F093F0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=gbk }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET gbk
+INFILE: --default-character-set=gbk
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=gbk }
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET gbk
+INFILE: --default-character-set=gbk CHARACTER SET gbk
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET gbk
+INFILE: --default-character-set=gbk CHARACTER SET utf8
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET gbk
+INFILE: --default-character-set=gbk CHARACTER SET binary
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F093F093F0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=utf8 }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET gbk
+INFILE: --default-character-set=utf8
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=utf8 }
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET gbk
+INFILE: --default-character-set=utf8 CHARACTER SET gbk
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET gbk
+INFILE: --default-character-set=utf8 CHARACTER SET utf8
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET gbk
+INFILE: --default-character-set=utf8 CHARACTER SET binary
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F093F093F0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=auto }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET utf8
+INFILE: --default-character-set=auto
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=auto }
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET utf8
+INFILE: --default-character-set=auto CHARACTER SET gbk
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET utf8
+INFILE: --default-character-set=auto CHARACTER SET utf8
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET utf8
+INFILE: --default-character-set=auto CHARACTER SET binary
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=gbk }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET utf8
+INFILE: --default-character-set=gbk
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=gbk }
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET utf8
+INFILE: --default-character-set=gbk CHARACTER SET gbk
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET utf8
+INFILE: --default-character-set=gbk CHARACTER SET utf8
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET utf8
+INFILE: --default-character-set=gbk CHARACTER SET binary
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=utf8 }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET utf8
+INFILE: --default-character-set=utf8
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=utf8 }
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET utf8
+INFILE: --default-character-set=utf8 CHARACTER SET gbk
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET utf8
+INFILE: --default-character-set=utf8 CHARACTER SET utf8
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET utf8
+INFILE: --default-character-set=utf8 CHARACTER SET binary
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=auto }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET binary
+INFILE: --default-character-set=auto
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=auto }
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=auto CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET binary
+INFILE: --default-character-set=auto CHARACTER SET gbk
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=auto CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=auto CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET binary
+INFILE: --default-character-set=auto CHARACTER SET utf8
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=auto CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=auto CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET binary
+INFILE: --default-character-set=auto CHARACTER SET binary
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=auto CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=gbk }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET binary
+INFILE: --default-character-set=gbk
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=gbk }
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET binary
+INFILE: --default-character-set=gbk CHARACTER SET gbk
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET binary
+INFILE: --default-character-set=gbk CHARACTER SET utf8
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET binary
+INFILE: --default-character-set=gbk CHARACTER SET binary
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=utf8 }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET binary
+INFILE: --default-character-set=utf8
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=utf8 }
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET binary
+INFILE: --default-character-set=utf8 CHARACTER SET gbk
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET binary
+INFILE: --default-character-set=utf8 CHARACTER SET utf8
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=auto CHARACTER SET binary
+INFILE: --default-character-set=utf8 CHARACTER SET binary
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=auto }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk
+INFILE: --default-character-set=auto
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=auto }
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=auto CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk
+INFILE: --default-character-set=auto CHARACTER SET gbk
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=auto CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=auto CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk
+INFILE: --default-character-set=auto CHARACTER SET utf8
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=auto CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=auto CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk
+INFILE: --default-character-set=auto CHARACTER SET binary
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=auto CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=gbk }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk
+INFILE: --default-character-set=gbk
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=gbk }
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=gbk CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk
+INFILE: --default-character-set=gbk CHARACTER SET gbk
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=gbk CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=gbk CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk
+INFILE: --default-character-set=gbk CHARACTER SET utf8
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=gbk CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=gbk CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk
+INFILE: --default-character-set=gbk CHARACTER SET binary
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=gbk CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=utf8 }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk
+INFILE: --default-character-set=utf8
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=utf8 }
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=utf8 CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk
+INFILE: --default-character-set=utf8 CHARACTER SET gbk
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=utf8 CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=utf8 CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk
+INFILE: --default-character-set=utf8 CHARACTER SET utf8
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=utf8 CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=utf8 CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk
+INFILE: --default-character-set=utf8 CHARACTER SET binary
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=utf8 CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=auto }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET gbk
+INFILE: --default-character-set=auto
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=auto }
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET gbk
+INFILE: --default-character-set=auto CHARACTER SET gbk
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET gbk
+INFILE: --default-character-set=auto CHARACTER SET utf8
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET gbk
+INFILE: --default-character-set=auto CHARACTER SET binary
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F093F093F0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=gbk }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET gbk
+INFILE: --default-character-set=gbk
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=gbk }
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET gbk
+INFILE: --default-character-set=gbk CHARACTER SET gbk
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET gbk
+INFILE: --default-character-set=gbk CHARACTER SET utf8
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET gbk
+INFILE: --default-character-set=gbk CHARACTER SET binary
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F093F093F0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=utf8 }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET gbk
+INFILE: --default-character-set=utf8
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=utf8 }
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET gbk
+INFILE: --default-character-set=utf8 CHARACTER SET gbk
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET gbk
+INFILE: --default-character-set=utf8 CHARACTER SET utf8
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET gbk
+INFILE: --default-character-set=utf8 CHARACTER SET binary
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F093F093F0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=auto }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET utf8
+INFILE: --default-character-set=auto
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=auto }
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET utf8
+INFILE: --default-character-set=auto CHARACTER SET gbk
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET utf8
+INFILE: --default-character-set=auto CHARACTER SET utf8
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET utf8
+INFILE: --default-character-set=auto CHARACTER SET binary
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=gbk }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET utf8
+INFILE: --default-character-set=gbk
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=gbk }
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET utf8
+INFILE: --default-character-set=gbk CHARACTER SET gbk
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET utf8
+INFILE: --default-character-set=gbk CHARACTER SET utf8
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET utf8
+INFILE: --default-character-set=gbk CHARACTER SET binary
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=utf8 }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET utf8
+INFILE: --default-character-set=utf8
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=utf8 }
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET utf8
+INFILE: --default-character-set=utf8 CHARACTER SET gbk
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET utf8
+INFILE: --default-character-set=utf8 CHARACTER SET utf8
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET utf8
+INFILE: --default-character-set=utf8 CHARACTER SET binary
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=auto }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET binary
+INFILE: --default-character-set=auto
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=auto }
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=auto CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET binary
+INFILE: --default-character-set=auto CHARACTER SET gbk
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=auto CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=auto CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET binary
+INFILE: --default-character-set=auto CHARACTER SET utf8
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=auto CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=auto CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET binary
+INFILE: --default-character-set=auto CHARACTER SET binary
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=auto CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=gbk }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET binary
+INFILE: --default-character-set=gbk
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=gbk }
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET binary
+INFILE: --default-character-set=gbk CHARACTER SET gbk
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET binary
+INFILE: --default-character-set=gbk CHARACTER SET utf8
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET binary
+INFILE: --default-character-set=gbk CHARACTER SET binary
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=utf8 }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET binary
+INFILE: --default-character-set=utf8
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=utf8 }
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET binary
+INFILE: --default-character-set=utf8 CHARACTER SET gbk
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET binary
+INFILE: --default-character-set=utf8 CHARACTER SET utf8
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=gbk CHARACTER SET binary
+INFILE: --default-character-set=utf8 CHARACTER SET binary
+file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=auto }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8
+INFILE: --default-character-set=auto
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=auto }
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=auto CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8
+INFILE: --default-character-set=auto CHARACTER SET gbk
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=auto CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=auto CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8
+INFILE: --default-character-set=auto CHARACTER SET utf8
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=auto CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=auto CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8
+INFILE: --default-character-set=auto CHARACTER SET binary
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=auto CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=gbk }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8
+INFILE: --default-character-set=gbk
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=gbk }
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=gbk CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8
+INFILE: --default-character-set=gbk CHARACTER SET gbk
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=gbk CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=gbk CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8
+INFILE: --default-character-set=gbk CHARACTER SET utf8
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=gbk CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=gbk CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8
+INFILE: --default-character-set=gbk CHARACTER SET binary
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=gbk CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=utf8 }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8
+INFILE: --default-character-set=utf8
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=utf8 }
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=utf8 CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8
+INFILE: --default-character-set=utf8 CHARACTER SET gbk
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=utf8 CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=utf8 CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8
+INFILE: --default-character-set=utf8 CHARACTER SET utf8
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=utf8 CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=utf8 CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8
+INFILE: --default-character-set=utf8 CHARACTER SET binary
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=utf8 CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=auto }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET gbk
+INFILE: --default-character-set=auto
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=auto }
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET gbk
+INFILE: --default-character-set=auto CHARACTER SET gbk
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET gbk
+INFILE: --default-character-set=auto CHARACTER SET utf8
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET gbk
+INFILE: --default-character-set=auto CHARACTER SET binary
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F093F093F0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=gbk }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET gbk
+INFILE: --default-character-set=gbk
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=gbk }
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET gbk
+INFILE: --default-character-set=gbk CHARACTER SET gbk
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET gbk
+INFILE: --default-character-set=gbk CHARACTER SET utf8
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET gbk
+INFILE: --default-character-set=gbk CHARACTER SET binary
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F093F093F0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=utf8 }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET gbk
+INFILE: --default-character-set=utf8
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=utf8 }
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET gbk
+INFILE: --default-character-set=utf8 CHARACTER SET gbk
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET gbk
+INFILE: --default-character-set=utf8 CHARACTER SET utf8
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET gbk
+INFILE: --default-character-set=utf8 CHARACTER SET binary
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F093F093F0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=auto }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET utf8
+INFILE: --default-character-set=auto
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=auto }
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET utf8
+INFILE: --default-character-set=auto CHARACTER SET gbk
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET utf8
+INFILE: --default-character-set=auto CHARACTER SET utf8
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET utf8
+INFILE: --default-character-set=auto CHARACTER SET binary
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=gbk }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET utf8
+INFILE: --default-character-set=gbk
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=gbk }
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET utf8
+INFILE: --default-character-set=gbk CHARACTER SET gbk
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET utf8
+INFILE: --default-character-set=gbk CHARACTER SET utf8
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET utf8
+INFILE: --default-character-set=gbk CHARACTER SET binary
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=utf8 }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET utf8
+INFILE: --default-character-set=utf8
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=utf8 }
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET utf8
+INFILE: --default-character-set=utf8 CHARACTER SET gbk
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET utf8
+INFILE: --default-character-set=utf8 CHARACTER SET utf8
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET utf8
+INFILE: --default-character-set=utf8 CHARACTER SET binary
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=auto }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET binary
+INFILE: --default-character-set=auto
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=auto }
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=auto CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET binary
+INFILE: --default-character-set=auto CHARACTER SET gbk
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=auto CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=auto CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET binary
+INFILE: --default-character-set=auto CHARACTER SET utf8
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=auto CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=auto CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET binary
+INFILE: --default-character-set=auto CHARACTER SET binary
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=auto CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=gbk }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET binary
+INFILE: --default-character-set=gbk
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=gbk }
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET binary
+INFILE: --default-character-set=gbk CHARACTER SET gbk
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET binary
+INFILE: --default-character-set=gbk CHARACTER SET utf8
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET binary
+INFILE: --default-character-set=gbk CHARACTER SET binary
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=utf8 }
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET binary
+INFILE: --default-character-set=utf8
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=utf8 }
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET gbk}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET binary
+INFILE: --default-character-set=utf8 CHARACTER SET gbk
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET utf8}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET binary
+INFILE: --default-character-set=utf8 CHARACTER SET utf8
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET binary}
+Locale: zh_CN.gbk
+OUTFILE: --default-character-set=utf8 CHARACTER SET binary
+INFILE: --default-character-set=utf8 CHARACTER SET binary
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET binary}
+
+
+#
+# Dump using mysqldump -Tdir
+#
+Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=auto }
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=binary
+INFILE: --default-character-set=auto
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=auto }
+
+
+Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=auto CHARACTER SET gbk}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=binary
+INFILE: --default-character-set=auto CHARACTER SET gbk
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=auto CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=auto CHARACTER SET utf8}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=binary
+INFILE: --default-character-set=auto CHARACTER SET utf8
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=auto CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=auto CHARACTER SET binary}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=binary
+INFILE: --default-character-set=auto CHARACTER SET binary
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=auto CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=binary }
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=binary
+INFILE: --default-character-set=binary
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=binary }
+
+
+Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=binary CHARACTER SET gbk}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=binary
+INFILE: --default-character-set=binary CHARACTER SET gbk
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=binary CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=binary CHARACTER SET utf8}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=binary
+INFILE: --default-character-set=binary CHARACTER SET utf8
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=binary CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=binary CHARACTER SET binary}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=binary
+INFILE: --default-character-set=binary CHARACTER SET binary
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=binary CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=gbk }
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=binary
+INFILE: --default-character-set=gbk
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=gbk }
+
+
+Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=gbk CHARACTER SET gbk}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=binary
+INFILE: --default-character-set=gbk CHARACTER SET gbk
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=gbk CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=gbk CHARACTER SET utf8}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=binary
+INFILE: --default-character-set=gbk CHARACTER SET utf8
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=gbk CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=gbk CHARACTER SET binary}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=binary
+INFILE: --default-character-set=gbk CHARACTER SET binary
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=gbk CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=utf8 }
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=binary
+INFILE: --default-character-set=utf8
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=utf8 }
+
+
+Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=utf8 CHARACTER SET gbk}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=binary
+INFILE: --default-character-set=utf8 CHARACTER SET gbk
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9978B3F BAD-TEXT-UTF8
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C5C
+a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=utf8 CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=utf8 CHARACTER SET utf8}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=binary
+INFILE: --default-character-set=utf8 CHARACTER SET utf8
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 E9A0AB
+b1 EE5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 EE5C5C0924 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=utf8 CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=utf8 CHARACTER SET binary}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=binary
+INFILE: --default-character-set=utf8 CHARACTER SET binary
+file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24|
+id 1
+a1 3F09E9A03F BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09E9A0AB5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 24 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=utf8 CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=auto }
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=gbk
+INFILE: --default-character-set=auto
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=auto }
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=auto CHARACTER SET gbk}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=gbk
+INFILE: --default-character-set=auto CHARACTER SET gbk
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=auto CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=auto CHARACTER SET utf8}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=gbk
+INFILE: --default-character-set=auto CHARACTER SET utf8
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=auto CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=auto CHARACTER SET binary}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=gbk
+INFILE: --default-character-set=auto CHARACTER SET binary
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F093F093F0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=auto CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=binary }
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=gbk
+INFILE: --default-character-set=binary
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=binary }
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=binary CHARACTER SET gbk}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=gbk
+INFILE: --default-character-set=binary CHARACTER SET gbk
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=binary CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=binary CHARACTER SET utf8}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=gbk
+INFILE: --default-character-set=binary CHARACTER SET utf8
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=binary CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=binary CHARACTER SET binary}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=gbk
+INFILE: --default-character-set=binary CHARACTER SET binary
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F093F093F0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=binary CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=gbk }
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=gbk
+INFILE: --default-character-set=gbk
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=gbk }
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=gbk CHARACTER SET gbk}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=gbk
+INFILE: --default-character-set=gbk CHARACTER SET gbk
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=gbk CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=gbk CHARACTER SET utf8}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=gbk
+INFILE: --default-character-set=gbk CHARACTER SET utf8
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=gbk CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=gbk CHARACTER SET binary}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=gbk
+INFILE: --default-character-set=gbk CHARACTER SET binary
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F093F093F0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=gbk CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=utf8 }
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=gbk
+INFILE: --default-character-set=utf8
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=utf8 }
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=utf8 CHARACTER SET gbk}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=gbk
+INFILE: --default-character-set=utf8 CHARACTER SET gbk
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=utf8 CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=utf8 CHARACTER SET utf8}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=gbk
+INFILE: --default-character-set=utf8 CHARACTER SET utf8
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F5C BAD-TEXT-GBK
+a2 3F5C BAD-TEXT-UTF8
+b1 EE5C
+eol 24
+--- ---
+id 2
+a1 3F5C5C BAD-TEXT-GBK
+a2 3F5C5C BAD-TEXT-UTF8
+b1 EE5C5C
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=utf8 CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=utf8 CHARACTER SET binary}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=gbk
+INFILE: --default-character-set=utf8 CHARACTER SET binary
+file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24|
+id 1
+a1 3F093F093F0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+id 2
+a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK
+a2 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=utf8 CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=auto }
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=utf8
+INFILE: --default-character-set=auto
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=auto }
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=auto CHARACTER SET gbk}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=utf8
+INFILE: --default-character-set=auto CHARACTER SET gbk
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=auto CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=auto CHARACTER SET utf8}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=utf8
+INFILE: --default-character-set=auto CHARACTER SET utf8
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=auto CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=auto CHARACTER SET binary}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=utf8
+INFILE: --default-character-set=auto CHARACTER SET binary
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=auto CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=binary }
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=utf8
+INFILE: --default-character-set=binary
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=binary }
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=binary CHARACTER SET gbk}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=utf8
+INFILE: --default-character-set=binary CHARACTER SET gbk
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=binary CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=binary CHARACTER SET utf8}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=utf8
+INFILE: --default-character-set=binary CHARACTER SET utf8
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=binary CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=binary CHARACTER SET binary}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=utf8
+INFILE: --default-character-set=binary CHARACTER SET binary
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=binary CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=gbk }
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=utf8
+INFILE: --default-character-set=gbk
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=gbk }
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=gbk CHARACTER SET gbk}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=utf8
+INFILE: --default-character-set=gbk CHARACTER SET gbk
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=gbk CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=gbk CHARACTER SET utf8}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=utf8
+INFILE: --default-character-set=gbk CHARACTER SET utf8
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=gbk CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=gbk CHARACTER SET binary}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=utf8
+INFILE: --default-character-set=gbk CHARACTER SET binary
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=gbk CHARACTER SET binary}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=utf8 }
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=utf8
+INFILE: --default-character-set=utf8
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=utf8 }
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=utf8 CHARACTER SET gbk}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=utf8
+INFILE: --default-character-set=utf8 CHARACTER SET gbk
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9978B3F BAD-TEXT-UTF8
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK
+a2 24 BAD-TEXT-UTF8
+b1 BAD-BLOB
+eol BAD-EOL
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=utf8 CHARACTER SET gbk}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=utf8 CHARACTER SET utf8}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=utf8
+INFILE: --default-character-set=utf8 CHARACTER SET utf8
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 EE5C
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 EE5C5C
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=utf8 CHARACTER SET utf8}
+
+
+Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=utf8 CHARACTER SET binary}
+Locale: zh_CN.gbk
+mysqldump: --default-character-set=utf8
+INFILE: --default-character-set=utf8 CHARACTER SET binary
+file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24|
+id 1
+a1 E9A03F BAD-TEXT-GBK
+a2 E9A0AB
+b1 3F5C BAD-BLOB
+eol 24
+--- ---
+id 2
+a1 E9A0AB5C BAD-TEXT-GBK
+a2 E9A0AB5C
+b1 3F5C5C BAD-BLOB
+eol 24
+--- ---
+End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=utf8 CHARACTER SET binary}
+
+
+DROP DATABASE gbk;
+USE test;
diff --git a/mysql-test/r/ctype_ujis.result b/mysql-test/r/ctype_ujis.result
index 61541ec7678..5eb9a3e1db5 100644
--- a/mysql-test/r/ctype_ujis.result
+++ b/mysql-test/r/ctype_ujis.result
@@ -26218,3 +26218,24 @@ DROP TABLE t1;
#
# End of 10.1 tests
#
+#
+# End of 10.2 tests
+#
+#
+# MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis
+#
+CREATE TABLE t1 (a TEXT CHARACTER SET ujis);
+LOAD DATA INFILE '../../std_data/loaddata/mdev9823.ujis.txt' INTO TABLE t1 CHARACTER SET ujis IGNORE 4 LINES;
+SELECT HEX(a) FROM t1;
+HEX(a)
+3F
+78787831
+3F3F
+78787832
+8FA1A1
+78787833
+3F3F
+DROP TABLE t1;
+#
+# End of 10.2 tests
+#
diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result
index f52e08a676f..48a6eb02526 100644
--- a/mysql-test/r/ctype_utf8.result
+++ b/mysql-test/r/ctype_utf8.result
@@ -10426,5 +10426,38 @@ b
c
DROP TABLE t1;
#
+# MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis
+#
+CREATE TABLE t1 (a TEXT CHARACTER SET utf8);
+LOAD DATA INFILE '../../std_data/loaddata/mdev9823.utf8mb4.txt' INTO TABLE t1 CHARACTER SET utf8 IGNORE 4 LINES;
+Warnings:
+Warning 1366 Incorrect string value: '\xD0' for column 'a' at row 1
+Warning 1366 Incorrect string value: '\xE1\x80' for column 'a' at row 3
+Warning 1366 Incorrect string value: '\xF0\x9F\x98' for column 'a' at row 5
+Warning 1366 Incorrect string value: '\xF0\x9F\x98\x8E' for column 'a' at row 7
+Warning 1366 Incorrect string value: '\xF0\x9F\x98' for column 'a' at row 8
+SELECT HEX(a) FROM t1;
+HEX(a)
+3F
+78787831
+3F3F
+78787832
+3F3F3F
+78787833
+3F3F3F3F
+3F3F3F
+DROP TABLE t1;
+#
+# MDEV-9874 LOAD XML INFILE does not handle well broken multi-byte characters
+#
+CREATE TABLE t1 (a TEXT CHARACTER SET utf8);
+LOAD XML INFILE '../../std_data/loaddata/mdev9874.xml' INTO TABLE t1 CHARACTER SET utf8 ROWS IDENTIFIED BY '<row>';
+Warnings:
+Warning 1366 Incorrect string value: '\xD0' for column 'a' at row 1
+SELECT HEX(a) FROM t1;
+HEX(a)
+613F
+DROP TABLE t1;
+#
# End of 10.2 tests
#
diff --git a/mysql-test/r/ctype_utf8mb4.result b/mysql-test/r/ctype_utf8mb4.result
index 10d77ae1502..558aba9c466 100644
--- a/mysql-test/r/ctype_utf8mb4.result
+++ b/mysql-test/r/ctype_utf8mb4.result
@@ -3398,3 +3398,30 @@ DROP FUNCTION f1;
#
# End of 10.1 tests
#
+#
+# End of 10.2 tests
+#
+#
+# MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis
+#
+CREATE TABLE t1 (a TEXT CHARACTER SET utf8mb4);
+LOAD DATA INFILE '../../std_data/loaddata/mdev9823.utf8mb4.txt' INTO TABLE t1 CHARACTER SET utf8mb4 IGNORE 4 LINES;
+Warnings:
+Warning 1366 Incorrect string value: '\xD0' for column 'a' at row 1
+Warning 1366 Incorrect string value: '\xE1\x80' for column 'a' at row 3
+Warning 1366 Incorrect string value: '\xF0\x9F\x98' for column 'a' at row 5
+Warning 1366 Incorrect string value: '\xF0\x9F\x98' for column 'a' at row 8
+SELECT HEX(a) FROM t1;
+HEX(a)
+3F
+78787831
+3F3F
+78787832
+3F3F3F
+78787833
+F09F988E
+3F3F3F
+DROP TABLE t1;
+#
+# End of 10.2 tests
+#
diff --git a/mysql-test/r/delayed.result b/mysql-test/r/delayed.result
index 80b99115055..d54fa40f2da 100644
--- a/mysql-test/r/delayed.result
+++ b/mysql-test/r/delayed.result
@@ -476,3 +476,37 @@ connection con1;
disconnect con1;
connection default;
drop tables tm, t1, t2;
+#
+# MDEV-9621 INSERT DELAYED fails on insert for tables with many columns
+#
+CREATE TABLE t1 (
+a int,b int,c int,d int,e int,f int,g int,h int,i int,j int,k int,l int,m int,n int,o int,p int,q int,r int,s int,t int,u int,v int,x int,y int,z int
+) ENGINE=MyISAM;
+INSERT DELAYED INTO t1 (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,x,y,z)
+values (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
+INSERT DELAYED INTO t1 (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,x,y,z)
+values (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
+drop table t1;
+#
+# INSERT DELAYED hangs if table was crashed
+#
+create table t1 (a int, b int) engine=myisam;
+insert into t1 values (1,1);
+SET debug_dbug="d,crash_shutdown";
+shutdown;
+ERROR HY000: Lost connection to MySQL server during query
+call mtr.add_suppression(" marked as crashed and should be repaired");
+call mtr.add_suppression("Checking table");
+insert delayed into t1 values (2,2);
+Warnings:
+Error 145 Table './test/t1' is marked as crashed and should be repaired
+Error 1194 Table 't1' is marked as crashed and should be repaired
+Error 1034 1 client is using or hasn't closed the table properly
+insert delayed into t1 values (3,3);
+flush tables t1;
+select * from t1;
+a b
+1 1
+2 2
+3 3
+drop table t1;
diff --git a/mysql-test/r/derived_opt.result b/mysql-test/r/derived_opt.result
index 04a76c2cbc8..6e4ea1b5d36 100644
--- a/mysql-test/r/derived_opt.result
+++ b/mysql-test/r/derived_opt.result
@@ -231,8 +231,8 @@ CREATE VIEW v1 AS SELECT a, MIN(b) AS b FROM t2 GROUP BY a;
EXPLAIN
SELECT * FROM v1, t1 WHERE v1.b=t1.a ORDER BY v1.a;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 system NULL NULL NULL NULL 1 Using filesort
-1 PRIMARY <derived2> ref key0 key0 5 const 1 Using where
+1 PRIMARY t1 system NULL NULL NULL NULL 1
+1 PRIMARY <derived2> ref key0 key0 5 const 1 Using where; Using filesort
2 DERIVED t2 ALL NULL NULL NULL NULL 10 Using temporary; Using filesort
SELECT * FROM v1, t1 WHERE v1.b=t1.a ORDER BY v1.a;
a b a
diff --git a/mysql-test/r/distinct.result b/mysql-test/r/distinct.result
index d6e5a69e217..e2a7c462efd 100644
--- a/mysql-test/r/distinct.result
+++ b/mysql-test/r/distinct.result
@@ -175,7 +175,7 @@ explain SELECT distinct t3.a FROM t3,t2,t1 WHERE t3.a=t1.b AND t1.a=t2.a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 4 Using where; Using temporary
1 SIMPLE t3 ref a a 5 test.t1.b 2 Using index
-1 SIMPLE t2 index a a 4 NULL 5 Using where; Using index; Distinct; Using join buffer (flat, BNL join)
+1 SIMPLE t2 index a a 4 NULL 5 Using where; Using index; Using join buffer (flat, BNL join)
SELECT distinct t3.a FROM t3,t2,t1 WHERE t3.a=t1.b AND t1.a=t2.a;
a
1
@@ -302,11 +302,11 @@ WHERE
AND ((t1.id=j_lj_t3.id AND t3_lj.id IS NULL) OR (t1.id=t3.id AND t3.idx=2));
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index id id 4 NULL 2 Using index; Using temporary
-1 SIMPLE t2 index id id 8 NULL 1 Using index; Distinct; Using join buffer (flat, BNL join)
-1 SIMPLE t3 index id id 8 NULL 1 Using index; Distinct; Using join buffer (flat, BNL join)
-1 SIMPLE j_lj_t2 index id id 4 NULL 2 Using where; Using index; Distinct; Using join buffer (flat, BNL join)
-1 SIMPLE t2_lj ref id id 4 test.j_lj_t2.id 1 Using where; Using index; Distinct
-1 SIMPLE j_lj_t3 index id id 4 NULL 2 Using where; Using index; Distinct; Using join buffer (flat, BNL join)
+1 SIMPLE t2 index id id 8 NULL 1 Using index; Using join buffer (flat, BNL join)
+1 SIMPLE t3 index id id 8 NULL 1 Using index; Using join buffer (flat, BNL join)
+1 SIMPLE j_lj_t2 index id id 4 NULL 2 Using where; Using index; Using join buffer (flat, BNL join)
+1 SIMPLE t2_lj ref id id 4 test.j_lj_t2.id 1 Using where; Using index
+1 SIMPLE j_lj_t3 index id id 4 NULL 2 Using where; Using index; Using join buffer (flat, BNL join)
1 SIMPLE t3_lj ref id id 4 test.j_lj_t3.id 1 Using where; Using index; Distinct
SELECT DISTINCT
t1.id
@@ -518,7 +518,7 @@ id select_type table type possible_keys key key_len ref rows Extra
EXPLAIN SELECT DISTINCT t1_1.a, t1_1.b FROM t1 t1_1, t1 t1_2;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1_1 ALL NULL NULL NULL NULL 3 Using temporary
-1 SIMPLE t1_2 index NULL PRIMARY 4 NULL 3 Using index; Distinct; Using join buffer (flat, BNL join)
+1 SIMPLE t1_2 index NULL PRIMARY 4 NULL 3 Using index; Using join buffer (flat, BNL join)
EXPLAIN SELECT DISTINCT t1_1.a, t1_1.b FROM t1 t1_1, t1 t1_2
WHERE t1_1.a = t1_2.a;
id select_type table type possible_keys key key_len ref rows Extra
@@ -916,8 +916,8 @@ SELECT STRAIGHT_JOIN DISTINCT t1.id FROM
t1, v1, t2 WHERE v1.id = t2.i AND t1.i1 = v1.i1 AND t2.i != 3;
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 96 100.00 Using where; Using temporary
-1 PRIMARY <derived2> ref key0 key0 5 test.t1.i1 9 100.00 Using where; Distinct
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where; Distinct; Using join buffer (flat, BNL join)
+1 PRIMARY <derived2> ref key0 key0 5 test.t1.i1 9 100.00 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (flat, BNL join)
2 DERIVED t1 ALL NULL NULL NULL NULL 96 100.00
Warnings:
Note 1003 select straight_join distinct `test`.`t1`.`id` AS `id` from `test`.`t1` join `test`.`v1` join `test`.`t2` where ((`test`.`t2`.`i` = `v1`.`id`) and (`v1`.`i1` = `test`.`t1`.`i1`) and (`v1`.`id` <> 3))
diff --git a/mysql-test/r/explain_json.result b/mysql-test/r/explain_json.result
index 46d586ac29d..af5d1b800aa 100644
--- a/mysql-test/r/explain_json.result
+++ b/mysql-test/r/explain_json.result
@@ -486,8 +486,8 @@ EXPLAIN
"query_block": {
"select_id": 2,
"filesort": {
+ "sort_key": "t1.a",
"temporary_table": {
- "function": "buffer",
"table": {
"table_name": "t1",
"access_type": "ALL",
@@ -530,8 +530,8 @@ EXPLAIN
"query_block": {
"select_id": 2,
"filesort": {
+ "sort_key": "t1.a",
"temporary_table": {
- "function": "buffer",
"table": {
"table_name": "t1",
"access_type": "ALL",
@@ -576,7 +576,6 @@ EXPLAIN
"query_block": {
"select_id": 2,
"temporary_table": {
- "function": "buffer",
"table": {
"table_name": "t1",
"access_type": "ALL",
@@ -1132,8 +1131,8 @@ EXPLAIN
"select_id": 1,
"having_condition": "(TOP > t2.a)",
"filesort": {
+ "sort_key": "t2.a",
"temporary_table": {
- "function": "buffer",
"table": {
"table_name": "t2",
"access_type": "ALL",
@@ -1151,8 +1150,8 @@ EXPLAIN
"query_block": {
"select_id": 1,
"filesort": {
+ "sort_key": "t2.a",
"temporary_table": {
- "function": "buffer",
"table": {
"table_name": "t2",
"access_type": "ALL",
@@ -1181,8 +1180,8 @@ EXPLAIN
"query_block": {
"select_id": 1,
"filesort": {
+ "sort_key": "t2.a",
"temporary_table": {
- "function": "buffer",
"table": {
"table_name": "t2",
"access_type": "ALL",
@@ -1380,7 +1379,6 @@ EXPLAIN
"query_block": {
"select_id": 1,
"temporary_table": {
- "function": "buffer",
"table": {
"table_name": "t1",
"access_type": "ALL",
diff --git a/mysql-test/r/func_analyse.result b/mysql-test/r/func_analyse.result
index 2c300559a32..bc8ec445e73 100644
--- a/mysql-test/r/func_analyse.result
+++ b/mysql-test/r/func_analyse.result
@@ -19,7 +19,7 @@ test.t1.empty_string 0 0 4 0 0.0000 NULL CHAR(0) NOT NULL
test.t1.bool N Y 1 1 0 0 1.0000 NULL ENUM('N','Y') NOT NULL
test.t1.d 2002-03-03 2002-03-05 10 10 0 0 10.0000 NULL ENUM('2002-03-03','2002-03-04','2002-03-05') NOT NULL
create table t2 select * from t1 procedure analyse();
-ERROR HY000: Incorrect usage of PROCEDURE and non-SELECT
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'procedure analyse()' at line 1
drop table t1;
EXPLAIN SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE();
ERROR HY000: Incorrect usage of PROCEDURE and subquery
@@ -120,7 +120,7 @@ CREATE TABLE t1(a INT);
INSERT INTO t1 VALUES (1),(2);
# should not crash
CREATE TABLE t2 SELECT 1 FROM t1, t1 t3 GROUP BY t3.a PROCEDURE ANALYSE();
-ERROR HY000: Incorrect usage of PROCEDURE and non-SELECT
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE()' at line 1
DROP TABLE t1;
End of 5.0 tests
#
@@ -149,3 +149,25 @@ Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_
test.t2.f2 1 1 1 1 0 0 1.0000 0.0000 ENUM('1') NOT NULL
DROP TABLE t1, t2;
End of 5.1 tests
+#
+# Start of 10.2 tests
+#
+(SELECT 1 FROM DUAL PROCEDURE ANALYSE());
+Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
+1 1 1 1 1 0 0 1.0000 0.0000 ENUM('1') NOT NULL
+((SELECT 1 FROM DUAL PROCEDURE ANALYSE()));
+Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
+1 1 1 1 1 0 0 1.0000 0.0000 ENUM('1') NOT NULL
+SELECT * FROM t1 UNION SELECT * FROM t1 PROCEDURE analyse();
+ERROR HY000: Incorrect usage of PROCEDURE and subquery
+#
+# MDEV-10030 sql_yacc.yy: Split table_expression and remove PROCEDURE from create_select, select_paren_derived, select_derived2, query_specification
+#
+SELECT * FROM (SELECT * FROM t1 PROCEDURE ANALYSE());
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE())' at line 1
+SELECT * FROM t1 NATURAL JOIN (SELECT * FROM t2 PROCEDURE ANALYSE());
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE())' at line 1
+SELECT (SELECT 1 FROM t1 PROCEDURE ANALYSE()) FROM t2;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE()) FROM t2' at line 1
+SELECT ((SELECT 1 FROM t1 PROCEDURE ANALYSE())) FROM t2;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE())) FROM t2' at line 1
diff --git a/mysql-test/r/func_group.result b/mysql-test/r/func_group.result
index 422e7bd25c8..74247ae1b8e 100644
--- a/mysql-test/r/func_group.result
+++ b/mysql-test/r/func_group.result
@@ -1519,7 +1519,7 @@ SELECT MAX(pk) as max, i
FROM t1
ORDER BY max;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using temporary
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
# Only 11 is correct for collumn i in this result
SELECT MAX(pk) as max, i
diff --git a/mysql-test/r/group_by.result b/mysql-test/r/group_by.result
index 07773960e5a..f27ae67adff 100644
--- a/mysql-test/r/group_by.result
+++ b/mysql-test/r/group_by.result
@@ -1346,12 +1346,43 @@ id select_type table type possible_keys key key_len ref rows Extra
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR JOIN (PRIMARY,i2);
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 144
+#
+# For this explain, the query plan is weird: if we are using
+# the primary key for reasons other than doing grouping, can't
+# GROUP BY code take advantage of this? Well, currently it doesnt:
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (PRIMARY,i2) GROUP BY a;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL PRIMARY 4 NULL 144 Using index
+1 SIMPLE t1 index NULL PRIMARY 4 NULL 144 Using index; Using filesort
+# Here's a proof it is really doing sorting:
+flush status;
+SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (PRIMARY,i2) GROUP BY a;
+show status like 'Sort_%';
+Variable_name Value
+Sort_merge_passes 0
+Sort_priority_queue_sorts 0
+Sort_range 0
+Sort_rows 144
+Sort_scan 1
+# Proof ends.
+#
+# For this explain, the query plan is weird: if we are using
+# the primary key for reasons other than doing sorting, can't
+# ORDER BY code take advantage of this? Well, currently it doesnt:
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL PRIMARY 4 NULL 144 Using index
+1 SIMPLE t1 index NULL PRIMARY 4 NULL 144 Using index; Using filesort
+# Here's a proof it is really doing sorting:
+flush status;
+SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a;
+show status like 'Sort_%';
+Variable_name Value
+Sort_merge_passes 0
+Sort_priority_queue_sorts 0
+Sort_range 0
+Sort_rows 144
+Sort_scan 1
+# Proof ends.
+#
SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a;
a
1
@@ -2678,3 +2709,17 @@ NULL
100098
100099
drop table t0,t1,t2;
+#
+# MDEV-9602 crash in st_key::actual_rec_per_key when group by constant
+#
+create table t1 (a date not null,unique (a)) engine=innodb;
+Warnings:
+Warning 1286 Unknown storage engine 'innodb'
+Warning 1266 Using storage engine MyISAM for table 't1'
+select distinct a from t1 group by 'a';
+a
+insert into t1 values("2001-02-02"),("2001-02-03");
+select distinct a from t1 group by 'a';
+a
+2001-02-02
+drop table t1;
diff --git a/mysql-test/r/having.result b/mysql-test/r/having.result
index eda67460205..627edd60141 100644
--- a/mysql-test/r/having.result
+++ b/mysql-test/r/having.result
@@ -470,10 +470,9 @@ WHERE table2.f1 = 2
GROUP BY table1.f1, table2.f2
HAVING (table2.f2 = 8 AND table1.f1 >= 6);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE table2 const PRIMARY PRIMARY 4 const 1 100.00 Using filesort
-1 SIMPLE table1 ALL NULL NULL NULL NULL 4 100.00 Using where
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible HAVING noticed after reading const tables
Warnings:
-Note 1003 select `test`.`table1`.`f1` AS `f1`,7 AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where (`test`.`table1`.`f3` = 9) group by `test`.`table1`.`f1`,7 having ((7 = 8) and (`test`.`table1`.`f1` >= 6))
+Note 1003 select `test`.`table1`.`f1` AS `f1`,7 AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where (`test`.`table1`.`f3` = 9) group by `test`.`table1`.`f1`,7 having 0
EXPLAIN EXTENDED
SELECT table1.f1, table2.f2
FROM t1 AS table1
@@ -482,10 +481,9 @@ WHERE table2.f1 = 2
GROUP BY table1.f1, table2.f2
HAVING (table2.f2 = 8);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE table2 const PRIMARY PRIMARY 4 const 1 100.00 Using filesort
-1 SIMPLE table1 ALL NULL NULL NULL NULL 4 100.00 Using where
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible HAVING noticed after reading const tables
Warnings:
-Note 1003 select `test`.`table1`.`f1` AS `f1`,7 AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where (`test`.`table1`.`f3` = 9) group by `test`.`table1`.`f1`,7 having (7 = 8)
+Note 1003 select `test`.`table1`.`f1` AS `f1`,7 AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where (`test`.`table1`.`f3` = 9) group by `test`.`table1`.`f1`,7 having 0
DROP TABLE t1;
#
# Bug#52336 Segfault / crash in 5.1 copy_fields (param=0x9872980) at sql_select.cc:15355
diff --git a/mysql-test/r/join_cache.result b/mysql-test/r/join_cache.result
index d816b1acf92..c15f96fc2e5 100644
--- a/mysql-test/r/join_cache.result
+++ b/mysql-test/r/join_cache.result
@@ -5412,9 +5412,9 @@ WHERE t2.c IN (SELECT c FROM t3,t4 WHERE t4.a < 10) AND
t2.a BETWEEN 4 and 5
ORDER BY t2.b;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 system NULL NULL NULL NULL 1 Using filesort
+1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 system NULL NULL NULL NULL 1
-1 PRIMARY t2 range a,c a 5 NULL 1 Using index condition; Using where
+1 PRIMARY t2 range a,c a 5 NULL 1 Using index condition; Using where; Using filesort
1 PRIMARY t4 ref c c 5 test.t2.c 2 Using where; Start temporary; End temporary
SELECT * FROM t1,t2
WHERE t2.c IN (SELECT c FROM t3,t4 WHERE t4.a < 10) AND
diff --git a/mysql-test/r/join_outer.result b/mysql-test/r/join_outer.result
index 820d66b9264..ca544f40aa8 100644
--- a/mysql-test/r/join_outer.result
+++ b/mysql-test/r/join_outer.result
@@ -1289,8 +1289,8 @@ SELECT t1.a, COUNT( t2.b ), SUM( t2.b ), MAX( t2.b )
FROM t1 JOIN t2 USING( a )
GROUP BY t1.a WITH ROLLUP;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 system NULL NULL NULL NULL 1 Using filesort
-1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using where
+1 SIMPLE t1 system NULL NULL NULL NULL 1
+1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using where; Using filesort
SELECT t1.a, COUNT( t2.b ), SUM( t2.b ), MAX( t2.b )
FROM t1 JOIN t2 USING( a )
GROUP BY t1.a WITH ROLLUP;
@@ -1429,8 +1429,8 @@ EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL
GROUP BY t2.f1, t2.f2;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 Using filesort
-1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index
+1 SIMPLE t1 system PRIMARY NULL NULL NULL 1
+1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index; Using filesort
SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL
GROUP BY t2.f1, t2.f2;
@@ -1846,8 +1846,8 @@ EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL
GROUP BY t2.f1, t2.f2;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 Using filesort
-1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index
+1 SIMPLE t1 system PRIMARY NULL NULL NULL 1
+1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index; Using filesort
SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL
GROUP BY t2.f1, t2.f2;
diff --git a/mysql-test/r/join_outer_jcl6.result b/mysql-test/r/join_outer_jcl6.result
index 4412f8059dd..3616deaee9c 100644
--- a/mysql-test/r/join_outer_jcl6.result
+++ b/mysql-test/r/join_outer_jcl6.result
@@ -1300,8 +1300,8 @@ SELECT t1.a, COUNT( t2.b ), SUM( t2.b ), MAX( t2.b )
FROM t1 JOIN t2 USING( a )
GROUP BY t1.a WITH ROLLUP;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 system NULL NULL NULL NULL 1 Using filesort
-1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using where
+1 SIMPLE t1 system NULL NULL NULL NULL 1
+1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using where; Using filesort
SELECT t1.a, COUNT( t2.b ), SUM( t2.b ), MAX( t2.b )
FROM t1 JOIN t2 USING( a )
GROUP BY t1.a WITH ROLLUP;
@@ -1440,8 +1440,8 @@ EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL
GROUP BY t2.f1, t2.f2;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 Using filesort
-1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index
+1 SIMPLE t1 system PRIMARY NULL NULL NULL 1
+1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index; Using filesort
SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL
GROUP BY t2.f1, t2.f2;
@@ -1857,8 +1857,8 @@ EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL
GROUP BY t2.f1, t2.f2;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 Using filesort
-1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index
+1 SIMPLE t1 system PRIMARY NULL NULL NULL 1
+1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index; Using filesort
SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL
GROUP BY t2.f1, t2.f2;
diff --git a/mysql-test/r/limit.result b/mysql-test/r/limit.result
index 176a93c7a46..064fa5a18a7 100644
--- a/mysql-test/r/limit.result
+++ b/mysql-test/r/limit.result
@@ -80,13 +80,13 @@ create table t1 (a int);
insert into t1 values (1),(2),(3),(4),(5),(6),(7);
explain select count(*) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL NULL NULL NULL NULL 7 Using where; Using temporary
+1 SIMPLE t1 ALL NULL NULL NULL NULL 7 Using where
select count(*) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3;
c
7
explain select sum(a) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL NULL NULL NULL NULL 7 Using where; Using temporary
+1 SIMPLE t1 ALL NULL NULL NULL NULL 7 Using where
select sum(a) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3;
c
28
diff --git a/mysql-test/r/limit_rows_examined.result b/mysql-test/r/limit_rows_examined.result
index 130d17ae270..318039db068 100644
--- a/mysql-test/r/limit_rows_examined.result
+++ b/mysql-test/r/limit_rows_examined.result
@@ -471,9 +471,11 @@ id select_type table type possible_keys key key_len ref rows Extra
select c1, sum(c2) from t3 group by c1 LIMIT ROWS EXAMINED 0;
c1 sum(c2)
Warnings:
-Warning 1931 Query execution was interrupted. The query examined at least 2 rows, which exceeds LIMIT ROWS EXAMINED (0). The query result may be incomplete.
+Warning 1931 Query execution was interrupted. The query examined at least 1 rows, which exceeds LIMIT ROWS EXAMINED (0). The query result may be incomplete.
select c1, sum(c2) from t3 group by c1 LIMIT ROWS EXAMINED 1;
-ERROR HY000: Sort aborted:
+c1 sum(c2)
+Warnings:
+Warning 1931 Query execution was interrupted. The query examined at least 3 rows, which exceeds LIMIT ROWS EXAMINED (1). The query result may be incomplete.
select c1, sum(c2) from t3 group by c1 LIMIT ROWS EXAMINED 20;
c1 sum(c2)
aa 3
@@ -496,9 +498,11 @@ id select_type table type possible_keys key key_len ref rows Extra
select c1, sum(c2) from t3i group by c1 LIMIT ROWS EXAMINED 0;
c1 sum(c2)
Warnings:
-Warning 1931 Query execution was interrupted. The query examined at least 2 rows, which exceeds LIMIT ROWS EXAMINED (0). The query result may be incomplete.
+Warning 1931 Query execution was interrupted. The query examined at least 1 rows, which exceeds LIMIT ROWS EXAMINED (0). The query result may be incomplete.
select c1, sum(c2) from t3i group by c1 LIMIT ROWS EXAMINED 1;
-ERROR HY000: Sort aborted:
+c1 sum(c2)
+Warnings:
+Warning 1931 Query execution was interrupted. The query examined at least 3 rows, which exceeds LIMIT ROWS EXAMINED (1). The query result may be incomplete.
select c1, sum(c2) from t3i group by c1 LIMIT ROWS EXAMINED 20;
c1 sum(c2)
aa 3
@@ -627,7 +631,7 @@ CREATE TABLE t4 (a int);
INSERT INTO t4 values (1), (2);
INSERT INTO t4 SELECT a + 2 FROM t4 LIMIT ROWS EXAMINED 0;
Warnings:
-Warning 1931 Query execution was interrupted. The query examined at least 2 rows, which exceeds LIMIT ROWS EXAMINED (0). The query result may be incomplete.
+Warning 1931 Query execution was interrupted. The query examined at least 1 rows, which exceeds LIMIT ROWS EXAMINED (0). The query result may be incomplete.
select * from t4;
a
1
@@ -666,7 +670,7 @@ MDEV-115
SET @@optimizer_switch='in_to_exists=on,outer_join_with_cache=on';
CREATE TABLE t1 ( a VARCHAR(3) ) ENGINE=MyISAM;
-INSERT INTO t1 VALUES ('USA');
+INSERT INTO t1 VALUES ('USA'),('CAN');
CREATE TABLE t2 ( b INT );
INSERT INTO t2 VALUES (3899),(3914),(3888);
CREATE TABLE t3 ( c VARCHAR(33), d INT );
@@ -676,8 +680,8 @@ SELECT DISTINCT a AS field1 FROM t1, t2
WHERE EXISTS (SELECT c FROM t3 LEFT JOIN t2 ON b = d)
HAVING field1 > 'aaa' LIMIT ROWS EXAMINED 20;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 system NULL NULL NULL NULL 1 Using temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 3 Distinct
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
2 SUBQUERY t3 ALL NULL NULL NULL NULL 3
2 SUBQUERY t2 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
SELECT DISTINCT a AS field1 FROM t1, t2
@@ -685,24 +689,27 @@ WHERE EXISTS (SELECT c FROM t3 LEFT JOIN t2 ON b = d)
HAVING field1 > 'aaa' LIMIT ROWS EXAMINED 20;
field1
Warnings:
-Warning 1931 Query execution was interrupted. The query examined at least 23 rows, which exceeds LIMIT ROWS EXAMINED (20). The query result may be incomplete.
+Warning 1931 Query execution was interrupted. The query examined at least 21 rows, which exceeds LIMIT ROWS EXAMINED (20). The query result may be incomplete.
EXPLAIN
SELECT DISTINCT a FROM t1, t2 HAVING a > ' ' LIMIT ROWS EXAMINED 14;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 system NULL NULL NULL NULL 1 Using temporary
-1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Distinct
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using temporary
+1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
SELECT DISTINCT a FROM t1, t2 HAVING a > ' ' LIMIT ROWS EXAMINED 14;
a
+USA
Warnings:
Warning 1931 Query execution was interrupted. The query examined at least 15 rows, which exceeds LIMIT ROWS EXAMINED (14). The query result may be incomplete.
SELECT DISTINCT a FROM t1, t2 HAVING a > ' ' LIMIT ROWS EXAMINED 15;
a
USA
+CAN
Warnings:
Warning 1931 Query execution was interrupted. The query examined at least 16 rows, which exceeds LIMIT ROWS EXAMINED (15). The query result may be incomplete.
SELECT DISTINCT a FROM t1, t2 HAVING a > ' ' LIMIT ROWS EXAMINED 16;
a
USA
+CAN
Warnings:
Warning 1931 Query execution was interrupted. The query examined at least 17 rows, which exceeds LIMIT ROWS EXAMINED (16). The query result may be incomplete.
drop table t1,t2,t3;
diff --git a/mysql-test/r/mrr_derived_crash_4610.result b/mysql-test/r/mrr_derived_crash_4610.result
index 8dcdfda9276..3e38a0d4218 100644
--- a/mysql-test/r/mrr_derived_crash_4610.result
+++ b/mysql-test/r/mrr_derived_crash_4610.result
@@ -7,8 +7,8 @@ explain select 1 from
(select f2, f3, val, count(id) from t4 join t2 left join t3 on 0) top
join t1 on f1 = f3 where f3 = 'aaaa' order by val;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 const PRIMARY PRIMARY 12 const 1 Using index; Using filesort
-1 PRIMARY <derived2> ref key0 key0 13 const 0 Using where
+1 PRIMARY t1 const PRIMARY PRIMARY 12 const 1 Using index
+1 PRIMARY <derived2> ref key0 key0 13 const 0 Using where; Using filesort
2 DERIVED t4 ALL NULL NULL NULL NULL 1
2 DERIVED t2 ALL NULL NULL NULL NULL 1 Using join buffer (flat, BNL join)
2 DERIVED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join)
diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result
index 67a63d7a08a..1eef64be640 100644
--- a/mysql-test/r/myisam.result
+++ b/mysql-test/r/myisam.result
@@ -523,11 +523,11 @@ a
explain select sql_big_result distinct t1.a from t1,t2 order by t2.a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 1 Using temporary
-1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index; Distinct
+1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index
explain select distinct t1.a from t1,t2 order by t2.a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 1 Using temporary
-1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index; Distinct
+1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index
drop table t1,t2;
create table t1 (
c1 varchar(32),
@@ -603,6 +603,10 @@ test.t2 3442722830
test.t3 NULL
Warnings:
Error 1146 Table 'test.t3' doesn't exist
+alter table t1 add d int default 30, add e bigint default 300000, add f decimal(30) default 442;
+checksum table t1;
+Table Checksum
+test.t1 2924214226
drop table t1,t2;
create table t1 (a int, key (a));
show keys from t1;
diff --git a/mysql-test/r/order_by_optimizer.result b/mysql-test/r/order_by_optimizer.result
new file mode 100644
index 00000000000..8f128552a86
--- /dev/null
+++ b/mysql-test/r/order_by_optimizer.result
@@ -0,0 +1,30 @@
+drop table if exists t0,t1,t2,t3;
+#
+# MDEV-7885: EXPLAIN shows wrong info for ORDER BY query
+#
+create table t0(a int);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t1(a int);
+insert into t1 select A.a + B.a* 10 + C.a * 100 from t0 A, t0 B, t0 C;
+create table t2 (key1 int, col1 int, key(key1));
+insert into t2 select a,a from t0;
+insert into t2 select 15,15 from t1;
+alter table t2 add key2 int, add key(key2);
+# This must show "Using filesort":
+explain
+select * from t2 ignore index for order by (key1) where col1<0 order by key1 limit 10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1010 Using where; Using filesort
+drop table t0, t1, t2;
+#
+# MDEV-8857: [Upstream too] EXPLAIN incorrectly shows Distinct for tables using join buffer
+#
+create table t0(a int);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t1 (a int, filler char(200), key(a));
+insert into t1 select A.a + B.a* 10, 'AAAAAAAAAAAAAAAAAAAA' from t0 A, t0 B where B.a in (0,1);
+explain select distinct A.a from t0 A, t1 B where A.a+B.a> 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE A ALL NULL NULL NULL NULL 10 Using temporary
+1 SIMPLE B index NULL a 5 NULL 20 Using where; Using index; Using join buffer (flat, BNL join)
+drop table t0, t1;
diff --git a/mysql-test/r/parser.result b/mysql-test/r/parser.result
index 01cc9d79aaf..18a8e13815c 100644
--- a/mysql-test/r/parser.result
+++ b/mysql-test/r/parser.result
@@ -686,7 +686,7 @@ FOR UPDATE) a;
SELECT 1 FROM
(SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
PROCEDURE ANALYSE() FOR UPDATE) a;
-ERROR HY000: Incorrect usage of PROCEDURE and subquery
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE() FOR UPDATE) a' at line 3
SELECT 1 FROM t1
WHERE EXISTS(SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
FOR UPDATE);
@@ -694,7 +694,7 @@ FOR UPDATE);
SELECT 1 FROM t1
WHERE EXISTS(SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
PROCEDURE ANALYSE() FOR UPDATE);
-ERROR HY000: Incorrect usage of PROCEDURE and subquery
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE() FOR UPDATE)' at line 3
SELECT 1 FROM t1
UNION
SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
diff --git a/mysql-test/r/select_found.result b/mysql-test/r/select_found.result
index 7b38515cf70..8462e19fda8 100644
--- a/mysql-test/r/select_found.result
+++ b/mysql-test/r/select_found.result
@@ -83,20 +83,20 @@ UNIQUE KEY e_n (email,name)
);
EXPLAIN SELECT SQL_CALC_FOUND_ROWS DISTINCT email FROM t2 LEFT JOIN t1 ON kid = t2.id WHERE t1.id IS NULL LIMIT 10;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 system PRIMARY,kid NULL NULL NULL 0 const row not found
-1 SIMPLE t2 index NULL e_n 104 NULL 10
+1 SIMPLE t1 system PRIMARY,kid NULL NULL NULL 0 const row not found; Using temporary
+1 SIMPLE t2 ALL NULL NULL NULL NULL 200
SELECT SQL_CALC_FOUND_ROWS DISTINCT email FROM t2 LEFT JOIN t1 ON kid = t2.id WHERE t1.id IS NULL LIMIT 10;
email
email1
+email2
+email3
+email4
+email5
+email6
+email7
+email8
+email9
email10
-email100
-email101
-email102
-email103
-email104
-email105
-email106
-email107
SELECT FOUND_ROWS();
FOUND_ROWS()
200
diff --git a/mysql-test/r/show_explain.result b/mysql-test/r/show_explain.result
index 5a885766f7b..0819ae5ba37 100644
--- a/mysql-test/r/show_explain.result
+++ b/mysql-test/r/show_explain.result
@@ -1162,7 +1162,7 @@ SELECT b AS field1, b AS field2 FROM t1, t2, t3 WHERE d = b ORDER BY field1, fie
connection default;
show explain for $thr2;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 system NULL NULL NULL NULL 1 Using filesort
+1 SIMPLE t2 system NULL NULL NULL NULL 1
1 SIMPLE t1 range b b 6 NULL 107 Using where; Using index
1 SIMPLE t3 ref PRIMARY PRIMARY 5 test.t1.b 1 Using index
Warnings:
diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result
index b306965034b..1b1198958b8 100644
--- a/mysql-test/r/subselect.result
+++ b/mysql-test/r/subselect.result
@@ -79,7 +79,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
1
1
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));
-ERROR HY000: Incorrect usage of PROCEDURE and subquery
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE(1))' at line 1
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT 1))' at line 1
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
diff --git a/mysql-test/r/subselect4.result b/mysql-test/r/subselect4.result
index 87645d187f2..7202a6238b0 100644
--- a/mysql-test/r/subselect4.result
+++ b/mysql-test/r/subselect4.result
@@ -19,7 +19,7 @@ SELECT 1 FROM t1
WHERE NOT EXISTS (SELECT 1 FROM t2 WHERE 1 = (SELECT MIN(t2.b) FROM t3))
ORDER BY count(*);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index NULL a 5 NULL 2 Using where; Using index; Using temporary
+1 PRIMARY t1 index NULL a 5 NULL 2 Using where; Using index
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where
3 DEPENDENT SUBQUERY t3 system NULL NULL NULL NULL 0 const row not found
# should not crash the next statement
@@ -2003,8 +2003,8 @@ FROM t2 JOIN t3 ON t3.f4 = t2.f4
WHERE t3.f1 = 8
GROUP BY 1, 2;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 system NULL NULL NULL NULL 1 Using filesort
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where
+1 PRIMARY t3 system NULL NULL NULL NULL 1
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Using filesort
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
3 MATERIALIZED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
PREPARE st1 FROM "
diff --git a/mysql-test/r/subselect_no_exists_to_in.result b/mysql-test/r/subselect_no_exists_to_in.result
index 244f6057a2f..39d1f64410e 100644
--- a/mysql-test/r/subselect_no_exists_to_in.result
+++ b/mysql-test/r/subselect_no_exists_to_in.result
@@ -83,7 +83,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
1
1
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));
-ERROR HY000: Incorrect usage of PROCEDURE and subquery
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE(1))' at line 1
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT 1))' at line 1
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
diff --git a/mysql-test/r/subselect_no_mat.result b/mysql-test/r/subselect_no_mat.result
index e095ed16ff9..211d3206a7f 100644
--- a/mysql-test/r/subselect_no_mat.result
+++ b/mysql-test/r/subselect_no_mat.result
@@ -86,7 +86,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
1
1
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));
-ERROR HY000: Incorrect usage of PROCEDURE and subquery
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE(1))' at line 1
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT 1))' at line 1
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
diff --git a/mysql-test/r/subselect_no_opts.result b/mysql-test/r/subselect_no_opts.result
index f4714526613..6ae9f8aa066 100644
--- a/mysql-test/r/subselect_no_opts.result
+++ b/mysql-test/r/subselect_no_opts.result
@@ -82,7 +82,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
1
1
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));
-ERROR HY000: Incorrect usage of PROCEDURE and subquery
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE(1))' at line 1
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT 1))' at line 1
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
diff --git a/mysql-test/r/subselect_no_scache.result b/mysql-test/r/subselect_no_scache.result
index 5ead5de4cf9..9a3fcd1de3b 100644
--- a/mysql-test/r/subselect_no_scache.result
+++ b/mysql-test/r/subselect_no_scache.result
@@ -85,7 +85,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
1
1
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));
-ERROR HY000: Incorrect usage of PROCEDURE and subquery
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE(1))' at line 1
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT 1))' at line 1
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
diff --git a/mysql-test/r/subselect_no_semijoin.result b/mysql-test/r/subselect_no_semijoin.result
index c57c46b76ff..10cf05649e7 100644
--- a/mysql-test/r/subselect_no_semijoin.result
+++ b/mysql-test/r/subselect_no_semijoin.result
@@ -82,7 +82,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
1
1
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));
-ERROR HY000: Incorrect usage of PROCEDURE and subquery
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE(1))' at line 1
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT 1))' at line 1
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
diff --git a/mysql-test/r/win.result b/mysql-test/r/win.result
new file mode 100644
index 00000000000..a6b43788ffe
--- /dev/null
+++ b/mysql-test/r/win.result
@@ -0,0 +1,1961 @@
+drop table if exists t1,t2;
+drop view if exists v1;
+# ########################################################################
+# # Parser tests
+# ########################################################################
+#
+# Check what happens when one attempts to use window function without OVER clause
+create table t1 (a int, b int);
+insert into t1 values (1,1),(2,2);
+select row_number() from t1;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'from t1' at line 1
+select rank() from t1;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'from t1' at line 1
+# Attempt to use window function in the WHERE clause
+select * from t1 where 1=rank() over (order by a);
+ERROR HY000: Window function is allowed only in SELECT list and ORDER BY clause
+select * from t1 where 1>row_number() over (partition by b order by a);
+ERROR HY000: Window function is allowed only in SELECT list and ORDER BY clause
+drop table t1;
+# ########################################################################
+# # Functionality tests
+# ########################################################################
+#
+# Check if ROW_NUMBER() works in basic cases
+create table t1(a int, b int, x char(32));
+insert into t1 values (2, 10, 'xx');
+insert into t1 values (2, 10, 'zz');
+insert into t1 values (2, 20, 'yy');
+insert into t1 values (3, 10, 'xxx');
+insert into t1 values (3, 20, 'vvv');
+select a, row_number() over (partition by a order by b) from t1;
+a row_number() over (partition by a order by b)
+2 1
+2 2
+2 3
+3 1
+3 2
+select a, b, x, row_number() over (partition by a order by x) from t1;
+a b x row_number() over (partition by a order by x)
+2 10 xx 1
+2 10 zz 3
+2 20 yy 2
+3 10 xxx 2
+3 20 vvv 1
+drop table t1;
+create table t1 (pk int primary key, a int, b int);
+insert into t1 values
+(1, 10, 22),
+(2, 11, 21),
+(3, 12, 20),
+(4, 13, 19),
+(5, 14, 18);
+select
+pk, a, b,
+row_number() over (order by a),
+row_number() over (order by b)
+from t1;
+pk a b row_number() over (order by a) row_number() over (order by b)
+1 10 22 1 5
+2 11 21 2 4
+3 12 20 3 3
+4 13 19 4 2
+5 14 18 5 1
+drop table t1;
+#
+# Try RANK() function
+#
+create table t2 (
+pk int primary key,
+a int
+);
+insert into t2 values
+( 1 , 0),
+( 2 , 0),
+( 3 , 1),
+( 4 , 1),
+( 8 , 2),
+( 5 , 2),
+( 6 , 2),
+( 7 , 2),
+( 9 , 4),
+(10 , 4);
+select pk, a, rank() over (order by a) from t2;
+pk a rank() over (order by a)
+1 0 1
+2 0 1
+3 1 3
+4 1 3
+8 2 5
+5 2 5
+6 2 5
+7 2 5
+9 4 9
+10 4 9
+select pk, a, rank() over (order by a desc) from t2;
+pk a rank() over (order by a desc)
+1 0 9
+2 0 9
+3 1 7
+4 1 7
+8 2 3
+5 2 3
+6 2 3
+7 2 3
+9 4 1
+10 4 1
+drop table t2;
+#
+# Try Aggregates as window functions. With frames.
+#
+create table t0 (a int);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t1 (pk int, c int);
+insert into t1 select a+1,1 from t0;
+update t1 set c=2 where pk not in (1,2,3,4);
+select * from t1;
+pk c
+1 1
+2 1
+3 1
+4 1
+5 2
+6 2
+7 2
+8 2
+9 2
+10 2
+select
+pk, c,
+count(*) over (partition by c order by pk
+rows between 2 preceding and 2 following) as CNT
+from t1;
+pk c CNT
+1 1 3
+2 1 4
+3 1 4
+4 1 3
+5 2 3
+6 2 4
+7 2 5
+8 2 5
+9 2 4
+10 2 3
+select
+pk, c,
+count(*) over (partition by c order by pk
+rows between 1 preceding and 2 following) as CNT
+from t1;
+pk c CNT
+1 1 3
+2 1 4
+3 1 3
+4 1 2
+5 2 3
+6 2 4
+7 2 4
+8 2 4
+9 2 3
+10 2 2
+select
+pk, c,
+count(*) over (partition by c order by pk
+rows between 2 preceding and current row) as CNT
+from t1;
+pk c CNT
+1 1 1
+2 1 2
+3 1 3
+4 1 3
+5 2 1
+6 2 2
+7 2 3
+8 2 3
+9 2 3
+10 2 3
+select
+pk,c,
+count(*) over (partition by c order by pk rows
+between 1 following and 2 following) as CNT
+from t1;
+pk c CNT
+1 1 2
+2 1 2
+3 1 1
+4 1 0
+5 2 2
+6 2 2
+7 2 2
+8 2 2
+9 2 1
+10 2 0
+select
+pk,c,
+count(*) over (partition by c order by pk rows
+between 2 preceding and 1 preceding) as CNT
+from t1;
+pk c CNT
+1 1 0
+2 1 1
+3 1 2
+4 1 2
+5 2 0
+6 2 1
+7 2 2
+8 2 2
+9 2 2
+10 2 2
+select
+pk, c,
+count(*) over (partition by c order by pk
+rows between current row and 1 following) as CNT
+from t1;
+pk c CNT
+1 1 2
+2 1 2
+3 1 2
+4 1 1
+5 2 2
+6 2 2
+7 2 2
+8 2 2
+9 2 2
+10 2 1
+# Check ORDER BY DESC
+select
+pk, c,
+count(*) over (partition by c order by pk desc
+rows between 2 preceding and 2 following) as CNT
+from t1;
+pk c CNT
+1 1 3
+2 1 4
+3 1 4
+4 1 3
+5 2 3
+6 2 4
+7 2 5
+8 2 5
+9 2 4
+10 2 3
+drop table t0,t1;
+#
+# Resolution of window names
+#
+create table t0 (a int);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t1 (pk int, c int);
+insert into t1 select a+1,1 from t0;
+update t1 set c=2 where pk not in (1,2,3,4);
+select * from t1;
+pk c
+1 1
+2 1
+3 1
+4 1
+5 2
+6 2
+7 2
+8 2
+9 2
+10 2
+select
+pk, c,
+count(*) over w1 as CNT
+from t1
+window w1 as (partition by c order by pk
+rows between 2 preceding and 2 following);
+pk c CNT
+1 1 3
+2 1 4
+3 1 4
+4 1 3
+5 2 3
+6 2 4
+7 2 5
+8 2 5
+9 2 4
+10 2 3
+select
+pk, c,
+count(*) over (w1 rows between 2 preceding and 2 following) as CNT
+from t1
+window w1 as (partition by c order by pk);
+pk c CNT
+1 1 3
+2 1 4
+3 1 4
+4 1 3
+5 2 3
+6 2 4
+7 2 5
+8 2 5
+9 2 4
+10 2 3
+select
+pk, c,
+count(*) over (w1 order by pk rows between 2 preceding and 2 following) as CNT
+from t1
+window w1 as (partition by c);
+pk c CNT
+1 1 3
+2 1 4
+3 1 4
+4 1 3
+5 2 3
+6 2 4
+7 2 5
+8 2 5
+9 2 4
+10 2 3
+select
+pk, c,
+count(*) over (w2 rows between 2 preceding and 2 following) as CNT
+from t1
+window w1 as (partition by c), w2 as (w1 order by pk);
+pk c CNT
+1 1 3
+2 1 4
+3 1 4
+4 1 3
+5 2 3
+6 2 4
+7 2 5
+8 2 5
+9 2 4
+10 2 3
+select
+pk, c,
+count(*) over w3 as CNT
+from t1
+window
+w1 as (partition by c),
+w2 as (w1 order by pk),
+w3 as (w2 rows between 2 preceding and 2 following);
+pk c CNT
+1 1 3
+2 1 4
+3 1 4
+4 1 3
+5 2 3
+6 2 4
+7 2 5
+8 2 5
+9 2 4
+10 2 3
+select
+pk, c,
+count(*) over w as CNT
+from t1
+window w1 as (partition by c order by pk
+rows between 2 preceding and 2 following);
+ERROR HY000: Window specification with name 'w' is not defined
+select
+pk, c,
+count(*) over (w2 rows between 2 preceding and 2 following) as CNT
+from t1
+window w1 as (partition by c), w1 as (order by pk);
+ERROR HY000: Multiple window specifications with the same name 'w1'
+select
+pk, c,
+count(*) over (w2 rows between 2 preceding and 2 following) as CNT
+from t1
+window w1 as (partition by c), w2 as (w partition by c order by pk);
+ERROR HY000: Window specification with name 'w' is not defined
+select
+pk, c,
+count(*) over (w2 rows between 2 preceding and 2 following) as CNT
+from t1
+window w1 as (partition by c), w2 as (w1 partition by c order by pk);
+ERROR HY000: Window specification referencing another one 'w1' cannot contain partition list
+select
+pk, c,
+count(*) over (w2 rows between 2 preceding and 2 following) as CNT
+from t1
+window w1 as (partition by c order by pk), w2 as (w1 order by pk);
+ERROR HY000: Referenced window specification 'w1' already contains order list
+select
+pk, c,
+count(*) over w3 as CNT
+from t1
+window
+w1 as (partition by c),
+w2 as (w1 order by pk rows between 3 preceding and 2 following),
+w3 as (w2 rows between 2 preceding and 2 following);
+ERROR HY000: Referenced window specification 'w2' cannot contain window frame
+select
+pk, c,
+count(*) over w1 as CNT
+from t1
+window w1 as (partition by c order by pk
+rows between unbounded following and 2 following);
+ERROR HY000: Unacceptable combination of window frame bound specifications
+select
+pk, c,
+count(*) over (w1 rows between 2 preceding and unbounded preceding) as CNT
+from t1
+window w1 as (partition by c order by pk);
+ERROR HY000: Unacceptable combination of window frame bound specifications
+select
+pk, c,
+count(*) over (w1 order by pk rows between current row and 2 preceding) as CNT
+from t1
+window w1 as (partition by c);
+ERROR HY000: Unacceptable combination of window frame bound specifications
+select
+pk, c,
+count(*) over (w2 rows between 2 following and current row) as CNT
+from t1
+window w1 as (partition by c), w2 as (w1 order by pk);
+ERROR HY000: Unacceptable combination of window frame bound specifications
+select
+pk, c
+from t1 where rank() over w1 > 2
+window w1 as (partition by c order by pk);
+ERROR HY000: Window function is allowed only in SELECT list and ORDER BY clause
+select
+c, max(pk) as m
+from t1
+group by c + rank() over w1
+window w1 as (order by m);
+ERROR HY000: Window function is allowed only in SELECT list and ORDER BY clause
+select
+c, max(pk) as m, rank() over w1 as r
+from t1
+group by c+r
+window w1 as (order by m);
+ERROR HY000: Window function is allowed only in SELECT list and ORDER BY clause
+select
+c, max(pk) as m, rank() over w1 as r
+from t1
+group by c having c+r > 3
+window w1 as (order by m);
+ERROR HY000: Window function is allowed only in SELECT list and ORDER BY clause
+select
+c, max(pk) as m, rank() over w1 as r,
+rank() over (partition by r+1 order by m)
+from t1
+group by c
+window w1 as (order by m);
+ERROR HY000: Window function is not allowed in window specification
+select
+c, max(pk) as m, rank() over w1 as r,
+rank() over (partition by m order by r)
+from t1
+group by c
+window w1 as (order by m);
+ERROR HY000: Window function is not allowed in window specification
+select
+c, max(pk) as m, rank() over w1 as r, dense_rank() over w2 as dr
+from t1
+group by c
+window w1 as (order by m), w2 as (partition by r order by m);
+ERROR HY000: Window function is not allowed in window specification
+select
+pk, c,
+row_number() over (partition by c order by pk
+range between unbounded preceding and current row) as r
+from t1;
+ERROR HY000: Window frame is not allowed with 'row_number'
+select
+pk, c,
+rank() over w1 as r
+from t1
+window w1 as (partition by c order by pk
+rows between 2 preceding and 2 following);
+ERROR HY000: Window frame is not allowed with 'rank'
+select
+pk, c,
+dense_rank() over (partition by c order by pk
+rows between 1 preceding and 1 following) as r
+from t1;
+ERROR HY000: Window frame is not allowed with 'dense_rank'
+select
+pk, c,
+rank() over w1 as r
+from t1
+window w1 as (partition by c);
+ERROR HY000: No order list in window specification for 'rank'
+select
+pk, c,
+dense_rank() over (partition by c) as r
+from t1;
+ERROR HY000: No order list in window specification for 'dense_rank'
+drop table t0,t1;
+#
+# MDEV-9634: Window function produces incorrect value
+#
+create table t0 (a int);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t2 (part_id int, pk int, a int);
+insert into t2 select
+if(a<5, 0, 1), a, if(a<5, NULL, 1) from t0;
+select * from t2;
+part_id pk a
+0 0 NULL
+0 1 NULL
+0 2 NULL
+0 3 NULL
+0 4 NULL
+1 5 1
+1 6 1
+1 7 1
+1 8 1
+1 9 1
+select
+part_id, pk, a,
+count(a) over (partition by part_id order by pk
+rows between 1 preceding and 1 following) as CNT
+from t2;
+part_id pk a CNT
+0 0 NULL 0
+0 1 NULL 0
+0 2 NULL 0
+0 3 NULL 0
+0 4 NULL 0
+1 5 1 2
+1 6 1 3
+1 7 1 3
+1 8 1 3
+1 9 1 2
+drop table t0, t2;
+#
+# RANGE-type bounds
+#
+create table t3 (
+pk int,
+val int
+);
+insert into t3 values
+(0, 1),
+(1, 1),
+(2, 1),
+(3, 2),
+(4, 2),
+(5, 2),
+(6, 2);
+select
+pk,
+val,
+count(val) over (order by val
+range between current row and
+current row)
+as CNT
+from t3;
+pk val CNT
+0 1 3
+1 1 3
+2 1 3
+3 2 4
+4 2 4
+5 2 4
+6 2 4
+insert into t3 values
+(7, 3),
+(8, 3);
+select
+pk,
+val,
+count(val) over (order by val
+range between current row and
+current row)
+as CNT
+from t3;
+pk val CNT
+0 1 3
+1 1 3
+2 1 3
+3 2 4
+4 2 4
+5 2 4
+6 2 4
+7 3 2
+8 3 2
+drop table t3;
+# Now, check with PARTITION BY
+create table t4 (
+part_id int,
+pk int,
+val int
+);
+insert into t4 values
+(1234, 100, 1),
+(1234, 101, 1),
+(1234, 102, 1),
+(1234, 103, 2),
+(1234, 104, 2),
+(1234, 105, 2),
+(1234, 106, 2),
+(1234, 107, 3),
+(1234, 108, 3),
+(5678, 200, 1),
+(5678, 201, 1),
+(5678, 202, 1),
+(5678, 203, 2),
+(5678, 204, 2),
+(5678, 205, 2),
+(5678, 206, 2),
+(5678, 207, 3),
+(5678, 208, 3);
+select
+part_id,
+pk,
+val,
+count(val) over (partition by part_id
+order by val
+range between current row and
+current row)
+as CNT
+from t4;
+part_id pk val CNT
+1234 100 1 3
+1234 101 1 3
+1234 102 1 3
+1234 103 2 4
+1234 104 2 4
+1234 105 2 4
+1234 106 2 4
+1234 107 3 2
+1234 108 3 2
+5678 200 1 3
+5678 201 1 3
+5678 202 1 3
+5678 203 2 4
+5678 204 2 4
+5678 205 2 4
+5678 206 2 4
+5678 207 3 2
+5678 208 3 2
+#
+# Try RANGE UNBOUNDED PRECEDING | FOLLOWING
+#
+select
+part_id,
+pk,
+val,
+count(val) over (partition by part_id
+order by val
+range between unbounded preceding and
+current row)
+as CNT
+from t4;
+part_id pk val CNT
+1234 100 1 3
+1234 101 1 3
+1234 102 1 3
+1234 103 2 7
+1234 104 2 7
+1234 105 2 7
+1234 106 2 7
+1234 107 3 9
+1234 108 3 9
+5678 200 1 3
+5678 201 1 3
+5678 202 1 3
+5678 203 2 7
+5678 204 2 7
+5678 205 2 7
+5678 206 2 7
+5678 207 3 9
+5678 208 3 9
+select
+part_id,
+pk,
+val,
+count(val) over (partition by part_id
+order by val
+range between current row and
+unbounded following)
+as CNT
+from t4;
+part_id pk val CNT
+1234 100 1 9
+1234 101 1 9
+1234 102 1 9
+1234 103 2 6
+1234 104 2 6
+1234 105 2 6
+1234 106 2 6
+1234 107 3 2
+1234 108 3 2
+5678 200 1 9
+5678 201 1 9
+5678 202 1 9
+5678 203 2 6
+5678 204 2 6
+5678 205 2 6
+5678 206 2 6
+5678 207 3 2
+5678 208 3 2
+select
+part_id,
+pk,
+val,
+count(val) over (partition by part_id
+order by val
+range between unbounded preceding and
+unbounded following)
+as CNT
+from t4;
+part_id pk val CNT
+1234 100 1 9
+1234 101 1 9
+1234 102 1 9
+1234 103 2 9
+1234 104 2 9
+1234 105 2 9
+1234 106 2 9
+1234 107 3 9
+1234 108 3 9
+5678 200 1 9
+5678 201 1 9
+5678 202 1 9
+5678 203 2 9
+5678 204 2 9
+5678 205 2 9
+5678 206 2 9
+5678 207 3 9
+5678 208 3 9
+drop table t4;
+#
+# MDEV-9695: Wrong window frame when using RANGE BETWEEN N FOLLOWING AND PRECEDING
+#
+create table t1 (pk int, a int, b int);
+insert into t1 values
+( 1 , 0, 1),
+( 2 , 0, 2),
+( 3 , 1, 4),
+( 4 , 1, 8),
+( 5 , 2, 32),
+( 6 , 2, 64),
+( 7 , 2, 128),
+( 8 , 2, 16);
+select pk, a, b,
+bit_or(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) as bit_or
+from t1;
+pk a b bit_or
+1 0 1 3
+2 0 2 3
+3 1 4 12
+4 1 8 12
+5 2 32 96
+6 2 64 224
+7 2 128 208
+8 2 16 144
+# Extra ROWS n PRECEDING tests
+select pk, a, b,
+bit_or(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) as bit_or
+from t1;
+pk a b bit_or
+1 0 1 0
+2 0 2 1
+3 1 4 0
+4 1 8 4
+5 2 32 0
+6 2 64 32
+7 2 128 64
+8 2 16 128
+drop table t1;
+create table t2 (
+pk int,
+a int,
+b int
+);
+insert into t2 values
+( 1, 0, 1),
+( 2, 0, 2),
+( 3, 0, 4),
+( 4, 0, 8),
+( 5, 1, 16),
+( 6, 1, 32),
+( 7, 1, 64),
+( 8, 1, 128),
+( 9, 2, 256),
+(10, 2, 512),
+(11, 2, 1024),
+(12, 2, 2048);
+select pk, a, b,
+bit_or(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) as bit_or
+from t2;
+pk a b bit_or
+1 0 1 0
+2 0 2 1
+3 0 4 2
+4 0 8 4
+5 1 16 0
+6 1 32 16
+7 1 64 32
+8 1 128 64
+9 2 256 0
+10 2 512 256
+11 2 1024 512
+12 2 2048 1024
+select pk, a, b,
+bit_or(b) over (partition by a order by pk ROWS BETWEEN 2 PRECEDING AND 2 PRECEDING) as bit_or
+from t2;
+pk a b bit_or
+1 0 1 0
+2 0 2 0
+3 0 4 1
+4 0 8 2
+5 1 16 0
+6 1 32 0
+7 1 64 16
+8 1 128 32
+9 2 256 0
+10 2 512 0
+11 2 1024 256
+12 2 2048 512
+select pk, a, b,
+bit_or(b) over (partition by a order by pk ROWS BETWEEN 2 PRECEDING AND 1 PRECEDING) as bit_or
+from t2;
+pk a b bit_or
+1 0 1 0
+2 0 2 1
+3 0 4 3
+4 0 8 6
+5 1 16 0
+6 1 32 16
+7 1 64 48
+8 1 128 96
+9 2 256 0
+10 2 512 256
+11 2 1024 768
+12 2 2048 1536
+# Check CURRENT ROW
+select pk, a, b,
+bit_or(b) over (partition by a order by pk ROWS BETWEEN CURRENT ROW AND CURRENT ROW) as bit_or
+from t2;
+pk a b bit_or
+1 0 1 1
+2 0 2 2
+3 0 4 4
+4 0 8 8
+5 1 16 16
+6 1 32 32
+7 1 64 64
+8 1 128 128
+9 2 256 256
+10 2 512 512
+11 2 1024 1024
+12 2 2048 2048
+drop table t2;
+#
+# Try RANGE PRECEDING|FOLLWING n
+#
+create table t1 (
+part_id int,
+pk int,
+a int
+);
+insert into t1 values
+(10, 1, 1),
+(10, 2, 2),
+(10, 3, 4),
+(10, 4, 8),
+(10, 5,26),
+(10, 6,27),
+(10, 7,40),
+(10, 8,71),
+(10, 9,72);
+select
+pk, a,
+count(a) over (ORDER BY a
+RANGE BETWEEN UNBOUNDED PRECEDING
+AND 10 FOLLOWING) as cnt
+from t1;
+pk a cnt
+1 1 4
+2 2 4
+3 4 4
+4 8 4
+5 26 6
+6 27 6
+7 40 7
+8 71 9
+9 72 9
+select
+pk, a,
+count(a) over (ORDER BY a DESC
+RANGE BETWEEN UNBOUNDED PRECEDING
+AND 10 FOLLOWING) as cnt
+from t1;
+pk a cnt
+1 1 9
+2 2 9
+3 4 9
+4 8 9
+5 26 5
+6 27 5
+7 40 3
+8 71 2
+9 72 2
+select
+pk, a,
+count(a) over (ORDER BY a
+RANGE BETWEEN UNBOUNDED PRECEDING
+AND 1 FOLLOWING) as cnt
+from t1;
+pk a cnt
+1 1 2
+2 2 2
+3 4 3
+4 8 4
+5 26 6
+6 27 6
+7 40 7
+8 71 9
+9 72 9
+select
+pk, a,
+count(a) over (ORDER BY a
+RANGE BETWEEN UNBOUNDED PRECEDING
+AND 10 PRECEDING) as cnt
+from t1;
+pk a cnt
+1 1 0
+2 2 0
+3 4 0
+4 8 0
+5 26 4
+6 27 4
+7 40 6
+8 71 7
+9 72 7
+select
+pk, a,
+count(a) over (ORDER BY a DESC
+RANGE BETWEEN UNBOUNDED PRECEDING
+AND 10 PRECEDING) as cnt
+from t1;
+pk a cnt
+1 1 5
+2 2 5
+3 4 5
+4 8 5
+5 26 3
+6 27 3
+7 40 2
+8 71 0
+9 72 0
+select
+pk, a,
+count(a) over (ORDER BY a
+RANGE BETWEEN UNBOUNDED PRECEDING
+AND 1 PRECEDING) as cnt
+from t1;
+pk a cnt
+1 1 0
+2 2 1
+3 4 2
+4 8 3
+5 26 4
+6 27 5
+7 40 6
+8 71 7
+9 72 8
+select
+pk, a,
+count(a) over (ORDER BY a
+RANGE BETWEEN 1 PRECEDING
+AND CURRENT ROW) as cnt
+from t1;
+pk a cnt
+1 1 1
+2 2 2
+3 4 1
+4 8 1
+5 26 1
+6 27 2
+7 40 1
+8 71 1
+9 72 2
+select
+pk, a,
+count(a) over (ORDER BY a DESC
+RANGE BETWEEN 1 PRECEDING
+AND CURRENT ROW) as cnt
+from t1;
+pk a cnt
+1 1 2
+2 2 1
+3 4 1
+4 8 1
+5 26 2
+6 27 1
+7 40 1
+8 71 2
+9 72 1
+select
+pk, a,
+count(a) over (ORDER BY a
+RANGE BETWEEN 1 FOLLOWING
+AND 3 FOLLOWING) as cnt
+from t1;
+pk a cnt
+1 1 2
+2 2 1
+3 4 0
+4 8 0
+5 26 1
+6 27 0
+7 40 0
+8 71 1
+9 72 0
+# Try CURRENT ROW with[out] DESC
+select
+pk, a,
+count(a) over (ORDER BY a
+RANGE BETWEEN CURRENT ROW
+AND 1 FOLLOWING) as cnt
+from t1;
+pk a cnt
+1 1 2
+2 2 1
+3 4 1
+4 8 1
+5 26 2
+6 27 1
+7 40 1
+8 71 2
+9 72 1
+select
+pk, a,
+count(a) over (order by a desc
+range between current row
+and 1 following) as cnt
+from t1;
+pk a cnt
+1 1 1
+2 2 2
+3 4 1
+4 8 1
+5 26 1
+6 27 2
+7 40 1
+8 71 1
+9 72 2
+insert into t1 select 22, pk, a from t1;
+select
+part_id, pk, a,
+count(a) over (PARTITION BY part_id
+ORDER BY a
+RANGE BETWEEN UNBOUNDED PRECEDING
+AND 10 FOLLOWING) as cnt
+from t1;
+part_id pk a cnt
+10 1 1 4
+10 2 2 4
+10 3 4 4
+10 4 8 4
+10 5 26 6
+10 6 27 6
+10 7 40 7
+10 8 71 9
+10 9 72 9
+22 1 1 4
+22 2 2 4
+22 3 4 4
+22 4 8 4
+22 5 26 6
+22 6 27 6
+22 7 40 7
+22 8 71 9
+22 9 72 9
+select
+pk, a,
+count(a) over (PARTITION BY part_id
+ORDER BY a
+RANGE BETWEEN UNBOUNDED PRECEDING
+AND 1 PRECEDING) as cnt
+from t1;
+pk a cnt
+1 1 0
+2 2 1
+3 4 2
+4 8 3
+5 26 4
+6 27 5
+7 40 6
+8 71 7
+9 72 8
+1 1 0
+2 2 1
+3 4 2
+4 8 3
+5 26 4
+6 27 5
+7 40 6
+8 71 7
+9 72 8
+drop table t1;
+# Try a RANGE frame over non-integer datatype:
+create table t1 (
+col1 int,
+a decimal(5,3)
+);
+insert into t1 values (1, 0.45);
+insert into t1 values (1, 0.5);
+insert into t1 values (1, 0.55);
+insert into t1 values (1, 1.21);
+insert into t1 values (1, 1.22);
+insert into t1 values (1, 3.33);
+select
+a,
+count(col1) over (order by a
+range between 0.1 preceding
+and 0.1 following)
+from t1;
+a count(col1) over (order by a
+range between 0.1 preceding
+and 0.1 following)
+0.450 3
+0.500 3
+0.550 3
+1.210 2
+1.220 2
+3.330 1
+drop table t1;
+#
+# RANGE-type frames and NULL values
+#
+create table t1 (
+pk int,
+a int,
+b int
+);
+insert into t1 values (1, NULL,1);
+insert into t1 values (2, NULL,1);
+insert into t1 values (3, NULL,1);
+insert into t1 values (4, 10 ,1);
+insert into t1 values (5, 11 ,1);
+insert into t1 values (6, 12 ,1);
+insert into t1 values (7, 13 ,1);
+insert into t1 values (8, 14 ,1);
+select
+pk, a,
+count(b) over (order by a
+range between 2 preceding
+and 2 following) as CNT
+from t1;
+pk a CNT
+1 NULL 3
+2 NULL 3
+3 NULL 3
+4 10 3
+5 11 4
+6 12 5
+7 13 4
+8 14 3
+drop table t1;
+#
+# Try ranges that have bound1 > bound2. The standard actually allows them
+#
+create table t0 (a int);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t1 (pk int, c int);
+insert into t1 select a+1,1 from t0;
+update t1 set c=2 where pk not in (1,2,3,4);
+select * from t1;
+pk c
+1 1
+2 1
+3 1
+4 1
+5 2
+6 2
+7 2
+8 2
+9 2
+10 2
+select
+pk, c,
+count(*) over (partition by c
+order by pk
+rows between 1 preceding
+and 2 preceding)
+as cnt
+from t1;
+pk c cnt
+1 1 0
+2 1 0
+3 1 0
+4 1 0
+5 2 0
+6 2 0
+7 2 0
+8 2 0
+9 2 0
+10 2 0
+select
+pk, c,
+count(*) over (partition by c
+order by pk
+range between 1 preceding
+and 2 preceding)
+as cnt
+from t1;
+pk c cnt
+1 1 0
+2 1 0
+3 1 0
+4 1 0
+5 2 0
+6 2 0
+7 2 0
+8 2 0
+9 2 0
+10 2 0
+drop table t0, t1;
+#
+# Error checking for frame bounds
+#
+create table t1 (a int, b int, c varchar(32));
+insert into t1 values (1,1,'foo');
+insert into t1 values (2,2,'bar');
+select
+count(*) over (order by a,b
+range between unbounded preceding and current row)
+from t1;
+ERROR HY000: RANGE-type frame requires ORDER BY clause with single sort key
+select
+count(*) over (order by c
+range between unbounded preceding and current row)
+from t1;
+ERROR HY000: Numeric datatype is required for RANGE-type frame
+select
+count(*) over (order by a
+range between 'abcd' preceding and current row)
+from t1;
+ERROR HY000: Numeric datatype is required for RANGE-type frame
+select
+count(*) over (order by a
+range between current row and 'foo' following)
+from t1;
+ERROR HY000: Numeric datatype is required for RANGE-type frame
+# Try range frame with invalid bounds
+select
+count(*) over (order by a
+rows between 0.5 preceding and current row)
+from t1;
+ERROR HY000: Integer is required for ROWS-type frame
+select
+count(*) over (order by a
+rows between current row and 3.14 following)
+from t1;
+ERROR HY000: Integer is required for ROWS-type frame
+#
+# EXCLUDE clause is parsed but not supported
+#
+select
+count(*) over (order by a
+rows between 1 preceding and 1 following
+exclude current row)
+from t1;
+ERROR HY000: Frame exclusion is not supported yet
+select
+count(*) over (order by a
+range between 1 preceding and 1 following
+exclude ties)
+from t1;
+ERROR HY000: Frame exclusion is not supported yet
+select
+count(*) over (order by a
+range between 1 preceding and 1 following
+exclude group)
+from t1;
+ERROR HY000: Frame exclusion is not supported yet
+select
+count(*) over (order by a
+rows between 1 preceding and 1 following
+exclude no others)
+from t1;
+count(*) over (order by a
+rows between 1 preceding and 1 following
+exclude no others)
+2
+2
+drop table t1;
+#
+# Window function in grouping query
+#
+create table t1 (
+username varchar(32),
+amount int
+);
+insert into t1 values
+('user1',1),
+('user1',5),
+('user1',3),
+('user2',10),
+('user2',20),
+('user2',30);
+select
+username,
+sum(amount) as s,
+rank() over (order by s desc)
+from t1
+group by username;
+username s rank() over (order by s desc)
+user1 9 2
+user2 60 1
+drop table t1;
+#
+# mdev-9719: Window function in prepared statement
+#
+create table t1(a int, b int, x char(32));
+insert into t1 values (2, 10, 'xx');
+insert into t1 values (2, 10, 'zz');
+insert into t1 values (2, 20, 'yy');
+insert into t1 values (3, 10, 'xxx');
+insert into t1 values (3, 20, 'vvv');
+prepare stmt from 'select a, row_number() over (partition by a order by b) from t1';
+execute stmt;
+a row_number() over (partition by a order by b)
+2 1
+2 2
+2 3
+3 1
+3 2
+drop table t1;
+#
+# mdev-9754: Window name resolution in prepared statement
+#
+create table t0 (a int);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t1 (pk int, c int);
+insert into t1 select a+1,1 from t0;
+update t1 set c=2 where pk not in (1,2,3,4);
+select * from t1;
+pk c
+1 1
+2 1
+3 1
+4 1
+5 2
+6 2
+7 2
+8 2
+9 2
+10 2
+prepare stmt from
+'select
+ pk, c,
+ count(*) over w1 as CNT
+from t1
+window w1 as (partition by c order by pk
+ rows between 2 preceding and 2 following)';
+execute stmt;
+pk c CNT
+1 1 3
+2 1 4
+3 1 4
+4 1 3
+5 2 3
+6 2 4
+7 2 5
+8 2 5
+9 2 4
+10 2 3
+drop table t0,t1;
+#
+# EXPLAIN FORMAT=JSON support for window functions
+#
+create table t0 (a int);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+explain format=json select rank() over (order by a) from t0;
+EXPLAIN
+{
+ "query_block": {
+ "select_id": 1,
+ "window_functions_computation": {
+ "sorts": {
+ "filesort": {
+ "sort_key": "t0.a"
+ }
+ },
+ "temporary_table": {
+ "table": {
+ "table_name": "t0",
+ "access_type": "ALL",
+ "rows": 10,
+ "filtered": 100
+ }
+ }
+ }
+ }
+}
+create table t1 (a int, b int, c int);
+insert into t1 select a,a,a from t0;
+explain format=json
+select
+a,
+rank() over (order by sum(b))
+from t1
+group by a;
+EXPLAIN
+{
+ "query_block": {
+ "select_id": 1,
+ "filesort": {
+ "sort_key": "t1.a",
+ "window_functions_computation": {
+ "sorts": {
+ "filesort": {
+ "sort_key": "sum(t1.b)"
+ }
+ },
+ "temporary_table": {
+ "table": {
+ "table_name": "t1",
+ "access_type": "ALL",
+ "rows": 10,
+ "filtered": 100
+ }
+ }
+ }
+ }
+ }
+}
+explain format=json
+select
+a,
+rank() over (order by sum(b))
+from t1
+group by a
+order by null;
+EXPLAIN
+{
+ "query_block": {
+ "select_id": 1,
+ "window_functions_computation": {
+ "sorts": {
+ "filesort": {
+ "sort_key": "sum(t1.b)"
+ }
+ },
+ "temporary_table": {
+ "table": {
+ "table_name": "t1",
+ "access_type": "ALL",
+ "rows": 10,
+ "filtered": 100
+ }
+ }
+ }
+ }
+}
+#
+# Check how window function works together with GROUP BY and HAVING
+#
+select b,max(a) as MX, rank() over (order by b) from t1 group by b having MX in (3,5,7);
+b MX rank() over (order by b)
+3 3 1
+5 5 2
+7 7 3
+explain format=json
+select b,max(a) as MX, rank() over (order by b) from t1 group by b having MX in (3,5,7);
+EXPLAIN
+{
+ "query_block": {
+ "select_id": 1,
+ "having_condition": "(MX in (3,5,7))",
+ "filesort": {
+ "sort_key": "t1.b",
+ "window_functions_computation": {
+ "sorts": {
+ "filesort": {
+ "sort_key": "t1.b"
+ }
+ },
+ "temporary_table": {
+ "table": {
+ "table_name": "t1",
+ "access_type": "ALL",
+ "rows": 10,
+ "filtered": 100
+ }
+ }
+ }
+ }
+ }
+}
+drop table t1;
+drop table t0;
+#
+# Building ordering index for window functions
+#
+create table t1 (
+pk int primary key,
+a int,
+b int,
+c int
+);
+insert into t1 values
+(101 , 0, 10, 1),
+(102 , 0, 10, 2),
+(103 , 1, 10, 3),
+(104 , 1, 10, 4),
+(108 , 2, 10, 5),
+(105 , 2, 20, 6),
+(106 , 2, 20, 7),
+(107 , 2, 20, 8),
+(109 , 4, 20, 9),
+(110 , 4, 20, 10),
+(111 , 5, NULL, 11),
+(112 , 5, 1, 12),
+(113 , 5, NULL, 13),
+(114 , 5, NULL, 14),
+(115 , 5, NULL, 15),
+(116 , 6, 1, NULL),
+(117 , 6, 1, 10),
+(118 , 6, 1, 1),
+(119 , 6, 1, NULL),
+(120 , 6, 1, NULL),
+(121 , 6, 1, NULL),
+(122 , 6, 1, 2),
+(123 , 6, 1, 20),
+(124 , 6, 1, -10),
+(125 , 6, 1, NULL),
+(126 , 6, 1, NULL),
+(127 , 6, 1, NULL);
+select sum(b) over (partition by a order by b,pk
+rows between unbounded preceding and current row) as c1,
+avg(b) over (w1 rows between 1 preceding and 1 following) as c2,
+sum(c) over (w2 rows between 1 preceding and 1 following) as c5,
+avg(b) over (w1 rows between 5 preceding and 5 following) as c3,
+sum(b) over (w1 rows between 1 preceding and 1 following) as c4
+from t1
+window w1 as (partition by a order by b,pk),
+w2 as (partition by b order by c,pk);
+c1 c2 c5 c3 c4
+1 1.0000 42 1.0000 1
+1 1.0000 NULL 1.0000 2
+10 1.0000 NULL 1.0000 3
+10 10.0000 3 10.0000 20
+10 10.0000 9 10.0000 20
+10 15.0000 9 17.5000 30
+11 1.0000 NULL 1.0000 3
+12 1.0000 -10 1.0000 2
+2 1.0000 24 1.0000 3
+20 10.0000 12 10.0000 20
+20 10.0000 6 10.0000 20
+20 20.0000 27 20.0000 40
+3 1.0000 -7 1.0000 3
+30 16.6667 13 17.5000 50
+4 1.0000 NULL 1.0000 3
+40 20.0000 19 20.0000 40
+5 1.0000 NULL 1.0000 3
+50 20.0000 21 17.5000 60
+6 1.0000 NULL 1.0000 3
+7 1.0000 13 1.0000 3
+70 20.0000 24 17.5000 40
+8 1.0000 32 1.0000 3
+9 1.0000 -9 1.0000 3
+NULL 1.0000 29 1.0000 1
+NULL NULL 24 1.0000 NULL
+NULL NULL 38 1.0000 NULL
+NULL NULL 42 1.0000 NULL
+drop table t1;
+#
+# MDEV-9848: Window functions: reuse sorting and/or scanning
+#
+create table t1 (a int, b int, c int);
+insert into t1 values
+(1,3,1),
+(2,2,1),
+(3,1,1);
+# Check using counters
+flush status;
+select
+rank() over (partition by c order by a),
+rank() over (partition by c order by b)
+from t1;
+rank() over (partition by c order by a) rank() over (partition by c order by b)
+1 3
+2 2
+3 1
+show status like '%sort%';
+Variable_name Value
+Sort_merge_passes 0
+Sort_priority_queue_sorts 0
+Sort_range 0
+Sort_rows 6
+Sort_scan 2
+flush status;
+select
+rank() over (partition by c order by a),
+rank() over (partition by c order by a)
+from t1;
+rank() over (partition by c order by a) rank() over (partition by c order by a)
+1 1
+2 2
+3 3
+show status like '%sort%';
+Variable_name Value
+Sort_merge_passes 0
+Sort_priority_queue_sorts 0
+Sort_range 0
+Sort_rows 3
+Sort_scan 1
+explain format=json
+select
+rank() over (partition by c order by a),
+rank() over (partition by c order by a)
+from t1;
+EXPLAIN
+{
+ "query_block": {
+ "select_id": 1,
+ "window_functions_computation": {
+ "sorts": {
+ "filesort": {
+ "sort_key": "t1.c, t1.a"
+ }
+ },
+ "temporary_table": {
+ "table": {
+ "table_name": "t1",
+ "access_type": "ALL",
+ "rows": 3,
+ "filtered": 100
+ }
+ }
+ }
+ }
+}
+explain format=json
+select
+rank() over (order by a),
+row_number() over (order by a)
+from t1;
+EXPLAIN
+{
+ "query_block": {
+ "select_id": 1,
+ "window_functions_computation": {
+ "sorts": {
+ "filesort": {
+ "sort_key": "t1.a"
+ }
+ },
+ "temporary_table": {
+ "table": {
+ "table_name": "t1",
+ "access_type": "ALL",
+ "rows": 3,
+ "filtered": 100
+ }
+ }
+ }
+ }
+}
+explain format=json
+select
+rank() over (partition by c order by a),
+count(*) over (partition by c)
+from t1;
+EXPLAIN
+{
+ "query_block": {
+ "select_id": 1,
+ "window_functions_computation": {
+ "sorts": {
+ "filesort": {
+ "sort_key": "t1.c, t1.a"
+ }
+ },
+ "temporary_table": {
+ "table": {
+ "table_name": "t1",
+ "access_type": "ALL",
+ "rows": 3,
+ "filtered": 100
+ }
+ }
+ }
+ }
+}
+explain format=json
+select
+count(*) over (partition by c),
+rank() over (partition by c order by a)
+from t1;
+EXPLAIN
+{
+ "query_block": {
+ "select_id": 1,
+ "window_functions_computation": {
+ "sorts": {
+ "filesort": {
+ "sort_key": "t1.c, t1.a"
+ }
+ },
+ "temporary_table": {
+ "table": {
+ "table_name": "t1",
+ "access_type": "ALL",
+ "rows": 3,
+ "filtered": 100
+ }
+ }
+ }
+ }
+}
+drop table t1;
+#
+# MDEV-9847: Window functions: crash with big_tables=1
+#
+create table t1(a int);
+insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+set @tmp=@@big_tables;
+set big_tables=1;
+select rank() over (order by a) from t1;
+rank() over (order by a)
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+set big_tables=@tmp;
+drop table t1;
+#
+# Check if "ORDER BY window_func" works
+#
+create table t1 (s1 int, s2 char(5));
+insert into t1 values (1,'a');
+insert into t1 values (null,null);
+insert into t1 values (1,null);
+insert into t1 values (null,'a');
+insert into t1 values (2,'b');
+insert into t1 values (-1,'');
+explain format=json
+select *, row_number() over (order by s1, s2) as X from t1 order by X desc;
+EXPLAIN
+{
+ "query_block": {
+ "select_id": 1,
+ "filesort": {
+ "sort_key": "X",
+ "window_functions_computation": {
+ "sorts": {
+ "filesort": {
+ "sort_key": "t1.s1, t1.s2"
+ }
+ },
+ "temporary_table": {
+ "table": {
+ "table_name": "t1",
+ "access_type": "ALL",
+ "rows": 6,
+ "filtered": 100
+ }
+ }
+ }
+ }
+ }
+}
+select *, row_number() over (order by s1, s2) as X from t1 order by X desc;
+s1 s2 X
+2 b 6
+1 a 5
+1 NULL 4
+-1 3
+NULL a 2
+NULL NULL 1
+drop table t1;
+#
+# Try window functions that are not directly present in the select list
+#
+create table t1 (a int, b int);
+insert into t1 values
+(1,3),
+(2,2),
+(3,1);
+select
+rank() over (order by a) -
+rank() over (order by b)
+from
+t1;
+rank() over (order by a) -
+rank() over (order by b)
+0
+0
+0
+drop table t1;
+#
+# MDEV-9894: Assertion `0' failed in Window_func_runner::setup
+# return ER_NOT_SUPPORTED_YET for aggregates that are not yet supported
+# as window functions.
+#
+create table t1 (i int);
+insert into t1 values (1),(2);
+SELECT MAX(i) OVER (PARTITION BY (i)) FROM t1;
+ERROR 42000: This version of MariaDB doesn't yet support 'This aggregate as window function'
+drop table t1;
+#
+# Check the 0 in ROWS 0 PRECEDING
+#
+create table t1 (
+part_id int,
+pk int,
+a int
+);
+insert into t1 values (1, 1, 1);
+insert into t1 values (1, 2, 2);
+insert into t1 values (1, 3, 4);
+insert into t1 values (1, 4, 8);
+select
+pk, a,
+sum(a) over (order by pk rows between 0 preceding and current row)
+from t1;
+pk a sum(a) over (order by pk rows between 0 preceding and current row)
+1 1 1
+2 2 2
+3 4 4
+4 8 8
+select
+pk, a,
+sum(a) over (order by pk rows between 1 preceding and 0 preceding)
+from t1;
+pk a sum(a) over (order by pk rows between 1 preceding and 0 preceding)
+1 1 1
+2 2 3
+3 4 6
+4 8 12
+insert into t1 values (200, 1, 1);
+insert into t1 values (200, 2, 2);
+insert into t1 values (200, 3, 4);
+insert into t1 values (200, 4, 8);
+select
+part_id, pk, a,
+sum(a) over (partition by part_id order by pk rows between 0 preceding and current row)
+from t1;
+part_id pk a sum(a) over (partition by part_id order by pk rows between 0 preceding and current row)
+1 1 1 1
+1 2 2 2
+1 3 4 4
+1 4 8 8
+200 1 1 1
+200 2 2 2
+200 3 4 4
+200 4 8 8
+select
+part_id, pk, a,
+sum(a) over (partition by part_id order by pk rows between 1 preceding and 0 preceding)
+from t1;
+part_id pk a sum(a) over (partition by part_id order by pk rows between 1 preceding and 0 preceding)
+1 1 1 1
+1 2 2 3
+1 3 4 6
+1 4 8 12
+200 1 1 1
+200 2 2 3
+200 3 4 6
+200 4 8 12
+drop table t1;
+#
+# MDEV-9780, The "DISTINCT must not bet converted into GROUP BY when
+# window functions are present" part
+#
+create table t1 (part_id int, a int);
+insert into t1 values
+(100, 1),
+(100, 2),
+(100, 2),
+(100, 3),
+(2000, 1),
+(2000, 2),
+(2000, 3),
+(2000, 3),
+(2000, 3);
+select rank() over (partition by part_id order by a) from t1;
+rank() over (partition by part_id order by a)
+1
+2
+2
+4
+1
+2
+3
+3
+3
+select distinct rank() over (partition by part_id order by a) from t1;
+rank() over (partition by part_id order by a)
+1
+2
+4
+3
+explain format=json
+select distinct rank() over (partition by part_id order by a) from t1;
+EXPLAIN
+{
+ "query_block": {
+ "select_id": 1,
+ "duplicate_removal": {
+ "window_functions_computation": {
+ "sorts": {
+ "filesort": {
+ "sort_key": "t1.part_id, t1.a"
+ }
+ },
+ "temporary_table": {
+ "table": {
+ "table_name": "t1",
+ "access_type": "ALL",
+ "rows": 9,
+ "filtered": 100
+ }
+ }
+ }
+ }
+ }
+}
+drop table t1;
+#
+# MDEV-9893: Window functions with different ORDER BY lists,
+# one of these lists containing an expression
+#
+create table t1 (s1 int, s2 char(5));
+insert into t1 values (1,'a');
+insert into t1 values (null,null);
+insert into t1 values (3,null);
+insert into t1 values (4,'a');
+insert into t1 values (2,'b');
+insert into t1 values (-1,'');
+select
+*,
+ROW_NUMBER() OVER (order by s1),
+CUME_DIST() OVER (order by -s1)
+from t1;
+s1 s2 ROW_NUMBER() OVER (order by s1) CUME_DIST() OVER (order by -s1)
+1 a 3 0.8333333333
+NULL NULL 1 0.1666666667
+3 NULL 5 0.5000000000
+4 a 6 0.3333333333
+2 b 4 0.6666666667
+-1 2 1.0000000000
+drop table t1;
+#
+# MDEV-9925: Wrong result with aggregate function as a window function
+#
+create table t1 (i int);
+insert into t1 values (1),(2);
+select i, sum(i) over (partition by i) from t1;
+i sum(i) over (partition by i)
+1 1
+2 2
+drop table t1;
+#
+# MDEV-9922: Assertion `!join->only_const_tables() && fsort' failed in int create_sort_index
+#
+create view v1 as select 1 as i;
+select rank() over (order by i) from v1;
+rank() over (order by i)
+1
+drop view v1;
diff --git a/mysql-test/r/win_avg.result b/mysql-test/r/win_avg.result
new file mode 100644
index 00000000000..7e539d933d8
--- /dev/null
+++ b/mysql-test/r/win_avg.result
@@ -0,0 +1,95 @@
+create table t1 (
+pk int primary key,
+a int,
+b int,
+c real
+);
+insert into t1 values
+(101 , 0, 10, 1.1),
+(102 , 0, 10, 2.1),
+(103 , 1, 10, 3.1),
+(104 , 1, 10, 4.1),
+(108 , 2, 10, 5.1),
+(105 , 2, 20, 6.1),
+(106 , 2, 20, 7.1),
+(107 , 2, 20, 8.15),
+(109 , 4, 20, 9.15),
+(110 , 4, 20, 10.15),
+(111 , 5, NULL, 11.15),
+(112 , 5, 1, 12.25),
+(113 , 5, NULL, 13.35),
+(114 , 5, NULL, 14.50),
+(115 , 5, NULL, 15.65),
+(116 , 6, 1, NULL),
+(117 , 6, 1, 10),
+(118 , 6, 1, 1.1),
+(119 , 6, 1, NULL),
+(120 , 6, 1, NULL),
+(121 , 6, 1, NULL),
+(122 , 6, 1, 2.2),
+(123 , 6, 1, 20.1),
+(124 , 6, 1, -10.4),
+(125 , 6, 1, NULL),
+(126 , 6, 1, NULL),
+(127 , 6, 1, NULL);
+select pk, a, b, avg(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)
+from t1;
+pk a b avg(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)
+101 0 10 10.0000
+102 0 10 10.0000
+103 1 10 10.0000
+104 1 10 10.0000
+105 2 20 20.0000
+106 2 20 20.0000
+107 2 20 16.6667
+108 2 10 15.0000
+109 4 20 20.0000
+110 4 20 20.0000
+111 5 NULL 1.0000
+112 5 1 1.0000
+113 5 NULL 1.0000
+114 5 NULL NULL
+115 5 NULL NULL
+116 6 1 1.0000
+117 6 1 1.0000
+118 6 1 1.0000
+119 6 1 1.0000
+120 6 1 1.0000
+121 6 1 1.0000
+122 6 1 1.0000
+123 6 1 1.0000
+124 6 1 1.0000
+125 6 1 1.0000
+126 6 1 1.0000
+127 6 1 1.0000
+select pk, a, c, avg(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)
+from t1;
+pk a c avg(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)
+101 0 1.1 1.6
+102 0 2.1 1.6
+103 1 3.1 3.5999999999999996
+104 1 4.1 3.5999999999999996
+105 2 6.1 6.6
+106 2 7.1 7.116666666666667
+107 2 8.15 6.783333333333334
+108 2 5.1 6.625000000000001
+109 4 9.15 9.65
+110 4 10.15 9.65
+111 5 11.15 11.7
+112 5 12.25 12.25
+113 5 13.35 13.366666666666667
+114 5 14.5 14.5
+115 5 15.65 15.075
+116 6 NULL 10
+117 6 10 5.55
+118 6 1.1 5.55
+119 6 NULL 1.0999999999999996
+120 6 NULL NULL
+121 6 NULL 2.1999999999999997
+122 6 2.2 11.15
+123 6 20.1 3.966666666666667
+124 6 -10.4 4.85
+125 6 NULL -10.400000000000002
+126 6 NULL NULL
+127 6 NULL NULL
+drop table t1;
diff --git a/mysql-test/r/win_bit.result b/mysql-test/r/win_bit.result
new file mode 100644
index 00000000000..ac7625beb90
--- /dev/null
+++ b/mysql-test/r/win_bit.result
@@ -0,0 +1,117 @@
+create table t1 (
+pk int primary key,
+a int,
+b int
+);
+create table t2 (
+pk int primary key,
+a int,
+b int
+);
+insert into t1 values
+( 1 , 0, 1),
+( 2 , 0, 2),
+( 3 , 1, 4),
+( 4 , 1, 8),
+( 5 , 2, 32),
+( 6 , 2, 64),
+( 7 , 2, 128),
+( 8 , 2, 16);
+insert into t2 values
+( 1 , 0, 2),
+( 2 , 0, 2),
+( 3 , 1, 4),
+( 4 , 1, 4),
+( 5 , 2, 16),
+( 6 , 2, 64),
+( 7 , 2, 128),
+( 8 , 2, 16);
+# Test bit functions on only one partition.
+select pk, a, b,
+bit_or(b) over (order by pk) as bit_or,
+bit_and(b) over (order by pk) as bit_and,
+bit_xor(b) over (order by pk) as bit_xor
+from t1;
+pk a b bit_or bit_and bit_xor
+1 0 1 1 1 1
+2 0 2 3 0 3
+3 1 4 7 0 7
+4 1 8 15 0 15
+5 2 32 47 0 47
+6 2 64 111 0 111
+7 2 128 239 0 239
+8 2 16 255 0 255
+select pk, a, b,
+bit_or(b) over (order by pk) as bit_or,
+bit_and(b) over (order by pk) as bit_and,
+bit_xor(b) over (order by pk) as bit_xor
+from t2;
+pk a b bit_or bit_and bit_xor
+1 0 2 2 2 2
+2 0 2 2 2 0
+3 1 4 6 0 4
+4 1 4 6 0 0
+5 2 16 22 0 16
+6 2 64 86 0 80
+7 2 128 214 0 208
+8 2 16 214 0 192
+# Test multiple partitions with bit functions.
+select pk, a, b,
+bit_or(b) over (partition by a order by pk) as bit_or,
+bit_and(b) over (partition by a order by pk) as bit_and,
+bit_xor(b) over (partition by a order by pk) as bit_xor
+from t1;
+pk a b bit_or bit_and bit_xor
+1 0 1 1 1 1
+2 0 2 3 0 3
+3 1 4 4 4 4
+4 1 8 12 0 12
+5 2 32 32 32 32
+6 2 64 96 0 96
+7 2 128 224 0 224
+8 2 16 240 0 240
+select pk, a, b,
+bit_or(b) over (partition by a order by pk) as bit_or,
+bit_and(b) over (partition by a order by pk) as bit_and,
+bit_xor(b) over (partition by a order by pk) as bit_xor
+from t2;
+pk a b bit_or bit_and bit_xor
+1 0 2 2 2 2
+2 0 2 2 2 0
+3 1 4 4 4 4
+4 1 4 4 4 0
+5 2 16 16 16 16
+6 2 64 80 0 80
+7 2 128 208 0 208
+8 2 16 208 0 192
+# Test remove function for bit functions using a sliding window.
+select pk, a, b,
+bit_or(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) as bit_or,
+bit_and(b) over (partition by a order by pk) as bit_and,
+bit_xor(b) over (partition by a order by pk) as bit_xor
+from t1;
+pk a b bit_or bit_and bit_xor
+1 0 1 3 1 1
+2 0 2 3 0 3
+3 1 4 12 4 4
+4 1 8 12 0 12
+5 2 32 96 32 32
+6 2 64 224 0 96
+7 2 128 208 0 224
+8 2 16 144 0 240
+select pk, a, b,
+bit_or(b) over (partition by a order by pk) as bit_or,
+bit_and(b) over (partition by a order by pk) as bit_and,
+bit_xor(b) over (partition by a order by pk) as bit_xor
+from t2;
+pk a b bit_or bit_and bit_xor
+1 0 2 2 2 2
+2 0 2 2 2 0
+3 1 4 4 4 4
+4 1 4 4 4 0
+5 2 16 16 16 16
+6 2 64 80 0 80
+7 2 128 208 0 208
+8 2 16 208 0 192
+drop table t1;
+drop table t2;
diff --git a/mysql-test/r/win_ntile.result b/mysql-test/r/win_ntile.result
new file mode 100644
index 00000000000..41cb1a594bf
--- /dev/null
+++ b/mysql-test/r/win_ntile.result
@@ -0,0 +1,435 @@
+create table t1 (
+pk int primary key,
+a int,
+b int
+);
+insert into t1 values
+(11 , 0, 10),
+(12 , 0, 10),
+(13 , 1, 10),
+(14 , 1, 10),
+(18 , 2, 10),
+(15 , 2, 20),
+(16 , 2, 20),
+(17 , 2, 20),
+(19 , 4, 20),
+(20 , 4, 20);
+select pk, a, b, ntile(-1) over (order by a)
+from t1;
+ERROR HY000: Argument of NTILE must be greater than 0
+select pk, a, b,
+ntile(0) over (order by a)
+from t1;
+ERROR HY000: Argument of NTILE must be greater than 0
+select pk, a, b,
+ntile(1) over (order by pk)
+from t1;
+pk a b ntile(1) over (order by pk)
+11 0 10 1
+12 0 10 1
+13 1 10 1
+14 1 10 1
+15 2 20 1
+16 2 20 1
+17 2 20 1
+18 2 10 1
+19 4 20 1
+20 4 20 1
+select pk, a, b,
+ntile(2) over (order by pk)
+from t1;
+pk a b ntile(2) over (order by pk)
+11 0 10 1
+12 0 10 1
+13 1 10 1
+14 1 10 1
+15 2 20 1
+16 2 20 2
+17 2 20 2
+18 2 10 2
+19 4 20 2
+20 4 20 2
+select pk, a, b,
+ntile(3) over (order by pk)
+from t1;
+pk a b ntile(3) over (order by pk)
+11 0 10 1
+12 0 10 1
+13 1 10 1
+14 1 10 1
+15 2 20 2
+16 2 20 2
+17 2 20 2
+18 2 10 3
+19 4 20 3
+20 4 20 3
+select pk, a, b,
+ntile(4) over (order by pk)
+from t1;
+pk a b ntile(4) over (order by pk)
+11 0 10 1
+12 0 10 1
+13 1 10 1
+14 1 10 2
+15 2 20 2
+16 2 20 2
+17 2 20 3
+18 2 10 3
+19 4 20 4
+20 4 20 4
+select pk, a, b,
+ntile(5) over (order by pk)
+from t1;
+pk a b ntile(5) over (order by pk)
+11 0 10 1
+12 0 10 1
+13 1 10 2
+14 1 10 2
+15 2 20 3
+16 2 20 3
+17 2 20 4
+18 2 10 4
+19 4 20 5
+20 4 20 5
+select pk, a, b,
+ntile(6) over (order by pk)
+from t1;
+pk a b ntile(6) over (order by pk)
+11 0 10 1
+12 0 10 1
+13 1 10 2
+14 1 10 2
+15 2 20 3
+16 2 20 3
+17 2 20 4
+18 2 10 4
+19 4 20 5
+20 4 20 6
+select pk, a, b,
+ntile(7) over (order by pk)
+from t1;
+pk a b ntile(7) over (order by pk)
+11 0 10 1
+12 0 10 1
+13 1 10 2
+14 1 10 2
+15 2 20 3
+16 2 20 3
+17 2 20 4
+18 2 10 5
+19 4 20 6
+20 4 20 7
+select pk, a, b,
+ntile(8) over (order by pk)
+from t1;
+pk a b ntile(8) over (order by pk)
+11 0 10 1
+12 0 10 1
+13 1 10 2
+14 1 10 2
+15 2 20 3
+16 2 20 4
+17 2 20 5
+18 2 10 6
+19 4 20 7
+20 4 20 8
+select pk, a, b,
+ntile(9) over (order by pk)
+from t1;
+pk a b ntile(9) over (order by pk)
+11 0 10 1
+12 0 10 1
+13 1 10 2
+14 1 10 3
+15 2 20 4
+16 2 20 5
+17 2 20 6
+18 2 10 7
+19 4 20 8
+20 4 20 9
+select pk, a, b,
+ntile(10) over (order by pk)
+from t1;
+pk a b ntile(10) over (order by pk)
+11 0 10 1
+12 0 10 2
+13 1 10 3
+14 1 10 4
+15 2 20 5
+16 2 20 6
+17 2 20 7
+18 2 10 8
+19 4 20 9
+20 4 20 10
+select pk, a, b,
+ntile(11) over (order by pk)
+from t1;
+pk a b ntile(11) over (order by pk)
+11 0 10 1
+12 0 10 2
+13 1 10 3
+14 1 10 4
+15 2 20 5
+16 2 20 6
+17 2 20 7
+18 2 10 8
+19 4 20 9
+20 4 20 10
+select pk, a, b,
+ntile(20) over (order by pk)
+from t1;
+pk a b ntile(20) over (order by pk)
+11 0 10 1
+12 0 10 2
+13 1 10 3
+14 1 10 4
+15 2 20 5
+16 2 20 6
+17 2 20 7
+18 2 10 8
+19 4 20 9
+20 4 20 10
+select pk, a, b,
+ntile(1) over (partition by b order by pk)
+from t1;
+pk a b ntile(1) over (partition by b order by pk)
+11 0 10 1
+12 0 10 1
+13 1 10 1
+14 1 10 1
+18 2 10 1
+15 2 20 1
+16 2 20 1
+17 2 20 1
+19 4 20 1
+20 4 20 1
+select pk, a, b,
+ntile(2) over (partition by b order by pk)
+from t1;
+pk a b ntile(2) over (partition by b order by pk)
+11 0 10 1
+12 0 10 1
+13 1 10 1
+14 1 10 2
+18 2 10 2
+15 2 20 1
+16 2 20 1
+17 2 20 1
+19 4 20 2
+20 4 20 2
+select pk, a, b,
+ntile(3) over (partition by b order by pk)
+from t1;
+pk a b ntile(3) over (partition by b order by pk)
+11 0 10 1
+12 0 10 1
+13 1 10 2
+14 1 10 2
+18 2 10 3
+15 2 20 1
+16 2 20 1
+17 2 20 2
+19 4 20 2
+20 4 20 3
+select pk, a, b,
+ntile(4) over (partition by b order by pk)
+from t1;
+pk a b ntile(4) over (partition by b order by pk)
+11 0 10 1
+12 0 10 1
+13 1 10 2
+14 1 10 3
+18 2 10 4
+15 2 20 1
+16 2 20 1
+17 2 20 2
+19 4 20 3
+20 4 20 4
+select pk, a, b,
+ntile(5) over (partition by b order by pk)
+from t1;
+pk a b ntile(5) over (partition by b order by pk)
+11 0 10 1
+12 0 10 2
+13 1 10 3
+14 1 10 4
+18 2 10 5
+15 2 20 1
+16 2 20 2
+17 2 20 3
+19 4 20 4
+20 4 20 5
+select pk, a, b,
+ntile(6) over (partition by b order by pk)
+from t1;
+pk a b ntile(6) over (partition by b order by pk)
+11 0 10 1
+12 0 10 2
+13 1 10 3
+14 1 10 4
+18 2 10 5
+15 2 20 1
+16 2 20 2
+17 2 20 3
+19 4 20 4
+20 4 20 5
+select pk, a, b,
+ntile(7) over (partition by b order by pk)
+from t1;
+pk a b ntile(7) over (partition by b order by pk)
+11 0 10 1
+12 0 10 2
+13 1 10 3
+14 1 10 4
+18 2 10 5
+15 2 20 1
+16 2 20 2
+17 2 20 3
+19 4 20 4
+20 4 20 5
+select pk, a, b,
+ntile(8) over (partition by b order by pk)
+from t1;
+pk a b ntile(8) over (partition by b order by pk)
+11 0 10 1
+12 0 10 2
+13 1 10 3
+14 1 10 4
+18 2 10 5
+15 2 20 1
+16 2 20 2
+17 2 20 3
+19 4 20 4
+20 4 20 5
+select pk, a, b,
+ntile(9) over (partition by b order by pk)
+from t1;
+pk a b ntile(9) over (partition by b order by pk)
+11 0 10 1
+12 0 10 2
+13 1 10 3
+14 1 10 4
+18 2 10 5
+15 2 20 1
+16 2 20 2
+17 2 20 3
+19 4 20 4
+20 4 20 5
+select pk, a, b,
+ntile(10) over (partition by b order by pk)
+from t1;
+pk a b ntile(10) over (partition by b order by pk)
+11 0 10 1
+12 0 10 2
+13 1 10 3
+14 1 10 4
+18 2 10 5
+15 2 20 1
+16 2 20 2
+17 2 20 3
+19 4 20 4
+20 4 20 5
+select pk, a, b,
+ntile(11) over (partition by b order by pk)
+from t1;
+pk a b ntile(11) over (partition by b order by pk)
+11 0 10 1
+12 0 10 2
+13 1 10 3
+14 1 10 4
+18 2 10 5
+15 2 20 1
+16 2 20 2
+17 2 20 3
+19 4 20 4
+20 4 20 5
+select pk, a, b,
+ntile(20) over (partition by b order by pk)
+from t1;
+pk a b ntile(20) over (partition by b order by pk)
+11 0 10 1
+12 0 10 2
+13 1 10 3
+14 1 10 4
+18 2 10 5
+15 2 20 1
+16 2 20 2
+17 2 20 3
+19 4 20 4
+20 4 20 5
+select pk, a, b,
+ntile(1 + 3) over (partition by b order by pk)
+from t1;
+pk a b ntile(1 + 3) over (partition by b order by pk)
+11 0 10 1
+12 0 10 1
+13 1 10 2
+14 1 10 3
+18 2 10 4
+15 2 20 1
+16 2 20 1
+17 2 20 2
+19 4 20 3
+20 4 20 4
+select pk, a, b,
+ntile((select 4)) over (partition by b order by pk)
+from t1;
+pk a b ntile((select 4)) over (partition by b order by pk)
+11 0 10 1
+12 0 10 1
+13 1 10 2
+14 1 10 3
+18 2 10 4
+15 2 20 1
+16 2 20 1
+17 2 20 2
+19 4 20 3
+20 4 20 4
+select t1.a from t1 where pk = 11;
+a
+0
+select pk, a, b,
+ntile((select a from t1 where pk=11)) over (partition by b order by pk)
+from t1;
+ERROR HY000: Argument of NTILE must be greater than 0
+select t1.a from t1 where pk = 13;
+a
+1
+select pk, a, b,
+ntile((select a from t1 where pk=13)) over (partition by b order by pk)
+from t1;
+pk a b ntile((select a from t1 where pk=13)) over (partition by b order by pk)
+11 0 10 1
+12 0 10 1
+13 1 10 1
+14 1 10 1
+18 2 10 1
+15 2 20 1
+16 2 20 1
+17 2 20 1
+19 4 20 1
+20 4 20 1
+explain
+select pk, a, b,
+ntile((select a from t1 where pk=13)) over (partition by b order by pk)
+from t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 10 Using temporary
+2 SUBQUERY t1 const PRIMARY PRIMARY 4 const 1
+select a from t1;
+a
+0
+0
+1
+1
+2
+2
+2
+2
+4
+4
+select pk, a, b,
+ntile((select a from t1)) over (partition by b order by pk)
+from t1;
+ERROR 21000: Subquery returns more than 1 row
+drop table t1;
diff --git a/mysql-test/r/win_orderby.result b/mysql-test/r/win_orderby.result
new file mode 100644
index 00000000000..bf4a40a4db3
--- /dev/null
+++ b/mysql-test/r/win_orderby.result
@@ -0,0 +1,26 @@
+drop table if exists t0,t1;
+create table t0(a int primary key);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t1(
+pk int,
+a int,
+key(pk)
+);
+insert into t1
+select
+A.a + B.a* 10 + C.a * 100,
+1
+from t0 A, t0 B, t0 C;
+select
+pk,
+count(a) over (order by pk rows between 2 preceding and 2 following)
+from t1
+where pk between 1 and 30
+order by pk desc
+limit 4;
+pk count(a) over (order by pk rows between 2 preceding and 2 following)
+30 3
+29 4
+28 5
+27 5
+drop table t0,t1;
diff --git a/mysql-test/r/win_percent_cume.result b/mysql-test/r/win_percent_cume.result
new file mode 100644
index 00000000000..d38c95c9ea7
--- /dev/null
+++ b/mysql-test/r/win_percent_cume.result
@@ -0,0 +1,62 @@
+create table t1 (
+pk int primary key,
+a int,
+b int
+);
+insert into t1 values
+( 1 , 0, 10),
+( 2 , 0, 10),
+( 3 , 1, 10),
+( 4 , 1, 10),
+( 8 , 2, 10),
+( 5 , 2, 20),
+( 6 , 2, 20),
+( 7 , 2, 20),
+( 9 , 4, 20),
+(10 , 4, 20);
+select pk, a, b,
+percent_rank() over (order by a),
+cume_dist() over (order by a)
+from t1;
+pk a b percent_rank() over (order by a) cume_dist() over (order by a)
+1 0 10 0.0000000000 0.2000000000
+2 0 10 0.0000000000 0.2000000000
+3 1 10 0.2222222222 0.4000000000
+4 1 10 0.2222222222 0.4000000000
+8 2 10 0.4444444444 0.8000000000
+5 2 20 0.4444444444 0.8000000000
+6 2 20 0.4444444444 0.8000000000
+7 2 20 0.4444444444 0.8000000000
+9 4 20 0.8888888889 1.0000000000
+10 4 20 0.8888888889 1.0000000000
+select pk, a, b,
+percent_rank() over (order by pk),
+cume_dist() over (order by pk)
+from t1 order by pk;
+pk a b percent_rank() over (order by pk) cume_dist() over (order by pk)
+1 0 10 0.0000000000 0.1000000000
+2 0 10 0.1111111111 0.2000000000
+3 1 10 0.2222222222 0.3000000000
+4 1 10 0.3333333333 0.4000000000
+5 2 20 0.4444444444 0.5000000000
+6 2 20 0.5555555556 0.6000000000
+7 2 20 0.6666666667 0.7000000000
+8 2 10 0.7777777778 0.8000000000
+9 4 20 0.8888888889 0.9000000000
+10 4 20 1.0000000000 1.0000000000
+select pk, a, b,
+percent_rank() over (partition by a order by a),
+cume_dist() over (partition by a order by a)
+from t1;
+pk a b percent_rank() over (partition by a order by a) cume_dist() over (partition by a order by a)
+1 0 10 0.0000000000 1.0000000000
+2 0 10 0.0000000000 1.0000000000
+3 1 10 0.0000000000 1.0000000000
+4 1 10 0.0000000000 1.0000000000
+8 2 10 0.0000000000 1.0000000000
+5 2 20 0.0000000000 1.0000000000
+6 2 20 0.0000000000 1.0000000000
+7 2 20 0.0000000000 1.0000000000
+9 4 20 0.0000000000 1.0000000000
+10 4 20 0.0000000000 1.0000000000
+drop table t1;
diff --git a/mysql-test/r/win_rank.result b/mysql-test/r/win_rank.result
new file mode 100644
index 00000000000..725683d3869
--- /dev/null
+++ b/mysql-test/r/win_rank.result
@@ -0,0 +1,104 @@
+#
+# Try DENSE_RANK() function
+#
+create table t1 (
+pk int primary key,
+a int,
+b int
+);
+insert into t1 values
+( 1 , 0, 10),
+( 2 , 0, 10),
+( 3 , 1, 10),
+( 4 , 1, 10),
+( 8 , 2, 10),
+( 5 , 2, 20),
+( 6 , 2, 20),
+( 7 , 2, 20),
+( 9 , 4, 20),
+(10 , 4, 20);
+select pk, a, b, rank() over (order by a) as rank,
+dense_rank() over (order by a) as dense_rank
+from t1;
+pk a b rank dense_rank
+1 0 10 1 1
+2 0 10 1 1
+3 1 10 3 2
+4 1 10 3 2
+8 2 10 5 3
+5 2 20 5 3
+6 2 20 5 3
+7 2 20 5 3
+9 4 20 9 4
+10 4 20 9 4
+select pk, a, b, rank() over (partition by b order by a) as rank,
+dense_rank() over (partition by b order by a) as dense_rank
+from t1;
+pk a b rank dense_rank
+1 0 10 1 1
+2 0 10 1 1
+3 1 10 3 2
+4 1 10 3 2
+8 2 10 5 3
+5 2 20 1 1
+6 2 20 1 1
+7 2 20 1 1
+9 4 20 4 2
+10 4 20 4 2
+drop table t1;
+#
+# Test with null values in the table.
+#
+create table t2 (s1 int, s2 char(5));
+insert into t2 values (1,'a');
+insert into t2 values (null,null);
+insert into t2 values (1,null);
+insert into t2 values (null,'a');
+insert into t2 values (null,'c');
+insert into t2 values (2,'b');
+insert into t2 values (-1,'');
+select *, rank() over (order by s1) as rank,
+dense_rank() over (order by s1) as dense_rank
+from t2;
+s1 s2 rank dense_rank
+1 a 5 3
+NULL NULL 1 1
+1 NULL 5 3
+NULL a 1 1
+NULL c 1 1
+2 b 7 4
+-1 4 2
+select *, rank() over (partition by s2 order by s1) as rank,
+dense_rank() over (partition by s2 order by s1) as dense_rank
+from t2;
+s1 s2 rank dense_rank
+1 a 2 2
+NULL NULL 1 1
+1 NULL 2 2
+NULL a 1 1
+NULL c 1 1
+2 b 1 1
+-1 1 1
+select *, rank() over (order by s2) as rank,
+dense_rank() over (order by s2) as dense_rank
+from t2;
+s1 s2 rank dense_rank
+1 a 4 3
+NULL NULL 1 1
+1 NULL 1 1
+NULL a 4 3
+NULL c 7 5
+2 b 6 4
+-1 3 2
+select *, rank() over (partition by s1 order by s2) as rank,
+dense_rank() over (partition by s1 order by s2) as dense_rank
+from t2;
+s1 s2 rank dense_rank
+1 a 2 2
+NULL NULL 1 1
+1 NULL 1 1
+NULL a 2 2
+NULL c 3 3
+2 b 1 1
+-1 1 1
+drop table t2;
diff --git a/mysql-test/r/win_sum.result b/mysql-test/r/win_sum.result
new file mode 100644
index 00000000000..66a48fe8293
--- /dev/null
+++ b/mysql-test/r/win_sum.result
@@ -0,0 +1,95 @@
+create table t1 (
+pk int primary key,
+a int,
+b int,
+c real
+);
+insert into t1 values
+(101 , 0, 10, 1.1),
+(102 , 0, 10, 2.1),
+(103 , 1, 10, 3.1),
+(104 , 1, 10, 4.1),
+(108 , 2, 10, 5.1),
+(105 , 2, 20, 6.1),
+(106 , 2, 20, 7.1),
+(107 , 2, 20, 8.15),
+(109 , 4, 20, 9.15),
+(110 , 4, 20, 10.15),
+(111 , 5, NULL, 11.15),
+(112 , 5, 1, 12.25),
+(113 , 5, NULL, 13.35),
+(114 , 5, NULL, 14.50),
+(115 , 5, NULL, 15.65),
+(116 , 6, 1, NULL),
+(117 , 6, 1, 10),
+(118 , 6, 1, 1.1),
+(119 , 6, 1, NULL),
+(120 , 6, 1, NULL),
+(121 , 6, 1, NULL),
+(122 , 6, 1, 2.2),
+(123 , 6, 1, 20.1),
+(124 , 6, 1, -10.4),
+(125 , 6, 1, NULL),
+(126 , 6, 1, NULL),
+(127 , 6, 1, NULL);
+select pk, a, b, sum(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)
+from t1;
+pk a b sum(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)
+101 0 10 20
+102 0 10 20
+103 1 10 20
+104 1 10 20
+105 2 20 40
+106 2 20 60
+107 2 20 50
+108 2 10 30
+109 4 20 40
+110 4 20 40
+111 5 NULL 1
+112 5 1 1
+113 5 NULL 1
+114 5 NULL NULL
+115 5 NULL NULL
+116 6 1 2
+117 6 1 3
+118 6 1 3
+119 6 1 3
+120 6 1 3
+121 6 1 3
+122 6 1 3
+123 6 1 3
+124 6 1 3
+125 6 1 3
+126 6 1 3
+127 6 1 2
+select pk, a, c, sum(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)
+from t1;
+pk a c sum(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)
+101 0 1.1 3.2
+102 0 2.1 3.2
+103 1 3.1 7.199999999999999
+104 1 4.1 7.199999999999999
+105 2 6.1 13.2
+106 2 7.1 21.35
+107 2 8.15 20.35
+108 2 5.1 13.250000000000002
+109 4 9.15 19.3
+110 4 10.15 19.3
+111 5 11.15 23.4
+112 5 12.25 36.75
+113 5 13.35 40.1
+114 5 14.5 43.5
+115 5 15.65 30.15
+116 6 NULL 10
+117 6 10 11.1
+118 6 1.1 11.1
+119 6 NULL 1.0999999999999996
+120 6 NULL NULL
+121 6 NULL 2.1999999999999997
+122 6 2.2 22.3
+123 6 20.1 11.9
+124 6 -10.4 9.7
+125 6 NULL -10.400000000000002
+126 6 NULL NULL
+127 6 NULL NULL
+drop table t1;
diff --git a/mysql-test/std_data/bad2_master.info b/mysql-test/std_data/bad2_master.info
new file mode 100644
index 00000000000..61722562748
--- /dev/null
+++ b/mysql-test/std_data/bad2_master.info
@@ -0,0 +1,35 @@
+33
+mysql-bin.000001
+4
+127.0.0.1
+root
+
+3310
+60
+0
+
+
+
+
+
+0
+1800.000
+
+0
+
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+using_gtid=1
+=0
diff --git a/mysql-test/std_data/bad3_master.info b/mysql-test/std_data/bad3_master.info
new file mode 100644
index 00000000000..6e632cd9a49
--- /dev/null
+++ b/mysql-test/std_data/bad3_master.info
@@ -0,0 +1,37 @@
+33
+mysql-bin.000001
+4
+127.0.0.1
+root
+
+3310
+60
+0
+
+
+
+
+
+0
+1800.000
+
+0
+
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+using_gtid=1
+
+
+0
diff --git a/mysql-test/std_data/bad4_master.info b/mysql-test/std_data/bad4_master.info
new file mode 100644
index 00000000000..87572efc8a4
--- /dev/null
+++ b/mysql-test/std_data/bad4_master.info
@@ -0,0 +1,35 @@
+33
+mysql-bin.000001
+4
+127.0.0.1
+root
+
+3310
+60
+0
+
+
+
+
+
+0
+1800.000
+
+0
+
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+using_gtid=1
+d=1
diff --git a/mysql-test/std_data/bad5_master.info b/mysql-test/std_data/bad5_master.info
new file mode 100644
index 00000000000..4ea8113250b
--- /dev/null
+++ b/mysql-test/std_data/bad5_master.info
@@ -0,0 +1,35 @@
+33
+mysql-bin.000001
+4
+127.0.0.1
+root
+
+3310
+60
+0
+
+
+
+
+
+0
+1800.000
+
+0
+
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+using_gtid=1
+using_gtid
diff --git a/mysql-test/std_data/bad6_master.info b/mysql-test/std_data/bad6_master.info
new file mode 100644
index 00000000000..0f48f4871f0
--- /dev/null
+++ b/mysql-test/std_data/bad6_master.info
@@ -0,0 +1,36 @@
+33
+mysql-bin.000001
+4
+127.0.0.1
+root
+
+3310
+60
+0
+
+
+
+
+
+0
+1800.000
+
+0
+
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+using_gtid=1
+END_MARKER
+do_domain_ids=20 Hulubulu!!?!
diff --git a/mysql-test/std_data/bad_master.info b/mysql-test/std_data/bad_master.info
new file mode 100644
index 00000000000..1541fdf2c61
--- /dev/null
+++ b/mysql-test/std_data/bad_master.info
@@ -0,0 +1,35 @@
+33
+mysql-bin.000001
+4
+127.0.0.1
+root
+
+3310
+60
+0
+
+
+
+
+
+0
+1800.000
+
+0
+
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+using_gtid=1
+
diff --git a/mysql-test/std_data/loaddata/mdev9823.ujis.txt b/mysql-test/std_data/loaddata/mdev9823.ujis.txt
new file mode 100644
index 00000000000..5468c999585
--- /dev/null
+++ b/mysql-test/std_data/loaddata/mdev9823.ujis.txt
@@ -0,0 +1,11 @@
+# This file has incomplete UJIS sequences {8F}, {8FA1},
+# has a valid UJIS sequence {8FA1A1},
+# and has no NL at the end:
+# {8F} \n xxx1 {8FA1} \n xxx2 {8FA1A1} \n xxx3 \n {8FA1} EOF
+
+xxx1
+xxx2
+¡¡
+xxx3
+¡ \ No newline at end of file
diff --git a/mysql-test/std_data/loaddata/mdev9823.utf8mb4.txt b/mysql-test/std_data/loaddata/mdev9823.utf8mb4.txt
new file mode 100644
index 00000000000..87739567de1
--- /dev/null
+++ b/mysql-test/std_data/loaddata/mdev9823.utf8mb4.txt
@@ -0,0 +1,12 @@
+# This file has incomplete utf8mb4 sequences {D0}, {E180}, {F09F98},
+# has a valid utf8mb4 sequence {F09F988E}
+# and has no NL at the end:
+# {D0} \n xxx1 {E180} xxx2 \n {F09F98} \n xxx3 {F09F988E} {F09F98} EOF
+xxx1
+á€
+xxx2
+ðŸ˜
+xxx3
+😎
+😠\ No newline at end of file
diff --git a/mysql-test/std_data/loaddata/mdev9874.xml b/mysql-test/std_data/loaddata/mdev9874.xml
new file mode 100644
index 00000000000..513a0dff2be
--- /dev/null
+++ b/mysql-test/std_data/loaddata/mdev9874.xml
@@ -0,0 +1 @@
+<table><row><a>aÐ</a></row></table> \ No newline at end of file
diff --git a/mysql-test/suite/galera/include/galera_sst_set_mysqldump.inc b/mysql-test/suite/galera/include/galera_sst_set_mysqldump.inc
index 5f87d23dcc1..cbd2c1c817a 100644
--- a/mysql-test/suite/galera/include/galera_sst_set_mysqldump.inc
+++ b/mysql-test/suite/galera/include/galera_sst_set_mysqldump.inc
@@ -6,6 +6,7 @@
--connection node_1
# We need a user with a password to perform SST, otherwise we hit LP #1378253
+CREATE USER 'sst';
GRANT ALL PRIVILEGES ON *.* TO 'sst';
--let $wsrep_sst_auth_orig = `SELECT @@wsrep_sst_auth`
diff --git a/mysql-test/suite/galera/r/binlog_checksum.result b/mysql-test/suite/galera/r/binlog_checksum.result
index 5c1981fc17f..e86f3892ac7 100644
--- a/mysql-test/suite/galera/r/binlog_checksum.result
+++ b/mysql-test/suite/galera/r/binlog_checksum.result
@@ -1,7 +1,9 @@
# On node_1
+connection node_1;
SET @binlog_checksum_saved= @@GLOBAL.BINLOG_CHECKSUM;
SET @@GLOBAL.BINLOG_CHECKSUM=CRC32;
# On node_2
+connection node_2;
SET @binlog_checksum_saved= @@GLOBAL.BINLOG_CHECKSUM;
SET @@GLOBAL.BINLOG_CHECKSUM=CRC32;
USE test;
@@ -23,6 +25,7 @@ c1
5
# On node_2
+connection node_2;
SELECT * FROM test.t1;
c1
1
@@ -31,6 +34,10 @@ c1
4
5
DROP TABLE t1;
+connection node_1;
SET @@GLOBAL.BINLOG_CHECKSUM = @binlog_checksum_saved;
+connection node_2;
SET @@GLOBAL.BINLOG_CHECKSUM = @binlog_checksum_saved;
+disconnect node_2;
+disconnect node_1;
# End of test
diff --git a/mysql-test/suite/galera/r/create.result b/mysql-test/suite/galera/r/create.result
index d8a2db99a68..20bc9a3958e 100644
--- a/mysql-test/suite/galera/r/create.result
+++ b/mysql-test/suite/galera/r/create.result
@@ -25,10 +25,12 @@ SET @@GLOBAL.wsrep_forced_binlog_format=@wsrep_forced_binlog_format_saved;
#
# MDEV-7673: CREATE TABLE SELECT fails on Galera cluster
#
+connection node_1;
CREATE TABLE t1 (i INT) ENGINE=INNODB DEFAULT CHARSET=utf8 SELECT 1 as i;
SELECT * FROM t1;
i
1
+connection node_2;
SELECT * FROM t1;
i
1
@@ -37,6 +39,7 @@ DROP TABLE t1;
# MDEV-8166 : Adding index on new table from select crashes Galera
# cluster
#
+connection node_1;
CREATE TABLE t1(i int(11) NOT NULL DEFAULT '0') ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO t1(i) VALUES (1), (2), (3);
CREATE TABLE t2 (i INT) SELECT i FROM t1;
@@ -46,6 +49,7 @@ i
1
2
3
+connection node_2;
SELECT * FROM t2;
i
1
diff --git a/mysql-test/suite/galera/r/enforce_storage_engine.result b/mysql-test/suite/galera/r/enforce_storage_engine.result
index a3513fc2789..746aa22bf20 100644
--- a/mysql-test/suite/galera/r/enforce_storage_engine.result
+++ b/mysql-test/suite/galera/r/enforce_storage_engine.result
@@ -2,11 +2,13 @@
# MDEV-8831 : enforce_storage_engine doesn't block table creation on
# other nodes (galera cluster)
#
+connection node_1;
SET @@enforce_storage_engine=INNODB;
CREATE TABLE t1(i INT) ENGINE=INNODB;
CREATE TABLE t2(i INT) ENGINE=MYISAM;
ERROR 42000: Unknown storage engine 'MyISAM'
INSERT INTO t1 VALUES(1);
+connection node_2;
SHOW TABLES;
Tables_in_test
t1
@@ -14,6 +16,7 @@ SELECT COUNT(*)=1 FROM t1;
COUNT(*)=1
1
CREATE TABLE t2(i INT) ENGINE=MYISAM;
+connection node_1;
SHOW TABLES;
Tables_in_test
t1
diff --git a/mysql-test/suite/galera/r/fk.result b/mysql-test/suite/galera/r/fk.result
index d6a3a25b01a..ab8e1c8f680 100644
--- a/mysql-test/suite/galera/r/fk.result
+++ b/mysql-test/suite/galera/r/fk.result
@@ -1,6 +1,7 @@
USE test;
# On node_1
+connection node_1;
CREATE TABLE networks (
`tenant_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`id` varchar(36) COLLATE utf8_unicode_ci NOT NULL,
@@ -60,9 +61,11 @@ INSERT INTO ipallocations VALUES ('f37aa3fe-ab99-4d0f-a566-6cd3169d7516','10.25.
select * from ports where ports.id = 'f37aa3fe-ab99-4d0f-a566-6cd3169d7516';
tenant_id id name network_id mac_address admin_state_up status device_id device_owner
f37aa3fe-ab99-4d0f-a566-6cd3169d7516 f37aa3fe-ab99-4d0f-a566-6cd3169d7516 fa:16:3e:e3:cc:bb 1 DOWN f37aa3fe-ab99-4d0f-a566-6cd3169d7516 network:router_gateway
+connection node_2;
select * from ports where ports.id = 'f37aa3fe-ab99-4d0f-a566-6cd3169d7516';
tenant_id id name network_id mac_address admin_state_up status device_id device_owner
f37aa3fe-ab99-4d0f-a566-6cd3169d7516 f37aa3fe-ab99-4d0f-a566-6cd3169d7516 fa:16:3e:e3:cc:bb 1 DOWN f37aa3fe-ab99-4d0f-a566-6cd3169d7516 network:router_gateway
+connection node_1;
DELETE FROM ports WHERE ports.id = 'f37aa3fe-ab99-4d0f-a566-6cd3169d7516';
select * from networks;
tenant_id id name status admin_state_up shared
@@ -78,6 +81,7 @@ select * from ports;
tenant_id id name network_id mac_address admin_state_up status device_id device_owner
# On node_2
+connection node_2;
select * from networks;
tenant_id id name status admin_state_up shared
f37aa3fe-ab99-4d0f-a566-6cd3169d7516 f37aa3fe-ab99-4d0f-a566-6cd3169d7516 MyNet ACTIVE 0 0
@@ -90,7 +94,10 @@ select * from ipallocations;
port_id ip_address subnet_id network_id
select * from ports;
tenant_id id name network_id mac_address admin_state_up status device_id device_owner
+connection node_1;
drop table ipallocations;
drop table subnets;
drop table ports;
drop table networks;
+disconnect node_2;
+disconnect node_1;
diff --git a/mysql-test/suite/galera/r/galera_account_management.result b/mysql-test/suite/galera/r/galera_account_management.result
index 9b3ae9ba46e..7fb472a5c2d 100644
--- a/mysql-test/suite/galera/r/galera_account_management.result
+++ b/mysql-test/suite/galera/r/galera_account_management.result
@@ -1,39 +1,55 @@
+connection node_1;
CREATE USER user1, user2 IDENTIFIED BY 'password';
+connection node_2;
SELECT COUNT(*) = 2 FROM mysql.user WHERE user IN ('user1', 'user2');
COUNT(*) = 2
1
+connection node_1;
RENAME USER user2 TO user3;
+connection node_2;
SELECT COUNT(*) = 0 FROM mysql.user WHERE user = 'user2';
COUNT(*) = 0
1
SELECT COUNT(*) = 1 FROM mysql.user WHERE user = 'user3';
COUNT(*) = 1
1
+connection node_1;
SET PASSWORD FOR user3 = PASSWORD('foo');
+connection node_1;
SELECT password != '' FROM mysql.user WHERE user = 'user3';
password != ''
1
+connection node_1;
DROP USER user1, user3;
+connection node_2;
SELECT COUNT(*) = 0 FROM mysql.user WHERE user IN ('user1', 'user2');
COUNT(*) = 0
1
+connection node_1;
GRANT ALL ON *.* TO user4 IDENTIFIED BY 'password';
+connection node_2;
SELECT COUNT(*) = 1 FROM mysql.user WHERE user = 'user4';
COUNT(*) = 1
1
SELECT Select_priv = 'Y' FROM mysql.user WHERE user = 'user4';
Select_priv = 'Y'
1
+connection node_1;
CREATE USER user5;
GRANT PROXY ON user4 TO user5;
+connection node_2;
SELECT COUNT(*) = 1 FROM mysql.proxies_priv WHERE user = 'user5';
COUNT(*) = 1
1
+connection node_1;
REVOKE ALL PRIVILEGES ON *.* FROM user4;
+connection node_2;
SELECT Select_priv = 'N' FROM mysql.user WHERE user = 'user4';
Select_priv = 'N'
1
+connection node_1;
REVOKE PROXY ON user4 FROM user5;
+connection node_2;
SELECT COUNT(*) = 0 FROM mysql.proxies_priv WHERE user = 'user5';
COUNT(*) = 0
1
diff --git a/mysql-test/suite/galera/r/galera_alter_engine_innodb.result b/mysql-test/suite/galera/r/galera_alter_engine_innodb.result
index 2b30ac5814d..ff6ab792c0e 100644
--- a/mysql-test/suite/galera/r/galera_alter_engine_innodb.result
+++ b/mysql-test/suite/galera/r/galera_alter_engine_innodb.result
@@ -1,6 +1,7 @@
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
ALTER TABLE t1 ENGINE=InnoDB;
+connection node_2;
SELECT ENGINE = 'InnoDB' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
ENGINE = 'InnoDB'
1
diff --git a/mysql-test/suite/galera/r/galera_alter_engine_myisam.result b/mysql-test/suite/galera/r/galera_alter_engine_myisam.result
index 280cb58208c..389383858ac 100644
--- a/mysql-test/suite/galera/r/galera_alter_engine_myisam.result
+++ b/mysql-test/suite/galera/r/galera_alter_engine_myisam.result
@@ -2,10 +2,12 @@ SET GLOBAL wsrep_replicate_myisam = TRUE;
CREATE TABLE t1 (f1 INTEGER) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1);
ALTER TABLE t1 ENGINE=InnoDB;
+connection node_2;
SELECT ENGINE = 'InnoDB' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
ENGINE = 'InnoDB'
1
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
+connection node_1;
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/galera_alter_table_force.result b/mysql-test/suite/galera/r/galera_alter_table_force.result
index 401ab46d868..d0a2f81b631 100644
--- a/mysql-test/suite/galera/r/galera_alter_table_force.result
+++ b/mysql-test/suite/galera/r/galera_alter_table_force.result
@@ -1,6 +1,7 @@
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
ALTER TABLE t1 FORCE;
+connection node_2;
SELECT ENGINE = 'InnoDB' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
ENGINE = 'InnoDB'
1
diff --git a/mysql-test/suite/galera/r/galera_applier_ftwrl_table.result b/mysql-test/suite/galera/r/galera_applier_ftwrl_table.result
index cecbfc1f3cf..18dcc55d5d4 100644
--- a/mysql-test/suite/galera/r/galera_applier_ftwrl_table.result
+++ b/mysql-test/suite/galera/r/galera_applier_ftwrl_table.result
@@ -1,12 +1,17 @@
+connection node_1;
SET SESSION wsrep_sync_wait = 0;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
FLUSH TABLE t1 WITH READ LOCK;
+connection node_2;
INSERT INTO t1 VALUES (1);
INSERT INTO t1 VALUES (2);
+connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
+connection node_1a;
SET SESSION wsrep_sync_wait = 0;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
+connection node_1;
UNLOCK TABLES;
SET SESSION wsrep_sync_wait = 7;
SELECT COUNT(*) = 2 FROM t1;
diff --git a/mysql-test/suite/galera/r/galera_applier_ftwrl_table_alter.result b/mysql-test/suite/galera/r/galera_applier_ftwrl_table_alter.result
index ee967356c85..1cf88dbf5d3 100644
--- a/mysql-test/suite/galera/r/galera_applier_ftwrl_table_alter.result
+++ b/mysql-test/suite/galera/r/galera_applier_ftwrl_table_alter.result
@@ -1,10 +1,13 @@
+connection node_1;
SET SESSION wsrep_sync_wait = 0;
SET SESSION lock_wait_timeout = 60;
SET SESSION innodb_lock_wait_timeout=60;
SET SESSION wait_timeout=60;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
FLUSH TABLE t1 WITH READ LOCK;
+connection node_2;
ALTER TABLE t1 ADD COLUMN f2 INTEGER;
+connection node_1;
SELECT 1 FROM DUAL;
1
1
diff --git a/mysql-test/suite/galera/r/galera_as_master.result b/mysql-test/suite/galera/r/galera_as_master.result
index d87a744000c..92a1a0e7cb3 100644
--- a/mysql-test/suite/galera/r/galera_as_master.result
+++ b/mysql-test/suite/galera/r/galera_as_master.result
@@ -1,4 +1,6 @@
+connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3;
START SLAVE;
+connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES(1);
# Disable binary logging for current session
@@ -10,6 +12,7 @@ CREATE TABLE test.t3 AS SELECT * from t1;
SET SQL_LOG_BIN=ON;
INSERT INTO t1 VALUES(3);
CREATE TABLE test.t4 AS SELECT * from t1;
+connection node_2;
SELECT * FROM t1;
f1
1
@@ -27,6 +30,7 @@ f1
1
2
3
+connection node_3;
SHOW TABLES;
Tables_in_test
t1
@@ -41,8 +45,10 @@ f1
2
3
# Cleanup
+connection node_1;
DROP TABLE t1, t4;
SET SQL_LOG_BIN=OFF;
DROP TABLE t2, t3;
+connection node_3;
STOP SLAVE;
RESET SLAVE ALL;
diff --git a/mysql-test/suite/galera/r/galera_as_master_large.result b/mysql-test/suite/galera/r/galera_as_master_large.result
index 4d5533899cf..dad74211af9 100644
--- a/mysql-test/suite/galera/r/galera_as_master_large.result
+++ b/mysql-test/suite/galera/r/galera_as_master_large.result
@@ -2,7 +2,9 @@
# MDEV-9044 : Getting binlog corruption on my Galera cluster (10.1.8)
# making it impossible to async slave.
#
+connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3;
START SLAVE;
+connection node_1;
SELECT @@GLOBAL.BINLOG_CACHE_SIZE;
@@GLOBAL.BINLOG_CACHE_SIZE
8192
@@ -12,12 +14,14 @@ START TRANSACTION;
INSERT INTO t1 VALUES(1, REPEAT('-', 10000));
COMMIT;
INSERT INTO t2 VALUES(1);
+connection node_2;
SELECT c1, LENGTH(c2) FROM t1;
c1 LENGTH(c2)
1 10000
SELECT * FROM t2;
c1
1
+connection node_3;
SELECT c1, LENGTH(c2) FROM t1;
c1 LENGTH(c2)
1 10000
@@ -25,6 +29,8 @@ SELECT * FROM t2;
c1
1
# Cleanup
+connection node_1;
DROP TABLE t1, t2;
+connection node_3;
STOP SLAVE;
RESET SLAVE ALL;
diff --git a/mysql-test/suite/galera/r/galera_as_slave.result b/mysql-test/suite/galera/r/galera_as_slave.result
index 2d7d689aa36..9ccb5106234 100644
--- a/mysql-test/suite/galera/r/galera_as_slave.result
+++ b/mysql-test/suite/galera/r/galera_as_slave.result
@@ -1,15 +1,24 @@
+connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2;
+connection node_2;
START SLAVE;
+connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES(1);
+connection node_2;
INSERT INTO t1 VALUES (2);
+connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3;
SELECT COUNT(*) = 2 FROM t1;
COUNT(*) = 2
1
INSERT INTO t1 VALUES (3);
+connection node_2;
SELECT COUNT(*) = 3 FROM t1;
COUNT(*) = 3
1
+connection node_1;
DROP TABLE t1;
+connection node_2;
STOP SLAVE;
RESET SLAVE ALL;
+connection node_1;
RESET MASTER;
diff --git a/mysql-test/suite/galera/r/galera_as_slave_gtid.result b/mysql-test/suite/galera/r/galera_as_slave_gtid.result
index fbac7b1b6b5..0ef9d208bf4 100644
--- a/mysql-test/suite/galera/r/galera_as_slave_gtid.result
+++ b/mysql-test/suite/galera/r/galera_as_slave_gtid.result
@@ -1,16 +1,24 @@
+connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2;
+connection node_2;
START SLAVE;
+connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES(1);
SELECT LENGTH(@@global.gtid_binlog_state) > 1;
LENGTH(@@global.gtid_binlog_state) > 1
1
+connection node_2;
gtid_binlog_state_equal
1
+connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
gtid_binlog_state_equal
1
+connection node_1;
DROP TABLE t1;
+connection node_3;
+connection node_2;
STOP SLAVE;
RESET SLAVE ALL;
diff --git a/mysql-test/suite/galera/r/galera_bf_abort_flush_for_export.result b/mysql-test/suite/galera/r/galera_bf_abort_flush_for_export.result
index 8c07d87eec3..210492937b0 100644
--- a/mysql-test/suite/galera/r/galera_bf_abort_flush_for_export.result
+++ b/mysql-test/suite/galera/r/galera_bf_abort_flush_for_export.result
@@ -1,7 +1,10 @@
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
+connection node_2;
SET AUTOCOMMIT=OFF;
FLUSH TABLES t1 FOR EXPORT;
+connection node_1;
INSERT INTO t1 VALUES (2);
+connection node_2;
SET SESSION wsrep_sync_wait = 0;
UNLOCK TABLES;
COMMIT;
diff --git a/mysql-test/suite/galera/r/galera_bf_abort_ftwrl.result b/mysql-test/suite/galera/r/galera_bf_abort_ftwrl.result
index e3819172510..ae1ca6d2157 100644
--- a/mysql-test/suite/galera/r/galera_bf_abort_ftwrl.result
+++ b/mysql-test/suite/galera/r/galera_bf_abort_ftwrl.result
@@ -1,7 +1,10 @@
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
+connection node_2;
SET AUTOCOMMIT=OFF;
FLUSH TABLES WITH READ LOCK;;
+connection node_1;
INSERT INTO t1 VALUES (1);
+connection node_2;
UNLOCK TABLES;
wsrep_local_aborts_increment
1
diff --git a/mysql-test/suite/galera/r/galera_bf_abort_get_lock.result b/mysql-test/suite/galera/r/galera_bf_abort_get_lock.result
index 2e44a773b23..ce3ac6ab2cb 100644
--- a/mysql-test/suite/galera/r/galera_bf_abort_get_lock.result
+++ b/mysql-test/suite/galera/r/galera_bf_abort_get_lock.result
@@ -1,11 +1,15 @@
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
+connection node_2a;
SELECT GET_LOCK("foo", 1000);
GET_LOCK("foo", 1000)
1
+connection node_2;
SET AUTOCOMMIT=OFF;
INSERT INTO t1 VALUES (1);
SELECT GET_LOCK("foo", 1000);;
+connection node_1;
INSERT INTO t1 VALUES (1);
+connection node_2;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
wsrep_local_aborts_increment
1
diff --git a/mysql-test/suite/galera/r/galera_bf_abort_lock_table.result b/mysql-test/suite/galera/r/galera_bf_abort_lock_table.result
index 7510e48ee83..81b5816ddbe 100644
--- a/mysql-test/suite/galera/r/galera_bf_abort_lock_table.result
+++ b/mysql-test/suite/galera/r/galera_bf_abort_lock_table.result
@@ -1,7 +1,10 @@
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
+connection node_2;
SET AUTOCOMMIT=OFF;
LOCK TABLE t1 WRITE;
+connection node_1;
INSERT INTO t1 VALUES (2);
+connection node_2;
UNLOCK TABLES;
COMMIT;
SELECT COUNT(*) = 1 FROM t1;
diff --git a/mysql-test/suite/galera/r/galera_bf_abort_sleep.result b/mysql-test/suite/galera/r/galera_bf_abort_sleep.result
index 8e85a5feda2..f069198dff6 100644
--- a/mysql-test/suite/galera/r/galera_bf_abort_sleep.result
+++ b/mysql-test/suite/galera/r/galera_bf_abort_sleep.result
@@ -1,8 +1,11 @@
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
+connection node_2;
SET AUTOCOMMIT=OFF;
INSERT INTO t1 VALUES (1);
SELECT SLEEP(1000);;
+connection node_1;
INSERT INTO t1 VALUES (1);
+connection node_2;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
wsrep_local_aborts_increment
1
diff --git a/mysql-test/suite/galera/r/galera_binlog_cache_size.result b/mysql-test/suite/galera/r/galera_binlog_cache_size.result
index 9726cf2a440..6aac74ab5f0 100644
--- a/mysql-test/suite/galera/r/galera_binlog_cache_size.result
+++ b/mysql-test/suite/galera/r/galera_binlog_cache_size.result
@@ -3,6 +3,7 @@ CREATE TABLE ten (f1 INTEGER);
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
SET GLOBAL binlog_cache_size=4096;
SET GLOBAL max_binlog_cache_size=4096;
+connection node_1a;
SET AUTOCOMMIT=ON;
START TRANSACTION;
INSERT INTO t1 SELECT REPEAT('a', 767) FROM ten;
diff --git a/mysql-test/suite/galera/r/galera_binlog_checksum.result b/mysql-test/suite/galera/r/galera_binlog_checksum.result
index a6ab62350b1..b0ea2293119 100644
--- a/mysql-test/suite/galera/r/galera_binlog_checksum.result
+++ b/mysql-test/suite/galera/r/galera_binlog_checksum.result
@@ -1,9 +1,12 @@
CREATE TABLE t1 (f1 INT PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
+connection node_1;
UPDATE t1 SET f1 = 2 WHERE f1 = 1;
+connection node_2;
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
diff --git a/mysql-test/suite/galera/r/galera_binlog_event_max_size_min.result b/mysql-test/suite/galera/r/galera_binlog_event_max_size_min.result
index 984a943fcbe..7b88af5d5af 100644
--- a/mysql-test/suite/galera/r/galera_binlog_event_max_size_min.result
+++ b/mysql-test/suite/galera/r/galera_binlog_event_max_size_min.result
@@ -1,5 +1,6 @@
CREATE TABLE t1 (f1 VARCHAR(1000));
INSERT INTO t1 VALUES (REPEAT('x', 1000));
+connection node_2;
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = REPEAT('x', 1000);
COUNT(*) = 1
1
diff --git a/mysql-test/suite/galera/r/galera_concurrent_ctas.result b/mysql-test/suite/galera/r/galera_concurrent_ctas.result
index 8b0a4c07ac2..8a3ac1ae0d3 100644
--- a/mysql-test/suite/galera/r/galera_concurrent_ctas.result
+++ b/mysql-test/suite/galera/r/galera_concurrent_ctas.result
@@ -1 +1,3 @@
+disconnect node_2;
+disconnect node_1;
# End of test
diff --git a/mysql-test/suite/galera/r/galera_create_function.result b/mysql-test/suite/galera/r/galera_create_function.result
index 8e4a823d00f..576ea44cce5 100644
--- a/mysql-test/suite/galera/r/galera_create_function.result
+++ b/mysql-test/suite/galera/r/galera_create_function.result
@@ -1,3 +1,4 @@
+connection node_1;
CREATE USER 'user1';
CREATE
DEFINER = 'user1'
@@ -18,12 +19,14 @@ DETERMINISTIC
NO SQL
SQL SECURITY INVOKER
RETURN 123;
+connection node_1;
SHOW CREATE FUNCTION f1;
Function sql_mode Create Function character_set_client collation_connection Database Collation
f1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user1`@`%` FUNCTION `f1`(param INTEGER) RETURNS varchar(200) CHARSET latin1
MODIFIES SQL DATA
COMMENT 'f1_comment'
RETURN 'abc' latin1 latin1_swedish_ci latin1_swedish_ci
+connection node_2;
SELECT 1 FROM DUAL;
1
1
@@ -33,6 +36,7 @@ f1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user1`@`%` FUNCTIO
MODIFIES SQL DATA
COMMENT 'f1_comment'
RETURN 'abc' latin1 latin1_swedish_ci latin1_swedish_ci
+connection node_1;
SHOW CREATE FUNCTION f2;
Function sql_mode Create Function character_set_client collation_connection Database Collation
f2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f2`(param VARCHAR(100)) RETURNS int(11)
@@ -40,6 +44,7 @@ f2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost`
DETERMINISTIC
SQL SECURITY INVOKER
RETURN 123 latin1 latin1_swedish_ci latin1_swedish_ci
+connection node_2;
SHOW CREATE FUNCTION f2;
Function sql_mode Create Function character_set_client collation_connection Database Collation
f2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f2`(param VARCHAR(100)) RETURNS int(11)
@@ -53,6 +58,7 @@ f1(1) = 'abc'
SELECT f2('abc') = 123;
f2('abc') = 123
1
+connection node_1;
DROP FUNCTION f1;
DROP FUNCTION f2;
DROP USER 'user1';
diff --git a/mysql-test/suite/galera/r/galera_create_procedure.result b/mysql-test/suite/galera/r/galera_create_procedure.result
index 6191ef48ee5..90f29ffa617 100644
--- a/mysql-test/suite/galera/r/galera_create_procedure.result
+++ b/mysql-test/suite/galera/r/galera_create_procedure.result
@@ -1,3 +1,4 @@
+connection node_1;
CREATE USER 'user1';
CREATE TABLE t1 (f1 INTEGER);
CREATE
@@ -16,12 +17,14 @@ PROCEDURE p2 (param VARCHAR(100))
DETERMINISTIC
NO SQL
SQL SECURITY INVOKER BEGIN END ;
+connection node_1;
SHOW CREATE PROCEDURE p1;
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
p1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user1`@`%` PROCEDURE `p1`(IN param1 INTEGER, OUT param2 INTEGER, INOUT param3 INTEGER)
MODIFIES SQL DATA
COMMENT 'p1_comment'
INSERT INTO t1 VALUES (1) latin1 latin1_swedish_ci latin1_swedish_ci
+connection node_2;
SELECT 1 FROM DUAL;
1
1
@@ -31,6 +34,7 @@ p1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user1`@`%` PROCEDU
MODIFIES SQL DATA
COMMENT 'p1_comment'
INSERT INTO t1 VALUES (1) latin1 latin1_swedish_ci latin1_swedish_ci
+connection node_1;
SHOW CREATE PROCEDURE p2;
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
p2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(param VARCHAR(100))
@@ -38,6 +42,7 @@ p2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost`
DETERMINISTIC
SQL SECURITY INVOKER
BEGIN END latin1 latin1_swedish_ci latin1_swedish_ci
+connection node_2;
SHOW CREATE PROCEDURE p2;
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
p2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(param VARCHAR(100))
@@ -47,6 +52,7 @@ p2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost`
BEGIN END latin1 latin1_swedish_ci latin1_swedish_ci
CALL p1(@a, @b, @c);
CALL p2('abc');
+connection node_1;
DROP PROCEDURE p1;
DROP PROCEDURE p2;
DROP USER 'user1';
diff --git a/mysql-test/suite/galera/r/galera_create_table_like.result b/mysql-test/suite/galera/r/galera_create_table_like.result
index b335101fa62..131ac311bca 100644
--- a/mysql-test/suite/galera/r/galera_create_table_like.result
+++ b/mysql-test/suite/galera/r/galera_create_table_like.result
@@ -11,6 +11,7 @@ CREATE TABLE real_table3 LIKE schema1.myisam_table;
CREATE TEMPORARY TABLE temp_table1 LIKE schema1.real_table;
CREATE TEMPORARY TABLE temp_table2 LIKE schema1.temp_table;
CREATE TEMPORARY TABLE temp_table3 LIKE schema1.myisam_table;
+connection node_2;
SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'real_table' AND TABLE_SCHEMA = 'schema1';
COUNT(*) = 1
1
@@ -38,6 +39,7 @@ COUNT(*) = 0
SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_table3' AND TABLE_SCHEMA = 'schema2';
COUNT(*) = 0
1
+connection node_1;
DROP TABLE schema1.real_table;
DROP TABLE schema1.myisam_table;
DROP TABLE schema2.real_table1;
diff --git a/mysql-test/suite/galera/r/galera_create_trigger.result b/mysql-test/suite/galera/r/galera_create_trigger.result
index 7e656081871..d07a007543e 100644
--- a/mysql-test/suite/galera/r/galera_create_trigger.result
+++ b/mysql-test/suite/galera/r/galera_create_trigger.result
@@ -7,6 +7,7 @@ CREATE DEFINER=root@localhost TRIGGER definer_root BEFORE INSERT ON definer_root
CREATE DEFINER=user1 TRIGGER definer_user BEFORE INSERT ON definer_user FOR EACH ROW SET NEW.trigger_user = CURRENT_USER();
CREATE DEFINER=current_user TRIGGER definer_current_user BEFORE INSERT ON definer_current_user FOR EACH ROW SET NEW.trigger_user = CURRENT_USER();
CREATE TRIGGER definer_default BEFORE INSERT ON definer_default FOR EACH ROW SET NEW.trigger_user = CURRENT_USER();
+connection node_2;
INSERT INTO definer_root (f1) VALUES (1);
SELECT DEFINER = 'root@localhost' FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME = 'definer_root';
DEFINER = 'root@localhost'
@@ -35,6 +36,7 @@ DEFINER = 'root@localhost'
SELECT trigger_user = 'root@localhost' FROM definer_default;
trigger_user = 'root@localhost'
1
+connection node_1;
DROP TABLE definer_current_user;
DROP TABLE definer_user;
DROP TABLE definer_root;
diff --git a/mysql-test/suite/galera/r/galera_delete_limit.result b/mysql-test/suite/galera/r/galera_delete_limit.result
index 72bee18eab6..f6fb2e56346 100644
--- a/mysql-test/suite/galera/r/galera_delete_limit.result
+++ b/mysql-test/suite/galera/r/galera_delete_limit.result
@@ -1,8 +1,11 @@
+connection node_1;
CREATE TABLE ten (f1 INTEGER) Engine=InnoDB;
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB;
INSERT INTO t1 SELECT f1 FROM ten ORDER BY RAND();
+connection node_2;
DELETE FROM t1 ORDER BY RAND() LIMIT 5;
+connection node_1;
sum_matches
1
max_matches
@@ -10,7 +13,9 @@ max_matches
DROP TABLE t1;
CREATE TABLE t2 (f1 INTEGER) Engine=InnoDB;
INSERT INTO t2 SELECT f1 FROM ten ORDER BY RAND();
+connection node_2;
DELETE FROM t2 ORDER BY RAND() LIMIT 5;
+connection node_1;
sum_matches
1
max_matches
diff --git a/mysql-test/suite/galera/r/galera_drop_multi.result b/mysql-test/suite/galera/r/galera_drop_multi.result
index d82ae3bec1a..7793ef93b90 100644
--- a/mysql-test/suite/galera/r/galera_drop_multi.result
+++ b/mysql-test/suite/galera/r/galera_drop_multi.result
@@ -8,6 +8,7 @@ START TRANSACTION;
DROP TABLE t1, t2, t3, t4;
INSERT INTO t5 VALUES (1);
COMMIT;
+connection node_2;
SHOW CREATE TABLE t1;
ERROR 42S02: Table 'test.t1' doesn't exist
SHOW CREATE TABLE t2;
@@ -17,4 +18,5 @@ ERROR 42S02: Table 'test.t3' doesn't exist
SHOW CREATE TABLE t4;
ERROR 42S02: Table 'test.t4' doesn't exist
CALL mtr.add_suppression("Slave SQL: Error 'Unknown table 'test.t2,test.t4'' on query\. Default database: 'test'\. Query: 'DROP TABLE t1, t2, t3, t4', Error_code: 1051");
+connection node_1;
DROP TABLE t5;
diff --git a/mysql-test/suite/galera/r/galera_enum.result b/mysql-test/suite/galera/r/galera_enum.result
index e853c5c9943..e8ccb12b990 100644
--- a/mysql-test/suite/galera/r/galera_enum.result
+++ b/mysql-test/suite/galera/r/galera_enum.result
@@ -1,9 +1,11 @@
+connection node_1;
CREATE TABLE t1 (f1 ENUM('', 'one', 'two'), KEY (f1)) ENGINE=InnoDB;
INSERT INTO t1 VALUES ('');
INSERT INTO t1 VALUES ('one'), ('two');
INSERT INTO t1 VALUES (0), (1), (2);
Warnings:
Warning 1265 Data truncated for column 'f1' at row 1
+connection node_2;
SELECT COUNT(*) = 6 FROM t1;
COUNT(*) = 6
1
@@ -14,23 +16,30 @@ SELECT COUNT(*) = 2 FROM t1 where f1 = 'one';
COUNT(*) = 2
1
DROP TABLE t1;
+connection node_1;
CREATE TABLE t1 (f1 ENUM('', 'one', 'two', 'three', 'four') PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (''), ('one'), ('two');
+connection node_2;
SELECT COUNT(*) = 3 FROM t1;
COUNT(*) = 3
1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = '';
COUNT(*) = 1
1
+connection node_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t1 SET f1 = 'three' where f1 = '';
+connection node_2;
SET AUTOCOMMIt=OFF;
START TRANSACTION;
UPDATE t1 SET f1 = 'four' where f1 = '';
+connection node_1;
COMMIT;
+connection node_2;
COMMIT;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
+connection node_1;
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 'three';
COUNT(*) = 1
1
diff --git a/mysql-test/suite/galera/r/galera_events.result b/mysql-test/suite/galera/r/galera_events.result
index 09d8406d5d0..f01627aba70 100644
--- a/mysql-test/suite/galera/r/galera_events.result
+++ b/mysql-test/suite/galera/r/galera_events.result
@@ -1,18 +1,27 @@
+connection node_1;
CREATE EVENT event1 ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO SELECT 1;
+connection node_2;
SELECT DEFINER= 'root@localhost', ORIGINATOR = 1, STATUS = 'SLAVESIDE_DISABLED', EVENT_TYPE = 'ONE TIME', ON_COMPLETION = 'NOT PRESERVE' FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME = 'event1';
DEFINER= 'root@localhost' ORIGINATOR = 1 STATUS = 'SLAVESIDE_DISABLED' EVENT_TYPE = 'ONE TIME' ON_COMPLETION = 'NOT PRESERVE'
1 1 1 1 1
+connection node_1;
ALTER EVENT event1 DISABLE;
+connection node_2;
SELECT DEFINER= 'root@localhost', ORIGINATOR = 1, STATUS = 'SLAVESIDE_DISABLED', EVENT_TYPE = 'ONE TIME', ON_COMPLETION = 'NOT PRESERVE' FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME = 'event1';
DEFINER= 'root@localhost' ORIGINATOR = 1 STATUS = 'SLAVESIDE_DISABLED' EVENT_TYPE = 'ONE TIME' ON_COMPLETION = 'NOT PRESERVE'
1 1 1 1 1
+connection node_2;
SET GLOBAL event_scheduler = ON;
CREATE EVENT event2 ON SCHEDULE AT CURRENT_TIMESTAMP ON COMPLETION NOT PRESERVE DO SELECT 1;
+connection node_1;
SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME = 'event2';
COUNT(*) = 0
1
+connection node_1;
DROP EVENT event1;
+connection node_2;
SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME = 'event1';
COUNT(*) = 0
1
+connection node_2;
SET GLOBAL event_scheduler = OFF;;
diff --git a/mysql-test/suite/galera/r/galera_fk_cascade_delete.result b/mysql-test/suite/galera/r/galera_fk_cascade_delete.result
index 89f4301a0b4..73375ae55c5 100644
--- a/mysql-test/suite/galera/r/galera_fk_cascade_delete.result
+++ b/mysql-test/suite/galera/r/galera_fk_cascade_delete.result
@@ -18,7 +18,9 @@ ON DELETE CASCADE
INSERT INTO grandparent VALUES (1),(2);
INSERT INTO parent VALUES (1,1), (2,2);
INSERT INTO child VALUES (1,1), (2,2);
+connection node_2;
DELETE FROM grandparent WHERE id = 1;
+connection node_1;
SELECT COUNT(*) = 0 FROM parent WHERE grandparent_id = 1;
COUNT(*) = 0
1
diff --git a/mysql-test/suite/galera/r/galera_fk_cascade_update.result b/mysql-test/suite/galera/r/galera_fk_cascade_update.result
index 2ab2ad31a13..5fe8b532473 100644
--- a/mysql-test/suite/galera/r/galera_fk_cascade_update.result
+++ b/mysql-test/suite/galera/r/galera_fk_cascade_update.result
@@ -18,7 +18,9 @@ ON UPDATE CASCADE
INSERT INTO grandparent VALUES (1),(2);
INSERT INTO parent VALUES (1,1), (2,2);
INSERT INTO child VALUES (1,1), (2,2);
+connection node_2;
UPDATE grandparent SET id = 3 WHERE id = 1;
+connection node_1;
SELECT COUNT(*) = 1 FROM parent WHERE grandparent_id = 3;
COUNT(*) = 1
1
diff --git a/mysql-test/suite/galera/r/galera_fk_conflict.result b/mysql-test/suite/galera/r/galera_fk_conflict.result
index ae6c4823a54..d9919c0348b 100644
--- a/mysql-test/suite/galera/r/galera_fk_conflict.result
+++ b/mysql-test/suite/galera/r/galera_fk_conflict.result
@@ -10,13 +10,17 @@ REFERENCES parent(id)
) ENGINE=InnoDB;
INSERT INTO parent VALUES (1), (2);
INSERT INTO child VALUES (1,1);
+connection node_1;
SET AUTOCOMMIT = OFF;
START TRANSACTION;
DELETE FROM parent WHERE id = 2;
+connection node_2;
SET AUTOCOMMIT = OFF;
START TRANSACTION;
INSERT INTO child VALUES (2, 2);
+connection node_1;
COMMIT;
+connection node_2;
COMMIT;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
DROP TABLE child;
diff --git a/mysql-test/suite/galera/r/galera_fk_mismatch.result b/mysql-test/suite/galera/r/galera_fk_mismatch.result
index 07cdb1b09a2..bdc60c9e099 100644
--- a/mysql-test/suite/galera/r/galera_fk_mismatch.result
+++ b/mysql-test/suite/galera/r/galera_fk_mismatch.result
@@ -13,11 +13,14 @@ ON DELETE CASCADE
) ENGINE=InnoDB;
INSERT INTO parent VALUES (1, 2);
INSERT INTO child VALUES (1, 1);
+connection node_2;
UPDATE parent SET id1 = 3 WHERE id1 = 1;
+connection node_1;
SELECT COUNT(*) = 1 FROM child WHERE parent_id1 = 3;
COUNT(*) = 1
1
DELETE FROM parent WHERE id1 = 3;
+connection node_2;
SELECT COUNT(*) = 0 FROM child WHERE parent_id1 = 3;
COUNT(*) = 0
1
diff --git a/mysql-test/suite/galera/r/galera_fk_multicolumn.result b/mysql-test/suite/galera/r/galera_fk_multicolumn.result
index a86b87a83ef..f5b6aa23692 100644
--- a/mysql-test/suite/galera/r/galera_fk_multicolumn.result
+++ b/mysql-test/suite/galera/r/galera_fk_multicolumn.result
@@ -17,7 +17,9 @@ ON UPDATE CASCADE
INSERT INTO t0 VALUES (0, 0);
INSERT INTO t1 VALUES (0);
INSERT INTO t2 VALUES (0);
+connection node_2;
UPDATE t0 SET f1 = 1, f2 = 2;
+connection node_1;
SELECT f1 = 1 FROM t1 WHERE f1 = 1;
f1 = 1
1
diff --git a/mysql-test/suite/galera/r/galera_fk_multitable.result b/mysql-test/suite/galera/r/galera_fk_multitable.result
index e77128d3b04..04ff7adc3e9 100644
--- a/mysql-test/suite/galera/r/galera_fk_multitable.result
+++ b/mysql-test/suite/galera/r/galera_fk_multitable.result
@@ -11,7 +11,9 @@ ON DELETE CASCADE
INSERT INTO t0 VALUES (0), (1);
INSERT INTO t1 VALUES (0, 0);
INSERT INTO t1 VALUES (1, 0);
+connection node_2;
DELETE t0.*, t1.* FROM t0, t1 WHERE t0.f0 = 0 AND t1.f1 = 0;
+connection node_1;
SELECT COUNT(*) = 1 FROM t0;
COUNT(*) = 1
1
diff --git a/mysql-test/suite/galera/r/galera_fk_no_pk.result b/mysql-test/suite/galera/r/galera_fk_no_pk.result
index e4f92863d92..e7b5f0b2b64 100644
--- a/mysql-test/suite/galera/r/galera_fk_no_pk.result
+++ b/mysql-test/suite/galera/r/galera_fk_no_pk.result
@@ -12,11 +12,14 @@ ON DELETE CASCADE
) ENGINE=InnoDB;
INSERT INTO parent VALUES (1), (1), (2), (2);
INSERT INTO child VALUES (1,1), (2,2), (1,1), (2,2);
+connection node_2;
DELETE FROM parent WHERE id = 1;
SELECT COUNT(*) = 0 FROM child WHERE id = 1;
COUNT(*) = 0
1
+connection node_1;
UPDATE parent SET id = 3 WHERE id = 2;
+connection node_2;
SELECT COUNT(*) = 0 FROM child WHERE parent_id = 1;
COUNT(*) = 0
1
diff --git a/mysql-test/suite/galera/r/galera_fk_selfreferential.result b/mysql-test/suite/galera/r/galera_fk_selfreferential.result
index 25c37046e88..3b4dbf2a8e9 100644
--- a/mysql-test/suite/galera/r/galera_fk_selfreferential.result
+++ b/mysql-test/suite/galera/r/galera_fk_selfreferential.result
@@ -6,7 +6,9 @@ REFERENCES t1(f1)
ON DELETE CASCADE
) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1, 1), (2, 1);
+connection node_2;
DELETE FROM t1 WHERE f1 = 1;
+connection node_1;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
diff --git a/mysql-test/suite/galera/r/galera_fk_setnull.result b/mysql-test/suite/galera/r/galera_fk_setnull.result
index f7fb9d04040..d4f20fe60a3 100644
--- a/mysql-test/suite/galera/r/galera_fk_setnull.result
+++ b/mysql-test/suite/galera/r/galera_fk_setnull.result
@@ -12,10 +12,12 @@ ON DELETE SET NULL
) ENGINE=InnoDB;
INSERT INTO parent VALUES (1),(2);
INSERT INTO child VALUES (1,1),(2,2);
+connection node_2;
DELETE FROM parent WHERE id = 1;
SELECT parent_id IS NULL FROM child WHERE id = 1;
parent_id IS NULL
1
+connection node_1;
SELECT parent_id IS NULL FROM child WHERE id = 1;
parent_id IS NULL
1
@@ -23,8 +25,10 @@ UPDATE parent SET id = 3 WHERE id = 2;
SELECT parent_id IS NULL FROM child WHERE id = 2;
parent_id IS NULL
1
+connection node_2;
SELECT parent_id IS NULL FROM child WHERE id = 2;
parent_id IS NULL
1
+connection node_1;
DROP TABLE child;
DROP TABLE parent;
diff --git a/mysql-test/suite/galera/r/galera_forced_binlog_format.result b/mysql-test/suite/galera/r/galera_forced_binlog_format.result
index 92e78685b58..01f738f6109 100644
--- a/mysql-test/suite/galera/r/galera_forced_binlog_format.result
+++ b/mysql-test/suite/galera/r/galera_forced_binlog_format.result
@@ -1,3 +1,4 @@
+connection node_1;
RESET MASTER;
SET SESSION binlog_format = 'STATEMENT';
Warnings:
@@ -40,4 +41,6 @@ GRANT ALL PRIVILEGES ON `testdb_9401`.`t1` TO 'dummy'@'localhost'
REVOKE ALL PRIVILEGES, GRANT OPTION FROM dummy@localhost;
DROP USER dummy@localhost;
DROP DATABASE testdb_9401;
+disconnect node_2;
+disconnect node_1;
# End of tests
diff --git a/mysql-test/suite/galera/r/galera_ftwrl.result b/mysql-test/suite/galera/r/galera_ftwrl.result
index c216b52650b..0565781c051 100644
--- a/mysql-test/suite/galera/r/galera_ftwrl.result
+++ b/mysql-test/suite/galera/r/galera_ftwrl.result
@@ -1,7 +1,10 @@
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB;
+connection node_2;
SET GLOBAL wsrep_provider_options = "repl.causal_read_timeout=PT1S";
FLUSH TABLES WITH READ LOCK;
+connection node_1;
INSERT INTO t1 VALUES (1);
+connection node_2;
SHOW TABLES;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
SELECT * FROM t1;
diff --git a/mysql-test/suite/galera/r/galera_gcs_fc_limit.result b/mysql-test/suite/galera/r/galera_gcs_fc_limit.result
index ad60ead4b8a..a1ba8672eae 100644
--- a/mysql-test/suite/galera/r/galera_gcs_fc_limit.result
+++ b/mysql-test/suite/galera/r/galera_gcs_fc_limit.result
@@ -1,16 +1,22 @@
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
SET GLOBAL wsrep_provider_options = 'gcs.fc_limit=1';
FLUSH TABLES WITH READ LOCK;
+connection node_1;
INSERT INTO t1 VALUES (2);
INSERT INTO t1 VALUES (3);
INSERT INTO t1 VALUES (4);
INSERT INTO t1 VALUES (5);
+connection node_1a;
+connection node_2;
UNLOCK TABLES;
+connection node_1;
INSERT INTO t1 VALUES (6);
+connection node_2;
SELECT COUNT(*) = 6 FROM t1;
COUNT(*) = 6
1
diff --git a/mysql-test/suite/galera/r/galera_gtid.result b/mysql-test/suite/galera/r/galera_gtid.result
index 546c29cb49a..acc5eae9876 100644
--- a/mysql-test/suite/galera/r/galera_gtid.result
+++ b/mysql-test/suite/galera/r/galera_gtid.result
@@ -1,9 +1,11 @@
CREATE TABLE t1 (f1 INT PRIMARY KEY);
INSERT INTO t1 VALUES (1);
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
UPDATE t1 SET f1 = 2;
+connection node_1;
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
diff --git a/mysql-test/suite/galera/r/galera_insert_ignore.result b/mysql-test/suite/galera/r/galera_insert_ignore.result
index b53b5795416..d21fb2b02d0 100644
--- a/mysql-test/suite/galera/r/galera_insert_ignore.result
+++ b/mysql-test/suite/galera/r/galera_insert_ignore.result
@@ -1,5 +1,7 @@
SET GLOBAL wsrep_sync_wait = 7;
+connection node_2;
SET GLOBAL wsrep_sync_wait = 7;
+connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
INSERT IGNORE INTO t1 VALUES (1), (2);
@@ -9,10 +11,12 @@ SELECT * FROM t1;
f1
1
2
+connection node_2;
SELECT * FROM t1;
f1
1
2
+connection node_2;
CREATE TABLE t2 (f1 INTEGER) ENGINE=InnoDB;
INSERT INTO t2 VALUES (0), (2), (3);
INSERT IGNORE INTO t1 SELECT f1 FROM t2;
@@ -24,14 +28,17 @@ f1
1
2
3
+connection node_1;
SELECT * FROM t1;
f1
0
1
2
3
+connection node_2;
CREATE TABLE t3 (f1 INTEGER UNIQUE) Engine=InnoDB;
INSERT INTO t3 VALUES (NULL);
+connection node_1;
INSERT IGNORE INTO t3 VALUES (1), (NULL), (2);
SELECT * FROM t3;
f1
@@ -39,6 +46,7 @@ NULL
NULL
1
2
+connection node_2;
SELECT * FROM t3;
f1
NULL
@@ -46,6 +54,7 @@ NULL
1
2
SET GLOBAL wsrep_sync_wait = (SELECT @@wsrep_sync_wait);
+connection node_1;
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
diff --git a/mysql-test/suite/galera/r/galera_insert_multi.result b/mysql-test/suite/galera/r/galera_insert_multi.result
index 33717781f2c..38bb5c26d20 100644
--- a/mysql-test/suite/galera/r/galera_insert_multi.result
+++ b/mysql-test/suite/galera/r/galera_insert_multi.result
@@ -1,57 +1,76 @@
+connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1),(2);
+connection node_2;
INSERT INTO t1 VALUES (3),(4);
+connection node_1;
SELECT COUNT(*) = 4 FROM t1;
COUNT(*) = 4
1
+connection node_2;
SELECT COUNT(*) = 4 FROM t1;
COUNT(*) = 4
1
DROP TABLE t1;
+connection node_2;
CREATE TABLE t1 (f1 INTEGER, KEY (f1)) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1),(1);
+connection node_1;
INSERT INTO t1 VALUES (2),(2);
+connection node_2;
SELECT COUNT(*) = 4 FROM t1;
COUNT(*) = 4
1
+connection node_1;
SELECT COUNT(*) = 4 FROM t1;
COUNT(*) = 4
1
DROP TABLE t1;
+connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (1);
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
+connection node_2;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
DROP TABLE t1;
+connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
SET AUTOCOMMIT = OFF;
START TRANSACTION;
INSERT INTO t1 VALUES (1), (2);
+connection node_2;
SET AUTOCOMMIT = OFF;
START TRANSACTION;
INSERT INTO t1 VALUES (2), (1);
+connection node_1;
COMMIT;
+connection node_2;
COMMIT;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
ROLLBACK;
INSERT INTO t1 VALUES (1), (2);
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
DROP TABLE t1;
+connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
START TRANSACTION;
INSERT INTO t1 VALUES (1), (2);
+connection node_2;
START TRANSACTION;
INSERT INTO t1 VALUES (2), (1);
+connection node_1;
ROLLBACK;
+connection node_2;
COMMIT;
SELECT COUNT(*) = 2 FROM t1;
COUNT(*) = 2
1
+connection node_1;
SELECT COUNT(*) = 2 FROM t1;
COUNT(*) = 2
1
diff --git a/mysql-test/suite/galera/r/galera_ist_mysqldump.result b/mysql-test/suite/galera/r/galera_ist_mysqldump.result
index 9a5b4e8a76f..788d60051b5 100644
--- a/mysql-test/suite/galera/r/galera_ist_mysqldump.result
+++ b/mysql-test/suite/galera/r/galera_ist_mysqldump.result
@@ -1,4 +1,5 @@
Setting SST method to mysqldump ...
+CREATE USER 'sst';
GRANT ALL PRIVILEGES ON *.* TO 'sst';
SET GLOBAL wsrep_sst_auth = 'sst:';
SET GLOBAL wsrep_sst_method = 'mysqldump';
diff --git a/mysql-test/suite/galera/r/galera_kill_applier.result b/mysql-test/suite/galera/r/galera_kill_applier.result
index fe4911639ed..6fa632c242f 100644
--- a/mysql-test/suite/galera/r/galera_kill_applier.result
+++ b/mysql-test/suite/galera/r/galera_kill_applier.result
@@ -1,3 +1,4 @@
+connection node_1;
Got one of the listed errors
Got one of the listed errors
Got one of the listed errors
diff --git a/mysql-test/suite/galera/r/galera_kill_ddl.result b/mysql-test/suite/galera/r/galera_kill_ddl.result
index 8dd36497dfb..c5b3e31b80e 100644
--- a/mysql-test/suite/galera/r/galera_kill_ddl.result
+++ b/mysql-test/suite/galera/r/galera_kill_ddl.result
@@ -1,11 +1,17 @@
+connection node_1;
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true';
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
+connection node_2;
Killing server ...
+connection node_1;
ALTER TABLE t1 ADD COLUMN f2 INTEGER;
+connection node_2;
+connection node_2a;
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='t1';
COUNT(*) = 2
1
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
VARIABLE_VALUE = 2
1
+connection node_1;
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/galera_kill_smallchanges.result b/mysql-test/suite/galera/r/galera_kill_smallchanges.result
index 8409740a035..bcd7d6fd15d 100644
--- a/mysql-test/suite/galera/r/galera_kill_smallchanges.result
+++ b/mysql-test/suite/galera/r/galera_kill_smallchanges.result
@@ -1,11 +1,17 @@
+connection node_1;
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true';
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
+connection node_2;
Killing server ...
+connection node_1;
INSERT INTO t1 VALUES (1);
+connection node_2;
+connection node_2a;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
VARIABLE_VALUE = 2
1
+connection node_1;
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/galera_lock_table.result b/mysql-test/suite/galera/r/galera_lock_table.result
index 16e9037a4de..c15f61d298e 100644
--- a/mysql-test/suite/galera/r/galera_lock_table.result
+++ b/mysql-test/suite/galera/r/galera_lock_table.result
@@ -1,8 +1,11 @@
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB;
CREATE TABLE t2 (id INT PRIMARY KEY) ENGINE=InnoDB;
+connection node_2;
LOCK TABLE t1 READ;
+connection node_1;
INSERT INTO t1 VALUES (1);
INSERT INTO t2 VALUES (1);
+connection node_2a;
SET SESSION wsrep_sync_wait=0;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
@@ -10,6 +13,7 @@ COUNT(*) = 0
SELECT COUNT(*) = 0 FROM t2;
COUNT(*) = 0
1
+connection node_2;
UNLOCK TABLES;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
diff --git a/mysql-test/suite/galera/r/galera_log_bin.result b/mysql-test/suite/galera/r/galera_log_bin.result
index 4772f347375..576a72eb55f 100644
--- a/mysql-test/suite/galera/r/galera_log_bin.result
+++ b/mysql-test/suite/galera/r/galera_log_bin.result
@@ -3,12 +3,14 @@ INSERT INTO t1 VALUES (1);
CREATE TABLE t2 (id INT) ENGINE=InnoDB;
INSERT INTO t2 VALUES (1);
INSERT INTO t2 VALUES (1);
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
SELECT COUNT(*) = 2 FROM t2;
COUNT(*) = 2
1
+connection node_1;
ALTER TABLE t1 ADD COLUMN f2 INTEGER;
FLUSH LOGS;
SHOW BINLOG EVENTS IN 'mysqld-bin.000002' LIMIT 4,18;
@@ -31,6 +33,7 @@ mysqld-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F
mysqld-bin.000002 # Xid # # COMMIT /* xid=# */
mysqld-bin.000002 # Gtid # # GTID 0-1-6
mysqld-bin.000002 # Query # # use `test`; ALTER TABLE t1 ADD COLUMN f2 INTEGER
+connection node_2;
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
COUNT(*) = 2
1
@@ -56,4 +59,5 @@ mysqld-bin.000003 # Gtid # # GTID 0-1-6
mysqld-bin.000003 # Query # # use `test`; ALTER TABLE t1 ADD COLUMN f2 INTEGER
DROP TABLE t1;
DROP TABLE t2;
+connection node_1;
RESET MASTER;
diff --git a/mysql-test/suite/galera/r/galera_many_indexes.result b/mysql-test/suite/galera/r/galera_many_indexes.result
index ab6eec550a1..59d0194687f 100644
--- a/mysql-test/suite/galera/r/galera_many_indexes.result
+++ b/mysql-test/suite/galera/r/galera_many_indexes.result
@@ -63,6 +63,7 @@ CREATE UNIQUE INDEX i3 ON t1(f1);
CREATE UNIQUE INDEX i2 ON t1(f1);
CREATE UNIQUE INDEX i1 ON t1(f1);
INSERT INTO t1 VALUES (REPEAT('a', 767));
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
@@ -91,6 +92,7 @@ INSERT INTO t1 VALUES (REPEAT('b', 767));
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
+connection node_1;
SELECT COUNT(*) = 2 FROM t1;
COUNT(*) = 2
1
@@ -98,6 +100,7 @@ ANALYZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
DELETE FROM t1 WHERE f1 = REPEAT('b', 767);
+connection node_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
SELECT COUNT(*) = 1 FROM t1;
@@ -108,16 +111,23 @@ ROLLBACK;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
+connection node_2;
START TRANSACTION;
SET AUTOCOMMIT=OFF;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
+connection node_1;
START TRANSACTION;
+connection node_2;
START TRANSACTION;
+connection node_1;
UPDATE t1 SET f1 = REPEAT('e', 767);
+connection node_2;
UPDATE t1 SET f1 = REPEAT('f', 767);
+connection node_1;
COMMIT;
+connection node_2;
COMMIT;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/galera_mdl_race.result b/mysql-test/suite/galera/r/galera_mdl_race.result
index 535f20de7f1..0c83ead931e 100644
--- a/mysql-test/suite/galera/r/galera_mdl_race.result
+++ b/mysql-test/suite/galera/r/galera_mdl_race.result
@@ -2,24 +2,32 @@ CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(1));
CREATE TABLE t2 (f1 INTEGER PRIMARY KEY, f2 CHAR(1));
INSERT INTO t1 VALUES (1, 'a');
INSERT INTO t1 VALUES (2, 'a');
+connection node_1;
SET AUTOCOMMIT=ON;
START TRANSACTION;
UPDATE t1 SET f2 = 'b' WHERE f1 = 1;
+connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
+connection node_1a;
LOCK TABLE t2 WRITE;
+connection node_1;
SET GLOBAL DEBUG = "d,sync.wsrep_before_mdl_wait";
Warnings:
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
SELECT * FROM t2;;
+connection node_1a;
SET GLOBAL DEBUG = "d,sync.wsrep_after_BF_victim_lock";
Warnings:
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
+connection node_2;
UPDATE t1 SET f2 = 'c' WHERE f1 = 1;
+connection node_1a;
SET GLOBAL DEBUG = "";
Warnings:
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
SET DEBUG_SYNC = "now SIGNAL signal.wsrep_before_mdl_wait";
SET DEBUG_SYNC = "now SIGNAL signal.wsrep_after_BF_victim_lock";
UNLOCK TABLES;
+connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'a';
COUNT(*) = 1
@@ -27,6 +35,7 @@ COUNT(*) = 1
SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'c';
COUNT(*) = 1
1
+connection node_2;
SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'a';
COUNT(*) = 1
1
@@ -35,4 +44,5 @@ COUNT(*) = 1
1
DROP TABLE t1;
DROP TABLE t2;
+connection node_1a;
SET DEBUG_SYNC = "RESET";
diff --git a/mysql-test/suite/galera/r/galera_multi_database.result b/mysql-test/suite/galera/r/galera_multi_database.result
index a04eb484caf..f6242de663b 100644
--- a/mysql-test/suite/galera/r/galera_multi_database.result
+++ b/mysql-test/suite/galera/r/galera_multi_database.result
@@ -2,13 +2,17 @@ CREATE DATABASE d1;
CREATE TABLE d1.t1(f1 INTEGER) ENGINE=InnoDB;
CREATE DATABASE d2;
CREATE TABLE d2.t1(f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
+connection node_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
INSERT INTO d1.t1 VALUES (1);
+connection node_2;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
INSERT INTO d2.t1 VALUES (1);
+connection node_1;
COMMIT;
+connection node_2;
COMMIT;
SELECT COUNT(*) = 1 FROM d1.t1;
COUNT(*) = 1
@@ -16,6 +20,7 @@ COUNT(*) = 1
SELECT COUNT(*) = 1 FROM d2.t1;
COUNT(*) = 1
1
+connection node_1;
SELECT COUNT(*) = 1 FROM d1.t1;
COUNT(*) = 1
1
diff --git a/mysql-test/suite/galera/r/galera_myisam_autocommit.result b/mysql-test/suite/galera/r/galera_myisam_autocommit.result
index 3f8d93bae76..e9578a261e6 100644
--- a/mysql-test/suite/galera/r/galera_myisam_autocommit.result
+++ b/mysql-test/suite/galera/r/galera_myisam_autocommit.result
@@ -14,6 +14,7 @@ DELETE FROM t1 WHERE f1 = 9;
DELETE FROM t2 WHERE f1 = 9;
TRUNCATE TABLE t1;
TRUNCATE TABLE t1;
+connection node_2;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
diff --git a/mysql-test/suite/galera/r/galera_myisam_transactions.result b/mysql-test/suite/galera/r/galera_myisam_transactions.result
index 284f92b414c..25796c309d1 100644
--- a/mysql-test/suite/galera/r/galera_myisam_transactions.result
+++ b/mysql-test/suite/galera/r/galera_myisam_transactions.result
@@ -7,6 +7,7 @@ START TRANSACTION;
INSERT INTO t1 VALUES (1);
INSERT INTO t2 VALUES (1);
COMMIT;
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
@@ -16,12 +17,14 @@ COUNT(*) = 0
SELECT COUNT(*) = 0 FROM t2;
COUNT(*) = 0
1
+connection node_1;
START TRANSACTION;
INSERT INTO t1 VALUES (1);
INSERT INTO t2 VALUES (1);
ROLLBACK;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
diff --git a/mysql-test/suite/galera/r/galera_nopk_bit.result b/mysql-test/suite/galera/r/galera_nopk_bit.result
index 5723dac42fd..7662c15c672 100644
--- a/mysql-test/suite/galera/r/galera_nopk_bit.result
+++ b/mysql-test/suite/galera/r/galera_nopk_bit.result
@@ -1,5 +1,6 @@
CREATE TABLE t1 (f1 BIT) ENGINE=InnoDB;
INSERT INTO t1 VALUES (NULL),(0),(b'1');
+connection node_2;
SELECT f1 IS NULL, f1 = b'1' FROM t1;
f1 IS NULL f1 = b'1'
1 NULL
@@ -8,19 +9,24 @@ f1 IS NULL f1 = b'1'
DELETE FROM t1 WHERE f1 = b'1';
UPDATE t1 SET f1 = b'1' WHERE f1 IS NULL;
UPDATE t1 SET f1 = 1 WHERE f1 = b'0';
+connection node_1;
SELECT f1 IS NULL, f1 = b'1' FROM t1;
f1 IS NULL f1 = b'1'
0 1
0 1
+connection node_1;
CREATE TABLE t2 (f1 BIT) ENGINE=InnoDB;
INSERT INTO t2 VALUES (NULL);
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t2 SET f1 = 0 WHERE f1 IS NULL;
+connection node_2;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t2 SET f1 = 1 WHERE f1 IS NULL;
+connection node_1;
COMMIT;
+connection node_2;
COMMIT;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/galera_nopk_blob.result b/mysql-test/suite/galera/r/galera_nopk_blob.result
index 7491b715ed2..a7570c2cfee 100644
--- a/mysql-test/suite/galera/r/galera_nopk_blob.result
+++ b/mysql-test/suite/galera/r/galera_nopk_blob.result
@@ -1,26 +1,32 @@
CREATE TABLE t1 (f1 BLOB) ENGINE=InnoDB;
INSERT INTO t1 VALUES (NULL),('abc');
+connection node_2;
SELECT f1 FROM t1;
f1
NULL
abc
DELETE FROM t1 WHERE f1 IS NULL;
UPDATE t1 SET f1 = 'xyz' WHERE f1 = 'abc';
+connection node_1;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
SELECT f1 = 'abc' FROM t1;
f1 = 'abc'
0
+connection node_1;
CREATE TABLE t2 (f1 BLOB) ENGINE=InnoDB;
INSERT INTO t2 VALUES (NULL);
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t2 SET f1 = 'abc' WHERE f1 IS NULL;
+connection node_2;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t2 SET f1 = 'xyz' WHERE f1 IS NULL;
+connection node_1;
COMMIT;
+connection node_2;
COMMIT;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/galera_nopk_large_varchar.result b/mysql-test/suite/galera/r/galera_nopk_large_varchar.result
index abca81e15b0..08cffaa2bd1 100644
--- a/mysql-test/suite/galera/r/galera_nopk_large_varchar.result
+++ b/mysql-test/suite/galera/r/galera_nopk_large_varchar.result
@@ -1,11 +1,13 @@
CREATE TABLE t1 (f1 VARCHAR(8000)) ENGINE=InnoDB;
INSERT INTO t1 VALUES (NULL),(CONCAT(REPEAT('x', 7999), 'a'));
+connection node_2;
SELECT LENGTH(f1) FROM t1;
LENGTH(f1)
NULL
8000
DELETE FROM t1 WHERE f1 IS NULL;
UPDATE t1 SET f1 = CONCAT(REPEAT('x', 7999), 'b') WHERE f1 = CONCAT(REPEAT('x', 7999), 'a');
+connection node_1;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
@@ -15,15 +17,19 @@ LENGTH(f1) = 8000
SELECT f1 = CONCAT(REPEAT('x', 7999), 'b') FROM t1;
f1 = CONCAT(REPEAT('x', 7999), 'b')
1
+connection node_1;
CREATE TABLE t2 (f1 BLOB) ENGINE=InnoDB;
INSERT INTO t2 VALUES (CONCAT(REPEAT('x', 7999), 'a'));
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t2 SET f1 = 'abc' WHERE f1 = CONCAT(REPEAT('x', 7999), 'a');
+connection node_2;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t2 SET f1 = 'xyz' WHERE f1 = CONCAT(REPEAT('x', 7999), 'a');
+connection node_1;
COMMIT;
+connection node_2;
COMMIT;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/galera_nopk_unicode.result b/mysql-test/suite/galera/r/galera_nopk_unicode.result
index 68d049a2146..882a91a29b5 100644
--- a/mysql-test/suite/galera/r/galera_nopk_unicode.result
+++ b/mysql-test/suite/galera/r/galera_nopk_unicode.result
@@ -3,16 +3,21 @@ f1 VARCHAR(255),
KEY (f1)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO t1 VALUES ('текÑÑ‚');
+connection node_2;
SELECT f1 = 'текÑÑ‚' FROM t1;
f1 = 'текÑÑ‚'
1
+connection node_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t1 SET f1 = 'текÑÑ‚2';
+connection node_2;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t1 SET f1 = 'текÑÑ‚3';
+connection node_1;
COMMIT;
+connection node_2;
COMMIT;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
SELECT f1 = 'текÑÑ‚2' FROM t1;
diff --git a/mysql-test/suite/galera/r/galera_parallel_apply_lock_table.result b/mysql-test/suite/galera/r/galera_parallel_apply_lock_table.result
index db4528ac22d..bf4b056a6e4 100644
--- a/mysql-test/suite/galera/r/galera_parallel_apply_lock_table.result
+++ b/mysql-test/suite/galera/r/galera_parallel_apply_lock_table.result
@@ -1,9 +1,12 @@
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB;
CREATE TABLE t2 (id INT PRIMARY KEY) ENGINE=InnoDB;
+connection node_2;
SET GLOBAL wsrep_slave_threads = 2;
LOCK TABLE t1 READ;
+connection node_1;
INSERT INTO t1 VALUES (1);
INSERT INTO t2 VALUES (1);
+connection node_2a;
SET SESSION wsrep_sync_wait=0;
SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE '%applied write set%';
COUNT(*) = 1
@@ -17,7 +20,9 @@ COUNT(*) = 0
SELECT COUNT(*) = 0 FROM t2;
COUNT(*) = 0
1
+connection node_2;
UNLOCK TABLES;
+connection node_2a;
SET SESSION wsrep_sync_wait = 7;;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
diff --git a/mysql-test/suite/galera/r/galera_pc_ignore_sb.result b/mysql-test/suite/galera/r/galera_pc_ignore_sb.result
index 5fcccfe2d59..e02ec0a3179 100644
--- a/mysql-test/suite/galera/r/galera_pc_ignore_sb.result
+++ b/mysql-test/suite/galera/r/galera_pc_ignore_sb.result
@@ -1,5 +1,10 @@
+connection node_1;
+connection node_2;
+connection node_1;
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true';
+connection node_2;
Killing server ...
+connection node_1;
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
DROP TABLE t1;
@@ -10,3 +15,4 @@ SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABL
VARIABLE_VALUE = 'ON'
1
SET GLOBAL wsrep_cluster_address = '';
+connection node_2;
diff --git a/mysql-test/suite/galera/r/galera_pk_bigint_signed.result b/mysql-test/suite/galera/r/galera_pk_bigint_signed.result
index a3075994657..27bb3c50733 100644
--- a/mysql-test/suite/galera/r/galera_pk_bigint_signed.result
+++ b/mysql-test/suite/galera/r/galera_pk_bigint_signed.result
@@ -3,23 +3,29 @@ INSERT INTO t1 VALUES
(-9223372036854775808, 'min'),
(9223372036854775807, 'max')
;
+connection node_2;
SELECT * FROM t1;
f1 f2
-9223372036854775808 min
9223372036854775807 max
UPDATE t1 SET f2 = CONCAT(f2, '_');
+connection node_1;
SELECT * FROM t1;
f1 f2
-9223372036854775808 min_
9223372036854775807 max_
+connection node_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t1 SET f2 = 'foo' WHERE f1 = -9223372036854775808;
+connection node_2;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t1 SET f2 = 'bar' WHERE f1 = -9223372036854775808;
+connection node_1;
COMMIT;
SET AUTOCOMMIT=ON;
+connection node_2;
COMMIT;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
SET AUTOCOMMIT=ON;
diff --git a/mysql-test/suite/galera/r/galera_pk_bigint_unsigned.result b/mysql-test/suite/galera/r/galera_pk_bigint_unsigned.result
index 441926e949c..f586fe2f589 100644
--- a/mysql-test/suite/galera/r/galera_pk_bigint_unsigned.result
+++ b/mysql-test/suite/galera/r/galera_pk_bigint_unsigned.result
@@ -2,21 +2,27 @@ CREATE TABLE t1 (f1 BIGINT UNSIGNED PRIMARY KEY, f2 VARCHAR(5)) ENGINE=InnoDB;
INSERT INTO t1 VALUES
(18446744073709551615, 'max')
;
+connection node_2;
SELECT f1 = 18446744073709551615 FROM t1;
f1 = 18446744073709551615
1
UPDATE t1 SET f2 = CONCAT(f2, '_');
+connection node_1;
SELECT f1 = 18446744073709551615 FROM t1;
f1 = 18446744073709551615
1
+connection node_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t1 SET f2 = 'foo' WHERE f1 = 18446744073709551615;
+connection node_2;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t1 SET f2 = 'bar' WHERE f1 = 18446744073709551615;
+connection node_1;
COMMIT;
SET AUTOCOMMIT=ON;
+connection node_2;
COMMIT;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
SET AUTOCOMMIT=ON;
diff --git a/mysql-test/suite/galera/r/galera_prepared_statement.result b/mysql-test/suite/galera/r/galera_prepared_statement.result
index de5ac9c760a..d32d412ff46 100644
--- a/mysql-test/suite/galera/r/galera_prepared_statement.result
+++ b/mysql-test/suite/galera/r/galera_prepared_statement.result
@@ -11,6 +11,7 @@ EXECUTE st1;
EXECUTE st2;
EXECUTE st3;
EXECUTE st4;
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
@@ -25,8 +26,10 @@ COUNT(*) = 1
1
ALTER TABLE t1 ADD COLUMN f2 INTEGER;
ALTER TABLE t1 DROP COLUMN f1;
+connection node_1;
EXECUTE st1;
ERROR 22007: Incorrect integer value: 'abc' for column 'f2' at row 1
+connection node_1;
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
diff --git a/mysql-test/suite/galera/r/galera_query_cache.result b/mysql-test/suite/galera/r/galera_query_cache.result
index 502d8a58e9c..e64c9438646 100644
--- a/mysql-test/suite/galera/r/galera_query_cache.result
+++ b/mysql-test/suite/galera/r/galera_query_cache.result
@@ -1,5 +1,6 @@
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
+connection node_2;
RESET QUERY CACHE;
FLUSH STATUS;
SELECT COUNT(*) FROM t1;
@@ -14,7 +15,9 @@ COUNT(*)
SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'Qcache_hits';
VARIABLE_VALUE = 1
1
+connection node_1;
INSERT INTO t1 VALUES (2);
+connection node_2;
FLUSH STATUS;
SELECT VARIABLE_VALUE = 0 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Qcache_queries_in_cache';
VARIABLE_VALUE = 0
@@ -34,7 +37,9 @@ COUNT(*)
SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'Qcache_hits';
VARIABLE_VALUE = 1
1
+connection node_1;
ALTER TABLE t1 ADD COLUMN f2 INTEGER;
+connection node_2;
FLUSH STATUS;
SELECT VARIABLE_VALUE = 0 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Qcache_queries_in_cache';
VARIABLE_VALUE = 0
diff --git a/mysql-test/suite/galera/r/galera_query_cache_sync_wait.result b/mysql-test/suite/galera/r/galera_query_cache_sync_wait.result
index 856abbb43be..2a37d62698a 100644
--- a/mysql-test/suite/galera/r/galera_query_cache_sync_wait.result
+++ b/mysql-test/suite/galera/r/galera_query_cache_sync_wait.result
@@ -1,5 +1,6 @@
CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
+connection node_2;
SET GLOBAL wsrep_provider_options = "repl.causal_read_timeout=PT1S";
SET GLOBAL DEBUG = "d,sync.wsrep_apply_cb";
Warnings:
@@ -8,7 +9,9 @@ SET SESSION wsrep_sync_wait = 7;
SELECT MAX(id) FROM t1;
MAX(id)
1
+connection node_1;
INSERT INTO t1 VALUES (2);
+connection node_2;
SELECT MAX(id) FROM t1;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
SET GLOBAL DEBUG = "";
@@ -21,14 +24,18 @@ SET GLOBAL DEBUG = "d,sync.wsrep_apply_cb";
Warnings:
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
SET DEBUG_SYNC = "RESET";
+connection node_1;
INSERT INTO t1 VALUES (3);
+connection node_2;
SELECT MAX(id) FROM t1;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
SET GLOBAL DEBUG = "";
Warnings:
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
SET DEBUG_SYNC = "now SIGNAL signal.wsrep_apply_cb";
+connection node_1;
INSERT INTO t1 VALUES (4);
+connection node_2;
SET SESSION wsrep_sync_wait = 7;
SELECT MAX(id) FROM t1;
MAX(id)
@@ -44,13 +51,18 @@ VARIABLE_VALUE = 1
SET GLOBAL DEBUG = "d,sync.wsrep_apply_cb";
Warnings:
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
+connection node_1;
INSERT INTO t1 VALUES (5);
+connection node_2;
SET SESSION wsrep_sync_wait = 7;
SELECT MAX(id) FROM t1 ;
+connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2;
+connection node_2a;
SET GLOBAL DEBUG = "";
Warnings:
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
SET DEBUG_SYNC = "now SIGNAL signal.wsrep_apply_cb";
+connection node_2;
MAX(id)
5
SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'Qcache_hits';
diff --git a/mysql-test/suite/galera/r/galera_read_only.result b/mysql-test/suite/galera/r/galera_read_only.result
index 82736c5f4ba..4c2523f8691 100644
--- a/mysql-test/suite/galera/r/galera_read_only.result
+++ b/mysql-test/suite/galera/r/galera_read_only.result
@@ -1,15 +1,21 @@
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB;
+connection node_2;
SET GLOBAL read_only=TRUE;
+connection node_1;
INSERT INTO t1 VALUES (1);
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
CREATE USER foo@localhost;
# Open connection to node 2 using 'foo' user.
+connect foo_node_2,127.0.0.1,foo,,test,$port_2,;
# Connect with foo_node_2
+connection foo_node_2;
INSERT INTO t1 VALUES (2);
ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
diff --git a/mysql-test/suite/galera/r/galera_repl_key_format_flat16.result b/mysql-test/suite/galera/r/galera_repl_key_format_flat16.result
index 4acf0143f8b..2470f59c497 100644
--- a/mysql-test/suite/galera/r/galera_repl_key_format_flat16.result
+++ b/mysql-test/suite/galera/r/galera_repl_key_format_flat16.result
@@ -1,13 +1,16 @@
+connection node_1;
SET GLOBAL wsrep_provider_options = 'repl.key_format=FLAT16';
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (123);
CREATE TABLE t2 (f1 VARCHAR(256)) ENGINE=InnoDB;
INSERT INTO t2 VALUES (REPEAT('a', 256));
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
UPDATE t1 SET f1 = 234;
UPDATE t2 SET f1 = REPEAT('b', 256);
+connection node_1;
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 234;
COUNT(*) = 1
1
diff --git a/mysql-test/suite/galera/r/galera_repl_max_ws_size.result b/mysql-test/suite/galera/r/galera_repl_max_ws_size.result
index 6e245b44462..00980181824 100644
--- a/mysql-test/suite/galera/r/galera_repl_max_ws_size.result
+++ b/mysql-test/suite/galera/r/galera_repl_max_ws_size.result
@@ -1,3 +1,4 @@
+connection node_1;
CREATE TABLE t1 (f1 VARCHAR(512)) ENGINE=InnoDB;
SET GLOBAL wsrep_provider_options = 'repl.max_ws_size=512';
INSERT INTO t1 VALUES (REPEAT('a', 512));
diff --git a/mysql-test/suite/galera/r/galera_restart_nochanges.result b/mysql-test/suite/galera/r/galera_restart_nochanges.result
index accace97826..380a4812da1 100644
--- a/mysql-test/suite/galera/r/galera_restart_nochanges.result
+++ b/mysql-test/suite/galera/r/galera_restart_nochanges.result
@@ -1,5 +1,10 @@
+connection node_1;
+connection node_2;
+connection node_1;
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
+connection node_2;
+connection node_2a;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
diff --git a/mysql-test/suite/galera/r/galera_roles.result b/mysql-test/suite/galera/r/galera_roles.result
index c0cdbc0e338..1617f0d7b51 100644
--- a/mysql-test/suite/galera/r/galera_roles.result
+++ b/mysql-test/suite/galera/r/galera_roles.result
@@ -3,6 +3,7 @@
#
# On node_1
+connection node_1;
CREATE DATABASE test1;
CREATE TABLE test1.t1 (a int, b int);
CREATE TABLE test1.t2 (a int, b int);
@@ -18,8 +19,11 @@ GRANT EXECUTE ON PROCEDURE test1.pr1 TO role1;
GRANT SELECT ON test1.t1 TO role1;
GRANT SELECT (a) ON test1.t2 TO role1;
# Open connections to the 2 nodes using 'foo' user.
+connect foo_node_1,127.0.0.1,foo,,test,$port_1,;
+connect foo_node_2,127.0.0.1,foo,,test,$port_2,;
# Connect with foo_node_1
+connection foo_node_1;
SHOW GRANTS;
Grants for foo@localhost
GRANT role1 TO 'foo'@'localhost'
@@ -55,6 +59,7 @@ pr1
pr1
# Connect with foo_node_2
+connection foo_node_2;
SHOW GRANTS;
Grants for foo@localhost
GRANT role1 TO 'foo'@'localhost'
@@ -93,13 +98,16 @@ pr1
#
#
# Connect with node_1
+connection node_1;
REVOKE EXECUTE ON PROCEDURE test1.pr1 FROM role1;
# Connect with foo_node_1
+connection foo_node_1;
CALL test1.pr1();
ERROR 42000: execute command denied to user 'foo'@'localhost' for routine 'test1.pr1'
# Connect with foo_node_2
+connection foo_node_2;
CALL test1.pr1();
ERROR 42000: execute command denied to user 'foo'@'localhost' for routine 'test1.pr1'
#
@@ -107,9 +115,11 @@ ERROR 42000: execute command denied to user 'foo'@'localhost' for routine 'test1
#
# Connect with node_1
+connection node_1;
DROP ROLE role1;
# Connect with foo_node_1
+connection foo_node_1;
FLUSH TABLES;
SELECT * FROM mysql.roles_mapping;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 'roles_mapping'
@@ -131,6 +141,7 @@ CURRENT_ROLE()
role1
# Connect with foo_node_2
+connection foo_node_2;
FLUSH TABLES;
SELECT * FROM mysql.roles_mapping;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 'roles_mapping'
@@ -150,7 +161,11 @@ NULL
SELECT CURRENT_ROLE();
CURRENT_ROLE()
role1
+disconnect foo_node_2;
# Connect with node_1
+connection node_1;
DROP USER foo@localhost;
DROP DATABASE test1;
+disconnect node_2;
+disconnect node_1;
# End of test
diff --git a/mysql-test/suite/galera/r/galera_rsu_error.result b/mysql-test/suite/galera/r/galera_rsu_error.result
index bfe41390d1d..5c16e34b492 100644
--- a/mysql-test/suite/galera/r/galera_rsu_error.result
+++ b/mysql-test/suite/galera/r/galera_rsu_error.result
@@ -1,5 +1,6 @@
CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB;
INSERT INTO t1 VALUES (1), (1);
+connection node_2;
SET SESSION wsrep_OSU_method = "RSU";
ALTER TABLE t1 ADD PRIMARY KEY (f1);
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
@@ -8,6 +9,7 @@ SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME =
COUNT(*) = 0
1
INSERT INTO t1 VALUES (1);
+connection node_1;
SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = 't1';
COUNT(*) = 0
1
@@ -15,6 +17,7 @@ SELECT COUNT(*) = 3 FROM t1;
COUNT(*) = 3
1
INSERT INTO t1 VALUES (1);
+connection node_2;
SELECT COUNT(3) = 4 FROM t1;
COUNT(3) = 4
1
diff --git a/mysql-test/suite/galera/r/galera_rsu_simple.result b/mysql-test/suite/galera/r/galera_rsu_simple.result
index 4c2780a2933..d0ddcfb4d64 100644
--- a/mysql-test/suite/galera/r/galera_rsu_simple.result
+++ b/mysql-test/suite/galera/r/galera_rsu_simple.result
@@ -1,17 +1,21 @@
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB;
+connection node_2;
SET SESSION wsrep_OSU_method = "RSU";
ALTER TABLE t1 ADD COLUMN f2 INTEGER;
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
COUNT(*) = 2
1
+connection node_1;
SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
COUNT(*) = 1
1
INSERT INTO t1 VALUES (1);
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
INSERT INTO t1 (f1) VALUES (2);
+connection node_1;
SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
COUNT(*) = 1
1
diff --git a/mysql-test/suite/galera/r/galera_rsu_wsrep_desync.result b/mysql-test/suite/galera/r/galera_rsu_wsrep_desync.result
index 62e327ffdee..2b2b80ee91c 100644
--- a/mysql-test/suite/galera/r/galera_rsu_wsrep_desync.result
+++ b/mysql-test/suite/galera/r/galera_rsu_wsrep_desync.result
@@ -1,10 +1,14 @@
+connection node_1;
CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB;
SET GLOBAL wsrep_desync=1;
SET wsrep_OSU_method=RSU;
SET DEBUG_SYNC = 'alter_table_before_open_tables WAIT_FOR continue';
ALTER TABLE t1 ADD COLUMN f2 INTEGER;;
+connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
+connection node_1a;
SET GLOBAL wsrep_desync=0;
SET DEBUG_SYNC= 'now SIGNAL continue';
+connection node_1;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -17,6 +21,7 @@ wsrep_desync OFF
SET wsrep_OSU_method=TOI;
DROP TABLE t1;
SET DEBUG_SYNC= 'RESET';
+connection node_1;
CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB;
SET GLOBAL wsrep_desync=0;
Warnings:
@@ -24,10 +29,12 @@ Warning 1231 'wsrep_desync' is already OFF.
SET wsrep_OSU_method=RSU;
SET DEBUG_SYNC = 'alter_table_before_open_tables WAIT_FOR continue';
ALTER TABLE t1 ADD COLUMN f2 INTEGER;;
+connection node_1a;
SET GLOBAL wsrep_desync=1;
ERROR HY000: Operation 'desync' failed for SET GLOBAL wsrep_desync=1
SET GLOBAL wsrep_desync=0;
SET DEBUG_SYNC= 'now SIGNAL continue';
+connection node_1;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -39,4 +46,5 @@ DROP TABLE t1;
SET DEBUG_SYNC= 'RESET';
CALL mtr.add_suppression("Protocol violation");
CALL mtr.add_suppression("desync failed");
+connection node_2;
CALL mtr.add_suppression("Protocol violation");
diff --git a/mysql-test/suite/galera/r/galera_sbr.result b/mysql-test/suite/galera/r/galera_sbr.result
index 0bf6cc7c9d3..61a58c9cb89 100644
--- a/mysql-test/suite/galera/r/galera_sbr.result
+++ b/mysql-test/suite/galera/r/galera_sbr.result
@@ -1,3 +1,4 @@
+connection node_1;
SET SESSION binlog_format = 'STATEMENT';
Warnings:
Warning 1105 MariaDB Galera does not support binlog format: STATEMENT
@@ -7,8 +8,10 @@ SET SESSION binlog_format = 'MIXED';
Warnings:
Warning 1105 MariaDB Galera does not support binlog format: MIXED
INSERT INTO t1 VALUES (2);
+connection node_2;
SELECT COUNT(*) = 2 FROM t1;
COUNT(*) = 2
1
DROP TABLE t1;
+connection node_1;
SET GLOBAL binlog_format = 'ROW';
diff --git a/mysql-test/suite/galera/r/galera_sbr_binlog.result b/mysql-test/suite/galera/r/galera_sbr_binlog.result
index 0bf6cc7c9d3..61a58c9cb89 100644
--- a/mysql-test/suite/galera/r/galera_sbr_binlog.result
+++ b/mysql-test/suite/galera/r/galera_sbr_binlog.result
@@ -1,3 +1,4 @@
+connection node_1;
SET SESSION binlog_format = 'STATEMENT';
Warnings:
Warning 1105 MariaDB Galera does not support binlog format: STATEMENT
@@ -7,8 +8,10 @@ SET SESSION binlog_format = 'MIXED';
Warnings:
Warning 1105 MariaDB Galera does not support binlog format: MIXED
INSERT INTO t1 VALUES (2);
+connection node_2;
SELECT COUNT(*) = 2 FROM t1;
COUNT(*) = 2
1
DROP TABLE t1;
+connection node_1;
SET GLOBAL binlog_format = 'ROW';
diff --git a/mysql-test/suite/galera/r/galera_serializable.result b/mysql-test/suite/galera/r/galera_serializable.result
index 90fe628e505..e81c3911b7d 100644
--- a/mysql-test/suite/galera/r/galera_serializable.result
+++ b/mysql-test/suite/galera/r/galera_serializable.result
@@ -1,27 +1,37 @@
+connection node_1;
CREATE TABLE t1 (id INT PRIMARY KEY, f2 INTEGER) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF;
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
START TRANSACTION;
SELECT * FROM t1;
id f2
+connection node_2;
INSERT INTO t1 VALUES (1,1);
+connection node_1;
SELECT * FROM t1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
ROLLBACK;
DELETE FROM t1;
+connection node_1;
INSERT INTO t1 VALUES (1,1);
START TRANSACTION;
SELECT * FROM t1;
id f2
1 1
+connection node_2;
UPDATE t1 SET f2 = 2;
+connection node_1;
UPDATE t1 SET f2 = 3;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
ROLLBACK;
DELETE FROM t1;
+connection node_1;
START TRANSACTION;
+connection node_1;
INSERT INTO t1 VALUES (1,1);
+connection node_2;
INSERT INTO t1 VALUES (1,2);
+connection node_1;
COMMIT;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/galera_server.result b/mysql-test/suite/galera/r/galera_server.result
index ef81bf376b0..cc08b826e82 100644
--- a/mysql-test/suite/galera/r/galera_server.result
+++ b/mysql-test/suite/galera/r/galera_server.result
@@ -1,20 +1,26 @@
+connection node_1;
# On node_1
CREATE SERVER s1
FOREIGN DATA WRAPPER mysql
OPTIONS (HOST 'foo');
+connection node_2;
# On node_2
SELECT * FROM mysql.servers;
Server_name Host Db Username Password Port Socket Wrapper Owner
s1 foo 3306 mysql
ALTER SERVER s1
OPTIONS (HOST 'bar');
+connection node_1;
# On node_1
SELECT * FROM mysql.servers;
Server_name Host Db Username Password Port Socket Wrapper Owner
s1 bar 3306 mysql
DROP SERVER s1;
+connection node_2;
# On node_2
SELECT COUNT(*)=0 FROM mysql.servers;
COUNT(*)=0
1
+disconnect node_2;
+disconnect node_1;
# End of test
diff --git a/mysql-test/suite/galera/r/galera_split_brain.result b/mysql-test/suite/galera/r/galera_split_brain.result
index 615615040fe..9c5952cfa28 100644
--- a/mysql-test/suite/galera/r/galera_split_brain.result
+++ b/mysql-test/suite/galera/r/galera_split_brain.result
@@ -1,5 +1,11 @@
call mtr.add_suppression("WSREP: TO isolation failed for: ");
+connection node_1;
+connection node_1;
+connection node_2;
+connection node_2;
Killing server ...
+connection node_1;
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
SET GLOBAL wsrep_cluster_address = '';
+connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2;
diff --git a/mysql-test/suite/galera/r/galera_sql_log_bin_zero.result b/mysql-test/suite/galera/r/galera_sql_log_bin_zero.result
index c15a24e481f..14407c917a1 100644
--- a/mysql-test/suite/galera/r/galera_sql_log_bin_zero.result
+++ b/mysql-test/suite/galera/r/galera_sql_log_bin_zero.result
@@ -3,10 +3,12 @@ SET SESSION sql_log_bin = 0;
INSERT INTO t1 VALUES (1);
SET SESSION sql_log_bin = 1;
INSERT INTO t1 VALUES (2);
+connection node_2;
SELECT COUNT(*) = 2 FROM t1;
COUNT(*) = 2
1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1;
COUNT(*) = 1
1
+connection node_1;
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/galera_ssl.result b/mysql-test/suite/galera/r/galera_ssl.result
index 569c3c607d5..022d06319b8 100644
--- a/mysql-test/suite/galera/r/galera_ssl.result
+++ b/mysql-test/suite/galera/r/galera_ssl.result
@@ -6,6 +6,7 @@ VARIABLE_VALUE = 2
1
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB;
INSERT INTO t1 VALUES (1);
+connection node_2;
SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment';
VARIABLE_VALUE = 'Synced'
1
diff --git a/mysql-test/suite/galera/r/galera_ssl_compression.result b/mysql-test/suite/galera/r/galera_ssl_compression.result
index f25b614d139..333d646376c 100644
--- a/mysql-test/suite/galera/r/galera_ssl_compression.result
+++ b/mysql-test/suite/galera/r/galera_ssl_compression.result
@@ -4,19 +4,23 @@ VARIABLE_VALUE = 'Synced'
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
VARIABLE_VALUE = 2
1
+connection node_2;
SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment';
VARIABLE_VALUE = 'Synced'
1
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
VARIABLE_VALUE = 2
1
+connection node_1;
SET GLOBAL wsrep_provider_options = "socket.ssl_compression=No";
ERROR HY000: Incorrect arguments to SET
CREATE TABLE t1 (f1 VARCHAR(333) PRIMARY KEY, f2 BLOB) Engine=InnoDB;
INSERT INTO t1 VALUES (REPEAT('a', 333), REPEAT('b', 65535));
+connection node_2;
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = REPEAT('a', 333) AND f2 = REPEAT('b', 65535);
COUNT(*) = 1
1
+connection node_1;
DROP TABLE t1;
CALL mtr.add_suppression("Unknown parameter 'socket\.ssl_compression'");
CALL mtr.add_suppression("Set options returned 7");
diff --git a/mysql-test/suite/galera/r/galera_sst_mysqldump.result b/mysql-test/suite/galera/r/galera_sst_mysqldump.result
index e35c4055f45..5c0d9a45d41 100644
--- a/mysql-test/suite/galera/r/galera_sst_mysqldump.result
+++ b/mysql-test/suite/galera/r/galera_sst_mysqldump.result
@@ -1,4 +1,5 @@
Setting SST method to mysqldump ...
+CREATE USER 'sst';
GRANT ALL PRIVILEGES ON *.* TO 'sst';
SET GLOBAL wsrep_sst_auth = 'sst:';
SET GLOBAL wsrep_sst_method = 'mysqldump';
diff --git a/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result b/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result
index 7d30b356aa9..227e1c15444 100644
--- a/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result
+++ b/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result
@@ -1,4 +1,5 @@
Setting SST method to mysqldump ...
+CREATE USER 'sst';
GRANT ALL PRIVILEGES ON *.* TO 'sst';
SET GLOBAL wsrep_sst_auth = 'sst:';
SET GLOBAL wsrep_sst_method = 'mysqldump';
diff --git a/mysql-test/suite/galera/r/galera_status_cluster.result b/mysql-test/suite/galera/r/galera_status_cluster.result
index d7cf671cb10..ad92a51b775 100644
--- a/mysql-test/suite/galera/r/galera_status_cluster.result
+++ b/mysql-test/suite/galera/r/galera_status_cluster.result
@@ -1,9 +1,11 @@
+connection node_1;
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
VARIABLE_VALUE = 2
1
SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
VARIABLE_VALUE = 'Primary'
1
+connection node_2;
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
VARIABLE_VALUE = 2
1
diff --git a/mysql-test/suite/galera/r/galera_status_local_index.result b/mysql-test/suite/galera/r/galera_status_local_index.result
index 4e886ac8921..8c36b60cc5f 100644
--- a/mysql-test/suite/galera/r/galera_status_local_index.result
+++ b/mysql-test/suite/galera/r/galera_status_local_index.result
@@ -1,6 +1,9 @@
+connection node_1;
CREATE TABLE wsrep_local_indexes (wsrep_local_index INTEGER);
INSERT INTO wsrep_local_indexes VALUES ((SELECT variable_value FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE variable_name = 'wsrep_local_index'));
+connection node_2;
INSERT INTO wsrep_local_indexes VALUES ((SELECT variable_value FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE variable_name = 'wsrep_local_index'));
+connection node_1;
SELECT COUNT(*) = 2 FROM wsrep_local_indexes;
COUNT(*) = 2
1
diff --git a/mysql-test/suite/galera/r/galera_suspend_slave.result b/mysql-test/suite/galera/r/galera_suspend_slave.result
index 02904812dd5..380ecb395c3 100644
--- a/mysql-test/suite/galera/r/galera_suspend_slave.result
+++ b/mysql-test/suite/galera/r/galera_suspend_slave.result
@@ -1,9 +1,16 @@
+connection node_1;
+connection node_2;
+connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
+connection node_2;
+disconnect node_2;
+connection node_1;
Suspending node_2 ...
INSERT INTO t1 VALUES (1);
Got one of the listed errors
Resuming node_2 ...
INSERT INTO t1 VALUES (1);
+connection node_2a;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
diff --git a/mysql-test/suite/galera/r/galera_sync_wait_show.result b/mysql-test/suite/galera/r/galera_sync_wait_show.result
index 2f030c26bb8..4a73a573041 100644
--- a/mysql-test/suite/galera/r/galera_sync_wait_show.result
+++ b/mysql-test/suite/galera/r/galera_sync_wait_show.result
@@ -1,38 +1,53 @@
+connection node_2;
SET SESSION wsrep_sync_wait = 1;
+connection node_1;
CREATE DATABASE db1;
+connection node_2;
SHOW CREATE DATABASE db1;
Database Create Database
db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET latin1 */
DROP DATABASE db1;
+connection node_1;
CREATE PROCEDURE p1 () SELECT 1 FROM DUAL;
+connection node_2;
SHOW CREATE PROCEDURE p1;
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
p1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
SELECT 1 FROM DUAL latin1 latin1_swedish_ci latin1_swedish_ci
DROP PROCEDURE p1;
+connection node_1;
CREATE PROCEDURE p1 () SELECT 1 FROM DUAL;
+connection node_2;
SHOW PROCEDURE CODE p1;
Pos Instruction
0 stmt 0 "SELECT 1 FROM DUAL"
DROP PROCEDURE p1;
+connection node_1;
CREATE FUNCTION f1 () RETURNS INTEGER RETURN 123;
+connection node_2;
SHOW CREATE FUNCTION f1;
Function sql_mode Create Function character_set_client collation_connection Database Collation
f1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11)
RETURN 123 latin1 latin1_swedish_ci latin1_swedish_ci
DROP FUNCTION f1;
+connection node_1;
CREATE FUNCTION f1 () RETURNS INTEGER RETURN 123;
+connection node_2;
SHOW FUNCTION CODE f1;
Pos Instruction
0 freturn 3 123
DROP FUNCTION f1;
+connection node_1;
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET NEW.f1 = 'a';
+connection node_2;
SHOW CREATE TRIGGER tr1;
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
tr1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET NEW.f1 = 'a' latin1 latin1_swedish_ci latin1_swedish_ci
DROP TABLE t1;
+connection node_1;
CREATE EVENT event1 ON SCHEDULE AT '2038-01-01 23:59:59' DO SELECT 1;
+connection node_2;
SHOW CREATE EVENT event1;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
event1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `event1` ON SCHEDULE AT '2038-01-01 23:59:59' ON COMPLETION NOT PRESERVE DISABLE ON SLAVE DO SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci
diff --git a/mysql-test/suite/galera/r/galera_toi_alter_auto_increment.result b/mysql-test/suite/galera/r/galera_toi_alter_auto_increment.result
index f91415323ec..8a86dfd11e2 100644
--- a/mysql-test/suite/galera/r/galera_toi_alter_auto_increment.result
+++ b/mysql-test/suite/galera/r/galera_toi_alter_auto_increment.result
@@ -1,40 +1,54 @@
+connection node_1;
CREATE TABLE ten (f1 INTEGER) ENGINE=InnoDB;
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) ENGINE=InnoDB;
INSERT INTO t1 (f2) SELECT 1 FROM ten;
+connection node_2;
INSERT INTO t1 (f2) SELECT 1 FROM ten;
ALTER TABLE t1 AUTO_INCREMENT = 1000;
INSERT INTO t1 (f2) SELECT 1 FROM ten;
+connection node_1;
INSERT INTO t1 (f2) SELECT 1 FROM ten;
SELECT MIN(f1) >= 1000, COUNT(*) = 20, COUNT(DISTINCT f1) = 20 FROM t1 WHERE f1 >= 1000;
MIN(f1) >= 1000 COUNT(*) = 20 COUNT(DISTINCT f1) = 20
1 1 1
+connection node_2;
SELECT MIN(f1) >= 1000, COUNT(*) = 20, COUNT(DISTINCT f1) = 20 FROM t1 WHERE f1 >= 1000;
MIN(f1) >= 1000 COUNT(*) = 20 COUNT(DISTINCT f1) = 20
1 1 1
+connection node_1;
ALTER TABLE t1 AUTO_INCREMENT = 5;
INSERT INTO t1 (f2) SELECT 1 FROM ten;
+connection node_2;
INSERT INTO t1 (f2) SELECT 1 FROM ten;
SELECT MIN(f1) >= 1000, COUNT(*) = 40, COUNT(DISTINCT f1) = 40 FROM t1 WHERE f1 >= 1000;
MIN(f1) >= 1000 COUNT(*) = 40 COUNT(DISTINCT f1) = 40
1 1 1
+connection node_1;
SELECT MIN(f1) >= 1000, COUNT(*) = 40, COUNT(DISTINCT f1) = 40 FROM t1 WHERE f1 >= 1000;
MIN(f1) >= 1000 COUNT(*) = 40 COUNT(DISTINCT f1) = 40
1 1 1
DROP TABLE t1;
+connection node_1;
SET GLOBAL wsrep_auto_increment_control = OFF;
SET GLOBAL auto_increment_increment = 1;
SET GLOBAL auto_increment_offset = 1;
+connection node_2;
SET GLOBAL wsrep_auto_increment_control = OFF;
SET GLOBAL auto_increment_increment = 1;
SET GLOBAL auto_increment_offset = 1;
+connection node_1a;
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) ENGINE=InnoDB;
+connection node_2a;
ALTER TABLE t1 AUTO_INCREMENT=100;
+connection node_1a;
INSERT INTO t1 (f2) SELECT 1 FROM ten;
+connection node_2a;
INSERT INTO t1 (f2) SELECT 1 FROM ten;
SELECT MIN(f1) = 100, MAX(f1) = 119, COUNT(f1) = 20, COUNT(DISTINCT f1) = 20 FROM t1;
MIN(f1) = 100 MAX(f1) = 119 COUNT(f1) = 20 COUNT(DISTINCT f1) = 20
1 1 1 1
+connection node_1a;
SELECT MIN(f1) = 100, MAX(f1) = 119, COUNT(f1) = 20, COUNT(DISTINCT f1) = 20 FROM t1;
MIN(f1) = 100 MAX(f1) = 119 COUNT(f1) = 20 COUNT(DISTINCT f1) = 20
1 1 1 1
diff --git a/mysql-test/suite/galera/r/galera_toi_ddl_locking.result b/mysql-test/suite/galera/r/galera_toi_ddl_locking.result
index f0a51db14d3..68743c024a0 100644
--- a/mysql-test/suite/galera/r/galera_toi_ddl_locking.result
+++ b/mysql-test/suite/galera/r/galera_toi_ddl_locking.result
@@ -1,7 +1,9 @@
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
CREATE TABLE t2 (f1 INTEGER) ENGINE=InnoDB;
+connection node_1;
SET DEBUG_SYNC = 'alter_table_before_open_tables WAIT_FOR continue';
ALTER TABLE t1 ADD COLUMN f2 INTEGER;;
+connection node_1a;
SET SESSION wsrep_sync_wait = 0;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
@@ -15,6 +17,7 @@ SET AUTOCOMMIT=OFF;
START TRANSACTION;
INSERT INTO t2 VALUES (1);
COMMIT;;
+connection node_1b;
SET SESSION wsrep_sync_wait = 0;
SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE INFO = 'Commit';
COUNT(*) = 1
@@ -23,19 +26,24 @@ SELECT COUNT(*) = 0 FROM t2;
COUNT(*) = 0
1
SET DEBUG_SYNC= 'now SIGNAL continue';
+connection node_1a;
+connection node_1;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
SELECT COUNT(*) = 1 FROM t2;
COUNT(*) = 1
1
+connection node_2;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
SELECT COUNT(*) = 1 FROM t2;
COUNT(*) = 1
1
+connection node_1;
SET DEBUG_SYNC= 'RESET';
+connection node_1b;
SET DEBUG_SYNC= 'RESET';
DROP TABLE t1;
DROP TABLE t2;
diff --git a/mysql-test/suite/galera/r/galera_toi_ddl_nonconflicting.result b/mysql-test/suite/galera/r/galera_toi_ddl_nonconflicting.result
index 41e693c2b19..3844fa97d82 100644
--- a/mysql-test/suite/galera/r/galera_toi_ddl_nonconflicting.result
+++ b/mysql-test/suite/galera/r/galera_toi_ddl_nonconflicting.result
@@ -1,6 +1,9 @@
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY AUTO_INCREMENT, f2 INTEGER);
+connection node_2;
ALTER TABLE t1 ADD COLUMN f3 INTEGER; INSERT INTO t1 (f1, f2) VALUES (DEFAULT, 123);;
+connection node_1;
CREATE UNIQUE INDEX i1 ON t1(f2);;
+connection node_2;
INSERT INTO t1 (f1, f2) VALUES (DEFAULT, 234);
SELECT COUNT(*) = 3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
COUNT(*) = 3
@@ -11,6 +14,7 @@ COUNT(*) = 2
SELECT COUNT(*) = 2 FROM t1;
COUNT(*) = 2
1
+connection node_1;
SELECT COUNT(*) = 3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
COUNT(*) = 3
1
diff --git a/mysql-test/suite/galera/r/galera_toi_ddl_sequential.result b/mysql-test/suite/galera/r/galera_toi_ddl_sequential.result
index 9dfa433d49f..722bb9d9e12 100644
--- a/mysql-test/suite/galera/r/galera_toi_ddl_sequential.result
+++ b/mysql-test/suite/galera/r/galera_toi_ddl_sequential.result
@@ -1,9 +1,12 @@
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
+connection node_2;
ALTER TABLE t1 ADD COLUMN f2 INTEGER;
INSERT INTO t1 VALUES (2, 3);
+connection node_1;
ALTER TABLE t1 DROP COLUMN f2;
INSERT INTO t1 VALUES (4);
+connection node_2;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -18,6 +21,7 @@ f1
1
2
4
+connection node_1;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
diff --git a/mysql-test/suite/galera/r/galera_toi_ftwrl.result b/mysql-test/suite/galera/r/galera_toi_ftwrl.result
index 594717c96ff..0f13e95b689 100644
--- a/mysql-test/suite/galera/r/galera_toi_ftwrl.result
+++ b/mysql-test/suite/galera/r/galera_toi_ftwrl.result
@@ -1,6 +1,9 @@
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB;
+connection node_2;
FLUSH TABLES WITH READ LOCK;
+connection node_1;
ALTER TABLE t1 ADD COLUMN f2 INTEGER;
+connection node_2;
UNLOCK TABLES;
SHOW CREATE TABLE t1;
Table Create Table
diff --git a/mysql-test/suite/galera/r/galera_toi_lock_exclusive.result b/mysql-test/suite/galera/r/galera_toi_lock_exclusive.result
index eac50e8853c..c13b689f82b 100644
--- a/mysql-test/suite/galera/r/galera_toi_lock_exclusive.result
+++ b/mysql-test/suite/galera/r/galera_toi_lock_exclusive.result
@@ -1,15 +1,20 @@
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
+connection node_2;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
INSERT INTO t1 VALUES (2);
+connection node_2a;
ALTER TABLE t1 ADD COLUMN f2 INTEGER, LOCK=EXCLUSIVE;
+connection node_2;
COMMIT;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
+connection node_1;
INSERT INTO t1 VALUES (2, 2);
SELECT COUNT(*) = 2 FROM t1;
COUNT(*) = 2
1
+connection node_2;
INSERT INTO t1 VALUES (3, 3);
SELECT COUNT(*) = 3 FROM t1;
COUNT(*) = 3
diff --git a/mysql-test/suite/galera/r/galera_toi_lock_shared.result b/mysql-test/suite/galera/r/galera_toi_lock_shared.result
index 36c38860688..950c4d83c70 100644
--- a/mysql-test/suite/galera/r/galera_toi_lock_shared.result
+++ b/mysql-test/suite/galera/r/galera_toi_lock_shared.result
@@ -1,10 +1,13 @@
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
+connection node_2;
ALTER TABLE t1 ADD COLUMN f2 INTEGER, LOCK=SHARED;
+connection node_1;
INSERT INTO t1 VALUES (2, 2);
SELECT COUNT(*) = 2 FROM t1;
COUNT(*) = 2
1
+connection node_2;
INSERT INTO t1 VALUES (3, 3);
SELECT COUNT(*) = 3 FROM t1;
COUNT(*) = 3
diff --git a/mysql-test/suite/galera/r/galera_truncate.result b/mysql-test/suite/galera/r/galera_truncate.result
index eeeb6721d12..4f3d72dbca7 100644
--- a/mysql-test/suite/galera/r/galera_truncate.result
+++ b/mysql-test/suite/galera/r/galera_truncate.result
@@ -1,24 +1,31 @@
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB;
INSERT INTO t1 VALUES (1);
+connection node_2;
TRUNCATE TABLE t1;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
+connection node_1;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
+connection node_2;
CREATE TABLE t2 (f1 VARCHAR(255)) Engine=InnoDB;
INSERT INTO t2 VALUES ('abc');
+connection node_1;
TRUNCATE TABLE t2;
+connection node_2;
SELECT COUNT(*) = 0 FROM t2;
COUNT(*) = 0
1
+connection node_1;
CREATE TABLE t3 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY) Engine=InnoDB;
INSERT INTO t3 VALUES (DEFAULT),(DEFAULT),(DEFAULT),(DEFAULT),(DEFAULT);
CREATE TABLE t4 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY) Engine=InnoDB AUTO_INCREMENT=1234;
INSERT INTO t4 VALUES (DEFAULT),(DEFAULT),(DEFAULT),(DEFAULT),(DEFAULT);
TRUNCATE TABLE t3;
TRUNCATE TABLE t4;
+connection node_2;
SELECT AUTO_INCREMENT = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME IN ('t3', 't4');
AUTO_INCREMENT = 1
1
diff --git a/mysql-test/suite/galera/r/galera_truncate_temporary.result b/mysql-test/suite/galera/r/galera_truncate_temporary.result
index 0bdc4e3632a..183ebd9d24a 100644
--- a/mysql-test/suite/galera/r/galera_truncate_temporary.result
+++ b/mysql-test/suite/galera/r/galera_truncate_temporary.result
@@ -4,8 +4,10 @@ TRUNCATE TABLE t1;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
+connection node_2;
SELECT * FROM t1;
ERROR 42S02: Table 'test.t1' doesn't exist
+connection node_1;
DROP TABLE t1;
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
@@ -21,12 +23,14 @@ TRUNCATE TABLE t1;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
SELECT f1 = 1 FROM t1;
f1 = 1
1
+connection node_1;
DROP TABLE t1;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
@@ -38,18 +42,23 @@ TRUNCATE TABLE t1;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
+connection node_2;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
+connection node_1;
DROP TABLE t1;
+connection node_1;
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
CREATE TEMPORARY TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
INSERT INTO t1 VALUES (2);
+connection node_2;
TRUNCATE TABLE t1;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
+connection node_1;
SELECT f1 = 2 FROM t1;
f1 = 2
1
diff --git a/mysql-test/suite/galera/r/galera_unicode_identifiers.result b/mysql-test/suite/galera/r/galera_unicode_identifiers.result
index 8bea105c77e..146cc052152 100644
--- a/mysql-test/suite/galera/r/galera_unicode_identifiers.result
+++ b/mysql-test/suite/galera/r/galera_unicode_identifiers.result
@@ -1,5 +1,7 @@
SET GLOBAL wsrep_sync_wait = 7;
+connection node_2;
SET GLOBAL wsrep_sync_wait = 7;
+connection node_1;
CREATE DATABASE `database with space`;
USE `database with space`;
CREATE TABLE `table with space` (
@@ -24,6 +26,7 @@ CREATE TABLE `втора таблица` (
KEY `първи индекÑ` (`първа колона`)
);
INSERT INTO `втора таблица` VALUES (1, 1);
+connection node_2;
USE `database with space`;
SELECT `second column with space` FROM `table with space`;
second column with space
@@ -37,6 +40,7 @@ SELECT `втора колона` FROM `втора таблица`;
втора колона
1
SET GLOBAL wsrep_sync_wait = (SELECT @@wsrep_sync_wait);
+connection node_1;
DROP TABLE `database with space`.`table with space`;
DROP TABLE `база`.`таблица`;
DROP TABLE `втора база`.`втора таблица`;
diff --git a/mysql-test/suite/galera/r/galera_unicode_pk.result b/mysql-test/suite/galera/r/galera_unicode_pk.result
index d59615b2542..2711e44b7cb 100644
--- a/mysql-test/suite/galera/r/galera_unicode_pk.result
+++ b/mysql-test/suite/galera/r/galera_unicode_pk.result
@@ -2,16 +2,21 @@ CREATE TABLE t1 (
f1 VARCHAR(255) PRIMARY KEY
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO t1 VALUES ('текÑÑ‚');
+connection node_2;
SELECT f1 = 'текÑÑ‚' FROM t1;
f1 = 'текÑÑ‚'
1
+connection node_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t1 SET f1 = 'текÑÑ‚2';
+connection node_2;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t1 SET f1 = 'текÑÑ‚3';
+connection node_1;
COMMIT;
+connection node_2;
COMMIT;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
SELECT f1 = 'текÑÑ‚2' FROM t1;
@@ -20,11 +25,15 @@ f1 = 'текÑÑ‚2'
SELECT f1 = 'текÑÑ‚2' FROM t1 WHERE f1 = 'текÑÑ‚2';
f1 = 'текÑÑ‚2'
1
+connection node_2;
START TRANSACTION;
INSERT INTO t1 VALUES ('текÑÑ‚4');
+connection node_1;
START TRANSACTION;
INSERT INTO t1 VALUES ('текÑÑ‚4');
+connection node_2;
COMMIT;
+connection node_1;
COMMIT;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
COMMIT;
diff --git a/mysql-test/suite/galera/r/galera_update_limit.result b/mysql-test/suite/galera/r/galera_update_limit.result
index c26eb1c29f6..20a94e6f504 100644
--- a/mysql-test/suite/galera/r/galera_update_limit.result
+++ b/mysql-test/suite/galera/r/galera_update_limit.result
@@ -1,8 +1,11 @@
+connection node_1;
CREATE TABLE ten (f1 INTEGER) Engine=InnoDB;
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB;
INSERT INTO t1 SELECT f1 FROM ten ORDER BY RAND();
+connection node_2;
UPDATE IGNORE t1 SET f1 = FLOOR(1 + (RAND() * 10)) ORDER BY RAND() LIMIT 5;
+connection node_1;
sum_matches
1
max_matches
@@ -10,7 +13,9 @@ max_matches
DROP TABLE t1;
CREATE TABLE t2 (f1 INTEGER) Engine=InnoDB;
INSERT INTO t2 SELECT f1 FROM ten ORDER BY RAND();
+connection node_2;
UPDATE IGNORE t2 SET f1 = FLOOR(1 + (RAND() * 10)) ORDER BY RAND() LIMIT 5;
+connection node_1;
sum_matches
1
DROP TABLE t2;
diff --git a/mysql-test/suite/galera/r/galera_v1_row_events.result b/mysql-test/suite/galera/r/galera_v1_row_events.result
index a6ab62350b1..b0ea2293119 100644
--- a/mysql-test/suite/galera/r/galera_v1_row_events.result
+++ b/mysql-test/suite/galera/r/galera_v1_row_events.result
@@ -1,9 +1,12 @@
CREATE TABLE t1 (f1 INT PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
+connection node_1;
UPDATE t1 SET f1 = 2 WHERE f1 = 1;
+connection node_2;
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
diff --git a/mysql-test/suite/galera/r/galera_var_OSU_method.result b/mysql-test/suite/galera/r/galera_var_OSU_method.result
index 9a07873e1b9..18e8bd2271a 100644
--- a/mysql-test/suite/galera/r/galera_var_OSU_method.result
+++ b/mysql-test/suite/galera/r/galera_var_OSU_method.result
@@ -1,16 +1,24 @@
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB;
+connection node_1;
SET SESSION wsrep_OSU_method = "RSU";
SET DEBUG_SYNC = 'alter_table_before_open_tables WAIT_FOR continue';
ALTER TABLE t1 ADD COLUMN f2 INTEGER;;
+connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
+connection node_1a;
SET GLOBAL wsrep_OSU_method = "TOI";
SET DEBUG_SYNC= 'now SIGNAL continue';
+connection node_1;
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
COUNT(*) = 2
1
+connection node_2;
SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
COUNT(*) = 1
1
+connection node_1;
SET SESSION wsrep_OSU_method = "TOI";
+connection node_1;
SET DEBUG_SYNC= 'RESET';
+connection node_1a;
SET DEBUG_SYNC= 'RESET';
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/galera_var_OSU_method2.result b/mysql-test/suite/galera/r/galera_var_OSU_method2.result
index 08f2e6aa0d8..0e3751645a8 100644
--- a/mysql-test/suite/galera/r/galera_var_OSU_method2.result
+++ b/mysql-test/suite/galera/r/galera_var_OSU_method2.result
@@ -1,19 +1,26 @@
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB;
+connection node_1;
SET SESSION wsrep_OSU_method = "TOI";
SET DEBUG_SYNC = 'alter_table_before_open_tables WAIT_FOR continue';
ALTER TABLE t1 ADD COLUMN f2 INTEGER;;
+connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
+connection node_1a;
SET SESSION wsrep_sync_wait = 0;
SET GLOBAL wsrep_OSU_method = "RSU";
SET DEBUG_SYNC= 'now SIGNAL continue';
+connection node_1;
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
COUNT(*) = 2
1
INSERT INTO t1 VALUES (1,2);
+connection node_2;
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
COUNT(*) = 2
1
INSERT INTO t1 VALUES (3,4);
+connection node_1;
SET GLOBAL wsrep_OSU_method = "TOI";
DROP TABLE t1;
SET DEBUG_SYNC= 'RESET';
+connection node_1a;
SET DEBUG_SYNC= 'RESET';
diff --git a/mysql-test/suite/galera/r/galera_var_auto_inc_control_off.result b/mysql-test/suite/galera/r/galera_var_auto_inc_control_off.result
index 92b69fbbaa7..15bbe7c508a 100644
--- a/mysql-test/suite/galera/r/galera_var_auto_inc_control_off.result
+++ b/mysql-test/suite/galera/r/galera_var_auto_inc_control_off.result
@@ -1,9 +1,12 @@
+connection node_1;
SET GLOBAL wsrep_auto_increment_control = OFF;
SET GLOBAL auto_increment_increment = 1;
SET GLOBAL auto_increment_offset = 1;
+connection node_2;
SET GLOBAL wsrep_auto_increment_control = OFF;
SET GLOBAL auto_increment_increment = 1;
SET GLOBAL auto_increment_offset = 1;
+connection node_1a;
SELECT @@auto_increment_increment = 1;
@@auto_increment_increment = 1
1
@@ -18,6 +21,7 @@ t1 CREATE TABLE `t1` (
`node` varchar(10) DEFAULT NULL,
PRIMARY KEY (`f1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
+connection node_2a;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -25,6 +29,7 @@ t1 CREATE TABLE `t1` (
`node` varchar(10) DEFAULT NULL,
PRIMARY KEY (`f1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
+connection node_1a;
SELECT @@auto_increment_increment = 1;
@@auto_increment_increment = 1
1
@@ -37,6 +42,7 @@ INSERT INTO t1 (node) VALUES ('node1');
SELECT f1 FROM t1;
f1
1
+connection node_2a;
SELECT @@auto_increment_increment = 1;
@@auto_increment_increment = 1
1
@@ -49,12 +55,16 @@ INSERT INTO t1 (node) VALUES ('node2');
SELECT f1 FROM t1;
f1
1
+connection node_1a;
COMMIT;
+connection node_2a;
COMMIT;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
+connection node_1a;
SELECT * FROM t1;
f1 node
1 node1
+connection node_2a;
SELECT * FROM t1;
f1 node
1 node1
diff --git a/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result b/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result
index e6f37792569..b13302d3ecd 100644
--- a/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result
+++ b/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result
@@ -1,11 +1,14 @@
SET GLOBAL wsrep_certify_nonPK = OFF;
+connection node_2;
SET GLOBAL wsrep_certify_nonPK = OFF;
+connection node_1;
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB /* Table has no primary key */;
CREATE TABLE t2 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1), (2);
Got one of the listed errors
INSERT INTO t2 VALUES (1), (2);
UPDATE t2 SET f1 = 3 WHERE f1 = 1;
+connection node_2;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
@@ -15,7 +18,9 @@ COUNT(*) = 2
SELECT COUNT(*) = 1 FROM t2 WHERE f1 = 3;
COUNT(*) = 1
1
+connection node_1;
SET GLOBAL wsrep_certify_nonPK = 1;
+connection node_2;
SET GLOBAL wsrep_certify_nonPK = 1;
DROP TABLE t1;
DROP TABLE t2;
diff --git a/mysql-test/suite/galera/r/galera_var_cluster_address.result b/mysql-test/suite/galera/r/galera_var_cluster_address.result
index f8bd869f8fe..09971c08580 100644
--- a/mysql-test/suite/galera/r/galera_var_cluster_address.result
+++ b/mysql-test/suite/galera/r/galera_var_cluster_address.result
@@ -1,3 +1,6 @@
+connection node_1;
+connection node_2;
+connection node_1;
SET GLOBAL wsrep_cluster_address = 'foo://';
SET SESSION wsrep_sync_wait=0;
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_STATUS;
@@ -14,19 +17,24 @@ wsrep_local_state 0
SHOW STATUS LIKE 'wsrep_local_state_comment';
Variable_name Value
wsrep_local_state_comment Initialized
+connection node_2;
SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
VARIABLE_VALUE = 1
1
SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
VARIABLE_VALUE = 'Primary'
1
+connection node_1;
+connection node_2;
SET GLOBAL wsrep_cluster_address = @@wsrep_cluster_address;
+connection node_1;
SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
VARIABLE_VALUE = 'Primary'
1
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
VARIABLE_VALUE = 2
1
+connection node_1;
SET GLOBAL wsrep_cluster_address = 'gcomm://192.0.2.1';
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_STATUS;
ERROR 08S01: WSREP has not yet prepared node for application use
@@ -42,7 +50,10 @@ wsrep_local_state 0
SHOW STATUS LIKE 'wsrep_local_state_comment';
Variable_name Value
wsrep_local_state_comment Initialized
+connection node_1;
+connection node_2;
SET GLOBAL wsrep_cluster_address = @@wsrep_cluster_address;
+connection node_1;
SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
VARIABLE_VALUE = 'Primary'
1
diff --git a/mysql-test/suite/galera/r/galera_var_desync_on.result b/mysql-test/suite/galera/r/galera_var_desync_on.result
index 0b5f34688b7..383e077f775 100644
--- a/mysql-test/suite/galera/r/galera_var_desync_on.result
+++ b/mysql-test/suite/galera/r/galera_var_desync_on.result
@@ -1,8 +1,10 @@
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
+connection node_2;
SET GLOBAL wsrep_provider_options = 'gcs.fc_limit=1';
SET GLOBAL wsrep_desync = TRUE;
FLUSH TABLES WITH READ LOCK;
+connection node_1;
INSERT INTO t1 VALUES (2);
INSERT INTO t1 VALUES (3);
INSERT INTO t1 VALUES (4);
@@ -12,6 +14,7 @@ INSERT INTO t1 VALUES (7);
INSERT INTO t1 VALUES (8);
INSERT INTO t1 VALUES (9);
INSERT INTO t1 VALUES (10);
+connection node_2;
SET SESSION wsrep_sync_wait = 0;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
@@ -22,7 +25,9 @@ SET SESSION wsrep_sync_wait = 1;
SELECT COUNT(*) = 10 FROM t1;
COUNT(*) = 10
1
+connection node_1;
INSERT INTO t1 VALUES (11);
+connection node_2;
SELECT COUNT(*) = 11 FROM t1;
COUNT(*) = 11
1
diff --git a/mysql-test/suite/galera/r/galera_var_dirty_reads.result b/mysql-test/suite/galera/r/galera_var_dirty_reads.result
index 6d703c8cf95..6b3a3ec0eb5 100644
--- a/mysql-test/suite/galera/r/galera_var_dirty_reads.result
+++ b/mysql-test/suite/galera/r/galera_var_dirty_reads.result
@@ -1,3 +1,4 @@
+connection node_2;
CREATE TABLE t1(i INT) ENGINE=INNODB;
INSERT INTO t1 VALUES(1);
SELECT * FROM t1;
@@ -18,8 +19,11 @@ SET @@session.wsrep_dirty_reads=ON;
SELECT * FROM t1;
i
1
+connection node_1;
SELECT * FROM t1;
i
1
DROP TABLE t1;
+disconnect node_2;
+disconnect node_1;
# End of test
diff --git a/mysql-test/suite/galera/r/galera_var_fkchecks.result b/mysql-test/suite/galera/r/galera_var_fkchecks.result
index 342212a5241..8b1b913a584 100644
--- a/mysql-test/suite/galera/r/galera_var_fkchecks.result
+++ b/mysql-test/suite/galera/r/galera_var_fkchecks.result
@@ -12,6 +12,7 @@ INSERT INTO parent VALUES (1);
INSERT INTO child VALUES (1,1);
SET SESSION foreign_key_checks = 0;
INSERT INTO child VALUES (2,2);
+connection node_2;
SELECT COUNT(*) = 1 FROM child WHERE id = 2;
COUNT(*) = 1
1
@@ -19,6 +20,7 @@ INSERT INTO child VALUES (3,3);
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`child`, CONSTRAINT `child_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `parent` (`id`))
SET SESSION foreign_key_checks = 0;
DELETE FROM parent;
+connection node_1;
SELECT COUNT(*) = 0 FROM parent;
COUNT(*) = 0
1
diff --git a/mysql-test/suite/galera/r/galera_var_gtid_domain_id.result b/mysql-test/suite/galera/r/galera_var_gtid_domain_id.result
index 8e84236d5bf..1a8733e2e1a 100644
--- a/mysql-test/suite/galera/r/galera_var_gtid_domain_id.result
+++ b/mysql-test/suite/galera/r/galera_var_gtid_domain_id.result
@@ -1,4 +1,5 @@
# On node_1
+connection node_1;
list of GTID variables :
gtid_domain_id 1
gtid_binlog_pos
@@ -8,6 +9,7 @@ gtid_slave_pos
wsrep_gtid_domain_id 9999
wsrep_gtid_mode 1
# On node_2
+connection node_2;
list of GTID variables :
gtid_domain_id 2
gtid_binlog_pos
@@ -17,6 +19,7 @@ gtid_slave_pos
wsrep_gtid_domain_id 9999
wsrep_gtid_mode 1
# On node_1
+connection node_1;
CREATE TABLE t1(i INT) ENGINE=INNODB;
CREATE TABLE t2(i INT) ENGINE=MEMORY;
INSERT INTO t1 VALUES(1);
@@ -34,6 +37,7 @@ gtid_slave_pos
wsrep_gtid_domain_id 9999
wsrep_gtid_mode 1
# On node_2
+connection node_2;
SELECT * FROM t1;
i
1
@@ -46,6 +50,7 @@ gtid_slave_pos
wsrep_gtid_domain_id 9999
wsrep_gtid_mode 1
# On node_1
+connection node_1;
INSERT INTO t2 VALUES(1);
SELECT * FROM t2;
i
@@ -59,6 +64,7 @@ gtid_slave_pos
wsrep_gtid_domain_id 9999
wsrep_gtid_mode 1
# On node_2
+connection node_2;
SELECT * FROM t2;
i
list of GTID variables :
@@ -70,5 +76,8 @@ gtid_slave_pos
wsrep_gtid_domain_id 9999
wsrep_gtid_mode 1
# On node_1
+connection node_1;
DROP TABLE t1, t2;
+disconnect node_2;
+disconnect node_1;
# End of test
diff --git a/mysql-test/suite/galera/r/galera_var_innodb_disallow_writes.result b/mysql-test/suite/galera/r/galera_var_innodb_disallow_writes.result
index 912e45a14b1..5377a0af1b6 100644
--- a/mysql-test/suite/galera/r/galera_var_innodb_disallow_writes.result
+++ b/mysql-test/suite/galera/r/galera_var_innodb_disallow_writes.result
@@ -1,11 +1,16 @@
+connection node_1a;
SET SESSION wsrep_sync_wait = 0;
+connection node_1;
CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB;
SET GLOBAL innodb_disallow_writes=ON;
INSERT INTO t1 VALUES (1);;
+connection node_1a;
SET GLOBAL innodb_disallow_writes=OFF;
+connection node_1;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
diff --git a/mysql-test/suite/galera/r/galera_var_log_bin.result b/mysql-test/suite/galera/r/galera_var_log_bin.result
index a6ab62350b1..b0ea2293119 100644
--- a/mysql-test/suite/galera/r/galera_var_log_bin.result
+++ b/mysql-test/suite/galera/r/galera_var_log_bin.result
@@ -1,9 +1,12 @@
CREATE TABLE t1 (f1 INT PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
+connection node_1;
UPDATE t1 SET f1 = 2 WHERE f1 = 1;
+connection node_2;
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
diff --git a/mysql-test/suite/galera/r/galera_var_max_ws_size.result b/mysql-test/suite/galera/r/galera_var_max_ws_size.result
index d0bf7deafa5..71859ef82e0 100644
--- a/mysql-test/suite/galera/r/galera_var_max_ws_size.result
+++ b/mysql-test/suite/galera/r/galera_var_max_ws_size.result
@@ -1,3 +1,4 @@
+connection node_1;
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 VARCHAR(1024)) Engine=InnoDB;
SET GLOBAL wsrep_max_ws_size = 1024;
INSERT INTO t1 VALUES (DEFAULT, REPEAT('X', 1024));
diff --git a/mysql-test/suite/galera/r/galera_var_mysql_replication_bundle.result b/mysql-test/suite/galera/r/galera_var_mysql_replication_bundle.result
index f2a951c26b0..202633a020e 100644
--- a/mysql-test/suite/galera/r/galera_var_mysql_replication_bundle.result
+++ b/mysql-test/suite/galera/r/galera_var_mysql_replication_bundle.result
@@ -1,12 +1,17 @@
CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=InnoDB;
SET GLOBAL wsrep_mysql_replication_bundle = 2;
+connection node_1;
INSERT INTO t1 VALUES (1);
+connection node_2;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
0
+connection node_1;
INSERT INTO t1 VALUES (2);
+connection node_2;
SELECT COUNT(*) = 2 FROM t1;
COUNT(*) = 2
1
+connection node_1;
SET GLOBAL wsrep_mysql_replication_bundle = 0;
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/galera_var_node_address.result b/mysql-test/suite/galera/r/galera_var_node_address.result
index fa88f4b3128..fe3b5613903 100644
--- a/mysql-test/suite/galera/r/galera_var_node_address.result
+++ b/mysql-test/suite/galera/r/galera_var_node_address.result
@@ -1,9 +1,14 @@
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
VARIABLE_VALUE = 4
1
+connection node_1;
CREATE TABLE t1 (f1 INTEGER);
+connection node_2;
INSERT INTO t1 VALUES (1);
+connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3;
+connection node_3;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
+connection node_1;
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/galera_var_replicate_myisam_off.result b/mysql-test/suite/galera/r/galera_var_replicate_myisam_off.result
index c8b79071d10..382466b1387 100644
--- a/mysql-test/suite/galera/r/galera_var_replicate_myisam_off.result
+++ b/mysql-test/suite/galera/r/galera_var_replicate_myisam_off.result
@@ -1,8 +1,10 @@
SET GLOBAL wsrep_replicate_myisam = FALSE;
CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=MyISAM;
INSERT INTO t1 VALUES (1);
+connection node_2;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
+connection node_1;
SET GLOBAL wsrep_replicate_myisam = 0;
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/galera_var_replicate_myisam_on.result b/mysql-test/suite/galera/r/galera_var_replicate_myisam_on.result
index 73a0576048b..bf5a09f6a77 100644
--- a/mysql-test/suite/galera/r/galera_var_replicate_myisam_on.result
+++ b/mysql-test/suite/galera/r/galera_var_replicate_myisam_on.result
@@ -1,17 +1,24 @@
+connection node_1;
+connection node_1;
SET GLOBAL wsrep_replicate_myisam = TRUE;
+connection node_2;
SET GLOBAL wsrep_replicate_myisam = TRUE;
+connection node_1;
CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=MyISAM;
INSERT INTO t1 VALUES (1);
INSERT INTO t1 VALUES (2), (3);
INSERT INTO t1 SELECT 4 FROM DUAL UNION ALL SELECT 5 FROM DUAL;
+connection node_2;
SELECT COUNT(*) = 5 FROM t1;
COUNT(*) = 5
1
DROP TABLE t1;
+connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 VARCHAR(100)) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1, 'abc'),(2,'abc'), (3, 'xxx');
REPLACE INTO t1 VALUES (1, 'klm'), (2,'xyz');
REPLACE INTO t1 SELECT 3, 'yyy' FROM DUAL;
+connection node_2;
SELECT COUNT(*) = 3 FROM t1;
COUNT(*) = 3
1
@@ -24,19 +31,26 @@ COUNT(*) = 1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 3 AND f2 = 'yyy';
COUNT(*) = 1
1
+connection node_1;
UPDATE t1 SET f2 = 'zzz' WHERE f2 = 'yyy';
+connection node_2;
SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'zzz';
COUNT(*) = 1
1
+connection node_1;
DELETE FROM t1 WHERE f2 = 'zzz';
+connection node_2;
SELECT COUNT(*) = 0 FROM t1 WHERE f2 = 'zzz';
COUNT(*) = 0
1
+connection node_1;
TRUNCATE TABLE t1;
+connection node_2;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
DROP TABLE t1;
+connection node_1;
CREATE TABLE t1 (f1 INTEGER) ENGINE=MyISAM;
CREATE TABLE t2 (f1 INTEGER) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF;
@@ -44,18 +58,21 @@ START TRANSACTION;
INSERT INTO t1 VALUES (1);
INSERT INTO t2 VALUES (1);
COMMIT;
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
SELECT COUNT(*) = 1 FROM t2;
COUNT(*) = 1
1
+connection node_1;
START TRANSACTION;
INSERT INTO t1 VALUES (2);
INSERT INTO t2 VALUES (2);
ROLLBACK;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
+connection node_2;
SELECT COUNT(*) = 2 FROM t1;
COUNT(*) = 2
1
@@ -64,15 +81,20 @@ COUNT(*) = 1
1
DROP TABLE t1;
DROP TABLE t2;
+connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=MyISAM;
CREATE TABLE t2 (f2 INTEGER PRIMARY KEY) ENGINE=InnoDB;
START TRANSACTION;
INSERT INTO t1 VALUES (1);
INSERT INTO t2 VALUES (1);
+connection node_2;
INSERT INTO t1 VALUES (1);
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
+connection node_1;
COMMIT;
DROP TABLE t1;
DROP TABLE t2;
+connection node_1;
SET GLOBAL wsrep_replicate_myisam = 0;
+connection node_2;
SET GLOBAL wsrep_replicate_myisam = 0;
diff --git a/mysql-test/suite/galera/r/galera_var_slave_threads.result b/mysql-test/suite/galera/r/galera_var_slave_threads.result
index 603dfaeacc7..facc083544c 100644
--- a/mysql-test/suite/galera/r/galera_var_slave_threads.result
+++ b/mysql-test/suite/galera/r/galera_var_slave_threads.result
@@ -1,5 +1,7 @@
+connection node_1;
CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=InnoDB;
CREATE TABLE t2 (f1 INT AUTO_INCREMENT PRIMARY KEY) Engine=InnoDB;
+connection node_2;
SET GLOBAL wsrep_slave_threads = 0;
Warnings:
Warning 1292 Truncated incorrect wsrep_slave_threads value: '0'
@@ -17,7 +19,9 @@ SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system use
COUNT(*) = 1
1
SET GLOBAL wsrep_slave_threads = 64;
+connection node_1;
INSERT INTO t1 VALUES (1);
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
@@ -28,6 +32,7 @@ SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system use
COUNT(*) = 1
1
SET GLOBAL wsrep_slave_threads = 1;
+connection node_1;
INSERT INTO t2 VALUES (DEFAULT);
INSERT INTO t2 VALUES (DEFAULT);
INSERT INTO t2 VALUES (DEFAULT);
@@ -92,6 +97,7 @@ INSERT INTO t2 VALUES (DEFAULT);
INSERT INTO t2 VALUES (DEFAULT);
INSERT INTO t2 VALUES (DEFAULT);
INSERT INTO t2 VALUES (DEFAULT);
+connection node_2;
SELECT COUNT(*) = 64 FROM t2;
COUNT(*) = 64
1
@@ -107,7 +113,9 @@ DROP TABLE t2;
#
# lp:1372840 - Changing wsrep_slave_threads causes future connections to hang
#
+connection node_1;
CREATE TABLE t1 (i INT AUTO_INCREMENT PRIMARY KEY) ENGINE=INNODB;
+connection node_2;
SET GLOBAL wsrep_slave_threads = 4;
SET GLOBAL wsrep_slave_threads = 1;
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/galera_var_sync_wait.result b/mysql-test/suite/galera/r/galera_var_sync_wait.result
index f6136a4ddc4..40a6290374f 100644
--- a/mysql-test/suite/galera/r/galera_var_sync_wait.result
+++ b/mysql-test/suite/galera/r/galera_var_sync_wait.result
@@ -1,4 +1,6 @@
+connection node_1;
CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=InnoDB;
+connection node_2;
SET GLOBAL wsrep_sync_wait = 1;
SHOW TABLES LIKE '%t1';
Tables_in_test (%t1)
@@ -6,15 +8,20 @@ t1
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
+connection node_1;
CREATE TABLE t2 (f1 INT PRIMARY KEY) Engine=InnoDB;
+connection node_2;
SET GLOBAL wsrep_sync_wait = 4;
INSERT INTO t2 VALUES (1);
+connection node_1;
CREATE TABLE t3 (f1 INT PRIMARY KEY) Engine=InnoDB;
INSERT INTO t3 VALUES (1);
+connection node_2;
SET GLOBAL wsrep_sync_wait = 2;
UPDATE t3 SET f1 = 2;
affected rows: 1
info: Rows matched: 1 Changed: 1 Warnings: 0
+connection node_2;
SET GLOBAL wsrep_sync_wait = 7;
DROP TABLE t1;
DROP TABLE t2;
diff --git a/mysql-test/suite/galera/r/galera_var_wsrep_on_off.result b/mysql-test/suite/galera/r/galera_var_wsrep_on_off.result
index 8b1c4ebf83b..36340f505ff 100644
--- a/mysql-test/suite/galera/r/galera_var_wsrep_on_off.result
+++ b/mysql-test/suite/galera/r/galera_var_wsrep_on_off.result
@@ -2,11 +2,14 @@ CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
SET SESSION wsrep_on = FALSE;
INSERT INTO t1 VALUES (2);
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
+connection node_1;
SET GLOBAL wsrep_on = TRUE;
INSERT INTO t1 VALUES (3);
+connection node_2;
SELECT COUNT(*) = 2 FROM t1;
COUNT(*) = 2
1
diff --git a/mysql-test/suite/galera/r/galera_wan.result b/mysql-test/suite/galera/r/galera_wan.result
index 6be32b291e5..73100636a0d 100644
--- a/mysql-test/suite/galera/r/galera_wan.result
+++ b/mysql-test/suite/galera/r/galera_wan.result
@@ -1,9 +1,14 @@
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
VARIABLE_VALUE = 4
1
+connection node_1;
CREATE TABLE t1 (f1 INTEGER);
+connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3;
+connection node_3;
INSERT INTO t1 VALUES (1);
CALL mtr.add_suppression("There are no nodes in the same segment that will ever be able to become donors, yet there is a suitable donor outside");
+connect node_4, 127.0.0.1, root, , test, $NODE_MYPORT_4;
+connection node_4;
SELECT VARIABLE_VALUE LIKE '%gmcast.segment = 3%' FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME = 'wsrep_provider_options';
VARIABLE_VALUE LIKE '%gmcast.segment = 3%'
1
diff --git a/mysql-test/suite/galera/r/galera_wsrep_new_cluster.result b/mysql-test/suite/galera/r/galera_wsrep_new_cluster.result
index e3f2fa4046f..ca388496794 100644
--- a/mysql-test/suite/galera/r/galera_wsrep_new_cluster.result
+++ b/mysql-test/suite/galera/r/galera_wsrep_new_cluster.result
@@ -16,6 +16,7 @@ VARIABLE_VALUE = 4
SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment';
VARIABLE_VALUE = 'Synced'
1
+connection node_2;
SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
VARIABLE_VALUE = 'Primary'
1
diff --git a/mysql-test/suite/galera/r/galera_zero_length_column.result b/mysql-test/suite/galera/r/galera_zero_length_column.result
index 2e6119bd1ba..572d94d6756 100644
--- a/mysql-test/suite/galera/r/galera_zero_length_column.result
+++ b/mysql-test/suite/galera/r/galera_zero_length_column.result
@@ -1,9 +1,11 @@
+connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY , f2 VARCHAR(0)) ENGINE=InnoDB;
CREATE TABLE t2 (f1 VARCHAR(0)) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1, NULL);
INSERT INTO t1 VALUES (2, '');
INSERT INTO t2 VALUES (NULL);
INSERT INTO t2 VALUES ('');
+connection node_2;
SELECT COUNT(*) = 2 FROM t1;
COUNT(*) = 2
1
@@ -25,6 +27,7 @@ f1 = ''
UPDATE t1 SET f2 = '' WHERE f1 = 1;
UPDATE t1 SET f2 = NULL WHERE f1 = 2;
UPDATE t2 SET f1 = '' WHERE f1 IS NULL;
+connection node_1;
SELECT f2 = '' FROM t1 WHERE f1 = 1;
f2 = ''
1
diff --git a/mysql-test/suite/galera/r/grant.result b/mysql-test/suite/galera/r/grant.result
index 8d257e7e8e2..a2ca72ee8ec 100644
--- a/mysql-test/suite/galera/r/grant.result
+++ b/mysql-test/suite/galera/r/grant.result
@@ -3,6 +3,7 @@
#
# On node_1
+connection node_1;
GRANT SELECT ON *.* TO 'user_6266'@'localhost' IDENTIFIED BY 'pass';
# Now, try changing password for 'user_6266'. This command should also
@@ -10,8 +11,11 @@ GRANT SELECT ON *.* TO 'user_6266'@'localhost' IDENTIFIED BY 'pass';
SET PASSWORD FOR 'user_6266'@'localhost' = PASSWORD('newpass');
# On node_2
+connection node_2;
SELECT user FROM mysql.user WHERE user='user_6266';
user
user_6266
DROP USER 'user_6266'@'localhost';
+disconnect node_2;
+disconnect node_1;
# End of test
diff --git a/mysql-test/suite/galera/r/lp1276424.result b/mysql-test/suite/galera/r/lp1276424.result
index 5f09ec9ea8b..363758e0d66 100644
--- a/mysql-test/suite/galera/r/lp1276424.result
+++ b/mysql-test/suite/galera/r/lp1276424.result
@@ -1,6 +1,7 @@
CREATE TABLE t1 (f1 INT DEFAULT NULL, UNIQUE KEY i1 (f1)) ENGINE=InnoDB;
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL);
+connection node_2;
SELECT COUNT(*) = 2 FROM t1;
COUNT(*) = 2
1
diff --git a/mysql-test/suite/galera/r/lp1438990.result b/mysql-test/suite/galera/r/lp1438990.result
index b53bc186953..d48d2435faa 100644
--- a/mysql-test/suite/galera/r/lp1438990.result
+++ b/mysql-test/suite/galera/r/lp1438990.result
@@ -1,3 +1,4 @@
+connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY);
CREATE TABLE t2 (f1 INTEGER PRIMARY KEY);
CREATE TABLE t3 (f1 INTEGER PRIMARY KEY);
diff --git a/mysql-test/suite/galera/r/mdev_9290.result b/mysql-test/suite/galera/r/mdev_9290.result
index cb2f0813333..276ab9e8ecb 100644
--- a/mysql-test/suite/galera/r/mdev_9290.result
+++ b/mysql-test/suite/galera/r/mdev_9290.result
@@ -2,13 +2,18 @@
# MDEV-9290 : InnoDB: Assertion failure in file trx0sys.cc line 353
# InnoDB: Failing assertion: xid_seqno > trx_sys_cur_xid_seqno
#
+connection node_1;
CREATE TABLE t1 (i INT) ENGINE=InnoDB;
+connection node_2;
START TRANSACTION;
INSERT INTO t1 VALUES (1);
INSERT INTO t1 VALUES (2);
COMMIT;
+connection node_1;
SELECT * FROM t1;
i
1
2
DROP TABLE t1;
+disconnect node_2;
+disconnect node_1;
diff --git a/mysql-test/suite/galera/r/mysql-wsrep#110.result b/mysql-test/suite/galera/r/mysql-wsrep#110.result
index 551c3666fb4..6d4031d71cd 100644
--- a/mysql-test/suite/galera/r/mysql-wsrep#110.result
+++ b/mysql-test/suite/galera/r/mysql-wsrep#110.result
@@ -1,3 +1,4 @@
+connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY);
CREATE TABLE t2 (f1 INTEGER PRIMARY KEY);
CREATE TABLE t3 (f1 INTEGER PRIMARY KEY);
@@ -23,6 +24,7 @@ COUNT(*) = 1
SELECT COUNT(*) = 1 FROM t3;
COUNT(*) = 1
1
+connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
@@ -32,6 +34,7 @@ COUNT(*) = 1
SELECT COUNT(*) = 1 FROM t3;
COUNT(*) = 1
1
+connection node_1;
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
diff --git a/mysql-test/suite/galera/r/mysql-wsrep#198.result b/mysql-test/suite/galera/r/mysql-wsrep#198.result
index 25ba2cb615c..afc2a07fb30 100644
--- a/mysql-test/suite/galera/r/mysql-wsrep#198.result
+++ b/mysql-test/suite/galera/r/mysql-wsrep#198.result
@@ -1,16 +1,26 @@
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB;
CREATE TABLE t2 (id INT PRIMARY KEY) ENGINE=InnoDB;
+connection node_2;
LOCK TABLE t2 WRITE;
+connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2;
+connection node_2a;
OPTIMIZE TABLE t1,t2;;
+connect node_2b, 127.0.0.1, root, , test, $NODE_MYPORT_2;
+connection node_2b;
REPAIR TABLE t1,t2;;
+connection node_2;
SET SESSION wsrep_sync_wait = 0;
+connection node_1;
INSERT INTO t2 VALUES (1);
+connection node_2;
UNLOCK TABLES;
+connection node_2a;
Table Op Msg_type Msg_text
test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
test.t1 optimize status OK
test.t2 optimize note Table does not support optimize, doing recreate + analyze instead
test.t2 optimize status OK
+connection node_2b;
Table Op Msg_type Msg_text
test.t1 repair note The storage engine for the table doesn't support repair
test.t2 repair note The storage engine for the table doesn't support repair
diff --git a/mysql-test/suite/galera/r/mysql-wsrep#201.result b/mysql-test/suite/galera/r/mysql-wsrep#201.result
index 1c0998e35ac..0f2980eddd2 100644
--- a/mysql-test/suite/galera/r/mysql-wsrep#201.result
+++ b/mysql-test/suite/galera/r/mysql-wsrep#201.result
@@ -1,4 +1,5 @@
CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
INSERT INTO t1 VALUES (DEFAULT);
+connection node_2;
SET GLOBAL query_cache_size=1355776;
SET SESSION wsrep_sync_wait = 7;
diff --git a/mysql-test/suite/galera/r/mysql-wsrep#237.result b/mysql-test/suite/galera/r/mysql-wsrep#237.result
index 3fd9aed1480..19503dd5781 100644
--- a/mysql-test/suite/galera/r/mysql-wsrep#237.result
+++ b/mysql-test/suite/galera/r/mysql-wsrep#237.result
@@ -1,10 +1,18 @@
CREATE TABLE t (f1 INTEGER PRIMARY KEY) Engine=InnoDB;
+connection node_1;
SET DEBUG_SYNC = 'wsrep_before_replication WAIT_FOR continue';
INSERT INTO t values (1);;
+connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
+connection node_1a;
SET SESSION wsrep_sync_wait = 0;
+connection node_2;
FLUSH TABLES;
+connection node_1a;
SELECT SLEEP(1);
SLEEP(1)
0
SET DEBUG_SYNC= 'now SIGNAL continue';
+connection node_1;
DROP TABLE t;
+connection node_1a;
+SET DEBUG_SYNC= 'RESET';
diff --git a/mysql-test/suite/galera/r/mysql-wsrep#247.result b/mysql-test/suite/galera/r/mysql-wsrep#247.result
index 1b00f511f03..e59c6d1a299 100644
--- a/mysql-test/suite/galera/r/mysql-wsrep#247.result
+++ b/mysql-test/suite/galera/r/mysql-wsrep#247.result
@@ -1,3 +1,4 @@
+connection node_1;
SET GLOBAL wsrep_desync=1;
SET wsrep_OSU_method=RSU;
CREATE TABLE t1 (i int primary key);
diff --git a/mysql-test/suite/galera/r/mysql-wsrep#31.result b/mysql-test/suite/galera/r/mysql-wsrep#31.result
index a21bb3eccfd..973f11543fa 100644
--- a/mysql-test/suite/galera/r/mysql-wsrep#31.result
+++ b/mysql-test/suite/galera/r/mysql-wsrep#31.result
@@ -1,10 +1,13 @@
+connection node_1;
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
INSERT INTO t1 VALUES('test');
CREATE DATABASE db;
+connection node_2;
Shutting down server 2 ...
Recovering server 2 ...
Performing --wsrep-recover ...
Restarting server ...
Using --wsrep-start-position when starting mysqld ...
+connection node_1;
DROP TABLE t1;
DROP DATABASE db;
diff --git a/mysql-test/suite/galera/r/mysql-wsrep#33.result b/mysql-test/suite/galera/r/mysql-wsrep#33.result
index 62af519ad32..fc647a2000d 100644
--- a/mysql-test/suite/galera/r/mysql-wsrep#33.result
+++ b/mysql-test/suite/galera/r/mysql-wsrep#33.result
@@ -1,4 +1,5 @@
Setting SST method to mysqldump ...
+CREATE USER 'sst';
GRANT ALL PRIVILEGES ON *.* TO 'sst';
SET GLOBAL wsrep_sst_auth = 'sst:';
SET GLOBAL wsrep_sst_method = 'mysqldump';
diff --git a/mysql-test/suite/galera/r/partition.result b/mysql-test/suite/galera/r/partition.result
index 3907b4f08c9..15f0275a04c 100644
--- a/mysql-test/suite/galera/r/partition.result
+++ b/mysql-test/suite/galera/r/partition.result
@@ -13,10 +13,12 @@ SELECT * FROM t1;
pk i
# On node_1
+connection node_1;
SELECT * FROM t1;
pk i
# On node_2
+connection node_2;
SELECT * FROM t1;
pk i
DROP TABLE t1;
@@ -26,6 +28,7 @@ DROP TABLE t1;
#
# On node_1
+connection node_1;
CREATE TABLE test.t1 (
i INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (i)
@@ -46,6 +49,7 @@ i
9
# On node_2
+connection node_2;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -70,15 +74,18 @@ i
9
# On node_1
+connection node_1;
ALTER TABLE t1 TRUNCATE PARTITION p2;
SELECT * FROM test.t1;
i
# On node_2
+connection node_2;
SELECT * FROM test.t1;
i
# On node_1
+connection node_1;
ALTER TABLE t1 DROP PARTITION p2;
SHOW CREATE TABLE t1;
Table Create Table
@@ -91,6 +98,7 @@ t1 CREATE TABLE `t1` (
PARTITION pMax VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */
# On node_2
+connection node_2;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -104,11 +112,13 @@ DROP TABLE t1, p1;
#
# MDEV-5146: Bulk loads into partitioned table not working
#
+connection node_1;
# Case 1: wsrep_load_data_splitting = ON & LOAD DATA with 20002
# entries.
SET GLOBAL wsrep_load_data_splitting = ON;
CREATE TABLE t1 (pk INT PRIMARY KEY)
ENGINE=INNODB PARTITION BY HASH(pk) PARTITIONS 2;
+connection node_2;
SELECT COUNT(*) = 20002 FROM t1;
COUNT(*) = 20002
1
@@ -116,9 +126,11 @@ wsrep_last_committed_diff
1
DROP TABLE t1;
# Case 2: wsrep_load_data_splitting = ON & LOAD DATA with 101 entries.
+connection node_1;
SET GLOBAL wsrep_load_data_splitting = ON;
CREATE TABLE t1 (pk INT PRIMARY KEY)
ENGINE=INNODB PARTITION BY HASH(pk) PARTITIONS 2;
+connection node_2;
SELECT COUNT(*) = 101 FROM t1;
COUNT(*) = 101
1
@@ -127,14 +139,19 @@ wsrep_last_committed_diff
DROP TABLE t1;
# Case 3: wsrep_load_data_splitting = OFF & LOAD DATA with 20002
# entries.
+connection node_1;
SET GLOBAL wsrep_load_data_splitting = OFF;
CREATE TABLE t1 (pk INT PRIMARY KEY)
ENGINE=INNODB PARTITION BY HASH(pk) PARTITIONS 2;
+connection node_2;
SELECT COUNT(*) = 20002 FROM t1;
COUNT(*) = 20002
1
wsrep_last_committed_diff
1
DROP TABLE t1;
+connection node_1;
SET GLOBAL wsrep_load_data_splitting = 1;;
+disconnect node_2;
+disconnect node_1;
# End of test
diff --git a/mysql-test/suite/galera/r/rename.result b/mysql-test/suite/galera/r/rename.result
index 3c81e8b6320..a7ec431657b 100644
--- a/mysql-test/suite/galera/r/rename.result
+++ b/mysql-test/suite/galera/r/rename.result
@@ -2,6 +2,7 @@
# MDEV-8598 : Failed MySQL DDL commands and Galera replication
#
# On node 1
+connection node_1;
USE test;
DROP TABLE IF EXISTS t1, t2;
CREATE TABLE t1(i INT) ENGINE=INNODB;
@@ -13,6 +14,8 @@ i
CREATE USER foo@localhost;
GRANT SELECT on test.* TO foo@localhost;
# Open connection to the 1st node using 'test_user1' user.
+connect foo_node_1,localhost,foo,,test,$port_1,;
+connection foo_node_1;
SELECT * FROM t1;
i
1
@@ -20,20 +23,24 @@ i
RENAME TABLE t1 TO t2;
ERROR 42000: DROP, ALTER command denied to user 'foo'@'localhost' for table 't1'
# On node 2
+connection node_2;
USE test;
SELECT * FROM t1;
i
1
# On node_1
+connection node_1;
RENAME TABLE t1 TO t2;
SHOW TABLES;
Tables_in_test
t2
# On node 2
+connection node_2;
USE test;
SELECT * FROM t2;
i
1
+connection node_1;
DROP USER foo@localhost;
DROP TABLE t2;
# End of tests
diff --git a/mysql-test/suite/galera/r/rpl_row_annotate.result b/mysql-test/suite/galera/r/rpl_row_annotate.result
index ff8d49702ac..23de06f015b 100644
--- a/mysql-test/suite/galera/r/rpl_row_annotate.result
+++ b/mysql-test/suite/galera/r/rpl_row_annotate.result
@@ -1,14 +1,18 @@
# On node_2
+connection node_2;
RESET MASTER;
# On node_1
+connection node_1;
RESET MASTER;
CREATE TABLE t1(i INT)ENGINE=INNODB;
INSERT INTO t1 VALUES(1);
DELETE FROM t1 WHERE i = 1;
# On node_2
+connection node_2;
INSERT INTO t1 VALUES(2);
DELETE FROM t1 WHERE i = 2;
# On node_1
+connection node_1;
SHOW BINLOG EVENTS IN 'mysqld-bin.000001' FROM <start_pos>;
Log_name Pos Event_type Server_id End_log_pos Info
mysqld-bin.000001 # Gtid_list 1 # []
@@ -36,6 +40,7 @@ mysqld-bin.000001 # Table_map 2 # table_id: # (test.t1)
mysqld-bin.000001 # Delete_rows_v1 2 # table_id: # flags: STMT_END_F
mysqld-bin.000001 # Xid 2 # COMMIT /* xid= */
# On node_2
+connection node_2;
SHOW BINLOG EVENTS IN 'mysqld-bin.000001' FROM <start_pos>;
Log_name Pos Event_type Server_id End_log_pos Info
mysqld-bin.000001 # Gtid_list 2 # []
@@ -63,4 +68,6 @@ mysqld-bin.000001 # Table_map 2 # table_id: # (test.t1)
mysqld-bin.000001 # Delete_rows_v1 2 # table_id: # flags: STMT_END_F
mysqld-bin.000001 # Xid 2 # COMMIT /* xid= */
DROP TABLE t1;
+disconnect node_2;
+disconnect node_1;
# End of test
diff --git a/mysql-test/suite/galera/r/sql_log_bin.result b/mysql-test/suite/galera/r/sql_log_bin.result
index 237725ec9a7..8b208ff82d5 100644
--- a/mysql-test/suite/galera/r/sql_log_bin.result
+++ b/mysql-test/suite/galera/r/sql_log_bin.result
@@ -1,5 +1,6 @@
# On node_1
+connection node_1;
USE test;
CREATE TABLE t1(c1 INT PRIMARY KEY) ENGINE=INNODB;
INSERT INTO t1 VALUES (1);
@@ -31,6 +32,7 @@ c1
2
# On node_2
+connection node_2;
USE test;
SELECT * FROM t1;
c1
@@ -49,4 +51,6 @@ c1
1
2
DROP TABLE t1, t2, t3, t4;
+disconnect node_2;
+disconnect node_1;
# End of test
diff --git a/mysql-test/suite/galera/r/unique_key.result b/mysql-test/suite/galera/r/unique_key.result
index ffb4f01c1f8..9f1fc858389 100644
--- a/mysql-test/suite/galera/r/unique_key.result
+++ b/mysql-test/suite/galera/r/unique_key.result
@@ -5,6 +5,7 @@
USE test;
# On node_1
+connection node_1;
CREATE TABLE t1(c1 INT DEFAULT NULL, UNIQUE KEY c1(c1)) ENGINE=INNODB;
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL);
@@ -14,12 +15,14 @@ NULL
NULL
# On node_2
+connection node_2;
SELECT * FROM test.t1;
c1
NULL
NULL
# On node_1
+connection node_1;
INSERT INTO t1 VALUES (1);
UPDATE t1 SET c1=NULL WHERE c1=1;
SELECT * FROM test.t1;
@@ -29,6 +32,7 @@ NULL
NULL
# On node_2
+connection node_2;
SELECT * FROM test.t1;
c1
NULL
@@ -36,12 +40,16 @@ NULL
NULL
# On node_1
+connection node_1;
DELETE FROM t1 WHERE c1<=>NULL;
SELECT * FROM test.t1;
c1
# On node_2
+connection node_2;
SELECT * FROM test.t1;
c1
DROP TABLE t1;
+disconnect node_2;
+disconnect node_1;
# End of test
diff --git a/mysql-test/suite/galera/r/view.result b/mysql-test/suite/galera/r/view.result
index 06d7bf072e8..f8da811f9cc 100644
--- a/mysql-test/suite/galera/r/view.result
+++ b/mysql-test/suite/galera/r/view.result
@@ -8,6 +8,7 @@ DROP VIEW v1;
# MDEV-8464 : ALTER VIEW not replicated in some cases
#
# On node_1
+connection node_1;
USE test;
CREATE TABLE t1(i INT) ENGINE=INNODB;
CREATE DEFINER=CURRENT_USER VIEW v1 AS SELECT * FROM t1;
@@ -15,6 +16,7 @@ CREATE ALGORITHM=MERGE VIEW v2 AS SELECT * FROM t1;
CREATE ALGORITHM=TEMPTABLE VIEW v3 AS SELECT * FROM t1;
CREATE ALGORITHM=UNDEFINED DEFINER=CURRENT_USER VIEW v4 AS SELECT * FROM t1;
# On node_2
+connection node_2;
USE test;
SHOW CREATE VIEW v1;
View Create View character_set_client collation_connection
@@ -29,11 +31,13 @@ SHOW CREATE VIEW v4;
View Create View character_set_client collation_connection
v4 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS select `t1`.`i` AS `i` from `t1` latin1 latin1_swedish_ci
# On node_1
+connection node_1;
ALTER ALGORITHM=MERGE VIEW v1 AS SELECT * FROM t1;
ALTER ALGORITHM=UNDEFINED VIEW v2 AS SELECT * FROM t1;
ALTER DEFINER=CURRENT_USER VIEW v3 AS SELECT * FROM t1;
ALTER ALGORITHM=TEMPTABLE DEFINER=CURRENT_USER VIEW v4 AS SELECT * FROM t1;
# On node_2
+connection node_2;
SHOW CREATE VIEW v1;
View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`i` AS `i` from `t1` latin1 latin1_swedish_ci
diff --git a/mysql-test/suite/galera/t/mysql-wsrep#237.test b/mysql-test/suite/galera/t/mysql-wsrep#237.test
index 7a65cb52ae9..f2dd6bce711 100644
--- a/mysql-test/suite/galera/t/mysql-wsrep#237.test
+++ b/mysql-test/suite/galera/t/mysql-wsrep#237.test
@@ -29,3 +29,5 @@ SET DEBUG_SYNC= 'now SIGNAL continue';
--reap
DROP TABLE t;
+--connection node_1a
+SET DEBUG_SYNC= 'RESET';
diff --git a/mysql-test/suite/maria/maria.result b/mysql-test/suite/maria/maria.result
index 1b80f5ef695..ea4e7896066 100644
--- a/mysql-test/suite/maria/maria.result
+++ b/mysql-test/suite/maria/maria.result
@@ -554,11 +554,11 @@ a
explain select sql_big_result distinct t1.a from t1,t2 order by t2.a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 1 Using temporary
-1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index; Distinct
+1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index
explain select distinct t1.a from t1,t2 order by t2.a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 1 Using temporary
-1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index; Distinct
+1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index
drop table t1,t2;
create table t1 (
c1 varchar(32),
diff --git a/mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result b/mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result
index 5e16befa87d..889db65d7ef 100644
--- a/mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result
+++ b/mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result
@@ -116,7 +116,6 @@ include/wait_for_slave_sql_to_start.inc
# SAVEPOINT and ROLLBACK TO have the same problem in BUG#43263
# This was reported by BUG#50407
connection master;
-SET SESSION AUTOCOMMIT=0
BEGIN;
INSERT INTO db1.t1 VALUES(20);
#
@@ -164,7 +163,6 @@ master-bin.000001 # Query # # use `db1`; INSERT INTO db1.t2 VALUES("after rollba
master-bin.000001 # Query # # use `db1`; INSERT INTO db1.t1 VALUES(50)
master-bin.000001 # Xid # # COMMIT /* XID */
connection slave;
-[on slave]
#
# Verify INSERT statements in savepoints are executed, for MyISAM table
# is not effected by ROLLBACK TO
diff --git a/mysql-test/suite/rpl/r/rpl_upgrade_master_info.result b/mysql-test/suite/rpl/r/rpl_upgrade_master_info.result
new file mode 100644
index 00000000000..3e737267fbd
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_upgrade_master_info.result
@@ -0,0 +1,102 @@
+include/master-slave.inc
+[connection master]
+*** MDEV-9383: Server fails to read master.info after upgrade 10.0 -> 10.1 ***
+connection slave;
+include/stop_slave.inc
+CHANGE MASTER TO master_use_gtid=CURRENT_POS;
+include/rpl_stop_server.inc [server_number=2]
+include/rpl_start_server.inc [server_number=2]
+connection master;
+CREATE TABLE t1 (a INT PRIMARY KEY);
+INSERT INTO t1 VALUES (1);
+include/save_master_gtid.inc
+connection slave;
+CHANGE MASTER TO master_host='127.0.0.1', master_port=SERVER_MYPORT_1;
+include/start_slave.inc
+include/sync_with_master_gtid.inc
+SELECT * FROM t1;
+a
+1
+include/stop_slave.inc
+include/rpl_stop_server.inc [server_number=2]
+include/rpl_start_server.inc [server_number=2]
+connection master;
+INSERT INTO t1 VALUES (2);
+include/save_master_gtid.inc
+connection slave;
+CHANGE MASTER TO master_host='127.0.0.1', master_port=SERVER_MYPORT_1;
+include/start_slave.inc
+include/sync_with_master_gtid.inc
+SELECT * FROM t1 ORDER BY a;
+a
+1
+2
+include/stop_slave.inc
+include/rpl_stop_server.inc [server_number=2]
+include/rpl_start_server.inc [server_number=2]
+connection master;
+INSERT INTO t1 VALUES (3);
+include/save_master_gtid.inc
+connection slave;
+CHANGE MASTER TO master_host='127.0.0.1', master_port=SERVER_MYPORT_1;
+include/start_slave.inc
+include/sync_with_master_gtid.inc
+SELECT * FROM t1 ORDER BY a;
+a
+1
+2
+3
+include/stop_slave.inc
+include/rpl_stop_server.inc [server_number=2]
+include/rpl_start_server.inc [server_number=2]
+connection master;
+INSERT INTO t1 VALUES (4);
+include/save_master_gtid.inc
+connection slave;
+CHANGE MASTER TO master_host='127.0.0.1', master_port=SERVER_MYPORT_1;
+include/start_slave.inc
+include/sync_with_master_gtid.inc
+SELECT * FROM t1 ORDER BY a;
+a
+1
+2
+3
+4
+include/stop_slave.inc
+include/rpl_stop_server.inc [server_number=2]
+include/rpl_start_server.inc [server_number=2]
+connection master;
+INSERT INTO t1 VALUES (5);
+include/save_master_gtid.inc
+connection slave;
+CHANGE MASTER TO master_host='127.0.0.1', master_port=SERVER_MYPORT_1;
+include/start_slave.inc
+include/sync_with_master_gtid.inc
+SELECT * FROM t1 ORDER BY a;
+a
+1
+2
+3
+4
+5
+include/stop_slave.inc
+include/rpl_stop_server.inc [server_number=2]
+include/rpl_start_server.inc [server_number=2]
+connection master;
+INSERT INTO t1 VALUES (6);
+include/save_master_gtid.inc
+connection slave;
+CHANGE MASTER TO master_host='127.0.0.1', master_port=SERVER_MYPORT_1;
+include/start_slave.inc
+include/sync_with_master_gtid.inc
+SELECT * FROM t1 ORDER BY a;
+a
+1
+2
+3
+4
+5
+6
+connection master;
+DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test b/mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test
index 347e88412c1..f0ed5dc0123 100644
--- a/mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test
+++ b/mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test
@@ -129,7 +129,6 @@ source include/wait_for_slave_sql_to_start.inc;
--echo # SAVEPOINT and ROLLBACK TO have the same problem in BUG#43263
--echo # This was reported by BUG#50407
connection master;
-echo SET SESSION AUTOCOMMIT=0;
let $binlog_start=query_get_value(SHOW MASTER STATUS, Position, 1);
BEGIN;
@@ -157,7 +156,6 @@ COMMIT;
source include/show_binlog_events.inc;
sync_slave_with_master;
---echo [on slave]
--echo #
--echo # Verify INSERT statements in savepoints are executed, for MyISAM table
--echo # is not effected by ROLLBACK TO
diff --git a/mysql-test/suite/rpl/t/rpl_upgrade_master_info.test b/mysql-test/suite/rpl/t/rpl_upgrade_master_info.test
new file mode 100644
index 00000000000..e81e7c0d714
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_upgrade_master_info.test
@@ -0,0 +1,163 @@
+--source include/master-slave.inc
+
+--echo *** MDEV-9383: Server fails to read master.info after upgrade 10.0 -> 10.1 ***
+
+--connection slave
+--source include/stop_slave.inc
+CHANGE MASTER TO master_use_gtid=CURRENT_POS;
+--let $datadir= `SELECT @@datadir`
+
+--let $rpl_server_number= 2
+--source include/rpl_stop_server.inc
+
+--remove_file $datadir/master.info
+--copy_file $MYSQL_TEST_DIR/std_data/bad_master.info $datadir/master.info
+
+--let $rpl_server_number= 2
+--source include/rpl_start_server.inc
+
+--source include/wait_until_connected_again.inc
+
+--connection master
+CREATE TABLE t1 (a INT PRIMARY KEY);
+INSERT INTO t1 VALUES (1);
+--source include/save_master_gtid.inc
+
+--connection slave
+# Fix the port after we replaced master.info.
+--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1
+eval CHANGE MASTER TO master_host='127.0.0.1', master_port=$SERVER_MYPORT_1;
+--source include/start_slave.inc
+--source include/sync_with_master_gtid.inc
+SELECT * FROM t1;
+
+--source include/stop_slave.inc
+
+--let $rpl_server_number= 2
+--source include/rpl_stop_server.inc
+
+--remove_file $datadir/master.info
+--copy_file $MYSQL_TEST_DIR/std_data/bad2_master.info $datadir/master.info
+
+--let $rpl_server_number= 2
+--source include/rpl_start_server.inc
+
+--source include/wait_until_connected_again.inc
+
+--connection master
+INSERT INTO t1 VALUES (2);
+--source include/save_master_gtid.inc
+
+--connection slave
+# Fix the port after we replaced master.info.
+--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1
+eval CHANGE MASTER TO master_host='127.0.0.1', master_port=$SERVER_MYPORT_1;
+--source include/start_slave.inc
+--source include/sync_with_master_gtid.inc
+SELECT * FROM t1 ORDER BY a;
+
+--source include/stop_slave.inc
+
+--let $rpl_server_number= 2
+--source include/rpl_stop_server.inc
+
+--remove_file $datadir/master.info
+--copy_file $MYSQL_TEST_DIR/std_data/bad3_master.info $datadir/master.info
+
+--let $rpl_server_number= 2
+--source include/rpl_start_server.inc
+
+--source include/wait_until_connected_again.inc
+
+--connection master
+INSERT INTO t1 VALUES (3);
+--source include/save_master_gtid.inc
+
+--connection slave
+# Fix the port after we replaced master.info.
+--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1
+eval CHANGE MASTER TO master_host='127.0.0.1', master_port=$SERVER_MYPORT_1;
+--source include/start_slave.inc
+--source include/sync_with_master_gtid.inc
+SELECT * FROM t1 ORDER BY a;
+
+--source include/stop_slave.inc
+
+--let $rpl_server_number= 2
+--source include/rpl_stop_server.inc
+
+--remove_file $datadir/master.info
+--copy_file $MYSQL_TEST_DIR/std_data/bad4_master.info $datadir/master.info
+
+--let $rpl_server_number= 2
+--source include/rpl_start_server.inc
+
+--source include/wait_until_connected_again.inc
+
+--connection master
+INSERT INTO t1 VALUES (4);
+--source include/save_master_gtid.inc
+
+--connection slave
+# Fix the port after we replaced master.info.
+--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1
+eval CHANGE MASTER TO master_host='127.0.0.1', master_port=$SERVER_MYPORT_1;
+--source include/start_slave.inc
+--source include/sync_with_master_gtid.inc
+SELECT * FROM t1 ORDER BY a;
+
+--source include/stop_slave.inc
+
+--let $rpl_server_number= 2
+--source include/rpl_stop_server.inc
+
+--remove_file $datadir/master.info
+--copy_file $MYSQL_TEST_DIR/std_data/bad5_master.info $datadir/master.info
+
+--let $rpl_server_number= 2
+--source include/rpl_start_server.inc
+
+--source include/wait_until_connected_again.inc
+
+--connection master
+INSERT INTO t1 VALUES (5);
+--source include/save_master_gtid.inc
+
+--connection slave
+# Fix the port after we replaced master.info.
+--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1
+eval CHANGE MASTER TO master_host='127.0.0.1', master_port=$SERVER_MYPORT_1;
+--source include/start_slave.inc
+--source include/sync_with_master_gtid.inc
+SELECT * FROM t1 ORDER BY a;
+
+--source include/stop_slave.inc
+
+--let $rpl_server_number= 2
+--source include/rpl_stop_server.inc
+
+--remove_file $datadir/master.info
+--copy_file $MYSQL_TEST_DIR/std_data/bad6_master.info $datadir/master.info
+
+--let $rpl_server_number= 2
+--source include/rpl_start_server.inc
+
+--source include/wait_until_connected_again.inc
+
+--connection master
+INSERT INTO t1 VALUES (6);
+--source include/save_master_gtid.inc
+
+--connection slave
+# Fix the port after we replaced master.info.
+--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1
+eval CHANGE MASTER TO master_host='127.0.0.1', master_port=$SERVER_MYPORT_1;
+--source include/start_slave.inc
+--source include/sync_with_master_gtid.inc
+SELECT * FROM t1 ORDER BY a;
+
+
+# Cleanup
+--connection master
+DROP TABLE t1;
+--source include/rpl_end.inc
diff --git a/mysql-test/t/connect2.test b/mysql-test/t/connect2.test
index b4614a65a91..9d2a438aa0a 100644
--- a/mysql-test/t/connect2.test
+++ b/mysql-test/t/connect2.test
@@ -7,7 +7,7 @@
call mtr.add_suppression("Allocation failed");
SET @old_debug= @@session.debug;
set @old_thread_cache_size=@@global.thread_cache_size;
-
+set @@global.thread_cache_size=0;
# Test connections to the
connect(con1,localhost,root,,test,,);
@@ -32,7 +32,6 @@ select 1;
disconnect con1;
# Test connections to the extra port.
-
connect(con1,localhost,root,,test,$MASTER_EXTRA_PORT,);
select 1;
disconnect con1;
diff --git a/mysql-test/t/cte_nonrecursive.test b/mysql-test/t/cte_nonrecursive.test
index 5a6e07e0c0c..e3164f53887 100644
--- a/mysql-test/t/cte_nonrecursive.test
+++ b/mysql-test/t/cte_nonrecursive.test
@@ -434,3 +434,17 @@ with t(f1,f1) as (select * from t1 where b >= 'c')
select t1.b from t2,t1 where t1.a = t2.c;
drop table t1,t2;
+
+--echo #
+--echo # Bug mdev-9937: View used in the specification of with table
+--echo # refers to the base table with the same name
+--echo #
+
+create table t1 (a int);
+insert into t1 values (20), (30), (10);
+create view v1 as select * from t1 where a > 10;
+
+with t1 as (select * from v1) select * from t1;
+
+drop view v1;
+drop table t1;
diff --git a/mysql-test/t/cte_recursive.test b/mysql-test/t/cte_recursive.test
new file mode 100644
index 00000000000..34eee6d3bf2
--- /dev/null
+++ b/mysql-test/t/cte_recursive.test
@@ -0,0 +1,241 @@
+create table t1 (a int, b varchar(32));
+insert into t1 values
+(4,'aaaa' ), (7,'bb'), (1,'ccc'), (4,'dd');
+insert into t1 values
+(3,'eee'), (7,'bb'), (1,'fff'), (4,'ggg');
+
+--ERROR 1984
+with recursive
+a1(a,b) as
+(select * from t1 where t1.a>3
+union
+select * from b1 where b1.a >3
+union
+select * from c1 where c1.a>3),
+b1(a,b) as
+(select * from a1 where a1.b > 'ccc'
+union
+select * from c1 where c1.b > 'ddd'),
+c1(a,b) as
+(select * from a1 where a1.a<6 and a1.b< 'zz'
+union
+select * from b1 where b1.b > 'auu')
+select * from c1;
+
+drop table t1;
+
+create table folks(id int, name char(32), dob date, father int, mother int);
+
+insert into folks values
+(100, 'Vasya', '2000-01-01', 20, 30),
+(20, 'Dad', '1970-02-02', 10, 9),
+(30, 'Mom', '1975-03-03', 8, 7),
+(10, 'Grandpa Bill', '1940-04-05', null, null),
+(9, 'Grandma Ann', '1941-10-15', null, null),
+(25, 'Uncle Jim', '1968-11-18', 8, 7),
+(98, 'Sister Amy', '2001-06-20', 20, 30),
+(8, 'Grandma Sally', '1943-08-23', 5, 6),
+(6, 'Grandgrandma Martha', '1923-05-17', null, null),
+(67, 'Cousin Eddie', '1992-02-28', 25, 27),
+(27, 'Auntie Melinda', '1971-03-29', null, null);
+
+
+with recursive
+ancestors
+as
+(
+ select *
+ from folks
+ where name = 'Vasya' and dob = '2000-01-01'
+ union
+ select p.id, p.name, p.dob, p.father, p.mother
+ from folks as p, ancestors AS a
+ where p.id = a.father or p.id = a.mother
+)
+select * from ancestors;
+
+with recursive
+ancestors
+as
+(
+ select p.*
+ from folks as p, ancestors AS a
+ where p.id = a.father or p.id = a.mother
+ union
+ select *
+ from folks
+ where name = 'Vasya' and dob = '2000-01-01'
+)
+select * from ancestors;
+
+with recursive
+ancestors
+as
+(
+ select *
+ from folks
+ where name = 'Cousin Eddie'
+ union
+ select p.*
+ from folks as p, ancestors as a
+ where p.id = a.father or p.id = a.mother
+)
+select * from ancestors;
+
+with recursive
+ancestors
+as
+(
+ select *
+ from folks
+ where name = 'Vasya' or name='Sister Amy'
+ union
+ select p.*
+ from folks as p, ancestors as a
+ where p.id = a.father or p.id = a.mother
+)
+select * from ancestors;
+
+with recursive
+prev_gen
+as
+(
+ select folks.*
+ from folks, prev_gen
+ where folks.id=prev_gen.father or folks.id=prev_gen.mother
+ union
+ select *
+ from folks
+ where name='Vasya'
+),
+ancestors
+as
+(
+ select *
+ from folks
+ where name='Vasya'
+ union
+ select *
+ from ancestors
+ union
+ select *
+ from prev_gen
+)
+select ancestors.name, ancestors.dob from ancestors;
+
+
+with recursive
+descendants
+as
+(
+ select *
+ from folks
+ where name = 'Grandpa Bill'
+ union
+ select folks.*
+ from folks, descendants as d
+ where d.id=folks.father or d.id=folks.mother
+)
+select * from descendants;
+
+with recursive
+descendants
+as
+(
+ select *
+ from folks
+ where name = 'Grandma Sally'
+ union
+ select folks.*
+ from folks, descendants as d
+ where d.id=folks.father or d.id=folks.mother
+)
+select * from descendants;
+
+
+with recursive
+ancestors
+as
+(
+ select *
+ from folks
+ where name = 'Vasya' and dob = '2000-01-01'
+ union
+ select p.*
+ from folks as p, ancestors AS a
+ where p.id = a.father OR p.id = a.mother
+)
+select *
+ from ancestors t1, ancestors t2
+ where exists (select * from ancestors a
+ where a.father=t1.id AND a.mother=t2.id);
+
+with
+ancestor_couples(husband, h_dob, wife, w_dob)
+as
+(
+with recursive
+ancestors
+as
+(
+ select *
+ from folks
+ where name = 'Vasya'
+ union
+ select p.*
+ from folks as p, ancestors AS a
+ where p.id = a.father OR p.id = a.mother
+)
+select t1.name, t1.dob, t2.name, t2.dob
+ from ancestors t1, ancestors t2
+ where exists (select * from ancestors a
+ where a.father=t1.id AND a.mother=t2.id)
+)
+select * from ancestor_couples;
+
+with recursive
+ancestors
+as
+(
+ select *
+ from folks
+ where name = 'Vasya' and dob = '2000-01-01'
+ union
+ select p.*
+ from folks as p, ancestors AS a
+ where p.id = a.father
+ union
+ select p.*
+ from folks as p, ancestors AS a
+ where p.id = a.mother
+)
+select * from ancestors;
+
+with recursive
+ancestor_couples(h_id, h_name, h_dob, h_father, h_mother,
+ w_id, w_name, w_dob, w_father, w_mother)
+as
+(
+ select h.*, w.*
+ from folks h, folks w, coupled_ancestors a
+ where a.father = h.id AND a.mother = w.id
+ union
+ select h.*, w.*
+ from folks v, folks h, folks w
+ where v.name = 'Vasya' and
+ (v.father = h.id AND v.mother= w.id)
+),
+coupled_ancestors (id, name, dob, father, mother)
+as
+(
+ select h_id, h_name, h_dob, h_father, h_mother
+ from ancestor_couples
+ union
+ select w_id, w_name, w_dob, w_father, w_mother
+ from ancestor_couples
+)
+select h_name, h_dob, w_name, w_dob
+ from ancestor_couples;
+
+drop table folks;
+
diff --git a/mysql-test/t/ctype_eucjpms.test b/mysql-test/t/ctype_eucjpms.test
index d533e38b2a2..b5bd92d1d07 100644
--- a/mysql-test/t/ctype_eucjpms.test
+++ b/mysql-test/t/ctype_eucjpms.test
@@ -566,3 +566,19 @@ DROP TABLE t1;
--echo #
--echo # End of 10.1 tests
--echo #
+
+--echo #
+--echo # End of 10.2 tests
+--echo #
+
+--echo #
+--echo # MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis
+--echo #
+CREATE TABLE t1 (a TEXT CHARACTER SET eucjpms);
+LOAD DATA INFILE '../../std_data/loaddata/mdev9823.ujis.txt' INTO TABLE t1 CHARACTER SET eucjpms IGNORE 4 LINES;
+SELECT HEX(a) FROM t1;
+DROP TABLE t1;
+
+--echo #
+--echo # End of 10.2 tests
+--echo #
diff --git a/mysql-test/t/ctype_gbk_export_import.test b/mysql-test/t/ctype_gbk_export_import.test
new file mode 100644
index 00000000000..02d18fe60d4
--- /dev/null
+++ b/mysql-test/t/ctype_gbk_export_import.test
@@ -0,0 +1,161 @@
+--source include/not_windows.inc
+--source include/have_case_sensitive_file_system.inc
+--source include/have_gbk.inc
+
+#
+# Check if we're running on a POSIX-locale machine
+#
+
+--disable_query_log
+--exec locale -a > $MYSQLTEST_VARDIR/tmp/locale_a_gbk.output 2>/dev/null || true
+SET @file=REPLACE(LOAD_FILE('../../tmp/locale_a_gbk.output'), '-', '');
+# Note, file content must be case sensitive. See mysql_locale_posix.test
+--remove_file $MYSQLTEST_VARDIR/tmp/locale_a_gbk.output
+if (`SELECT (IFNULL(@file,'') NOT LIKE '%\nzh_CN.gbk\n%')`)
+{
+ Skip Need POSIX locale zh_CN.gbk;
+}
+--enable_query_log
+
+
+--disable_warnings
+DROP DATABASE IF EXISTS gbk;
+--enable_warnings
+
+CREATE DATABASE gbk DEFAULT CHARACTER SET gbk;
+USE gbk;
+
+CREATE TABLE t1 (
+ id INT NOT NULL,
+ a1 TEXT NOT NULL,
+ a2 TEXT CHARACTER SET utf8 NOT NULL,
+ b1 BLOB NOT NULL,
+ eol TEXT NOT NULL);
+
+DELIMITER |;
+CREATE PROCEDURE populate()
+BEGIN
+ TRUNCATE TABLE t1;
+ INSERT INTO t1 SET id=1, a1=0xEE5C, a2=_gbk 0xEE5C, b1=0xEE5C, eol='$';
+ INSERT INTO t1 SET id=2, a1=0xEE5C5C, a2=_gbk 0xEE5C5C, b1=0xEE5C5C, eol='$';
+END|
+
+CREATE FUNCTION cmt(id INT, field_name TEXT, field_value BLOB)
+ RETURNS TEXT CHARACTER SET utf8
+BEGIN
+ DECLARE comment TEXT CHARACTER SET utf8;
+ DECLARE expected_value_01 BLOB;
+ DECLARE expected_value_02 BLOB;
+ SET comment= CASE field_name WHEN 'a1' THEN 'TEXT-GBK' WHEN 'a2' THEN 'TEXT-UTF8' WHEN 'b1' THEN 'BLOB' ELSE '' END;
+ SET expected_value_01= CASE field_name WHEN 'a1' THEN 0xEE5C WHEN 'a2' THEN 0xE9A0AB WHEN 'b1' THEN 0xEE5C ELSE '' END;
+ SET expected_value_02= CASE field_name WHEN 'a1' THEN 0xEE5C5C WHEN 'a2' THEN 0xE9A0AB5C WHEN 'b1' THEN 0xEE5C5C ELSE '' END;
+ RETURN IF(CASE id
+ WHEN 1 THEN expected_value_01
+ WHEN 2 THEN expected_value_02
+ ELSE ''
+ END <> field_value,
+ CONCAT('BAD-', comment), '');
+END|
+
+CREATE FUNCTION display_file(file BLOB) RETURNS TEXT CHARACTER SET utf8
+BEGIN
+ SET file=REPLACE(file, 0x09, '----');
+ SET file=REPLACE(file, 0x0A, '++++');
+ RETURN REPLACE(REPLACE(HEX(file), '2D2D2D2D','-'), '2B2B2B2B','|');
+END|
+
+DELIMITER ;|
+
+CREATE VIEW v1 AS
+SELECT
+ id,
+ CONCAT(RPAD(HEX(a1),50,' '), cmt(id, 'a1', a1)) AS a1,
+ CONCAT(RPAD(HEX(a2),50,' '), cmt(id, 'a2', a2)) AS a2,
+ CONCAT(RPAD(HEX(b1),50,' '), cmt(id, 'b1', b1)) AS b1,
+ CONCAT(RPAD(HEX(eol),50,' '), IF(eol<>'$','BAD-EOL','')) AS eol,
+ '---' AS `---`
+FROM t1;
+SHOW CREATE TABLE t1;
+
+--echo #
+--echo # Dump using SELECT INTO OUTFILE
+--echo #
+
+--perl
+my $dir= $ENV{'MYSQL_TMP_DIR'};
+open (my $FILE, '>', "$dir/tmpgbk.inc") or die "open(): $!";
+for $LOCALE ("zh_CN.gbk") {
+for $DUMP_OPTIONS ("--default-character-set=auto", "--default-character-set=gbk","--default-character-set=utf8") {
+for $DUMP_CHARSET_CLAUSE ("", "CHARACTER SET gbk", "CHARACTER SET utf8", "CHARACTER SET binary") {
+for $RESTORE_OPTIONS ("--default-character-set=auto", "--default-character-set=gbk","--default-character-set=utf8") {
+for $RESTORE_CHARSET_CLAUSE ("", "CHARACTER SET gbk", "CHARACTER SET utf8", "CHARACTER SET binary") {
+print $FILE <<END
+--echo Start of {$LOCALE}{$DUMP_OPTIONS $DUMP_CHARSET_CLAUSE}{$RESTORE_OPTIONS $RESTORE_CHARSET_CLAUSE}
+--echo Locale: $LOCALE
+--echo OUTFILE: $DUMP_OPTIONS $DUMP_CHARSET_CLAUSE
+--echo INFILE: $RESTORE_OPTIONS $RESTORE_CHARSET_CLAUSE
+--disable_query_log
+CALL populate();
+--exec LC_ALL=$LOCALE \$MYSQL $DUMP_OPTIONS gbk -e "SELECT * INTO OUTFILE '\$MYSQLTEST_VARDIR/tmp/t1' $DUMP_CHARSET_CLAUSE FROM t1"
+--vertical_results
+TRUNCATE TABLE t1;
+--eval SELECT display_file(LOAD_FILE('\$MYSQLTEST_VARDIR/tmp/t1')) AS file;
+--exec LC_ALL=$LOCALE \$MYSQL $RESTORE_OPTIONS gbk -e "LOAD DATA INFILE '\$MYSQLTEST_VARDIR/tmp/t1' INTO TABLE t1 $RESTORE_CHARSET_CLAUSE"
+SELECT * FROM v1;
+--echo End of {$LOCALE}{$DUMP_OPTIONS $DUMP_CHARSET_CLAUSE}{$RESTORE_OPTIONS $RESTORE_CHARSET_CLAUSE}
+--echo
+--echo
+--horizontal_results
+--enable_query_log
+--remove_file \$MYSQLTEST_VARDIR/tmp/t1
+END
+}}}}}
+close $FILE
+EOF
+--source $MYSQL_TMP_DIR/tmpgbk.inc
+--remove_file $MYSQL_TMP_DIR/tmpgbk.inc
+
+
+--echo #
+--echo # Dump using mysqldump -Tdir
+--echo #
+
+--exec mkdir $MYSQLTEST_VARDIR/tmp/tmpgbk
+--perl
+my $dir= $ENV{'MYSQL_TMP_DIR'};
+open (my $FILE, '>', "$dir/tmpgbk.inc") or die "open(): $!";
+for $LOCALE ("zh_CN.gbk") {
+for $DUMP_OPTIONS ("--default-character-set=binary","--default-character-set=gbk","--default-character-set=utf8") {
+for $RESTORE_OPTIONS ("--default-character-set=auto","--default-character-set=binary","--default-character-set=gbk","--default-character-set=utf8") {
+for $RESTORE_CHARSET_CLAUSE ("", "CHARACTER SET gbk", "CHARACTER SET utf8", "CHARACTER SET binary") {
+print $FILE <<END
+--echo Start of {$LOCALE}{$DUMP_OPTIONS}{$RESTORE_OPTIONS $RESTORE_CHARSET_CLAUSE}
+--echo Locale: $LOCALE
+--echo mysqldump: $DUMP_OPTIONS
+--echo INFILE: $RESTORE_OPTIONS $RESTORE_CHARSET_CLAUSE
+--disable_query_log
+CALL populate();
+--exec LC_ALL=$LOCALE \$MYSQL_DUMP $DUMP_OPTIONS -T\$MYSQLTEST_VARDIR/tmp/tmpgbk gbk t1
+--vertical_results
+TRUNCATE TABLE t1;
+--eval SELECT display_file(LOAD_FILE('\$MYSQLTEST_VARDIR/tmp/tmpgbk/t1.txt')) AS file;
+--exec LC_ALL=$LOCALE \$MYSQL $RESTORE_OPTIONS gbk -e "LOAD DATA INFILE '\$MYSQLTEST_VARDIR/tmp/tmpgbk/t1.txt' INTO TABLE t1 $RESTORE_CHARSET_CLAUSE"
+SELECT * FROM v1;
+--echo End of {$LOCALE}{$DUMP_OPTIONS}{$RESTORE_OPTIONS $RESTORE_CHARSET_CLAUSE}
+--echo
+--echo
+--horizontal_results
+--enable_query_log
+--remove_file \$MYSQLTEST_VARDIR/tmp/tmpgbk/t1.txt
+--remove_file \$MYSQLTEST_VARDIR/tmp/tmpgbk/t1.sql
+END
+}}}}
+close $FILE
+EOF
+--source $MYSQL_TMP_DIR/tmpgbk.inc
+--remove_file $MYSQL_TMP_DIR/tmpgbk.inc
+--rmdir $MYSQLTEST_VARDIR/tmp/tmpgbk
+
+
+DROP DATABASE gbk;
+USE test;
diff --git a/mysql-test/t/ctype_ujis.test b/mysql-test/t/ctype_ujis.test
index 3f444580b13..db85585efd9 100644
--- a/mysql-test/t/ctype_ujis.test
+++ b/mysql-test/t/ctype_ujis.test
@@ -1396,3 +1396,20 @@ SELECT HEX(a) FROM t1 ORDER BY a;DROP TABLE t1;
--echo #
--echo # End of 10.1 tests
--echo #
+
+
+--echo #
+--echo # End of 10.2 tests
+--echo #
+
+--echo #
+--echo # MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis
+--echo #
+CREATE TABLE t1 (a TEXT CHARACTER SET ujis);
+LOAD DATA INFILE '../../std_data/loaddata/mdev9823.ujis.txt' INTO TABLE t1 CHARACTER SET ujis IGNORE 4 LINES;
+SELECT HEX(a) FROM t1;
+DROP TABLE t1;
+
+--echo #
+--echo # End of 10.2 tests
+--echo #
diff --git a/mysql-test/t/ctype_utf8.test b/mysql-test/t/ctype_utf8.test
index f3a9e63b57d..61bc1c58ecb 100644
--- a/mysql-test/t/ctype_utf8.test
+++ b/mysql-test/t/ctype_utf8.test
@@ -1967,5 +1967,21 @@ SELECT c1 FROM t1;
DROP TABLE t1;
--echo #
+--echo # MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis
+--echo #
+CREATE TABLE t1 (a TEXT CHARACTER SET utf8);
+LOAD DATA INFILE '../../std_data/loaddata/mdev9823.utf8mb4.txt' INTO TABLE t1 CHARACTER SET utf8 IGNORE 4 LINES;
+SELECT HEX(a) FROM t1;
+DROP TABLE t1;
+
+--echo #
+--echo # MDEV-9874 LOAD XML INFILE does not handle well broken multi-byte characters
+--echo #
+CREATE TABLE t1 (a TEXT CHARACTER SET utf8);
+LOAD XML INFILE '../../std_data/loaddata/mdev9874.xml' INTO TABLE t1 CHARACTER SET utf8 ROWS IDENTIFIED BY '<row>';
+SELECT HEX(a) FROM t1;
+DROP TABLE t1;
+
+--echo #
--echo # End of 10.2 tests
--echo #
diff --git a/mysql-test/t/ctype_utf8mb4.test b/mysql-test/t/ctype_utf8mb4.test
index 2fe9b5e6544..74e39a80e5b 100644
--- a/mysql-test/t/ctype_utf8mb4.test
+++ b/mysql-test/t/ctype_utf8mb4.test
@@ -1919,3 +1919,20 @@ DROP FUNCTION f1;
--echo #
--echo # End of 10.1 tests
--echo #
+
+
+--echo #
+--echo # End of 10.2 tests
+--echo #
+
+--echo #
+--echo # MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis
+--echo #
+CREATE TABLE t1 (a TEXT CHARACTER SET utf8mb4);
+LOAD DATA INFILE '../../std_data/loaddata/mdev9823.utf8mb4.txt' INTO TABLE t1 CHARACTER SET utf8mb4 IGNORE 4 LINES;
+SELECT HEX(a) FROM t1;
+DROP TABLE t1;
+
+--echo #
+--echo # End of 10.2 tests
+--echo #
diff --git a/mysql-test/t/delayed.test b/mysql-test/t/delayed.test
index 85f28de128b..dea16c84a51 100644
--- a/mysql-test/t/delayed.test
+++ b/mysql-test/t/delayed.test
@@ -1,5 +1,12 @@
# delayed works differently in embedded server
--source include/not_embedded.inc
+# Don't test this under valgrind, memory leaks will occur
+--source include/not_valgrind.inc
+# Avoid CrashReporter popup on Mac
+--source include/not_crashrep.inc
+# Binary must be compiled with debug for crash to occur
+--source include/have_debug_sync.inc
+
#
# test of DELAYED insert and timestamps
# (Can't be tested with purify :( )
@@ -601,3 +608,37 @@ disconnect con1;
--source include/wait_until_disconnected.inc
connection default;
drop tables tm, t1, t2;
+
+--echo #
+--echo # MDEV-9621 INSERT DELAYED fails on insert for tables with many columns
+--echo #
+
+CREATE TABLE t1 (
+ a int,b int,c int,d int,e int,f int,g int,h int,i int,j int,k int,l int,m int,n int,o int,p int,q int,r int,s int,t int,u int,v int,x int,y int,z int
+) ENGINE=MyISAM;
+
+INSERT DELAYED INTO t1 (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,x,y,z)
+values (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
+INSERT DELAYED INTO t1 (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,x,y,z)
+values (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
+drop table t1;
+
+--echo #
+--echo # INSERT DELAYED hangs if table was crashed
+--echo #
+
+create table t1 (a int, b int) engine=myisam;
+insert into t1 values (1,1);
+
+# Will come back with t1 crashed.
+--source include/crash_mysqld.inc
+
+call mtr.add_suppression(" marked as crashed and should be repaired");
+call mtr.add_suppression("Checking table");
+
+--replace_result '\\' '/'
+insert delayed into t1 values (2,2);
+insert delayed into t1 values (3,3);
+flush tables t1;
+select * from t1;
+drop table t1;
diff --git a/mysql-test/t/func_analyse.test b/mysql-test/t/func_analyse.test
index c77967a0cc9..6c30c0ca630 100644
--- a/mysql-test/t/func_analyse.test
+++ b/mysql-test/t/func_analyse.test
@@ -11,7 +11,7 @@ insert into t1 values (1,2,"","Y","2002-03-03"), (3,4,"","N","2002-03-04"), (5,6
select count(*) from t1 procedure analyse();
select * from t1 procedure analyse();
select * from t1 procedure analyse(2);
---error ER_WRONG_USAGE
+--error ER_PARSE_ERROR
create table t2 select * from t1 procedure analyse();
drop table t1;
@@ -127,7 +127,7 @@ CREATE TABLE t1(a INT);
INSERT INTO t1 VALUES (1),(2);
--echo # should not crash
---error ER_WRONG_USAGE
+--error ER_PARSE_ERROR
CREATE TABLE t2 SELECT 1 FROM t1, t1 t3 GROUP BY t3.a PROCEDURE ANALYSE();
DROP TABLE t1;
@@ -157,3 +157,27 @@ SELECT * FROM t2 LIMIT 1 PROCEDURE ANALYSE();
DROP TABLE t1, t2;
--echo End of 5.1 tests
+
+--echo #
+--echo # Start of 10.2 tests
+--echo #
+(SELECT 1 FROM DUAL PROCEDURE ANALYSE());
+((SELECT 1 FROM DUAL PROCEDURE ANALYSE()));
+
+# TODO:
+--error ER_WRONG_USAGE
+SELECT * FROM t1 UNION SELECT * FROM t1 PROCEDURE analyse();
+
+--echo #
+--echo # MDEV-10030 sql_yacc.yy: Split table_expression and remove PROCEDURE from create_select, select_paren_derived, select_derived2, query_specification
+--echo #
+
+--error ER_PARSE_ERROR
+SELECT * FROM (SELECT * FROM t1 PROCEDURE ANALYSE());
+--ERROR ER_PARSE_ERROR
+SELECT * FROM t1 NATURAL JOIN (SELECT * FROM t2 PROCEDURE ANALYSE());
+
+--error ER_PARSE_ERROR
+SELECT (SELECT 1 FROM t1 PROCEDURE ANALYSE()) FROM t2;
+--error ER_PARSE_ERROR
+SELECT ((SELECT 1 FROM t1 PROCEDURE ANALYSE())) FROM t2;
diff --git a/mysql-test/t/group_by.test b/mysql-test/t/group_by.test
index fe9308cd20a..f0007186ab2 100644
--- a/mysql-test/t/group_by.test
+++ b/mysql-test/t/group_by.test
@@ -996,8 +996,33 @@ EXPLAIN SELECT a FROM t1 WHERE a < 2 ORDER BY a;
EXPLAIN SELECT a FROM t1 WHERE a < 2 GROUP BY a;
EXPLAIN SELECT a FROM t1 IGNORE INDEX (PRIMARY,i2);
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR JOIN (PRIMARY,i2);
+
+--echo #
+--echo # For this explain, the query plan is weird: if we are using
+--echo # the primary key for reasons other than doing grouping, can't
+--echo # GROUP BY code take advantage of this? Well, currently it doesnt:
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (PRIMARY,i2) GROUP BY a;
+--echo # Here's a proof it is really doing sorting:
+flush status;
+--disable_result_log
+SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (PRIMARY,i2) GROUP BY a;
+--enable_result_log
+show status like 'Sort_%';
+--echo # Proof ends.
+--echo #
+
+--echo # For this explain, the query plan is weird: if we are using
+--echo # the primary key for reasons other than doing sorting, can't
+--echo # ORDER BY code take advantage of this? Well, currently it doesnt:
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a;
+--echo # Here's a proof it is really doing sorting:
+flush status;
+--disable_result_log
+SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a;
+--enable_result_log
+show status like 'Sort_%';
+--echo # Proof ends.
+--echo #
SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a;
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY)
IGNORE INDEX FOR GROUP BY (i2) GROUP BY a;
@@ -1793,3 +1818,13 @@ from t1
group by t1.b;
drop table t0,t1,t2;
+
+--echo #
+--echo # MDEV-9602 crash in st_key::actual_rec_per_key when group by constant
+--echo #
+
+create table t1 (a date not null,unique (a)) engine=innodb;
+select distinct a from t1 group by 'a';
+insert into t1 values("2001-02-02"),("2001-02-03");
+select distinct a from t1 group by 'a';
+drop table t1;
diff --git a/mysql-test/t/limit_rows_examined.test b/mysql-test/t/limit_rows_examined.test
index 45ee483c7aa..382530234be 100644
--- a/mysql-test/t/limit_rows_examined.test
+++ b/mysql-test/t/limit_rows_examined.test
@@ -305,7 +305,6 @@ select c1, sum(c2) from t3 group by c1;
explain
select c1, sum(c2) from t3 group by c1 LIMIT ROWS EXAMINED 0;
select c1, sum(c2) from t3 group by c1 LIMIT ROWS EXAMINED 0;
---error 1028
select c1, sum(c2) from t3 group by c1 LIMIT ROWS EXAMINED 1;
select c1, sum(c2) from t3 group by c1 LIMIT ROWS EXAMINED 20;
select c1, sum(c2) from t3 group by c1 LIMIT ROWS EXAMINED 21;
@@ -321,7 +320,6 @@ insert into t3i values
explain
select c1, sum(c2) from t3i group by c1 LIMIT ROWS EXAMINED 0;
select c1, sum(c2) from t3i group by c1 LIMIT ROWS EXAMINED 0;
---error 1028
select c1, sum(c2) from t3i group by c1 LIMIT ROWS EXAMINED 1;
select c1, sum(c2) from t3i group by c1 LIMIT ROWS EXAMINED 20;
select c1, sum(c2) from t3i group by c1 LIMIT ROWS EXAMINED 21;
@@ -432,7 +430,7 @@ drop table t1,t2,t1i,t2i;
SET @@optimizer_switch='in_to_exists=on,outer_join_with_cache=on';
CREATE TABLE t1 ( a VARCHAR(3) ) ENGINE=MyISAM;
-INSERT INTO t1 VALUES ('USA');
+INSERT INTO t1 VALUES ('USA'),('CAN');
CREATE TABLE t2 ( b INT );
INSERT INTO t2 VALUES (3899),(3914),(3888);
diff --git a/mysql-test/t/myisam.test b/mysql-test/t/myisam.test
index 9ac49a9063d..a454fa25ac4 100644
--- a/mysql-test/t/myisam.test
+++ b/mysql-test/t/myisam.test
@@ -552,6 +552,8 @@ insert t2 select * from t1;
checksum table t1, t2, t3 quick;
checksum table t1, t2, t3;
checksum table t1, t2, t3 extended;
+alter table t1 add d int default 30, add e bigint default 300000, add f decimal(30) default 442;
+checksum table t1;
#show table status;
drop table t1,t2;
diff --git a/mysql-test/t/order_by_optimizer.test b/mysql-test/t/order_by_optimizer.test
new file mode 100644
index 00000000000..a4c134afec9
--- /dev/null
+++ b/mysql-test/t/order_by_optimizer.test
@@ -0,0 +1,34 @@
+--disable_warnings
+drop table if exists t0,t1,t2,t3;
+
+--enable_warnings
+--echo #
+--echo # MDEV-7885: EXPLAIN shows wrong info for ORDER BY query
+--echo #
+create table t0(a int);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t1(a int);
+insert into t1 select A.a + B.a* 10 + C.a * 100 from t0 A, t0 B, t0 C;
+
+create table t2 (key1 int, col1 int, key(key1));
+insert into t2 select a,a from t0;
+insert into t2 select 15,15 from t1;
+alter table t2 add key2 int, add key(key2);
+--echo # This must show "Using filesort":
+explain
+select * from t2 ignore index for order by (key1) where col1<0 order by key1 limit 10;
+
+drop table t0, t1, t2;
+
+--echo #
+--echo # MDEV-8857: [Upstream too] EXPLAIN incorrectly shows Distinct for tables using join buffer
+--echo #
+create table t0(a int);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+
+create table t1 (a int, filler char(200), key(a));
+insert into t1 select A.a + B.a* 10, 'AAAAAAAAAAAAAAAAAAAA' from t0 A, t0 B where B.a in (0,1);
+explain select distinct A.a from t0 A, t1 B where A.a+B.a> 0;
+
+drop table t0, t1;
+
diff --git a/mysql-test/t/parser.test b/mysql-test/t/parser.test
index 0a19b03a4eb..86cc3c47c37 100644
--- a/mysql-test/t/parser.test
+++ b/mysql-test/t/parser.test
@@ -806,7 +806,7 @@ SELECT 1 FROM
(SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
FOR UPDATE) a;
---error ER_WRONG_USAGE
+--error ER_PARSE_ERROR
SELECT 1 FROM
(SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
PROCEDURE ANALYSE() FOR UPDATE) a;
@@ -815,7 +815,7 @@ SELECT 1 FROM t1
WHERE EXISTS(SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
FOR UPDATE);
---error ER_WRONG_USAGE
+--error ER_PARSE_ERROR
SELECT 1 FROM t1
WHERE EXISTS(SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
PROCEDURE ANALYSE() FOR UPDATE);
diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test
index 7a7c01e78bd..5313a4b8a39 100644
--- a/mysql-test/t/subselect.test
+++ b/mysql-test/t/subselect.test
@@ -51,7 +51,7 @@ SELECT * FROM (SELECT 1 as id) b WHERE id IN (SELECT * FROM (SELECT 1 as id) c O
SELECT * FROM (SELECT 1) a WHERE 1 IN (SELECT 1,1);
SELECT 1 IN (SELECT 1);
SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
--- error ER_WRONG_USAGE
+-- error ER_PARSE_ERROR
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));
-- error ER_PARSE_ERROR
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));
diff --git a/mysql-test/t/win.test b/mysql-test/t/win.test
new file mode 100644
index 00000000000..09ddf41b4f0
--- /dev/null
+++ b/mysql-test/t/win.test
@@ -0,0 +1,1203 @@
+#
+# Window Functions Tests
+#
+
+--disable_warnings
+drop table if exists t1,t2;
+drop view if exists v1;
+--enable_warnings
+
+--echo # ########################################################################
+--echo # # Parser tests
+--echo # ########################################################################
+--echo #
+--echo # Check what happens when one attempts to use window function without OVER clause
+create table t1 (a int, b int);
+insert into t1 values (1,1),(2,2);
+
+--error ER_PARSE_ERROR
+select row_number() from t1;
+--error ER_PARSE_ERROR
+select rank() from t1;
+
+--echo # Attempt to use window function in the WHERE clause
+--error ER_WRONG_PLACEMENT_OF_WINDOW_FUNCTION
+select * from t1 where 1=rank() over (order by a);
+--error ER_WRONG_PLACEMENT_OF_WINDOW_FUNCTION
+select * from t1 where 1>row_number() over (partition by b order by a);
+drop table t1;
+
+--echo # ########################################################################
+--echo # # Functionality tests
+--echo # ########################################################################
+--echo #
+--echo # Check if ROW_NUMBER() works in basic cases
+create table t1(a int, b int, x char(32));
+insert into t1 values (2, 10, 'xx');
+insert into t1 values (2, 10, 'zz');
+insert into t1 values (2, 20, 'yy');
+insert into t1 values (3, 10, 'xxx');
+insert into t1 values (3, 20, 'vvv');
+
+--sorted_result
+select a, row_number() over (partition by a order by b) from t1;
+
+select a, b, x, row_number() over (partition by a order by x) from t1;
+
+drop table t1;
+
+create table t1 (pk int primary key, a int, b int);
+insert into t1 values
+ (1, 10, 22),
+ (2, 11, 21),
+ (3, 12, 20),
+ (4, 13, 19),
+ (5, 14, 18);
+
+select
+ pk, a, b,
+ row_number() over (order by a),
+ row_number() over (order by b)
+from t1;
+
+drop table t1;
+
+--echo #
+--echo # Try RANK() function
+--echo #
+create table t2 (
+ pk int primary key,
+ a int
+);
+
+insert into t2 values
+( 1 , 0),
+( 2 , 0),
+( 3 , 1),
+( 4 , 1),
+( 8 , 2),
+( 5 , 2),
+( 6 , 2),
+( 7 , 2),
+( 9 , 4),
+(10 , 4);
+
+select pk, a, rank() over (order by a) from t2;
+select pk, a, rank() over (order by a desc) from t2;
+
+drop table t2;
+
+--echo #
+--echo # Try Aggregates as window functions. With frames.
+--echo #
+create table t0 (a int);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+
+create table t1 (pk int, c int);
+insert into t1 select a+1,1 from t0;
+update t1 set c=2 where pk not in (1,2,3,4);
+select * from t1;
+
+select
+ pk, c,
+ count(*) over (partition by c order by pk
+ rows between 2 preceding and 2 following) as CNT
+from t1;
+
+select
+ pk, c,
+ count(*) over (partition by c order by pk
+ rows between 1 preceding and 2 following) as CNT
+from t1;
+
+select
+ pk, c,
+ count(*) over (partition by c order by pk
+ rows between 2 preceding and current row) as CNT
+from t1;
+
+select
+ pk,c,
+ count(*) over (partition by c order by pk rows
+ between 1 following and 2 following) as CNT
+from t1;
+
+select
+ pk,c,
+ count(*) over (partition by c order by pk rows
+ between 2 preceding and 1 preceding) as CNT
+from t1;
+
+select
+ pk, c,
+ count(*) over (partition by c order by pk
+ rows between current row and 1 following) as CNT
+from t1;
+
+--echo # Check ORDER BY DESC
+select
+ pk, c,
+ count(*) over (partition by c order by pk desc
+ rows between 2 preceding and 2 following) as CNT
+from t1;
+
+drop table t0,t1;
+
+--echo #
+--echo # Resolution of window names
+--echo #
+
+create table t0 (a int);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+
+create table t1 (pk int, c int);
+insert into t1 select a+1,1 from t0;
+update t1 set c=2 where pk not in (1,2,3,4);
+select * from t1;
+
+select
+ pk, c,
+ count(*) over w1 as CNT
+from t1
+window w1 as (partition by c order by pk
+ rows between 2 preceding and 2 following);
+
+select
+ pk, c,
+ count(*) over (w1 rows between 2 preceding and 2 following) as CNT
+from t1
+window w1 as (partition by c order by pk);
+
+select
+ pk, c,
+ count(*) over (w1 order by pk rows between 2 preceding and 2 following) as CNT
+from t1
+window w1 as (partition by c);
+
+select
+ pk, c,
+ count(*) over (w2 rows between 2 preceding and 2 following) as CNT
+from t1
+window w1 as (partition by c), w2 as (w1 order by pk);
+
+select
+ pk, c,
+ count(*) over w3 as CNT
+from t1
+window
+ w1 as (partition by c),
+ w2 as (w1 order by pk),
+ w3 as (w2 rows between 2 preceding and 2 following);
+
+--error ER_WRONG_WINDOW_SPEC_NAME
+select
+ pk, c,
+ count(*) over w as CNT
+from t1
+window w1 as (partition by c order by pk
+ rows between 2 preceding and 2 following);
+
+--error ER_DUP_WINDOW_NAME
+select
+ pk, c,
+ count(*) over (w2 rows between 2 preceding and 2 following) as CNT
+from t1
+window w1 as (partition by c), w1 as (order by pk);
+
+--error ER_WRONG_WINDOW_SPEC_NAME
+select
+ pk, c,
+ count(*) over (w2 rows between 2 preceding and 2 following) as CNT
+from t1
+window w1 as (partition by c), w2 as (w partition by c order by pk);
+
+--error ER_PARTITION_LIST_IN_REFERENCING_WINDOW_SPEC
+select
+ pk, c,
+ count(*) over (w2 rows between 2 preceding and 2 following) as CNT
+from t1
+window w1 as (partition by c), w2 as (w1 partition by c order by pk);
+
+--error ER_ORDER_LIST_IN_REFERENCING_WINDOW_SPEC
+select
+ pk, c,
+ count(*) over (w2 rows between 2 preceding and 2 following) as CNT
+from t1
+window w1 as (partition by c order by pk), w2 as (w1 order by pk);
+
+--error ER_WINDOW_FRAME_IN_REFERENCED_WINDOW_SPEC
+select
+ pk, c,
+ count(*) over w3 as CNT
+from t1
+window
+ w1 as (partition by c),
+ w2 as (w1 order by pk rows between 3 preceding and 2 following),
+ w3 as (w2 rows between 2 preceding and 2 following);
+
+--error ER_BAD_COMBINATION_OF_WINDOW_FRAME_BOUND_SPECS
+select
+ pk, c,
+ count(*) over w1 as CNT
+from t1
+window w1 as (partition by c order by pk
+ rows between unbounded following and 2 following);
+
+--error ER_BAD_COMBINATION_OF_WINDOW_FRAME_BOUND_SPECS
+select
+ pk, c,
+ count(*) over (w1 rows between 2 preceding and unbounded preceding) as CNT
+from t1
+window w1 as (partition by c order by pk);
+
+--error ER_BAD_COMBINATION_OF_WINDOW_FRAME_BOUND_SPECS
+select
+ pk, c,
+ count(*) over (w1 order by pk rows between current row and 2 preceding) as CNT
+from t1
+window w1 as (partition by c);
+
+--error ER_BAD_COMBINATION_OF_WINDOW_FRAME_BOUND_SPECS
+select
+ pk, c,
+ count(*) over (w2 rows between 2 following and current row) as CNT
+from t1
+window w1 as (partition by c), w2 as (w1 order by pk);
+
+--error ER_WRONG_PLACEMENT_OF_WINDOW_FUNCTION
+select
+ pk, c
+from t1 where rank() over w1 > 2
+window w1 as (partition by c order by pk);
+
+--error ER_WRONG_PLACEMENT_OF_WINDOW_FUNCTION
+select
+ c, max(pk) as m
+from t1
+ group by c + rank() over w1
+window w1 as (order by m);
+
+--error ER_WRONG_PLACEMENT_OF_WINDOW_FUNCTION
+select
+ c, max(pk) as m, rank() over w1 as r
+from t1
+ group by c+r
+window w1 as (order by m);
+
+--error ER_WRONG_PLACEMENT_OF_WINDOW_FUNCTION
+select
+ c, max(pk) as m, rank() over w1 as r
+from t1
+ group by c having c+r > 3
+window w1 as (order by m);
+
+--error ER_WINDOW_FUNCTION_IN_WINDOW_SPEC
+select
+ c, max(pk) as m, rank() over w1 as r,
+ rank() over (partition by r+1 order by m)
+from t1
+ group by c
+window w1 as (order by m);
+
+--error ER_WINDOW_FUNCTION_IN_WINDOW_SPEC
+select
+ c, max(pk) as m, rank() over w1 as r,
+ rank() over (partition by m order by r)
+from t1
+ group by c
+window w1 as (order by m);
+
+--error ER_WINDOW_FUNCTION_IN_WINDOW_SPEC
+select
+ c, max(pk) as m, rank() over w1 as r, dense_rank() over w2 as dr
+from t1
+ group by c
+window w1 as (order by m), w2 as (partition by r order by m);
+
+--error ER_NOT_ALLOWED_WINDOW_FRAME
+select
+ pk, c,
+ row_number() over (partition by c order by pk
+ range between unbounded preceding and current row) as r
+from t1;
+
+--error ER_NOT_ALLOWED_WINDOW_FRAME
+select
+ pk, c,
+ rank() over w1 as r
+from t1
+window w1 as (partition by c order by pk
+ rows between 2 preceding and 2 following);
+
+--error ER_NOT_ALLOWED_WINDOW_FRAME
+select
+ pk, c,
+ dense_rank() over (partition by c order by pk
+ rows between 1 preceding and 1 following) as r
+from t1;
+
+--error ER_NO_ORDER_LIST_IN_WINDOW_SPEC
+select
+ pk, c,
+ rank() over w1 as r
+from t1
+window w1 as (partition by c);
+
+--error ER_NO_ORDER_LIST_IN_WINDOW_SPEC
+select
+ pk, c,
+ dense_rank() over (partition by c) as r
+from t1;
+
+drop table t0,t1;
+
+--echo #
+--echo # MDEV-9634: Window function produces incorrect value
+--echo #
+
+create table t0 (a int);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t2 (part_id int, pk int, a int);
+insert into t2 select
+ if(a<5, 0, 1), a, if(a<5, NULL, 1) from t0;
+select * from t2;
+
+select
+ part_id, pk, a,
+ count(a) over (partition by part_id order by pk
+ rows between 1 preceding and 1 following) as CNT
+from t2;
+
+drop table t0, t2;
+
+--echo #
+--echo # RANGE-type bounds
+--echo #
+
+create table t3 (
+ pk int,
+ val int
+);
+
+insert into t3 values
+(0, 1),
+(1, 1),
+(2, 1),
+(3, 2),
+(4, 2),
+(5, 2),
+(6, 2);
+
+select
+ pk,
+ val,
+ count(val) over (order by val
+ range between current row and
+ current row)
+ as CNT
+from t3;
+
+insert into t3 values
+(7, 3),
+(8, 3);
+
+select
+ pk,
+ val,
+ count(val) over (order by val
+ range between current row and
+ current row)
+ as CNT
+from t3;
+
+drop table t3;
+
+--echo # Now, check with PARTITION BY
+create table t4 (
+ part_id int,
+ pk int,
+ val int
+);
+
+insert into t4 values
+(1234, 100, 1),
+(1234, 101, 1),
+(1234, 102, 1),
+(1234, 103, 2),
+(1234, 104, 2),
+(1234, 105, 2),
+(1234, 106, 2),
+(1234, 107, 3),
+(1234, 108, 3),
+
+(5678, 200, 1),
+(5678, 201, 1),
+(5678, 202, 1),
+(5678, 203, 2),
+(5678, 204, 2),
+(5678, 205, 2),
+(5678, 206, 2),
+(5678, 207, 3),
+(5678, 208, 3);
+
+select
+ part_id,
+ pk,
+ val,
+ count(val) over (partition by part_id
+ order by val
+ range between current row and
+ current row)
+ as CNT
+from t4;
+
+--echo #
+--echo # Try RANGE UNBOUNDED PRECEDING | FOLLOWING
+--echo #
+select
+ part_id,
+ pk,
+ val,
+ count(val) over (partition by part_id
+ order by val
+ range between unbounded preceding and
+ current row)
+ as CNT
+from t4;
+
+select
+ part_id,
+ pk,
+ val,
+ count(val) over (partition by part_id
+ order by val
+ range between current row and
+ unbounded following)
+ as CNT
+from t4;
+
+select
+ part_id,
+ pk,
+ val,
+ count(val) over (partition by part_id
+ order by val
+ range between unbounded preceding and
+ unbounded following)
+ as CNT
+from t4;
+
+drop table t4;
+
+--echo #
+--echo # MDEV-9695: Wrong window frame when using RANGE BETWEEN N FOLLOWING AND PRECEDING
+--echo #
+create table t1 (pk int, a int, b int);
+insert into t1 values
+( 1 , 0, 1),
+( 2 , 0, 2),
+( 3 , 1, 4),
+( 4 , 1, 8),
+( 5 , 2, 32),
+( 6 , 2, 64),
+( 7 , 2, 128),
+( 8 , 2, 16);
+
+select pk, a, b,
+bit_or(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) as bit_or
+from t1;
+
+--echo # Extra ROWS n PRECEDING tests
+select pk, a, b,
+bit_or(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) as bit_or
+from t1;
+drop table t1;
+
+
+create table t2 (
+ pk int,
+ a int,
+ b int
+);
+
+insert into t2 values
+( 1, 0, 1),
+( 2, 0, 2),
+( 3, 0, 4),
+( 4, 0, 8),
+( 5, 1, 16),
+( 6, 1, 32),
+( 7, 1, 64),
+( 8, 1, 128),
+( 9, 2, 256),
+(10, 2, 512),
+(11, 2, 1024),
+(12, 2, 2048);
+
+select pk, a, b,
+bit_or(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) as bit_or
+from t2;
+
+select pk, a, b,
+bit_or(b) over (partition by a order by pk ROWS BETWEEN 2 PRECEDING AND 2 PRECEDING) as bit_or
+from t2;
+
+select pk, a, b,
+bit_or(b) over (partition by a order by pk ROWS BETWEEN 2 PRECEDING AND 1 PRECEDING) as bit_or
+from t2;
+
+--echo # Check CURRENT ROW
+
+select pk, a, b,
+bit_or(b) over (partition by a order by pk ROWS BETWEEN CURRENT ROW AND CURRENT ROW) as bit_or
+from t2;
+
+drop table t2;
+
+--echo #
+--echo # Try RANGE PRECEDING|FOLLWING n
+--echo #
+create table t1 (
+ part_id int,
+ pk int,
+ a int
+);
+
+insert into t1 values
+(10, 1, 1),
+(10, 2, 2),
+(10, 3, 4),
+(10, 4, 8),
+(10, 5,26),
+(10, 6,27),
+(10, 7,40),
+(10, 8,71),
+(10, 9,72);
+
+select
+ pk, a,
+ count(a) over (ORDER BY a
+ RANGE BETWEEN UNBOUNDED PRECEDING
+ AND 10 FOLLOWING) as cnt
+from t1;
+
+select
+ pk, a,
+ count(a) over (ORDER BY a DESC
+ RANGE BETWEEN UNBOUNDED PRECEDING
+ AND 10 FOLLOWING) as cnt
+from t1;
+
+select
+ pk, a,
+ count(a) over (ORDER BY a
+ RANGE BETWEEN UNBOUNDED PRECEDING
+ AND 1 FOLLOWING) as cnt
+from t1;
+
+select
+ pk, a,
+ count(a) over (ORDER BY a
+ RANGE BETWEEN UNBOUNDED PRECEDING
+ AND 10 PRECEDING) as cnt
+from t1;
+
+select
+ pk, a,
+ count(a) over (ORDER BY a DESC
+ RANGE BETWEEN UNBOUNDED PRECEDING
+ AND 10 PRECEDING) as cnt
+from t1;
+
+select
+ pk, a,
+ count(a) over (ORDER BY a
+ RANGE BETWEEN UNBOUNDED PRECEDING
+ AND 1 PRECEDING) as cnt
+from t1;
+
+# Try bottom bound
+select
+ pk, a,
+ count(a) over (ORDER BY a
+ RANGE BETWEEN 1 PRECEDING
+ AND CURRENT ROW) as cnt
+from t1;
+
+select
+ pk, a,
+ count(a) over (ORDER BY a DESC
+ RANGE BETWEEN 1 PRECEDING
+ AND CURRENT ROW) as cnt
+from t1;
+
+select
+ pk, a,
+ count(a) over (ORDER BY a
+ RANGE BETWEEN 1 FOLLOWING
+ AND 3 FOLLOWING) as cnt
+from t1;
+
+--echo # Try CURRENT ROW with[out] DESC
+select
+ pk, a,
+ count(a) over (ORDER BY a
+ RANGE BETWEEN CURRENT ROW
+ AND 1 FOLLOWING) as cnt
+from t1;
+
+select
+ pk, a,
+ count(a) over (order by a desc
+ range between current row
+ and 1 following) as cnt
+from t1;
+
+
+# Try with partitions
+insert into t1 select 22, pk, a from t1;
+select
+ part_id, pk, a,
+ count(a) over (PARTITION BY part_id
+ ORDER BY a
+ RANGE BETWEEN UNBOUNDED PRECEDING
+ AND 10 FOLLOWING) as cnt
+from t1;
+
+select
+ pk, a,
+ count(a) over (PARTITION BY part_id
+ ORDER BY a
+ RANGE BETWEEN UNBOUNDED PRECEDING
+ AND 1 PRECEDING) as cnt
+from t1;
+
+drop table t1;
+
+--echo # Try a RANGE frame over non-integer datatype:
+
+create table t1 (
+ col1 int,
+ a decimal(5,3)
+);
+
+insert into t1 values (1, 0.45);
+insert into t1 values (1, 0.5);
+insert into t1 values (1, 0.55);
+insert into t1 values (1, 1.21);
+insert into t1 values (1, 1.22);
+insert into t1 values (1, 3.33);
+
+select
+ a,
+ count(col1) over (order by a
+ range between 0.1 preceding
+ and 0.1 following)
+from t1;
+
+drop table t1;
+
+--echo #
+--echo # RANGE-type frames and NULL values
+--echo #
+create table t1 (
+ pk int,
+ a int,
+ b int
+);
+
+insert into t1 values (1, NULL,1);
+insert into t1 values (2, NULL,1);
+insert into t1 values (3, NULL,1);
+insert into t1 values (4, 10 ,1);
+insert into t1 values (5, 11 ,1);
+insert into t1 values (6, 12 ,1);
+insert into t1 values (7, 13 ,1);
+insert into t1 values (8, 14 ,1);
+
+
+select
+ pk, a,
+ count(b) over (order by a
+ range between 2 preceding
+ and 2 following) as CNT
+from t1;
+drop table t1;
+
+--echo #
+--echo # Try ranges that have bound1 > bound2. The standard actually allows them
+--echo #
+
+create table t0 (a int);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+
+create table t1 (pk int, c int);
+insert into t1 select a+1,1 from t0;
+update t1 set c=2 where pk not in (1,2,3,4);
+select * from t1;
+
+select
+ pk, c,
+ count(*) over (partition by c
+ order by pk
+ rows between 1 preceding
+ and 2 preceding)
+ as cnt
+from t1;
+
+
+select
+ pk, c,
+ count(*) over (partition by c
+ order by pk
+ range between 1 preceding
+ and 2 preceding)
+ as cnt
+from t1;
+drop table t0, t1;
+
+--echo #
+--echo # Error checking for frame bounds
+--echo #
+
+create table t1 (a int, b int, c varchar(32));
+insert into t1 values (1,1,'foo');
+insert into t1 values (2,2,'bar');
+--error ER_RANGE_FRAME_NEEDS_SIMPLE_ORDERBY
+select
+ count(*) over (order by a,b
+ range between unbounded preceding and current row)
+from t1;
+
+--error ER_WRONG_TYPE_FOR_RANGE_FRAME
+select
+ count(*) over (order by c
+ range between unbounded preceding and current row)
+from t1;
+
+--error ER_WRONG_TYPE_FOR_RANGE_FRAME
+select
+ count(*) over (order by a
+ range between 'abcd' preceding and current row)
+from t1;
+
+--error ER_WRONG_TYPE_FOR_RANGE_FRAME
+select
+ count(*) over (order by a
+ range between current row and 'foo' following)
+from t1;
+
+--echo # Try range frame with invalid bounds
+--error ER_WRONG_TYPE_FOR_ROWS_FRAME
+select
+ count(*) over (order by a
+ rows between 0.5 preceding and current row)
+from t1;
+
+--error ER_WRONG_TYPE_FOR_ROWS_FRAME
+select
+ count(*) over (order by a
+ rows between current row and 3.14 following)
+from t1;
+
+--echo #
+--echo # EXCLUDE clause is parsed but not supported
+--echo #
+
+--error ER_FRAME_EXCLUSION_NOT_SUPPORTED
+select
+ count(*) over (order by a
+ rows between 1 preceding and 1 following
+ exclude current row)
+from t1;
+
+--error ER_FRAME_EXCLUSION_NOT_SUPPORTED
+select
+ count(*) over (order by a
+ range between 1 preceding and 1 following
+ exclude ties)
+from t1;
+
+--error ER_FRAME_EXCLUSION_NOT_SUPPORTED
+select
+ count(*) over (order by a
+ range between 1 preceding and 1 following
+ exclude group)
+from t1;
+
+# EXCLUDE NO OTHERS means 'don't exclude anything'
+select
+ count(*) over (order by a
+ rows between 1 preceding and 1 following
+ exclude no others)
+from t1;
+
+drop table t1;
+
+--echo #
+--echo # Window function in grouping query
+--echo #
+
+create table t1 (
+ username varchar(32),
+ amount int
+);
+
+insert into t1 values
+('user1',1),
+('user1',5),
+('user1',3),
+('user2',10),
+('user2',20),
+('user2',30);
+
+select
+ username,
+ sum(amount) as s,
+ rank() over (order by s desc)
+from t1
+group by username;
+
+drop table t1;
+
+--echo #
+--echo # mdev-9719: Window function in prepared statement
+--echo #
+
+create table t1(a int, b int, x char(32));
+insert into t1 values (2, 10, 'xx');
+insert into t1 values (2, 10, 'zz');
+insert into t1 values (2, 20, 'yy');
+insert into t1 values (3, 10, 'xxx');
+insert into t1 values (3, 20, 'vvv');
+
+prepare stmt from 'select a, row_number() over (partition by a order by b) from t1';
+--sorted_result
+execute stmt;
+
+drop table t1;
+
+--echo #
+--echo # mdev-9754: Window name resolution in prepared statement
+--echo #
+
+create table t0 (a int);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+
+create table t1 (pk int, c int);
+insert into t1 select a+1,1 from t0;
+update t1 set c=2 where pk not in (1,2,3,4);
+select * from t1;
+
+prepare stmt from
+'select
+ pk, c,
+ count(*) over w1 as CNT
+from t1
+window w1 as (partition by c order by pk
+ rows between 2 preceding and 2 following)';
+execute stmt;
+
+drop table t0,t1;
+
+--echo #
+--echo # EXPLAIN FORMAT=JSON support for window functions
+--echo #
+create table t0 (a int);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+
+explain format=json select rank() over (order by a) from t0;
+
+create table t1 (a int, b int, c int);
+insert into t1 select a,a,a from t0;
+
+explain format=json
+select
+ a,
+ rank() over (order by sum(b))
+from t1
+group by a;
+
+explain format=json
+select
+ a,
+ rank() over (order by sum(b))
+from t1
+group by a
+order by null;
+
+--echo #
+--echo # Check how window function works together with GROUP BY and HAVING
+--echo #
+
+select b,max(a) as MX, rank() over (order by b) from t1 group by b having MX in (3,5,7);
+explain format=json
+select b,max(a) as MX, rank() over (order by b) from t1 group by b having MX in (3,5,7);
+
+drop table t1;
+drop table t0;
+
+--echo #
+--echo # Building ordering index for window functions
+--echo #
+
+create table t1 (
+ pk int primary key,
+ a int,
+ b int,
+ c int
+);
+
+insert into t1 values
+(101 , 0, 10, 1),
+(102 , 0, 10, 2),
+(103 , 1, 10, 3),
+(104 , 1, 10, 4),
+(108 , 2, 10, 5),
+(105 , 2, 20, 6),
+(106 , 2, 20, 7),
+(107 , 2, 20, 8),
+(109 , 4, 20, 9),
+(110 , 4, 20, 10),
+(111 , 5, NULL, 11),
+(112 , 5, 1, 12),
+(113 , 5, NULL, 13),
+(114 , 5, NULL, 14),
+(115 , 5, NULL, 15),
+(116 , 6, 1, NULL),
+(117 , 6, 1, 10),
+(118 , 6, 1, 1),
+(119 , 6, 1, NULL),
+(120 , 6, 1, NULL),
+(121 , 6, 1, NULL),
+(122 , 6, 1, 2),
+(123 , 6, 1, 20),
+(124 , 6, 1, -10),
+(125 , 6, 1, NULL),
+(126 , 6, 1, NULL),
+(127 , 6, 1, NULL);
+
+--sorted_result
+select sum(b) over (partition by a order by b,pk
+ rows between unbounded preceding and current row) as c1,
+ avg(b) over (w1 rows between 1 preceding and 1 following) as c2,
+ sum(c) over (w2 rows between 1 preceding and 1 following) as c5,
+ avg(b) over (w1 rows between 5 preceding and 5 following) as c3,
+ sum(b) over (w1 rows between 1 preceding and 1 following) as c4
+from t1
+window w1 as (partition by a order by b,pk),
+ w2 as (partition by b order by c,pk);
+
+drop table t1;
+
+
+--echo #
+--echo # MDEV-9848: Window functions: reuse sorting and/or scanning
+--echo #
+
+create table t1 (a int, b int, c int);
+insert into t1 values
+(1,3,1),
+(2,2,1),
+(3,1,1);
+
+--echo # Check using counters
+flush status;
+select
+ rank() over (partition by c order by a),
+ rank() over (partition by c order by b)
+from t1;
+show status like '%sort%';
+
+flush status;
+select
+ rank() over (partition by c order by a),
+ rank() over (partition by c order by a)
+from t1;
+show status like '%sort%';
+
+# Check using EXPLAIN FORMAT=JSON
+explain format=json
+select
+ rank() over (partition by c order by a),
+ rank() over (partition by c order by a)
+from t1;
+
+explain format=json
+select
+ rank() over (order by a),
+ row_number() over (order by a)
+from t1;
+
+explain format=json
+select
+ rank() over (partition by c order by a),
+ count(*) over (partition by c)
+from t1;
+
+explain format=json
+select
+ count(*) over (partition by c),
+ rank() over (partition by c order by a)
+from t1;
+
+drop table t1;
+
+
+--echo #
+--echo # MDEV-9847: Window functions: crash with big_tables=1
+--echo #
+create table t1(a int);
+insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+set @tmp=@@big_tables;
+set big_tables=1;
+select rank() over (order by a) from t1;
+set big_tables=@tmp;
+drop table t1;
+
+--echo #
+--echo # Check if "ORDER BY window_func" works
+--echo #
+
+create table t1 (s1 int, s2 char(5));
+insert into t1 values (1,'a');
+insert into t1 values (null,null);
+insert into t1 values (1,null);
+insert into t1 values (null,'a');
+insert into t1 values (2,'b');
+insert into t1 values (-1,'');
+
+explain format=json
+select *, row_number() over (order by s1, s2) as X from t1 order by X desc;
+select *, row_number() over (order by s1, s2) as X from t1 order by X desc;
+drop table t1;
+
+--echo #
+--echo # Try window functions that are not directly present in the select list
+--echo #
+create table t1 (a int, b int);
+insert into t1 values
+ (1,3),
+ (2,2),
+ (3,1);
+
+select
+ rank() over (order by a) -
+ rank() over (order by b)
+from
+ t1;
+
+drop table t1;
+
+--echo #
+--echo # MDEV-9894: Assertion `0' failed in Window_func_runner::setup
+--echo # return ER_NOT_SUPPORTED_YET for aggregates that are not yet supported
+--echo # as window functions.
+--echo #
+create table t1 (i int);
+insert into t1 values (1),(2);
+--error ER_NOT_SUPPORTED_YET
+SELECT MAX(i) OVER (PARTITION BY (i)) FROM t1;
+drop table t1;
+
+--echo #
+--echo # Check the 0 in ROWS 0 PRECEDING
+--echo #
+
+create table t1 (
+ part_id int,
+ pk int,
+ a int
+);
+
+insert into t1 values (1, 1, 1);
+insert into t1 values (1, 2, 2);
+insert into t1 values (1, 3, 4);
+insert into t1 values (1, 4, 8);
+
+select
+ pk, a,
+ sum(a) over (order by pk rows between 0 preceding and current row)
+from t1;
+
+select
+ pk, a,
+ sum(a) over (order by pk rows between 1 preceding and 0 preceding)
+from t1;
+
+insert into t1 values (200, 1, 1);
+insert into t1 values (200, 2, 2);
+insert into t1 values (200, 3, 4);
+insert into t1 values (200, 4, 8);
+select
+ part_id, pk, a,
+ sum(a) over (partition by part_id order by pk rows between 0 preceding and current row)
+from t1;
+
+select
+ part_id, pk, a,
+ sum(a) over (partition by part_id order by pk rows between 1 preceding and 0 preceding)
+from t1;
+
+drop table t1;
+--echo #
+--echo # MDEV-9780, The "DISTINCT must not bet converted into GROUP BY when
+--echo # window functions are present" part
+--echo #
+
+create table t1 (part_id int, a int);
+insert into t1 values
+(100, 1),
+(100, 2),
+(100, 2),
+(100, 3),
+(2000, 1),
+(2000, 2),
+(2000, 3),
+(2000, 3),
+(2000, 3);
+
+select rank() over (partition by part_id order by a) from t1;
+select distinct rank() over (partition by part_id order by a) from t1;
+explain format=json
+select distinct rank() over (partition by part_id order by a) from t1;
+
+drop table t1;
+
+--echo #
+--echo # MDEV-9893: Window functions with different ORDER BY lists,
+--echo # one of these lists containing an expression
+--echo #
+
+create table t1 (s1 int, s2 char(5));
+insert into t1 values (1,'a');
+insert into t1 values (null,null);
+insert into t1 values (3,null);
+insert into t1 values (4,'a');
+insert into t1 values (2,'b');
+insert into t1 values (-1,'');
+
+select
+ *,
+ ROW_NUMBER() OVER (order by s1),
+ CUME_DIST() OVER (order by -s1)
+from t1;
+
+drop table t1;
+
+
+--echo #
+--echo # MDEV-9925: Wrong result with aggregate function as a window function
+--echo #
+create table t1 (i int);
+insert into t1 values (1),(2);
+select i, sum(i) over (partition by i) from t1;
+drop table t1;
+
+--echo #
+--echo # MDEV-9922: Assertion `!join->only_const_tables() && fsort' failed in int create_sort_index
+--echo #
+create view v1 as select 1 as i;
+select rank() over (order by i) from v1;
+drop view v1;
+
diff --git a/mysql-test/t/win_avg.test b/mysql-test/t/win_avg.test
new file mode 100644
index 00000000000..23a3652d943
--- /dev/null
+++ b/mysql-test/t/win_avg.test
@@ -0,0 +1,47 @@
+create table t1 (
+ pk int primary key,
+ a int,
+ b int,
+ c real
+);
+
+
+insert into t1 values
+(101 , 0, 10, 1.1),
+(102 , 0, 10, 2.1),
+(103 , 1, 10, 3.1),
+(104 , 1, 10, 4.1),
+(108 , 2, 10, 5.1),
+(105 , 2, 20, 6.1),
+(106 , 2, 20, 7.1),
+(107 , 2, 20, 8.15),
+(109 , 4, 20, 9.15),
+(110 , 4, 20, 10.15),
+(111 , 5, NULL, 11.15),
+(112 , 5, 1, 12.25),
+(113 , 5, NULL, 13.35),
+(114 , 5, NULL, 14.50),
+(115 , 5, NULL, 15.65),
+(116 , 6, 1, NULL),
+(117 , 6, 1, 10),
+(118 , 6, 1, 1.1),
+(119 , 6, 1, NULL),
+(120 , 6, 1, NULL),
+(121 , 6, 1, NULL),
+(122 , 6, 1, 2.2),
+(123 , 6, 1, 20.1),
+(124 , 6, 1, -10.4),
+(125 , 6, 1, NULL),
+(126 , 6, 1, NULL),
+(127 , 6, 1, NULL);
+
+
+--sorted_result
+select pk, a, b, avg(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)
+from t1;
+
+--sorted_result
+select pk, a, c, avg(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)
+from t1;
+
+drop table t1;
diff --git a/mysql-test/t/win_bit.test b/mysql-test/t/win_bit.test
new file mode 100644
index 00000000000..f077d0d67a0
--- /dev/null
+++ b/mysql-test/t/win_bit.test
@@ -0,0 +1,89 @@
+create table t1 (
+ pk int primary key,
+ a int,
+ b int
+);
+
+create table t2 (
+ pk int primary key,
+ a int,
+ b int
+);
+
+
+
+insert into t1 values
+( 1 , 0, 1),
+( 2 , 0, 2),
+( 3 , 1, 4),
+( 4 , 1, 8),
+( 5 , 2, 32),
+( 6 , 2, 64),
+( 7 , 2, 128),
+( 8 , 2, 16);
+
+insert into t2 values
+( 1 , 0, 2),
+( 2 , 0, 2),
+( 3 , 1, 4),
+( 4 , 1, 4),
+( 5 , 2, 16),
+( 6 , 2, 64),
+( 7 , 2, 128),
+( 8 , 2, 16);
+
+
+
+--echo # Test bit functions on only one partition.
+select pk, a, b,
+ bit_or(b) over (order by pk) as bit_or,
+ bit_and(b) over (order by pk) as bit_and,
+ bit_xor(b) over (order by pk) as bit_xor
+from t1;
+
+select pk, a, b,
+ bit_or(b) over (order by pk) as bit_or,
+ bit_and(b) over (order by pk) as bit_and,
+ bit_xor(b) over (order by pk) as bit_xor
+from t2;
+
+--echo # Test multiple partitions with bit functions.
+select pk, a, b,
+ bit_or(b) over (partition by a order by pk) as bit_or,
+ bit_and(b) over (partition by a order by pk) as bit_and,
+ bit_xor(b) over (partition by a order by pk) as bit_xor
+from t1;
+
+select pk, a, b,
+ bit_or(b) over (partition by a order by pk) as bit_or,
+ bit_and(b) over (partition by a order by pk) as bit_and,
+ bit_xor(b) over (partition by a order by pk) as bit_xor
+from t2;
+
+--echo # Test remove function for bit functions using a sliding window.
+select pk, a, b,
+ bit_or(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) as bit_or,
+ bit_and(b) over (partition by a order by pk) as bit_and,
+ bit_xor(b) over (partition by a order by pk) as bit_xor
+from t1;
+
+select pk, a, b,
+ bit_or(b) over (partition by a order by pk) as bit_or,
+ bit_and(b) over (partition by a order by pk) as bit_and,
+ bit_xor(b) over (partition by a order by pk) as bit_xor
+from t2;
+
+
+
+
+
+
+
+#select pk, a, b, bit_or(b) over (order by a) as count from t1 order by a, pk;
+#select pk, a, b, bit_and(b) over (order by a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as count from t1 order by a, pk;
+#select pk, a, b, bit_xor(b) over (order by a, pk ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as count from t2 order by pk;
+#select pk, a, b, bit_or(b) over (order by a, pk ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as count from t2 order by pk;
+#select pk, a, b, bit_and(b) over (order by a, pk ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) as count from t3 order by pk;
+
+drop table t1;
+drop table t2;
diff --git a/mysql-test/t/win_ntile.test b/mysql-test/t/win_ntile.test
new file mode 100644
index 00000000000..6f12e1f4005
--- /dev/null
+++ b/mysql-test/t/win_ntile.test
@@ -0,0 +1,171 @@
+create table t1 (
+ pk int primary key,
+ a int,
+ b int
+);
+
+
+insert into t1 values
+(11 , 0, 10),
+(12 , 0, 10),
+(13 , 1, 10),
+(14 , 1, 10),
+(18 , 2, 10),
+(15 , 2, 20),
+(16 , 2, 20),
+(17 , 2, 20),
+(19 , 4, 20),
+(20 , 4, 20);
+
+# TODO Try invalid queries too.
+
+--error ER_INVALID_NTILE_ARGUMENT
+select pk, a, b, ntile(-1) over (order by a)
+from t1;
+
+--error ER_INVALID_NTILE_ARGUMENT
+select pk, a, b,
+ ntile(0) over (order by a)
+from t1;
+
+--sorted_result
+select pk, a, b,
+ ntile(1) over (order by pk)
+from t1;
+
+--sorted_result
+select pk, a, b,
+ ntile(2) over (order by pk)
+from t1;
+
+--sorted_result
+select pk, a, b,
+ ntile(3) over (order by pk)
+from t1;
+
+--sorted_result
+select pk, a, b,
+ ntile(4) over (order by pk)
+from t1;
+
+--sorted_result
+select pk, a, b,
+ ntile(5) over (order by pk)
+from t1;
+
+--sorted_result
+select pk, a, b,
+ ntile(6) over (order by pk)
+from t1;
+
+--sorted_result
+select pk, a, b,
+ ntile(7) over (order by pk)
+from t1;
+
+--sorted_result
+select pk, a, b,
+ ntile(8) over (order by pk)
+from t1;
+
+--sorted_result
+select pk, a, b,
+ ntile(9) over (order by pk)
+from t1;
+
+--sorted_result
+select pk, a, b,
+ ntile(10) over (order by pk)
+from t1;
+
+--sorted_result
+select pk, a, b,
+ ntile(11) over (order by pk)
+from t1;
+
+--sorted_result
+select pk, a, b,
+ ntile(20) over (order by pk)
+from t1;
+
+
+select pk, a, b,
+ ntile(1) over (partition by b order by pk)
+from t1;
+
+select pk, a, b,
+ ntile(2) over (partition by b order by pk)
+from t1;
+
+select pk, a, b,
+ ntile(3) over (partition by b order by pk)
+from t1;
+
+select pk, a, b,
+ ntile(4) over (partition by b order by pk)
+from t1;
+
+select pk, a, b,
+ ntile(5) over (partition by b order by pk)
+from t1;
+
+select pk, a, b,
+ ntile(6) over (partition by b order by pk)
+from t1;
+
+select pk, a, b,
+ ntile(7) over (partition by b order by pk)
+from t1;
+
+select pk, a, b,
+ ntile(8) over (partition by b order by pk)
+from t1;
+
+select pk, a, b,
+ ntile(9) over (partition by b order by pk)
+from t1;
+
+select pk, a, b,
+ ntile(10) over (partition by b order by pk)
+from t1;
+
+select pk, a, b,
+ ntile(11) over (partition by b order by pk)
+from t1;
+
+select pk, a, b,
+ ntile(20) over (partition by b order by pk)
+from t1;
+
+select pk, a, b,
+ ntile(1 + 3) over (partition by b order by pk)
+from t1;
+
+select pk, a, b,
+ ntile((select 4)) over (partition by b order by pk)
+from t1;
+
+select t1.a from t1 where pk = 11;
+--error ER_INVALID_NTILE_ARGUMENT
+select pk, a, b,
+ ntile((select a from t1 where pk=11)) over (partition by b order by pk)
+from t1;
+
+select t1.a from t1 where pk = 13;
+select pk, a, b,
+ ntile((select a from t1 where pk=13)) over (partition by b order by pk)
+from t1;
+
+explain
+select pk, a, b,
+ ntile((select a from t1 where pk=13)) over (partition by b order by pk)
+from t1;
+
+select a from t1;
+--error ER_SUBQUERY_NO_1_ROW
+select pk, a, b,
+ ntile((select a from t1)) over (partition by b order by pk)
+from t1;
+
+
+drop table t1;
diff --git a/mysql-test/t/win_orderby.test b/mysql-test/t/win_orderby.test
new file mode 100644
index 00000000000..0d42c606486
--- /dev/null
+++ b/mysql-test/t/win_orderby.test
@@ -0,0 +1,32 @@
+#
+# Tests for window functions and ORDER BY
+#
+
+--disable_warnings
+drop table if exists t0,t1;
+--enable_warnings
+
+create table t0(a int primary key);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+
+create table t1(
+ pk int,
+ a int,
+ key(pk)
+);
+
+insert into t1
+select
+ A.a + B.a* 10 + C.a * 100,
+ 1
+from t0 A, t0 B, t0 C;
+
+select
+ pk,
+ count(a) over (order by pk rows between 2 preceding and 2 following)
+from t1
+where pk between 1 and 30
+order by pk desc
+limit 4;
+
+drop table t0,t1;
diff --git a/mysql-test/t/win_percent_cume.test b/mysql-test/t/win_percent_cume.test
new file mode 100644
index 00000000000..b851185cb32
--- /dev/null
+++ b/mysql-test/t/win_percent_cume.test
@@ -0,0 +1,36 @@
+create table t1 (
+ pk int primary key,
+ a int,
+ b int
+);
+
+
+insert into t1 values
+( 1 , 0, 10),
+( 2 , 0, 10),
+( 3 , 1, 10),
+( 4 , 1, 10),
+( 8 , 2, 10),
+( 5 , 2, 20),
+( 6 , 2, 20),
+( 7 , 2, 20),
+( 9 , 4, 20),
+(10 , 4, 20);
+
+select pk, a, b,
+ percent_rank() over (order by a),
+ cume_dist() over (order by a)
+from t1;
+
+select pk, a, b,
+ percent_rank() over (order by pk),
+ cume_dist() over (order by pk)
+from t1 order by pk;
+
+select pk, a, b,
+ percent_rank() over (partition by a order by a),
+ cume_dist() over (partition by a order by a)
+from t1;
+
+drop table t1;
+
diff --git a/mysql-test/t/win_rank.test b/mysql-test/t/win_rank.test
new file mode 100644
index 00000000000..eda1f458205
--- /dev/null
+++ b/mysql-test/t/win_rank.test
@@ -0,0 +1,58 @@
+--echo #
+--echo # Try DENSE_RANK() function
+--echo #
+
+create table t1 (
+ pk int primary key,
+ a int,
+ b int
+);
+
+insert into t1 values
+( 1 , 0, 10),
+( 2 , 0, 10),
+( 3 , 1, 10),
+( 4 , 1, 10),
+( 8 , 2, 10),
+( 5 , 2, 20),
+( 6 , 2, 20),
+( 7 , 2, 20),
+( 9 , 4, 20),
+(10 , 4, 20);
+
+select pk, a, b, rank() over (order by a) as rank,
+ dense_rank() over (order by a) as dense_rank
+from t1;
+select pk, a, b, rank() over (partition by b order by a) as rank,
+ dense_rank() over (partition by b order by a) as dense_rank
+from t1;
+
+drop table t1;
+
+--echo #
+--echo # Test with null values in the table.
+--echo #
+
+create table t2 (s1 int, s2 char(5));
+insert into t2 values (1,'a');
+insert into t2 values (null,null);
+insert into t2 values (1,null);
+insert into t2 values (null,'a');
+insert into t2 values (null,'c');
+insert into t2 values (2,'b');
+insert into t2 values (-1,'');
+
+select *, rank() over (order by s1) as rank,
+ dense_rank() over (order by s1) as dense_rank
+from t2;
+select *, rank() over (partition by s2 order by s1) as rank,
+ dense_rank() over (partition by s2 order by s1) as dense_rank
+from t2;
+select *, rank() over (order by s2) as rank,
+ dense_rank() over (order by s2) as dense_rank
+from t2;
+select *, rank() over (partition by s1 order by s2) as rank,
+ dense_rank() over (partition by s1 order by s2) as dense_rank
+from t2;
+
+drop table t2;
diff --git a/mysql-test/t/win_sum.test b/mysql-test/t/win_sum.test
new file mode 100644
index 00000000000..aa4965bfd5a
--- /dev/null
+++ b/mysql-test/t/win_sum.test
@@ -0,0 +1,47 @@
+create table t1 (
+ pk int primary key,
+ a int,
+ b int,
+ c real
+);
+
+
+insert into t1 values
+(101 , 0, 10, 1.1),
+(102 , 0, 10, 2.1),
+(103 , 1, 10, 3.1),
+(104 , 1, 10, 4.1),
+(108 , 2, 10, 5.1),
+(105 , 2, 20, 6.1),
+(106 , 2, 20, 7.1),
+(107 , 2, 20, 8.15),
+(109 , 4, 20, 9.15),
+(110 , 4, 20, 10.15),
+(111 , 5, NULL, 11.15),
+(112 , 5, 1, 12.25),
+(113 , 5, NULL, 13.35),
+(114 , 5, NULL, 14.50),
+(115 , 5, NULL, 15.65),
+(116 , 6, 1, NULL),
+(117 , 6, 1, 10),
+(118 , 6, 1, 1.1),
+(119 , 6, 1, NULL),
+(120 , 6, 1, NULL),
+(121 , 6, 1, NULL),
+(122 , 6, 1, 2.2),
+(123 , 6, 1, 20.1),
+(124 , 6, 1, -10.4),
+(125 , 6, 1, NULL),
+(126 , 6, 1, NULL),
+(127 , 6, 1, NULL);
+
+
+--sorted_result
+select pk, a, b, sum(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)
+from t1;
+
+--sorted_result
+select pk, a, c, sum(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)
+from t1;
+
+drop table t1;