summaryrefslogtreecommitdiffstats
path: root/mysql-test
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 13:22:53 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 13:22:53 +0000
commit347c164c35eddab388009470e6848cb361ac93f8 (patch)
tree2c0c44eac690f510bb0a35b2a13b36d606b77b6b /mysql-test
parentReleasing progress-linux version 1:10.11.7-4~progress7.99u1. (diff)
downloadmariadb-347c164c35eddab388009470e6848cb361ac93f8.tar.xz
mariadb-347c164c35eddab388009470e6848cb361ac93f8.zip
Merging upstream version 1:10.11.8.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/collections/buildbot_suites.bat2
-rwxr-xr-xmysql-test/dgcov.pl3
-rw-r--r--mysql-test/include/aria_log_control_load.inc11
-rw-r--r--mysql-test/include/check-testcase.test12
-rw-r--r--mysql-test/include/commit.inc20
-rw-r--r--mysql-test/include/crash_mysqld.inc2
-rw-r--r--mysql-test/include/deadlock.inc1
-rw-r--r--mysql-test/include/default_mysqld.cnf4
-rw-r--r--mysql-test/include/expect_crash.inc2
-rw-r--r--mysql-test/include/have_innodb.combinations39
-rw-r--r--mysql-test/include/have_innodb.inc5
-rw-r--r--mysql-test/include/have_innodb.opt17
-rw-r--r--mysql-test/include/innodb_rollback_on_timeout.inc2
-rw-r--r--mysql-test/include/kill_and_restart_mysqld.inc2
-rw-r--r--mysql-test/include/kill_galera.inc2
-rw-r--r--mysql-test/include/kill_mysqld.inc2
-rw-r--r--mysql-test/include/rpl_change_topology.inc7
-rw-r--r--mysql-test/include/rpl_clone_slave_using_mariadb-backup.inc297
-rw-r--r--mysql-test/include/rpl_start_server.inc2
-rw-r--r--mysql-test/include/rpl_stop_server.inc2
-rw-r--r--mysql-test/include/search_pattern_in_file.inc64
-rw-r--r--mysql-test/include/shutdown_mysqld.inc9
-rw-r--r--mysql-test/include/slow_environ.inc9
-rw-r--r--mysql-test/include/start_mysqld.inc4
-rw-r--r--mysql-test/include/stop_slave_io.inc11
-rw-r--r--mysql-test/include/sync_slave_sql_with_io.inc7
-rw-r--r--mysql-test/include/sync_with_master_gtid.inc7
-rw-r--r--mysql-test/include/wait_for_pattern_in_file.inc13
-rw-r--r--mysql-test/include/wait_for_slave_param.inc7
-rw-r--r--mysql-test/include/wait_until_connected_again.inc2
-rw-r--r--mysql-test/lib/My/Debugger.pm1
-rw-r--r--mysql-test/lib/My/Platform.pm10
-rw-r--r--mysql-test/lib/mtr_report.pm4
-rw-r--r--mysql-test/main/alter_table.result8
-rw-r--r--mysql-test/main/alter_table.test9
-rw-r--r--mysql-test/main/bootstrap.test2
-rw-r--r--mysql-test/main/column_compression_parts.result1
-rw-r--r--mysql-test/main/commit_1innodb.result13
-rw-r--r--mysql-test/main/constraints.result13
-rw-r--r--mysql-test/main/constraints.test15
-rw-r--r--mysql-test/main/crash_commit_before.test2
-rw-r--r--mysql-test/main/create.result2
-rw-r--r--mysql-test/main/ctype_collate.result24
-rw-r--r--mysql-test/main/ctype_collate.test15
-rw-r--r--mysql-test/main/ctype_ucs.result20
-rw-r--r--mysql-test/main/ctype_ucs.test17
-rw-r--r--mysql-test/main/ddl_i18n_koi8r.result6
-rw-r--r--mysql-test/main/ddl_i18n_utf8.result6
-rw-r--r--mysql-test/main/deadlock_innodb.result5
-rw-r--r--mysql-test/main/derived_split_innodb.result57
-rw-r--r--mysql-test/main/derived_split_innodb.test42
-rw-r--r--mysql-test/main/derived_view.result66
-rw-r--r--mysql-test/main/derived_view.test72
-rw-r--r--mysql-test/main/distinct_notembedded.result322
-rw-r--r--mysql-test/main/distinct_notembedded.test109
-rw-r--r--mysql-test/main/dyncol.result28
-rw-r--r--mysql-test/main/dyncol.test21
-rw-r--r--mysql-test/main/empty_server_name-8224.test4
-rw-r--r--mysql-test/main/empty_string_literal.result26
-rw-r--r--mysql-test/main/empty_string_literal.test15
-rw-r--r--mysql-test/main/func_encrypt_nossl.result42
-rw-r--r--mysql-test/main/func_extract.result882
-rw-r--r--mysql-test/main/func_extract.test251
-rw-r--r--mysql-test/main/func_gconcat.result95
-rw-r--r--mysql-test/main/func_gconcat.test56
-rw-r--r--mysql-test/main/func_hybrid_type.result25
-rw-r--r--mysql-test/main/func_hybrid_type.test23
-rw-r--r--mysql-test/main/func_in.result78
-rw-r--r--mysql-test/main/func_in.test60
-rw-r--r--mysql-test/main/func_json.result29
-rw-r--r--mysql-test/main/func_json.test51
-rw-r--r--mysql-test/main/func_json_notembedded.result3
-rw-r--r--mysql-test/main/func_json_notembedded.test4
-rw-r--r--mysql-test/main/func_math.result15
-rw-r--r--mysql-test/main/func_math.test10
-rw-r--r--mysql-test/main/func_regexp.result52
-rw-r--r--mysql-test/main/func_regexp.test47
-rw-r--r--mysql-test/main/func_sformat.result38
-rw-r--r--mysql-test/main/func_sformat.test56
-rw-r--r--mysql-test/main/func_str.result36
-rw-r--r--mysql-test/main/func_str.test22
-rw-r--r--mysql-test/main/func_time.result74
-rw-r--r--mysql-test/main/func_time.test39
-rw-r--r--mysql-test/main/function_defaults.result25
-rw-r--r--mysql-test/main/function_defaults.test23
-rw-r--r--mysql-test/main/gis.result32
-rw-r--r--mysql-test/main/host_cache_size_functionality.test8
-rw-r--r--mysql-test/main/information_schema2.result18
-rw-r--r--mysql-test/main/information_schema2.test23
-rw-r--r--mysql-test/main/init_file_set_password-7656.test4
-rw-r--r--mysql-test/main/innodb_ext_key,covering,on.rdiff (renamed from mysql-test/main/innodb_ext_key,covering,innodb,on.rdiff)0
-rw-r--r--mysql-test/main/innodb_ext_key,off.rdiff6
-rw-r--r--mysql-test/main/innodb_ext_key,on,unoptimized.rdiff (renamed from mysql-test/main/innodb_ext_key,innodb,on,unoptimized.rdiff)0
-rw-r--r--mysql-test/main/innodb_ext_key.result28
-rw-r--r--mysql-test/main/innodb_ext_key.test30
-rw-r--r--mysql-test/main/insert_select.result8
-rw-r--r--mysql-test/main/join.result58
-rw-r--r--mysql-test/main/join.test46
-rw-r--r--mysql-test/main/join_cache.result22
-rw-r--r--mysql-test/main/join_cache.test21
-rw-r--r--mysql-test/main/join_outer.test18
-rw-r--r--mysql-test/main/kill_processlist-6619.test14
-rw-r--r--mysql-test/main/load_timezones_with_alter_algorithm_inplace.result18
-rw-r--r--mysql-test/main/load_timezones_with_alter_algorithm_inplace.test40
-rw-r--r--mysql-test/main/lock_sync.result24
-rw-r--r--mysql-test/main/lock_sync.test27
-rw-r--r--mysql-test/main/lock_view.result2
-rw-r--r--mysql-test/main/log_errchk.test4
-rw-r--r--mysql-test/main/long_unique_bugs.result55
-rw-r--r--mysql-test/main/long_unique_bugs.test47
-rw-r--r--mysql-test/main/lowercase_fs_on.test4
-rw-r--r--[-rwxr-xr-x]mysql-test/main/lowercase_table2.result0
-rw-r--r--mysql-test/main/mdl_sync.result4
-rw-r--r--mysql-test/main/mdl_sync.test7
-rw-r--r--mysql-test/main/myisam.result1
-rw-r--r--mysql-test/main/myisam.test3
-rw-r--r--mysql-test/main/myisam_crash_before_flush_keys.test4
-rw-r--r--mysql-test/main/mysql-interactive.test2
-rw-r--r--mysql-test/main/mysql.result32
-rw-r--r--mysql-test/main/mysql.test44
-rw-r--r--mysql-test/main/mysql_client_test.result1
-rw-r--r--mysql-test/main/mysql_client_test.test8
-rw-r--r--mysql-test/main/mysql_client_test_comp.test2
-rw-r--r--mysql-test/main/mysql_client_test_nonblock.test2
-rw-r--r--mysql-test/main/mysql_connector_net.test2
-rw-r--r--mysql-test/main/mysql_install_db_win_admin.result6
-rw-r--r--mysql-test/main/mysql_install_db_win_admin.test5
-rw-r--r--mysql-test/main/mysql_tzinfo_to_sql_symlink.result12
-rw-r--r--mysql-test/main/mysqlbinlog_row_compressed.result194
-rw-r--r--mysql-test/main/mysqlbinlog_row_compressed.test5
-rw-r--r--mysql-test/main/mysqlbinlog_row_minimal.result2
-rw-r--r--mysql-test/main/mysqlbinlog_stmt_compressed.result128
-rw-r--r--mysql-test/main/mysqlbinlog_stmt_compressed.test3
-rw-r--r--mysql-test/main/mysqld--help.result22
-rw-r--r--mysql-test/main/mysqld_option_err.result11
-rw-r--r--mysql-test/main/mysqld_option_err.test34
-rw-r--r--mysql-test/main/mysqldump-compat-102.result1
-rw-r--r--mysql-test/main/mysqldump-max.result24
-rw-r--r--mysql-test/main/mysqldump-nl.result2
-rw-r--r--mysql-test/main/mysqldump-no-binlog.result1
-rw-r--r--mysql-test/main/mysqldump-order-by-size.result1
-rw-r--r--mysql-test/main/mysqldump-system.result23
-rw-r--r--mysql-test/main/mysqldump-timing.result2
-rw-r--r--mysql-test/main/mysqldump-utf8mb4.result1
-rw-r--r--mysql-test/main/mysqldump.result130
-rw-r--r--mysql-test/main/mysqldump.test31
-rw-r--r--mysql-test/main/openssl_1.result3
-rw-r--r--mysql-test/main/openssl_1.test2
-rw-r--r--mysql-test/main/opt_trace.result37
-rw-r--r--mysql-test/main/opt_trace.test10
-rw-r--r--mysql-test/main/partition.result1
-rw-r--r--mysql-test/main/partition_binlog.result1
-rw-r--r--mysql-test/main/plugin_auth.result1
-rw-r--r--mysql-test/main/plugin_loaderr.test4
-rw-r--r--mysql-test/main/ps.result181
-rw-r--r--mysql-test/main/ps.test185
-rw-r--r--mysql-test/main/ps_2myisam.result4
-rw-r--r--mysql-test/main/ps_3innodb.result4
-rw-r--r--mysql-test/main/ps_4heap.result4
-rw-r--r--mysql-test/main/ps_5merge.result8
-rw-r--r--mysql-test/main/query_cache.result33
-rw-r--r--mysql-test/main/query_cache.test43
-rw-r--r--mysql-test/main/read_only_innodb.result25
-rw-r--r--mysql-test/main/read_only_innodb.test28
-rw-r--r--mysql-test/main/rowid_filter_innodb.result102
-rw-r--r--mysql-test/main/rowid_filter_innodb.test80
-rw-r--r--mysql-test/main/rpl_mysqldump_slave.result179
-rw-r--r--mysql-test/main/rpl_mysqldump_slave.test73
-rw-r--r--mysql-test/main/secondary_key_costs.result35
-rw-r--r--mysql-test/main/secondary_key_costs.test21
-rw-r--r--mysql-test/main/selectivity_innodb_notembedded.result131
-rw-r--r--mysql-test/main/selectivity_notembedded.result131
-rw-r--r--mysql-test/main/selectivity_notembedded.test102
-rw-r--r--mysql-test/main/show_analyze.result8
-rw-r--r--mysql-test/main/show_analyze.test12
-rw-r--r--mysql-test/main/show_explain_json.result8
-rw-r--r--mysql-test/main/show_explain_json.test12
-rw-r--r--mysql-test/main/shutdown.test4
-rw-r--r--mysql-test/main/skip_grants.test4
-rw-r--r--mysql-test/main/sp.result3
-rw-r--r--mysql-test/main/sp.test2
-rw-r--r--mysql-test/main/ssl_and_innodb.test2
-rw-r--r--mysql-test/main/ssl_crl.result2
-rw-r--r--mysql-test/main/ssl_crl.test4
-rw-r--r--mysql-test/main/ssl_timeout.result2
-rw-r--r--mysql-test/main/ssl_timeout.test3
-rw-r--r--mysql-test/main/stat_tables_partition.result3
-rw-r--r--mysql-test/main/stat_tables_rbr.result1
-rw-r--r--mysql-test/main/subselect4.result79
-rw-r--r--mysql-test/main/subselect4.test15
-rw-r--r--mysql-test/main/subselect_elimination.result268
-rw-r--r--mysql-test/main/subselect_elimination.test242
-rw-r--r--mysql-test/main/subselect_sj_mat.test9
-rw-r--r--mysql-test/main/system_mysql_db_fix50030.result2
-rw-r--r--mysql-test/main/system_mysql_db_fix50117.result2
-rw-r--r--mysql-test/main/system_mysql_db_fix50568.result2
-rw-r--r--mysql-test/main/table_value_constr.result4
-rw-r--r--mysql-test/main/table_value_constr.test4
-rw-r--r--mysql-test/main/temp_table.result49
-rw-r--r--mysql-test/main/temp_table.test54
-rw-r--r--mysql-test/main/trigger.result6
-rw-r--r--mysql-test/main/trigger.test9
-rw-r--r--mysql-test/main/trigger_wl3253.result2
-rw-r--r--mysql-test/main/type_decimal.result173
-rw-r--r--mysql-test/main/type_decimal.test90
-rw-r--r--mysql-test/main/type_json.result2
-rw-r--r--mysql-test/main/type_timestamp.result116
-rw-r--r--mysql-test/main/type_timestamp.test92
-rw-r--r--mysql-test/main/type_varchar_mysql41.result149
-rw-r--r--mysql-test/main/type_varchar_mysql41.test85
-rw-r--r--mysql-test/main/udf.result64
-rw-r--r--mysql-test/main/udf.test34
-rwxr-xr-xmysql-test/mariadb-test-run.pl19
-rw-r--r--mysql-test/std_data/autoinc_import_101.frmbin0 -> 922 bytes
-rw-r--r--mysql-test/std_data/autoinc_import_57.frmbin0 -> 8556 bytes
-rw-r--r--mysql-test/std_data/mdev-25731.dat6
-rw-r--r--mysql-test/suite.pm9
-rw-r--r--mysql-test/suite/archive/archive.test2
-rw-r--r--mysql-test/suite/archive/archive_bitfield.result1
-rw-r--r--mysql-test/suite/atomic/alter_table.test7
-rw-r--r--mysql-test/suite/binlog/include/binlog_index.inc12
-rw-r--r--mysql-test/suite/binlog/include/print_optional_metadata.inc3
-rw-r--r--mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result119
-rw-r--r--mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result119
-rw-r--r--mysql-test/suite/binlog/r/binlog_row_annotate.result12
-rw-r--r--mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result4
-rw-r--r--mysql-test/suite/binlog/t/binlog_autocommit_off_no_hang.test4
-rw-r--r--mysql-test/suite/binlog/t/binlog_rotate_perf.test4
-rw-r--r--mysql-test/suite/binlog_encryption/binlog_row_annotate.result6
-rw-r--r--mysql-test/suite/binlog_encryption/restart_server.inc4
-rw-r--r--mysql-test/suite/binlog_encryption/rpl_gtid_basic.result6
-rw-r--r--mysql-test/suite/binlog_encryption/rpl_packet.result2
-rw-r--r--mysql-test/suite/binlog_encryption/rpl_parallel_slave_bgc_kill.result8
-rw-r--r--mysql-test/suite/binlog_encryption/rpl_parallel_stop_slave.result4
-rw-r--r--mysql-test/suite/compat/oracle/r/empty_string_literal.result6
-rw-r--r--mysql-test/suite/compat/oracle/r/gis.result32
-rw-r--r--mysql-test/suite/compat/oracle/r/mysqldump_restore_func_qualified.result1
-rw-r--r--mysql-test/suite/compat/oracle/r/sp-package-mysqldump.result1
-rw-r--r--mysql-test/suite/encryption/r/corrupted_during_recovery.result2
-rw-r--r--mysql-test/suite/encryption/r/innodb-bad-key-change.result24
-rw-r--r--mysql-test/suite/encryption/r/innodb-bad-key-change2.result18
-rw-r--r--mysql-test/suite/encryption/r/innodb-bad-key-change4.result6
-rw-r--r--mysql-test/suite/encryption/r/innodb-compressed-blob.result6
-rw-r--r--mysql-test/suite/encryption/r/innodb-encryption-disable.result7
-rw-r--r--mysql-test/suite/encryption/r/innodb-force-corrupt.result6
-rw-r--r--mysql-test/suite/encryption/r/innodb-missing-key.result6
-rw-r--r--mysql-test/suite/encryption/r/innodb-redo-nokeys.result11
-rw-r--r--mysql-test/suite/encryption/t/corrupted_during_recovery.test2
-rw-r--r--mysql-test/suite/encryption/t/encrypt_and_grep.test6
-rw-r--r--mysql-test/suite/encryption/t/innodb-bad-key-change.test4
-rw-r--r--mysql-test/suite/encryption/t/innodb-bad-key-change2.test6
-rw-r--r--mysql-test/suite/encryption/t/innodb-bad-key-change3.test12
-rw-r--r--mysql-test/suite/encryption/t/innodb-compressed-blob.test6
-rw-r--r--mysql-test/suite/encryption/t/innodb-encryption-disable.test7
-rw-r--r--mysql-test/suite/encryption/t/innodb-force-corrupt.test6
-rw-r--r--mysql-test/suite/encryption/t/innodb-missing-key.test2
-rw-r--r--mysql-test/suite/encryption/t/innodb-redo-nokeys.test4
-rw-r--r--mysql-test/suite/encryption/t/innodb_encrypt_freed.test2
-rw-r--r--mysql-test/suite/engines/funcs/r/rpl_change_master.result5
-rw-r--r--mysql-test/suite/engines/funcs/r/rpl_get_lock.result3
-rw-r--r--mysql-test/suite/engines/funcs/r/tc_partition_analyze.result1
-rw-r--r--mysql-test/suite/federated/federatedx.result1
-rw-r--r--mysql-test/suite/federated/federatedx_create_handlers.result65
-rw-r--r--mysql-test/suite/federated/federatedx_create_handlers.test61
-rw-r--r--mysql-test/suite/galera/disabled.def6
-rw-r--r--mysql-test/suite/galera/galera_4nodes.cnf4
-rw-r--r--mysql-test/suite/galera/include/kill_galera.inc2
-rw-r--r--mysql-test/suite/galera/include/shutdown_mysqld.inc18
-rw-r--r--mysql-test/suite/galera/include/start_mysqld.inc4
-rw-r--r--mysql-test/suite/galera/r/MDEV-22232.result12
-rw-r--r--mysql-test/suite/galera/r/MDEV-24143.result2
-rw-r--r--mysql-test/suite/galera/r/MDEV-25731.result47
-rw-r--r--mysql-test/suite/galera/r/MDEV-26499.result6
-rw-r--r--mysql-test/suite/galera/r/MDEV-27276.result6
-rw-r--r--mysql-test/suite/galera/r/MDEV-27806.result2
-rw-r--r--mysql-test/suite/galera/r/MDEV-33136.result21
-rw-r--r--mysql-test/suite/galera/r/MDEV-33828.result41
-rw-r--r--mysql-test/suite/galera/r/MW-336.result46
-rw-r--r--mysql-test/suite/galera/r/MW-369.result126
-rw-r--r--mysql-test/suite/galera/r/MW-402.result108
-rw-r--r--mysql-test/suite/galera/r/galera_bf_abort_mariabackup.result24
-rw-r--r--mysql-test/suite/galera/r/galera_load_data.result305
-rw-r--r--mysql-test/suite/galera/r/galera_mdl_race.result50
-rw-r--r--mysql-test/suite/galera/r/galera_myisam_autocommit.result37
-rw-r--r--mysql-test/suite/galera/r/galera_parallel_apply_lock_table.result2
-rw-r--r--mysql-test/suite/galera/r/galera_query_cache_invalidate.result2
-rw-r--r--mysql-test/suite/galera/r/galera_sequence_engine.result12
-rw-r--r--mysql-test/suite/galera/r/galera_shutdown_nonprim.result7
-rw-r--r--mysql-test/suite/galera/r/galera_sst_mariabackup,debug.rdiff11
-rw-r--r--mysql-test/suite/galera/r/galera_sst_mariabackup.result20
-rw-r--r--mysql-test/suite/galera/r/galera_table_with_hyphen.result52
-rw-r--r--mysql-test/suite/galera/r/galera_vote_rejoin_ddl.result5
-rw-r--r--mysql-test/suite/galera/r/galera_wan_restart_sst.result9
-rw-r--r--mysql-test/suite/galera/r/mdev-22063.result241
-rw-r--r--mysql-test/suite/galera/r/mdev-31285.result21
-rw-r--r--mysql-test/suite/galera/r/mysql-wsrep#332.result12
-rw-r--r--mysql-test/suite/galera/r/rpl_galera_to_mariadb_clone_slave_using_mariadb-backup.result211
-rw-r--r--mysql-test/suite/galera/r/versioning_trx_id.result6
-rw-r--r--mysql-test/suite/galera/suite.pm2
-rw-r--r--mysql-test/suite/galera/t/MDEV-22232.test26
-rw-r--r--mysql-test/suite/galera/t/MDEV-24143.test6
-rw-r--r--mysql-test/suite/galera/t/MDEV-25731.test34
-rw-r--r--mysql-test/suite/galera/t/MDEV-26499.test20
-rw-r--r--mysql-test/suite/galera/t/MDEV-26597.test2
-rw-r--r--mysql-test/suite/galera/t/MDEV-27276.test43
-rw-r--r--mysql-test/suite/galera/t/MDEV-29142.test4
-rw-r--r--mysql-test/suite/galera/t/MDEV-33136.test44
-rw-r--r--mysql-test/suite/galera/t/MDEV-33828.cnf4
-rw-r--r--mysql-test/suite/galera/t/MDEV-33828.test45
-rw-r--r--mysql-test/suite/galera/t/MW-336.cnf2
-rw-r--r--mysql-test/suite/galera/t/MW-336.test62
-rw-r--r--mysql-test/suite/galera/t/MW-369.inc40
-rw-r--r--mysql-test/suite/galera/t/MW-369.test1
-rw-r--r--mysql-test/suite/galera/t/galera_bf_abort_mariabackup.test15
-rw-r--r--mysql-test/suite/galera/t/galera_ist_mariabackup_verify_ca.cnf2
-rw-r--r--mysql-test/suite/galera/t/galera_ist_restart_joiner.test2
-rw-r--r--mysql-test/suite/galera/t/galera_load_data.test304
-rw-r--r--mysql-test/suite/galera/t/galera_mdl_race.test60
-rw-r--r--mysql-test/suite/galera/t/galera_myisam_autocommit.test26
-rw-r--r--mysql-test/suite/galera/t/galera_parallel_apply_lock_table.test2
-rw-r--r--mysql-test/suite/galera/t/galera_parallel_simple.test2
-rw-r--r--mysql-test/suite/galera/t/galera_pc_recovery.test8
-rw-r--r--mysql-test/suite/galera/t/galera_restart_on_unknown_option.test4
-rw-r--r--mysql-test/suite/galera/t/galera_sequence_engine.test16
-rw-r--r--mysql-test/suite/galera/t/galera_shutdown_nonprim.test16
-rw-r--r--mysql-test/suite/galera/t/galera_sst_mariabackup.cnf5
-rw-r--r--mysql-test/suite/galera/t/galera_sst_mariabackup.test27
-rw-r--r--mysql-test/suite/galera/t/galera_table_with_hyphen.inc48
-rw-r--r--mysql-test/suite/galera/t/galera_table_with_hyphen.test34
-rw-r--r--mysql-test/suite/galera/t/galera_vote_rejoin_ddl.cnf6
-rw-r--r--mysql-test/suite/galera/t/galera_vote_rejoin_ddl.test18
-rw-r--r--mysql-test/suite/galera/t/galera_wan_restart_sst.test36
-rw-r--r--mysql-test/suite/galera/t/galera_wsrep_new_cluster.test2
-rw-r--r--mysql-test/suite/galera/t/mdev-22063.test184
-rw-r--r--mysql-test/suite/galera/t/mdev-22543.test2
-rw-r--r--mysql-test/suite/galera/t/mdev-30013.test1
-rw-r--r--mysql-test/suite/galera/t/mdev-31285.test33
-rw-r--r--mysql-test/suite/galera/t/mysql-wsrep#332.test113
-rw-r--r--mysql-test/suite/galera/t/rpl_galera_to_mariadb_clone_slave_using_mariadb-backup.cnf10
-rw-r--r--mysql-test/suite/galera/t/rpl_galera_to_mariadb_clone_slave_using_mariadb-backup.test9
-rw-r--r--mysql-test/suite/galera/t/versioning_trx_id.test12
-rw-r--r--mysql-test/suite/galera_3nodes/disabled.def1
-rw-r--r--mysql-test/suite/galera_3nodes/r/MDEV-29171.result20
-rw-r--r--mysql-test/suite/galera_3nodes/r/galera_allowlist.result3
-rw-r--r--mysql-test/suite/galera_3nodes/r/galera_ist_gcache_rollover.result27
-rw-r--r--mysql-test/suite/galera_3nodes/r/galera_join_with_cc_B.result4
-rw-r--r--mysql-test/suite/galera_3nodes/t/MDEV-29171.test37
-rw-r--r--mysql-test/suite/galera_3nodes/t/galera_allowlist.test9
-rw-r--r--mysql-test/suite/galera_3nodes/t/galera_gtid_consistency.cnf3
-rw-r--r--mysql-test/suite/galera_3nodes/t/galera_ist_gcache_rollover.cnf14
-rw-r--r--mysql-test/suite/galera_3nodes/t/galera_ist_gcache_rollover.test33
-rw-r--r--mysql-test/suite/galera_3nodes/t/galera_join_with_cc_B.test5
-rw-r--r--mysql-test/suite/galera_3nodes_sr/r/GCF-336.result2
-rw-r--r--mysql-test/suite/galera_3nodes_sr/r/GCF-832.result10
-rw-r--r--mysql-test/suite/galera_3nodes_sr/r/galera_sr_kill_slave_before_apply.result17
-rw-r--r--mysql-test/suite/galera_3nodes_sr/t/GCF-336.test6
-rw-r--r--mysql-test/suite/galera_3nodes_sr/t/GCF-832.test19
-rw-r--r--mysql-test/suite/galera_3nodes_sr/t/galera_sr_kill_slave_before_apply.test16
-rw-r--r--mysql-test/suite/galera_sr/r/galera_sr_bf_abort_idle.result33
-rw-r--r--mysql-test/suite/galera_sr/t/MDEV-25718.test5
-rw-r--r--mysql-test/suite/galera_sr/t/galera_sr_bf_abort_idle.test68
-rw-r--r--mysql-test/suite/galera_sr/t/galera_sr_kill_all_norecovery.test4
-rw-r--r--mysql-test/suite/gcol/inc/innodb_v_large_col.inc2
-rw-r--r--mysql-test/suite/gcol/r/innodb_virtual_debug_purge.result10
-rw-r--r--mysql-test/suite/gcol/t/innodb_virtual_debug_purge.test8
-rw-r--r--mysql-test/suite/innodb/include/innodb_merge_threshold_delete.inc3
-rw-r--r--mysql-test/suite/innodb/include/innodb_merge_threshold_secondary.inc3
-rw-r--r--mysql-test/suite/innodb/include/innodb_merge_threshold_update.inc3
-rw-r--r--mysql-test/suite/innodb/include/no_checkpoint_start.inc23
-rw-r--r--mysql-test/suite/innodb/r/alter_copy.result2
-rw-r--r--mysql-test/suite/innodb/r/alter_kill.result4
-rw-r--r--mysql-test/suite/innodb/r/alter_not_null,COPY,NON-STRICT.rdiff121
-rw-r--r--mysql-test/suite/innodb/r/alter_not_null,COPY,STRICT.rdiff181
-rw-r--r--mysql-test/suite/innodb/r/alter_not_null,INPLACE,STRICT.rdiff164
-rw-r--r--mysql-test/suite/innodb/r/autoinc_debug.result57
-rw-r--r--mysql-test/suite/innodb/r/autoinc_import.result232
-rw-r--r--mysql-test/suite/innodb/r/check_ibd_filesize,32k.rdiff6
-rw-r--r--mysql-test/suite/innodb/r/check_ibd_filesize,4k.rdiff6
-rw-r--r--mysql-test/suite/innodb/r/check_ibd_filesize,64k.rdiff6
-rw-r--r--mysql-test/suite/innodb/r/check_ibd_filesize,8k.rdiff6
-rw-r--r--mysql-test/suite/innodb/r/check_ibd_filesize.result2
-rw-r--r--mysql-test/suite/innodb/r/cursor-restore-unique-null.result24
-rw-r--r--mysql-test/suite/innodb/r/foreign_key.result21
-rw-r--r--mysql-test/suite/innodb/r/full_crc32_import.result20
-rw-r--r--mysql-test/suite/innodb/r/import_bugs.result52
-rw-r--r--mysql-test/suite/innodb/r/import_hidden_fts.result45
-rw-r--r--mysql-test/suite/innodb/r/import_hidden_fts_debug.result76
-rw-r--r--mysql-test/suite/innodb/r/index_length.result8
-rw-r--r--mysql-test/suite/innodb/r/innodb-alter-debug.result15
-rw-r--r--mysql-test/suite/innodb/r/innodb-lru-force-no-free-page.result10
-rw-r--r--mysql-test/suite/innodb/r/innodb-wl5522,crc32.rdiff5
-rw-r--r--mysql-test/suite/innodb/r/innodb-wl5522,strict_crc32.rdiff17
-rw-r--r--mysql-test/suite/innodb/r/innodb_bug30113362.result6
-rw-r--r--mysql-test/suite/innodb/r/innodb_mysql.result12
-rw-r--r--mysql-test/suite/innodb/r/innodb_skip_innodb_is_tables.result2
-rw-r--r--mysql-test/suite/innodb/r/innodb_stats_fetch.result7
-rw-r--r--mysql-test/suite/innodb/r/innodb_timeout_rollback.result6
-rw-r--r--mysql-test/suite/innodb/r/innodb_ut_format_name.result5
-rw-r--r--mysql-test/suite/innodb/r/insert_into_empty,4k.rdiff12
-rw-r--r--mysql-test/suite/innodb/r/insert_into_empty.result53
-rw-r--r--mysql-test/suite/innodb/r/instant_alter_crash.result24
-rw-r--r--mysql-test/suite/innodb/r/instant_alter_debug,redundant.rdiff4
-rw-r--r--mysql-test/suite/innodb/r/instant_alter_debug.result53
-rw-r--r--mysql-test/suite/innodb/r/instant_alter_extend.resultbin9115 -> 9503 bytes
-rw-r--r--mysql-test/suite/innodb/r/instant_alter_import.result1
-rw-r--r--mysql-test/suite/innodb/r/lock_insert_into_empty.result5
-rw-r--r--mysql-test/suite/innodb/r/lock_isolation.result136
-rw-r--r--mysql-test/suite/innodb/r/log_upgrade_101_flags.result12
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,16k,compact.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,16k,compact,innodb.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,16k,dynamic.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,16k,dynamic,innodb.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,16k,redundant.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,16k,innodb,redundant.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,32k,compact.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,32k,compact,innodb.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,32k,dynamic.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,32k,dynamic,innodb.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,32k,redundant.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,32k,innodb,redundant.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,4k,compact.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,4k,compact,innodb.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,4k,dynamic.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,4k,dynamic,innodb.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,4k,redundant.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,4k,innodb,redundant.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,64k,compact.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,64k,compact,innodb.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,64k,dynamic.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,64k,dynamic,innodb.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,64k,redundant.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,64k,innodb,redundant.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,8k,compact.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,8k,compact,innodb.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,8k,dynamic.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,8k,dynamic,innodb.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/monitor.result56
-rw-r--r--mysql-test/suite/innodb/r/rename_table.result10
-rw-r--r--mysql-test/suite/innodb/r/restart,16k.rdiff (renamed from mysql-test/suite/innodb/r/restart,16k,innodb.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/restart,32k.rdiff (renamed from mysql-test/suite/innodb/r/restart,32k,innodb.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/restart,4k.rdiff (renamed from mysql-test/suite/innodb/r/restart,4k,innodb.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/restart,64k.rdiff (renamed from mysql-test/suite/innodb/r/restart,64k,innodb.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/restart,8k.rdiff (renamed from mysql-test/suite/innodb/r/restart,8k,innodb.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/row_size_error_log_warnings_3,4k.rdiff2
-rw-r--r--mysql-test/suite/innodb/r/row_size_error_log_warnings_3.result8
-rw-r--r--mysql-test/suite/innodb/r/undo_space_dblwr.result9
-rw-r--r--mysql-test/suite/innodb/r/undo_truncate.result3
-rw-r--r--mysql-test/suite/innodb/t/alter_copy.test2
-rw-r--r--mysql-test/suite/innodb/t/alter_crash.test6
-rw-r--r--mysql-test/suite/innodb/t/alter_kill.test2
-rw-r--r--mysql-test/suite/innodb/t/alter_rename_existing.test2
-rw-r--r--mysql-test/suite/innodb/t/autoinc_debug.test66
-rw-r--r--mysql-test/suite/innodb/t/autoinc_import.test168
-rw-r--r--mysql-test/suite/innodb/t/corrupted_during_recovery.test2
-rw-r--r--mysql-test/suite/innodb/t/cursor-restore-unique-null.test36
-rw-r--r--mysql-test/suite/innodb/t/doublewrite_debug.test4
-rw-r--r--mysql-test/suite/innodb/t/foreign_key.test21
-rw-r--r--mysql-test/suite/innodb/t/full_crc32_import.test12
-rw-r--r--mysql-test/suite/innodb/t/group_commit_crash.test2
-rw-r--r--mysql-test/suite/innodb/t/group_commit_crash_no_optimize_thread.test2
-rw-r--r--mysql-test/suite/innodb/t/import_bugs.test62
-rw-r--r--mysql-test/suite/innodb/t/import_hidden_fts.test46
-rw-r--r--mysql-test/suite/innodb/t/import_hidden_fts_debug.test101
-rw-r--r--mysql-test/suite/innodb/t/index_length.test8
-rw-r--r--mysql-test/suite/innodb/t/index_merge_threshold.test1
-rw-r--r--mysql-test/suite/innodb/t/innodb-alter-debug.test22
-rw-r--r--mysql-test/suite/innodb/t/innodb-alter-tempfile.test2
-rw-r--r--mysql-test/suite/innodb/t/innodb-corrupted-table.test4
-rw-r--r--mysql-test/suite/innodb/t/innodb-lru-force-no-free-page.test24
-rw-r--r--mysql-test/suite/innodb/t/innodb-wl5522-debug.test6
-rw-r--r--mysql-test/suite/innodb/t/innodb_bug60196.test4
-rw-r--r--mysql-test/suite/innodb/t/innodb_defrag_stats.test2
-rw-r--r--mysql-test/suite/innodb/t/innodb_stats_fetch.test8
-rw-r--r--mysql-test/suite/innodb/t/innodb_timeout_rollback.test3
-rw-r--r--mysql-test/suite/innodb/t/innodb_ut_format_name.test17
-rw-r--r--mysql-test/suite/innodb/t/insert_into_empty.test61
-rw-r--r--mysql-test/suite/innodb/t/instant_alter_crash.test26
-rw-r--r--mysql-test/suite/innodb/t/instant_alter_debug.test53
-rw-r--r--mysql-test/suite/innodb/t/instant_alter_extend.test13
-rw-r--r--mysql-test/suite/innodb/t/instant_alter_import.test1
-rw-r--r--mysql-test/suite/innodb/t/lock_insert_into_empty.test4
-rw-r--r--mysql-test/suite/innodb/t/lock_isolation.test149
-rw-r--r--mysql-test/suite/innodb/t/log_file_name.test2
-rw-r--r--mysql-test/suite/innodb/t/log_upgrade_101_flags.test91
-rw-r--r--mysql-test/suite/innodb/t/monitor.test62
-rw-r--r--mysql-test/suite/innodb/t/purge_secondary.test4
-rw-r--r--mysql-test/suite/innodb/t/rename_table.test9
-rw-r--r--mysql-test/suite/innodb/t/row_size_error_log_warnings_3.test16
-rw-r--r--mysql-test/suite/innodb/t/temporary_table.test2
-rw-r--r--mysql-test/suite/innodb/t/undo_space_dblwr.test12
-rw-r--r--mysql-test/suite/innodb/t/undo_truncate.test5
-rw-r--r--mysql-test/suite/innodb/t/undo_truncate_recover.test2
-rw-r--r--mysql-test/suite/innodb_fts/r/create,orig.rdiff11
-rw-r--r--mysql-test/suite/innodb_fts/r/create.result2
-rw-r--r--mysql-test/suite/innodb_fts/r/foreign_key_update.result12
-rw-r--r--mysql-test/suite/innodb_fts/r/innodb-fts-ddl,vers.rdiff57
-rw-r--r--mysql-test/suite/innodb_fts/r/innodb-fts-ddl,vers_trx.rdiff57
-rw-r--r--mysql-test/suite/innodb_fts/r/innodb-fts-fic,vers.rdiff10
-rw-r--r--mysql-test/suite/innodb_fts/r/innodb-fts-fic,vers_trx.rdiff10
-rw-r--r--mysql-test/suite/innodb_fts/r/misc_debug,vers.rdiff66
-rw-r--r--mysql-test/suite/innodb_fts/r/misc_debug,vers_trx.rdiff66
-rw-r--r--mysql-test/suite/innodb_fts/r/sync_ddl,vers.rdiff12
-rw-r--r--mysql-test/suite/innodb_fts/r/sync_ddl,vers_trx.rdiff12
-rw-r--r--mysql-test/suite/innodb_fts/r/sync_ddl.result5
-rw-r--r--mysql-test/suite/innodb_fts/t/create.test6
-rw-r--r--mysql-test/suite/innodb_fts/t/foreign_key_update.test13
-rw-r--r--mysql-test/suite/innodb_fts/t/innodb-fts-ddl.test33
-rw-r--r--mysql-test/suite/innodb_fts/t/innodb-fts-fic.test5
-rw-r--r--mysql-test/suite/innodb_fts/t/misc_debug.test16
-rw-r--r--mysql-test/suite/innodb_fts/t/sync.test2
-rw-r--r--mysql-test/suite/innodb_fts/t/sync_ddl.test5
-rw-r--r--mysql-test/suite/innodb_gis/t/rollback.test2
-rw-r--r--mysql-test/suite/innodb_zip/t/innochecksum_2.test5
-rw-r--r--mysql-test/suite/innodb_zip/t/restart.test18
-rw-r--r--mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test6
-rw-r--r--mysql-test/suite/json/r/json_no_table.result20
-rw-r--r--mysql-test/suite/json/r/type_json.result8
-rw-r--r--mysql-test/suite/json/t/type_json.test9
-rw-r--r--mysql-test/suite/large_tests/r/maria_recover_encrypted.result2
-rw-r--r--mysql-test/suite/large_tests/t/maria_recover_encrypted.test8
-rw-r--r--mysql-test/suite/maria/alter.result26
-rw-r--r--mysql-test/suite/maria/alter.test28
-rw-r--r--mysql-test/suite/maria/bulk_insert_crash.test2
-rw-r--r--mysql-test/suite/maria/encrypt-no-key.test8
-rw-r--r--mysql-test/suite/maria/encrypt-wrong-key.test12
-rw-r--r--mysql-test/suite/maria/ps_maria.result4
-rw-r--r--mysql-test/suite/maria/repair.result23
-rw-r--r--mysql-test/suite/maria/repair.test19
-rw-r--r--mysql-test/suite/mariabackup/absolute_ibdata_paths.test2
-rw-r--r--mysql-test/suite/mariabackup/alter_copy_race.result2
-rw-r--r--mysql-test/suite/mariabackup/alter_copy_race.test4
-rw-r--r--mysql-test/suite/mariabackup/apply-log-only-incr.test4
-rw-r--r--mysql-test/suite/mariabackup/apply-log-only.test2
-rw-r--r--mysql-test/suite/mariabackup/aria_backup.opt1
-rw-r--r--mysql-test/suite/mariabackup/aria_backup.result780
-rw-r--r--mysql-test/suite/mariabackup/aria_backup.test425
-rw-r--r--mysql-test/suite/mariabackup/aria_log.opt1
-rw-r--r--mysql-test/suite/mariabackup/aria_log_dir_path.result1
-rw-r--r--mysql-test/suite/mariabackup/aria_log_dir_path.test6
-rw-r--r--mysql-test/suite/mariabackup/aria_log_dir_path_rel.result1
-rw-r--r--mysql-test/suite/mariabackup/aria_log_rotate_during_backup.opt2
-rw-r--r--mysql-test/suite/mariabackup/aria_log_rotate_during_backup.result58
-rw-r--r--mysql-test/suite/mariabackup/aria_log_rotate_during_backup.test82
-rw-r--r--mysql-test/suite/mariabackup/auth_plugin_win.test2
-rw-r--r--mysql-test/suite/mariabackup/backup_grants.result4
-rw-r--r--mysql-test/suite/mariabackup/backup_grants.test34
-rw-r--r--mysql-test/suite/mariabackup/backup_ssl.test2
-rw-r--r--mysql-test/suite/mariabackup/binlog.test2
-rw-r--r--mysql-test/suite/mariabackup/compress_qpress.test2
-rw-r--r--mysql-test/suite/mariabackup/create_during_backup.test2
-rw-r--r--mysql-test/suite/mariabackup/create_with_data_directory_during_backup.test2
-rw-r--r--mysql-test/suite/mariabackup/data_directory.test5
-rw-r--r--mysql-test/suite/mariabackup/ddl_for_common_engine.result67
-rw-r--r--mysql-test/suite/mariabackup/ddl_for_common_engine.test79
-rw-r--r--mysql-test/suite/mariabackup/disabled.def2
-rw-r--r--mysql-test/suite/mariabackup/encrypted_export.opt6
-rw-r--r--mysql-test/suite/mariabackup/encrypted_export.result14
-rw-r--r--mysql-test/suite/mariabackup/encrypted_export.test29
-rw-r--r--mysql-test/suite/mariabackup/encrypted_page_compressed.test2
-rw-r--r--mysql-test/suite/mariabackup/encrypted_page_corruption.test4
-rw-r--r--mysql-test/suite/mariabackup/extra_lsndir.test2
-rw-r--r--mysql-test/suite/mariabackup/full_backup.test2
-rw-r--r--mysql-test/suite/mariabackup/huge_lsn.test2
-rw-r--r--mysql-test/suite/mariabackup/incremental_encrypted.test10
-rw-r--r--mysql-test/suite/mariabackup/innodb_ddl_on_intermediate_table.result5
-rw-r--r--mysql-test/suite/mariabackup/innodb_ddl_on_intermediate_table.test18
-rw-r--r--mysql-test/suite/mariabackup/lock_ddl_per_table.test2
-rw-r--r--mysql-test/suite/mariabackup/log_checksum_mismatch.test2
-rw-r--r--mysql-test/suite/mariabackup/log_file_unexpected_large_number_in_name.result20
-rw-r--r--mysql-test/suite/mariabackup/log_file_unexpected_large_number_in_name.test47
-rw-r--r--mysql-test/suite/mariabackup/log_tables.result24
-rw-r--r--mysql-test/suite/mariabackup/log_tables.test49
-rw-r--r--mysql-test/suite/mariabackup/mdev-14447.test2
-rw-r--r--mysql-test/suite/mariabackup/missing_ibd.test2
-rw-r--r--mysql-test/suite/mariabackup/nolock_ddl_during_backup_end.test2
-rw-r--r--mysql-test/suite/mariabackup/partial.result8
-rw-r--r--mysql-test/suite/mariabackup/partial.test21
-rw-r--r--mysql-test/suite/mariabackup/partial_exclude.test2
-rw-r--r--mysql-test/suite/mariabackup/partition_datadir.test2
-rw-r--r--mysql-test/suite/mariabackup/partition_partial.test2
-rw-r--r--mysql-test/suite/mariabackup/rename_during_backup.result12
-rw-r--r--mysql-test/suite/mariabackup/rename_during_backup.test27
-rw-r--r--mysql-test/suite/mariabackup/rename_during_mdl_lock.test2
-rw-r--r--mysql-test/suite/mariabackup/rpl_clone_slave.result202
-rw-r--r--mysql-test/suite/mariabackup/rpl_clone_slave.test17
-rw-r--r--mysql-test/suite/mariabackup/small_ibd.test2
-rw-r--r--mysql-test/suite/mariabackup/std_data/ment1587_aria_log.000000040
-rw-r--r--mysql-test/suite/mariabackup/suite.opt2
-rw-r--r--mysql-test/suite/mariabackup/system_versioning.test4
-rw-r--r--mysql-test/suite/mariabackup/truncate_during_backup.test2
-rw-r--r--mysql-test/suite/mariabackup/undo_space_id.result7
-rw-r--r--mysql-test/suite/mariabackup/undo_space_id.test21
-rw-r--r--mysql-test/suite/mariabackup/unencrypted_page_compressed.test2
-rw-r--r--mysql-test/suite/mariabackup/unsupported_redo.test8
-rw-r--r--mysql-test/suite/mariabackup/xb_aws_key_management.test2
-rw-r--r--mysql-test/suite/mariabackup/xb_file_key_management.test2
-rw-r--r--mysql-test/suite/mariabackup/xb_history.test2
-rw-r--r--mysql-test/suite/mariabackup/xb_page_compress.test2
-rw-r--r--mysql-test/suite/mariabackup/xb_partition.test2
-rw-r--r--mysql-test/suite/mariabackup/xb_rocksdb.test4
-rw-r--r--mysql-test/suite/mariabackup/xb_rocksdb_datadir.test2
-rw-r--r--mysql-test/suite/mariabackup/xbstream.test2
-rw-r--r--mysql-test/suite/multi_source/gtid_ignore_duplicates.result108
-rw-r--r--mysql-test/suite/multi_source/gtid_ignore_duplicates.test68
-rw-r--r--mysql-test/suite/multi_source/info_logs.result12
-rw-r--r--mysql-test/suite/multi_source/multi_source_slave_alias_replica.result4
-rw-r--r--mysql-test/suite/multi_source/reset_slave.result8
-rw-r--r--mysql-test/suite/multi_source/simple.result14
-rw-r--r--mysql-test/suite/multi_source/syntax.result6
-rw-r--r--mysql-test/suite/parts/inc/partition_crash.inc4
-rw-r--r--mysql-test/suite/parts/r/alter_table.result12
-rw-r--r--mysql-test/suite/parts/r/mdev_21007.result5
-rw-r--r--mysql-test/suite/parts/r/partition_alter4_innodb.result24
-rw-r--r--mysql-test/suite/parts/r/partition_alter4_myisam.result24
-rw-r--r--mysql-test/suite/parts/r/partition_alter_myisam.result22
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result1
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc0_memory.result1
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result1
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result1
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc1_memory.result1
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result1
-rw-r--r--mysql-test/suite/parts/r/partition_recover_myisam.result3
-rw-r--r--mysql-test/suite/parts/t/alter_table.test30
-rw-r--r--mysql-test/suite/parts/t/mdev_21007.test9
-rw-r--r--mysql-test/suite/parts/t/partition_alter_myisam.test15
-rw-r--r--mysql-test/suite/parts/t/partition_recover_myisam-master.opt1
-rw-r--r--mysql-test/suite/parts/t/partition_recover_myisam.opt1
-rw-r--r--mysql-test/suite/parts/t/partition_recover_myisam.test8
-rw-r--r--mysql-test/suite/perfschema/include/memory_aggregate_load.inc3
-rw-r--r--mysql-test/suite/perfschema/include/program_execution.inc2
-rw-r--r--mysql-test/suite/perfschema/include/stage_setup.inc23
-rw-r--r--mysql-test/suite/perfschema/r/alter_table_progress.result3
-rw-r--r--mysql-test/suite/perfschema/r/event_aggregate.result378
-rw-r--r--mysql-test/suite/perfschema/r/event_aggregate_no_a.result266
-rw-r--r--mysql-test/suite/perfschema/r/event_aggregate_no_a_no_h.result228
-rw-r--r--mysql-test/suite/perfschema/r/event_aggregate_no_a_no_u.result146
-rw-r--r--mysql-test/suite/perfschema/r/event_aggregate_no_a_no_u_no_h.result108
-rw-r--r--mysql-test/suite/perfschema/r/event_aggregate_no_h.result340
-rw-r--r--mysql-test/suite/perfschema/r/event_aggregate_no_u.result258
-rw-r--r--mysql-test/suite/perfschema/r/event_aggregate_no_u_no_h.result220
-rw-r--r--mysql-test/suite/perfschema/r/max_program_zero.result4
-rw-r--r--mysql-test/suite/perfschema/r/memory_aggregate.result2
-rw-r--r--mysql-test/suite/perfschema/r/memory_aggregate_32bit.result2
-rw-r--r--mysql-test/suite/perfschema/r/memory_aggregate_no_a.result2
-rw-r--r--mysql-test/suite/perfschema/r/memory_aggregate_no_a_no_h.result2
-rw-r--r--mysql-test/suite/perfschema/r/memory_aggregate_no_a_no_u.result2
-rw-r--r--mysql-test/suite/perfschema/r/memory_aggregate_no_a_no_u_no_h.result2
-rw-r--r--mysql-test/suite/perfschema/r/memory_aggregate_no_h.result2
-rw-r--r--mysql-test/suite/perfschema/r/memory_aggregate_no_u.result2
-rw-r--r--mysql-test/suite/perfschema/r/memory_aggregate_no_u_no_h.result2
-rw-r--r--mysql-test/suite/perfschema/r/misc.result2
-rw-r--r--mysql-test/suite/perfschema/r/nesting.result56
-rw-r--r--mysql-test/suite/perfschema/r/ortho_iter.result4
-rw-r--r--mysql-test/suite/perfschema/r/privilege_table_io.result4
-rw-r--r--mysql-test/suite/perfschema/r/stage_mdl_global.result4
-rw-r--r--mysql-test/suite/perfschema/r/stage_mdl_table.result2
-rw-r--r--mysql-test/suite/perfschema/r/start_server_disable_idle.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_disable_stages.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_disable_statements.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_disable_transactions.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_disable_waits.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_innodb.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_low_index.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_low_table_lock.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_account.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_cond_class.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_cond_inst.result2
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_file_class.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_file_inst.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_host.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_index.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_mdl.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_memory_class.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_mutex_class.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_prepared_stmts_instances.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_setup_actors.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_setup_objects.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_socket_class.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_socket_inst.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_stage_class.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_stages_history.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_stages_history_long.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_statement_class.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_statements_history.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_statements_history_long.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_table_hdl.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_table_inst.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_table_lock.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_thread_class.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_thread_inst.result2
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_transactions_history.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_transactions_history_long.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_user.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_waits_history.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_no_waits_history_long.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_off.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_on.result4
-rw-r--r--mysql-test/suite/perfschema/r/start_server_variables.result8
-rw-r--r--mysql-test/suite/perfschema/r/statement_program_lost_inst.result4
-rw-r--r--mysql-test/suite/perfschema/r/statement_program_nesting_event_check.result4
-rw-r--r--mysql-test/suite/perfschema/r/statement_program_non_nested.result6
-rw-r--r--mysql-test/suite/perfschema/r/threads_history.result428
-rw-r--r--mysql-test/suite/perfschema/t/bad_option.test4
-rw-r--r--mysql-test/suite/perfschema/t/misc.test1
-rw-r--r--mysql-test/suite/perfschema/t/processlist_57.test10
-rw-r--r--mysql-test/suite/perfschema/t/setup_instruments_defaults.test4
-rw-r--r--mysql-test/suite/perfschema/t/statement_program_lost_inst.test4
-rw-r--r--mysql-test/suite/perfschema/t/threads_history.test494
-rw-r--r--mysql-test/suite/period/r/overlaps.result82
-rw-r--r--mysql-test/suite/period/t/overlaps.test77
-rw-r--r--mysql-test/suite/plugins/r/compression,innodb-lz4.rdiff4
-rw-r--r--mysql-test/suite/plugins/r/compression,innodb-lzma.rdiff4
-rw-r--r--mysql-test/suite/plugins/r/compression,innodb-lzo.rdiff4
-rw-r--r--mysql-test/suite/plugins/r/compression,innodb-snappy.rdiff4
-rw-r--r--mysql-test/suite/plugins/r/compression,mroonga-lz4.rdiff4
-rw-r--r--mysql-test/suite/plugins/r/compression.result4
-rw-r--r--mysql-test/suite/plugins/t/compression.test2
-rw-r--r--mysql-test/suite/roles/definer.result1
-rw-r--r--mysql-test/suite/rpl/include/rpl_extra_col_master.test4
-rw-r--r--mysql-test/suite/rpl/r/parallel_backup.result4
-rw-r--r--mysql-test/suite/rpl/r/parallel_backup_lsu_off.result4
-rw-r--r--mysql-test/suite/rpl/r/parallel_backup_slave_binlog_off.result4
-rw-r--r--mysql-test/suite/rpl/r/rpl_auditing.result64
-rw-r--r--mysql-test/suite/rpl/r/rpl_binlog_dump_slave_gtid_state_info.result3
-rw-r--r--mysql-test/suite/rpl/r/rpl_change_master.result5
-rw-r--r--mysql-test/suite/rpl/r/rpl_change_master_demote.result17
-rw-r--r--mysql-test/suite/rpl/r/rpl_domain_id_filter_io_crash.result27
-rw-r--r--mysql-test/suite/rpl/r/rpl_domain_id_filter_master_crash.result3
-rw-r--r--mysql-test/suite/rpl/r/rpl_domain_id_filter_restart.result3
-rw-r--r--mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result10
-rw-r--r--mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result10
-rw-r--r--mysql-test/suite/rpl/r/rpl_get_lock.result3
-rw-r--r--mysql-test/suite/rpl/r/rpl_gtid_basic.result6
-rw-r--r--mysql-test/suite/rpl/r/rpl_gtid_crash.result1
-rw-r--r--mysql-test/suite/rpl/r/rpl_gtid_errorhandling.result2
-rw-r--r--mysql-test/suite/rpl/r/rpl_gtid_grouping.result1
-rw-r--r--mysql-test/suite/rpl/r/rpl_gtid_header_valid.result146
-rw-r--r--mysql-test/suite/rpl/r/rpl_gtid_mdev4820.result4
-rw-r--r--mysql-test/suite/rpl/r/rpl_gtid_stop_start.result4
-rw-r--r--mysql-test/suite/rpl/r/rpl_heartbeat.result7
-rw-r--r--mysql-test/suite/rpl/r/rpl_heartbeat_debug.result2
-rw-r--r--mysql-test/suite/rpl/r/rpl_mark_optimize_tbl_ddl.result1
-rw-r--r--mysql-test/suite/rpl/r/rpl_mdev33798.result143
-rw-r--r--mysql-test/suite/rpl/r/rpl_mysql_manager_race_condition.result31
-rw-r--r--mysql-test/suite/rpl/r/rpl_packet.result2
-rw-r--r--mysql-test/suite/rpl/r/rpl_parallel_multi_domain_xa.result58
-rw-r--r--mysql-test/suite/rpl/r/rpl_parallel_optimistic.result3
-rw-r--r--mysql-test/suite/rpl/r/rpl_parallel_optimistic_xa.result1
-rw-r--r--mysql-test/suite/rpl/r/rpl_parallel_optimistic_xa_lsu_off.result1
-rw-r--r--mysql-test/suite/rpl/r/rpl_parallel_retry.result22
-rw-r--r--mysql-test/suite/rpl/r/rpl_parallel_sbm.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_parallel_seq.result10
-rw-r--r--mysql-test/suite/rpl/r/rpl_parallel_slave_bgc_kill.result8
-rw-r--r--mysql-test/suite/rpl/r/rpl_parallel_stop_slave.result4
-rw-r--r--mysql-test/suite/rpl/r/rpl_parallel_temptable.result18
-rw-r--r--mysql-test/suite/rpl/r/rpl_perfschema_connect_config.result2
-rw-r--r--mysql-test/suite/rpl/r/rpl_rewrite_db_sys_vars.result20
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_find_row_debug.result1
-rw-r--r--mysql-test/suite/rpl/r/rpl_semi_sync_cond_var_per_thd.result32
-rw-r--r--mysql-test/suite/rpl/r/rpl_semi_sync_fail_over.result54
-rw-r--r--mysql-test/suite/rpl/r/rpl_semi_sync_master_shutdown.result3
-rw-r--r--mysql-test/suite/rpl/r/rpl_semi_sync_shutdown_await_ack.result267
-rw-r--r--mysql-test/suite/rpl/r/rpl_semi_sync_slave_enabled_consistent.result3
-rw-r--r--mysql-test/suite/rpl/r/rpl_show_slave_status.result75
-rw-r--r--mysql-test/suite/rpl/r/rpl_shutdown_sighup.result50
-rw-r--r--mysql-test/suite/rpl/r/rpl_skip_error.result25
-rw-r--r--mysql-test/suite/rpl/r/rpl_start_alter_options.result14
-rw-r--r--mysql-test/suite/rpl/r/rpl_temporary_error2_skip_all.result64
-rw-r--r--mysql-test/suite/rpl/r/rpl_using_gtid_default.result2
-rw-r--r--mysql-test/suite/rpl/r/show_status_stop_slave_race-7126.result1
-rw-r--r--mysql-test/suite/rpl/t/parallel_backup_xa.inc2
-rw-r--r--mysql-test/suite/rpl/t/rpl_auditing.test77
-rw-r--r--mysql-test/suite/rpl/t/rpl_binlog_dump_slave_gtid_state_info.test3
-rw-r--r--mysql-test/suite/rpl/t/rpl_change_master.test5
-rw-r--r--mysql-test/suite/rpl/t/rpl_change_master_demote.test34
-rw-r--r--mysql-test/suite/rpl/t/rpl_domain_id_filter_io_crash.test66
-rw-r--r--mysql-test/suite/rpl/t/rpl_domain_id_filter_master_crash.test7
-rw-r--r--mysql-test/suite/rpl/t/rpl_domain_id_filter_restart.test3
-rw-r--r--mysql-test/suite/rpl/t/rpl_dump_request_retry_warning.test4
-rw-r--r--mysql-test/suite/rpl/t/rpl_get_lock.test15
-rw-r--r--mysql-test/suite/rpl/t/rpl_gtid_crash-slave.opt2
-rw-r--r--mysql-test/suite/rpl/t/rpl_gtid_crash.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_gtid_crash_myisam.test4
-rw-r--r--mysql-test/suite/rpl/t/rpl_gtid_grouping.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_gtid_header_valid.test213
-rw-r--r--mysql-test/suite/rpl/t/rpl_gtid_stop_start.test18
-rw-r--r--mysql-test/suite/rpl/t/rpl_heartbeat.test8
-rw-r--r--mysql-test/suite/rpl/t/rpl_heartbeat_debug.test11
-rw-r--r--mysql-test/suite/rpl/t/rpl_mdev33798.cnf17
-rw-r--r--mysql-test/suite/rpl/t/rpl_mdev33798.test182
-rw-r--r--mysql-test/suite/rpl/t/rpl_mysql_manager_race_condition.test64
-rw-r--r--mysql-test/suite/rpl/t/rpl_packet.test3
-rw-r--r--mysql-test/suite/rpl/t/rpl_parallel_gco_wait_kill.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_parallel_multi_domain_xa.test181
-rw-r--r--mysql-test/suite/rpl/t/rpl_parallel_optimistic.test3
-rw-r--r--mysql-test/suite/rpl/t/rpl_parallel_optimistic_xa.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_parallel_retry.test38
-rw-r--r--mysql-test/suite/rpl/t/rpl_parallel_sbm.test16
-rw-r--r--mysql-test/suite/rpl/t/rpl_parallel_seq.test18
-rw-r--r--mysql-test/suite/rpl/t/rpl_parallel_slave_bgc_kill.test10
-rw-r--r--mysql-test/suite/rpl/t/rpl_parallel_stop_slave.test23
-rw-r--r--mysql-test/suite/rpl/t/rpl_parallel_temptable.test24
-rw-r--r--mysql-test/suite/rpl/t/rpl_relay_max_extension.test4
-rw-r--r--mysql-test/suite/rpl/t/rpl_rewrite_db_sys_vars.test23
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_find_row_debug.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_semi_sync_cond_var_per_thd.cnf10
-rw-r--r--mysql-test/suite/rpl/t/rpl_semi_sync_cond_var_per_thd.test77
-rw-r--r--mysql-test/suite/rpl/t/rpl_semi_sync_crash.inc28
-rw-r--r--mysql-test/suite/rpl/t/rpl_semi_sync_fail_over.test11
-rw-r--r--mysql-test/suite/rpl/t/rpl_semi_sync_master_shutdown.test9
-rw-r--r--mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.cnf6
-rw-r--r--mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.inc104
-rw-r--r--mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.test187
-rw-r--r--mysql-test/suite/rpl/t/rpl_semi_sync_slave_enabled_consistent.test3
-rw-r--r--mysql-test/suite/rpl/t/rpl_show_slave_status.test27
-rw-r--r--mysql-test/suite/rpl/t/rpl_shutdown_sighup.test154
-rw-r--r--mysql-test/suite/rpl/t/rpl_skip_error.test42
-rw-r--r--mysql-test/suite/rpl/t/rpl_sync.test4
-rw-r--r--mysql-test/suite/rpl/t/rpl_temporary_error2.test9
-rw-r--r--mysql-test/suite/rpl/t/rpl_temporary_error2_skip_all-slave.opt1
-rw-r--r--mysql-test/suite/rpl/t/rpl_temporary_error2_skip_all.test3
-rw-r--r--mysql-test/suite/rpl/t/rpl_using_gtid_default.test3
-rw-r--r--mysql-test/suite/rpl/t/show_status_stop_slave_race-7126.test3
-rw-r--r--mysql-test/suite/s3/mysqldump.result2
-rw-r--r--mysql-test/suite/s3/partition.result2
-rw-r--r--mysql-test/suite/sql_sequence/mysqldump.result5
-rw-r--r--mysql-test/suite/sys_vars/r/debug_dbug_utf16le.result31
-rw-r--r--mysql-test/suite/sys_vars/r/innodb_fil_make_page_dirty_debug_basic.result5
-rw-r--r--mysql-test/suite/sys_vars/r/innodb_saved_page_number_debug_basic.result1
-rw-r--r--mysql-test/suite/sys_vars/r/replicate_rewrite_db.result8
-rw-r--r--mysql-test/suite/sys_vars/r/slave_transaction_retry_errors.result10
-rw-r--r--mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff77
-rw-r--r--mysql-test/suite/sys_vars/r/sysvars_innodb.result28
-rw-r--r--mysql-test/suite/sys_vars/r/sysvars_server_embedded.result12
-rw-r--r--mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result12
-rw-r--r--mysql-test/suite/sys_vars/t/allow_suspicious_udfs.test4
-rw-r--r--mysql-test/suite/sys_vars/t/debug_dbug_utf16le.test29
-rw-r--r--mysql-test/suite/sys_vars/t/innodb_fil_make_page_dirty_debug_basic.test4
-rw-r--r--mysql-test/suite/sys_vars/t/innodb_saved_page_number_debug_basic.test1
-rw-r--r--mysql-test/suite/sys_vars/t/replicate_rewrite_db.test7
-rw-r--r--mysql-test/suite/sysschema/t/fn_ps_thread_trx_info.test2
-rw-r--r--mysql-test/suite/vcol/r/func_regexp.result24
-rw-r--r--mysql-test/suite/vcol/t/func_regexp.test30
-rw-r--r--mysql-test/suite/versioning/r/alter.result13
-rw-r--r--mysql-test/suite/versioning/r/data.result6
-rw-r--r--mysql-test/suite/versioning/r/partition.result23
-rw-r--r--mysql-test/suite/versioning/t/alter.test15
-rw-r--r--mysql-test/suite/versioning/t/partition.test38
837 files changed, 20207 insertions, 4179 deletions
diff --git a/mysql-test/collections/buildbot_suites.bat b/mysql-test/collections/buildbot_suites.bat
index d4a6e665..13ea5ddb 100644
--- a/mysql-test/collections/buildbot_suites.bat
+++ b/mysql-test/collections/buildbot_suites.bat
@@ -1,5 +1,5 @@
if "%MTR_PARALLEL%"=="" set MTR_PARALLEL=%NUMBER_OF_PROCESSORS%
-perl mysql-test-run.pl --verbose-restart --force --suite-timeout=120 --max-test-fail=10 --retry=3 --suite=^
+perl mysql-test-run.pl --force --suite-timeout=120 --max-test-fail=10 --retry=3 --suite=^
vcol,gcol,perfschema,^
main,^
innodb,^
diff --git a/mysql-test/dgcov.pl b/mysql-test/dgcov.pl
index db3ce429..152b2f32 100755
--- a/mysql-test/dgcov.pl
+++ b/mysql-test/dgcov.pl
@@ -112,8 +112,7 @@ sub print_gcov_for_diff {
$acc.=sprintf '%9s:%5s:%s', '', $lnum, $' if /^ /;
++$printme, $acc.=sprintf '%9s:%5s:%s', gcov_prefix($fcov->{$lnum}), $lnum, $' if /^\+/;
die "$_^^^ dying", unless /^[- +]/;
- ++$lnum;
- --$cnt;
+ ++$lnum, --$cnt unless /^-/;
}
print $acc if $printme;
close PIPE or die "command '$cmd' failed: $!: $?";
diff --git a/mysql-test/include/aria_log_control_load.inc b/mysql-test/include/aria_log_control_load.inc
new file mode 100644
index 00000000..34db3aeb
--- /dev/null
+++ b/mysql-test/include/aria_log_control_load.inc
@@ -0,0 +1,11 @@
+#
+# This file loads aria_log_control file into a user variable @aria_log_control.
+# Set $ARIA_DATADIR before including this file
+#
+
+--disable_query_log
+--copy_file $ARIA_DATADIR/aria_log_control $MYSQLTEST_VARDIR/aria_log_control_tmp
+--chmod 0777 $MYSQLTEST_VARDIR/aria_log_control_tmp
+--eval SET @aria_log_control=(SELECT LOAD_FILE('$MYSQLTEST_VARDIR/aria_log_control_tmp'))
+--remove_file $MYSQLTEST_VARDIR/aria_log_control_tmp
+--enable_query_log
diff --git a/mysql-test/include/check-testcase.test b/mysql-test/include/check-testcase.test
index 078f6572..b43dffbf 100644
--- a/mysql-test/include/check-testcase.test
+++ b/mysql-test/include/check-testcase.test
@@ -32,7 +32,6 @@ if ($tmp)
--echo Relay_Master_Log_File #
--echo Slave_IO_Running No
--echo Slave_SQL_Running No
- --echo Replicate_Rewrite_DB #
--echo Replicate_Do_DB #
--echo Replicate_Ignore_DB #
--echo Replicate_Do_Table #
@@ -74,13 +73,22 @@ if ($tmp)
--echo Slave_DDL_Groups #
--echo Slave_Non_Transactional_Groups #
--echo Slave_Transactional_Groups #
+ --echo Replicate_Rewrite_DB #
}
if (!$tmp) {
# Note: after WL#5177, fields 13-18 shall not be filtered-out.
- --replace_column 4 # 5 # 6 # 7 # 8 # 9 # 10 # 13 # 14 # 15 # 16 # 17 # 18 # 19 # 23 # 24 # 25 # 26 # 27 # 41 # 42 # 43 # 45 # 52 # 53 # 54 #
+ --replace_column 4 # 5 # 6 # 7 # 8 # 9 # 10 # 13 # 14 # 15 # 16 # 17 # 18 # 22 # 23 # 24 # 25 # 26 # 40 # 41 # 42 # 44 # 51 # 52 # 53 # 54 #
query_vertical
SHOW SLAVE STATUS;
}
+#
+# Note, we must never, _ever_, add extra rows to this output of SHOW SLAVE
+# STATUS, except at the very end, as this breaks backwards compatibility
+# with applications or scripts that parse the output. This also means that
+# we cannot add _any_ new rows in a GA version if a different row was
+# already added in a later MariaDB version, as this would make it impossible
+# to merge the change up while preserving the order of rows.
+#
#
# Ensure that we don't get warnings from mysql.proc (used by check_mysqld)
diff --git a/mysql-test/include/commit.inc b/mysql-test/include/commit.inc
index c696613d..132fdcff 100644
--- a/mysql-test/include/commit.inc
+++ b/mysql-test/include/commit.inc
@@ -613,13 +613,17 @@ call p_verify_status_increment(2, 0, 2, 0);
drop table t2;
set sql_mode=no_engine_substitution;
create temporary table t2 (a int);
-call p_verify_status_increment(1, 0, 0, 0);
+# One commit for the create temporary table, and two for committing the
+# read of the stored procedure from Aria table (creating temporary table
+# clears the sp cache).
+call p_verify_status_increment(3, 0, 2, 0);
set sql_mode=default;
--echo # 19. A function changes temp-trans-table.
--echo #
select f1();
---echo # Two commits because a binary log record is written
-call p_verify_status_increment(2, 0, 1, 0);
+--echo # Two commits because a binary log record is written, and another two
+--echo # as the function f1() is reloaded after creating temporary table.
+call p_verify_status_increment(4, 0, 3, 0);
commit;
call p_verify_status_increment(2, 0, 1, 0);
@@ -672,9 +676,11 @@ call p_verify_status_increment(2, 0, 1, 0);
--echo # 25. DDL: DROP TEMPORARY TABLE, does not start a transaction
--echo #
drop temporary table t2;
-call p_verify_status_increment(1, 0, 1, 0);
+# Dropping temporary table clears SP caches, so get another two commit
+# increments from loading the p_verify_status_increment procedure.
+call p_verify_status_increment(3, 0, 2, 0);
commit;
-call p_verify_status_increment(1, 0, 1, 0);
+call p_verify_status_increment(1, 0, 0, 0);
--echo # 26. Verify that SET AUTOCOMMIT issues an implicit commit
--echo #
@@ -721,7 +727,9 @@ call p_verify_status_increment(1, 0, 1, 0);
create table t2 (a int);
call p_verify_status_increment(0, 0, 0, 0);
do (select f1() from t1 where a=2);
-call p_verify_status_increment(2, 2, 2, 2);
+# Again extra 2 commit increments from re-loading function f1 after
+# dropping temporary table.
+call p_verify_status_increment(4, 2, 4, 2);
commit;
call p_verify_status_increment(2, 2, 2, 2);
diff --git a/mysql-test/include/crash_mysqld.inc b/mysql-test/include/crash_mysqld.inc
index 4190d24d..89bc8ced 100644
--- a/mysql-test/include/crash_mysqld.inc
+++ b/mysql-test/include/crash_mysqld.inc
@@ -4,7 +4,7 @@
--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
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
# Setup the mysqld to crash at shutdown
SET debug_dbug="d,crash_shutdown";
diff --git a/mysql-test/include/deadlock.inc b/mysql-test/include/deadlock.inc
index abf217ae..362d456e 100644
--- a/mysql-test/include/deadlock.inc
+++ b/mysql-test/include/deadlock.inc
@@ -103,7 +103,6 @@ connection con2;
# The following query should hang because con1 is locking the record
update t2 set a=2 where b = 0;
-select * from t2;
--send
update t1 set x=2 where id = 0;
--sleep 2
diff --git a/mysql-test/include/default_mysqld.cnf b/mysql-test/include/default_mysqld.cnf
index 89d0d779..06a4ff15 100644
--- a/mysql-test/include/default_mysqld.cnf
+++ b/mysql-test/include/default_mysqld.cnf
@@ -71,7 +71,7 @@ loose-performance-schema-hosts-size=100
loose-performance-schema-users-size=100
loose-performance-schema-max-mutex-instances=5000
loose-performance-schema-max-rwlock-instances=5000
-loose-performance-schema-max-cond-instances=1000
+loose-performance-schema-max-cond-instances=1500
loose-performance-schema-max-file-instances=10000
loose-performance-schema-max-socket-instances=1000
loose-performance-schema-max-table-instances=500
@@ -91,7 +91,7 @@ loose-performance-schema-events-statements-history-size=10
loose-performance-schema-events-statements-history-long-size=1000
loose-performance-schema-events-transactions-history-size=10
loose-performance-schema-events-transactions-history-long-size=1000
-loose-performance-schema-max-thread-instances=200
+loose-performance-schema-max-thread-instances=400
loose-performance-schema-session-connect-attrs-size=2048
loose-performance-schema-max-metadata-locks=10000
diff --git a/mysql-test/include/expect_crash.inc b/mysql-test/include/expect_crash.inc
index b4bd9828..56abc88a 100644
--- a/mysql-test/include/expect_crash.inc
+++ b/mysql-test/include/expect_crash.inc
@@ -2,4 +2,4 @@
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/$_expect_file_name.expect
# There should be a debug crash after using this .inc file
---exec echo "wait" > $_expect_file_name
+--write_line wait $_expect_file_name
diff --git a/mysql-test/include/have_innodb.combinations b/mysql-test/include/have_innodb.combinations
deleted file mode 100644
index f1131c44..00000000
--- a/mysql-test/include/have_innodb.combinations
+++ /dev/null
@@ -1,39 +0,0 @@
-[innodb_plugin]
-ignore-builtin-innodb
-plugin-load-add=$HA_INNODB_SO
-innodb
-innodb-cmpmem
-innodb-cmp-per-index
-innodb-trx
-innodb-locks
-innodb-lock-waits
-innodb-buffer-pool-stats
-innodb-buffer-page
-innodb-buffer-page-lru
-innodb-sys-columns
-innodb-sys-fields
-innodb-sys-foreign
-innodb-sys-foreign-cols
-innodb-sys-indexes
-innodb-sys-tables
-innodb-sys-virtual
-innodb-metrics
-
-[innodb]
-innodb
-innodb-cmpmem
-innodb-cmp-per-index
-innodb-trx
-innodb-locks
-innodb-lock-waits
-innodb-metrics
-innodb-buffer-pool-stats
-innodb-buffer-page
-innodb-buffer-page-lru
-innodb-sys-columns
-innodb-sys-fields
-innodb-sys-foreign
-innodb-sys-foreign-cols
-innodb-sys-indexes
-innodb-sys-tables
-innodb-sys-virtual
diff --git a/mysql-test/include/have_innodb.inc b/mysql-test/include/have_innodb.inc
index 8c9cdb54..1e853d18 100644
--- a/mysql-test/include/have_innodb.inc
+++ b/mysql-test/include/have_innodb.inc
@@ -3,6 +3,11 @@
# will be skipped unless innodb is enabled
#
--disable_query_log
+if (`select version() like '%debug%'`)
+{
+SET STATEMENT sql_log_bin=0 FOR
+call mtr.add_suppression("InnoDB: Trying to delete tablespace.*pending operations");
+}
if (`select count(*) from information_schema.system_variables where variable_name='have_sanitizer' and global_value like 'MSAN%'`)
{
SET STATEMENT sql_log_bin=0 FOR
diff --git a/mysql-test/include/have_innodb.opt b/mysql-test/include/have_innodb.opt
new file mode 100644
index 00000000..0a6d4d9c
--- /dev/null
+++ b/mysql-test/include/have_innodb.opt
@@ -0,0 +1,17 @@
+--innodb
+--innodb-cmpmem
+--innodb-cmp-per-index
+--innodb-trx
+--innodb-locks
+--innodb-lock-waits
+--innodb-metrics
+--innodb-buffer-pool-stats
+--innodb-buffer-page
+--innodb-buffer-page-lru
+--innodb-sys-columns
+--innodb-sys-fields
+--innodb-sys-foreign
+--innodb-sys-foreign-cols
+--innodb-sys-indexes
+--innodb-sys-tables
+--innodb-sys-virtual
diff --git a/mysql-test/include/innodb_rollback_on_timeout.inc b/mysql-test/include/innodb_rollback_on_timeout.inc
index 274bbe12..d41e1f1e 100644
--- a/mysql-test/include/innodb_rollback_on_timeout.inc
+++ b/mysql-test/include/innodb_rollback_on_timeout.inc
@@ -1,4 +1,3 @@
---source include/have_innodb.inc
#
# Bug #24200: Provide backwards compatibility mode for 4.x "rollback on
# transaction timeout"
@@ -22,7 +21,6 @@ select * from t1;
connection con1;
begin work;
insert into t1 values (5);
-select * from t1;
# Lock wait timeout set to 2 seconds in <THIS TEST>-master.opt; this
# statement will time out; in 5.0.13+, it will not roll back transaction.
--error ER_LOCK_WAIT_TIMEOUT
diff --git a/mysql-test/include/kill_and_restart_mysqld.inc b/mysql-test/include/kill_and_restart_mysqld.inc
index b67fb735..50b28bcd 100644
--- a/mysql-test/include/kill_and_restart_mysqld.inc
+++ b/mysql-test/include/kill_and_restart_mysqld.inc
@@ -7,7 +7,7 @@ if (!$restart_parameters)
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.$_server_id.expect
--echo # Kill and $restart_parameters
---exec echo "$restart_parameters" > $_expect_file_name
+--write_line "$restart_parameters" $_expect_file_name
--shutdown_server 0
--source include/wait_until_disconnected.inc
--enable_reconnect
diff --git a/mysql-test/include/kill_galera.inc b/mysql-test/include/kill_galera.inc
index aba672d8..887e21f5 100644
--- a/mysql-test/include/kill_galera.inc
+++ b/mysql-test/include/kill_galera.inc
@@ -3,7 +3,7 @@
# Write file to make mysql-test-run.pl expect the crash, but don't start it
--let $_expect_file_name= `select regexp_replace(@@tmpdir, '^.*/','')`
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/$_expect_file_name.expect
---exec echo "wait" > $_expect_file_name
+--write_line wait $_expect_file_name
# Kill the connected server
--disable_reconnect
diff --git a/mysql-test/include/kill_mysqld.inc b/mysql-test/include/kill_mysqld.inc
index 01ee7f82..a41af2d7 100644
--- a/mysql-test/include/kill_mysqld.inc
+++ b/mysql-test/include/kill_mysqld.inc
@@ -2,6 +2,6 @@
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/$_expect_file_name.expect
--echo # Kill the server
---exec echo "wait" > $_expect_file_name
+--write_line wait $_expect_file_name
--shutdown_server 0
--source include/wait_until_disconnected.inc
diff --git a/mysql-test/include/rpl_change_topology.inc b/mysql-test/include/rpl_change_topology.inc
index b63700b0..ddaf90a9 100644
--- a/mysql-test/include/rpl_change_topology.inc
+++ b/mysql-test/include/rpl_change_topology.inc
@@ -96,10 +96,11 @@
# Remove whitespace from $rpl_topology
--let $rpl_topology= `SELECT REPLACE('$rpl_topology', ' ', '')`
+--source include/slow_environ.inc
+
--let $include_filename= rpl_change_topology.inc [new topology=$rpl_topology]
--source include/begin_include_file.inc
-
if ($rpl_debug)
{
--echo ---- Check input ----
@@ -235,11 +236,11 @@ if (!$rpl_skip_change_master)
}
if ($rpl_master_log_file)
{
- eval CHANGE MASTER TO MASTER_HOST = '127.0.0.1', MASTER_PORT = $_rpl_port, MASTER_USER = 'root', MASTER_LOG_FILE = '$_rpl_master_log_file'$_rpl_master_log_pos, MASTER_CONNECT_RETRY = 1, MASTER_USE_GTID=NO;
+ eval CHANGE MASTER TO MASTER_HOST = '127.0.0.1', MASTER_PORT = $_rpl_port, MASTER_USER = 'root', MASTER_LOG_FILE = '$_rpl_master_log_file'$_rpl_master_log_pos, MASTER_CONNECT_RETRY = 1$_timeout_adjustment, MASTER_USE_GTID=NO;
}
if (!$rpl_master_log_file)
{
- eval CHANGE MASTER TO MASTER_HOST = '127.0.0.1', MASTER_PORT = $_rpl_port, MASTER_USER = 'root', MASTER_CONNECT_RETRY=1;
+ eval CHANGE MASTER TO MASTER_HOST = '127.0.0.1', MASTER_PORT = $_rpl_port, MASTER_USER = 'root', MASTER_CONNECT_RETRY=1$_timeout_adjustment;
}
}
if ($_rpl_master == '')
diff --git a/mysql-test/include/rpl_clone_slave_using_mariadb-backup.inc b/mysql-test/include/rpl_clone_slave_using_mariadb-backup.inc
new file mode 100644
index 00000000..96fcfa21
--- /dev/null
+++ b/mysql-test/include/rpl_clone_slave_using_mariadb-backup.inc
@@ -0,0 +1,297 @@
+if ($cnf == "galera2_to_mariadb")
+{
+ --let MASTER_MYPORT= $NODE_MYPORT_1
+ --connect master, 127.0.0.1, root, , test, $NODE_MYPORT_1
+ --connect slave, 127.0.0.1, root, , test, $NODE_MYPORT_3
+ --disable_query_log
+ --replace_result $MASTER_MYPORT ###
+ --eval CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_USER='root', MASTER_PORT=$MASTER_MYPORT, MASTER_USE_GTID=NO;
+ --enable_query_log
+ START SLAVE;
+ --source include/wait_for_slave_to_start.inc
+
+ --let XTRABACKUP_BACKUP_OPTIONS=--no-defaults --user=root --host='127.0.0.1' --port=$NODE_MYPORT_3
+ --let XTRABACKUP_COPY_BACK_OPTIONS= --no-defaults
+}
+
+if ($cnf == "mariadb_to_mariadb")
+{
+ --let XTRABACKUP_BACKUP_OPTIONS=--defaults-file=$MYSQLTEST_VARDIR/my.cnf --defaults-group-suffix=.2
+ --let XTRABACKUP_COPY_BACK_OPTIONS=--defaults-file=$MYSQLTEST_VARDIR/my.cnf --defaults-group-suffix=.2
+}
+
+--connection master
+--let $MYSQLD_DATADIR_MASTER= `select @@datadir`
+--connection slave
+--let $MYSQLD_DATADIR_SLAVE= `select @@datadir`
+
+# This test covers the filename:pos based synchronization
+# between the master and the slave.
+# If we ever need to test a GTID based synchronization,
+# it should be done in a separate test.
+
+
+--echo ##############################################################
+--echo ### Initial block with some transactions
+
+--echo ### Slave: Make sure replication is not using GTID
+--connection slave
+--let $value= query_get_value(SHOW SLAVE STATUS, "Using_Gtid", 1)
+--echo # Using_Gtid=$value
+
+--echo ### Master: Create and populate t1
+--connection master
+CREATE TABLE t1(a TEXT) ENGINE=InnoDB;
+START TRANSACTION;
+INSERT INTO t1 VALUES ('tr#00:stmt#00 - slave run#0, before backup');
+INSERT INTO t1 VALUES ('tr#00:stmt#01 - slave run#0, before backup');
+INSERT INTO t1 VALUES ('tr#00:stmt#02 - slave run#0, before backup');
+COMMIT;
+--sync_slave_with_master
+
+
+
+--echo ##############################################################
+--echo ### Run the last transaction before mariadb-backup --backup
+--echo ### Remember SHOW MASTER STATUS and @@gtid_binlog_pos
+--echo ### before and after the transaction.
+
+--echo ### Master: Rember MASTER STATUS and @@gtid_binlog_pos before tr#01
+--connection master
+--let $master_before_tr01_show_master_status_file=query_get_value(SHOW MASTER STATUS, File, 1)
+--let $master_before_tr01_show_master_status_position=query_get_value(SHOW MASTER STATUS, Position, 1)
+--let $master_before_tr01_gtid_binlog_pos=`SELECT @@global.gtid_binlog_pos`
+
+--echo ### Slave: Remember MASTER STATUS and @@gtid_binlog_pos before tr#01
+--connection slave
+--let $slave_before_tr01_show_master_status_file=query_get_value(SHOW MASTER STATUS, File, 1)
+--let $slave_before_tr01_show_master_status_position=query_get_value(SHOW MASTER STATUS, Position, 1)
+--let $slave_before_tr01_gtid_binlog_pos=`SELECT @@global.gtid_binlog_pos`
+
+--echo ### Master: Run the actual last transaction before the backup
+--connection master
+START TRANSACTION;
+INSERT INTO t1 VALUES ('tr#01:stmt#00 - slave run#0, before backup');
+INSERT INTO t1 VALUES ('tr#01:stmt#01 - slave run#0, before backup');
+INSERT INTO t1 VALUES ('tr#01:stmt#02 - slave run#0, before backup');
+COMMIT;
+--sync_slave_with_master
+
+--echo ### Master: Remember MASTER STATUS and @@gtid_binlog_pos after tr#01
+--connection master
+--let $master_after_tr01_show_master_status_file=query_get_value(SHOW MASTER STATUS, File, 1)
+--let $master_after_tr01_show_master_status_position=query_get_value(SHOW MASTER STATUS, Position, 1)
+--let $master_after_tr01_gtid_binlog_pos=`SELECT @@global.gtid_binlog_pos`
+
+--echo ### Slave: Remember MASTER STATUS and @@gtid_binlog_pos after tr#01
+--connection slave
+--let $slave_after_tr01_show_master_status_file=query_get_value(SHOW MASTER STATUS, File, 1)
+--let $slave_after_tr01_show_master_status_position=query_get_value(SHOW MASTER STATUS, Position, 1)
+--let $slave_after_tr01_gtid_binlog_pos=`SELECT @@global.gtid_binlog_pos`
+
+
+--echo ##############################################################
+--echo ### Running `mariadb-backup --backup,--prepare` and checking
+--echo ### that xtrabackup_slave_info and xtrabackup_binlog_info are OK
+
+--echo ### Slave: Create a backup
+--let $backup_slave=$MYSQLTEST_VARDIR/tmp/backup-slave
+--disable_result_log
+--exec $XTRABACKUP $XTRABACKUP_BACKUP_OPTIONS --slave-info --backup --target-dir=$backup_slave
+--enable_result_log
+
+--echo ### Slave: Prepare the backup
+--exec $XTRABACKUP --prepare --target-dir=$backup_slave
+
+--echo ### Slave: xtrabackup files:
+--echo ############################ xtrabackup_slave_info
+--replace_result $master_after_tr01_show_master_status_file master_after_tr01_show_master_status_file $master_after_tr01_show_master_status_position master_after_tr01_show_master_status_position
+--cat_file $backup_slave/xtrabackup_slave_info
+--echo ############################ xtrabackup_binlog_info
+--replace_result $slave_after_tr01_show_master_status_file slave_after_tr01_show_master_status_file $slave_after_tr01_show_master_status_position slave_after_tr01_show_master_status_position $slave_after_tr01_gtid_binlog_pos slave_after_tr01_gtid_binlog_pos
+--cat_file $backup_slave/xtrabackup_binlog_info
+--echo ############################
+
+
+--echo ##############################################################
+--echo ### Run more transactions after the backup:
+--echo ### - while the slave is still running, then
+--echo ### - while the slave is shut down
+
+--echo ### Master: Run another transaction while the slave is still running
+--connection master
+START TRANSACTION;
+INSERT INTO t1 VALUES ('tr#02:stmt#00 - slave run#0, after backup');
+INSERT INTO t1 VALUES ('tr#02:stmt#01 - slave run#0, after backup');
+INSERT INTO t1 VALUES ('tr#02:stmt@02 - slave run#0, after backup');
+COMMIT;
+--sync_slave_with_master
+
+--echo ### Master: Remember MASTER STATUS and @@gtid_binlog_pos after tr#02
+--connection master
+--let $master_after_tr02_show_master_status_file=query_get_value(SHOW MASTER STATUS, File, 1)
+--let $master_after_tr02_show_master_status_position=query_get_value(SHOW MASTER STATUS, Position, 1)
+--let $master_after_tr02_gtid_binlog_pos=`SELECT @@global.gtid_binlog_pos`
+
+--echo ### Slave: Remember MASTER STATUS and @@gtid_binlog_pos after tr#02
+--connection slave
+--let $slave_after_tr02_show_master_status_file=query_get_value(SHOW MASTER STATUS, File, 1)
+--let $slave_after_tr02_show_master_status_position=query_get_value(SHOW MASTER STATUS, Position, 1)
+--let $slave_after_tr02_gtid_binlog_pos=`SELECT @@global.gtid_binlog_pos`
+
+
+--echo ### Master: Checking SHOW BINLOG EVENTS
+
+--connection master
+--vertical_results
+### The BEGIN event
+--replace_column 4 # 5 #
+--replace_result $master_after_tr01_show_master_status_file master_after_tr01_show_master_status_file $master_after_tr01_show_master_status_position master_after_tr01_show_master_status_position $master_after_tr02_gtid_binlog_pos master_after_tr02_gtid_binlog_pos
+--eval SHOW BINLOG EVENTS IN '$master_after_tr01_show_master_status_file' FROM $master_after_tr01_show_master_status_position LIMIT 0,1
+### The INSERT event
+--replace_column 2 # 4 # 5 #
+--replace_result $master_after_tr01_show_master_status_file master_after_tr01_show_master_status_file $master_after_tr01_show_master_status_position master_after_tr01_show_master_status_position
+# Hide the difference between row and stmt binary logging
+--replace_regex /use `test`; // /(Query|Annotate_rows)/Query_or_Annotate_rows/
+--eval SHOW BINLOG EVENTS IN '$master_after_tr01_show_master_status_file' FROM $master_after_tr01_show_master_status_position LIMIT 1,1
+--horizontal_results
+
+--echo ### Slave: Checking SHOW BINLOG EVENTS
+--connection slave
+--vertical_results
+### The BEGIN event
+--replace_column 2 # 5 #
+--replace_result $slave_after_tr01_show_master_status_file slave_after_tr01_show_master_status_file $slave_after_tr01_show_master_status_position slave_after_tr01_show_master_status_position $slave_after_tr02_gtid_binlog_pos slave_after_tr02_gtid_binlog_pos
+--eval SHOW BINLOG EVENTS IN '$slave_after_tr01_show_master_status_file' FROM $slave_after_tr01_show_master_status_position LIMIT 0,1
+### The INSERT event
+--replace_column 2 # 4 # 5 #
+--replace_result $slave_after_tr01_show_master_status_file slave_after_tr01_show_master_status_file $slave_after_tr01_show_master_status_position slave_after_tr01_show_master_status_position $slave_after_tr02_gtid_binlog_pos slave_after_tr02_gtid_binlog_pos
+# Hide the difference between row and stmt binary logging
+--replace_regex /use `test`; // /(Query|Annotate_rows)/Query_or_Annotate_rows/
+--eval SHOW BINLOG EVENTS IN '$slave_after_tr01_show_master_status_file' FROM $slave_after_tr01_show_master_status_position LIMIT 1,1
+--horizontal_results
+
+--echo ### Slave: Stop replication
+--connection slave
+STOP SLAVE;
+--source include/wait_for_slave_to_stop.inc
+RESET SLAVE;
+
+--echo ### Slave: Shutdown the server
+
+if ($cnf == "mariadb_to_mariadb")
+{
+ --let $rpl_server_number= 2
+ --source include/rpl_stop_server.inc
+}
+
+if ($cnf == "galera2_to_mariadb")
+{
+ --connection slave
+ --source $MYSQL_TEST_DIR/include/shutdown_mysqld.inc
+}
+
+--echo ### Master: Run a transaction while the slave is shut down
+--connection master
+START TRANSACTION;
+INSERT INTO t1 VALUES ('tr#03:stmt#00 - after slave run#0, slave is shut down, after backup');
+INSERT INTO t1 VALUES ('tr#03:stmt#01 - after slave run#0, slave is shut down, after backup');
+INSERT INTO t1 VALUES ('tr#03:stmt#02 - after slave run#0, slave is shut down, after backup');
+COMMIT;
+
+
+--echo ##############################################################
+--echo ### Emulate starting a new virgin slave
+
+--echo ### Slave: Remove the data directory
+--rmdir $MYSQLD_DATADIR_SLAVE
+
+--echo ### Slave: Copy back the backup
+--exec $XTRABACKUP $XTRABACKUP_COPY_BACK_OPTIONS --copy-back --datadir=$MYSQLD_DATADIR_SLAVE --target-dir=$backup_slave
+
+--echo ### Slave: Restart the server
+if ($cnf == "mariadb_to_mariadb")
+{
+ --let $rpl_server_number= 2
+ --source include/rpl_start_server.inc
+ --source include/wait_until_connected_again.inc
+}
+
+if ($cnf == "galera2_to_mariadb")
+{
+ --connection slave
+ --source $MYSQL_TEST_DIR/include/start_mysqld.inc
+}
+
+--echo ### Slave: Display the restored data before START SLAVE
+--connection slave
+SELECT * FROM t1 ORDER BY a;
+
+--echo ### Slave: Execute the CHANGE MASTER statement to set up the host and port
+--replace_result $MASTER_MYPORT ###
+--eval CHANGE MASTER '' TO MASTER_USER='root', MASTER_HOST='127.0.0.1', MASTER_PORT=$MASTER_MYPORT, MASTER_CONNECT_RETRY=1
+
+--echo ### Slave: Execute the CHANGE MASTER statement from xtrabackup_slave_info
+--replace_result $master_after_tr01_show_master_status_file master_after_tr01_show_master_status_file $master_after_tr01_show_master_status_position master_after_tr01_show_master_status_position
+--source $backup_slave/xtrabackup_slave_info
+
+--echo ### Slave: Execute START SLAVE
+--source include/start_slave.inc
+
+--echo ### Master: Wait for the slave to apply all master events
+--connection master
+--sync_slave_with_master slave
+
+--echo ### Slave: Make sure replication is not using GTID after the slave restart
+--connection slave
+--let $value= query_get_value(SHOW SLAVE STATUS, "Using_Gtid", 1)
+--echo # Using_Gtid=$value
+
+--echo ### Slave: Display the restored data after START SLAVE
+--connection slave
+SELECT * FROM t1 ORDER BY a;
+
+
+--echo ##############################################################
+--echo ### Continue master transactions, check the new slave replicates well.
+
+--echo ### Master: Run a transaction after restarting replication
+--connection master
+START TRANSACTION;
+INSERT INTO t1 VALUES ('tr#04:stmt#00 - slave run#1');
+INSERT INTO t1 VALUES ('tr#04:stmt#01 - slave run#1');
+INSERT INTO t1 VALUES ('tr#04:stmt#02 - slave run#1');
+COMMIT;
+--sync_slave_with_master
+
+--echo ### Slave: Display the restored data + new transactions
+--connection slave
+SELECT * FROM t1 ORDER BY a;
+
+
+--echo ##############################################################
+--echo ### Cleanup
+
+--echo ### Removing the backup directory
+--rmdir $backup_slave
+
+--connection master
+DROP TABLE t1;
+--sync_slave_with_master
+
+if ($cnf == "mariadb_to_mariadb")
+{
+ --source include/rpl_end.inc
+}
+
+if ($cnf == "galera2_to_mariadb")
+{
+ STOP SLAVE;
+ --source include/wait_for_slave_to_stop.inc
+ RESET SLAVE ALL;
+
+ --connection master
+ set global wsrep_on=OFF;
+ RESET MASTER;
+ set global wsrep_on=ON;
+}
diff --git a/mysql-test/include/rpl_start_server.inc b/mysql-test/include/rpl_start_server.inc
index 932fc9da..0479dbbd 100644
--- a/mysql-test/include/rpl_start_server.inc
+++ b/mysql-test/include/rpl_start_server.inc
@@ -49,7 +49,7 @@ if ($rpl_server_parameters)
--source include/rpl_connection.inc
# Write file to make mysql-test-run.pl start up the server again
---exec echo "$_rpl_start_server_command" > $MYSQLTEST_VARDIR/tmp/mysqld.$rpl_server_number.expect
+--write_line "$_rpl_start_server_command" $MYSQLTEST_VARDIR/tmp/mysqld.$rpl_server_number.expect
if (!$rpl_server_error)
{
diff --git a/mysql-test/include/rpl_stop_server.inc b/mysql-test/include/rpl_stop_server.inc
index 470e86a1..1e4a64cc 100644
--- a/mysql-test/include/rpl_stop_server.inc
+++ b/mysql-test/include/rpl_stop_server.inc
@@ -44,7 +44,7 @@ if ($rpl_debug)
# Write file to make mysql-test-run.pl expect the "crash", but don't start
# it until it's told to
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.$rpl_server_number.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.$rpl_server_number.expect
# Send shutdown to the connected server and give
# it 60 seconds (of mysqltest's default) to die before zapping it
diff --git a/mysql-test/include/search_pattern_in_file.inc b/mysql-test/include/search_pattern_in_file.inc
index 3105f7f9..ab3c95fc 100644
--- a/mysql-test/include/search_pattern_in_file.inc
+++ b/mysql-test/include/search_pattern_in_file.inc
@@ -9,9 +9,6 @@
#
# The environment variables SEARCH_FILE and SEARCH_PATTERN must be set
# before sourcing this routine.
-# SEARCH_TYPE can also be set to either NULL(default) or _gm_
-# NULL is equivalent of using m/SEARCH_PATTERN/gs
-# _gm_ is equivalent of using m/SEARCH_RANGE/gm
#
# Optionally, SEARCH_RANGE can be set to the max number of bytes of the file
# to search. If negative, it will search that many bytes at the end of the
@@ -25,6 +22,7 @@
# Supported formats:
# - (default) : "FOUND n /pattern/ in FILE " or "NOT FOUND ..."
# - "matches" : Each match is printed, on a separate line
+# - "count" : "FOUND n matches in FILE" or "NOT FOUND ..." (omit pattern)
#
# In case of
# - SEARCH_FILE and/or SEARCH_PATTERN is not set
@@ -38,7 +36,7 @@
# let SEARCH_FILE= $error_log;
# # Stop the server
# let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
-# --exec echo "wait" > $restart_file
+# --write_line wait $restart_file
# --shutdown_server
# --source include/wait_until_disconnected.inc
#
@@ -51,15 +49,12 @@
# Created: 2011-11-11 mleich
#
---error 0,1
perl;
use strict;
die "SEARCH_FILE not set" unless $ENV{SEARCH_FILE};
my @search_files= glob($ENV{SEARCH_FILE});
my $search_pattern= $ENV{SEARCH_PATTERN} or die "SEARCH_PATTERN not set";
my $search_range= $ENV{SEARCH_RANGE};
- my $silent= $ENV{SEARCH_SILENT};
- my $search_result= 0;
my $content;
foreach my $search_file (@search_files) {
open(FILE, '<', $search_file) || die("Can't open file $search_file: $!");
@@ -83,48 +78,23 @@ perl;
close(FILE);
$content.= $file_content;
}
- my @matches;
- if (not defined($ENV{SEARCH_TYPE}))
- {
- @matches=($content =~ /$search_pattern/gs);
- }
- elsif($ENV{SEARCH_TYPE} == "_gm_")
- {
- @matches=($content =~ /$search_pattern/gm);
- }
- my $res;
- if (@matches)
- {
- $res="FOUND " . scalar(@matches);
- $search_result= 1;
- }
- else
- {
- $res= "NOT FOUND";
- }
+ my @matches= ($content =~ /$search_pattern/gs);
+ my $res=@matches ? "FOUND " . scalar(@matches) : "NOT FOUND";
+
$ENV{SEARCH_FILE} =~ s{^.*?([^/\\]+)$}{$1};
- if (!$silent || $search_result)
- {
- if ($ENV{SEARCH_OUTPUT} eq "matches")
- {
- foreach (@matches)
- {
- print $_ . "\n";
- }
- }
- else
- {
- print "$res /$search_pattern/ in $ENV{SEARCH_FILE}\n";
+ if ($ENV{SEARCH_OUTPUT} eq "matches") {
+ foreach (@matches) {
+ print $_ . "\n";
}
}
- die "$ENV{SEARCH_ABORT}\n"
- if $ENV{SEARCH_ABORT} && $res =~ /^$ENV{SEARCH_ABORT}/;
- exit($search_result != 1);
+ elsif ($ENV{SEARCH_OUTPUT} eq "count")
+ {
+ print "$res matches in $ENV{SEARCH_FILE}\n";
+ }
+ elsif ($ENV{SEARCH_ABORT} and $res =~ /^$ENV{SEARCH_ABORT}/) {
+ die "$res /$search_pattern/ in $ENV{SEARCH_FILE}\n";
+ } else {
+ print "$res /$search_pattern/ in $ENV{SEARCH_FILE}\n";
+ }
EOF
-
-let $SEARCH_RESULT= 1; # Found pattern
-if ($errno)
-{
- let $SEARCH_RESULT= 0; # Did not find pattern
-}
diff --git a/mysql-test/include/shutdown_mysqld.inc b/mysql-test/include/shutdown_mysqld.inc
index fc297256..1684d819 100644
--- a/mysql-test/include/shutdown_mysqld.inc
+++ b/mysql-test/include/shutdown_mysqld.inc
@@ -24,18 +24,15 @@ if ($rpl_inited)
# Write file to make mysql-test-run.pl expect the "crash", but don't start it
--let $_expect_file_name= `select regexp_replace(@@tmpdir, '^.*/','')`
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/$_expect_file_name.expect
---exec echo "wait" > $_expect_file_name
+--write_line wait $_expect_file_name
# Avoid warnings from connection threads that does not have time to exit
--disable_query_log
set @@global.log_warnings=0;
--enable_query_log
---let $server_shutdown_timeout= 60
-if ($VALGRIND_TEST)
-{
- --let $server_shutdown_timeout= 300
-}
+--source include/slow_environ.inc
+--let $server_shutdown_timeout= 60$_timeout_adjustment
if ($shutdown_timeout)
{
diff --git a/mysql-test/include/slow_environ.inc b/mysql-test/include/slow_environ.inc
new file mode 100644
index 00000000..761147fd
--- /dev/null
+++ b/mysql-test/include/slow_environ.inc
@@ -0,0 +1,9 @@
+if (!$slow_environ_check)
+{
+ let $_timeout_adjustment=;
+ if (`select $VALGRIND_TEST + count(*) from information_schema.system_variables where variable_name='have_sanitizer' and global_value like '%SAN%'`)
+ {
+ let $_timeout_adjustment=0;
+ }
+ let $slow_environ_check=1;
+}
diff --git a/mysql-test/include/start_mysqld.inc b/mysql-test/include/start_mysqld.inc
index 6e448cb2..91b06997 100644
--- a/mysql-test/include/start_mysqld.inc
+++ b/mysql-test/include/start_mysqld.inc
@@ -21,7 +21,7 @@ if ($restart_bindir)
if ($restart_parameters)
{
- --exec echo "$restart_cmd: $restart_parameters" > $_expect_file_name
+ --write_line "$restart_cmd: $restart_parameters" $_expect_file_name
if (!$restart_noprint)
{
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
@@ -34,7 +34,7 @@ if ($restart_parameters)
}
if (!$restart_parameters)
{
- --exec echo "$restart_cmd" > $_expect_file_name
+ --write_line "$restart_cmd" $_expect_file_name
if ($restart_noprint < 2)
{
--exec echo "# $restart_cmd"
diff --git a/mysql-test/include/stop_slave_io.inc b/mysql-test/include/stop_slave_io.inc
index ddc83782..a9d97f2f 100644
--- a/mysql-test/include/stop_slave_io.inc
+++ b/mysql-test/include/stop_slave_io.inc
@@ -34,8 +34,17 @@ if (!$rpl_debug)
--disable_query_log
}
-
+let $_enable_warnings=0;
+if ($rpl_allow_error) {
+ if ($ENABLED_WARNINGS) {
+ let $_enable_warnings=1;
+ disable_warnings;
+ }
+}
STOP SLAVE IO_THREAD;
+if ($_enable_warnings) {
+ enable_warnings;
+}
--source include/wait_for_slave_io_to_stop.inc
diff --git a/mysql-test/include/sync_slave_sql_with_io.inc b/mysql-test/include/sync_slave_sql_with_io.inc
index 9efede9a..c16d28ed 100644
--- a/mysql-test/include/sync_slave_sql_with_io.inc
+++ b/mysql-test/include/sync_slave_sql_with_io.inc
@@ -25,11 +25,8 @@
let $_slave_timeout= $slave_timeout;
if (!$_slave_timeout)
{
- let $_slave_timeout= 300;
- if ($VALGRIND_TEST)
- {
- let $_slave_timeout= 1500;
- }
+ source include/slow_environ.inc;
+ let $_slave_timeout= 300$_timeout_adjustment;
}
--let $_master_log_file= query_get_value(SHOW SLAVE STATUS, Master_Log_File, 1)
diff --git a/mysql-test/include/sync_with_master_gtid.inc b/mysql-test/include/sync_with_master_gtid.inc
index 777711b9..0ca2c907 100644
--- a/mysql-test/include/sync_with_master_gtid.inc
+++ b/mysql-test/include/sync_with_master_gtid.inc
@@ -33,11 +33,8 @@
let $_slave_timeout= $slave_timeout;
if (!$_slave_timeout)
{
- let $_slave_timeout= 120;
- if ($VALGRIND_TEST)
- {
- let $_slave_timeout= 1200;
- }
+ source include/slow_environ.inc;
+ let $_slave_timeout= 120$_timeout_adjustment;
}
--let $_result= `SELECT master_gtid_wait('$master_pos', $_slave_timeout)`
diff --git a/mysql-test/include/wait_for_pattern_in_file.inc b/mysql-test/include/wait_for_pattern_in_file.inc
index 52226acd..a5517610 100644
--- a/mysql-test/include/wait_for_pattern_in_file.inc
+++ b/mysql-test/include/wait_for_pattern_in_file.inc
@@ -25,23 +25,23 @@ if (!$_timeout)
}
let $_timeout_counter=`SELECT $_timeout * 10`;
-let SEARCH_SILENT=1;
-
+let SEARCH_ABORT=NOT FOUND;
let $_continue= 1;
+disable_abort_on_error;
while ($_continue)
{
source include/search_pattern_in_file.inc;
- if ($SEARCH_RESULT)
+ if (!$errno)
{
# Found match
let $_continue= 0;
}
- if (!$SEARCH_RESULT)
+ if ($errno)
{
dec $_timeout_counter;
if ($_timeout_counter == 1)
{
- let $SEARCH_SILENT= 0;
+ enable_abort_on_error;
}
if (!$_timeout_counter)
{
@@ -49,8 +49,7 @@ while ($_continue)
}
}
}
-
-let SEARCH_SILENT=0;
+enable_abort_on_error;
--source include/end_include_file.inc
--let $keep_include_silent=$wait_save_keep_include_silent
diff --git a/mysql-test/include/wait_for_slave_param.inc b/mysql-test/include/wait_for_slave_param.inc
index ed81c559..6802cd41 100644
--- a/mysql-test/include/wait_for_slave_param.inc
+++ b/mysql-test/include/wait_for_slave_param.inc
@@ -49,11 +49,8 @@
let $_slave_timeout= $slave_timeout;
if (!$_slave_timeout)
{
- let $_slave_timeout= 300;
- if ($VALGRIND_TEST)
- {
- let $_slave_timeout= 1500;
- }
+ source include/slow_environ.inc;
+ let $_slave_timeout= 300$_timeout_adjustment;
}
let $_slave_param_comparison= $slave_param_comparison;
diff --git a/mysql-test/include/wait_until_connected_again.inc b/mysql-test/include/wait_until_connected_again.inc
index deb6ca13..2b20c780 100644
--- a/mysql-test/include/wait_until_connected_again.inc
+++ b/mysql-test/include/wait_until_connected_again.inc
@@ -11,7 +11,7 @@ let $counter= 5000;
let $mysql_errno= 9999;
while ($mysql_errno)
{
- --error 0,ER_ACCESS_DENIED_ERROR,ER_SERVER_SHUTDOWN,ER_CONNECTION_KILLED,ER_LOCK_WAIT_TIMEOUT,2002,2006,2013,HA_ERR_NO_ENCRYPTION
+ --error 0,ER_ACCESS_DENIED_ERROR,ER_SERVER_SHUTDOWN,ER_CONNECTION_KILLED,ER_LOCK_WAIT_TIMEOUT,2002,2006,2013,HA_ERR_NO_ENCRYPTION,2026
select 1;
dec $counter;
diff --git a/mysql-test/lib/My/Debugger.pm b/mysql-test/lib/My/Debugger.pm
index d129aa09..907638c9 100644
--- a/mysql-test/lib/My/Debugger.pm
+++ b/mysql-test/lib/My/Debugger.pm
@@ -263,6 +263,7 @@ sub pre_setup() {
$::opt_suite_timeout= 24 * 60; # in minutes
$::opt_shutdown_timeout= ($interactive ? 24 * 60 : 3) * 60; # in seconds
$::opt_start_timeout= $::opt_shutdown_timeout; # in seconds
+ $::opt_debug_sync_timeout= 3000; # in seconds
}
}
diff --git a/mysql-test/lib/My/Platform.pm b/mysql-test/lib/My/Platform.pm
index 2b32ef87..f33875e1 100644
--- a/mysql-test/lib/My/Platform.pm
+++ b/mysql-test/lib/My/Platform.pm
@@ -23,7 +23,7 @@ use File::Path;
use Carp;
use base qw(Exporter);
-our @EXPORT= qw(IS_CYGWIN IS_MSYS IS_WINDOWS IS_WIN32PERL IS_AIX
+our @EXPORT= qw(IS_CYGWIN IS_MSYS IS_WINDOWS IS_WIN32PERL IS_AIX IS_MAC
native_path posix_path mixed_path
check_socket_path_length process_alive open_for_append);
@@ -70,6 +70,14 @@ BEGIN {
}
}
+BEGIN {
+ if ($^O eq "darwin") {
+ eval 'sub IS_MAC { 1 }';
+ }
+ else {
+ eval 'sub IS_MAC { 0 }';
+ }
+}
#
# native_path
diff --git a/mysql-test/lib/mtr_report.pm b/mysql-test/lib/mtr_report.pm
index 97c48c19..0c3c45f3 100644
--- a/mysql-test/lib/mtr_report.pm
+++ b/mysql-test/lib/mtr_report.pm
@@ -87,12 +87,16 @@ sub flush_out {
$out_line = "";
}
+use if $^O eq "MSWin32", "threads::shared";
+my $flush_lock :shared;
+
# Print to stdout
sub print_out {
if(IS_WIN32PERL) {
$out_line .= $_[0];
# Flush buffered output on new lines.
if (rindex($_[0], "\n") != -1) {
+ lock($flush_lock);
flush_out();
}
} else {
diff --git a/mysql-test/main/alter_table.result b/mysql-test/main/alter_table.result
index 2e7047f3..949f36e2 100644
--- a/mysql-test/main/alter_table.result
+++ b/mysql-test/main/alter_table.result
@@ -3124,6 +3124,14 @@ CREATE TEMPORARY TABLE t2 LIKE t1;
DROP TEMPORARY TABLE t2;
DROP TABLE t1;
#
+# MDEV-33313 Incorrect error message for "ALTER TABLE ... DROP CONSTRAINT ..., DROP col, DROP col"
+#
+create table t2(id int primary key) engine=innodb;
+create table t1(id int primary key, t2_id int, constraint t1_fk_t2_id foreign key(t2_id) references t2(id)) engine=innodb;
+alter table t1 drop constraint t1_fk_t2_id, drop t2_id, drop t2_id;
+ERROR 42000: Can't DROP COLUMN `t2_id`; check that it exists
+drop table t1, t2;
+#
# End of 10.6 tests
#
#
diff --git a/mysql-test/main/alter_table.test b/mysql-test/main/alter_table.test
index 17d71d8e..5ffa300f 100644
--- a/mysql-test/main/alter_table.test
+++ b/mysql-test/main/alter_table.test
@@ -2407,6 +2407,15 @@ DROP TEMPORARY TABLE t2;
DROP TABLE t1;
--echo #
+--echo # MDEV-33313 Incorrect error message for "ALTER TABLE ... DROP CONSTRAINT ..., DROP col, DROP col"
+--echo #
+create table t2(id int primary key) engine=innodb;
+create table t1(id int primary key, t2_id int, constraint t1_fk_t2_id foreign key(t2_id) references t2(id)) engine=innodb;
+--error ER_CANT_DROP_FIELD_OR_KEY
+alter table t1 drop constraint t1_fk_t2_id, drop t2_id, drop t2_id;
+drop table t1, t2;
+
+--echo #
--echo # End of 10.6 tests
--echo #
diff --git a/mysql-test/main/bootstrap.test b/mysql-test/main/bootstrap.test
index 76d5ed00..68fbc001 100644
--- a/mysql-test/main/bootstrap.test
+++ b/mysql-test/main/bootstrap.test
@@ -74,7 +74,7 @@ SELECT 'bug' as '' FROM INFORMATION_SCHEMA.ENGINES WHERE engine='innodb'
--echo # MDEV-13063 Server crashes in intern_plugin_lock or assertion `plugin_ptr->ref_count == 1' fails in plugin_init
--echo #
--error 1
---exec $MYSQLD_BOOTSTRAP_CMD --myisam_recover_options=NONE
+--exec $MYSQLD_BOOTSTRAP_CMD --myisam_recover_options=NONE 2>/dev/null
--echo #
--echo # MDEV-19349 mysql_install_db: segfault at tmp_file_prefix check
diff --git a/mysql-test/main/column_compression_parts.result b/mysql-test/main/column_compression_parts.result
index fa12217c..5f5539b7 100644
--- a/mysql-test/main/column_compression_parts.result
+++ b/mysql-test/main/column_compression_parts.result
@@ -12,7 +12,6 @@ INSERT INTO t1 VALUES (1,REPEAT('a',100)),(2,REPEAT('v',200)),(3,REPEAT('r',300)
INSERT INTO t1 VALUES (5,REPEAT('k',500)),(6,'April'),(7,7),(8,""),(9,"M"),(10,DEFAULT);
ALTER TABLE t1 ANALYZE PARTITION p1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
ALTER TABLE t1 CHECK PARTITION p2;
Table Op Msg_type Msg_text
diff --git a/mysql-test/main/commit_1innodb.result b/mysql-test/main/commit_1innodb.result
index d090844c..973be9fd 100644
--- a/mysql-test/main/commit_1innodb.result
+++ b/mysql-test/main/commit_1innodb.result
@@ -634,7 +634,7 @@ SUCCESS
drop table t2;
set sql_mode=no_engine_substitution;
create temporary table t2 (a int);
-call p_verify_status_increment(1, 0, 0, 0);
+call p_verify_status_increment(3, 0, 2, 0);
SUCCESS
set sql_mode=default;
@@ -643,8 +643,9 @@ set sql_mode=default;
select f1();
f1()
2
-# Two commits because a binary log record is written
-call p_verify_status_increment(2, 0, 1, 0);
+# Two commits because a binary log record is written, and another two
+# as the function f1() is reloaded after creating temporary table.
+call p_verify_status_increment(4, 0, 3, 0);
SUCCESS
commit;
@@ -715,11 +716,11 @@ SUCCESS
# 25. DDL: DROP TEMPORARY TABLE, does not start a transaction
#
drop temporary table t2;
-call p_verify_status_increment(1, 0, 1, 0);
+call p_verify_status_increment(3, 0, 2, 0);
SUCCESS
commit;
-call p_verify_status_increment(1, 0, 1, 0);
+call p_verify_status_increment(1, 0, 0, 0);
SUCCESS
# 26. Verify that SET AUTOCOMMIT issues an implicit commit
@@ -801,7 +802,7 @@ call p_verify_status_increment(0, 0, 0, 0);
SUCCESS
do (select f1() from t1 where a=2);
-call p_verify_status_increment(2, 2, 2, 2);
+call p_verify_status_increment(4, 2, 4, 2);
SUCCESS
commit;
diff --git a/mysql-test/main/constraints.result b/mysql-test/main/constraints.result
index 143c2232..d2a19040 100644
--- a/mysql-test/main/constraints.result
+++ b/mysql-test/main/constraints.result
@@ -235,3 +235,16 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop procedure sp;
drop table t1;
+#
+# MDEV-33768: Memory leak found in the test main.constraints run with --ps-protocol against a server built with the option -DWITH_PROTECT_STATEMENT_MEMROOT
+# This test case was added by reviewer's request.
+#
+PREPARE stmt FROM 'CREATE TABLE t1 (a INT)';
+EXECUTE stmt;
+DROP TABLE t1;
+EXECUTE stmt;
+EXECUTE stmt;
+ERROR 42S01: Table 't1' already exists
+# Clean up
+DROP TABLE t1;
+DEALLOCATE PREPARE stmt;
diff --git a/mysql-test/main/constraints.test b/mysql-test/main/constraints.test
index 5c673f9b..83f3394d 100644
--- a/mysql-test/main/constraints.test
+++ b/mysql-test/main/constraints.test
@@ -189,3 +189,18 @@ call sp;
show create table t1;
drop procedure sp;
drop table t1;
+
+--echo #
+--echo # MDEV-33768: Memory leak found in the test main.constraints run with --ps-protocol against a server built with the option -DWITH_PROTECT_STATEMENT_MEMROOT
+--echo # This test case was added by reviewer's request.
+--echo #
+PREPARE stmt FROM 'CREATE TABLE t1 (a INT)';
+EXECUTE stmt;
+DROP TABLE t1;
+EXECUTE stmt;
+--error ER_TABLE_EXISTS_ERROR
+EXECUTE stmt;
+
+--echo # Clean up
+DROP TABLE t1;
+DEALLOCATE PREPARE stmt;
diff --git a/mysql-test/main/crash_commit_before.test b/mysql-test/main/crash_commit_before.test
index 93b96de6..30b59ce4 100644
--- a/mysql-test/main/crash_commit_before.test
+++ b/mysql-test/main/crash_commit_before.test
@@ -17,7 +17,7 @@ insert into t1 values(9);
SET GLOBAL debug_dbug="d,crash_commit_before";
# Write file to make mysql-test-run.pl expect crash and restart
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
# Run the crashing query
--error 2013
diff --git a/mysql-test/main/create.result b/mysql-test/main/create.result
index d6c68fdd..9db7d5ca 100644
--- a/mysql-test/main/create.result
+++ b/mysql-test/main/create.result
@@ -1803,7 +1803,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`color` char(32) GENERATED ALWAYS AS (column_get(`dynamic_cols`,1 as char charset latin1)) STORED,
- `cl` char(32) GENERATED ALWAYS AS (column_get(column_add(column_create(1,'blue' AS char charset latin1 ),2,'ttt'),`i` as char charset latin1)) STORED,
+ `cl` char(32) GENERATED ALWAYS AS (column_get(column_add(column_create(1,'blue' AS char charset latin1 collate latin1_swedish_ci ),2,'ttt'),`i` as char charset latin1)) STORED,
`item_name` varchar(32) NOT NULL,
`i` int(11) DEFAULT NULL,
`dynamic_cols` blob DEFAULT NULL,
diff --git a/mysql-test/main/ctype_collate.result b/mysql-test/main/ctype_collate.result
index eafe7ff3..7b713df7 100644
--- a/mysql-test/main/ctype_collate.result
+++ b/mysql-test/main/ctype_collate.result
@@ -780,3 +780,27 @@ string
#
# End of 10.2 tests
#
+#
+# MDEV-33318 ORDER BY COLLATE improperly applied to non-character columns
+#
+set names utf8;
+create table t1 (ts datetime);
+insert t1 values ('2024-01-26 21:37:54'), ('2024-01-26 21:37:54'),
+('2024-01-26 21:37:54'), ('2024-01-26 21:37:54'),
+('2024-01-26 21:37:58'), ('2024-01-26 21:37:58'),
+('2024-01-26 21:37:58'), ('2024-01-26 21:38:02'),
+('2024-01-26 21:38:02'), ('2024-01-26 21:38:02');
+select * from t1 order by ts collate utf8_bin;
+ts
+2024-01-26 21:37:54
+2024-01-26 21:37:54
+2024-01-26 21:37:54
+2024-01-26 21:37:54
+2024-01-26 21:37:58
+2024-01-26 21:37:58
+2024-01-26 21:37:58
+2024-01-26 21:38:02
+2024-01-26 21:38:02
+2024-01-26 21:38:02
+drop table t1;
+# End of 10.6 tests
diff --git a/mysql-test/main/ctype_collate.test b/mysql-test/main/ctype_collate.test
index 2366b130..96ad216d 100644
--- a/mysql-test/main/ctype_collate.test
+++ b/mysql-test/main/ctype_collate.test
@@ -357,3 +357,18 @@ SELECT COLUMN_GET(COLUMN_CREATE(0, 'string'),0 AS CHAR CHARACTER SET latin1 COLL
--echo #
--echo # End of 10.2 tests
--echo #
+
+--echo #
+--echo # MDEV-33318 ORDER BY COLLATE improperly applied to non-character columns
+--echo #
+set names utf8;
+create table t1 (ts datetime);
+insert t1 values ('2024-01-26 21:37:54'), ('2024-01-26 21:37:54'),
+ ('2024-01-26 21:37:54'), ('2024-01-26 21:37:54'),
+ ('2024-01-26 21:37:58'), ('2024-01-26 21:37:58'),
+ ('2024-01-26 21:37:58'), ('2024-01-26 21:38:02'),
+ ('2024-01-26 21:38:02'), ('2024-01-26 21:38:02');
+select * from t1 order by ts collate utf8_bin;
+drop table t1;
+
+--echo # End of 10.6 tests
diff --git a/mysql-test/main/ctype_ucs.result b/mysql-test/main/ctype_ucs.result
index eb1220f9..cab41feb 100644
--- a/mysql-test/main/ctype_ucs.result
+++ b/mysql-test/main/ctype_ucs.result
@@ -6520,5 +6520,25 @@ SELECT 1 COLLATE latin1_swedish_ci;
ERROR 42000: COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'ucs2'
SET NAMES utf8;
#
+# MDEV-33772 Bad SEPARATOR value in GROUP_CONCAT on character set conversion
+#
+SET NAMES utf8mb3, @@collation_connection=ucs2_general_ci;
+CREATE TABLE t1 (c VARCHAR(10)) CHARACTER SET ucs2;
+INSERT INTO t1 VALUES ('a'),('A');
+CREATE OR REPLACE VIEW v1 AS
+SELECT COUNT(*) AS cnt, GROUP_CONCAT(c) AS c1 FROM t1 GROUP BY c;
+SELECT * FROM v1;
+cnt c1
+2 a,A
+SELECT HEX(c1) FROM v1;
+HEX(c1)
+0061002C0041
+SHOW CREATE VIEW v1;
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select count(0) AS `cnt`,group_concat(`t1`.`c` separator ',') AS `c1` from `t1` group by `t1`.`c` utf8mb3 ucs2_general_ci
+DROP VIEW v1;
+DROP TABLE t1;
+SET NAMES utf8mb3;
+#
# End of 10.5 tests
#
diff --git a/mysql-test/main/ctype_ucs.test b/mysql-test/main/ctype_ucs.test
index 993f9be5..93ddcb86 100644
--- a/mysql-test/main/ctype_ucs.test
+++ b/mysql-test/main/ctype_ucs.test
@@ -1194,5 +1194,22 @@ SELECT 1 COLLATE latin1_swedish_ci;
SET NAMES utf8;
--echo #
+--echo # MDEV-33772 Bad SEPARATOR value in GROUP_CONCAT on character set conversion
+--echo #
+
+SET NAMES utf8mb3, @@collation_connection=ucs2_general_ci;
+CREATE TABLE t1 (c VARCHAR(10)) CHARACTER SET ucs2;
+INSERT INTO t1 VALUES ('a'),('A');
+CREATE OR REPLACE VIEW v1 AS
+ SELECT COUNT(*) AS cnt, GROUP_CONCAT(c) AS c1 FROM t1 GROUP BY c;
+SELECT * FROM v1;
+SELECT HEX(c1) FROM v1;
+SHOW CREATE VIEW v1;
+DROP VIEW v1;
+DROP TABLE t1;
+SET NAMES utf8mb3;
+
+
+--echo #
--echo # End of 10.5 tests
--echo #
diff --git a/mysql-test/main/ddl_i18n_koi8r.result b/mysql-test/main/ddl_i18n_koi8r.result
index f588374a..bc4ef5ca 100644
--- a/mysql-test/main/ddl_i18n_koi8r.result
+++ b/mysql-test/main/ddl_i18n_koi8r.result
@@ -719,6 +719,7 @@ ca cb
utf8mb3_general_ci utf8mb3_general_ci
---> Dump of mysqltest1
+/*!999999\- enable the sandbox mode */
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest1` /*!40100 DEFAULT CHARACTER SET cp866 COLLATE cp866_general_ci */;
@@ -795,6 +796,7 @@ ALTER DATABASE `mysqltest1` CHARACTER SET cp866 COLLATE cp866_general_ci ;
---> Dumping mysqltest1 to ddl_i18n_koi8r.sp.mysqltest1.sql
---> Dump of mysqltest2
+/*!999999\- enable the sandbox mode */
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest2` /*!40100 DEFAULT CHARACTER SET cp866 COLLATE cp866_general_ci */;
@@ -1723,6 +1725,7 @@ koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r_general_ci utf8mb3_ge
DELETE FROM mysqltest2.log|
---> Dump of mysqltest1
+/*!999999\- enable the sandbox mode */
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest1` /*!40100 DEFAULT CHARACTER SET cp866 COLLATE cp866_general_ci */;
@@ -1805,6 +1808,7 @@ ALTER DATABASE `mysqltest1` CHARACTER SET cp866 COLLATE cp866_general_ci ;
---> Dumping mysqltest1 to ddl_i18n_koi8r.triggers.mysqltest1.sql
---> Dump of mysqltest2
+/*!999999\- enable the sandbox mode */
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest2` /*!40100 DEFAULT CHARACTER SET cp866 COLLATE cp866_general_ci */;
@@ -2491,6 +2495,7 @@ COLLATION( '') AS c4,
END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
---> Dump of mysqltest1
+/*!999999\- enable the sandbox mode */
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest1` /*!40100 DEFAULT CHARACTER SET cp866 COLLATE cp866_general_ci */;
@@ -2558,6 +2563,7 @@ DELIMITER ;
---> Dumping mysqltest1 to ddl_i18n_koi8r.events.mysqltest1.sql
---> Dump of mysqltest2
+/*!999999\- enable the sandbox mode */
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest2` /*!40100 DEFAULT CHARACTER SET cp866 COLLATE cp866_general_ci */;
diff --git a/mysql-test/main/ddl_i18n_utf8.result b/mysql-test/main/ddl_i18n_utf8.result
index cb57bc5e..9561c914 100644
--- a/mysql-test/main/ddl_i18n_utf8.result
+++ b/mysql-test/main/ddl_i18n_utf8.result
@@ -719,6 +719,7 @@ ca cb
utf8mb3_general_ci utf8mb3_general_ci
---> Dump of mysqltest1
+/*!999999\- enable the sandbox mode */
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest1` /*!40100 DEFAULT CHARACTER SET cp866 COLLATE cp866_general_ci */;
@@ -795,6 +796,7 @@ ALTER DATABASE `mysqltest1` CHARACTER SET cp866 COLLATE cp866_general_ci ;
---> Dumping mysqltest1 to ddl_i18n_utf8sp.mysqltest1.sql
---> Dump of mysqltest2
+/*!999999\- enable the sandbox mode */
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest2` /*!40100 DEFAULT CHARACTER SET cp866 COLLATE cp866_general_ci */;
@@ -1723,6 +1725,7 @@ utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb
DELETE FROM mysqltest2.log|
---> Dump of mysqltest1
+/*!999999\- enable the sandbox mode */
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest1` /*!40100 DEFAULT CHARACTER SET cp866 COLLATE cp866_general_ci */;
@@ -1805,6 +1808,7 @@ ALTER DATABASE `mysqltest1` CHARACTER SET cp866 COLLATE cp866_general_ci ;
---> Dumping mysqltest1 to ddl_i18n_utf8triggers.mysqltest1.sql
---> Dump of mysqltest2
+/*!999999\- enable the sandbox mode */
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest2` /*!40100 DEFAULT CHARACTER SET cp866 COLLATE cp866_general_ci */;
@@ -2491,6 +2495,7 @@ COLLATION( 'текст') AS c4,
END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
---> Dump of mysqltest1
+/*!999999\- enable the sandbox mode */
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest1` /*!40100 DEFAULT CHARACTER SET cp866 COLLATE cp866_general_ci */;
@@ -2558,6 +2563,7 @@ DELIMITER ;
---> Dumping mysqltest1 to ddl_i18n_utf8events.mysqltest1.sql
---> Dump of mysqltest2
+/*!999999\- enable the sandbox mode */
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest2` /*!40100 DEFAULT CHARACTER SET cp866 COLLATE cp866_general_ci */;
diff --git a/mysql-test/main/deadlock_innodb.result b/mysql-test/main/deadlock_innodb.result
index 09958bf0..9236f21c 100644
--- a/mysql-test/main/deadlock_innodb.result
+++ b/mysql-test/main/deadlock_innodb.result
@@ -89,11 +89,6 @@ id x
300 300
connection con2;
update t2 set a=2 where b = 0;
-select * from t2;
-b a
-0 2
-1 20
-2 30
update t1 set x=2 where id = 0;
connection con1;
update t1 set x=1 where id = 0;
diff --git a/mysql-test/main/derived_split_innodb.result b/mysql-test/main/derived_split_innodb.result
index b9ee3f0a..6346b44d 100644
--- a/mysql-test/main/derived_split_innodb.result
+++ b/mysql-test/main/derived_split_innodb.result
@@ -877,5 +877,62 @@ SELECT * FROM t1 WHERE t1.a IN (SELECT b FROM
(SELECT t2.b FROM t2 WHERE NOT EXISTS (SELECT 1 FROM t3) GROUP BY b) sq);
a
DROP TABLE t1, t2, t3;
+#
+# MDEV-23878: Wrong result with semi-join and splittable derived table
+#
+CREATE TABLE t1 (
+groupId int,
+id int unsigned,
+PRIMARY KEY (groupId, id)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+INSERT INTO t1 VALUES
+(8,1),(8,2),(8,3),(8,4),(8,5),(8,6),(8,7),(8,8),(8,9),(8,10),
+(8,11),(8,12),(8,13),(8,14),(8,15),(8,16),(8,17),(8,18),(8,19);
+set statement in_predicate_conversion_threshold=2 for SELECT COUNT(*) AS cnt FROM t1
+JOIN
+(
+SELECT groupId, id
+FROM t1
+WHERE id IN (1,2,3,4,5,6)
+GROUP BY groupId, id
+) AS t2
+USING (groupId, id)
+WHERE id IN (1,2,3,4,5,6,7,8);
+cnt
+6
+set statement in_predicate_conversion_threshold=2 for EXPLAIN SELECT COUNT(*) AS cnt FROM t1
+JOIN
+(
+SELECT groupId, id
+FROM t1
+WHERE id IN (1,2,3,4,5,6)
+GROUP BY groupId, id
+) AS t2
+USING (groupId, id)
+WHERE id IN (1,2,3,4,5,6,7,8);
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 index PRIMARY PRIMARY 8 NULL 19 Using index
+1 PRIMARY <subquery4> eq_ref distinct_key distinct_key 4 func 1 Using where
+1 PRIMARY <derived3> ref key0 key0 8 test.t1.groupId,test.t1.id 2
+4 MATERIALIZED <derived5> ALL NULL NULL NULL NULL 8
+5 DERIVED NULL NULL NULL NULL NULL NULL NULL No tables used
+3 LATERAL DERIVED t1 eq_ref PRIMARY PRIMARY 8 test.t1.groupId,test.t1.id 1 Using index
+3 LATERAL DERIVED <derived7> ref key0 key0 4 test.t1.id 2 Using where; FirstMatch(t1)
+7 DERIVED NULL NULL NULL NULL NULL NULL NULL No tables used
+set statement optimizer_switch='split_materialized=off, loosescan=off' for
+set statement in_predicate_conversion_threshold=2 for
+SELECT COUNT(*) AS cnt FROM t1
+JOIN
+(
+SELECT groupId, id
+FROM t1
+WHERE id IN (1,2,3,4,5,6)
+GROUP BY groupId, id
+) AS t2
+USING (groupId, id)
+WHERE id IN (1,2,3,4,5,6,7,8);
+cnt
+6
+DROP TABLE t1;
# End of 10.4 tests
SET GLOBAL innodb_stats_persistent=@save_innodb_stats_persistent;
diff --git a/mysql-test/main/derived_split_innodb.test b/mysql-test/main/derived_split_innodb.test
index 075d6e81..67db02f7 100644
--- a/mysql-test/main/derived_split_innodb.test
+++ b/mysql-test/main/derived_split_innodb.test
@@ -505,6 +505,48 @@ SELECT * FROM t1 WHERE t1.a IN (SELECT b FROM
DROP TABLE t1, t2, t3;
+--echo #
+--echo # MDEV-23878: Wrong result with semi-join and splittable derived table
+--echo #
+
+CREATE TABLE t1 (
+ groupId int,
+ id int unsigned,
+ PRIMARY KEY (groupId, id)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+INSERT INTO t1 VALUES
+ (8,1),(8,2),(8,3),(8,4),(8,5),(8,6),(8,7),(8,8),(8,9),(8,10),
+ (8,11),(8,12),(8,13),(8,14),(8,15),(8,16),(8,17),(8,18),(8,19);
+
+let $query=
+SELECT COUNT(*) AS cnt FROM t1
+JOIN
+(
+ SELECT groupId, id
+ FROM t1
+ WHERE id IN (1,2,3,4,5,6)
+ GROUP BY groupId, id
+) AS t2
+USING (groupId, id)
+WHERE id IN (1,2,3,4,5,6,7,8);
+
+let $tvc_conversion_threshold =
+ set statement in_predicate_conversion_threshold=2 for;
+
+eval $tvc_conversion_threshold $query;
+eval $tvc_conversion_threshold EXPLAIN $query;
+
+let $no_split_materialized_loosescan=
+ set statement optimizer_switch='split_materialized=off, loosescan=off' for;
+
+# Correct result with split materializied optimization disabled
+eval $no_split_materialized_loosescan
+ $tvc_conversion_threshold
+ $query;
+
+DROP TABLE t1;
+
--echo # End of 10.4 tests
SET GLOBAL innodb_stats_persistent=@save_innodb_stats_persistent;
diff --git a/mysql-test/main/derived_view.result b/mysql-test/main/derived_view.result
index 3ac06c20..432d4e7d 100644
--- a/mysql-test/main/derived_view.result
+++ b/mysql-test/main/derived_view.result
@@ -4291,8 +4291,74 @@ a
drop table t1, t2;
drop view v1;
drop procedure aproc;
+#
+# MDEV-31305: Aggregation over materialized derived table
+#
+CREATE VIEW v AS
+SELECT seq1.seq AS dim1, seq2.seq AS dim2, seq3.seq AS dim3,
+FLOOR(RAND(13) * 5) AS p
+FROM seq_100_to_105 seq1
+JOIN seq_10_to_15 seq2
+JOIN seq_1_to_5 seq3;
+SELECT v.*, SUM(p) from v;
+dim1 dim2 dim3 p SUM(p)
+100 10 1 2 371
+SELECT d.*, SUM(p)
+FROM (
+SELECT seq1.seq AS dim1, seq2.seq AS dim2, seq3.seq AS dim3,
+FLOOR(RAND(13) * 5) AS p
+FROM seq_100_to_105 seq1
+JOIN seq_10_to_15 seq2
+JOIN seq_1_to_5 seq3
+) d;
+dim1 dim2 dim3 p SUM(p)
+100 10 1 2 371
+WITH demo AS
+(
+SELECT seq1.seq AS dim1, seq2.seq AS dim2, seq3.seq AS dim3,
+FLOOR(RAND(13) * 5) AS p
+FROM seq_100_to_105 seq1
+JOIN seq_10_to_15 seq2
+JOIN seq_1_to_5 seq3
+)
+SELECT d.*, SUM(p) FROM demo d;
+dim1 dim2 dim3 p SUM(p)
+100 10 1 2 371
+DROP VIEW v;
# End of 10.4 tests
#
+# MDEV-31277: 2-nd execution of PS to select from materialized view
+# specified as left join whose inner table is mergeable
+# derived containing a constant column
+#
+create table t1 (
+Election int(10) unsigned NOT NULL
+) engine=MyISAM;
+insert into t1 (Election) values (1), (4);
+create table t2 (
+VoteID int(10),
+ElectionID int(10),
+UserID int(10)
+);
+insert into t2 (ElectionID, UserID) values (2, 30), (3, 30);
+create view v1 as select * from t1
+left join ( select 'Y' AS Voted, ElectionID from t2 ) AS T
+on T.ElectionID = t1.Election
+limit 9;
+prepare stmt1 from "select * from v1";
+execute stmt1;
+Election Voted ElectionID
+1 NULL NULL
+4 NULL NULL
+execute stmt1;
+Election Voted ElectionID
+1 NULL NULL
+4 NULL NULL
+deallocate prepare stmt1;
+drop view v1;
+drop table t1, t2;
+# End of 10.5 tests
+#
# MDEV-31143: view with ORDER BY used in query with rownum() in WHERE
#
create table t1 (id int primary key);
diff --git a/mysql-test/main/derived_view.test b/mysql-test/main/derived_view.test
index ddead30a..0f2c8d14 100644
--- a/mysql-test/main/derived_view.test
+++ b/mysql-test/main/derived_view.test
@@ -2795,9 +2795,81 @@ drop table t1, t2;
drop view v1;
drop procedure aproc;
+--echo #
+--echo # MDEV-31305: Aggregation over materialized derived table
+--echo #
+
+--source include/have_sequence.inc
+
+CREATE VIEW v AS
+ SELECT seq1.seq AS dim1, seq2.seq AS dim2, seq3.seq AS dim3,
+ FLOOR(RAND(13) * 5) AS p
+ FROM seq_100_to_105 seq1
+ JOIN seq_10_to_15 seq2
+ JOIN seq_1_to_5 seq3;
+
+SELECT v.*, SUM(p) from v;
+
+SELECT d.*, SUM(p)
+ FROM (
+ SELECT seq1.seq AS dim1, seq2.seq AS dim2, seq3.seq AS dim3,
+ FLOOR(RAND(13) * 5) AS p
+ FROM seq_100_to_105 seq1
+ JOIN seq_10_to_15 seq2
+ JOIN seq_1_to_5 seq3
+) d;
+
+WITH demo AS
+(
+ SELECT seq1.seq AS dim1, seq2.seq AS dim2, seq3.seq AS dim3,
+ FLOOR(RAND(13) * 5) AS p
+ FROM seq_100_to_105 seq1
+ JOIN seq_10_to_15 seq2
+ JOIN seq_1_to_5 seq3
+)
+SELECT d.*, SUM(p) FROM demo d;
+
+DROP VIEW v;
+
--echo # End of 10.4 tests
--echo #
+--echo # MDEV-31277: 2-nd execution of PS to select from materialized view
+--echo # specified as left join whose inner table is mergeable
+--echo # derived containing a constant column
+--echo #
+
+create table t1 (
+ Election int(10) unsigned NOT NULL
+) engine=MyISAM;
+
+insert into t1 (Election) values (1), (4);
+
+create table t2 (
+ VoteID int(10),
+ ElectionID int(10),
+ UserID int(10)
+);
+
+insert into t2 (ElectionID, UserID) values (2, 30), (3, 30);
+create view v1 as select * from t1
+ left join ( select 'Y' AS Voted, ElectionID from t2 ) AS T
+ on T.ElectionID = t1.Election
+limit 9;
+
+prepare stmt1 from "select * from v1";
+
+execute stmt1;
+execute stmt1;
+
+deallocate prepare stmt1;
+
+drop view v1;
+drop table t1, t2;
+
+--echo # End of 10.5 tests
+
+--echo #
--echo # MDEV-31143: view with ORDER BY used in query with rownum() in WHERE
--echo #
diff --git a/mysql-test/main/distinct_notembedded.result b/mysql-test/main/distinct_notembedded.result
new file mode 100644
index 00000000..df81fe1c
--- /dev/null
+++ b/mysql-test/main/distinct_notembedded.result
@@ -0,0 +1,322 @@
+#
+# MDEV-30660 COUNT DISTINCT seems unnecessarily slow when run on a PK
+#
+set @save_optimizer_trace = @@optimizer_trace;
+SET optimizer_trace='enabled=on';
+CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b INT NOT NULL);
+INSERT INTO t1 VALUES (1,1), (2,1), (3,1);
+# Optimization is applied (aggregator=simple):
+SELECT COUNT(DISTINCT a) FROM t1;
+COUNT(DISTINCT a)
+3
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "count(distinct t1.a)",
+ "aggregator_type": "simple"
+ }
+]
+SELECT AVG(DISTINCT a), SUM(DISTINCT b) FROM t1;
+AVG(DISTINCT a) SUM(DISTINCT b)
+2.0000 1
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "avg(distinct t1.a)",
+ "aggregator_type": "simple"
+ },
+ {
+ "function": "sum(distinct t1.b)",
+ "aggregator_type": "distinct"
+ }
+]
+# Only `a` is unique but it's enough to eliminate DISTINCT:
+SELECT COUNT(DISTINCT b, a) FROM t1;
+COUNT(DISTINCT b, a)
+3
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "count(distinct t1.b,t1.a)",
+ "aggregator_type": "simple"
+ }
+]
+SELECT COUNT(DISTINCT a, a + b) FROM t1;
+COUNT(DISTINCT a, a + b)
+3
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "count(distinct t1.a,t1.a + t1.b)",
+ "aggregator_type": "simple"
+ }
+]
+SELECT SUM(DISTINCT a), AVG(DISTINCT a), COUNT(DISTINCT a) FROM t1 WHERE a > 1;
+SUM(DISTINCT a) AVG(DISTINCT a) COUNT(DISTINCT a)
+5 2.5000 2
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "sum(distinct t1.a)",
+ "aggregator_type": "simple"
+ },
+ {
+ "function": "avg(distinct t1.a)",
+ "aggregator_type": "simple"
+ },
+ {
+ "function": "count(distinct t1.a)",
+ "aggregator_type": "simple"
+ }
+]
+# Optimization is not applied 'cause function argument is not a field
+# (aggregator=distinct):
+SELECT SUM(DISTINCT a + b) FROM t1;
+SUM(DISTINCT a + b)
+9
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "sum(distinct t1.a + t1.b)",
+ "aggregator_type": "distinct"
+ }
+]
+SELECT COUNT(DISTINCT b) FROM t1;
+COUNT(DISTINCT b)
+1
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "count(distinct t1.b)",
+ "aggregator_type": "distinct"
+ }
+]
+SELECT AVG(DISTINCT b / a) FROM t1;
+AVG(DISTINCT b / a)
+0.61110000
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "avg(distinct t1.b / t1.a)",
+ "aggregator_type": "distinct"
+ }
+]
+EXPLAIN SELECT COUNT(DISTINCT (SELECT a)) FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 index NULL PRIMARY 4 NULL 3 Using index
+2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "count(distinct (/* select#2 */ select t1.a))",
+ "aggregator_type": "distinct"
+ }
+]
+CREATE TABLE t2 (a INT);
+INSERT INTO t2 VALUES (1), (2);
+# Optimization is not applied 'cause there is more than one table
+SELECT COUNT(DISTINCT t1.a) FROM t1, t2;
+COUNT(DISTINCT t1.a)
+3
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "count(distinct t1.a)",
+ "aggregator_type": "distinct"
+ }
+]
+SELECT AVG(DISTINCT t1.a) FROM t1, t2;
+AVG(DISTINCT t1.a)
+2.0000
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "avg(distinct t1.a)",
+ "aggregator_type": "distinct"
+ }
+]
+# Const tables, optimization is applied
+SELECT COUNT(DISTINCT a) FROM t1, (SELECT 1) AS t2;
+COUNT(DISTINCT a)
+3
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "count(distinct t1.a)",
+ "aggregator_type": "simple"
+ }
+]
+SELECT AVG(DISTINCT t1.a) FROM (SELECT 1 AS a) AS t2, t1, (SELECT 2 AS a) AS t3;
+AVG(DISTINCT t1.a)
+2.0000
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "avg(distinct t1.a)",
+ "aggregator_type": "simple"
+ }
+]
+SELECT COUNT(DISTINCT a) FROM t1, (SELECT 1 UNION SELECT 2) AS t2;
+COUNT(DISTINCT a)
+3
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "count(distinct t1.a)",
+ "aggregator_type": "distinct"
+ }
+]
+# Unique index on two columns
+CREATE TABLE t3 (a INT NOT NULL, b INT NOT NULL);
+INSERT INTO t3 VALUES (1,1), (1,2), (1,3), (2,1), (2,2), (3,1), (3,2);
+CREATE UNIQUE INDEX t3_a_b ON t3 (a, b);
+# Optimization is applied:
+SELECT COUNT(DISTINCT a, b) FROM t3;
+COUNT(DISTINCT a, b)
+7
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "count(distinct t3.a,t3.b)",
+ "aggregator_type": "simple"
+ }
+]
+SELECT COUNT(DISTINCT b, a) FROM t3;
+COUNT(DISTINCT b, a)
+7
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "count(distinct t3.b,t3.a)",
+ "aggregator_type": "simple"
+ }
+]
+SELECT COUNT(DISTINCT b, a) FROM t3 WHERE a < 3;
+COUNT(DISTINCT b, a)
+5
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "count(distinct t3.b,t3.a)",
+ "aggregator_type": "simple"
+ }
+]
+# Optimization is applied to one of the functions:
+SELECT COUNT(DISTINCT b), SUM(DISTINCT a), SUM(DISTINCT a + b) FROM t3 GROUP BY a;
+COUNT(DISTINCT b) SUM(DISTINCT a) SUM(DISTINCT a + b)
+3 1 9
+2 2 7
+2 3 9
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "count(distinct t3.b)",
+ "aggregator_type": "simple"
+ },
+ {
+ "function": "sum(distinct t3.a)",
+ "aggregator_type": "distinct"
+ },
+ {
+ "function": "sum(distinct t3.a + t3.b)",
+ "aggregator_type": "distinct"
+ }
+]
+# Can't apply optimization 'cause GROUP BY argument is not a field:
+SELECT COUNT(DISTINCT b) FROM t3 GROUP BY a+b;
+COUNT(DISTINCT b)
+1
+2
+3
+1
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "count(distinct t3.b)",
+ "aggregator_type": "distinct"
+ }
+]
+# Test merged view
+CREATE VIEW v1 AS SELECT * FROM t1;
+# Optimization is applied
+SELECT COUNT(DISTINCT a, b) FROM v1;
+COUNT(DISTINCT a, b)
+3
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "count(distinct t1.a,t1.b)",
+ "aggregator_type": "simple"
+ }
+]
+# GROUP_CONCAT implements non-standard distinct aggregator
+SELECT GROUP_CONCAT(b) FROM t1;
+GROUP_CONCAT(b)
+1,1,1
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "group_concat(t1.b separator ',')",
+ "aggregator_type": "simple"
+ }
+]
+SELECT GROUP_CONCAT(DISTINCT b) FROM t1;
+GROUP_CONCAT(DISTINCT b)
+1
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.prepare_sum_aggregators')) AS JS
+FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+JS
+[
+ {
+ "function": "group_concat(distinct t1.b separator ',')",
+ "aggregator_type": "distinct"
+ }
+]
+DROP TABLE t1, t2, t3;
+DROP VIEW v1;
+SET optimizer_trace = @save_optimizer_trace;
+#
+# end of 10.5 tests
+#
diff --git a/mysql-test/main/distinct_notembedded.test b/mysql-test/main/distinct_notembedded.test
new file mode 100644
index 00000000..9ef2f459
--- /dev/null
+++ b/mysql-test/main/distinct_notembedded.test
@@ -0,0 +1,109 @@
+# Embedded doesn't have optimizer trace:
+--source include/not_embedded.inc
+--source include/have_sequence.inc
+
+--echo #
+--echo # MDEV-30660 COUNT DISTINCT seems unnecessarily slow when run on a PK
+--echo #
+
+set @save_optimizer_trace = @@optimizer_trace;
+SET optimizer_trace='enabled=on';
+let $trace=
+SELECT JSON_DETAILED(JSON_EXTRACT(trace, '\$**.prepare_sum_aggregators')) AS JS
+ FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
+
+CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b INT NOT NULL);
+INSERT INTO t1 VALUES (1,1), (2,1), (3,1);
+
+--echo # Optimization is applied (aggregator=simple):
+SELECT COUNT(DISTINCT a) FROM t1;
+eval $trace;
+
+SELECT AVG(DISTINCT a), SUM(DISTINCT b) FROM t1;
+eval $trace;
+
+--echo # Only `a` is unique but it's enough to eliminate DISTINCT:
+SELECT COUNT(DISTINCT b, a) FROM t1;
+eval $trace;
+
+SELECT COUNT(DISTINCT a, a + b) FROM t1;
+eval $trace;
+
+SELECT SUM(DISTINCT a), AVG(DISTINCT a), COUNT(DISTINCT a) FROM t1 WHERE a > 1;
+eval $trace;
+
+--echo # Optimization is not applied 'cause function argument is not a field
+--echo # (aggregator=distinct):
+SELECT SUM(DISTINCT a + b) FROM t1;
+eval $trace;
+
+SELECT COUNT(DISTINCT b) FROM t1;
+eval $trace;
+
+SELECT AVG(DISTINCT b / a) FROM t1;
+eval $trace;
+
+EXPLAIN SELECT COUNT(DISTINCT (SELECT a)) FROM t1;
+eval $trace;
+
+CREATE TABLE t2 (a INT);
+INSERT INTO t2 VALUES (1), (2);
+
+--echo # Optimization is not applied 'cause there is more than one table
+SELECT COUNT(DISTINCT t1.a) FROM t1, t2;
+eval $trace;
+
+SELECT AVG(DISTINCT t1.a) FROM t1, t2;
+eval $trace;
+
+--echo # Const tables, optimization is applied
+SELECT COUNT(DISTINCT a) FROM t1, (SELECT 1) AS t2;
+eval $trace;
+
+SELECT AVG(DISTINCT t1.a) FROM (SELECT 1 AS a) AS t2, t1, (SELECT 2 AS a) AS t3;
+eval $trace;
+
+SELECT COUNT(DISTINCT a) FROM t1, (SELECT 1 UNION SELECT 2) AS t2;
+eval $trace;
+
+--echo # Unique index on two columns
+CREATE TABLE t3 (a INT NOT NULL, b INT NOT NULL);
+INSERT INTO t3 VALUES (1,1), (1,2), (1,3), (2,1), (2,2), (3,1), (3,2);
+CREATE UNIQUE INDEX t3_a_b ON t3 (a, b);
+--echo # Optimization is applied:
+SELECT COUNT(DISTINCT a, b) FROM t3;
+eval $trace;
+
+SELECT COUNT(DISTINCT b, a) FROM t3;
+eval $trace;
+
+SELECT COUNT(DISTINCT b, a) FROM t3 WHERE a < 3;
+eval $trace;
+
+--echo # Optimization is applied to one of the functions:
+SELECT COUNT(DISTINCT b), SUM(DISTINCT a), SUM(DISTINCT a + b) FROM t3 GROUP BY a;
+eval $trace;
+
+--echo # Can't apply optimization 'cause GROUP BY argument is not a field:
+SELECT COUNT(DISTINCT b) FROM t3 GROUP BY a+b;
+eval $trace;
+
+--echo # Test merged view
+CREATE VIEW v1 AS SELECT * FROM t1;
+--echo # Optimization is applied
+SELECT COUNT(DISTINCT a, b) FROM v1;
+eval $trace;
+
+--echo # GROUP_CONCAT implements non-standard distinct aggregator
+SELECT GROUP_CONCAT(b) FROM t1;
+eval $trace;
+
+SELECT GROUP_CONCAT(DISTINCT b) FROM t1;
+eval $trace;
+
+DROP TABLE t1, t2, t3;
+DROP VIEW v1;
+SET optimizer_trace = @save_optimizer_trace;
+--echo #
+--echo # end of 10.5 tests
+--echo #
diff --git a/mysql-test/main/dyncol.result b/mysql-test/main/dyncol.result
index 88cec1c5..64ce60b4 100644
--- a/mysql-test/main/dyncol.result
+++ b/mysql-test/main/dyncol.result
@@ -150,7 +150,7 @@ select hex(COLUMN_CREATE(1, "afaf" AS char character set utf8,
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select hex(column_create(1,'afaf' AS char charset utf8mb3 ,2,1212 AS unsigned int,3,1212 AS int,4,12.12 AS double,4 + 1,12.12 AS decimal,6,'2011-04-05' AS date,7,'- 0:45:49.000001' AS time,8,'2011-04-05 0:45:49.000001' AS datetime)) AS `ex`
+Note 1003 select hex(column_create(1,'afaf' AS char charset utf8mb3 collate utf8mb3_general_ci ,2,1212 AS unsigned int,3,1212 AS int,4,12.12 AS double,4 + 1,12.12 AS decimal,6,'2011-04-05' AS date,7,'- 0:45:49.000001' AS time,8,'2011-04-05 0:45:49.000001' AS datetime)) AS `ex`
select hex(column_create(1, 0.0 AS decimal));
hex(column_create(1, 0.0 AS decimal))
000100010004
@@ -354,7 +354,7 @@ select column_get(column_create(1, "1212" AS char charset utf8), 1 as char chars
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select column_get(column_create(1,'1212' AS char charset utf8mb3 ),1 as char charset utf8mb3) AS `ex`
+Note 1003 select column_get(column_create(1,'1212' AS char charset utf8mb3 collate utf8mb3_general_ci ),1 as char charset utf8mb3) AS `ex`
select column_get(column_create(1, 1212 AS unsigned int), 1 as char charset utf8) as ex;
ex
1212
@@ -414,7 +414,7 @@ select column_get(column_create(1, "1212" AS char charset utf8), 1 as char chars
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select column_get(column_create(1,'1212' AS char charset utf8mb3 ),1 as char charset binary) AS `ex`
+Note 1003 select column_get(column_create(1,'1212' AS char charset utf8mb3 collate utf8mb3_general_ci ),1 as char charset binary) AS `ex`
#
# column get real
#
@@ -1882,7 +1882,7 @@ drop table t1;
create view v1 as select column_get(column_add(column_create(1 , 'blue' as char), 2, 'ttt'), 1 as char);
show create view v1;
View Create View character_set_client collation_connection
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select column_get(column_add(column_create(1,'blue' AS char charset utf8mb3 ),2,'ttt'),1 as char charset utf8mb3) AS `Name_exp_1` utf8mb3 utf8mb3_general_ci
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select column_get(column_add(column_create(1,'blue' AS char charset utf8mb3 collate utf8mb3_general_ci ),2,'ttt'),1 as char charset utf8mb3) AS `Name_exp_1` utf8mb3 utf8mb3_general_ci
select * from v1;
Name_exp_1
blue
@@ -1949,3 +1949,23 @@ ex
#
# End of 10.4 tests
#
+#
+# Start of 10.5 tests
+#
+#
+# Start of 10.5 tests
+#
+#
+# MDEV-33788 HEX(COLUMN_CREATE(.. AS CHAR ...)) fails with --view-protocol
+#
+SELECT hex(column_create(1,'a' AS CHAR CHARACTER SET utf8mb3 COLLATE utf8mb3_bin)) AS ex;
+ex
+0001000100035361
+SELECT hex(column_add(column_create(
+1, 'a' AS CHAR CHARACTER SET utf8mb3 COLLATE utf8mb3_bin),
+2, 'b' AS CHAR CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci)) AS ex;
+ex
+00020001000302001353612162
+#
+# Start of 10.5 tests
+#
diff --git a/mysql-test/main/dyncol.test b/mysql-test/main/dyncol.test
index 8b316421..1343025d 100644
--- a/mysql-test/main/dyncol.test
+++ b/mysql-test/main/dyncol.test
@@ -1000,3 +1000,24 @@ SELECT HEX(COLUMN_ADD(COLUMN_CREATE(1,10),2,NULL,1,NULL)) as ex;
--echo #
--echo # End of 10.4 tests
--echo #
+
+--echo #
+--echo # Start of 10.5 tests
+--echo #
+
+--echo #
+--echo # Start of 10.5 tests
+--echo #
+
+--echo #
+--echo # MDEV-33788 HEX(COLUMN_CREATE(.. AS CHAR ...)) fails with --view-protocol
+--echo #
+
+SELECT hex(column_create(1,'a' AS CHAR CHARACTER SET utf8mb3 COLLATE utf8mb3_bin)) AS ex;
+SELECT hex(column_add(column_create(
+ 1, 'a' AS CHAR CHARACTER SET utf8mb3 COLLATE utf8mb3_bin),
+ 2, 'b' AS CHAR CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci)) AS ex;
+
+--echo #
+--echo # Start of 10.5 tests
+--echo #
diff --git a/mysql-test/main/empty_server_name-8224.test b/mysql-test/main/empty_server_name-8224.test
index 5c5140be..31760713 100644
--- a/mysql-test/main/empty_server_name-8224.test
+++ b/mysql-test/main/empty_server_name-8224.test
@@ -3,10 +3,10 @@
#
--source include/not_embedded.inc
create server '' foreign data wrapper w2 options (host '127.0.0.1');
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
-- enable_reconnect
-- source include/wait_until_connected_again.inc
diff --git a/mysql-test/main/empty_string_literal.result b/mysql-test/main/empty_string_literal.result
index 732e8e6d..447bad8a 100644
--- a/mysql-test/main/empty_string_literal.result
+++ b/mysql-test/main/empty_string_literal.result
@@ -64,7 +64,7 @@ SET sql_mode=@mode;
# Test litteral concat
#
SELECT 'a' 'b';
-a
+ab
ab
SELECT 'a' '';
a
@@ -76,13 +76,13 @@ SELECT '' '';
NULL
NULL
SELECT '' 'b' 'c';
-b
+bc
bc
SELECT '' '' 'c';
c
c
SELECT 'a' '' 'c';
-a
+ac
ac
SELECT 'a' '' '';
a
@@ -208,3 +208,23 @@ t1 CREATE TABLE `t1` (
KEY `a` (`a`,`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
+set sql_mode= default;
+#
+# MDEV-33460 select '123' 'x'; unexpected result
+#
+SELECT '';
+
+
+SELECT '' 'b' 'c';
+bc
+bc
+SELECT '' '' 'c';
+c
+c
+SELECT 'a' '' 'c';
+ac
+ac
+SELECT 'a' '' '';
+a
+a
+# End of 10.5 test
diff --git a/mysql-test/main/empty_string_literal.test b/mysql-test/main/empty_string_literal.test
index 9174a771..e3ae0094 100644
--- a/mysql-test/main/empty_string_literal.test
+++ b/mysql-test/main/empty_string_literal.test
@@ -25,3 +25,18 @@ flush tables;
update t1 set a = 2;
show create table t1;
drop table t1;
+set sql_mode= default;
+
+--echo #
+--echo # MDEV-33460 select '123' 'x'; unexpected result
+--echo #
+
+--disable_view_protocol
+SELECT '';
+--enable_view_protocol
+SELECT '' 'b' 'c';
+SELECT '' '' 'c';
+SELECT 'a' '' 'c';
+SELECT 'a' '' '';
+
+--echo # End of 10.5 test
diff --git a/mysql-test/main/func_encrypt_nossl.result b/mysql-test/main/func_encrypt_nossl.result
index b28d4811..7afc9fa6 100644
--- a/mysql-test/main/func_encrypt_nossl.result
+++ b/mysql-test/main/func_encrypt_nossl.result
@@ -3,56 +3,56 @@ des_encrypt("test", 'akeystr')
NULL
Warnings:
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
-Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
+Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
select des_encrypt("test", 1);
des_encrypt("test", 1)
NULL
Warnings:
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
-Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
+Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
select des_encrypt("test", 9);
des_encrypt("test", 9)
NULL
Warnings:
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
-Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
+Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
select des_encrypt("test", 100);
des_encrypt("test", 100)
NULL
Warnings:
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
-Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
+Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
select des_encrypt("test", NULL);
des_encrypt("test", NULL)
NULL
Warnings:
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
-Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
+Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
select des_encrypt(NULL, NULL);
des_encrypt(NULL, NULL)
NULL
Warnings:
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
-Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
+Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
select des_decrypt("test", 'anotherkeystr');
des_decrypt("test", 'anotherkeystr')
NULL
Warnings:
Note 1287 'des_decrypt' is deprecated and will be removed in a future release
-Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
+Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
select des_decrypt(1, 1);
des_decrypt(1, 1)
NULL
Warnings:
Note 1287 'des_decrypt' is deprecated and will be removed in a future release
-Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
+Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
select des_decrypt(des_encrypt("test", 'thekey'));
des_decrypt(des_encrypt("test", 'thekey'))
NULL
Warnings:
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
Note 1287 'des_decrypt' is deprecated and will be removed in a future release
-Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
+Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
select hex(des_encrypt("hello")),des_decrypt(des_encrypt("hello"));
hex(des_encrypt("hello")) des_decrypt(des_encrypt("hello"))
NULL NULL
@@ -60,22 +60,22 @@ Warnings:
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
Note 1287 'des_decrypt' is deprecated and will be removed in a future release
-Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
-Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
+Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
+Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
select des_decrypt(des_encrypt("hello",4));
des_decrypt(des_encrypt("hello",4))
NULL
Warnings:
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
Note 1287 'des_decrypt' is deprecated and will be removed in a future release
-Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
+Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
select des_decrypt(des_encrypt("hello",'test'),'test');
des_decrypt(des_encrypt("hello",'test'),'test')
NULL
Warnings:
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
Note 1287 'des_decrypt' is deprecated and will be removed in a future release
-Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
+Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
select hex(des_encrypt("hello")),hex(des_encrypt("hello",5)),hex(des_encrypt("hello",'default_password'));
hex(des_encrypt("hello")) hex(des_encrypt("hello",5)) hex(des_encrypt("hello",'default_password'))
NULL NULL NULL
@@ -83,28 +83,28 @@ Warnings:
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
-Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
-Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
-Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
+Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
+Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
+Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
select des_decrypt(des_encrypt("hello"),'default_password');
des_decrypt(des_encrypt("hello"),'default_password')
NULL
Warnings:
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
Note 1287 'des_decrypt' is deprecated and will be removed in a future release
-Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
+Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
select des_decrypt(des_encrypt("hello",4),'password4');
des_decrypt(des_encrypt("hello",4),'password4')
NULL
Warnings:
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
Note 1287 'des_decrypt' is deprecated and will be removed in a future release
-Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
+Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
SET @a=des_decrypt(des_encrypt("hello"));
Warnings:
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
Note 1287 'des_decrypt' is deprecated and will be removed in a future release
-Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
+Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
flush des_key_file;
select @a = des_decrypt(des_encrypt("hello"));
@a = des_decrypt(des_encrypt("hello"))
@@ -121,11 +121,11 @@ NULL
Warnings:
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
Note 1287 'des_decrypt' is deprecated and will be removed in a future release
-Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
+Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
select hex(des_decrypt(des_encrypt("hello","hidden")));
hex(des_decrypt(des_encrypt("hello","hidden")))
NULL
Warnings:
Note 1287 'des_encrypt' is deprecated and will be removed in a future release
Note 1287 'des_decrypt' is deprecated and will be removed in a future release
-Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working
+Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with 'openssl des cipher (HAVE_des)' to have it working
diff --git a/mysql-test/main/func_extract.result b/mysql-test/main/func_extract.result
index bebb8c71..dc71f6ae 100644
--- a/mysql-test/main/func_extract.result
+++ b/mysql-test/main/func_extract.result
@@ -590,3 +590,885 @@ Warning 1292 Truncated incorrect time value: '01:02:03/'
Warning 1292 Truncated incorrect time value: '01:02:03/'
Warning 1292 Truncated incorrect INTERVAL DAY TO SECOND value: '01:02:03/'
DROP TABLE t1;
+#
+# Start of 10.5 tests
+#
+#
+# MDEV-33496 Out of range error in AVG(YEAR(datetime)) due to a wrong data type
+#
+CREATE FUNCTION select01() RETURNS TEXT RETURN 'SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?';
+CREATE FUNCTION select02() RETURNS TEXT RETURN 'SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)';
+CREATE TABLE t1 (a DATETIME(6));
+INSERT INTO t1 VALUES ('2001-12-31 10:20:30.999999');
+CREATE FUNCTION params(expr TEXT, count INT) RETURNS TEXT
+BEGIN
+RETURN CONCAT(expr, REPEAT(CONCAT(', ', expr), count-1));
+END;
+$$
+CREATE PROCEDURE show_drop()
+BEGIN
+SELECT TABLE_NAME, COLUMN_TYPE, COLUMN_NAME
+FROM INFORMATION_SCHEMA.COLUMNS
+WHERE TABLE_SCHEMA='test'
+ AND TABLE_NAME IN ('t1e_nm','t2e_nm','t1f_nm','t2f_nm',
+'t1e_ps','t1f_ps','t2e_ps','t2f_ps')
+ORDER BY LEFT(TABLE_NAME, 2), ORDINAL_POSITION, TABLE_NAME;
+FOR rec IN (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
+WHERE TABLE_SCHEMA='test'
+ AND TABLE_NAME IN ('t1e_nm','t2e_nm','t1f_nm','t2f_nm',
+'t1e_ps','t1f_ps','t2e_ps','t2f_ps'))
+DO
+EXECUTE IMMEDIATE CONCAT('DROP TABLE ', rec.TABLE_NAME);
+END FOR;
+END;
+$$
+CREATE PROCEDURE p1(unit VARCHAR(32))
+BEGIN
+DECLARE do_extract BOOL DEFAULT unit NOT IN('DAYOFYEAR');
+DECLARE query01 TEXT DEFAULT
+CONCAT('CREATE TABLE t2 AS ', select01(), ' FROM t1');
+DECLARE query02 TEXT DEFAULT
+CONCAT('CREATE TABLE t2 AS ', select02(), ' FROM t1');
+IF (do_extract)
+THEN
+EXECUTE IMMEDIATE REPLACE(REPLACE(query01,'t2','t1e_nm'),'?', CONCAT('EXTRACT(',unit,' FROM a)'));
+EXECUTE IMMEDIATE REPLACE(REPLACE(query02,'t2','t2e_nm'),'?', CONCAT('EXTRACT(',unit,' FROM a)'));
+END IF;
+EXECUTE IMMEDIATE REPLACE(REPLACE(query01,'t2','t1f_nm'),'?', CONCAT(unit,'(a)'));
+EXECUTE IMMEDIATE REPLACE(REPLACE(query02,'t2','t2f_nm'),'?', CONCAT(unit,'(a)'));
+END;
+$$
+
+
+# EXTRACT(YEAR FROM expr) and YEAR(expr) are equivalent
+CALL p1('YEAR');
+EXECUTE IMMEDIATE 'CREATE TABLE t1e_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING YEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), YEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), YEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), YEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), YEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), YEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), YEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), YEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), YEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), YEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), YEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), YEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), YEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), YEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), YEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), YEAR(TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2e_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(YEAR FROM TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING YEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), YEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), YEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), YEAR(TIMESTAMP'2001-12-13 10:20:30.999999');
+CALL show_drop;
+TABLE_NAME COLUMN_TYPE COLUMN_NAME
+t1e_nm int(5) EXTRACT(YEAR FROM a)
+t1e_ps int(5) ?
+t1f_nm int(5) YEAR(a)
+t1f_ps int(5) ?
+t1e_nm int(4) unsigned CAST(EXTRACT(YEAR FROM a) AS UNSIGNED)
+t1e_ps int(4) unsigned CAST(? AS UNSIGNED)
+t1f_nm int(4) unsigned CAST(YEAR(a) AS UNSIGNED)
+t1f_ps int(4) unsigned CAST(? AS UNSIGNED)
+t1e_nm int(5) CAST(EXTRACT(YEAR FROM a) AS SIGNED)
+t1e_ps int(5) CAST(? AS SIGNED)
+t1f_nm int(5) CAST(YEAR(a) AS SIGNED)
+t1f_ps int(5) CAST(? AS SIGNED)
+t1e_nm int(5) ABS(EXTRACT(YEAR FROM a))
+t1e_ps int(5) ABS(?)
+t1f_nm int(5) ABS(YEAR(a))
+t1f_ps int(5) ABS(?)
+t1e_nm int(5) ROUND(EXTRACT(YEAR FROM a))
+t1e_ps int(5) ROUND(?)
+t1f_nm int(5) ROUND(YEAR(a))
+t1f_ps int(5) ROUND(?)
+t1e_nm int(5) -EXTRACT(YEAR FROM a)
+t1e_ps int(5) -?
+t1f_nm int(5) -YEAR(a)
+t1f_ps int(5) -?
+t1e_nm int(6) ROUND(EXTRACT(YEAR FROM a),-1)
+t1e_ps int(6) ROUND(?,-1)
+t1f_nm int(6) ROUND(YEAR(a),-1)
+t1f_ps int(6) ROUND(?,-1)
+t1e_nm int(6) EXTRACT(YEAR FROM a)+0
+t1e_ps int(6) ?+0
+t1f_nm int(6) YEAR(a)+0
+t1f_ps int(6) ?+0
+t1e_nm decimal(6,1) EXTRACT(YEAR FROM a)+0.0
+t1e_ps decimal(6,1) ?+0.0
+t1f_nm decimal(6,1) YEAR(a)+0.0
+t1f_ps decimal(6,1) ?+0.0
+t1e_nm varchar(4) CONCAT(EXTRACT(YEAR FROM a))
+t1e_ps varchar(4) CONCAT(?)
+t1f_nm varchar(4) CONCAT(YEAR(a))
+t1f_ps varchar(4) CONCAT(?)
+t1e_nm int(5) LEAST(EXTRACT(YEAR FROM a),EXTRACT(YEAR FROM a))
+t1e_ps int(5) LEAST(?,?)
+t1f_nm int(5) LEAST(YEAR(a),YEAR(a))
+t1f_ps int(5) LEAST(?,?)
+t1e_nm int(5) COALESCE(EXTRACT(YEAR FROM a))
+t1e_ps int(5) COALESCE(?)
+t1f_nm int(5) COALESCE(YEAR(a))
+t1f_ps int(5) COALESCE(?)
+t1e_nm int(5) COALESCE(EXTRACT(YEAR FROM a),CAST(1 AS SIGNED))
+t1e_ps int(5) COALESCE(?,CAST(1 AS SIGNED))
+t1f_nm int(5) COALESCE(YEAR(a),CAST(1 AS SIGNED))
+t1f_ps int(5) COALESCE(?,CAST(1 AS SIGNED))
+t1e_nm decimal(4,0) COALESCE(EXTRACT(YEAR FROM a),CAST(1 AS UNSIGNED))
+t1e_ps decimal(4,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1f_nm decimal(4,0) COALESCE(YEAR(a),CAST(1 AS UNSIGNED))
+t1f_ps decimal(4,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1e_nm int(5) @a:=EXTRACT(YEAR FROM a)
+t1e_ps int(5) @a:=?
+t1f_nm int(5) @a:=YEAR(a)
+t1f_ps int(5) @a:=?
+t2e_nm decimal(8,4) AVG(EXTRACT(YEAR FROM a))
+t2e_ps decimal(8,4) AVG(?)
+t2f_nm decimal(8,4) AVG(YEAR(a))
+t2f_ps decimal(8,4) AVG(?)
+t2e_nm bigint(5) MIN(EXTRACT(YEAR FROM a))
+t2e_ps bigint(5) MIN(?)
+t2f_nm bigint(5) MIN(YEAR(a))
+t2f_ps bigint(5) MIN(?)
+t2e_nm bigint(5) MAX(EXTRACT(YEAR FROM a))
+t2e_ps bigint(5) MAX(?)
+t2f_nm bigint(5) MAX(YEAR(a))
+t2f_ps bigint(5) MAX(?)
+t2e_nm mediumtext GROUP_CONCAT(EXTRACT(YEAR FROM a))
+t2e_ps mediumtext GROUP_CONCAT(?)
+t2f_nm mediumtext GROUP_CONCAT(YEAR(a))
+t2f_ps mediumtext GROUP_CONCAT(?)
+
+
+# EXTRACT(QUARTER FROM expr) and QUARTER(expr) are equavalent
+CALL p1('QUARTER');
+EXECUTE IMMEDIATE 'CREATE TABLE t1e_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999'), QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999'), QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999'), QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999'), QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999'), QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999'), QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999'), QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999'), QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999'), QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999'), QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999'), QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999'), QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999'), QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999'), QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999'), QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2e_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(QUARTER FROM TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999'), QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999'), QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999'), QUARTER(TIMESTAMP'2001-12-13 10:20:30.999999');
+CALL show_drop;
+TABLE_NAME COLUMN_TYPE COLUMN_NAME
+t1e_nm int(2) EXTRACT(QUARTER FROM a)
+t1e_ps int(2) ?
+t1f_nm int(2) QUARTER(a)
+t1f_ps int(2) ?
+t1e_nm int(1) unsigned CAST(EXTRACT(QUARTER FROM a) AS UNSIGNED)
+t1e_ps int(1) unsigned CAST(? AS UNSIGNED)
+t1f_nm int(1) unsigned CAST(QUARTER(a) AS UNSIGNED)
+t1f_ps int(1) unsigned CAST(? AS UNSIGNED)
+t1e_nm int(2) CAST(EXTRACT(QUARTER FROM a) AS SIGNED)
+t1e_ps int(2) CAST(? AS SIGNED)
+t1f_nm int(2) CAST(QUARTER(a) AS SIGNED)
+t1f_ps int(2) CAST(? AS SIGNED)
+t1e_nm int(2) ABS(EXTRACT(QUARTER FROM a))
+t1e_ps int(2) ABS(?)
+t1f_nm int(2) ABS(QUARTER(a))
+t1f_ps int(2) ABS(?)
+t1e_nm int(2) ROUND(EXTRACT(QUARTER FROM a))
+t1e_ps int(2) ROUND(?)
+t1f_nm int(2) ROUND(QUARTER(a))
+t1f_ps int(2) ROUND(?)
+t1e_nm int(2) -EXTRACT(QUARTER FROM a)
+t1e_ps int(2) -?
+t1f_nm int(2) -QUARTER(a)
+t1f_ps int(2) -?
+t1e_nm int(3) ROUND(EXTRACT(QUARTER FROM a),-1)
+t1e_ps int(3) ROUND(?,-1)
+t1f_nm int(3) ROUND(QUARTER(a),-1)
+t1f_ps int(3) ROUND(?,-1)
+t1e_nm int(3) EXTRACT(QUARTER FROM a)+0
+t1e_ps int(3) ?+0
+t1f_nm int(3) QUARTER(a)+0
+t1f_ps int(3) ?+0
+t1e_nm decimal(3,1) EXTRACT(QUARTER FROM a)+0.0
+t1e_ps decimal(3,1) ?+0.0
+t1f_nm decimal(3,1) QUARTER(a)+0.0
+t1f_ps decimal(3,1) ?+0.0
+t1e_nm varchar(1) CONCAT(EXTRACT(QUARTER FROM a))
+t1e_ps varchar(1) CONCAT(?)
+t1f_nm varchar(1) CONCAT(QUARTER(a))
+t1f_ps varchar(1) CONCAT(?)
+t1e_nm int(2) LEAST(EXTRACT(QUARTER FROM a),EXTRACT(QUARTER FROM a))
+t1e_ps int(2) LEAST(?,?)
+t1f_nm int(2) LEAST(QUARTER(a),QUARTER(a))
+t1f_ps int(2) LEAST(?,?)
+t1e_nm int(2) COALESCE(EXTRACT(QUARTER FROM a))
+t1e_ps int(2) COALESCE(?)
+t1f_nm int(2) COALESCE(QUARTER(a))
+t1f_ps int(2) COALESCE(?)
+t1e_nm int(2) COALESCE(EXTRACT(QUARTER FROM a),CAST(1 AS SIGNED))
+t1e_ps int(2) COALESCE(?,CAST(1 AS SIGNED))
+t1f_nm int(2) COALESCE(QUARTER(a),CAST(1 AS SIGNED))
+t1f_ps int(2) COALESCE(?,CAST(1 AS SIGNED))
+t1e_nm decimal(1,0) COALESCE(EXTRACT(QUARTER FROM a),CAST(1 AS UNSIGNED))
+t1e_ps decimal(1,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1f_nm decimal(1,0) COALESCE(QUARTER(a),CAST(1 AS UNSIGNED))
+t1f_ps decimal(1,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1e_nm int(2) @a:=EXTRACT(QUARTER FROM a)
+t1e_ps int(2) @a:=?
+t1f_nm int(2) @a:=QUARTER(a)
+t1f_ps int(2) @a:=?
+t2e_nm decimal(5,4) AVG(EXTRACT(QUARTER FROM a))
+t2e_ps decimal(5,4) AVG(?)
+t2f_nm decimal(5,4) AVG(QUARTER(a))
+t2f_ps decimal(5,4) AVG(?)
+t2e_nm bigint(2) MIN(EXTRACT(QUARTER FROM a))
+t2e_ps bigint(2) MIN(?)
+t2f_nm bigint(2) MIN(QUARTER(a))
+t2f_ps bigint(2) MIN(?)
+t2e_nm bigint(2) MAX(EXTRACT(QUARTER FROM a))
+t2e_ps bigint(2) MAX(?)
+t2f_nm bigint(2) MAX(QUARTER(a))
+t2f_ps bigint(2) MAX(?)
+t2e_nm mediumtext GROUP_CONCAT(EXTRACT(QUARTER FROM a))
+t2e_ps mediumtext GROUP_CONCAT(?)
+t2f_nm mediumtext GROUP_CONCAT(QUARTER(a))
+t2f_ps mediumtext GROUP_CONCAT(?)
+
+
+# EXTRACT(MONTH FROM expr) and MONTH(expr) are equavalent
+CALL p1('MONTH');
+EXECUTE IMMEDIATE 'CREATE TABLE t1e_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING MONTH(TIMESTAMP'2001-12-13 10:20:30.999999'), MONTH(TIMESTAMP'2001-12-13 10:20:30.999999'), MONTH(TIMESTAMP'2001-12-13 10:20:30.999999'), MONTH(TIMESTAMP'2001-12-13 10:20:30.999999'), MONTH(TIMESTAMP'2001-12-13 10:20:30.999999'), MONTH(TIMESTAMP'2001-12-13 10:20:30.999999'), MONTH(TIMESTAMP'2001-12-13 10:20:30.999999'), MONTH(TIMESTAMP'2001-12-13 10:20:30.999999'), MONTH(TIMESTAMP'2001-12-13 10:20:30.999999'), MONTH(TIMESTAMP'2001-12-13 10:20:30.999999'), MONTH(TIMESTAMP'2001-12-13 10:20:30.999999'), MONTH(TIMESTAMP'2001-12-13 10:20:30.999999'), MONTH(TIMESTAMP'2001-12-13 10:20:30.999999'), MONTH(TIMESTAMP'2001-12-13 10:20:30.999999'), MONTH(TIMESTAMP'2001-12-13 10:20:30.999999'), MONTH(TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2e_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MONTH FROM TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING MONTH(TIMESTAMP'2001-12-13 10:20:30.999999'), MONTH(TIMESTAMP'2001-12-13 10:20:30.999999'), MONTH(TIMESTAMP'2001-12-13 10:20:30.999999'), MONTH(TIMESTAMP'2001-12-13 10:20:30.999999');
+CALL show_drop;
+TABLE_NAME COLUMN_TYPE COLUMN_NAME
+t1e_nm int(3) EXTRACT(MONTH FROM a)
+t1e_ps int(3) ?
+t1f_nm int(3) MONTH(a)
+t1f_ps int(3) ?
+t1e_nm int(2) unsigned CAST(EXTRACT(MONTH FROM a) AS UNSIGNED)
+t1e_ps int(2) unsigned CAST(? AS UNSIGNED)
+t1f_nm int(2) unsigned CAST(MONTH(a) AS UNSIGNED)
+t1f_ps int(2) unsigned CAST(? AS UNSIGNED)
+t1e_nm int(3) CAST(EXTRACT(MONTH FROM a) AS SIGNED)
+t1e_ps int(3) CAST(? AS SIGNED)
+t1f_nm int(3) CAST(MONTH(a) AS SIGNED)
+t1f_ps int(3) CAST(? AS SIGNED)
+t1e_nm int(3) ABS(EXTRACT(MONTH FROM a))
+t1e_ps int(3) ABS(?)
+t1f_nm int(3) ABS(MONTH(a))
+t1f_ps int(3) ABS(?)
+t1e_nm int(3) ROUND(EXTRACT(MONTH FROM a))
+t1e_ps int(3) ROUND(?)
+t1f_nm int(3) ROUND(MONTH(a))
+t1f_ps int(3) ROUND(?)
+t1e_nm int(3) -EXTRACT(MONTH FROM a)
+t1e_ps int(3) -?
+t1f_nm int(3) -MONTH(a)
+t1f_ps int(3) -?
+t1e_nm int(4) ROUND(EXTRACT(MONTH FROM a),-1)
+t1e_ps int(4) ROUND(?,-1)
+t1f_nm int(4) ROUND(MONTH(a),-1)
+t1f_ps int(4) ROUND(?,-1)
+t1e_nm int(4) EXTRACT(MONTH FROM a)+0
+t1e_ps int(4) ?+0
+t1f_nm int(4) MONTH(a)+0
+t1f_ps int(4) ?+0
+t1e_nm decimal(4,1) EXTRACT(MONTH FROM a)+0.0
+t1e_ps decimal(4,1) ?+0.0
+t1f_nm decimal(4,1) MONTH(a)+0.0
+t1f_ps decimal(4,1) ?+0.0
+t1e_nm varchar(2) CONCAT(EXTRACT(MONTH FROM a))
+t1e_ps varchar(2) CONCAT(?)
+t1f_nm varchar(2) CONCAT(MONTH(a))
+t1f_ps varchar(2) CONCAT(?)
+t1e_nm int(3) LEAST(EXTRACT(MONTH FROM a),EXTRACT(MONTH FROM a))
+t1e_ps int(3) LEAST(?,?)
+t1f_nm int(3) LEAST(MONTH(a),MONTH(a))
+t1f_ps int(3) LEAST(?,?)
+t1e_nm int(3) COALESCE(EXTRACT(MONTH FROM a))
+t1e_ps int(3) COALESCE(?)
+t1f_nm int(3) COALESCE(MONTH(a))
+t1f_ps int(3) COALESCE(?)
+t1e_nm int(3) COALESCE(EXTRACT(MONTH FROM a),CAST(1 AS SIGNED))
+t1e_ps int(3) COALESCE(?,CAST(1 AS SIGNED))
+t1f_nm int(3) COALESCE(MONTH(a),CAST(1 AS SIGNED))
+t1f_ps int(3) COALESCE(?,CAST(1 AS SIGNED))
+t1e_nm decimal(2,0) COALESCE(EXTRACT(MONTH FROM a),CAST(1 AS UNSIGNED))
+t1e_ps decimal(2,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1f_nm decimal(2,0) COALESCE(MONTH(a),CAST(1 AS UNSIGNED))
+t1f_ps decimal(2,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1e_nm int(3) @a:=EXTRACT(MONTH FROM a)
+t1e_ps int(3) @a:=?
+t1f_nm int(3) @a:=MONTH(a)
+t1f_ps int(3) @a:=?
+t2e_nm decimal(6,4) AVG(EXTRACT(MONTH FROM a))
+t2e_ps decimal(6,4) AVG(?)
+t2f_nm decimal(6,4) AVG(MONTH(a))
+t2f_ps decimal(6,4) AVG(?)
+t2e_nm bigint(3) MIN(EXTRACT(MONTH FROM a))
+t2e_ps bigint(3) MIN(?)
+t2f_nm bigint(3) MIN(MONTH(a))
+t2f_ps bigint(3) MIN(?)
+t2e_nm bigint(3) MAX(EXTRACT(MONTH FROM a))
+t2e_ps bigint(3) MAX(?)
+t2f_nm bigint(3) MAX(MONTH(a))
+t2f_ps bigint(3) MAX(?)
+t2e_nm mediumtext GROUP_CONCAT(EXTRACT(MONTH FROM a))
+t2e_ps mediumtext GROUP_CONCAT(?)
+t2f_nm mediumtext GROUP_CONCAT(MONTH(a))
+t2f_ps mediumtext GROUP_CONCAT(?)
+
+
+# EXTRACT(WEEK FROM expr) and WEEK(expr) are equavalent
+CALL p1('WEEK');
+EXECUTE IMMEDIATE 'CREATE TABLE t1e_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING WEEK(TIMESTAMP'2001-12-13 10:20:30.999999'), WEEK(TIMESTAMP'2001-12-13 10:20:30.999999'), WEEK(TIMESTAMP'2001-12-13 10:20:30.999999'), WEEK(TIMESTAMP'2001-12-13 10:20:30.999999'), WEEK(TIMESTAMP'2001-12-13 10:20:30.999999'), WEEK(TIMESTAMP'2001-12-13 10:20:30.999999'), WEEK(TIMESTAMP'2001-12-13 10:20:30.999999'), WEEK(TIMESTAMP'2001-12-13 10:20:30.999999'), WEEK(TIMESTAMP'2001-12-13 10:20:30.999999'), WEEK(TIMESTAMP'2001-12-13 10:20:30.999999'), WEEK(TIMESTAMP'2001-12-13 10:20:30.999999'), WEEK(TIMESTAMP'2001-12-13 10:20:30.999999'), WEEK(TIMESTAMP'2001-12-13 10:20:30.999999'), WEEK(TIMESTAMP'2001-12-13 10:20:30.999999'), WEEK(TIMESTAMP'2001-12-13 10:20:30.999999'), WEEK(TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2e_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(WEEK FROM TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING WEEK(TIMESTAMP'2001-12-13 10:20:30.999999'), WEEK(TIMESTAMP'2001-12-13 10:20:30.999999'), WEEK(TIMESTAMP'2001-12-13 10:20:30.999999'), WEEK(TIMESTAMP'2001-12-13 10:20:30.999999');
+CALL show_drop;
+TABLE_NAME COLUMN_TYPE COLUMN_NAME
+t1e_nm int(3) EXTRACT(WEEK FROM a)
+t1e_ps int(3) ?
+t1f_nm int(3) WEEK(a)
+t1f_ps int(3) ?
+t1e_nm int(2) unsigned CAST(EXTRACT(WEEK FROM a) AS UNSIGNED)
+t1e_ps int(2) unsigned CAST(? AS UNSIGNED)
+t1f_nm int(2) unsigned CAST(WEEK(a) AS UNSIGNED)
+t1f_ps int(2) unsigned CAST(? AS UNSIGNED)
+t1e_nm int(3) CAST(EXTRACT(WEEK FROM a) AS SIGNED)
+t1e_ps int(3) CAST(? AS SIGNED)
+t1f_nm int(3) CAST(WEEK(a) AS SIGNED)
+t1f_ps int(3) CAST(? AS SIGNED)
+t1e_nm int(3) ABS(EXTRACT(WEEK FROM a))
+t1e_ps int(3) ABS(?)
+t1f_nm int(3) ABS(WEEK(a))
+t1f_ps int(3) ABS(?)
+t1e_nm int(3) ROUND(EXTRACT(WEEK FROM a))
+t1e_ps int(3) ROUND(?)
+t1f_nm int(3) ROUND(WEEK(a))
+t1f_ps int(3) ROUND(?)
+t1e_nm int(3) -EXTRACT(WEEK FROM a)
+t1e_ps int(3) -?
+t1f_nm int(3) -WEEK(a)
+t1f_ps int(3) -?
+t1e_nm int(4) ROUND(EXTRACT(WEEK FROM a),-1)
+t1e_ps int(4) ROUND(?,-1)
+t1f_nm int(4) ROUND(WEEK(a),-1)
+t1f_ps int(4) ROUND(?,-1)
+t1e_nm int(4) EXTRACT(WEEK FROM a)+0
+t1e_ps int(4) ?+0
+t1f_nm int(4) WEEK(a)+0
+t1f_ps int(4) ?+0
+t1e_nm decimal(4,1) EXTRACT(WEEK FROM a)+0.0
+t1e_ps decimal(4,1) ?+0.0
+t1f_nm decimal(4,1) WEEK(a)+0.0
+t1f_ps decimal(4,1) ?+0.0
+t1e_nm varchar(2) CONCAT(EXTRACT(WEEK FROM a))
+t1e_ps varchar(2) CONCAT(?)
+t1f_nm varchar(2) CONCAT(WEEK(a))
+t1f_ps varchar(2) CONCAT(?)
+t1e_nm int(3) LEAST(EXTRACT(WEEK FROM a),EXTRACT(WEEK FROM a))
+t1e_ps int(3) LEAST(?,?)
+t1f_nm int(3) LEAST(WEEK(a),WEEK(a))
+t1f_ps int(3) LEAST(?,?)
+t1e_nm int(3) COALESCE(EXTRACT(WEEK FROM a))
+t1e_ps int(3) COALESCE(?)
+t1f_nm int(3) COALESCE(WEEK(a))
+t1f_ps int(3) COALESCE(?)
+t1e_nm int(3) COALESCE(EXTRACT(WEEK FROM a),CAST(1 AS SIGNED))
+t1e_ps int(3) COALESCE(?,CAST(1 AS SIGNED))
+t1f_nm int(3) COALESCE(WEEK(a),CAST(1 AS SIGNED))
+t1f_ps int(3) COALESCE(?,CAST(1 AS SIGNED))
+t1e_nm decimal(2,0) COALESCE(EXTRACT(WEEK FROM a),CAST(1 AS UNSIGNED))
+t1e_ps decimal(2,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1f_nm decimal(2,0) COALESCE(WEEK(a),CAST(1 AS UNSIGNED))
+t1f_ps decimal(2,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1e_nm int(3) @a:=EXTRACT(WEEK FROM a)
+t1e_ps int(3) @a:=?
+t1f_nm int(3) @a:=WEEK(a)
+t1f_ps int(3) @a:=?
+t2e_nm decimal(6,4) AVG(EXTRACT(WEEK FROM a))
+t2e_ps decimal(6,4) AVG(?)
+t2f_nm decimal(6,4) AVG(WEEK(a))
+t2f_ps decimal(6,4) AVG(?)
+t2e_nm bigint(3) MIN(EXTRACT(WEEK FROM a))
+t2e_ps bigint(3) MIN(?)
+t2f_nm bigint(3) MIN(WEEK(a))
+t2f_ps bigint(3) MIN(?)
+t2e_nm bigint(3) MAX(EXTRACT(WEEK FROM a))
+t2e_ps bigint(3) MAX(?)
+t2f_nm bigint(3) MAX(WEEK(a))
+t2f_ps bigint(3) MAX(?)
+t2e_nm mediumtext GROUP_CONCAT(EXTRACT(WEEK FROM a))
+t2e_ps mediumtext GROUP_CONCAT(?)
+t2f_nm mediumtext GROUP_CONCAT(WEEK(a))
+t2f_ps mediumtext GROUP_CONCAT(?)
+
+
+# EXTRACT(DAY FROM expr) returns hours/24 and includes the sign for TIME
+# DAY(expr) returns the DD part of CAST(expr AS DATETIME)
+CALL p1('DAY');
+EXECUTE IMMEDIATE 'CREATE TABLE t1e_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING DAY(TIMESTAMP'2001-12-13 10:20:30.999999'), DAY(TIMESTAMP'2001-12-13 10:20:30.999999'), DAY(TIMESTAMP'2001-12-13 10:20:30.999999'), DAY(TIMESTAMP'2001-12-13 10:20:30.999999'), DAY(TIMESTAMP'2001-12-13 10:20:30.999999'), DAY(TIMESTAMP'2001-12-13 10:20:30.999999'), DAY(TIMESTAMP'2001-12-13 10:20:30.999999'), DAY(TIMESTAMP'2001-12-13 10:20:30.999999'), DAY(TIMESTAMP'2001-12-13 10:20:30.999999'), DAY(TIMESTAMP'2001-12-13 10:20:30.999999'), DAY(TIMESTAMP'2001-12-13 10:20:30.999999'), DAY(TIMESTAMP'2001-12-13 10:20:30.999999'), DAY(TIMESTAMP'2001-12-13 10:20:30.999999'), DAY(TIMESTAMP'2001-12-13 10:20:30.999999'), DAY(TIMESTAMP'2001-12-13 10:20:30.999999'), DAY(TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2e_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(DAY FROM TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING DAY(TIMESTAMP'2001-12-13 10:20:30.999999'), DAY(TIMESTAMP'2001-12-13 10:20:30.999999'), DAY(TIMESTAMP'2001-12-13 10:20:30.999999'), DAY(TIMESTAMP'2001-12-13 10:20:30.999999');
+CALL show_drop;
+TABLE_NAME COLUMN_TYPE COLUMN_NAME
+t1e_nm int(3) EXTRACT(DAY FROM a)
+t1e_ps int(3) ?
+t1f_nm int(3) DAY(a)
+t1f_ps int(3) ?
+t1e_nm bigint(20) unsigned CAST(EXTRACT(DAY FROM a) AS UNSIGNED)
+t1e_ps bigint(20) unsigned CAST(? AS UNSIGNED)
+t1f_nm int(2) unsigned CAST(DAY(a) AS UNSIGNED)
+t1f_ps int(2) unsigned CAST(? AS UNSIGNED)
+t1e_nm int(3) CAST(EXTRACT(DAY FROM a) AS SIGNED)
+t1e_ps int(3) CAST(? AS SIGNED)
+t1f_nm int(3) CAST(DAY(a) AS SIGNED)
+t1f_ps int(3) CAST(? AS SIGNED)
+t1e_nm int(3) ABS(EXTRACT(DAY FROM a))
+t1e_ps int(3) ABS(?)
+t1f_nm int(3) ABS(DAY(a))
+t1f_ps int(3) ABS(?)
+t1e_nm int(3) ROUND(EXTRACT(DAY FROM a))
+t1e_ps int(3) ROUND(?)
+t1f_nm int(3) ROUND(DAY(a))
+t1f_ps int(3) ROUND(?)
+t1e_nm int(4) -EXTRACT(DAY FROM a)
+t1e_ps int(4) -?
+t1f_nm int(3) -DAY(a)
+t1f_ps int(3) -?
+t1e_nm int(4) ROUND(EXTRACT(DAY FROM a),-1)
+t1e_ps int(4) ROUND(?,-1)
+t1f_nm int(4) ROUND(DAY(a),-1)
+t1f_ps int(4) ROUND(?,-1)
+t1e_nm int(4) EXTRACT(DAY FROM a)+0
+t1e_ps int(4) ?+0
+t1f_nm int(4) DAY(a)+0
+t1f_ps int(4) ?+0
+t1e_nm decimal(4,1) EXTRACT(DAY FROM a)+0.0
+t1e_ps decimal(4,1) ?+0.0
+t1f_nm decimal(4,1) DAY(a)+0.0
+t1f_ps decimal(4,1) ?+0.0
+t1e_nm varchar(3) CONCAT(EXTRACT(DAY FROM a))
+t1e_ps varchar(3) CONCAT(?)
+t1f_nm varchar(2) CONCAT(DAY(a))
+t1f_ps varchar(2) CONCAT(?)
+t1e_nm int(3) LEAST(EXTRACT(DAY FROM a),EXTRACT(DAY FROM a))
+t1e_ps int(3) LEAST(?,?)
+t1f_nm int(3) LEAST(DAY(a),DAY(a))
+t1f_ps int(3) LEAST(?,?)
+t1e_nm int(3) COALESCE(EXTRACT(DAY FROM a))
+t1e_ps int(3) COALESCE(?)
+t1f_nm int(3) COALESCE(DAY(a))
+t1f_ps int(3) COALESCE(?)
+t1e_nm int(3) COALESCE(EXTRACT(DAY FROM a),CAST(1 AS SIGNED))
+t1e_ps int(3) COALESCE(?,CAST(1 AS SIGNED))
+t1f_nm int(3) COALESCE(DAY(a),CAST(1 AS SIGNED))
+t1f_ps int(3) COALESCE(?,CAST(1 AS SIGNED))
+t1e_nm decimal(2,0) COALESCE(EXTRACT(DAY FROM a),CAST(1 AS UNSIGNED))
+t1e_ps decimal(2,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1f_nm decimal(2,0) COALESCE(DAY(a),CAST(1 AS UNSIGNED))
+t1f_ps decimal(2,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1e_nm int(3) @a:=EXTRACT(DAY FROM a)
+t1e_ps int(3) @a:=?
+t1f_nm int(3) @a:=DAY(a)
+t1f_ps int(3) @a:=?
+t2e_nm decimal(6,4) AVG(EXTRACT(DAY FROM a))
+t2e_ps decimal(6,4) AVG(?)
+t2f_nm decimal(6,4) AVG(DAY(a))
+t2f_ps decimal(6,4) AVG(?)
+t2e_nm bigint(3) MIN(EXTRACT(DAY FROM a))
+t2e_ps bigint(3) MIN(?)
+t2f_nm bigint(3) MIN(DAY(a))
+t2f_ps bigint(3) MIN(?)
+t2e_nm bigint(3) MAX(EXTRACT(DAY FROM a))
+t2e_ps bigint(3) MAX(?)
+t2f_nm bigint(3) MAX(DAY(a))
+t2f_ps bigint(3) MAX(?)
+t2e_nm mediumtext GROUP_CONCAT(EXTRACT(DAY FROM a))
+t2e_ps mediumtext GROUP_CONCAT(?)
+t2f_nm mediumtext GROUP_CONCAT(DAY(a))
+t2f_ps mediumtext GROUP_CONCAT(?)
+
+
+# EXTRACT(HOUR FROM expr) returns hours%24 and includes the sign for TIME
+# HOUR(expr) returns the hh part of CAST(expr AS DATETIME)
+CALL p1('HOUR');
+EXECUTE IMMEDIATE 'CREATE TABLE t1e_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING HOUR(TIMESTAMP'2001-12-13 10:20:30.999999'), HOUR(TIMESTAMP'2001-12-13 10:20:30.999999'), HOUR(TIMESTAMP'2001-12-13 10:20:30.999999'), HOUR(TIMESTAMP'2001-12-13 10:20:30.999999'), HOUR(TIMESTAMP'2001-12-13 10:20:30.999999'), HOUR(TIMESTAMP'2001-12-13 10:20:30.999999'), HOUR(TIMESTAMP'2001-12-13 10:20:30.999999'), HOUR(TIMESTAMP'2001-12-13 10:20:30.999999'), HOUR(TIMESTAMP'2001-12-13 10:20:30.999999'), HOUR(TIMESTAMP'2001-12-13 10:20:30.999999'), HOUR(TIMESTAMP'2001-12-13 10:20:30.999999'), HOUR(TIMESTAMP'2001-12-13 10:20:30.999999'), HOUR(TIMESTAMP'2001-12-13 10:20:30.999999'), HOUR(TIMESTAMP'2001-12-13 10:20:30.999999'), HOUR(TIMESTAMP'2001-12-13 10:20:30.999999'), HOUR(TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2e_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(HOUR FROM TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING HOUR(TIMESTAMP'2001-12-13 10:20:30.999999'), HOUR(TIMESTAMP'2001-12-13 10:20:30.999999'), HOUR(TIMESTAMP'2001-12-13 10:20:30.999999'), HOUR(TIMESTAMP'2001-12-13 10:20:30.999999');
+CALL show_drop;
+TABLE_NAME COLUMN_TYPE COLUMN_NAME
+t1e_nm int(3) EXTRACT(HOUR FROM a)
+t1e_ps int(3) ?
+t1f_nm int(3) HOUR(a)
+t1f_ps int(3) ?
+t1e_nm bigint(20) unsigned CAST(EXTRACT(HOUR FROM a) AS UNSIGNED)
+t1e_ps bigint(20) unsigned CAST(? AS UNSIGNED)
+t1f_nm int(2) unsigned CAST(HOUR(a) AS UNSIGNED)
+t1f_ps int(2) unsigned CAST(? AS UNSIGNED)
+t1e_nm int(3) CAST(EXTRACT(HOUR FROM a) AS SIGNED)
+t1e_ps int(3) CAST(? AS SIGNED)
+t1f_nm int(3) CAST(HOUR(a) AS SIGNED)
+t1f_ps int(3) CAST(? AS SIGNED)
+t1e_nm int(3) ABS(EXTRACT(HOUR FROM a))
+t1e_ps int(3) ABS(?)
+t1f_nm int(3) ABS(HOUR(a))
+t1f_ps int(3) ABS(?)
+t1e_nm int(3) ROUND(EXTRACT(HOUR FROM a))
+t1e_ps int(3) ROUND(?)
+t1f_nm int(3) ROUND(HOUR(a))
+t1f_ps int(3) ROUND(?)
+t1e_nm int(4) -EXTRACT(HOUR FROM a)
+t1e_ps int(4) -?
+t1f_nm int(3) -HOUR(a)
+t1f_ps int(3) -?
+t1e_nm int(4) ROUND(EXTRACT(HOUR FROM a),-1)
+t1e_ps int(4) ROUND(?,-1)
+t1f_nm int(4) ROUND(HOUR(a),-1)
+t1f_ps int(4) ROUND(?,-1)
+t1e_nm int(4) EXTRACT(HOUR FROM a)+0
+t1e_ps int(4) ?+0
+t1f_nm int(4) HOUR(a)+0
+t1f_ps int(4) ?+0
+t1e_nm decimal(4,1) EXTRACT(HOUR FROM a)+0.0
+t1e_ps decimal(4,1) ?+0.0
+t1f_nm decimal(4,1) HOUR(a)+0.0
+t1f_ps decimal(4,1) ?+0.0
+t1e_nm varchar(3) CONCAT(EXTRACT(HOUR FROM a))
+t1e_ps varchar(3) CONCAT(?)
+t1f_nm varchar(2) CONCAT(HOUR(a))
+t1f_ps varchar(2) CONCAT(?)
+t1e_nm int(3) LEAST(EXTRACT(HOUR FROM a),EXTRACT(HOUR FROM a))
+t1e_ps int(3) LEAST(?,?)
+t1f_nm int(3) LEAST(HOUR(a),HOUR(a))
+t1f_ps int(3) LEAST(?,?)
+t1e_nm int(3) COALESCE(EXTRACT(HOUR FROM a))
+t1e_ps int(3) COALESCE(?)
+t1f_nm int(3) COALESCE(HOUR(a))
+t1f_ps int(3) COALESCE(?)
+t1e_nm int(3) COALESCE(EXTRACT(HOUR FROM a),CAST(1 AS SIGNED))
+t1e_ps int(3) COALESCE(?,CAST(1 AS SIGNED))
+t1f_nm int(3) COALESCE(HOUR(a),CAST(1 AS SIGNED))
+t1f_ps int(3) COALESCE(?,CAST(1 AS SIGNED))
+t1e_nm decimal(2,0) COALESCE(EXTRACT(HOUR FROM a),CAST(1 AS UNSIGNED))
+t1e_ps decimal(2,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1f_nm decimal(2,0) COALESCE(HOUR(a),CAST(1 AS UNSIGNED))
+t1f_ps decimal(2,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1e_nm int(3) @a:=EXTRACT(HOUR FROM a)
+t1e_ps int(3) @a:=?
+t1f_nm int(3) @a:=HOUR(a)
+t1f_ps int(3) @a:=?
+t2e_nm decimal(6,4) AVG(EXTRACT(HOUR FROM a))
+t2e_ps decimal(6,4) AVG(?)
+t2f_nm decimal(6,4) AVG(HOUR(a))
+t2f_ps decimal(6,4) AVG(?)
+t2e_nm bigint(3) MIN(EXTRACT(HOUR FROM a))
+t2e_ps bigint(3) MIN(?)
+t2f_nm bigint(3) MIN(HOUR(a))
+t2f_ps bigint(3) MIN(?)
+t2e_nm bigint(3) MAX(EXTRACT(HOUR FROM a))
+t2e_ps bigint(3) MAX(?)
+t2f_nm bigint(3) MAX(HOUR(a))
+t2f_ps bigint(3) MAX(?)
+t2e_nm mediumtext GROUP_CONCAT(EXTRACT(HOUR FROM a))
+t2e_ps mediumtext GROUP_CONCAT(?)
+t2f_nm mediumtext GROUP_CONCAT(HOUR(a))
+t2f_ps mediumtext GROUP_CONCAT(?)
+
+
+# EXTRACT(MINUTE FROM expr) includes the sign for TIME
+# MINUTE(expr) returns the absolute value
+CALL p1('MINUTE');
+EXECUTE IMMEDIATE 'CREATE TABLE t1e_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999'), MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999'), MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999'), MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999'), MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999'), MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999'), MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999'), MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999'), MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999'), MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999'), MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999'), MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999'), MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999'), MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999'), MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999'), MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2e_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MINUTE FROM TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999'), MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999'), MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999'), MINUTE(TIMESTAMP'2001-12-13 10:20:30.999999');
+CALL show_drop;
+TABLE_NAME COLUMN_TYPE COLUMN_NAME
+t1e_nm int(3) EXTRACT(MINUTE FROM a)
+t1e_ps int(3) ?
+t1f_nm int(3) MINUTE(a)
+t1f_ps int(3) ?
+t1e_nm bigint(20) unsigned CAST(EXTRACT(MINUTE FROM a) AS UNSIGNED)
+t1e_ps bigint(20) unsigned CAST(? AS UNSIGNED)
+t1f_nm int(2) unsigned CAST(MINUTE(a) AS UNSIGNED)
+t1f_ps int(2) unsigned CAST(? AS UNSIGNED)
+t1e_nm int(3) CAST(EXTRACT(MINUTE FROM a) AS SIGNED)
+t1e_ps int(3) CAST(? AS SIGNED)
+t1f_nm int(3) CAST(MINUTE(a) AS SIGNED)
+t1f_ps int(3) CAST(? AS SIGNED)
+t1e_nm int(3) ABS(EXTRACT(MINUTE FROM a))
+t1e_ps int(3) ABS(?)
+t1f_nm int(3) ABS(MINUTE(a))
+t1f_ps int(3) ABS(?)
+t1e_nm int(3) ROUND(EXTRACT(MINUTE FROM a))
+t1e_ps int(3) ROUND(?)
+t1f_nm int(3) ROUND(MINUTE(a))
+t1f_ps int(3) ROUND(?)
+t1e_nm int(4) -EXTRACT(MINUTE FROM a)
+t1e_ps int(4) -?
+t1f_nm int(3) -MINUTE(a)
+t1f_ps int(3) -?
+t1e_nm int(4) ROUND(EXTRACT(MINUTE FROM a),-1)
+t1e_ps int(4) ROUND(?,-1)
+t1f_nm int(4) ROUND(MINUTE(a),-1)
+t1f_ps int(4) ROUND(?,-1)
+t1e_nm int(4) EXTRACT(MINUTE FROM a)+0
+t1e_ps int(4) ?+0
+t1f_nm int(4) MINUTE(a)+0
+t1f_ps int(4) ?+0
+t1e_nm decimal(4,1) EXTRACT(MINUTE FROM a)+0.0
+t1e_ps decimal(4,1) ?+0.0
+t1f_nm decimal(4,1) MINUTE(a)+0.0
+t1f_ps decimal(4,1) ?+0.0
+t1e_nm varchar(3) CONCAT(EXTRACT(MINUTE FROM a))
+t1e_ps varchar(3) CONCAT(?)
+t1f_nm varchar(2) CONCAT(MINUTE(a))
+t1f_ps varchar(2) CONCAT(?)
+t1e_nm int(3) LEAST(EXTRACT(MINUTE FROM a),EXTRACT(MINUTE FROM a))
+t1e_ps int(3) LEAST(?,?)
+t1f_nm int(3) LEAST(MINUTE(a),MINUTE(a))
+t1f_ps int(3) LEAST(?,?)
+t1e_nm int(3) COALESCE(EXTRACT(MINUTE FROM a))
+t1e_ps int(3) COALESCE(?)
+t1f_nm int(3) COALESCE(MINUTE(a))
+t1f_ps int(3) COALESCE(?)
+t1e_nm int(3) COALESCE(EXTRACT(MINUTE FROM a),CAST(1 AS SIGNED))
+t1e_ps int(3) COALESCE(?,CAST(1 AS SIGNED))
+t1f_nm int(3) COALESCE(MINUTE(a),CAST(1 AS SIGNED))
+t1f_ps int(3) COALESCE(?,CAST(1 AS SIGNED))
+t1e_nm decimal(2,0) COALESCE(EXTRACT(MINUTE FROM a),CAST(1 AS UNSIGNED))
+t1e_ps decimal(2,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1f_nm decimal(2,0) COALESCE(MINUTE(a),CAST(1 AS UNSIGNED))
+t1f_ps decimal(2,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1e_nm int(3) @a:=EXTRACT(MINUTE FROM a)
+t1e_ps int(3) @a:=?
+t1f_nm int(3) @a:=MINUTE(a)
+t1f_ps int(3) @a:=?
+t2e_nm decimal(6,4) AVG(EXTRACT(MINUTE FROM a))
+t2e_ps decimal(6,4) AVG(?)
+t2f_nm decimal(6,4) AVG(MINUTE(a))
+t2f_ps decimal(6,4) AVG(?)
+t2e_nm bigint(3) MIN(EXTRACT(MINUTE FROM a))
+t2e_ps bigint(3) MIN(?)
+t2f_nm bigint(3) MIN(MINUTE(a))
+t2f_ps bigint(3) MIN(?)
+t2e_nm bigint(3) MAX(EXTRACT(MINUTE FROM a))
+t2e_ps bigint(3) MAX(?)
+t2f_nm bigint(3) MAX(MINUTE(a))
+t2f_ps bigint(3) MAX(?)
+t2e_nm mediumtext GROUP_CONCAT(EXTRACT(MINUTE FROM a))
+t2e_ps mediumtext GROUP_CONCAT(?)
+t2f_nm mediumtext GROUP_CONCAT(MINUTE(a))
+t2f_ps mediumtext GROUP_CONCAT(?)
+
+
+# EXTRACT(SECONDS FROM expr) includes the sign for TIME
+# SECONDS(expr) returns the absolute value
+CALL p1('SECOND');
+EXECUTE IMMEDIATE 'CREATE TABLE t1e_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING SECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), SECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), SECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), SECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), SECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), SECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), SECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), SECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), SECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), SECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), SECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), SECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), SECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), SECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), SECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), SECOND(TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2e_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(SECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING SECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), SECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), SECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), SECOND(TIMESTAMP'2001-12-13 10:20:30.999999');
+CALL show_drop;
+TABLE_NAME COLUMN_TYPE COLUMN_NAME
+t1e_nm int(3) EXTRACT(SECOND FROM a)
+t1e_ps int(3) ?
+t1f_nm int(3) SECOND(a)
+t1f_ps int(3) ?
+t1e_nm bigint(20) unsigned CAST(EXTRACT(SECOND FROM a) AS UNSIGNED)
+t1e_ps bigint(20) unsigned CAST(? AS UNSIGNED)
+t1f_nm int(2) unsigned CAST(SECOND(a) AS UNSIGNED)
+t1f_ps int(2) unsigned CAST(? AS UNSIGNED)
+t1e_nm int(3) CAST(EXTRACT(SECOND FROM a) AS SIGNED)
+t1e_ps int(3) CAST(? AS SIGNED)
+t1f_nm int(3) CAST(SECOND(a) AS SIGNED)
+t1f_ps int(3) CAST(? AS SIGNED)
+t1e_nm int(3) ABS(EXTRACT(SECOND FROM a))
+t1e_ps int(3) ABS(?)
+t1f_nm int(3) ABS(SECOND(a))
+t1f_ps int(3) ABS(?)
+t1e_nm int(3) ROUND(EXTRACT(SECOND FROM a))
+t1e_ps int(3) ROUND(?)
+t1f_nm int(3) ROUND(SECOND(a))
+t1f_ps int(3) ROUND(?)
+t1e_nm int(4) -EXTRACT(SECOND FROM a)
+t1e_ps int(4) -?
+t1f_nm int(3) -SECOND(a)
+t1f_ps int(3) -?
+t1e_nm int(4) ROUND(EXTRACT(SECOND FROM a),-1)
+t1e_ps int(4) ROUND(?,-1)
+t1f_nm int(4) ROUND(SECOND(a),-1)
+t1f_ps int(4) ROUND(?,-1)
+t1e_nm int(4) EXTRACT(SECOND FROM a)+0
+t1e_ps int(4) ?+0
+t1f_nm int(4) SECOND(a)+0
+t1f_ps int(4) ?+0
+t1e_nm decimal(4,1) EXTRACT(SECOND FROM a)+0.0
+t1e_ps decimal(4,1) ?+0.0
+t1f_nm decimal(4,1) SECOND(a)+0.0
+t1f_ps decimal(4,1) ?+0.0
+t1e_nm varchar(3) CONCAT(EXTRACT(SECOND FROM a))
+t1e_ps varchar(3) CONCAT(?)
+t1f_nm varchar(2) CONCAT(SECOND(a))
+t1f_ps varchar(2) CONCAT(?)
+t1e_nm int(3) LEAST(EXTRACT(SECOND FROM a),EXTRACT(SECOND FROM a))
+t1e_ps int(3) LEAST(?,?)
+t1f_nm int(3) LEAST(SECOND(a),SECOND(a))
+t1f_ps int(3) LEAST(?,?)
+t1e_nm int(3) COALESCE(EXTRACT(SECOND FROM a))
+t1e_ps int(3) COALESCE(?)
+t1f_nm int(3) COALESCE(SECOND(a))
+t1f_ps int(3) COALESCE(?)
+t1e_nm int(3) COALESCE(EXTRACT(SECOND FROM a),CAST(1 AS SIGNED))
+t1e_ps int(3) COALESCE(?,CAST(1 AS SIGNED))
+t1f_nm int(3) COALESCE(SECOND(a),CAST(1 AS SIGNED))
+t1f_ps int(3) COALESCE(?,CAST(1 AS SIGNED))
+t1e_nm decimal(2,0) COALESCE(EXTRACT(SECOND FROM a),CAST(1 AS UNSIGNED))
+t1e_ps decimal(2,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1f_nm decimal(2,0) COALESCE(SECOND(a),CAST(1 AS UNSIGNED))
+t1f_ps decimal(2,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1e_nm int(3) @a:=EXTRACT(SECOND FROM a)
+t1e_ps int(3) @a:=?
+t1f_nm int(3) @a:=SECOND(a)
+t1f_ps int(3) @a:=?
+t2e_nm decimal(6,4) AVG(EXTRACT(SECOND FROM a))
+t2e_ps decimal(6,4) AVG(?)
+t2f_nm decimal(6,4) AVG(SECOND(a))
+t2f_ps decimal(6,4) AVG(?)
+t2e_nm bigint(3) MIN(EXTRACT(SECOND FROM a))
+t2e_ps bigint(3) MIN(?)
+t2f_nm bigint(3) MIN(SECOND(a))
+t2f_ps bigint(3) MIN(?)
+t2e_nm bigint(3) MAX(EXTRACT(SECOND FROM a))
+t2e_ps bigint(3) MAX(?)
+t2f_nm bigint(3) MAX(SECOND(a))
+t2f_ps bigint(3) MAX(?)
+t2e_nm mediumtext GROUP_CONCAT(EXTRACT(SECOND FROM a))
+t2e_ps mediumtext GROUP_CONCAT(?)
+t2f_nm mediumtext GROUP_CONCAT(SECOND(a))
+t2f_ps mediumtext GROUP_CONCAT(?)
+
+
+# EXTRACT(MICROSECONDS FROM expr) includes the sign for TIME
+# MICROSECONDS(expr) returns the absolute value
+CALL p1('MICROSECOND');
+EXECUTE IMMEDIATE 'CREATE TABLE t1e_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2e_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999'), EXTRACT(MICROSECOND FROM TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999'), MICROSECOND(TIMESTAMP'2001-12-13 10:20:30.999999');
+CALL show_drop;
+TABLE_NAME COLUMN_TYPE COLUMN_NAME
+t1e_nm int(7) EXTRACT(MICROSECOND FROM a)
+t1e_ps int(7) ?
+t1f_nm int(7) MICROSECOND(a)
+t1f_ps int(7) ?
+t1e_nm bigint(20) unsigned CAST(EXTRACT(MICROSECOND FROM a) AS UNSIGNED)
+t1e_ps bigint(20) unsigned CAST(? AS UNSIGNED)
+t1f_nm int(6) unsigned CAST(MICROSECOND(a) AS UNSIGNED)
+t1f_ps int(6) unsigned CAST(? AS UNSIGNED)
+t1e_nm int(7) CAST(EXTRACT(MICROSECOND FROM a) AS SIGNED)
+t1e_ps int(7) CAST(? AS SIGNED)
+t1f_nm int(7) CAST(MICROSECOND(a) AS SIGNED)
+t1f_ps int(7) CAST(? AS SIGNED)
+t1e_nm int(7) ABS(EXTRACT(MICROSECOND FROM a))
+t1e_ps int(7) ABS(?)
+t1f_nm int(7) ABS(MICROSECOND(a))
+t1f_ps int(7) ABS(?)
+t1e_nm int(7) ROUND(EXTRACT(MICROSECOND FROM a))
+t1e_ps int(7) ROUND(?)
+t1f_nm int(7) ROUND(MICROSECOND(a))
+t1f_ps int(7) ROUND(?)
+t1e_nm int(8) -EXTRACT(MICROSECOND FROM a)
+t1e_ps int(8) -?
+t1f_nm int(7) -MICROSECOND(a)
+t1f_ps int(7) -?
+t1e_nm int(8) ROUND(EXTRACT(MICROSECOND FROM a),-1)
+t1e_ps int(8) ROUND(?,-1)
+t1f_nm int(8) ROUND(MICROSECOND(a),-1)
+t1f_ps int(8) ROUND(?,-1)
+t1e_nm int(8) EXTRACT(MICROSECOND FROM a)+0
+t1e_ps int(8) ?+0
+t1f_nm int(8) MICROSECOND(a)+0
+t1f_ps int(8) ?+0
+t1e_nm decimal(8,1) EXTRACT(MICROSECOND FROM a)+0.0
+t1e_ps decimal(8,1) ?+0.0
+t1f_nm decimal(8,1) MICROSECOND(a)+0.0
+t1f_ps decimal(8,1) ?+0.0
+t1e_nm varchar(7) CONCAT(EXTRACT(MICROSECOND FROM a))
+t1e_ps varchar(7) CONCAT(?)
+t1f_nm varchar(6) CONCAT(MICROSECOND(a))
+t1f_ps varchar(6) CONCAT(?)
+t1e_nm int(7) LEAST(EXTRACT(MICROSECOND FROM a),EXTRACT(MICROSECOND FROM a))
+t1e_ps int(7) LEAST(?,?)
+t1f_nm int(7) LEAST(MICROSECOND(a),MICROSECOND(a))
+t1f_ps int(7) LEAST(?,?)
+t1e_nm int(7) COALESCE(EXTRACT(MICROSECOND FROM a))
+t1e_ps int(7) COALESCE(?)
+t1f_nm int(7) COALESCE(MICROSECOND(a))
+t1f_ps int(7) COALESCE(?)
+t1e_nm int(7) COALESCE(EXTRACT(MICROSECOND FROM a),CAST(1 AS SIGNED))
+t1e_ps int(7) COALESCE(?,CAST(1 AS SIGNED))
+t1f_nm int(7) COALESCE(MICROSECOND(a),CAST(1 AS SIGNED))
+t1f_ps int(7) COALESCE(?,CAST(1 AS SIGNED))
+t1e_nm decimal(6,0) COALESCE(EXTRACT(MICROSECOND FROM a),CAST(1 AS UNSIGNED))
+t1e_ps decimal(6,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1f_nm decimal(6,0) COALESCE(MICROSECOND(a),CAST(1 AS UNSIGNED))
+t1f_ps decimal(6,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1e_nm int(7) @a:=EXTRACT(MICROSECOND FROM a)
+t1e_ps int(7) @a:=?
+t1f_nm int(7) @a:=MICROSECOND(a)
+t1f_ps int(7) @a:=?
+t2e_nm decimal(10,4) AVG(EXTRACT(MICROSECOND FROM a))
+t2e_ps decimal(10,4) AVG(?)
+t2f_nm decimal(10,4) AVG(MICROSECOND(a))
+t2f_ps decimal(10,4) AVG(?)
+t2e_nm bigint(7) MIN(EXTRACT(MICROSECOND FROM a))
+t2e_ps bigint(7) MIN(?)
+t2f_nm bigint(7) MIN(MICROSECOND(a))
+t2f_ps bigint(7) MIN(?)
+t2e_nm bigint(7) MAX(EXTRACT(MICROSECOND FROM a))
+t2e_ps bigint(7) MAX(?)
+t2f_nm bigint(7) MAX(MICROSECOND(a))
+t2f_ps bigint(7) MAX(?)
+t2e_nm mediumtext GROUP_CONCAT(EXTRACT(MICROSECOND FROM a))
+t2e_ps mediumtext GROUP_CONCAT(?)
+t2f_nm mediumtext GROUP_CONCAT(MICROSECOND(a))
+t2f_ps mediumtext GROUP_CONCAT(?)
+
+
+# DAYOFYEAR
+CALL p1('DAYOFYEAR');
+EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?' USING DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999');
+EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?)' USING DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999'), DAYOFYEAR(TIMESTAMP'2001-12-13 10:20:30.999999');
+CALL show_drop;
+TABLE_NAME COLUMN_TYPE COLUMN_NAME
+t1f_nm int(4) DAYOFYEAR(a)
+t1f_ps int(4) ?
+t1f_nm int(3) unsigned CAST(DAYOFYEAR(a) AS UNSIGNED)
+t1f_ps int(3) unsigned CAST(? AS UNSIGNED)
+t1f_nm int(4) CAST(DAYOFYEAR(a) AS SIGNED)
+t1f_ps int(4) CAST(? AS SIGNED)
+t1f_nm int(4) ABS(DAYOFYEAR(a))
+t1f_ps int(4) ABS(?)
+t1f_nm int(4) ROUND(DAYOFYEAR(a))
+t1f_ps int(4) ROUND(?)
+t1f_nm int(4) -DAYOFYEAR(a)
+t1f_ps int(4) -?
+t1f_nm int(5) ROUND(DAYOFYEAR(a),-1)
+t1f_ps int(5) ROUND(?,-1)
+t1f_nm int(5) DAYOFYEAR(a)+0
+t1f_ps int(5) ?+0
+t1f_nm decimal(5,1) DAYOFYEAR(a)+0.0
+t1f_ps decimal(5,1) ?+0.0
+t1f_nm varchar(3) CONCAT(DAYOFYEAR(a))
+t1f_ps varchar(3) CONCAT(?)
+t1f_nm int(4) LEAST(DAYOFYEAR(a),DAYOFYEAR(a))
+t1f_ps int(4) LEAST(?,?)
+t1f_nm int(4) COALESCE(DAYOFYEAR(a))
+t1f_ps int(4) COALESCE(?)
+t1f_nm int(4) COALESCE(DAYOFYEAR(a),CAST(1 AS SIGNED))
+t1f_ps int(4) COALESCE(?,CAST(1 AS SIGNED))
+t1f_nm decimal(3,0) COALESCE(DAYOFYEAR(a),CAST(1 AS UNSIGNED))
+t1f_ps decimal(3,0) COALESCE(?,CAST(1 AS UNSIGNED))
+t1f_nm int(4) @a:=DAYOFYEAR(a)
+t1f_ps int(4) @a:=?
+t2f_nm decimal(7,4) AVG(DAYOFYEAR(a))
+t2f_ps decimal(7,4) AVG(?)
+t2f_nm bigint(4) MIN(DAYOFYEAR(a))
+t2f_ps bigint(4) MIN(?)
+t2f_nm bigint(4) MAX(DAYOFYEAR(a))
+t2f_ps bigint(4) MAX(?)
+t2f_nm mediumtext GROUP_CONCAT(DAYOFYEAR(a))
+t2f_ps mediumtext GROUP_CONCAT(?)
+DROP TABLE t1;
+DROP PROCEDURE p1;
+DROP PROCEDURE show_drop;
+DROP FUNCTION params;
+DROP FUNCTION select01;
+DROP FUNCTION select02;
+#
+# End of 10.5 tests
+#
diff --git a/mysql-test/main/func_extract.test b/mysql-test/main/func_extract.test
index 97920f18..dd808443 100644
--- a/mysql-test/main/func_extract.test
+++ b/mysql-test/main/func_extract.test
@@ -263,3 +263,254 @@ SELECT
FROM t1;
DROP TABLE t1;
--enable_view_protocol
+
+
+--echo #
+--echo # Start of 10.5 tests
+--echo #
+
+--echo #
+--echo # MDEV-33496 Out of range error in AVG(YEAR(datetime)) due to a wrong data type
+--echo #
+
+let select01=SELECT ?, CAST(? AS UNSIGNED), CAST(? AS SIGNED), ABS(?), ROUND(?), -?, ROUND(?,-1), ?+0, ?+0.0, CONCAT(?), LEAST(?,?), COALESCE(?), COALESCE(?,CAST(1 AS SIGNED)), COALESCE(?,CAST(1 AS UNSIGNED)), @a:=?;
+let pcount01=16;
+let select02=SELECT AVG(?), MIN(?), MAX(?), GROUP_CONCAT(?);
+let pcount02=4;
+let ts=TIMESTAMP'2001-12-13 10:20:30.999999';
+
+eval CREATE FUNCTION select01() RETURNS TEXT RETURN '$select01';
+eval CREATE FUNCTION select02() RETURNS TEXT RETURN '$select02';
+
+CREATE TABLE t1 (a DATETIME(6));
+INSERT INTO t1 VALUES ('2001-12-31 10:20:30.999999');
+
+DELIMITER $$;
+CREATE FUNCTION params(expr TEXT, count INT) RETURNS TEXT
+BEGIN
+ RETURN CONCAT(expr, REPEAT(CONCAT(', ', expr), count-1));
+END;
+$$
+CREATE PROCEDURE show_drop()
+BEGIN
+ SELECT TABLE_NAME, COLUMN_TYPE, COLUMN_NAME
+ FROM INFORMATION_SCHEMA.COLUMNS
+ WHERE TABLE_SCHEMA='test'
+ AND TABLE_NAME IN ('t1e_nm','t2e_nm','t1f_nm','t2f_nm',
+ 't1e_ps','t1f_ps','t2e_ps','t2f_ps')
+ ORDER BY LEFT(TABLE_NAME, 2), ORDINAL_POSITION, TABLE_NAME;
+
+ FOR rec IN (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
+ WHERE TABLE_SCHEMA='test'
+ AND TABLE_NAME IN ('t1e_nm','t2e_nm','t1f_nm','t2f_nm',
+ 't1e_ps','t1f_ps','t2e_ps','t2f_ps'))
+ DO
+ EXECUTE IMMEDIATE CONCAT('DROP TABLE ', rec.TABLE_NAME);
+ END FOR;
+END;
+$$
+CREATE PROCEDURE p1(unit VARCHAR(32))
+BEGIN
+ DECLARE do_extract BOOL DEFAULT unit NOT IN('DAYOFYEAR');
+
+ DECLARE query01 TEXT DEFAULT
+ CONCAT('CREATE TABLE t2 AS ', select01(), ' FROM t1');
+
+ DECLARE query02 TEXT DEFAULT
+ CONCAT('CREATE TABLE t2 AS ', select02(), ' FROM t1');
+
+ IF (do_extract)
+ THEN
+ EXECUTE IMMEDIATE REPLACE(REPLACE(query01,'t2','t1e_nm'),'?', CONCAT('EXTRACT(',unit,' FROM a)'));
+ EXECUTE IMMEDIATE REPLACE(REPLACE(query02,'t2','t2e_nm'),'?', CONCAT('EXTRACT(',unit,' FROM a)'));
+ END IF;
+ EXECUTE IMMEDIATE REPLACE(REPLACE(query01,'t2','t1f_nm'),'?', CONCAT(unit,'(a)'));
+ EXECUTE IMMEDIATE REPLACE(REPLACE(query02,'t2','t2f_nm'),'?', CONCAT(unit,'(a)'));
+END;
+$$
+DELIMITER ;$$
+
+
+--echo
+--echo
+--echo # EXTRACT(YEAR FROM expr) and YEAR(expr) are equivalent
+
+CALL p1('YEAR');
+let extr=EXTRACT(YEAR FROM $ts);
+let func=YEAR($ts);
+let extr01=`SELECT params("$extr", $pcount01) AS p`;
+let func01=`SELECT params("$func", $pcount01) AS p`;
+let extr02=`SELECT params("$extr", $pcount02) AS p`;
+let func02=`SELECT params("$func", $pcount02) AS p`;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1e_ps AS $select01' USING $extr01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS $select01' USING $func01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2e_ps AS $select02' USING $extr02;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS $select02' USING $func02;
+CALL show_drop;
+
+
+--echo
+--echo
+--echo # EXTRACT(QUARTER FROM expr) and QUARTER(expr) are equavalent
+
+CALL p1('QUARTER');
+let extr=EXTRACT(QUARTER FROM $ts);
+let func=QUARTER($ts);
+let extr01=`SELECT params("$extr", $pcount01) AS p`;
+let func01=`SELECT params("$func", $pcount01) AS p`;
+let extr02=`SELECT params("$extr", $pcount02) AS p`;
+let func02=`SELECT params("$func", $pcount02) AS p`;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1e_ps AS $select01' USING $extr01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS $select01' USING $func01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2e_ps AS $select02' USING $extr02;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS $select02' USING $func02;
+CALL show_drop;
+
+--echo
+--echo
+--echo # EXTRACT(MONTH FROM expr) and MONTH(expr) are equavalent
+
+CALL p1('MONTH');
+let extr=EXTRACT(MONTH FROM $ts);
+let func=MONTH($ts);
+let extr01=`SELECT params("$extr", $pcount01) AS p`;
+let func01=`SELECT params("$func", $pcount01) AS p`;
+let extr02=`SELECT params("$extr", $pcount02) AS p`;
+let func02=`SELECT params("$func", $pcount02) AS p`;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1e_ps AS $select01' USING $extr01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS $select01' USING $func01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2e_ps AS $select02' USING $extr02;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS $select02' USING $func02;
+CALL show_drop;
+
+--echo
+--echo
+--echo # EXTRACT(WEEK FROM expr) and WEEK(expr) are equavalent
+
+CALL p1('WEEK');
+let extr=EXTRACT(WEEK FROM $ts);
+let func=WEEK($ts);
+let extr01=`SELECT params("$extr", $pcount01) AS p`;
+let func01=`SELECT params("$func", $pcount01) AS p`;
+let extr02=`SELECT params("$extr", $pcount02) AS p`;
+let func02=`SELECT params("$func", $pcount02) AS p`;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1e_ps AS $select01' USING $extr01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS $select01' USING $func01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2e_ps AS $select02' USING $extr02;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS $select02' USING $func02;
+CALL show_drop;
+
+--echo
+--echo
+--echo # EXTRACT(DAY FROM expr) returns hours/24 and includes the sign for TIME
+--echo # DAY(expr) returns the DD part of CAST(expr AS DATETIME)
+
+CALL p1('DAY');
+let extr=EXTRACT(DAY FROM $ts);
+let func=DAY($ts);
+let extr01=`SELECT params("$extr", $pcount01) AS p`;
+let func01=`SELECT params("$func", $pcount01) AS p`;
+let extr02=`SELECT params("$extr", $pcount02) AS p`;
+let func02=`SELECT params("$func", $pcount02) AS p`;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1e_ps AS $select01' USING $extr01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS $select01' USING $func01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2e_ps AS $select02' USING $extr02;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS $select02' USING $func02;
+CALL show_drop;
+
+--echo
+--echo
+--echo # EXTRACT(HOUR FROM expr) returns hours%24 and includes the sign for TIME
+--echo # HOUR(expr) returns the hh part of CAST(expr AS DATETIME)
+
+CALL p1('HOUR');
+let extr=EXTRACT(HOUR FROM $ts);
+let func=HOUR($ts);
+let extr01=`SELECT params("$extr", $pcount01) AS p`;
+let func01=`SELECT params("$func", $pcount01) AS p`;
+let extr02=`SELECT params("$extr", $pcount02) AS p`;
+let func02=`SELECT params("$func", $pcount02) AS p`;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1e_ps AS $select01' USING $extr01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS $select01' USING $func01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2e_ps AS $select02' USING $extr02;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS $select02' USING $func02;
+CALL show_drop;
+
+--echo
+--echo
+--echo # EXTRACT(MINUTE FROM expr) includes the sign for TIME
+--echo # MINUTE(expr) returns the absolute value
+
+CALL p1('MINUTE');
+let extr=EXTRACT(MINUTE FROM $ts);
+let func=MINUTE($ts);
+let extr01=`SELECT params("$extr", $pcount01) AS p`;
+let func01=`SELECT params("$func", $pcount01) AS p`;
+let extr02=`SELECT params("$extr", $pcount02) AS p`;
+let func02=`SELECT params("$func", $pcount02) AS p`;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1e_ps AS $select01' USING $extr01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS $select01' USING $func01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2e_ps AS $select02' USING $extr02;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS $select02' USING $func02;
+CALL show_drop;
+
+--echo
+--echo
+--echo # EXTRACT(SECONDS FROM expr) includes the sign for TIME
+--echo # SECONDS(expr) returns the absolute value
+
+CALL p1('SECOND');
+let extr=EXTRACT(SECOND FROM $ts);
+let func=SECOND($ts);
+let extr01=`SELECT params("$extr", $pcount01) AS p`;
+let func01=`SELECT params("$func", $pcount01) AS p`;
+let extr02=`SELECT params("$extr", $pcount02) AS p`;
+let func02=`SELECT params("$func", $pcount02) AS p`;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1e_ps AS $select01' USING $extr01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS $select01' USING $func01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2e_ps AS $select02' USING $extr02;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS $select02' USING $func02;
+CALL show_drop;
+
+--echo
+--echo
+--echo # EXTRACT(MICROSECONDS FROM expr) includes the sign for TIME
+--echo # MICROSECONDS(expr) returns the absolute value
+
+CALL p1('MICROSECOND');
+let extr=EXTRACT(MICROSECOND FROM $ts);
+let func=MICROSECOND($ts);
+let extr01=`SELECT params("$extr", $pcount01) AS p`;
+let func01=`SELECT params("$func", $pcount01) AS p`;
+let extr02=`SELECT params("$extr", $pcount02) AS p`;
+let func02=`SELECT params("$func", $pcount02) AS p`;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1e_ps AS $select01' USING $extr01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS $select01' USING $func01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2e_ps AS $select02' USING $extr02;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS $select02' USING $func02;
+CALL show_drop;
+
+--echo
+--echo
+--echo # DAYOFYEAR
+
+CALL p1('DAYOFYEAR');
+let func=DAYOFYEAR($ts);
+let func01=`SELECT params("$func", $pcount01) AS p`;
+let func02=`SELECT params("$func", $pcount02) AS p`;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t1f_ps AS $select01' USING $func01;
+eval EXECUTE IMMEDIATE 'CREATE TABLE t2f_ps AS $select02' USING $func02;
+CALL show_drop;
+
+
+DROP TABLE t1;
+DROP PROCEDURE p1;
+DROP PROCEDURE show_drop;
+DROP FUNCTION params;
+
+DROP FUNCTION select01;
+DROP FUNCTION select02;
+
+--echo #
+--echo # End of 10.5 tests
+--echo #
diff --git a/mysql-test/main/func_gconcat.result b/mysql-test/main/func_gconcat.result
index fea25124..f817a117 100644
--- a/mysql-test/main/func_gconcat.result
+++ b/mysql-test/main/func_gconcat.result
@@ -1443,3 +1443,98 @@ drop table t1;
#
# End of 10.3 tests
#
+#
+# MDEV-31276: Execution of PS from grouping query with join
+# and GROUP_CONCAT set function
+#
+create table t1 (a int, b varchar(20)) engine=myisam;
+create table t2 (a int, c varchar(20)) engine=myisam;
+insert into t1 values (1,"aaaaaaaaaa"),(2,"bbbbbbbbbb");
+insert into t2 values (1,"cccccccccc"),(2,"dddddddddd");
+insert into t2 values (1,"eeeeeee"),(2,"fffffff");
+set group_concat_max_len=5;
+select count(*), group_concat(t1.b,t2.c)
+from t1 join t2 on t1.a=t2.a group by t1.a;
+count(*) group_concat(t1.b,t2.c)
+2 aaaaa
+2 bbbbb
+Warnings:
+Warning 1260 Row 1 was cut by GROUP_CONCAT()
+Warning 1260 Row 2 was cut by GROUP_CONCAT()
+explain select count(*), group_concat(t1.b,t2.c)
+from t1 join t2 on t1.a=t2.a group by t1.a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
+1 SIMPLE t2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
+prepare stmt from "select count(*), group_concat(t1.b,t2.c)
+from t1 join t2 on t1.a=t2.a group by t1.a";
+execute stmt;
+count(*) group_concat(t1.b,t2.c)
+2 aaaaa
+2 bbbbb
+Warnings:
+Warning 1260 Row 1 was cut by GROUP_CONCAT()
+Warning 1260 Row 2 was cut by GROUP_CONCAT()
+execute stmt;
+count(*) group_concat(t1.b,t2.c)
+2 aaaaa
+2 bbbbb
+Warnings:
+Warning 1260 Row 1 was cut by GROUP_CONCAT()
+Warning 1260 Row 2 was cut by GROUP_CONCAT()
+deallocate prepare stmt;
+set join_cache_level=0;
+select count(*), group_concat(t1.b,t2.c)
+from t1 join t2 on t1.a=t2.a group by t1.a;
+count(*) group_concat(t1.b,t2.c)
+2 aaaaa
+2 bbbbb
+Warnings:
+Warning 1260 Row 1 was cut by GROUP_CONCAT()
+Warning 1260 Row 2 was cut by GROUP_CONCAT()
+explain select count(*), group_concat(t1.b,t2.c)
+from t1 join t2 on t1.a=t2.a group by t1.a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using filesort
+1 SIMPLE t2 ALL NULL NULL NULL NULL 4 Using where
+prepare stmt from "select count(*), group_concat(t1.b,t2.c)
+from t1 join t2 on t1.a=t2.a group by t1.a";
+execute stmt;
+count(*) group_concat(t1.b,t2.c)
+2 aaaaa
+2 bbbbb
+Warnings:
+Warning 1260 Row 1 was cut by GROUP_CONCAT()
+Warning 1260 Row 2 was cut by GROUP_CONCAT()
+execute stmt;
+count(*) group_concat(t1.b,t2.c)
+2 aaaaa
+2 bbbbb
+Warnings:
+Warning 1260 Row 1 was cut by GROUP_CONCAT()
+Warning 1260 Row 2 was cut by GROUP_CONCAT()
+deallocate prepare stmt;
+set join_cache_level=default;
+set group_concat_max_len=default;
+drop table t1,t2;
+#
+# MDEV-33772 Bad SEPARATOR value in GROUP_CONCAT on character set conversion
+#
+SET NAMES utf8, @@collation_connection=latin1_swedish_ci;
+CREATE TABLE t1 (c VARCHAR(10)) CHARACTER SET latin1;
+INSERT INTO t1 VALUES ('a'),('A');
+CREATE OR REPLACE VIEW v1 AS
+SELECT GROUP_CONCAT(c SEPARATOR 'ß') AS c1 FROM t1 GROUP BY c;
+SELECT * FROM v1;
+c1
+aßA
+SELECT HEX(c1) FROM v1;
+HEX(c1)
+61DF41
+SHOW CREATE VIEW v1;
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select group_concat(`t1`.`c` separator 'ß') AS `c1` from `t1` group by `t1`.`c` utf8mb3 latin1_swedish_ci
+DROP VIEW v1;
+DROP TABLE t1;
+SET NAMES latin1;
+# End of 10.5 tests
diff --git a/mysql-test/main/func_gconcat.test b/mysql-test/main/func_gconcat.test
index cc5236a1..c9787ce4 100644
--- a/mysql-test/main/func_gconcat.test
+++ b/mysql-test/main/func_gconcat.test
@@ -1066,3 +1066,59 @@ drop table t1;
--echo #
--echo # End of 10.3 tests
--echo #
+
+--echo #
+--echo # MDEV-31276: Execution of PS from grouping query with join
+--echo # and GROUP_CONCAT set function
+--echo #
+
+create table t1 (a int, b varchar(20)) engine=myisam;
+create table t2 (a int, c varchar(20)) engine=myisam;
+insert into t1 values (1,"aaaaaaaaaa"),(2,"bbbbbbbbbb");
+insert into t2 values (1,"cccccccccc"),(2,"dddddddddd");
+insert into t2 values (1,"eeeeeee"),(2,"fffffff");
+
+let $q=
+select count(*), group_concat(t1.b,t2.c)
+ from t1 join t2 on t1.a=t2.a group by t1.a;
+
+set group_concat_max_len=5;
+
+eval $q;
+eval explain $q;
+eval prepare stmt from "$q";
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+
+set join_cache_level=0;
+
+eval $q;
+eval explain $q;
+eval prepare stmt from "$q";
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+
+set join_cache_level=default;
+set group_concat_max_len=default;
+
+drop table t1,t2;
+
+--echo #
+--echo # MDEV-33772 Bad SEPARATOR value in GROUP_CONCAT on character set conversion
+--echo #
+
+SET NAMES utf8, @@collation_connection=latin1_swedish_ci;
+CREATE TABLE t1 (c VARCHAR(10)) CHARACTER SET latin1;
+INSERT INTO t1 VALUES ('a'),('A');
+CREATE OR REPLACE VIEW v1 AS
+ SELECT GROUP_CONCAT(c SEPARATOR 'ß') AS c1 FROM t1 GROUP BY c;
+SELECT * FROM v1;
+SELECT HEX(c1) FROM v1;
+SHOW CREATE VIEW v1;
+DROP VIEW v1;
+DROP TABLE t1;
+SET NAMES latin1;
+
+--echo # End of 10.5 tests
diff --git a/mysql-test/main/func_hybrid_type.result b/mysql-test/main/func_hybrid_type.result
index bf965a9f..e6c08dab 100644
--- a/mysql-test/main/func_hybrid_type.result
+++ b/mysql-test/main/func_hybrid_type.result
@@ -4313,5 +4313,30 @@ ERROR HY000: Illegal parameter data types bigint unsigned and row for operation
SELECT @@max_allowed_packet=ROW(1,1);
ERROR HY000: Illegal parameter data types bigint unsigned and row for operation '='
#
+# MDEV-21034 GREATEST() and LEAST() malfunction for NULL
+#
+SELECT 5 AS c1 FROM dual WHERE GREATEST(1, NULL);
+c1
+SELECT 5 AS c1 FROM dual WHERE LEAST(1, NULL);
+c1
+CREATE TABLE t0 (c0 INT);
+INSERT INTO t0 VALUES (1);
+SELECT * FROM t0 WHERE GREATEST(c0, NULL);
+c0
+SELECT * FROM t0 WHERE LEAST(c0, NULL);
+c0
+DROP TABLE t0;
+SELECT 5 AS c1 FROM dual WHERE GREATEST(1e0, NULL);
+c1
+SELECT 5 AS c1 FROM dual WHERE LEAST(1e0, NULL);
+c1
+CREATE TABLE t0 (c0 DOUBLE);
+INSERT INTO t0 VALUES (1);
+SELECT * FROM t0 WHERE GREATEST(c0, NULL);
+c0
+SELECT * FROM t0 WHERE LEAST(c0, NULL);
+c0
+DROP TABLE t0;
+#
# End of 10.5 tests
#
diff --git a/mysql-test/main/func_hybrid_type.test b/mysql-test/main/func_hybrid_type.test
index 508cdcfb..2ebfb3cf 100644
--- a/mysql-test/main/func_hybrid_type.test
+++ b/mysql-test/main/func_hybrid_type.test
@@ -1116,5 +1116,28 @@ SELECT 0x20+ROW(1,1);
SELECT @@max_allowed_packet=ROW(1,1);
--echo #
+--echo # MDEV-21034 GREATEST() and LEAST() malfunction for NULL
+--echo #
+
+SELECT 5 AS c1 FROM dual WHERE GREATEST(1, NULL);
+SELECT 5 AS c1 FROM dual WHERE LEAST(1, NULL);
+
+CREATE TABLE t0 (c0 INT);
+INSERT INTO t0 VALUES (1);
+SELECT * FROM t0 WHERE GREATEST(c0, NULL);
+SELECT * FROM t0 WHERE LEAST(c0, NULL);
+DROP TABLE t0;
+
+SELECT 5 AS c1 FROM dual WHERE GREATEST(1e0, NULL);
+SELECT 5 AS c1 FROM dual WHERE LEAST(1e0, NULL);
+
+CREATE TABLE t0 (c0 DOUBLE);
+INSERT INTO t0 VALUES (1);
+SELECT * FROM t0 WHERE GREATEST(c0, NULL);
+SELECT * FROM t0 WHERE LEAST(c0, NULL);
+DROP TABLE t0;
+
+
+--echo #
--echo # End of 10.5 tests
--echo #
diff --git a/mysql-test/main/func_in.result b/mysql-test/main/func_in.result
index b3865bab..1ddb5257 100644
--- a/mysql-test/main/func_in.result
+++ b/mysql-test/main/func_in.result
@@ -971,6 +971,84 @@ c1
9223372036854775808
drop table `a`;
#
+# MDEV-18319 BIGINT UNSIGNED Performance issue
+#
+CREATE OR REPLACE TABLE t1 (
+id bigint(20) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY
+);
+FOR i IN 0..255
+DO
+INSERT INTO t1 VALUES ();
+END FOR
+$$
+SELECT MIN(id), MAX(id), COUNT(*) FROM t1;
+MIN(id) MAX(id) COUNT(*)
+1 256 256
+EXPLAIN SELECT id FROM t1 WHERE id IN (1,2);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 8 NULL 2 Using where; Using index
+EXPLAIN SELECT id FROM t1 WHERE id IN (9223372036854775806, 9223372036854775807);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 8 NULL 2 Using where; Using index
+EXPLAIN SELECT id FROM t1 WHERE id IN (9223372036854775807, 9223372036854775808);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 8 NULL 2 Using where; Using index
+DROP TABLE t1;
+#
+# MDEV-18898 SELECT using wrong index when using operator IN with mixed types
+#
+CREATE TEMPORARY TABLE t1 (
+id int(10) unsigned NOT NULL AUTO_INCREMENT,
+name varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+PRIMARY KEY (`id`),
+UNIQUE KEY `name` (`name`)
+);
+FOR i IN 1..255
+DO
+INSERT INTO t1 VALUES (i, MD5(i));
+END FOR
+$$
+#
+# Constants alone
+#
+ANALYZE SELECT id, name FROM t1 WHERE id = 1;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 NULL 100.00 NULL
+ANALYZE SELECT id, name FROM t1 WHERE id = '2';
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 NULL 100.00 NULL
+#
+# Two constants using IN
+#
+ANALYZE SELECT id, name FROM t1 WHERE id IN (1, 2);
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 2.00 100.00 100.00 Using index condition
+ANALYZE SELECT id, name FROM t1 WHERE id IN ('1', 2) /* Used a wrong index */;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 2.00 100.00 100.00 Using index condition
+ANALYZE SELECT id, name FROM t1 WHERE id IN (1, '2') /* Used a wrong index */;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 2.00 100.00 100.00 Using index condition
+ANALYZE SELECT id, name FROM t1 WHERE id IN ('1', '2');
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 2.00 100.00 100.00 Using index condition
+#
+# Two constants using OR
+#
+ANALYZE SELECT id, name FROM t1 WHERE id = 1 OR id = 2;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 2.00 100.00 100.00 Using index condition
+ANALYZE SELECT id, name FROM t1 WHERE id = '1' OR id = '2';
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 2.00 100.00 100.00 Using index condition
+ANALYZE SELECT id, name FROM t1 WHERE id = 1 OR id = '2';
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 2.00 100.00 100.00 Using index condition
+ANALYZE SELECT id, name FROM t1 WHERE id = '1' OR id = 2;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 2.00 100.00 100.00 Using index condition
+DROP TABLE t1;
+#
# End of 10.5 tests
#
#
diff --git a/mysql-test/main/func_in.test b/mysql-test/main/func_in.test
index e39932a2..b88b68f2 100644
--- a/mysql-test/main/func_in.test
+++ b/mysql-test/main/func_in.test
@@ -743,6 +743,66 @@ SELECT c1 FROM a WHERE c1 IN ( 1, 9223372036854775808 );
drop table `a`;
--echo #
+--echo # MDEV-18319 BIGINT UNSIGNED Performance issue
+--echo #
+
+CREATE OR REPLACE TABLE t1 (
+ id bigint(20) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY
+);
+DELIMITER $$;
+FOR i IN 0..255
+DO
+ INSERT INTO t1 VALUES ();
+END FOR
+$$
+DELIMITER ;$$
+SELECT MIN(id), MAX(id), COUNT(*) FROM t1;
+EXPLAIN SELECT id FROM t1 WHERE id IN (1,2);
+EXPLAIN SELECT id FROM t1 WHERE id IN (9223372036854775806, 9223372036854775807);
+EXPLAIN SELECT id FROM t1 WHERE id IN (9223372036854775807, 9223372036854775808);
+DROP TABLE t1;
+
+
+--echo #
+--echo # MDEV-18898 SELECT using wrong index when using operator IN with mixed types
+--echo #
+
+CREATE TEMPORARY TABLE t1 (
+ id int(10) unsigned NOT NULL AUTO_INCREMENT,
+ name varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `name` (`name`)
+);
+DELIMITER $$;
+FOR i IN 1..255
+DO
+ INSERT INTO t1 VALUES (i, MD5(i));
+END FOR
+$$
+DELIMITER ;$$
+--echo #
+--echo # Constants alone
+--echo #
+ANALYZE SELECT id, name FROM t1 WHERE id = 1;
+ANALYZE SELECT id, name FROM t1 WHERE id = '2';
+--echo #
+--echo # Two constants using IN
+--echo #
+ANALYZE SELECT id, name FROM t1 WHERE id IN (1, 2);
+ANALYZE SELECT id, name FROM t1 WHERE id IN ('1', 2) /* Used a wrong index */;
+ANALYZE SELECT id, name FROM t1 WHERE id IN (1, '2') /* Used a wrong index */;
+ANALYZE SELECT id, name FROM t1 WHERE id IN ('1', '2');
+--echo #
+--echo # Two constants using OR
+--echo #
+ANALYZE SELECT id, name FROM t1 WHERE id = 1 OR id = 2;
+ANALYZE SELECT id, name FROM t1 WHERE id = '1' OR id = '2';
+ANALYZE SELECT id, name FROM t1 WHERE id = 1 OR id = '2';
+ANALYZE SELECT id, name FROM t1 WHERE id = '1' OR id = 2;
+DROP TABLE t1;
+
+
+--echo #
--echo # End of 10.5 tests
--echo #
diff --git a/mysql-test/main/func_json.result b/mysql-test/main/func_json.result
index ea1767af..268a721a 100644
--- a/mysql-test/main/func_json.result
+++ b/mysql-test/main/func_json.result
@@ -272,7 +272,7 @@ create table t1 as select json_object('id', 87, 'name', 'carrot') as f;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `f` varchar(32) DEFAULT NULL
+ `f` varchar(46) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
select * from t1;
f
@@ -1690,6 +1690,33 @@ select json_arrayagg('ä'), json_objectagg(1, 'ä');
json_arrayagg('ä') json_objectagg(1, 'ä')
["ä"] {"1":"ä"}
#
+# MDEV-32287: JSON_EXTRACT not returning multiple values for same path
+#
+select JSON_EXTRACT("[1, 2, [30, 40]]", '$[2][1]', '$[2][1]');
+JSON_EXTRACT("[1, 2, [30, 40]]", '$[2][1]', '$[2][1]')
+[40, 40]
+#
+# MDEV-31402: SIGSEGV in json_get_path_next | Item_func_json_extract::read_json
+#
+CREATE TABLE t (id CHAR AS (JSON_COMPACT (JSON_EXTRACT(doc,"$._id"))) UNIQUE KEY,doc JSON,CONSTRAINT notnu CHECK (id IS NOT NULL));
+INSERT INTO t (doc) VALUES ('{ "_id" : { "$oid" : "0ca0b0f0" },"a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" :0} ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] }');
+ERROR 22001: Data too long for column 'id' at row 1
+DROP TABLE t;
+#
+# MDEV-19487: JSON_TYPE doesnt detect the type of String Values (returns NULL) and for Date/DateTime returns "INTEGER"
+#
+SELECT JSON_TYPE(json_value(JSON_OBJECT("id", 1, "name", 'Monty', "date", Cast('2019-01-01' as Date) ), '$.date')) as x;
+x
+NULL
+Warnings:
+Warning 4038 Syntax error in JSON text in argument 1 to function 'json_type' at position 5
+#
+# MDEV-22141: JSON_REMOVE returns NULL on valid arguments
+#
+SELECT JSON_REMOVE('{"A": { "B": 1 }}', '$.A.B.C.D');
+JSON_REMOVE('{"A": { "B": 1 }}', '$.A.B.C.D')
+{"A": {"B": 1}}
+#
# End of 10.5 tests
#
#
diff --git a/mysql-test/main/func_json.test b/mysql-test/main/func_json.test
index f8a656c9..54d7d73d 100644
--- a/mysql-test/main/func_json.test
+++ b/mysql-test/main/func_json.test
@@ -87,15 +87,12 @@ select json_extract('[10, 20, [30, 40], 1, 10]', '$[1]') as exp;
select json_extract('[10, 20, [30, 40], 1, 10]', '$[1]', '$[25]') as exp;
select json_extract( '[{"a": [3, 4]}, {"b": 2}]', '$[0].a', '$[1].a') as exp;
-#enable after MDEV-32454 fix
---disable_view_protocol
select json_insert('{"a":1, "b":{"c":1}, "d":[1, 2]}', '$.b.k1', 'word') as exp;
select json_insert('{"a":1, "b":{"c":1}, "d":[1, 2]}', '$.d[3]', 3) as exp;
select json_insert('{"a":1, "b":{"c":1}, "d":[1, 2]}', '$.a[2]', 2) as exp;
select json_insert('{"a":1, "b":{"c":1}, "d":[1, 2]}', '$.b.c', 'word') as exp;
select json_set('{ "a": 1, "b": [2, 3]}', '$.a', 10, '$.c', '[true, false]') as exp;
---enable_view_protocol
select json_replace('{ "a": 1, "b": [2, 3]}', '$.a', 10, '$.c', '[true, false]') as exp;
select json_replace('{ "a": 1, "b": [2, 3]}', '$.a', 10, '$.b', '[true, false]') as exp;
@@ -137,14 +134,11 @@ select json_merge('a','b');
select json_merge('{"a":"b"}','{"c":"d"}');
SELECT JSON_MERGE('[1, 2]', '{"id": 47}');
-#enable after MDEV-32454 fix
---disable_view_protocol
select json_type('{"k1":123, "k2":345}');
select json_type('[123, "k2", 345]');
select json_type("true");
select json_type('123');
select json_type('123.12');
---enable_view_protocol
select json_keys('{"a":{"c":1, "d":2}, "b":2}');
select json_keys('{"a":{"c":1, "d":2}, "b":2}', "$.a");
@@ -173,11 +167,8 @@ select json_search( json_col, 'all', 'foot' ) as ex from t1;
drop table t1;
-#enable after MDEV-32454 fix
---disable_view_protocol
select json_unquote('"abc"');
select json_unquote('abc');
---enable_view_protocol
#
# MDEV-13703 Illegal mix of collations for operation 'json_object' on using JSON_UNQUOTE as an argument.
#
@@ -188,13 +179,9 @@ select json_object('foo', json_unquote(json_object('bar', c)),'qux', c) as fld f
drop table t1;
-#enable after MDEV-32454 fix
---disable_view_protocol
select json_object("a", json_object("b", "abcd"));
select json_object("a", '{"b": "abcd"}');
select json_object("a", json_compact('{"b": "abcd"}'));
---enable_view_protocol
-
select json_compact(NULL);
select json_depth(json_compact(NULL));
@@ -270,11 +257,8 @@ select json_merge('{"a":{"u":12, "x":"b"}}', '{"a":{"x":"c"}}') as ex ;
select json_merge('{"a":{"u":12, "x":"b", "r":1}}', '{"a":{"x":"c", "r":2}}') as ex ;
select json_compact('{"a":1, "b":[1,2,3], "c":{"aa":"v1", "bb": "v2"}}') as ex;
-#enable after MDEV-32454 fix
---disable_view_protocol
select json_loose('{"a":1, "b":[1,2,3], "c":{"aa":"v1", "bb": "v2"}}') as ex;
select json_detailed('{"a":1, "b":[1,2,3], "c":{"aa":"v1", "bb": "v2"}}') as ex;
---enable_view_protocol
#
# MDEV-11856 json_search doesn't search for values with double quotes character (")
@@ -469,12 +453,9 @@ drop table t1;
--echo # MDEV-16750 JSON_SET mishandles unicode every second pair of arguments.
--echo #
-#enable after MDEV-32454 fix
---disable_view_protocol
SELECT JSON_SET('{}', '$.a', _utf8 0xC3B6) as exp;
SELECT JSON_SET('{}', '$.a', _utf8 0xC3B6, '$.b', _utf8 0xC3B6) as exp;
SELECT JSON_SET('{}', '$.a', _utf8 X'C3B6', '$.x', 1, '$.b', _utf8 X'C3B6') as exp;
---enable_view_protocol
--echo #
--echo # MDEV-17121 JSON_ARRAY_APPEND
@@ -1137,6 +1118,38 @@ set names latin1;
select json_arrayagg('ä'), json_objectagg(1, 'ä');
--enable_service_connection
+
+--echo #
+--echo # MDEV-32287: JSON_EXTRACT not returning multiple values for same path
+--echo #
+
+select JSON_EXTRACT("[1, 2, [30, 40]]", '$[2][1]', '$[2][1]');
+
+
+--echo #
+--echo # MDEV-31402: SIGSEGV in json_get_path_next | Item_func_json_extract::read_json
+--echo #
+
+CREATE TABLE t (id CHAR AS (JSON_COMPACT (JSON_EXTRACT(doc,"$._id"))) UNIQUE KEY,doc JSON,CONSTRAINT notnu CHECK (id IS NOT NULL));
+--error ER_DATA_TOO_LONG
+INSERT INTO t (doc) VALUES ('{ "_id" : { "$oid" : "0ca0b0f0" },"a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" :0} ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] }');
+
+DROP TABLE t;
+
+--echo #
+--echo # MDEV-19487: JSON_TYPE doesnt detect the type of String Values (returns NULL) and for Date/DateTime returns "INTEGER"
+--echo #
+
+SELECT JSON_TYPE(json_value(JSON_OBJECT("id", 1, "name", 'Monty', "date", Cast('2019-01-01' as Date) ), '$.date')) as x;
+
+
+--echo #
+--echo # MDEV-22141: JSON_REMOVE returns NULL on valid arguments
+--echo #
+
+SELECT JSON_REMOVE('{"A": { "B": 1 }}', '$.A.B.C.D');
+
+
--echo #
--echo # End of 10.5 tests
--echo #
diff --git a/mysql-test/main/func_json_notembedded.result b/mysql-test/main/func_json_notembedded.result
index 756d2e85..ba4d38dd 100644
--- a/mysql-test/main/func_json_notembedded.result
+++ b/mysql-test/main/func_json_notembedded.result
@@ -10,6 +10,8 @@ select length(@obj), length(@arr);
length(@obj) length(@arr)
5000009 5000009
set max_statement_time=0.0001;
+SET @old_debug= @@debug_dbug;
+SET debug_dbug='+d,debug_max_statement_time exceeded';
select json_array_append(@arr, '$[0]', 1);
ERROR 70100: Query execution was interrupted (max_statement_time exceeded)
select json_array_insert(@arr, '$[0]', 1);
@@ -34,6 +36,7 @@ select json_replace(@obj,'$.foo',1);
ERROR 70100: Query execution was interrupted (max_statement_time exceeded)
select json_set(@arr,'$[1000]',1);
ERROR 70100: Query execution was interrupted (max_statement_time exceeded)
+SET debug_dbug= @old_debug;
disconnect u;
connection default;
set global max_allowed_packet=default;
diff --git a/mysql-test/main/func_json_notembedded.test b/mysql-test/main/func_json_notembedded.test
index 893b2483..1e05571e 100644
--- a/mysql-test/main/func_json_notembedded.test
+++ b/mysql-test/main/func_json_notembedded.test
@@ -1,6 +1,7 @@
source include/have_profiling.inc;
source include/not_embedded.inc;
source include/no_valgrind_without_big.inc;
+source include/have_debug.inc;
set global max_allowed_packet=1073741824;
connect u,localhost,root;
@@ -16,6 +17,8 @@ select length(@obj), length(@arr);
set max_statement_time=0.0001;
disable_abort_on_error;
+SET @old_debug= @@debug_dbug;
+SET debug_dbug='+d,debug_max_statement_time exceeded';
select json_array_append(@arr, '$[0]', 1);
select json_array_insert(@arr, '$[0]', 1);
select json_insert(@obj, '$.meta', 1);
@@ -29,6 +32,7 @@ select json_remove(@obj,'$.foo');
select json_replace(@obj,'$.foo',1);
select json_set(@arr,'$[1000]',1);
enable_abort_on_error;
+SET debug_dbug= @old_debug;
disconnect u;
connection default;
set global max_allowed_packet=default;
diff --git a/mysql-test/main/func_math.result b/mysql-test/main/func_math.result
index 1c6c780e..5422cae4 100644
--- a/mysql-test/main/func_math.result
+++ b/mysql-test/main/func_math.result
@@ -3711,5 +3711,20 @@ SELECT CRC32(ExtractValue('<a><b/></a>', '/a/b')) AS f;
f
0
#
+# MDEV-33534 UBSAN: Negation of -X cannot be represented in type 'long long int'; cast to an unsigned type to negate this value to itself in my_double_round from sql/item_func.cc|
+#
+SELECT TRUNCATE(EXP(-1.e-2),-1.e+30) AS c1;
+c1
+0
+SELECT (TRUNCATE(EXP(-1.e-2),-1.e+30) % RADIANS(-1)) AS c1;
+c1
+0
+SELECT (TRUNCATE(EXP(-1.e-2),-1.e+30) % RADIANS(-1)) * (LAST_DAY('1-03-30 1:29:12') MOD 1 + COS(-1)) AS c1;
+c1
+0
+SELECT(ASIN(-1)+ LN(-1)) % (ATAN(-1) MOD FLOOR(1)) * (TRUNCATE(EXP(-1.e-2),-1.e+30) % RADIANS(-1)) * (LAST_DAY('1-03-30 1:29:12') MOD 1 + COS(-1)) AS c1;
+c1
+NULL
+#
# End of 10.5 tests
#
diff --git a/mysql-test/main/func_math.test b/mysql-test/main/func_math.test
index d4e85393..b32a1a46 100644
--- a/mysql-test/main/func_math.test
+++ b/mysql-test/main/func_math.test
@@ -1981,5 +1981,15 @@ SELECT CRC32(ExtractValue('<a><b/></a>', '/a/b')) AS f;
--echo #
+--echo # MDEV-33534 UBSAN: Negation of -X cannot be represented in type 'long long int'; cast to an unsigned type to negate this value to itself in my_double_round from sql/item_func.cc|
+--echo #
+
+SELECT TRUNCATE(EXP(-1.e-2),-1.e+30) AS c1;
+SELECT (TRUNCATE(EXP(-1.e-2),-1.e+30) % RADIANS(-1)) AS c1;
+SELECT (TRUNCATE(EXP(-1.e-2),-1.e+30) % RADIANS(-1)) * (LAST_DAY('1-03-30 1:29:12') MOD 1 + COS(-1)) AS c1;
+SELECT(ASIN(-1)+ LN(-1)) % (ATAN(-1) MOD FLOOR(1)) * (TRUNCATE(EXP(-1.e-2),-1.e+30) % RADIANS(-1)) * (LAST_DAY('1-03-30 1:29:12') MOD 1 + COS(-1)) AS c1;
+
+
+--echo #
--echo # End of 10.5 tests
--echo #
diff --git a/mysql-test/main/func_regexp.result b/mysql-test/main/func_regexp.result
index b883c818..7a9e24f8 100644
--- a/mysql-test/main/func_regexp.result
+++ b/mysql-test/main/func_regexp.result
@@ -110,7 +110,7 @@ R2
R3
deallocate prepare stmt1;
drop table t1;
-End of 4.1 tests
+# End of 4.1 tests
SELECT 1 REGEXP NULL;
1 REGEXP NULL
NULL
@@ -126,7 +126,7 @@ NULL
SELECT "ABC" REGEXP BINARY NULL;
"ABC" REGEXP BINARY NULL
NULL
-End of 5.0 tests
+# End of 5.0 tests
CREATE TABLE t1(a INT, b CHAR(4));
INSERT INTO t1 VALUES (1, '6.1'), (1, '7.0'), (1, '8.0');
PREPARE stmt1 FROM "SELECT a FROM t1 WHERE a=1 AND '7.0' REGEXP b LIMIT 1";
@@ -144,7 +144,7 @@ a
1
DEALLOCATE PREPARE stmt1;
DROP TABLE t1;
-End of 5.1 tests
+# End of 5.1 tests
SELECT ' ' REGEXP '[[:blank:]]';
' ' REGEXP '[[:blank:]]'
1
@@ -163,3 +163,49 @@ SELECT '\t' REGEXP '[[:space:]]';
SELECT REGEXP_INSTR('111222333',2);
REGEXP_INSTR('111222333',2)
4
+# End of 10.3 tests
+#
+# MDEV-33344 REGEXP empty string inconsistent
+#
+create table t1 (x char(5));
+insert t1 values (''), ('x');
+select 'foo' regexp x from t1 order by x asc;
+'foo' regexp x
+1
+0
+select 'foo' regexp x from t1 order by x desc;
+'foo' regexp x
+0
+1
+drop table t1;
+#
+# MDEV-21076 NOT NULL and UNIQUE constraints cause SUM() to yield an incorrect result
+#
+CREATE TABLE t0(c0 INT NOT NULL, c1 CHAR UNIQUE);
+INSERT INTO t0 VALUES (0, 1);
+INSERT INTO t0 VALUES (0, '');
+SELECT (c1 RLIKE c1), (c0 IS NULL) FROM t0;
+(c1 RLIKE c1) (c0 IS NULL)
+1 0
+1 0
+SELECT SUM(a.t) FROM (SELECT (c1 RLIKE c1) = (c0 IS NULL) as t FROM t0) as a;
+SUM(a.t)
+0
+DROP TABLE t0;
+#
+# MDEV-21058 CREATE TABLE with generated column and RLIKE results in sigabrt
+#
+CREATE TABLE t1 (c0 INT);
+INSERT INTO t1 VALUES (1),(2),(3);
+SELECT ('' RLIKE '[') AS c1 FROM t1;
+ERROR 42000: Regex error 'missing terminating ] for character class at offset 1'
+SELECT REGEXP_INSTR('','[') AS c1 FROM t1;
+ERROR 42000: Regex error 'missing terminating ] for character class at offset 1'
+SELECT c0, '' RLIKE NULL AS c1, REGEXP_INSTR('', NULL) AS c2
+FROM t1 ORDER BY c0;
+c0 c1 c2
+1 NULL NULL
+2 NULL NULL
+3 NULL NULL
+DROP TABLE t1;
+# End of 10.5 tests
diff --git a/mysql-test/main/func_regexp.test b/mysql-test/main/func_regexp.test
index 6d518626..fb441bde 100644
--- a/mysql-test/main/func_regexp.test
+++ b/mysql-test/main/func_regexp.test
@@ -55,7 +55,7 @@ execute stmt1 using @a;
deallocate prepare stmt1;
drop table t1;
---echo End of 4.1 tests
+--echo # End of 4.1 tests
#
@@ -74,7 +74,7 @@ SELECT NULL REGEXP BINARY NULL;
SELECT 'A' REGEXP BINARY NULL;
SELECT "ABC" REGEXP BINARY NULL;
---echo End of 5.0 tests
+--echo # End of 5.0 tests
#
@@ -91,7 +91,7 @@ DEALLOCATE PREPARE stmt1;
DROP TABLE t1;
---echo End of 5.1 tests
+--echo # End of 5.1 tests
#
# MDEV-5820 MySQL Bug #54805 definitions in regex/my_regex.h conflict with /usr/include/regex.h
@@ -110,3 +110,44 @@ SELECT '\t' REGEXP '[[:space:]]';
--echo #
SELECT REGEXP_INSTR('111222333',2);
+--echo # End of 10.3 tests
+
+--echo #
+--echo # MDEV-33344 REGEXP empty string inconsistent
+--echo #
+create table t1 (x char(5));
+insert t1 values (''), ('x');
+select 'foo' regexp x from t1 order by x asc;
+select 'foo' regexp x from t1 order by x desc;
+drop table t1;
+
+--echo #
+--echo # MDEV-21076 NOT NULL and UNIQUE constraints cause SUM() to yield an incorrect result
+--echo #
+
+CREATE TABLE t0(c0 INT NOT NULL, c1 CHAR UNIQUE);
+INSERT INTO t0 VALUES (0, 1);
+INSERT INTO t0 VALUES (0, '');
+SELECT (c1 RLIKE c1), (c0 IS NULL) FROM t0;
+SELECT SUM(a.t) FROM (SELECT (c1 RLIKE c1) = (c0 IS NULL) as t FROM t0) as a;
+DROP TABLE t0;
+
+--echo #
+--echo # MDEV-21058 CREATE TABLE with generated column and RLIKE results in sigabrt
+--echo #
+
+CREATE TABLE t1 (c0 INT);
+INSERT INTO t1 VALUES (1),(2),(3);
+
+--error ER_REGEXP_ERROR
+SELECT ('' RLIKE '[') AS c1 FROM t1;
+
+--error ER_REGEXP_ERROR
+SELECT REGEXP_INSTR('','[') AS c1 FROM t1;
+
+SELECT c0, '' RLIKE NULL AS c1, REGEXP_INSTR('', NULL) AS c2
+FROM t1 ORDER BY c0;
+
+DROP TABLE t1;
+
+--echo # End of 10.5 tests
diff --git a/mysql-test/main/func_sformat.result b/mysql-test/main/func_sformat.result
index 9e8a1167..11825604 100644
--- a/mysql-test/main/func_sformat.result
+++ b/mysql-test/main/func_sformat.result
@@ -23,10 +23,8 @@ select sformat('{} {}', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-sformat('{} {}', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) as x;
+x
0 0
select sformat('{{{}}}', 0);
sformat('{{{}}}', 0)
@@ -78,10 +76,8 @@ select sformat('{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {
33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
-106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120);
-sformat('{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
- {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
- {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120) as x;
+x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
@@ -97,10 +93,8 @@ select sformat('{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {
'69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84',
'85', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '100',
'101', '102', '103', '104', '105', '106', '107', '108', '109', '110', '111', '112', '113', '114',
-'115', '116', '117', '118', '119', '120');
-sformat('{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
- {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
- {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+'115', '116', '117', '118', '119', '120') as x;
+x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
@@ -159,8 +153,8 @@ insert into t2 values (0.0025, 25, 'A', DATE('2020-06-29')),
(0.0005, 5, 'B', DATE('2020-6-29')),
(5.5555, -5, 'C', DATE('200629')),
(-9, -9, 'D', DATE('20*06*29'));
-select sformat('p1 {:.4f} p2 {} p3 {} p4 {}', param1, param2, param3, param4) from t2;
-sformat('p1 {:.4f} p2 {} p3 {} p4 {}', param1, param2, param3, param4)
+select sformat('p1 {:.4f} p2 {} p3 {} p4 {}', param1, param2, param3, param4) x from t2;
+x
p1 0.0025 p2 25 p3 A p4 2020-06-29
p1 0.0005 p2 5 p3 B p4 2020-06-29
p1 5.5555 p2 -5 p3 C p4 2020-06-29
@@ -279,14 +273,14 @@ sformat('{: f}; {: f}', 3.14, -3.14)
select sformat('{:-f}; {:-f}', 3.14, -3.14);
sformat('{:-f}; {:-f}', 3.14, -3.14)
3.140000; -3.140000
-select sformat('The temperature is between {: } and {: } degrees celsius.', -3, 7);
-sformat('The temperature is between {: } and {: } degrees celsius.', -3, 7)
+select sformat('The temperature is between {: } and {: } degrees celsius.', -3, 7) x;
+x
The temperature is between -3 and 7 degrees celsius.
-select sformat('The temperature is between {:-} and {:-} degrees celsius.', -3, 7);
-sformat('The temperature is between {:-} and {:-} degrees celsius.', -3, 7)
+select sformat('The temperature is between {:-} and {:-} degrees celsius.', -3, 7) x;
+x
The temperature is between -3 and 7 degrees celsius.
-select sformat('The temperature is between {:+} and {:+} degrees celsius.', -3, 7);
-sformat('The temperature is between {:+} and {:+} degrees celsius.', -3, 7)
+select sformat('The temperature is between {:+} and {:+} degrees celsius.', -3, 7) x;
+x
The temperature is between -3 and +7 degrees celsius.
select sformat('We have {:<8} chickens.', 49);
sformat('We have {:<8} chickens.', 49)
@@ -427,8 +421,8 @@ set names utf8;
select sformat(_ucs2 x'003D007B007D003D', _ucs2 x'0442043504410442');
sformat(_ucs2 x'003D007B007D003D', _ucs2 x'0442043504410442')
=тест=
-select hex(sformat(_ucs2 x'003D007B007D003D', _ucs2 x'0442043504410442'));
-hex(sformat(_ucs2 x'003D007B007D003D', _ucs2 x'0442043504410442'))
+select hex(sformat(_ucs2 x'003D007B007D003D', _ucs2 x'0442043504410442')) x;
+x
003D0442043504410442003D
create table t1 as select sformat(_ucs2 x'003D007B007D003D', _ucs2 x'0442043504410442') as x;
show create table t1;
diff --git a/mysql-test/main/func_sformat.test b/mysql-test/main/func_sformat.test
index 65e4b639..4744229e 100644
--- a/mysql-test/main/func_sformat.test
+++ b/mysql-test/main/func_sformat.test
@@ -14,14 +14,11 @@ select sformat(0);
select sformat('C');
select sformat(-4.2);
select sformat(5, 5, 5);
-#enable after fix MDEV-27871
---disable_view_protocol
select sformat('{} {}', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
---enable_view_protocol
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) as x;
select sformat('{{{}}}', 0);
select sformat('{{{}{{', 0);
select sformat('{{{{{}{{', 'param1');
@@ -29,18 +26,13 @@ select sformat(' {{ {{ {} {{ ', 'param1');
select sformat(' {{ {} {}', 'param1', 'param2');
select sformat('A{}C{}E{}', 'B', 'D', 'F');
select sformat('{} {}', FALSE, TRUE);
-#enable after fix MDEV-29601
---disable_service_connection
select sformat('Add € != {} != {}?', '$', '£');
select sformat('Check {} != {} != {}?', '€', '$', '£');
---enable_service_connection
select sformat('{}{}{}', 1, 2, 3);
select sformat('Float {} Boolean {} Number {}', 3.14159, True, -50);
select sformat('SUM {} + {} = {}', 2, 3, 2+3);
select sformat('Numbers {} {} {}', 1, 1.11, 1.111);
select sformat('what {} is {}?', 'time', 'it');
-#enable after fix MDEV-27871
---disable_view_protocol
select sformat('{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
@@ -49,7 +41,7 @@ select sformat('{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {
33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120);
+ 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120) as x;
select sformat('{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
@@ -61,8 +53,7 @@ select sformat('{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {
'69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84',
'85', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '100',
'101', '102', '103', '104', '105', '106', '107', '108', '109', '110', '111', '112', '113', '114',
- '115', '116', '117', '118', '119', '120');
---enable_view_protocol
+ '115', '116', '117', '118', '119', '120') as x;
echo #;
echo # Error Test Cases;
@@ -92,10 +83,7 @@ insert into t2 values (0.0025, 25, 'A', DATE('2020-06-29')),
(0.0005, 5, 'B', DATE('2020-6-29')),
(5.5555, -5, 'C', DATE('200629')),
(-9, -9, 'D', DATE('20*06*29'));
-#enable after fix MDEV-27871
---disable_view_protocol
-select sformat('p1 {:.4f} p2 {} p3 {} p4 {}', param1, param2, param3, param4) from t2;
---enable_view_protocol
+select sformat('p1 {:.4f} p2 {} p3 {} p4 {}', param1, param2, param3, param4) x from t2;
drop table t2;
set names utf8;
@@ -127,10 +115,7 @@ echo #;
echo # Format Test Cases;
echo #;
select sformat('Num {:L}', 13800000000);
-#enable after fix MDEV-29646
---disable_view_protocol
select sformat('Num [{:20}]', 42);
---enable_view_protocol
select sformat('Number: {:*^{}}', 4, 5);
select sformat('{:02} - {:02} - {:02}', 1, 2, 3);
select sformat('Character {:c}', 104);
@@ -141,10 +126,7 @@ select sformat('Float {:.2f}', 42.0);
select sformat('Float {:f}', 42.0);
select sformat('Number {:d}', 42);
select sformat('Number {:{}}', 5, 5);
-#enable after fix MDEV-29646
---disable_view_protocol
select sformat('Number [{:10}]', 9999);
---enable_view_protocol
select sformat('Number {:.3}', 3.1416);
select sformat('int: {0:d}; hex: {0:x}; oct: {0:o}', 42);
select sformat('int: {0:d}; hex: {0:#x}; oct: {0:#o}', 42);
@@ -155,16 +137,10 @@ select sformat('The binary version of {0} is {0:b}', 5);
select sformat('{:+f}; {:+f}', 3.14, -3.14);
select sformat('{: f}; {: f}', 3.14, -3.14);
select sformat('{:-f}; {:-f}', 3.14, -3.14);
-#enable after fix MDEV-27871
---disable_view_protocol
-select sformat('The temperature is between {: } and {: } degrees celsius.', -3, 7);
-select sformat('The temperature is between {:-} and {:-} degrees celsius.', -3, 7);
-select sformat('The temperature is between {:+} and {:+} degrees celsius.', -3, 7);
---enable_view_protocol
-#check after fix MDEV-29646
---disable_view_protocol
+select sformat('The temperature is between {: } and {: } degrees celsius.', -3, 7) x;
+select sformat('The temperature is between {:-} and {:-} degrees celsius.', -3, 7) x;
+select sformat('The temperature is between {:+} and {:+} degrees celsius.', -3, 7) x;
select sformat('We have {:<8} chickens.', 49);
---enable_view_protocol
select sformat('Center alimgn [{:*^10}]', 'data');
select sformat('Center aling [{:^10}].', 'data');
select sformat('Right aling [{:>10}].', 'data');
@@ -175,20 +151,31 @@ select sformat('Change Order {1} {0}', 'second', 'first');
echo #;
echo # Failed Format Test Cases;
echo #;
+--replace_regex /invalid format specifier/invalid type specifier/
select sformat('Test {:c}', 'word');
select sformat('Test {one} {two} {three}', 1, 2, 3);
select sformat('Number {:{<}', 8);
select sformat('Number {:10000000000}', 5);
select sformat('1={1} 2={2} 0={0}', 0, 1);
+--replace_regex /invalid format specifier/precision not allowed for this argument type/
select sformat('Number {:.2d}', 42);
+--replace_regex /invalid format specifier/invalid type specifier/
select sformat('You scored {:.0%}', 0.25);
+--replace_regex /invalid format specifier/invalid type specifier/
select sformat('You scored {:%}', 0.25);
+--replace_regex /invalid format specifier/invalid type specifier/
select sformat('The price is {:f} dollars.', 45);
+--replace_regex /invalid format specifier/precision not allowed for this argument type/
select sformat('The price is {:.2f} dollars.', 45);
+--replace_regex /invalid format specifier/invalid type specifier/
select sformat('We have {:E} chickens.', 5);
+--replace_regex /invalid format specifier/invalid type specifier/
select sformat('We have {:e} chickens.', 5);
+--replace_regex /invalid format specifier/invalid type specifier/
select sformat('The universe is {:,} years old.', 13800000000);
+--replace_regex /invalid format specifier/invalid type specifier/
select sformat('The universe is {:_} years old.', 13800000000);
+--replace_regex /invalid format specifier/format specifier requires numeric argument/
select sformat('String {:-}', 'hello');
echo #;
@@ -211,6 +198,7 @@ drop table t2;
echo #;
echo # Unsupported/disabled features;
echo #;
+--replace_regex /invalid format specifier/invalid type specifier/
select sformat('{:p}', '50');
echo #;
@@ -219,10 +207,7 @@ echo #;
select sformat('={}=', _ucs2 x'006100620063');
set names utf8;
select sformat(_ucs2 x'003D007B007D003D', _ucs2 x'0442043504410442');
-#enable after fix MDEV-27871
---disable_view_protocol
-select hex(sformat(_ucs2 x'003D007B007D003D', _ucs2 x'0442043504410442'));
---enable_view_protocol
+select hex(sformat(_ucs2 x'003D007B007D003D', _ucs2 x'0442043504410442')) x;
create table t1 as select sformat(_ucs2 x'003D007B007D003D', _ucs2 x'0442043504410442') as x;
show create table t1;
drop table t1;
@@ -233,6 +218,7 @@ echo # ps parameters;
echo #;
prepare s from 'select sformat("={:d}=", ?)';
execute s using 100;
+--replace_regex /invalid format specifier/invalid type specifier/
execute s using 'abc';
echo #;
diff --git a/mysql-test/main/func_str.result b/mysql-test/main/func_str.result
index 0d46453c..20817dba 100644
--- a/mysql-test/main/func_str.result
+++ b/mysql-test/main/func_str.result
@@ -7,7 +7,7 @@ select 'hello',"'hello'",'""hello""','''h''e''l''l''o''',"hel""lo",'hel\'lo';
hello 'hello' ""hello"" 'h'e'l'l'o' hel"lo hel'lo
hello 'hello' ""hello"" 'h'e'l'l'o' hel"lo hel'lo
select 'hello' 'monty';
-hello
+hellomonty
hellomonty
select length('\n\t\r\b\0\_\%\\');
length('\n\t\r\b\0\_\%\\')
@@ -5487,3 +5487,37 @@ Warning 1292 Truncated incorrect BINARY(2) value: '...random bytes...'
#
# End of 10.10 tests
#
+#
+# Start of 10.11 tests
+#
+#
+# MDEV-33392 Server crashes when using RANDOM_BYTES function and GROUP BY clause on a column with a negative value
+#
+SET sql_mode='';
+CREATE TABLE t1 (a VARCHAR(255)) ENGINE=MyISAM;
+INSERT INTO t1 VALUES (9494),(9495),(9496),(9497),(9498),(9499),(9500),(9501),(9502),(9503);
+SELECT RANDOM_BYTES (-1) f1,a f2 FROM t1 GROUP BY f1,f2;
+f1 f2
+NULL 9494
+NULL 9495
+NULL 9496
+NULL 9497
+NULL 9498
+NULL 9499
+NULL 9500
+NULL 9501
+NULL 9502
+NULL 9503
+CREATE TABLE t2 AS SELECT RANDOM_BYTES (-1) f1,a f2 FROM t1 GROUP BY f1,f2;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `f1` binary(0) DEFAULT NULL,
+ `f2` varchar(255) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+DROP TABLE t2;
+DROP TABLE t1;
+SET sql_mode=DEFAULT;
+#
+# End of 10.11 tests
+#
diff --git a/mysql-test/main/func_str.test b/mysql-test/main/func_str.test
index e939b21e..b34623d9 100644
--- a/mysql-test/main/func_str.test
+++ b/mysql-test/main/func_str.test
@@ -2457,3 +2457,25 @@ select "a" in ("abc", (convert(random_bytes(8) ,binary(2))));
--echo #
--echo # End of 10.10 tests
--echo #
+
+--echo #
+--echo # Start of 10.11 tests
+--echo #
+
+--echo #
+--echo # MDEV-33392 Server crashes when using RANDOM_BYTES function and GROUP BY clause on a column with a negative value
+--echo #
+
+SET sql_mode='';
+CREATE TABLE t1 (a VARCHAR(255)) ENGINE=MyISAM;
+INSERT INTO t1 VALUES (9494),(9495),(9496),(9497),(9498),(9499),(9500),(9501),(9502),(9503);
+SELECT RANDOM_BYTES (-1) f1,a f2 FROM t1 GROUP BY f1,f2;
+CREATE TABLE t2 AS SELECT RANDOM_BYTES (-1) f1,a f2 FROM t1 GROUP BY f1,f2;
+SHOW CREATE TABLE t2;
+DROP TABLE t2;
+DROP TABLE t1;
+SET sql_mode=DEFAULT;
+
+--echo #
+--echo # End of 10.11 tests
+--echo #
diff --git a/mysql-test/main/func_time.result b/mysql-test/main/func_time.result
index 8b21906d..bf7d9748 100644
--- a/mysql-test/main/func_time.result
+++ b/mysql-test/main/func_time.result
@@ -3142,7 +3142,7 @@ Catalog Database Table Table_alias Column Column_alias Type Length Max length Is
def test t1 t1 a a 12 26 26 Y 128 6 63
def EXTRACT(YEAR FROM a) 3 4 4 Y 32896 0 63
def EXTRACT(YEAR_MONTH FROM a) 3 6 6 Y 32896 0 63
-def EXTRACT(QUARTER FROM a) 3 2 1 Y 32896 0 63
+def EXTRACT(QUARTER FROM a) 3 1 1 Y 32896 0 63
def EXTRACT(MONTH FROM a) 3 2 2 Y 32896 0 63
def EXTRACT(WEEK FROM a) 3 2 2 Y 32896 0 63
def EXTRACT(DAY FROM a) 3 3 2 Y 32896 0 63
@@ -3230,11 +3230,11 @@ SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`a` datetime(6) DEFAULT NULL,
- `EXTRACT(YEAR FROM a)` int(4) DEFAULT NULL,
- `EXTRACT(YEAR_MONTH FROM a)` int(6) DEFAULT NULL,
+ `EXTRACT(YEAR FROM a)` int(5) DEFAULT NULL,
+ `EXTRACT(YEAR_MONTH FROM a)` int(7) DEFAULT NULL,
`EXTRACT(QUARTER FROM a)` int(2) DEFAULT NULL,
- `EXTRACT(MONTH FROM a)` int(2) DEFAULT NULL,
- `EXTRACT(WEEK FROM a)` int(2) DEFAULT NULL,
+ `EXTRACT(MONTH FROM a)` int(3) DEFAULT NULL,
+ `EXTRACT(WEEK FROM a)` int(3) DEFAULT NULL,
`EXTRACT(DAY FROM a)` int(3) DEFAULT NULL,
`EXTRACT(DAY_HOUR FROM a)` int(5) DEFAULT NULL,
`EXTRACT(DAY_MINUTE FROM a)` int(7) DEFAULT NULL,
@@ -3281,7 +3281,7 @@ Catalog Database Table Table_alias Column Column_alias Type Length Max length Is
def test t1 t1 a a 11 17 17 Y 128 6 63
def EXTRACT(YEAR FROM a) 3 4 1 Y 32896 0 63
def EXTRACT(YEAR_MONTH FROM a) 3 6 1 Y 32896 0 63
-def EXTRACT(QUARTER FROM a) 3 2 1 Y 32896 0 63
+def EXTRACT(QUARTER FROM a) 3 1 1 Y 32896 0 63
def EXTRACT(MONTH FROM a) 3 2 1 Y 32896 0 63
def EXTRACT(WEEK FROM a) 3 2 9 Y 32896 0 63
def EXTRACT(DAY FROM a) 3 3 3 Y 32896 0 63
@@ -3411,11 +3411,11 @@ SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`a` time(6) DEFAULT NULL,
- `EXTRACT(YEAR FROM a)` int(4) DEFAULT NULL,
- `EXTRACT(YEAR_MONTH FROM a)` int(6) DEFAULT NULL,
+ `EXTRACT(YEAR FROM a)` int(5) DEFAULT NULL,
+ `EXTRACT(YEAR_MONTH FROM a)` int(7) DEFAULT NULL,
`EXTRACT(QUARTER FROM a)` int(2) DEFAULT NULL,
- `EXTRACT(MONTH FROM a)` int(2) DEFAULT NULL,
- `EXTRACT(WEEK FROM a)` int(2) DEFAULT NULL,
+ `EXTRACT(MONTH FROM a)` int(3) DEFAULT NULL,
+ `EXTRACT(WEEK FROM a)` int(3) DEFAULT NULL,
`EXTRACT(DAY FROM a)` int(3) DEFAULT NULL,
`EXTRACT(DAY_HOUR FROM a)` int(5) DEFAULT NULL,
`EXTRACT(DAY_MINUTE FROM a)` int(7) DEFAULT NULL,
@@ -6373,3 +6373,57 @@ NULL
SELECT FROM_UNIXTIME(LEAST(3696610869, NULL));
FROM_UNIXTIME(LEAST(3696610869, NULL))
NULL
+#
+# Start of 10.5 tests
+#
+#
+# MDEV-29149 Assertion `!is_valid_datetime() || fraction_remainder(((item->decimals) < (6) ? (item->decimals) : (6))) == 0' failed in Datetime_truncation_not_needed::Datetime_truncation_not_needed
+#
+SET @@timestamp= UNIX_TIMESTAMP('2022-07-21 23:00:00');
+SELECT DATE_SUB('2022-07-21 00:00:00', INTERVAL 800 HOUR) AS expected_result;
+expected_result
+2022-06-17 16:00:00
+SELECT
+IF(1,TIMEDIFF('38:59:59','839:00:00'),CAST('2022-12-12' AS DATE)) AS c1,
+IF(1,TIMEDIFF('-839:00:00','-38:59:59'),CAST('2022-12-12' AS DATE)) AS c2;
+c1 c2
+2022-06-17 16:00:00 2022-06-17 16:00:00
+Warnings:
+Warning 1292 Truncated incorrect time value: '839:00:00'
+Warning 1292 Truncated incorrect time value: '-839:00:00'
+SELECT
+IF(1,TIMEDIFF(385959,8390000),CAST('2022-12-12' AS DATE)) AS c1,
+IF(1,TIMEDIFF(-8390000,-385959),CAST('2022-12-12' AS DATE)) AS c2;
+c1 c2
+2022-06-17 16:00:00 2022-06-17 16:00:00
+Warnings:
+Warning 1292 Truncated incorrect time value: '8390000'
+Warning 1292 Truncated incorrect time value: '-8390000'
+SELECT
+TIMEDIFF('38:59:59','839:00:00') AS c1,
+CAST(TIMEDIFF('38:59:59','839:00:00') AS TIME(6)) AS c2,
+TIMEDIFF('839:00:00','38:59:59') AS c3,
+CAST(TIMEDIFF('839:00:00','38:59:59') AS TIME(6)) AS c4;
+c1 c2 c3 c4
+-800:00:00 -800:00:00.000000 800:00:00 800:00:00.000000
+Warnings:
+Warning 1292 Truncated incorrect time value: '839:00:00'
+Warning 1292 Truncated incorrect time value: '839:00:00'
+Warning 1292 Truncated incorrect time value: '839:00:00'
+Warning 1292 Truncated incorrect time value: '839:00:00'
+SELECT
+TIMEDIFF(385959,8390000) AS c1,
+CAST(TIMEDIFF(385959,8390000) AS TIME(6)) AS c2,
+TIMEDIFF(8390000,385959) AS c3,
+CAST(TIMEDIFF(8390000,385959) AS TIME(6)) AS c4;
+c1 c2 c3 c4
+-800:00:00 -800:00:00.000000 800:00:00 800:00:00.000000
+Warnings:
+Warning 1292 Truncated incorrect time value: '8390000'
+Warning 1292 Truncated incorrect time value: '8390000'
+Warning 1292 Truncated incorrect time value: '8390000'
+Warning 1292 Truncated incorrect time value: '8390000'
+SET @@timestamp= DEFAULT;
+#
+# End of 10.5 tests
+#
diff --git a/mysql-test/main/func_time.test b/mysql-test/main/func_time.test
index fb184ab4..caf6ec1c 100644
--- a/mysql-test/main/func_time.test
+++ b/mysql-test/main/func_time.test
@@ -3218,3 +3218,42 @@ SELECT CONCAT(MAKETIME('01', '01', LEAST( -100, NULL )));
--echo #
SELECT FROM_UNIXTIME(LEAST(3696610869, NULL));
+
+
+--echo #
+--echo # Start of 10.5 tests
+--echo #
+
+--echo #
+--echo # MDEV-29149 Assertion `!is_valid_datetime() || fraction_remainder(((item->decimals) < (6) ? (item->decimals) : (6))) == 0' failed in Datetime_truncation_not_needed::Datetime_truncation_not_needed
+--echo #
+
+SET @@timestamp= UNIX_TIMESTAMP('2022-07-21 23:00:00');
+
+SELECT DATE_SUB('2022-07-21 00:00:00', INTERVAL 800 HOUR) AS expected_result;
+
+SELECT
+ IF(1,TIMEDIFF('38:59:59','839:00:00'),CAST('2022-12-12' AS DATE)) AS c1,
+ IF(1,TIMEDIFF('-839:00:00','-38:59:59'),CAST('2022-12-12' AS DATE)) AS c2;
+
+SELECT
+ IF(1,TIMEDIFF(385959,8390000),CAST('2022-12-12' AS DATE)) AS c1,
+ IF(1,TIMEDIFF(-8390000,-385959),CAST('2022-12-12' AS DATE)) AS c2;
+
+SELECT
+ TIMEDIFF('38:59:59','839:00:00') AS c1,
+ CAST(TIMEDIFF('38:59:59','839:00:00') AS TIME(6)) AS c2,
+ TIMEDIFF('839:00:00','38:59:59') AS c3,
+ CAST(TIMEDIFF('839:00:00','38:59:59') AS TIME(6)) AS c4;
+
+SELECT
+ TIMEDIFF(385959,8390000) AS c1,
+ CAST(TIMEDIFF(385959,8390000) AS TIME(6)) AS c2,
+ TIMEDIFF(8390000,385959) AS c3,
+ CAST(TIMEDIFF(8390000,385959) AS TIME(6)) AS c4;
+
+SET @@timestamp= DEFAULT;
+
+--echo #
+--echo # End of 10.5 tests
+--echo #
diff --git a/mysql-test/main/function_defaults.result b/mysql-test/main/function_defaults.result
index d53e929c..5f5a4c87 100644
--- a/mysql-test/main/function_defaults.result
+++ b/mysql-test/main/function_defaults.result
@@ -3145,3 +3145,28 @@ a b c
2 2010-10-10 10:10:10 x
drop table t1;
set timestamp=default;
+#
+# MDEV-33790: Incorrect DEFAULT expression evaluated in UPDATE
+#
+create table t1 (
+a int,
+b timestamp default '2010-10-10 10:10:10' on update now(),
+c varchar(100) default 'x');
+create table t2 (a int primary key);
+insert t1 (a) values (1),(2);
+insert t2 (a) values (1),(2);
+select * from t1;
+a b c
+1 2010-10-10 10:10:10 x
+2 2010-10-10 10:10:10 x
+set timestamp=unix_timestamp('2011-11-11 11-11-11');
+update t1,t2 set b=default, c=default(b) where t1.a=1 and t1.a= t2.a;
+select * from t1;
+a b c
+1 2010-10-10 10:10:10 2010-10-10 10:10:10
+2 2010-10-10 10:10:10 x
+drop table t1, t2;
+set timestamp=default;
+#
+# End of 10.4 tests
+#
diff --git a/mysql-test/main/function_defaults.test b/mysql-test/main/function_defaults.test
index dd3ba109..59776118 100644
--- a/mysql-test/main/function_defaults.test
+++ b/mysql-test/main/function_defaults.test
@@ -67,3 +67,26 @@ update t1 set b=default, c=default(b) where a=1;
select * from t1;
drop table t1;
set timestamp=default;
+
+--echo #
+--echo # MDEV-33790: Incorrect DEFAULT expression evaluated in UPDATE
+--echo #
+
+create table t1 (
+ a int,
+ b timestamp default '2010-10-10 10:10:10' on update now(),
+ c varchar(100) default 'x');
+create table t2 (a int primary key);
+insert t1 (a) values (1),(2);
+insert t2 (a) values (1),(2);
+
+select * from t1;
+set timestamp=unix_timestamp('2011-11-11 11-11-11');
+update t1,t2 set b=default, c=default(b) where t1.a=1 and t1.a= t2.a;
+select * from t1;
+drop table t1, t2;
+set timestamp=default;
+
+--echo #
+--echo # End of 10.4 tests
+--echo #
diff --git a/mysql-test/main/gis.result b/mysql-test/main/gis.result
index d8d42489..8097c7a8 100644
--- a/mysql-test/main/gis.result
+++ b/mysql-test/main/gis.result
@@ -5072,37 +5072,37 @@ ERROR 42000: Incorrect parameter count in the call to native function 'WITHIN(PO
# MDEV-20009 Add CAST(expr AS pluggable_type)
#
SELECT CAST(1 AS GEOMETRY);
-ERROR HY000: Operator does not exists: 'CAST(expr AS geometry)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS geometry)'
SELECT CAST(1 AS GEOMETRYCOLLECTION);
-ERROR HY000: Operator does not exists: 'CAST(expr AS geometrycollection)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS geometrycollection)'
SELECT CAST(1 AS POINT);
-ERROR HY000: Operator does not exists: 'CAST(expr AS point)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS point)'
SELECT CAST(1 AS LINESTRING);
-ERROR HY000: Operator does not exists: 'CAST(expr AS linestring)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS linestring)'
SELECT CAST(1 AS POLYGON);
-ERROR HY000: Operator does not exists: 'CAST(expr AS polygon)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS polygon)'
SELECT CAST(1 AS MULTIPOINT);
-ERROR HY000: Operator does not exists: 'CAST(expr AS multipoint)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS multipoint)'
SELECT CAST(1 AS MULTILINESTRING);
-ERROR HY000: Operator does not exists: 'CAST(expr AS multilinestring)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS multilinestring)'
SELECT CAST(1 AS MULTIPOLYGON);
-ERROR HY000: Operator does not exists: 'CAST(expr AS multipolygon)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS multipolygon)'
SELECT CONVERT(1, GEOMETRY);
-ERROR HY000: Operator does not exists: 'CAST(expr AS geometry)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS geometry)'
SELECT CONVERT(1, GEOMETRYCOLLECTION);
-ERROR HY000: Operator does not exists: 'CAST(expr AS geometrycollection)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS geometrycollection)'
SELECT CONVERT(1, POINT);
-ERROR HY000: Operator does not exists: 'CAST(expr AS point)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS point)'
SELECT CONVERT(1, LINESTRING);
-ERROR HY000: Operator does not exists: 'CAST(expr AS linestring)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS linestring)'
SELECT CONVERT(1, POLYGON);
-ERROR HY000: Operator does not exists: 'CAST(expr AS polygon)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS polygon)'
SELECT CONVERT(1, MULTIPOINT);
-ERROR HY000: Operator does not exists: 'CAST(expr AS multipoint)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS multipoint)'
SELECT CONVERT(1, MULTILINESTRING);
-ERROR HY000: Operator does not exists: 'CAST(expr AS multilinestring)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS multilinestring)'
SELECT CONVERT(1, MULTIPOLYGON);
-ERROR HY000: Operator does not exists: 'CAST(expr AS multipolygon)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS multipolygon)'
#
# MDEV-17832 Protocol: extensions for Pluggable types and JSON, GEOMETRY
#
diff --git a/mysql-test/main/host_cache_size_functionality.test b/mysql-test/main/host_cache_size_functionality.test
index 9ec26010..f37b2ab8 100644
--- a/mysql-test/main/host_cache_size_functionality.test
+++ b/mysql-test/main/host_cache_size_functionality.test
@@ -43,10 +43,10 @@ select @@global.Host_Cache_Size > 0;
--echo # Restart server with Host_Cache_Size 1
let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
---exec echo "wait" > $restart_file
+--write_line wait $restart_file
--shutdown_server
--source include/wait_until_disconnected.inc
--- exec echo "restart:--host_cache_size=1 " > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line "restart:--host_cache_size=1 " $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
-- enable_reconnect
-- source include/wait_until_connected_again.inc
@@ -142,10 +142,10 @@ SELECT Host_Cache_Size = @@SESSION.Host_Cache_Size;
#--remove_file $MYSQL_TMP_DIR/bind_ip
#let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
-#--exec echo "wait" > $restart_file
+#--write_line wait $restart_file
#--shutdown_server
#--source include/wait_until_disconnected.inc
-#-- exec echo "restart:--bind-address=$bind_ip " > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+#-- write_line "restart:--bind-address=$bind_ip " $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
#-- enable_reconnect
#-- source include/wait_until_connected_again.inc
diff --git a/mysql-test/main/information_schema2.result b/mysql-test/main/information_schema2.result
index e23e81b8..fa4d71bf 100644
--- a/mysql-test/main/information_schema2.result
+++ b/mysql-test/main/information_schema2.result
@@ -1,3 +1,6 @@
+#
+# MDEV-4029 SELECT on information_schema using a subquery locks up the information_schema table due to incorrect mutexes handling
+#
select variable_name from information_schema.session_status where variable_name =
(select variable_name from information_schema.session_status where variable_name = 'uptime');
variable_name
@@ -6,6 +9,9 @@ select variable_name from information_schema.session_variables where variable_na
(select variable_name from information_schema.session_variables where variable_name = 'basedir');
variable_name
BASEDIR
+#
+# MDEV-8796 Delete with sub query with information_schema.TABLES deletes too many rows
+#
create table t1 (x int);
create table t2 (x int);
create table t3 (x int);
@@ -18,3 +24,15 @@ t2
t3
t4
drop table t1, t2, t3, t4;
+# End of 5.5 tests
+# INFORMATION_SCHEMA.STATISTICS doesn't show if the index is disabled
+create table t1 (a int, key(a));
+select index_name, comment from information_schema.statistics where table_schema='test' and table_name='t1';
+index_name comment
+a
+alter table t1 disable keys;
+select index_name, comment from information_schema.statistics where table_schema='test' and table_name='t1';
+index_name comment
+a disabled
+drop table t1;
+# End of 10.5 tests
diff --git a/mysql-test/main/information_schema2.test b/mysql-test/main/information_schema2.test
index d2fa3da2..50ceec2c 100644
--- a/mysql-test/main/information_schema2.test
+++ b/mysql-test/main/information_schema2.test
@@ -1,15 +1,15 @@
-#
-# MDEV-4029 SELECT on information_schema using a subquery locks up the information_schema table due to incorrect mutexes handling
-#
+--echo #
+--echo # MDEV-4029 SELECT on information_schema using a subquery locks up the information_schema table due to incorrect mutexes handling
+--echo #
select variable_name from information_schema.session_status where variable_name =
(select variable_name from information_schema.session_status where variable_name = 'uptime');
select variable_name from information_schema.session_variables where variable_name =
(select variable_name from information_schema.session_variables where variable_name = 'basedir');
-#
-# MDEV-8796 Delete with sub query with information_schema.TABLES deletes too many rows
-#
+--echo #
+--echo # MDEV-8796 Delete with sub query with information_schema.TABLES deletes too many rows
+--echo #
create table t1 (x int);
create table t2 (x int);
create table t3 (x int);
@@ -17,3 +17,14 @@ create table t4 AS select table_name from information_schema.TABLES where table_
delete from t4 where table_name not in (select table_name from information_schema.TABLES where table_schema = database() and table_type = 'BASE TABLE');
select * from t4 order by table_name;
drop table t1, t2, t3, t4;
+
+--echo # End of 5.5 tests
+
+--echo # INFORMATION_SCHEMA.STATISTICS doesn't show if the index is disabled
+create table t1 (a int, key(a));
+select index_name, comment from information_schema.statistics where table_schema='test' and table_name='t1';
+alter table t1 disable keys;
+select index_name, comment from information_schema.statistics where table_schema='test' and table_name='t1';
+drop table t1;
+
+--echo # End of 10.5 tests
diff --git a/mysql-test/main/init_file_set_password-7656.test b/mysql-test/main/init_file_set_password-7656.test
index 7bca34a0..ac5baa3b 100644
--- a/mysql-test/main/init_file_set_password-7656.test
+++ b/mysql-test/main/init_file_set_password-7656.test
@@ -15,12 +15,12 @@ EOF
--enable_reconnect
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
---exec echo "restart:--init-file=$MYSQLTEST_VARDIR/init.file " > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line "restart:--init-file=$MYSQLTEST_VARDIR/init.file " $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--source include/wait_until_connected_again.inc
select user,host,password,plugin,authentication_string from mysql.user where user='foo';
diff --git a/mysql-test/main/innodb_ext_key,covering,innodb,on.rdiff b/mysql-test/main/innodb_ext_key,covering,on.rdiff
index 0d8bcc6c..0d8bcc6c 100644
--- a/mysql-test/main/innodb_ext_key,covering,innodb,on.rdiff
+++ b/mysql-test/main/innodb_ext_key,covering,on.rdiff
diff --git a/mysql-test/main/innodb_ext_key,off.rdiff b/mysql-test/main/innodb_ext_key,off.rdiff
index 378c639e..f27df1d0 100644
--- a/mysql-test/main/innodb_ext_key,off.rdiff
+++ b/mysql-test/main/innodb_ext_key,off.rdiff
@@ -163,7 +163,7 @@
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000
@@ -220,12 +220,12 @@
5959 3
- show status like 'handler_read_next';
+ show /*a*/ status like 'handler_read_next';
Variable_name Value
-Handler_read_next 3
+Handler_read_next 9
@@ -177,7 +177,7 @@
select max(l_orderkey) from lineitem
where l_partkey between 1 and 10 group by l_partkey;
@@ -243,9 +243,9 @@
- show status like 'handler_read%';
+ show /*b*/ status like 'handler_read%';
Variable_name Value
Handler_read_first 0
-Handler_read_key 21
@@ -199,7 +199,7 @@
select max(l_orderkey) from lineitem
where l_suppkey in (1,4) group by l_suppkey;
@@ -265,9 +265,9 @@
- show status like 'handler_read%';
+ show /*c*/ status like 'handler_read%';
Variable_name Value
Handler_read_first 0
-Handler_read_key 6
diff --git a/mysql-test/main/innodb_ext_key,innodb,on,unoptimized.rdiff b/mysql-test/main/innodb_ext_key,on,unoptimized.rdiff
index 0d8bcc6c..0d8bcc6c 100644
--- a/mysql-test/main/innodb_ext_key,innodb,on,unoptimized.rdiff
+++ b/mysql-test/main/innodb_ext_key,on,unoptimized.rdiff
diff --git a/mysql-test/main/innodb_ext_key.result b/mysql-test/main/innodb_ext_key.result
index 456513dc..ba91b57a 100644
--- a/mysql-test/main/innodb_ext_key.result
+++ b/mysql-test/main/innodb_ext_key.result
@@ -14,7 +14,7 @@ flush status;
select count(*) from lineitem where l_orderkey=130 and l_shipdate='1992-07-01';
count(*)
1
-show status like 'handler_read%';
+show /*1*/ status like 'handler_read%';
Variable_name Value
Handler_read_first 0
Handler_read_key 1
@@ -35,7 +35,7 @@ select count(*) from lineitem use index(primary)
where l_orderkey=130 and l_linenumber=2 and l_shipdate='1992-07-01';
count(*)
1
-show status like 'handler_read%';
+show /*2*/ status like 'handler_read%';
Variable_name Value
Handler_read_first 0
Handler_read_key 1
@@ -56,7 +56,7 @@ select count(*) from lineitem
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000;
count(*)
1
-show status like 'handler_read%';
+show /*3*/ status like 'handler_read%';
Variable_name Value
Handler_read_first 0
Handler_read_key 1
@@ -79,7 +79,7 @@ l_orderkey l_linenumber
1088 3
1217 1
1221 3
-show status like 'handler_read%';
+show /*4*/ status like 'handler_read%';
Variable_name Value
Handler_read_first 0
Handler_read_key 1
@@ -98,7 +98,7 @@ flush status;
select min(l_orderkey) from lineitem where l_shipdate='1992-07-01';
min(l_orderkey)
130
-show status like 'handler_read%';
+show /*5*/ status like 'handler_read%';
Variable_name Value
Handler_read_first 0
Handler_read_key 1
@@ -119,7 +119,7 @@ select min(l_orderkey) from lineitem
where l_shipdate='1992-07-01' and l_orderkey between 1001 and 2000;
min(l_orderkey)
1088
-show status like 'handler_read%';
+show /*6*/ status like 'handler_read%';
Variable_name Value
Handler_read_first 0
Handler_read_key 1
@@ -140,7 +140,7 @@ select max(l_linenumber) from lineitem
where l_shipdate='1992-07-01' and l_orderkey=130;
max(l_linenumber)
2
-show status like 'handler_read%';
+show /*7*/ status like 'handler_read%';
Variable_name Value
Handler_read_first 0
Handler_read_key 1
@@ -166,7 +166,7 @@ or l_receiptdate='1992-07-01' and l_orderkey=5603;
l_orderkey l_linenumber
130 2
5603 2
-show status like 'handler_read%';
+show /*8*/ status like 'handler_read%';
Variable_name Value
Handler_read_first 0
Handler_read_key 2
@@ -193,7 +193,7 @@ l_orderkey l_linenumber
130 2
5603 2
5959 3
-show status like 'handler_read%';
+show /*9*/ status like 'handler_read%';
Variable_name Value
Handler_read_first 0
Handler_read_key 2
@@ -218,7 +218,7 @@ l_orderkey l_linenumber
130 2
5603 2
5959 3
-show status like 'handler_read_next';
+show /*a*/ status like 'handler_read_next';
Variable_name Value
Handler_read_next 3
explain
@@ -240,7 +240,7 @@ max(l_orderkey)
5894
5859
5632
-show status like 'handler_read%';
+show /*b*/ status like 'handler_read%';
Variable_name Value
Handler_read_first 0
Handler_read_key 21
@@ -262,7 +262,7 @@ where l_suppkey in (1,4) group by l_suppkey;
max(l_orderkey)
5988
5984
-show status like 'handler_read%';
+show /*c*/ status like 'handler_read%';
Variable_name Value
Handler_read_first 0
Handler_read_key 6
@@ -292,7 +292,7 @@ where p_retailprice > 1100 and o_orderdate='1997-01-01'
and o_orderkey=l_orderkey and p_partkey=l_partkey;
o_orderkey p_partkey
5895 200
-show status like 'handler_read%';
+show /*d*/ status like 'handler_read%';
Variable_name Value
Handler_read_first 0
Handler_read_key 3
@@ -457,7 +457,7 @@ select * from t1, t2 where t2.a=t1.a and t2.b < 2;
a pk a b
0 0 0 0
1 1 1 1
-show status like 'handler_read%';
+show /*e*/ status like 'handler_read%';
Variable_name Value
Handler_read_first 0
Handler_read_key 10
diff --git a/mysql-test/main/innodb_ext_key.test b/mysql-test/main/innodb_ext_key.test
index abec58a1..3d3a14c8 100644
--- a/mysql-test/main/innodb_ext_key.test
+++ b/mysql-test/main/innodb_ext_key.test
@@ -5,6 +5,8 @@
--source include/innodb_prefix_index_cluster_optimization.inc
--source include/no_valgrind_without_big.inc
+--source include/innodb_stable_estimates.inc
+
SET SESSION DEFAULT_STORAGE_ENGINE='InnoDB';
set @innodb_stats_persistent_save= @@innodb_stats_persistent;
@@ -32,7 +34,7 @@ explain
select count(*) from lineitem where l_orderkey=130 and l_shipdate='1992-07-01';
flush status;
select count(*) from lineitem where l_orderkey=130 and l_shipdate='1992-07-01';
-show status like 'handler_read%';
+show /*1*/ status like 'handler_read%';
explain
select count(*) from lineitem use index(primary)
@@ -40,7 +42,7 @@ select count(*) from lineitem use index(primary)
flush status;
select count(*) from lineitem use index(primary)
where l_orderkey=130 and l_linenumber=2 and l_shipdate='1992-07-01';
-show status like 'handler_read%';
+show /*2*/ status like 'handler_read%';
explain
select count(*) from lineitem
@@ -48,7 +50,7 @@ select count(*) from lineitem
flush status;
select count(*) from lineitem
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000;
-show status like 'handler_read%';
+show /*3*/ status like 'handler_read%';
explain
select l_orderkey, l_linenumber from lineitem
@@ -56,13 +58,13 @@ select l_orderkey, l_linenumber from lineitem
flush status;
select l_orderkey, l_linenumber from lineitem
where l_shipdate='1992-07-01' and l_orderkey between 1001 and 2000;
-show status like 'handler_read%';
+show /*4*/ status like 'handler_read%';
explain
select min(l_orderkey) from lineitem where l_shipdate='1992-07-01';
flush status;
select min(l_orderkey) from lineitem where l_shipdate='1992-07-01';
-show status like 'handler_read%';
+show /*5*/ status like 'handler_read%';
explain
select min(l_orderkey) from lineitem
@@ -70,7 +72,7 @@ select min(l_orderkey) from lineitem
flush status;
select min(l_orderkey) from lineitem
where l_shipdate='1992-07-01' and l_orderkey between 1001 and 2000;
-show status like 'handler_read%';
+show /*6*/ status like 'handler_read%';
explain
select max(l_linenumber) from lineitem
@@ -78,7 +80,7 @@ select max(l_linenumber) from lineitem
flush status;
select max(l_linenumber) from lineitem
where l_shipdate='1992-07-01' and l_orderkey=130;
-show status like 'handler_read%';
+show /*7*/ status like 'handler_read%';
explain
select l_orderkey, l_linenumber
@@ -90,7 +92,7 @@ select l_orderkey, l_linenumber
from lineitem use index (i_l_shipdate, i_l_receiptdate)
where l_shipdate='1992-07-01' and l_orderkey=130
or l_receiptdate='1992-07-01' and l_orderkey=5603;
-show status like 'handler_read%';
+show /*8*/ status like 'handler_read%';
--replace_column 7 #
explain
@@ -103,7 +105,7 @@ select l_orderkey, l_linenumber
from lineitem use index (i_l_shipdate, i_l_receiptdate)
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000
or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000;
-show status like 'handler_read%';
+show /*9*/ status like 'handler_read%';
--replace_column 7 # 9 # 10 Using
explain
@@ -114,7 +116,7 @@ flush status;
select l_orderkey, l_linenumber from lineitem
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000
or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000;
-show status like 'handler_read_next';
+show /*a*/ status like 'handler_read_next';
--replace_column 9 #
explain
@@ -123,7 +125,7 @@ select max(l_orderkey) from lineitem
flush status;
select max(l_orderkey) from lineitem
where l_partkey between 1 and 10 group by l_partkey;
-show status like 'handler_read%';
+show /*b*/ status like 'handler_read%';
--replace_column 9 #
explain
@@ -132,7 +134,7 @@ select max(l_orderkey) from lineitem
flush status;
select max(l_orderkey) from lineitem
where l_suppkey in (1,4) group by l_suppkey;
-show status like 'handler_read%';
+show /*c*/ status like 'handler_read%';
create index i_p_retailprice on part(p_retailprice);
@@ -149,7 +151,7 @@ select o_orderkey, p_partkey
lineitem use index (i_l_partkey), orders
where p_retailprice > 1100 and o_orderdate='1997-01-01'
and o_orderkey=l_orderkey and p_partkey=l_partkey;
-show status like 'handler_read%';
+show /*d*/ status like 'handler_read%';
--enable_ps2_protocol
--echo #
@@ -325,7 +327,7 @@ explain
select * from t1, t2 where t2.a=t1.a and t2.b < 2;
flush status;
select * from t1, t2 where t2.a=t1.a and t2.b < 2;
-show status like 'handler_read%';
+show /*e*/ status like 'handler_read%';
--enable_ps2_protocol
drop table t1,t2;
diff --git a/mysql-test/main/insert_select.result b/mysql-test/main/insert_select.result
index 29618c6d..463f571b 100644
--- a/mysql-test/main/insert_select.result
+++ b/mysql-test/main/insert_select.result
@@ -973,7 +973,6 @@ select * from t1;
a
3
1
-2
delete from t1;
insert into t1 values (3), (1);
insert into t1
@@ -984,8 +983,6 @@ select * from t1;
a
3
1
-3
-2
delete from t1;
insert into t1 values (3), (1);
insert into t1
@@ -996,6 +993,7 @@ select * from t1;
a
3
1
+3
2
delete from t1;
insert into t1 values (3), (1);
@@ -1022,7 +1020,6 @@ select * from t1;
a
3
1
-2
delete from t1;
insert into t1 values (3), (1);
execute stmt;
@@ -1030,7 +1027,6 @@ select * from t1;
a
3
1
-2
delete from t1;
insert into t1 values (3), (1);
delete from t1
@@ -1040,6 +1036,8 @@ group by (select * from (select a from t1) dt
where a = 1)));
select * from t1;
a
+3
+1
deallocate prepare stmt;
drop table t1,t2,t3;
#
diff --git a/mysql-test/main/join.result b/mysql-test/main/join.result
index fe195cd8..b5789142 100644
--- a/mysql-test/main/join.result
+++ b/mysql-test/main/join.result
@@ -894,7 +894,7 @@ show status like 'Last_query_cost';
Variable_name Value
Last_query_cost 4.016090
select 'The cost of accessing t1 (dont care if it changes' '^';
-The cost of accessing t1 (dont care if it changes
+The cost of accessing t1 (dont care if it changes^
The cost of accessing t1 (dont care if it changes^
select 'vv: Following query must use ALL(t1), eq_ref(A), eq_ref(B): vv' Z;
Z
@@ -3423,6 +3423,62 @@ SELECT COUNT(*) FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON t2.b = t3.c) ON t1.a = t2.
COUNT(*)
2
DROP TABLE t1, t2, t3;
+#
+# MDEV-30975: Wrong result with cross Join given join order
+#
+CREATE TABLE `t1` (
+`t1_seq` INT NOT NULL,
+`c1` VARCHAR(10) NOT NULL ,
+PRIMARY KEY (`t1_seq`) USING BTREE
+);
+CREATE TABLE `t2` (
+`t2_seq` INT NOT NULL,
+`t1_seq` INT NOT NULL,
+`c2` VARCHAR(10) NOT NULL ,
+PRIMARY KEY (`t2_seq`, `t1_seq`) USING BTREE
+);
+INSERT INTO t1 VALUES(1, 'A');
+INSERT INTO t2 VALUES(1, 1, 'T2-1-1');
+INSERT INTO t2 VALUES(2, 1, 'T2-1-2');
+INSERT INTO t2 VALUES(3, 1, 'T2-1-3');
+SELECT LPAD(@rownum := @rownum + 1, 8, 0) AS str_num
+, t1.t1_seq
+, t2.t2_seq
+, t1.c1
+, t2.c2
+FROM t1
+INNER JOIN t2 ON (t1.t1_seq = t2.t1_seq)
+CROSS JOIN ( SELECT @rownum := 0 ) X;
+str_num t1_seq t2_seq c1 c2
+00000001 1 1 A T2-1-1
+00000002 1 2 A T2-1-2
+00000003 1 3 A T2-1-3
+SELECT STRAIGHT_JOIN LPAD(@rownum := @rownum + 1, 8, 0) AS str_num
+, t1.t1_seq
+, t2.t2_seq
+, t1.c1
+, t2.c2
+FROM t1
+INNER JOIN t2 ON (t1.t1_seq = t2.t1_seq)
+CROSS JOIN ( SELECT @rownum := 0 ) X;
+str_num t1_seq t2_seq c1 c2
+00000001 1 1 A T2-1-1
+00000002 1 2 A T2-1-2
+00000003 1 3 A T2-1-3
+SELECT STRAIGHT_JOIN * FROM t1 JOIN t2 ON (t1.t1_seq = t2.t1_seq) JOIN (SELECT @a := 0) x;
+t1_seq c1 t2_seq t1_seq c2 @a := 0
+1 A 1 1 T2-1-1 0
+1 A 2 1 T2-1-2 0
+1 A 3 1 T2-1-3 0
+SELECT * FROM t1 JOIN t2 ON (t1.t1_seq = t2.t1_seq) JOIN (SELECT @a := 0) x;
+t1_seq c1 t2_seq t1_seq c2 @a := 0
+1 A 1 1 T2-1-1 0
+1 A 2 1 T2-1-2 0
+1 A 3 1 T2-1-3 0
+SELECT STRAIGHT_JOIN c1 FROM t1 JOIN (SELECT @a := 0) x;
+c1
+A
+DROP TABLE t1, t2;
# End of 10.5 tests
#
# MDEV-31449: Assertion s->table->opt_range_condition_rows <= s->found_records
diff --git a/mysql-test/main/join.test b/mysql-test/main/join.test
index a59e53d8..a4d34f41 100644
--- a/mysql-test/main/join.test
+++ b/mysql-test/main/join.test
@@ -1838,6 +1838,52 @@ SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON t2.b = t3.c) ON t1.a = t2.b;
SELECT COUNT(*) FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON t2.b = t3.c) ON t1.a = t2.b;
DROP TABLE t1, t2, t3;
+--echo #
+--echo # MDEV-30975: Wrong result with cross Join given join order
+--echo #
+
+CREATE TABLE `t1` (
+ `t1_seq` INT NOT NULL,
+ `c1` VARCHAR(10) NOT NULL ,
+ PRIMARY KEY (`t1_seq`) USING BTREE
+);
+
+CREATE TABLE `t2` (
+ `t2_seq` INT NOT NULL,
+ `t1_seq` INT NOT NULL,
+ `c2` VARCHAR(10) NOT NULL ,
+ PRIMARY KEY (`t2_seq`, `t1_seq`) USING BTREE
+);
+
+INSERT INTO t1 VALUES(1, 'A');
+INSERT INTO t2 VALUES(1, 1, 'T2-1-1');
+INSERT INTO t2 VALUES(2, 1, 'T2-1-2');
+INSERT INTO t2 VALUES(3, 1, 'T2-1-3');
+
+SELECT LPAD(@rownum := @rownum + 1, 8, 0) AS str_num
+ , t1.t1_seq
+ , t2.t2_seq
+ , t1.c1
+ , t2.c2
+ FROM t1
+ INNER JOIN t2 ON (t1.t1_seq = t2.t1_seq)
+ CROSS JOIN ( SELECT @rownum := 0 ) X;
+
+SELECT STRAIGHT_JOIN LPAD(@rownum := @rownum + 1, 8, 0) AS str_num
+ , t1.t1_seq
+ , t2.t2_seq
+ , t1.c1
+ , t2.c2
+ FROM t1
+ INNER JOIN t2 ON (t1.t1_seq = t2.t1_seq)
+ CROSS JOIN ( SELECT @rownum := 0 ) X;
+
+SELECT STRAIGHT_JOIN * FROM t1 JOIN t2 ON (t1.t1_seq = t2.t1_seq) JOIN (SELECT @a := 0) x;
+SELECT * FROM t1 JOIN t2 ON (t1.t1_seq = t2.t1_seq) JOIN (SELECT @a := 0) x;
+SELECT STRAIGHT_JOIN c1 FROM t1 JOIN (SELECT @a := 0) x;
+
+DROP TABLE t1, t2;
+
--echo # End of 10.5 tests
--echo #
diff --git a/mysql-test/main/join_cache.result b/mysql-test/main/join_cache.result
index b8dddff9..323c4a73 100644
--- a/mysql-test/main/join_cache.result
+++ b/mysql-test/main/join_cache.result
@@ -6401,5 +6401,27 @@ b b d c c
10 NULL NULL NULL NULL
DROP TABLE t1,t2,t3,t4;
#
+# MDEV-21102: Server crashes in JOIN_CACHE::write_record_data upon EXPLAIN with subqueries and constant tables
+#
+CREATE TABLE t1 (a int, b int) ENGINE=MyISAM;
+CREATE TABLE t2 (c int, d int) ENGINE=MyISAM;
+INSERT INTO t2 VALUES (1,10);
+CREATE TABLE t3 (e int, key (e)) ENGINE=MyISAM;
+INSERT INTO t3 VALUES (2),(3);
+# Must not crash, must use join buffer in subquery
+EXPLAIN
+SELECT * FROM t1
+WHERE a > b OR a IN (
+SELECT c FROM t2 WHERE EXISTS (
+SELECT * FROM t3 t3a JOIN t3 t3b WHERE t3a.e < d
+)
+);
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
+2 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 1
+3 SUBQUERY t3a range e e 5 NULL 2 Using where; Using index
+3 SUBQUERY t3b index NULL e 5 NULL 2 Using index; Using join buffer (flat, BNL join)
+DROP TABLE t1,t2,t3;
+#
# End of 10.4 tests
#
diff --git a/mysql-test/main/join_cache.test b/mysql-test/main/join_cache.test
index be33d116..4d13a96c 100644
--- a/mysql-test/main/join_cache.test
+++ b/mysql-test/main/join_cache.test
@@ -4305,5 +4305,26 @@ eval $q2;
DROP TABLE t1,t2,t3,t4;
--echo #
+--echo # MDEV-21102: Server crashes in JOIN_CACHE::write_record_data upon EXPLAIN with subqueries and constant tables
+--echo #
+CREATE TABLE t1 (a int, b int) ENGINE=MyISAM;
+
+CREATE TABLE t2 (c int, d int) ENGINE=MyISAM;
+INSERT INTO t2 VALUES (1,10);
+
+CREATE TABLE t3 (e int, key (e)) ENGINE=MyISAM;
+INSERT INTO t3 VALUES (2),(3);
+
+--echo # Must not crash, must use join buffer in subquery
+EXPLAIN
+SELECT * FROM t1
+WHERE a > b OR a IN (
+ SELECT c FROM t2 WHERE EXISTS (
+ SELECT * FROM t3 t3a JOIN t3 t3b WHERE t3a.e < d
+ )
+);
+DROP TABLE t1,t2,t3;
+
+--echo #
--echo # End of 10.4 tests
--echo #
diff --git a/mysql-test/main/join_outer.test b/mysql-test/main/join_outer.test
index 857a9ced..83bb7fde 100644
--- a/mysql-test/main/join_outer.test
+++ b/mysql-test/main/join_outer.test
@@ -685,15 +685,9 @@ create table t1 (a int, b varchar(20));
create table t2 (a int, c varchar(20));
insert into t1 values (1,"aaaaaaaaaa"),(2,"bbbbbbbbbb");
insert into t2 values (1,"cccccccccc"),(2,"dddddddddd");
-#Enable after fix MDEV-31276
---disable_ps2_protocol
select group_concat(t1.b,t2.c) from t1 left join t2 using(a) group by t1.a;
---enable_ps2_protocol
select group_concat(t1.b,t2.c) from t1 inner join t2 using(a) group by t1.a;
-#Enable after fix MDEV-31276
---disable_ps2_protocol
select group_concat(t1.b,t2.c) from t1 left join t2 using(a) group by a;
---enable_ps2_protocol
select group_concat(t1.b,t2.c) from t1 inner join t2 using(a) group by a;
drop table t1, t2;
set group_concat_max_len=default;
@@ -2372,11 +2366,8 @@ create view v1 as select * from t1
left join ( select 'Y' AS Voted, ElectionID from t2 ) AS T
on T.ElectionID = t1.Election
limit 9;
-#enable after fix MDEV-31277
---disable_ps2_protocol
# limit X causes merge algorithm select as opposed to temp table
select * from v1;
---enable_ps2_protocol
drop table t1, t2;
drop view v1;
@@ -2391,10 +2382,7 @@ create view v10 as select *, 'U' as u from t10 left join (select 'Y' as y, t20.b
create table t30 (c int);
insert into t30 values (1),(3);
create view v20 as select * from t30 left join (select 'X' as x, v10.u, v10.y, v10.b from v10) dt2 on t30.c=dt2.b limit 6;
-#check after fix MDEV-31277
---disable_ps2_protocol
select * from v20 limit 9;
---enable_ps2_protocol
drop view v10, v20;
drop table t10, t20, t30;
@@ -2408,8 +2396,6 @@ insert into t3 values (3),(1);
create table t1 (a int);
insert into t1 values (1),(2),(7),(1);
-#check after fix MDEV-31277
---disable_ps2_protocol
select * from
(
select * from
@@ -2422,7 +2408,6 @@ select * from
on dt1.a=dt2.b
limit 9
) dt;
---enable_ps2_protocol
## Same as dt3 above
create view v3(x,c) as select * from (select 'X' as x, t3.c from t3) dt3;
@@ -2436,10 +2421,7 @@ create view v0(y,b,x,c) as select * from v2 left join v3 on v2.b=v3.c;
# Same as above select statement
create view v1 as select 'Z' as z, t1.a, v0.* from t1 left join v0 on t1.a=v0.b limit 9;
-#check after fix MDEV-31277
---disable_ps2_protocol
select * from v1;
---enable_ps2_protocol
set statement join_cache_level=0 for
select * from v1;
diff --git a/mysql-test/main/kill_processlist-6619.test b/mysql-test/main/kill_processlist-6619.test
index c272e68a..0f53034e 100644
--- a/mysql-test/main/kill_processlist-6619.test
+++ b/mysql-test/main/kill_processlist-6619.test
@@ -4,8 +4,18 @@
--source include/not_embedded.inc
--source include/have_debug_sync.inc
+--disable_ps_protocol
+# Ensure no lingering connections from an earlier test run, which can very
+# rarely still be visible in SHOW PROCESSLIST here.
+--let $wait_condition= SELECT COUNT(*) = 1 from information_schema.processlist
+--source include/wait_condition.inc
+
--connect (con1,localhost,root,,)
--let $con_id = `SELECT CONNECTION_ID()`
+
+let $wait_condition=select command = 'sleep' from information_schema.processlist where id != $con_id;
+source include/wait_condition.inc;
+
--replace_result Execute Query
--replace_column 1 # 3 # 6 # 7 #
SHOW PROCESSLIST;
@@ -25,9 +35,7 @@ reap;
SET DEBUG_SYNC='reset';
# Wait until default connection has reset query string
-let $wait_condition=
- SELECT COUNT(*) = 1 from information_schema.processlist
- WHERE info is NULL;
+let $wait_condition=select command = 'sleep' from information_schema.processlist where id != $con_id;
--source include/wait_condition.inc
--replace_result Execute Query
diff --git a/mysql-test/main/load_timezones_with_alter_algorithm_inplace.result b/mysql-test/main/load_timezones_with_alter_algorithm_inplace.result
new file mode 100644
index 00000000..4992e7ed
--- /dev/null
+++ b/mysql-test/main/load_timezones_with_alter_algorithm_inplace.result
@@ -0,0 +1,18 @@
+set global alter_algorithm=INPLACE;
+RENAME TABLE mysql.time_zone TO mysql.time_zone_BACKUP;
+RENAME TABLE mysql.time_zone_name TO mysql.time_zone_name_BACKUP;
+RENAME TABLE mysql.time_zone_transition TO mysql.time_zone_transition_BACKUP;
+RENAME TABLE mysql.time_zone_transition_type TO mysql.time_zone_transition_type_BACKUP;
+CREATE TABLE mysql.time_zone LIKE mysql.time_zone_BACKUP;
+CREATE TABLE mysql.time_zone_name LIKE mysql.time_zone_name_BACKUP;
+CREATE TABLE mysql.time_zone_transition LIKE mysql.time_zone_transition_BACKUP;
+CREATE TABLE mysql.time_zone_transition_type LIKE mysql.time_zone_transition_type_BACKUP;
+DROP TABLE mysql.time_zone;
+DROP TABLE mysql.time_zone_name;
+DROP TABLE mysql.time_zone_transition;
+DROP TABLE mysql.time_zone_transition_type;
+RENAME TABLE mysql.time_zone_BACKUP TO mysql.time_zone;
+RENAME TABLE mysql.time_zone_name_BACKUP TO mysql.time_zone_name;
+RENAME TABLE mysql.time_zone_transition_BACKUP TO mysql.time_zone_transition;
+RENAME TABLE mysql.time_zone_transition_type_BACKUP TO mysql.time_zone_transition_type;
+set global alter_algorithm=DEFAULT;
diff --git a/mysql-test/main/load_timezones_with_alter_algorithm_inplace.test b/mysql-test/main/load_timezones_with_alter_algorithm_inplace.test
new file mode 100644
index 00000000..809f147f
--- /dev/null
+++ b/mysql-test/main/load_timezones_with_alter_algorithm_inplace.test
@@ -0,0 +1,40 @@
+--source include/not_embedded.inc
+
+# MDEV-33044 Loading time zones does not work with alter_algorithm INPLACE
+
+set global alter_algorithm=INPLACE;
+
+# Because loading timezones alters the mysql tables,
+# this test will leave mysql in a different state than when it started.
+# Furthermore, checksums on the various mysql.timezone_x tables will fail.
+
+# Therefore we:
+# 1. Make "backups" of the existing tables by renaming them
+# 2. Make dummy clones of the tables we just backed up
+# 3. Load timezones with alterations made to the dummy clone tables
+# 4. Drop the newly made tables with changes made to them
+# 5. Restore the backed up tables so the checksums will pass
+
+RENAME TABLE mysql.time_zone TO mysql.time_zone_BACKUP;
+RENAME TABLE mysql.time_zone_name TO mysql.time_zone_name_BACKUP;
+RENAME TABLE mysql.time_zone_transition TO mysql.time_zone_transition_BACKUP;
+RENAME TABLE mysql.time_zone_transition_type TO mysql.time_zone_transition_type_BACKUP;
+
+CREATE TABLE mysql.time_zone LIKE mysql.time_zone_BACKUP;
+CREATE TABLE mysql.time_zone_name LIKE mysql.time_zone_name_BACKUP;
+CREATE TABLE mysql.time_zone_transition LIKE mysql.time_zone_transition_BACKUP;
+CREATE TABLE mysql.time_zone_transition_type LIKE mysql.time_zone_transition_type_BACKUP;
+
+--exec $MYSQL_TZINFO_TO_SQL std_data/zoneinfo | $MYSQL mysql
+
+DROP TABLE mysql.time_zone;
+DROP TABLE mysql.time_zone_name;
+DROP TABLE mysql.time_zone_transition;
+DROP TABLE mysql.time_zone_transition_type;
+
+RENAME TABLE mysql.time_zone_BACKUP TO mysql.time_zone;
+RENAME TABLE mysql.time_zone_name_BACKUP TO mysql.time_zone_name;
+RENAME TABLE mysql.time_zone_transition_BACKUP TO mysql.time_zone_transition;
+RENAME TABLE mysql.time_zone_transition_type_BACKUP TO mysql.time_zone_transition_type;
+
+set global alter_algorithm=DEFAULT;
diff --git a/mysql-test/main/lock_sync.result b/mysql-test/main/lock_sync.result
index 2d7a175e..6e665b35 100644
--- a/mysql-test/main/lock_sync.result
+++ b/mysql-test/main/lock_sync.result
@@ -26,28 +26,6 @@ ALWAYS
connect con1, localhost, root,,;
connect con2, localhost, root,,;
connection default;
-drop table if exists t0, t1, t2, t3, t4, t5;
-drop view if exists v1, v2;
-drop procedure if exists p1;
-drop procedure if exists p2;
-drop procedure if exists p3;
-drop function if exists f1;
-drop function if exists f2;
-drop function if exists f3;
-drop function if exists f4;
-drop function if exists f5;
-drop function if exists f6;
-drop function if exists f7;
-drop function if exists f8;
-drop function if exists f9;
-drop function if exists f10;
-drop function if exists f11;
-drop function if exists f12;
-drop function if exists f13;
-drop function if exists f14;
-drop function if exists f15;
-drop function if exists f16;
-drop function if exists f17;
create table t1 (i int primary key);
insert into t1 values (1), (2), (3), (4), (5);
create table t2 (j int primary key);
@@ -900,6 +878,6 @@ set debug_sync= 'now wait_for s1';
SELECT * FROM ( SELECT * FROM v1 ) sq;
COMMIT;
DROP VIEW v1;
-DROP FUNCTION f;
+DROP FUNCTION IF EXISTS f;
DROP TABLE t1, t2;
set debug_sync= 'reset';
diff --git a/mysql-test/main/lock_sync.test b/mysql-test/main/lock_sync.test
index 0d15f845..998c6529 100644
--- a/mysql-test/main/lock_sync.test
+++ b/mysql-test/main/lock_sync.test
@@ -44,30 +44,6 @@ select @@global.concurrent_insert;
connect (con1, localhost, root,,);
connect (con2, localhost, root,,);
connection default;
---disable_warnings
-drop table if exists t0, t1, t2, t3, t4, t5;
-drop view if exists v1, v2;
-drop procedure if exists p1;
-drop procedure if exists p2;
-drop procedure if exists p3;
-drop function if exists f1;
-drop function if exists f2;
-drop function if exists f3;
-drop function if exists f4;
-drop function if exists f5;
-drop function if exists f6;
-drop function if exists f7;
-drop function if exists f8;
-drop function if exists f9;
-drop function if exists f10;
-drop function if exists f11;
-drop function if exists f12;
-drop function if exists f13;
-drop function if exists f14;
-drop function if exists f15;
-drop function if exists f16;
-drop function if exists f17;
---enable_warnings
create table t1 (i int primary key);
insert into t1 values (1), (2), (3), (4), (5);
create table t2 (j int primary key);
@@ -1218,7 +1194,8 @@ COMMIT;
--disconnect con1
--disconnect con2
--connection default
+--source include/wait_until_count_sessions.inc
DROP VIEW v1;
-DROP FUNCTION f;
+DROP FUNCTION IF EXISTS f;
DROP TABLE t1, t2;
set debug_sync= 'reset';
diff --git a/mysql-test/main/lock_view.result b/mysql-test/main/lock_view.result
index 8137300f..e4c666bf 100644
--- a/mysql-test/main/lock_view.result
+++ b/mysql-test/main/lock_view.result
@@ -16,6 +16,7 @@ create definer=definer@localhost view mysqltest3.v3is as select schema_name from
create definer=definer@localhost view mysqltest3.v3ps as select user from performance_schema.users where current_connections>0 order by user;
create definer=definer@localhost view mysqltest3.v3nt as select 1;
create definer=definer@localhost sql security invoker view mysqltest3.v3i as select * from mysqltest1.t1;
+/*!999999\- enable the sandbox mode */
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest1` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */;
@@ -234,6 +235,7 @@ create view v1 as select * from (select * from t1) dt;
lock table v1 read;
disconnect con1;
connection default;
+/*!999999\- enable the sandbox mode */
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
/*!50001 CREATE VIEW `v1` AS SELECT
diff --git a/mysql-test/main/log_errchk.test b/mysql-test/main/log_errchk.test
index 1afc0e29..c64f6e3c 100644
--- a/mysql-test/main/log_errchk.test
+++ b/mysql-test/main/log_errchk.test
@@ -30,12 +30,12 @@
--echo # Case 2: Starting server with fifo file as general log file
--echo # and slow query log file.
# Restart server with fifo file as general log file.
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
--enable_reconnect
# Write file to make mysql-test-run.pl start up the server again
---exec echo "restart: --general-log-file=$gen_log_file --slow-query-log-file=$slow_query_log_file" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line "restart: --general-log-file=$gen_log_file --slow-query-log-file=$slow_query_log_file" $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--source include/wait_until_connected_again.inc
# Error 6 is reported, because the other end is closed
diff --git a/mysql-test/main/long_unique_bugs.result b/mysql-test/main/long_unique_bugs.result
index b8fbd40b..03d40be8 100644
--- a/mysql-test/main/long_unique_bugs.result
+++ b/mysql-test/main/long_unique_bugs.result
@@ -676,6 +676,59 @@ SELECT * FROM t1;
a b c
3 2 2
DROP TABLE t1;
+# MDEV-30046 wrong row targeted with "insert ... on duplicate" and
+# "replace", leading to data corruption
+create table t (s blob, n int, unique (s)) engine=innodb;
+insert into t values ('Hrecvx_0004ln-00',1), ('Hrecvx_0004mm-00',1);
+replace into t values ('Hrecvx_0004mm-00',2);
+select * from t;
+s n
+Hrecvx_0004ln-00 1
+Hrecvx_0004mm-00 2
+drop table t;
+create table t (s blob, n int, unique (s)) engine=innodb;
+insert into t values ('Hrecvx_0004ln-00',1), ('Hrecvx_0004mm-00',1);
+insert into t values ('Hrecvx_0004mm-00',2)
+on duplicate key update n = values (n);
+select * from t;
+s n
+Hrecvx_0004ln-00 1
+Hrecvx_0004mm-00 2
+drop table t;
#
-# End of 10.5 tests
+# MDEV-29345 update case insensitive (large) unique key with insensitive change of value - duplicate key
#
+create table t1 (a int, b text, unique (b));
+insert ignore t1 values (1, 'a'), (2, 'A');
+Warnings:
+Warning 1062 Duplicate entry 'A' for key 'b'
+select * from t1;
+a b
+1 a
+update t1 set b='A' where a=1;
+select * from t1;
+a b
+1 A
+drop table t1;
+create table t1 (a int, b blob, unique (b));
+insert t1 values (1, 'a'), (2, 'A');
+select * from t1;
+a b
+1 a
+2 A
+update t1 set b='A' where a=1;
+ERROR 23000: Duplicate entry 'A' for key 'b'
+drop table t1;
+#
+# MDEV-25102 UNIQUE USING HASH error after ALTER ... DISABLE KEYS
+#
+create table t1 (i int, unique key (i) using hash);
+alter table t1 disable keys;
+insert into t1 values (1),(2);
+insert into t1 values (1);
+ERROR 23000: Duplicate entry '1' for key 'i'
+alter table t1 enable keys;
+insert into t1 values (2);
+ERROR 23000: Duplicate entry '2' for key 'i'
+drop table t1;
+# End of 10.5 tests
diff --git a/mysql-test/main/long_unique_bugs.test b/mysql-test/main/long_unique_bugs.test
index 01c3f736..8acb5e9e 100644
--- a/mysql-test/main/long_unique_bugs.test
+++ b/mysql-test/main/long_unique_bugs.test
@@ -503,7 +503,6 @@ start transaction;
alter table tmp alter column a set default 8;
unlock tables;
drop table t2;
---source include/have_innodb.inc
--echo #
--echo # MDEV-22218 InnoDB: Failing assertion: node->pcur->rel_pos == BTR_PCUR_ON upon LOAD DATA with NO_BACKSLASH_ESCAPES in SQL_MODE and unique blob in table
@@ -642,7 +641,6 @@ insert into t1 values (0);
check table t1 extended;
drop table t1;
-
--echo #
--echo # MDEV-32837 long unique does not work like unique key when using replace
--echo #
@@ -655,6 +653,49 @@ REPLACE INTO t1 VALUES (3,2,2);
SELECT * FROM t1;
DROP TABLE t1;
+--echo # MDEV-30046 wrong row targeted with "insert ... on duplicate" and
+--echo # "replace", leading to data corruption
+--source include/have_innodb.inc
+create table t (s blob, n int, unique (s)) engine=innodb;
+insert into t values ('Hrecvx_0004ln-00',1), ('Hrecvx_0004mm-00',1);
+replace into t values ('Hrecvx_0004mm-00',2);
+select * from t;
+drop table t;
+
+create table t (s blob, n int, unique (s)) engine=innodb;
+insert into t values ('Hrecvx_0004ln-00',1), ('Hrecvx_0004mm-00',1);
+insert into t values ('Hrecvx_0004mm-00',2)
+ on duplicate key update n = values (n);
+select * from t;
+drop table t;
--echo #
---echo # End of 10.5 tests
+--echo # MDEV-29345 update case insensitive (large) unique key with insensitive change of value - duplicate key
--echo #
+create table t1 (a int, b text, unique (b));
+insert ignore t1 values (1, 'a'), (2, 'A');
+select * from t1;
+update t1 set b='A' where a=1;
+select * from t1;
+drop table t1;
+
+create table t1 (a int, b blob, unique (b));
+insert t1 values (1, 'a'), (2, 'A');
+select * from t1;
+--error ER_DUP_ENTRY
+update t1 set b='A' where a=1;
+drop table t1;
+
+--echo #
+--echo # MDEV-25102 UNIQUE USING HASH error after ALTER ... DISABLE KEYS
+--echo #
+create table t1 (i int, unique key (i) using hash);
+alter table t1 disable keys;
+insert into t1 values (1),(2);
+--error ER_DUP_ENTRY
+insert into t1 values (1);
+alter table t1 enable keys;
+--error ER_DUP_ENTRY
+insert into t1 values (2);
+drop table t1;
+
+--echo # End of 10.5 tests
diff --git a/mysql-test/main/lowercase_fs_on.test b/mysql-test/main/lowercase_fs_on.test
index 1d306826..9a7fc369 100644
--- a/mysql-test/main/lowercase_fs_on.test
+++ b/mysql-test/main/lowercase_fs_on.test
@@ -16,7 +16,7 @@ let SEARCH_FILE= $MYSQLTEST_VARDIR/log/my_restart.err;
--remove_file $SEARCH_FILE
#Shutdown the server
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
@@ -30,7 +30,7 @@ let SEARCH_PATTERN= \[ERROR\] The server option \'lower_case_table_names\' is co
--source include/search_pattern_in_file.inc
#Restart the server
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--source include/wait_until_connected_again.inc
#Cleanup
diff --git a/mysql-test/main/lowercase_table2.result b/mysql-test/main/lowercase_table2.result
index 3a4c46eb..3a4c46eb 100755..100644
--- a/mysql-test/main/lowercase_table2.result
+++ b/mysql-test/main/lowercase_table2.result
diff --git a/mysql-test/main/mdl_sync.result b/mysql-test/main/mdl_sync.result
index 0324c261..c6b80c50 100644
--- a/mysql-test/main/mdl_sync.result
+++ b/mysql-test/main/mdl_sync.result
@@ -2431,6 +2431,9 @@ create table t1 (a int) engine=myisam;
create table t2 (a int) stats_persistent=0, engine=innodb;
insert into t1 values (1);
insert into t2 values (1);
+connect con1, localhost, root;
+start transaction with consistent snapshot;
+connection default;
SET DEBUG_SYNC= 'after_open_table_mdl_shared SIGNAL table_opened WAIT_FOR grlwait execute 2';
update t1,t2 set t1.a=2,t2.a=3;
connection con2;
@@ -2462,6 +2465,7 @@ connection default;
SET DEBUG_SYNC= 'RESET';
drop table t1,t2;
disconnect con2;
+disconnect con1;
#
# Bug#50786 Assertion `thd->mdl_context.trans_sentinel() == __null'
# failed in open_ltable()
diff --git a/mysql-test/main/mdl_sync.test b/mysql-test/main/mdl_sync.test
index 7a928a4c..29d95460 100644
--- a/mysql-test/main/mdl_sync.test
+++ b/mysql-test/main/mdl_sync.test
@@ -3115,6 +3115,12 @@ create table t2 (a int) stats_persistent=0, engine=innodb;
insert into t1 values (1);
insert into t2 values (1);
+connect (con1, localhost, root);
+# disable innodb purge thread, otherwise it might start purging t2,
+# and will take an mdl, affecting metadata_lock_info output.
+start transaction with consistent snapshot;
+connection default;
+
SET DEBUG_SYNC= 'after_open_table_mdl_shared SIGNAL table_opened WAIT_FOR grlwait execute 2';
--send update t1,t2 set t1.a=2,t2.a=3
@@ -3160,6 +3166,7 @@ connection default;
SET DEBUG_SYNC= 'RESET';
drop table t1,t2;
disconnect con2;
+disconnect con1;
--echo #
--echo # Bug#50786 Assertion `thd->mdl_context.trans_sentinel() == __null'
diff --git a/mysql-test/main/myisam.result b/mysql-test/main/myisam.result
index 4d79a851..7d930f1a 100644
--- a/mysql-test/main/myisam.result
+++ b/mysql-test/main/myisam.result
@@ -1,6 +1,5 @@
call mtr.add_suppression("Can't find record in '.*'");
call mtr.add_suppression("Table 't1' is marked as crashed and should be repaired");
-SET SQL_WARNINGS=1;
CREATE TABLE t1 (
STRING_DATA char(255) default NULL,
KEY string_data (STRING_DATA)
diff --git a/mysql-test/main/myisam.test b/mysql-test/main/myisam.test
index ec49e71b..538603c6 100644
--- a/mysql-test/main/myisam.test
+++ b/mysql-test/main/myisam.test
@@ -7,9 +7,6 @@
call mtr.add_suppression("Can't find record in '.*'");
call mtr.add_suppression("Table 't1' is marked as crashed and should be repaired");
-# Initialise
-SET SQL_WARNINGS=1;
-
#
# Test problem with CHECK TABLE;
#
diff --git a/mysql-test/main/myisam_crash_before_flush_keys.test b/mysql-test/main/myisam_crash_before_flush_keys.test
index 791e43b0..c48f2b42 100644
--- a/mysql-test/main/myisam_crash_before_flush_keys.test
+++ b/mysql-test/main/myisam_crash_before_flush_keys.test
@@ -26,14 +26,14 @@ INSERT INTO t1 VALUES (1,2),(2,3),(3,4),(4,5),(5,6);
SET SESSION debug_dbug="d,crash_before_flush_keys";
--echo # Write file to make mysql-test-run.pl expect crash
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--echo # Run the crashing query
--error 2013
FLUSH TABLE t1;
--echo # Write file to make mysql-test-run.pl start the server
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--echo # Turn on reconnect
--enable_reconnect
diff --git a/mysql-test/main/mysql-interactive.test b/mysql-test/main/mysql-interactive.test
index 2015e9d6..0051d8e5 100644
--- a/mysql-test/main/mysql-interactive.test
+++ b/mysql-test/main/mysql-interactive.test
@@ -3,6 +3,8 @@
--echo #
source include/not_embedded.inc;
source include/not_windows.inc;
+# this would need an instrumented ncurses library
+source include/not_msan.inc;
error 0,1;
exec $MYSQL -V|grep -q readline;
diff --git a/mysql-test/main/mysql.result b/mysql-test/main/mysql.result
index 0b91b513..ac716b46 100644
--- a/mysql-test/main/mysql.result
+++ b/mysql-test/main/mysql.result
@@ -552,6 +552,7 @@ Table Create Table
a1\`b1 CREATE TABLE `a1\``b1` (
`a` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `a1\``b1` (
@@ -583,6 +584,7 @@ Table Create Table
a1\"b1 CREATE TABLE "a1\""b1" (
"a" int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE "a1\""b1" (
@@ -607,11 +609,11 @@ set sql_mode=default;
create table t1 (a text);
select count(*) from t1;
count(*)
-43
+44
truncate table t1;
select count(*) from t1;
count(*)
-43
+44
truncate table t1;
select count(*) from t1;
count(*)
@@ -623,7 +625,7 @@ count(*)
truncate table t1;
select count(*) from t1;
count(*)
-43
+44
truncate table t1;
select count(*) from t1;
count(*)
@@ -637,3 +639,27 @@ drop table t1;
WARNING: option '--enable-cleartext-plugin' is obsolete.
1
1
+# End of 10.3 tests
+#
+# MDEV-21778 Disable system commands in mysql/mariadb client
+#
+ERROR at line 1: Not allowed in the sandbox mode
+1
+ERROR at line 1: Not allowed in the sandbox mode
+2
+ERROR at line 1: Not allowed in the sandbox mode
+3
+1
+entering sandbox
+system
+tee
+source
+^^^
+2
+entering sandbox
+system
+tee
+source
+^^^
+3
+# End of 10.5 tests
diff --git a/mysql-test/main/mysql.test b/mysql-test/main/mysql.test
index 0f41add8..2f189e70 100644
--- a/mysql-test/main/mysql.test
+++ b/mysql-test/main/mysql.test
@@ -610,6 +610,7 @@ EOF
create database `aa``bb````cc`;
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/backticks.sql
drop database `aa``bb````cc`;
+--remove_file $MYSQLTEST_VARDIR/tmp/backticks.sql
#
# MySQL Bug#13639125 DELIMITER STRIPS THE NEXT NEW LINE IN A SQL STATEMENT
@@ -620,6 +621,7 @@ delimiter
<<" as a;
EOF
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/13639125.sql
+--remove_file $MYSQLTEST_VARDIR/tmp/13639125.sql
#
# --skip-column-names and alignment
@@ -702,7 +704,7 @@ select count(*) from t1; truncate table t1;
--exec $MYSQL --disable-local-infile -e "/*q*/$ldli"
select count(*) from t1; truncate table t1;
drop table t1;
-
+--remove_file $MYSQLTEST_VARDIR/tmp/bug.sql
--echo #
--echo # MDEV-15538 '-N' Produce html output wrong
@@ -716,3 +718,43 @@ drop table t1;
#
--echo
--exec $MYSQL test --enable-cleartext-plugin -e "select 1"
+
+--echo # End of 10.3 tests
+
+--echo #
+--echo # MDEV-21778 Disable system commands in mysql/mariadb client
+--echo #
+
+--error 1
+--exec $MYSQL --sandbox -Ne "select 1; \! echo foo; select 0" 2>&1
+--error 1
+--exec $MYSQL --sandbox -Ne "select 2; \T echo foo; select 0" 2>&1
+--error 1
+--exec $MYSQL --sandbox -Ne "select 3; \. echo.foo; select 0" 2>&1
+
+--write_file $MYSQL_TMP_DIR/mysql_in
+select 'entering sandbox';
+\-
+select 'system';
+\! echo foo
+select 'tee';
+\T echo foo
+select 'source';
+\. echo.foo
+select '^^^';
+EOF
+
+write_line "select 1;
+source $MYSQL_TMP_DIR/mysql_in;
+select 2;
+source $MYSQL_TMP_DIR/mysql_in;
+sandbox;
+select 3;
+source $MYSQL_TMP_DIR/mysql_in;" $MYSQL_TMP_DIR/mysql_in2;
+
+--exec $MYSQL -fN <$MYSQL_TMP_DIR/mysql_in2
+
+--remove_file $MYSQL_TMP_DIR/mysql_in
+--remove_file $MYSQL_TMP_DIR/mysql_in2
+
+--echo # End of 10.5 tests
diff --git a/mysql-test/main/mysql_client_test.result b/mysql-test/main/mysql_client_test.result
index dbc1feaa..dbd5aaea 100644
--- a/mysql-test/main/mysql_client_test.result
+++ b/mysql-test/main/mysql_client_test.result
@@ -261,3 +261,4 @@ SET @@global.character_set_server= @save_character_set_server;
SET @@global.collation_server= @save_collation_server;
SET @@global.character_set_client= @save_character_set_client;
SET @@global.collation_connection= @save_collation_connection;
+FOUND 1 /Aborted connection.*'u' host: '192.0.2.1' real ip: '(localhost|::1)'/ in mysqld.1.err
diff --git a/mysql-test/main/mysql_client_test.test b/mysql-test/main/mysql_client_test.test
index bcb246a8..d620f4c7 100644
--- a/mysql-test/main/mysql_client_test.test
+++ b/mysql-test/main/mysql_client_test.test
@@ -23,7 +23,7 @@ call mtr.add_suppression(" IP address .* could not be resolved");
# server or run mysql-test-run --debug mysql_client_test and check
# var/log/mysql_client_test.trace
---exec echo "$MYSQL_CLIENT_TEST" > $MYSQLTEST_VARDIR/log/mysql_client_test.out.log 2>&1
+--write_line "$MYSQL_CLIENT_TEST" $MYSQLTEST_VARDIR/log/mysql_client_test.out.log
--exec $MYSQL_CLIENT_TEST --getopt-ll-test=25600M >> $MYSQLTEST_VARDIR/log/mysql_client_test.out.log 2>&1
# End of 4.1 tests
@@ -57,3 +57,9 @@ SET @@global.character_set_server= @save_character_set_server;
SET @@global.collation_server= @save_collation_server;
SET @@global.character_set_client= @save_character_set_client;
SET @@global.collation_connection= @save_collation_connection;
+
+# Search for "real ip" in Aborted message
+# This is indicator for abort of the proxied connections.
+let SEARCH_FILE=$MYSQLTEST_VARDIR/log/mysqld.1.err;
+let SEARCH_PATTERN= Aborted connection.*'u' host: '192.0.2.1' real ip: '(localhost|::1)';
+source include/search_pattern_in_file.inc;
diff --git a/mysql-test/main/mysql_client_test_comp.test b/mysql-test/main/mysql_client_test_comp.test
index 36a12b66..f37d82a2 100644
--- a/mysql-test/main/mysql_client_test_comp.test
+++ b/mysql-test/main/mysql_client_test_comp.test
@@ -12,7 +12,7 @@ SET @old_slow_query_log= @@global.slow_query_log;
call mtr.add_suppression(" Error reading file './client_test_db/test_frm_bug.frm'");
call mtr.add_suppression(" IP address .* could not be resolved");
---exec echo "$MYSQL_CLIENT_TEST" > $MYSQLTEST_VARDIR/log/mysql_client_test_comp.out.log 2>&1
+--write_line "$MYSQL_CLIENT_TEST" $MYSQLTEST_VARDIR/log/mysql_client_test_comp.out.log
--exec $MYSQL_CLIENT_TEST --getopt-ll-test=25600M >> $MYSQLTEST_VARDIR/log/mysql_client_test_comp.out.log 2>&1
# End of test
diff --git a/mysql-test/main/mysql_client_test_nonblock.test b/mysql-test/main/mysql_client_test_nonblock.test
index 73e7a6d3..c4bc4304 100644
--- a/mysql-test/main/mysql_client_test_nonblock.test
+++ b/mysql-test/main/mysql_client_test_nonblock.test
@@ -19,7 +19,7 @@ call mtr.add_suppression(" IP address .* could not be resolved");
# server or run mysql-test-run --debug mysql_client_test and check
# var/log/mysql_client_test.trace
---exec echo "$MYSQL_CLIENT_TEST --non-blocking-api" > $MYSQLTEST_VARDIR/log/mysql_client_test.out.log 2>&1
+--write_line "$MYSQL_CLIENT_TEST --non-blocking-api" $MYSQLTEST_VARDIR/log/mysql_client_test.out.log
--exec $MYSQL_CLIENT_TEST --non-blocking-api --getopt-ll-test=25600M >> $MYSQLTEST_VARDIR/log/mysql_client_test.out.log 2>&1
# End of 4.1 tests
diff --git a/mysql-test/main/mysql_connector_net.test b/mysql-test/main/mysql_connector_net.test
index c1dce65a..ad048c20 100644
--- a/mysql-test/main/mysql_connector_net.test
+++ b/mysql-test/main/mysql_connector_net.test
@@ -4,7 +4,7 @@ let $sys_errno=0;
# Error 100 is returned by the powershell script
# if MySql.Data is not installed
--error 0,100
---exec powershell -NoLogo -NoProfile -File main\mysql_connector_net.ps1
+--exec powershell -ExecutionPolicy Bypass -NoLogo -NoProfile -File main\mysql_connector_net.ps1
if ($sys_errno != 0)
{
--skip Connector/NET is not installed
diff --git a/mysql-test/main/mysql_install_db_win_admin.result b/mysql-test/main/mysql_install_db_win_admin.result
index 06d3d677..dd0e4e3b 100644
--- a/mysql-test/main/mysql_install_db_win_admin.result
+++ b/mysql-test/main/mysql_install_db_win_admin.result
@@ -1,10 +1,4 @@
use mysql;
-Running bootstrap
-Creating my.ini file
-Removing default user
-Allowing remote access for user root
-Setting root password
-Creation of the database was successful
# Kill the server
# restart: --datadir=MYSQLTEST_VARDIR/tmp/ddir
connect root,localhost,root,wrongpass,mysql;
diff --git a/mysql-test/main/mysql_install_db_win_admin.test b/mysql-test/main/mysql_install_db_win_admin.test
index a6b98f97..28a2356c 100644
--- a/mysql-test/main/mysql_install_db_win_admin.test
+++ b/mysql-test/main/mysql_install_db_win_admin.test
@@ -6,12 +6,15 @@
# and start server from this directory.
let $ddir= $MYSQLTEST_VARDIR/tmp/ddir;
use mysql;
-exec $MYSQL_INSTALL_DB_EXE --datadir=$ddir --password=foo -R;
+--disable_result_log
+exec $MYSQL_INSTALL_DB_EXE --datadir=$ddir --password=foo --verbose-bootstrap -R;
+--enable_result_log
--source include/kill_mysqld.inc
let $restart_parameters=--datadir=$ddir;
--source include/start_mysqld.inc
# Check that connect with wrong password succeeds
+# (because it can alternatively connect with GSSAPI as admin)
connect (root,localhost,root,wrongpass,mysql);
--source include/kill_mysqld.inc
diff --git a/mysql-test/main/mysql_tzinfo_to_sql_symlink.result b/mysql-test/main/mysql_tzinfo_to_sql_symlink.result
index 97548768..86ff8179 100644
--- a/mysql-test/main/mysql_tzinfo_to_sql_symlink.result
+++ b/mysql-test/main/mysql_tzinfo_to_sql_symlink.result
@@ -18,6 +18,8 @@ execute immediate if(@wsrep_cannot_replicate_tz, 'select ENGINE into @time_zone_
execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_transition ENGINE=InnoDB', 'do 0');
execute immediate if(@wsrep_cannot_replicate_tz, 'select ENGINE into @time_zone_transition_type_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME=''time_zone_transition_type''', 'do 0');
execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_transition_type ENGINE=InnoDB', 'do 0');
+SET @old_alter_alg=@@SESSION.alter_algorithm;
+SET session alter_algorithm='COPY';
TRUNCATE TABLE time_zone;
TRUNCATE TABLE time_zone_name;
TRUNCATE TABLE time_zone_transition;
@@ -52,6 +54,7 @@ execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone E
execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_name ENGINE=', @time_zone_name_engine), 'do 0');
execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_transition ENGINE=', @time_zone_transition_engine, ', ORDER BY Time_zone_id, Transition_time'), 'do 0');
execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_transition_type ENGINE=', @time_zone_transition_type_engine, ', ORDER BY Time_zone_id, Transition_type_id'), 'do 0');
+SET session alter_algorithm=@old_alter_alg;
#
# MDEV-28263: mariadb-tzinfo-to-sql improve wsrep and binlog cases
#
@@ -67,6 +70,8 @@ execute immediate if(@wsrep_cannot_replicate_tz, 'select ENGINE into @time_zone_
execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_transition ENGINE=InnoDB', 'do 0');
execute immediate if(@wsrep_cannot_replicate_tz, 'select ENGINE into @time_zone_transition_type_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME=''time_zone_transition_type''', 'do 0');
execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_transition_type ENGINE=InnoDB', 'do 0');
+SET @old_alter_alg=@@SESSION.alter_algorithm;
+SET session alter_algorithm='COPY';
TRUNCATE TABLE time_zone;
TRUNCATE TABLE time_zone_name;
TRUNCATE TABLE time_zone_transition;
@@ -98,6 +103,7 @@ execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone E
execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_name ENGINE=', @time_zone_name_engine), 'do 0');
execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_transition ENGINE=', @time_zone_transition_engine, ', ORDER BY Time_zone_id, Transition_time'), 'do 0');
execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_transition_type ENGINE=', @time_zone_transition_type_engine, ', ORDER BY Time_zone_id, Transition_type_id'), 'do 0');
+SET session alter_algorithm=@old_alter_alg;
SELECT COUNT(*) FROM time_zone;
COUNT(*)
2
@@ -123,6 +129,8 @@ execute immediate if(@wsrep_is_on, 'SET @save_wsrep_on=@@WSREP_ON, WSREP_ON=OFF'
SET @save_sql_log_bin=@@SQL_LOG_BIN;
SET SESSION SQL_LOG_BIN=0;
SET @wsrep_cannot_replicate_tz=0;
+SET @old_alter_alg=@@SESSION.alter_algorithm;
+SET session alter_algorithm='COPY';
TRUNCATE TABLE time_zone;
TRUNCATE TABLE time_zone_name;
TRUNCATE TABLE time_zone_transition;
@@ -152,6 +160,7 @@ execute immediate if(@wsrep_cannot_replicate_tz, 'do 0','ALTER TABLE time_zone_t
execute immediate if(@wsrep_cannot_replicate_tz, 'do 0','ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id');
SET SESSION SQL_LOG_BIN=@save_sql_log_bin;
execute immediate if(@wsrep_is_on, 'SET SESSION WSREP_ON=@save_wsrep_on', 'do 0');
+SET session alter_algorithm=@old_alter_alg;
SELECT COUNT(*) FROM time_zone;
COUNT(*)
2
@@ -505,6 +514,8 @@ execute immediate if(@wsrep_cannot_replicate_tz, 'select ENGINE into @time_zone_
execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_transition ENGINE=InnoDB', 'do 0');
execute immediate if(@wsrep_cannot_replicate_tz, 'select ENGINE into @time_zone_transition_type_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME=''time_zone_transition_type''', 'do 0');
execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_transition_type ENGINE=InnoDB', 'do 0');
+SET @old_alter_alg=@@SESSION.alter_algorithm;
+SET session alter_algorithm='COPY';
TRUNCATE TABLE time_zone;
TRUNCATE TABLE time_zone_name;
TRUNCATE TABLE time_zone_transition;
@@ -522,6 +533,7 @@ execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone E
execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_name ENGINE=', @time_zone_name_engine), 'do 0');
execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_transition ENGINE=', @time_zone_transition_engine, ', ORDER BY Time_zone_id, Transition_time'), 'do 0');
execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_transition_type ENGINE=', @time_zone_transition_type_engine, ', ORDER BY Time_zone_id, Transition_type_id'), 'do 0');
+SET session alter_algorithm=@old_alter_alg;
DROP TABLE baseline;
DROP TABLE time_zone;
DROP TABLE time_zone_name;
diff --git a/mysql-test/main/mysqlbinlog_row_compressed.result b/mysql-test/main/mysqlbinlog_row_compressed.result
index 2cf65265..410af544 100644
--- a/mysql-test/main/mysqlbinlog_row_compressed.result
+++ b/mysql-test/main/mysqlbinlog_row_compressed.result
@@ -1,3 +1,5 @@
+set pseudo_thread_id=5;
+reset master;
SET GLOBAL log_bin_compress=on;
SET GLOBAL log_bin_compress_min_len=10;
CREATE TABLE t1 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 TINYINT, f4 MEDIUMINT, f5 BIGINT, f6 INT, f7 INT, f8 char(1));
@@ -15,21 +17,21 @@ FLUSH BINARY LOGS;
/*!40019 SET @@session.max_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
-# at 4
-#<date> server id 1 end_log_pos 256 CRC32 XXX Start: xxx
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Start: xxx
ROLLBACK/*!*/;
-# at 256
-#<date> server id 1 end_log_pos 285 CRC32 XXX Gtid list []
-# at 285
-#<date> server id 1 end_log_pos 329 CRC32 XXX Binlog checkpoint master-bin.000001
-# at 329
-#<date> server id 1 end_log_pos 371 CRC32 XXX GTID 0-1-1 ddl
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Gtid list []
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Binlog checkpoint master-bin.000001
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-1 ddl
/*!100101 SET @@session.skip_parallel_replication=0*//*!*/;
/*!100001 SET @@session.gtid_domain_id=0*//*!*/;
/*!100001 SET @@session.server_id=1*//*!*/;
/*!100001 SET @@session.gtid_seq_no=1*//*!*/;
-# at 371
-#<date> server id 1 end_log_pos 542 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
use `test`/*!*/;
SET TIMESTAMP=X/*!*/;
SET @@session.pseudo_thread_id=5/*!*/;
@@ -42,26 +44,26 @@ SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
CREATE TABLE t1 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 TINYINT, f4 MEDIUMINT, f5 BIGINT, f6 INT, f7 INT, f8 char(1))
/*!*/;
-# at 542
-#<date> server id 1 end_log_pos 584 CRC32 XXX GTID 0-1-2 ddl
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-2 ddl
/*!100001 SET @@session.gtid_seq_no=2*//*!*/;
-# at 584
-#<date> server id 1 end_log_pos 745 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
CREATE TABLE t2 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 INT, f4 INT, f5 MEDIUMINT, f6 INT, f7 INT, f8 char(1))
/*!*/;
-# at 745
-#<date> server id 1 end_log_pos 787 CRC32 XXX GTID 0-1-3
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-3
/*!100001 SET @@session.gtid_seq_no=3*//*!*/;
START TRANSACTION
/*!*/;
-# at 787
-# at 861
-#<date> server id 1 end_log_pos 861 CRC32 XXX Annotate_rows:
+# at <pos>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Annotate_rows:
#Q> INSERT INTO t1 VALUES (10, 1, 2, 3, 4, 5, 6, 7, "")
-#<date> server id 1 end_log_pos 917 CRC32 XXX Table_map: `test`.`t1` mapped to number num
-# at 917
-#<date> server id 1 end_log_pos 985 CRC32 XXX Write_compressed_rows: table id 32 flags: STMT_END_F
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Table_map: `test`.`t1` mapped to number num
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Write_compressed_rows: table id <tblid> flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
@@ -74,23 +76,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9='' /* STRING(1) meta=65025 nullable=1 is_null=0 */
# Number of rows: 1
-# at 985
-#<date> server id 1 end_log_pos 1058 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 1058
-#<date> server id 1 end_log_pos 1100 CRC32 XXX GTID 0-1-4
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-4
/*!100001 SET @@session.gtid_seq_no=4*//*!*/;
START TRANSACTION
/*!*/;
-# at 1100
-# at 1176
-#<date> server id 1 end_log_pos 1176 CRC32 XXX Annotate_rows:
+# at <pos>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Annotate_rows:
#Q> INSERT INTO t1 VALUES (11, 1, 2, 3, 4, 5, 6, 7, NULL)
-#<date> server id 1 end_log_pos 1232 CRC32 XXX Table_map: `test`.`t1` mapped to number num
-# at 1232
-#<date> server id 1 end_log_pos 1299 CRC32 XXX Write_compressed_rows: table id 32 flags: STMT_END_F
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Table_map: `test`.`t1` mapped to number num
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Write_compressed_rows: table id <tblid> flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=11 /* INT meta=0 nullable=0 is_null=0 */
@@ -103,23 +105,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */
# Number of rows: 1
-# at 1299
-#<date> server id 1 end_log_pos 1372 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 1372
-#<date> server id 1 end_log_pos 1414 CRC32 XXX GTID 0-1-5
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-5
/*!100001 SET @@session.gtid_seq_no=5*//*!*/;
START TRANSACTION
/*!*/;
-# at 1414
-# at 1492
-#<date> server id 1 end_log_pos 1492 CRC32 XXX Annotate_rows:
+# at <pos>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Annotate_rows:
#Q> INSERT INTO t1 VALUES (12, 1, 2, 3, NULL, 5, 6, 7, "A")
-#<date> server id 1 end_log_pos 1548 CRC32 XXX Table_map: `test`.`t1` mapped to number num
-# at 1548
-#<date> server id 1 end_log_pos 1614 CRC32 XXX Write_compressed_rows: table id 32 flags: STMT_END_F
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Table_map: `test`.`t1` mapped to number num
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Write_compressed_rows: table id <tblid> flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=12 /* INT meta=0 nullable=0 is_null=0 */
@@ -132,23 +134,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
# Number of rows: 1
-# at 1614
-#<date> server id 1 end_log_pos 1687 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 1687
-#<date> server id 1 end_log_pos 1729 CRC32 XXX GTID 0-1-6
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-6
/*!100001 SET @@session.gtid_seq_no=6*//*!*/;
START TRANSACTION
/*!*/;
-# at 1729
-# at 1804
-#<date> server id 1 end_log_pos 1804 CRC32 XXX Annotate_rows:
+# at <pos>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Annotate_rows:
#Q> INSERT INTO t1 VALUES (13, 1, 2, 3, 0, 5, 6, 7, "A")
-#<date> server id 1 end_log_pos 1860 CRC32 XXX Table_map: `test`.`t1` mapped to number num
-# at 1860
-#<date> server id 1 end_log_pos 1927 CRC32 XXX Write_compressed_rows: table id 32 flags: STMT_END_F
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Table_map: `test`.`t1` mapped to number num
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Write_compressed_rows: table id <tblid> flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=13 /* INT meta=0 nullable=0 is_null=0 */
@@ -161,23 +163,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
# Number of rows: 1
-# at 1927
-#<date> server id 1 end_log_pos 2000 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 2000
-#<date> server id 1 end_log_pos 2042 CRC32 XXX GTID 0-1-7
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-7
/*!100001 SET @@session.gtid_seq_no=7*//*!*/;
START TRANSACTION
/*!*/;
-# at 2042
-# at 2096
-#<date> server id 1 end_log_pos 2096 CRC32 XXX Annotate_rows:
+# at <pos>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Annotate_rows:
#Q> INSERT INTO t2 SELECT * FROM t1
-#<date> server id 1 end_log_pos 2152 CRC32 XXX Table_map: `test`.`t2` mapped to number num
-# at 2152
-#<date> server id 1 end_log_pos 2243 CRC32 XXX Write_compressed_rows: table id 33 flags: STMT_END_F
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Table_map: `test`.`t2` mapped to number num
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Write_compressed_rows: table id <tblid> flags: STMT_END_F
### INSERT INTO `test`.`t2`
### SET
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
@@ -223,23 +225,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
# Number of rows: 4
-# at 2243
-#<date> server id 1 end_log_pos 2316 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 2316
-#<date> server id 1 end_log_pos 2358 CRC32 XXX GTID 0-1-8
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-8
/*!100001 SET @@session.gtid_seq_no=8*//*!*/;
START TRANSACTION
/*!*/;
-# at 2358
-# at 2424
-#<date> server id 1 end_log_pos 2424 CRC32 XXX Annotate_rows:
+# at <pos>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Annotate_rows:
#Q> UPDATE t2 SET f4=5 WHERE f4>0 or f4 is NULL
-#<date> server id 1 end_log_pos 2480 CRC32 XXX Table_map: `test`.`t2` mapped to number num
-# at 2480
-#<date> server id 1 end_log_pos 2579 CRC32 XXX Update_compressed_rows: table id 33 flags: STMT_END_F
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Table_map: `test`.`t2` mapped to number num
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Update_compressed_rows: table id <tblid> flags: STMT_END_F
### UPDATE `test`.`t2`
### WHERE
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
@@ -304,23 +306,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
# Number of rows: 3
-# at 2579
-#<date> server id 1 end_log_pos 2652 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 2652
-#<date> server id 1 end_log_pos 2694 CRC32 XXX GTID 0-1-9
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-9
/*!100001 SET @@session.gtid_seq_no=9*//*!*/;
START TRANSACTION
/*!*/;
-# at 2694
-# at 2731
-#<date> server id 1 end_log_pos 2731 CRC32 XXX Annotate_rows:
+# at <pos>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Annotate_rows:
#Q> DELETE FROM t1
-#<date> server id 1 end_log_pos 2787 CRC32 XXX Table_map: `test`.`t1` mapped to number num
-# at 2787
-#<date> server id 1 end_log_pos 2879 CRC32 XXX Delete_compressed_rows: table id 32 flags: STMT_END_F
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Table_map: `test`.`t1` mapped to number num
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Delete_compressed_rows: table id <tblid> flags: STMT_END_F
### DELETE FROM `test`.`t1`
### WHERE
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
@@ -366,23 +368,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
# Number of rows: 4
-# at 2879
-#<date> server id 1 end_log_pos 2952 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 2952
-#<date> server id 1 end_log_pos 2994 CRC32 XXX GTID 0-1-10
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-10
/*!100001 SET @@session.gtid_seq_no=10*//*!*/;
START TRANSACTION
/*!*/;
-# at 2994
-# at 3031
-#<date> server id 1 end_log_pos 3031 CRC32 XXX Annotate_rows:
+# at <pos>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Annotate_rows:
#Q> DELETE FROM t2
-#<date> server id 1 end_log_pos 3087 CRC32 XXX Table_map: `test`.`t2` mapped to number num
-# at 3087
-#<date> server id 1 end_log_pos 3172 CRC32 XXX Delete_compressed_rows: table id 33 flags: STMT_END_F
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Table_map: `test`.`t2` mapped to number num
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Delete_compressed_rows: table id <tblid> flags: STMT_END_F
### DELETE FROM `test`.`t2`
### WHERE
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
@@ -428,13 +430,13 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
# Number of rows: 4
-# at 3172
-#<date> server id 1 end_log_pos 3245 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 3245
-#<date> server id 1 end_log_pos 3293 CRC32 XXX Rotate to master-bin.000002 pos: 4
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Rotate to master-bin.000002 pos: 4
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
diff --git a/mysql-test/main/mysqlbinlog_row_compressed.test b/mysql-test/main/mysqlbinlog_row_compressed.test
index 03868d3e..b3a6add4 100644
--- a/mysql-test/main/mysqlbinlog_row_compressed.test
+++ b/mysql-test/main/mysqlbinlog_row_compressed.test
@@ -4,13 +4,14 @@
--source include/have_log_bin.inc
--source include/have_binlog_format_row.inc
---source include/have_normal_zlib.inc
#
#
# mysqlbinlog: compressed row event
#
#
+set pseudo_thread_id=5;
+reset master;
SET GLOBAL log_bin_compress=on;
SET GLOBAL log_bin_compress_min_len=10;
@@ -30,7 +31,7 @@ DELETE FROM t2;
FLUSH BINARY LOGS;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
---replace_regex /\d{6} *\d*:\d\d:\d\d/<date>/ /Start:.*at startup/Start: xxx/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /mapped to number \d*/mapped to number num/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ /xid=\d*/xid=<xid>/
+--replace_regex /\d{6} *\d*:\d\d:\d\d/<date>/ /Start:.*at startup/Start: xxx/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /mapped to number \d*/mapped to number num/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ /xid=\d*/xid=<xid>/ /table id \d+/table id <tblid>/ /end_log_pos \d+/end_log_pos <pos>/ /# at \d+/# at <pos>/
--exec $MYSQL_BINLOG --verbose --verbose --base64-output=DECODE-ROWS $datadir/$binlog
--echo
diff --git a/mysql-test/main/mysqlbinlog_row_minimal.result b/mysql-test/main/mysqlbinlog_row_minimal.result
index 69aa91a8..f8795433 100644
--- a/mysql-test/main/mysqlbinlog_row_minimal.result
+++ b/mysql-test/main/mysqlbinlog_row_minimal.result
@@ -382,7 +382,7 @@ START TRANSACTION
#<date> server id 1 end_log_pos END_LOG_POS CRC32 XXX Annotate_rows:
#Q> UPDATE t1 t1 INNER JOIN t2 t2 ON t1.ref_id = t2.id
#Q> SET t1.is_deleted = TRUE
-#Q> WHERE t1.id =
+#Q> WHERE t1.id = 1
#<date> server id 1 end_log_pos END_LOG_POS CRC32 XXX Table_map: `test`.`t1` mapped to number TID
# at POS
#<date> server id 1 end_log_pos END_LOG_POS CRC32 XXX Update_rows: table id TID flags: STMT_END_F
diff --git a/mysql-test/main/mysqlbinlog_stmt_compressed.result b/mysql-test/main/mysqlbinlog_stmt_compressed.result
index c0d26f3f..471cb4b7 100644
--- a/mysql-test/main/mysqlbinlog_stmt_compressed.result
+++ b/mysql-test/main/mysqlbinlog_stmt_compressed.result
@@ -15,21 +15,21 @@ FLUSH BINARY LOGS;
/*!40019 SET @@session.max_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
-# at 4
-#<date> server id 1 end_log_pos 256 CRC32 XXX Start: xxx
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Start: xxx
ROLLBACK/*!*/;
-# at 256
-#<date> server id 1 end_log_pos 285 CRC32 XXX Gtid list []
-# at 285
-#<date> server id 1 end_log_pos 329 CRC32 XXX Binlog checkpoint master-bin.000001
-# at 329
-#<date> server id 1 end_log_pos 371 CRC32 XXX GTID 0-1-1 ddl
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Gtid list []
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Binlog checkpoint master-bin.000001
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-1 ddl
/*!100101 SET @@session.skip_parallel_replication=0*//*!*/;
/*!100001 SET @@session.gtid_domain_id=0*//*!*/;
/*!100001 SET @@session.server_id=1*//*!*/;
/*!100001 SET @@session.gtid_seq_no=1*//*!*/;
-# at 371
-#<date> server id 1 end_log_pos 542 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
use `test`/*!*/;
SET TIMESTAMP=X/*!*/;
SET @@session.pseudo_thread_id=5/*!*/;
@@ -42,136 +42,136 @@ SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
CREATE TABLE t1 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 TINYINT, f4 MEDIUMINT, f5 BIGINT, f6 INT, f7 INT, f8 char(1))
/*!*/;
-# at 542
-#<date> server id 1 end_log_pos 584 CRC32 XXX GTID 0-1-2 ddl
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-2 ddl
/*!100001 SET @@session.gtid_seq_no=2*//*!*/;
-# at 584
-#<date> server id 1 end_log_pos 745 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
CREATE TABLE t2 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 INT, f4 INT, f5 MEDIUMINT, f6 INT, f7 INT, f8 char(1))
/*!*/;
-# at 745
-#<date> server id 1 end_log_pos 787 CRC32 XXX GTID 0-1-3
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-3
/*!100001 SET @@session.gtid_seq_no=3*//*!*/;
START TRANSACTION
/*!*/;
-# at 787
-#<date> server id 1 end_log_pos 915 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
INSERT INTO t1 VALUES (10, 1, 2, 3, 4, 5, 6, 7, "")
/*!*/;
-# at 915
-#<date> server id 1 end_log_pos 988 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 988
-#<date> server id 1 end_log_pos 1030 CRC32 XXX GTID 0-1-4
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-4
/*!100001 SET @@session.gtid_seq_no=4*//*!*/;
START TRANSACTION
/*!*/;
-# at 1030
-#<date> server id 1 end_log_pos 1158 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
INSERT INTO t1 VALUES (11, 1, 2, 3, 4, 5, 6, 7, NULL)
/*!*/;
-# at 1158
-#<date> server id 1 end_log_pos 1231 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 1231
-#<date> server id 1 end_log_pos 1273 CRC32 XXX GTID 0-1-5
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-5
/*!100001 SET @@session.gtid_seq_no=5*//*!*/;
START TRANSACTION
/*!*/;
-# at 1273
-#<date> server id 1 end_log_pos 1403 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
INSERT INTO t1 VALUES (12, 1, 2, 3, NULL, 5, 6, 7, "A")
/*!*/;
-# at 1403
-#<date> server id 1 end_log_pos 1476 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 1476
-#<date> server id 1 end_log_pos 1518 CRC32 XXX GTID 0-1-6
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-6
/*!100001 SET @@session.gtid_seq_no=6*//*!*/;
START TRANSACTION
/*!*/;
-# at 1518
-#<date> server id 1 end_log_pos 1645 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
INSERT INTO t1 VALUES (13, 1, 2, 3, 0, 5, 6, 7, "A")
/*!*/;
-# at 1645
-#<date> server id 1 end_log_pos 1718 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 1718
-#<date> server id 1 end_log_pos 1760 CRC32 XXX GTID 0-1-7
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-7
/*!100001 SET @@session.gtid_seq_no=7*//*!*/;
START TRANSACTION
/*!*/;
-# at 1760
-#<date> server id 1 end_log_pos 1868 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
INSERT INTO t2 SELECT * FROM t1
/*!*/;
-# at 1868
-#<date> server id 1 end_log_pos 1941 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 1941
-#<date> server id 1 end_log_pos 1983 CRC32 XXX GTID 0-1-8
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-8
/*!100001 SET @@session.gtid_seq_no=8*//*!*/;
START TRANSACTION
/*!*/;
-# at 1983
-#<date> server id 1 end_log_pos 2100 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
UPDATE t2 SET f4=5 WHERE f4>0 or f4 is NULL
/*!*/;
-# at 2100
-#<date> server id 1 end_log_pos 2173 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 2173
-#<date> server id 1 end_log_pos 2215 CRC32 XXX GTID 0-1-9
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-9
/*!100001 SET @@session.gtid_seq_no=9*//*!*/;
START TRANSACTION
/*!*/;
-# at 2215
-#<date> server id 1 end_log_pos 2306 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
DELETE FROM t1
/*!*/;
-# at 2306
-#<date> server id 1 end_log_pos 2379 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 2379
-#<date> server id 1 end_log_pos 2421 CRC32 XXX GTID 0-1-10
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX GTID 0-1-10
/*!100001 SET @@session.gtid_seq_no=10*//*!*/;
START TRANSACTION
/*!*/;
-# at 2421
-#<date> server id 1 end_log_pos 2512 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
DELETE FROM t2
/*!*/;
-# at 2512
-#<date> server id 1 end_log_pos 2585 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 2585
-#<date> server id 1 end_log_pos 2633 CRC32 XXX Rotate to master-bin.000002 pos: 4
+# at <pos>
+#<date> server id 1 end_log_pos <pos> CRC32 XXX Rotate to master-bin.000002 pos: 4
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
diff --git a/mysql-test/main/mysqlbinlog_stmt_compressed.test b/mysql-test/main/mysqlbinlog_stmt_compressed.test
index 4a651243..5c3fb58c 100644
--- a/mysql-test/main/mysqlbinlog_stmt_compressed.test
+++ b/mysql-test/main/mysqlbinlog_stmt_compressed.test
@@ -4,7 +4,6 @@
--source include/have_log_bin.inc
--source include/have_binlog_format_statement.inc
---source include/have_normal_zlib.inc
#
#
# mysqlbinlog: compressed query event
@@ -29,7 +28,7 @@ DELETE FROM t2;
FLUSH BINARY LOGS;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
---replace_regex /\d{6} *\d*:\d\d:\d\d/<date>/ /Start:.*at startup/Start: xxx/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /mapped to number \d*/mapped to number num/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ /xid=\d*/xid=<xid>/
+--replace_regex /\d{6} *\d*:\d\d:\d\d/<date>/ /Start:.*at startup/Start: xxx/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /mapped to number \d*/mapped to number num/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ /xid=\d*/xid=<xid>/ /table id \d+/table id <tblid>/ /end_log_pos \d+/end_log_pos <pos>/ /# at \d+/# at <pos>/
--exec $MYSQL_BINLOG --verbose --verbose --base64-output=DECODE-ROWS $datadir/$binlog
--echo
diff --git a/mysql-test/main/mysqld--help.result b/mysql-test/main/mysqld--help.result
index 2a3a9f00..ebff8143 100644
--- a/mysql-test/main/mysqld--help.result
+++ b/mysql-test/main/mysqld--help.result
@@ -736,13 +736,17 @@ The following specify which files/extra groups are read (specified before remain
max_connections*5 or max_connections + table_cache*2
(whichever is larger) number of file descriptors
(Automatically configured unless set explicitly)
- --optimizer-adjust-secondary-key-costs=#
- 0 = No changes. 1 = Update secondary key costs for ranges
- to be at least 5x of clustered primary key costs. 2 =
- Remove 'max_seek optimization' for secondary keys and
- slight adjustment of filter cost. This option will be
- deleted in MariaDB 11.0 as it is not needed with the new
- 11.0 optimizer.
+ --optimizer-adjust-secondary-key-costs=name
+ A bit field with the following values:
+ adjust_secondary_key_cost = Update secondary key costs
+ for ranges to be at least 5x of clustered primary key
+ costs. disable_max_seek = Disable 'max_seek optimization'
+ for secondary keys and slight adjustment of filter cost.
+ disable_forced_index_in_group_by = Disable automatic
+ forced index in GROUP BY. This variable will be deleted
+ in MariaDB 11.0 as it is not needed with the new 11.0
+ optimizer.
+ Use 'ALL' to set all combinations.
--optimizer-extra-pruning-depth=#
If the optimizer needs to enumerate join prefix of this
size or larger, then it will try aggressively prune away
@@ -1732,7 +1736,7 @@ old-alter-table DEFAULT
old-mode UTF8_IS_UTF8MB3
old-passwords FALSE
old-style-user-limits FALSE
-optimizer-adjust-secondary-key-costs 0
+optimizer-adjust-secondary-key-costs
optimizer-extra-pruning-depth 8
optimizer-max-sel-arg-weight 32000
optimizer-max-sel-args 16000
@@ -1876,7 +1880,7 @@ slave-run-triggers-for-rbr NO
slave-skip-errors OFF
slave-sql-verify-checksum TRUE
slave-transaction-retries 10
-slave-transaction-retry-errors 1158,1159,1160,1161,1205,1213,1429,2013,12701
+slave-transaction-retry-errors 1158,1159,1160,1161,1205,1213,1020,1429,2013,12701
slave-transaction-retry-interval 0
slave-type-conversions
slow-launch-time 2
diff --git a/mysql-test/main/mysqld_option_err.result b/mysql-test/main/mysqld_option_err.result
index 4afcc5e0..157edb58 100644
--- a/mysql-test/main/mysqld_option_err.result
+++ b/mysql-test/main/mysqld_option_err.result
@@ -3,6 +3,17 @@ Test bad binlog format.
Test bad default storage engine.
Test non-numeric value passed to number option.
Test that bad value for plugin enum option is rejected correctly.
+Test to see if multiple unknown options will be displayed in the error output
+FOUND 1 /unknown option '--nonexistentoption2'/ in mysqltest.log
+FOUND 1 /unknown option '--alsononexistent'/ in mysqltest.log
+FOUND 1 /unknown variable 'nonexistentvariable=1'/ in mysqltest.log
+Test to see if multiple ambiguous options and invalid arguments will be displayed in the error output
+FOUND 1 /Error while setting value 'invalid_value' to 'sql_mode'/ in mysqltest.log
+FOUND 1 /ambiguous option '--character'/ in mysqltest.log
+FOUND 1 /option '--bootstrap' cannot take an argument/ in mysqltest.log
+FOUND 1 /Integer value out of range for uint64: '18446744073709551616' for binlog_cache_size/ in mysqltest.log
+FOUND 1 /Unknown suffix 'y' used for variable 'bulk_insert_buffer_size' \(value '123y'\). Legal suffix characters are: K, M, G, T, P, E/ in mysqltest.log
+FOUND 1 /Error while setting value '123y' to 'bulk_insert_buffer_size'/ in mysqltest.log
Test that --help --verbose works
Test that --not-known-option --help --verbose gives error
Done.
diff --git a/mysql-test/main/mysqld_option_err.test b/mysql-test/main/mysqld_option_err.test
index e9655fd4..c2b943ba 100644
--- a/mysql-test/main/mysqld_option_err.test
+++ b/mysql-test/main/mysqld_option_err.test
@@ -25,7 +25,7 @@ mkdir $MYSQLTEST_VARDIR/tmp/mysqld_option_err;
--echo Test bad binlog format.
---error 1
+--error 13
--exec $MYSQLD_BOOTSTRAP_CMD --skip-networking --datadir=$MYSQLTEST_VARDIR/tmp/mysqld_option_err --skip-grant-tables --log-bin --binlog-format=badformat >>$MYSQLTEST_VARDIR/tmp/mysqld_option_err/mysqltest.log 2>&1
@@ -35,7 +35,7 @@ mkdir $MYSQLTEST_VARDIR/tmp/mysqld_option_err;
--echo Test non-numeric value passed to number option.
---error 1
+--error 9
--exec $MYSQLD_BOOTSTRAP_CMD --skip-networking --datadir=$MYSQLTEST_VARDIR/tmp/mysqld_option_err --skip-grant-tables --min-examined-row-limit=notanumber >>$MYSQLTEST_VARDIR/tmp/mysqld_option_err/mysqltest.log 2>&1
@@ -46,6 +46,36 @@ mkdir $MYSQLTEST_VARDIR/tmp/mysqld_option_err;
--error 7
--exec $MYSQLD_BOOTSTRAP_CMD --skip-networking --datadir=$MYSQLTEST_VARDIR/tmp/mysqld_option_err --skip-grant-tables --plugin-dir=$MYSQLTEST_VARDIR/plugins --plugin-load=example=ha_example.so --plugin-example-enum-var=noexist >>$MYSQLTEST_VARDIR/tmp/mysqld_option_err/mysqltest.log 2>&1
+--let SEARCH_FILE = $MYSQLTEST_VARDIR/tmp/mysqld_option_err/mysqltest.log
+
+--echo Test to see if multiple unknown options will be displayed in the error output
+--error 7
+--exec $MYSQLD_BOOTSTRAP_CMD --skip-networking --datadir=$MYSQLTEST_VARDIR/tmp/mysqld_option_err --skip-grant-tables --nonexistentoption2 --alsononexistent --nonexistentvariable=1 >>$MYSQLTEST_VARDIR/tmp/mysqld_option_err/mysqltest.log 2>&1
+
+--let SEARCH_PATTERN=unknown option '--nonexistentoption2'
+--source include/search_pattern_in_file.inc
+--let SEARCH_PATTERN=unknown option '--alsononexistent'
+--source include/search_pattern_in_file.inc
+--let SEARCH_PATTERN=unknown variable 'nonexistentvariable=1'
+--source include/search_pattern_in_file.inc
+
+--echo Test to see if multiple ambiguous options and invalid arguments will be displayed in the error output
+--error 9
+--exec $MYSQLD_BOOTSTRAP_CMD --skip-networking --datadir=$MYSQLTEST_VARDIR/tmp/mysqld_option_err --skip-grant-tables --getopt-prefix-matching --sql-mode=invalid_value --character --bootstrap=partstoob --binlog_cache_size=18446744073709551616 --bulk_insert_buffer_size=123y >>$MYSQLTEST_VARDIR/tmp/mysqld_option_err/mysqltest.log 2>&1
+
+--let SEARCH_PATTERN=Error while setting value 'invalid_value' to 'sql_mode'
+--source include/search_pattern_in_file.inc
+--let SEARCH_PATTERN=ambiguous option '--character'
+--source include/search_pattern_in_file.inc
+--let SEARCH_PATTERN=option '--bootstrap' cannot take an argument
+--source include/search_pattern_in_file.inc
+--let SEARCH_PATTERN=Integer value out of range for uint64: '18446744073709551616' for binlog_cache_size
+--source include/search_pattern_in_file.inc
+--let SEARCH_PATTERN=Unknown suffix 'y' used for variable 'bulk_insert_buffer_size' \(value '123y'\). Legal suffix characters are: K, M, G, T, P, E
+--source include/search_pattern_in_file.inc
+--let SEARCH_PATTERN=Error while setting value '123y' to 'bulk_insert_buffer_size'
+--source include/search_pattern_in_file.inc
+
#
# Test that an wrong option with --help --verbose gives an error
#
diff --git a/mysql-test/main/mysqldump-compat-102.result b/mysql-test/main/mysqldump-compat-102.result
index 86a2ebc4..d5ed5457 100644
--- a/mysql-test/main/mysqldump-compat-102.result
+++ b/mysql-test/main/mysqldump-compat-102.result
@@ -58,6 +58,7 @@ BEGIN
log(0, 'Session ' || connection_id() || ' ' || current_user || ' started');
END;
$$
+/*!999999\- enable the sandbox mode */
-- MariaDB dump DUMPVERSION Distrib DISTVERSION, for OS
--
-- Host: localhost Database: db1_mdev17429
diff --git a/mysql-test/main/mysqldump-max.result b/mysql-test/main/mysqldump-max.result
index 7dd1030e..e76193ac 100644
--- a/mysql-test/main/mysqldump-max.result
+++ b/mysql-test/main/mysqldump-max.result
@@ -77,6 +77,7 @@ id name
3 first value
4 first value
5 first value
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -102,7 +103,7 @@ CREATE TABLE `t1` (
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
-INSERT DELAYED IGNORE INTO `t1` VALUES
+INSERT DELAYED IGNORE INTO `t1` VALUES
(1,'first value'),
(2,'first value'),
(3,'first value'),
@@ -119,7 +120,7 @@ CREATE TABLE `t2` (
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
-INSERT DELAYED IGNORE INTO `t2` VALUES
+INSERT DELAYED IGNORE INTO `t2` VALUES
(1,'first value'),
(2,'first value'),
(3,'first value'),
@@ -136,7 +137,7 @@ CREATE TABLE `t3` (
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40000 ALTER TABLE `t3` DISABLE KEYS */;
-INSERT DELAYED IGNORE INTO `t3` VALUES
+INSERT DELAYED IGNORE INTO `t3` VALUES
(1,'first value'),
(2,'first value'),
(3,'first value'),
@@ -153,7 +154,7 @@ CREATE TABLE `t4` (
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40000 ALTER TABLE `t4` DISABLE KEYS */;
-INSERT DELAYED IGNORE INTO `t4` VALUES
+INSERT DELAYED IGNORE INTO `t4` VALUES
(1,'first value'),
(2,'first value'),
(3,'first value'),
@@ -170,7 +171,7 @@ CREATE TABLE `t5` (
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40000 ALTER TABLE `t5` DISABLE KEYS */;
-INSERT DELAYED IGNORE INTO `t5` VALUES
+INSERT DELAYED IGNORE INTO `t5` VALUES
(1,'first value'),
(2,'first value'),
(3,'first value'),
@@ -187,7 +188,7 @@ CREATE TABLE `t6` (
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40000 ALTER TABLE `t6` DISABLE KEYS */;
-INSERT IGNORE INTO `t6` VALUES
+INSERT IGNORE INTO `t6` VALUES
(1,'first value'),
(2,'first value'),
(3,'first value'),
@@ -204,6 +205,7 @@ INSERT IGNORE INTO `t6` VALUES
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -229,7 +231,7 @@ CREATE TABLE `t1` (
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
-INSERT DELAYED INTO `t1` VALUES
+INSERT DELAYED INTO `t1` VALUES
(1,'first value'),
(2,'first value'),
(3,'first value'),
@@ -246,7 +248,7 @@ CREATE TABLE `t2` (
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
-INSERT DELAYED INTO `t2` VALUES
+INSERT DELAYED INTO `t2` VALUES
(1,'first value'),
(2,'first value'),
(3,'first value'),
@@ -263,7 +265,7 @@ CREATE TABLE `t3` (
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40000 ALTER TABLE `t3` DISABLE KEYS */;
-INSERT DELAYED INTO `t3` VALUES
+INSERT DELAYED INTO `t3` VALUES
(1,'first value'),
(2,'first value'),
(3,'first value'),
@@ -280,7 +282,7 @@ CREATE TABLE `t4` (
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40000 ALTER TABLE `t4` DISABLE KEYS */;
-INSERT DELAYED INTO `t4` VALUES
+INSERT DELAYED INTO `t4` VALUES
(1,'first value'),
(2,'first value'),
(3,'first value'),
@@ -297,7 +299,7 @@ CREATE TABLE `t5` (
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40000 ALTER TABLE `t5` DISABLE KEYS */;
-INSERT DELAYED INTO `t5` VALUES
+INSERT DELAYED INTO `t5` VALUES
(1,'first value'),
(2,'first value'),
(3,'first value'),
diff --git a/mysql-test/main/mysqldump-nl.result b/mysql-test/main/mysqldump-nl.result
index 66902492..1e992830 100644
--- a/mysql-test/main/mysqldump-nl.result
+++ b/mysql-test/main/mysqldump-nl.result
@@ -12,6 +12,7 @@ create procedure sp() select * from `v1
1v`;
flush tables;
use test;
+/*!999999\- enable the sandbox mode */
--
-- Current Database: `mysqltest1
@@ -134,6 +135,7 @@ test\`
\! ls
#
test`
+/*!999999\- enable the sandbox mode */
--
-- Current Database: `test```
diff --git a/mysql-test/main/mysqldump-no-binlog.result b/mysql-test/main/mysqldump-no-binlog.result
index 223034d8..669675ff 100644
--- a/mysql-test/main/mysqldump-no-binlog.result
+++ b/mysql-test/main/mysqldump-no-binlog.result
@@ -1 +1,2 @@
mariadb-dump: Error: Binlogging on server not active
+/*!999999\- enable the sandbox mode */
diff --git a/mysql-test/main/mysqldump-order-by-size.result b/mysql-test/main/mysqldump-order-by-size.result
index 36185290..3bd953b8 100644
--- a/mysql-test/main/mysqldump-order-by-size.result
+++ b/mysql-test/main/mysqldump-order-by-size.result
@@ -21,6 +21,7 @@ test.t3 analyze status OK
test.t4 analyze status Engine-independent statistics collected
test.t4 analyze Warning Engine-independent statistics are not collected for column 'a'
test.t4 analyze status OK
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t4` (
diff --git a/mysql-test/main/mysqldump-system.result b/mysql-test/main/mysqldump-system.result
index 559f6f29..240a8499 100644
--- a/mysql-test/main/mysqldump-system.result
+++ b/mysql-test/main/mysqldump-system.result
@@ -41,6 +41,7 @@ CREATE FUNCTION metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
#
# mysqldump of system tables with --system=all
#
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -632,6 +633,7 @@ UNLOCK TABLES;
#
# mysqldump of system tables with --system=all --replace
#
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -1246,6 +1248,7 @@ UNLOCK TABLES;
#
# mysqldump of system tables with --system=all --insert-ignore
#
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -1300,28 +1303,28 @@ USE mysql;
LOCK TABLES `column_stats` WRITE;
/*!40000 ALTER TABLE `column_stats` DISABLE KEYS */;
-INSERT IGNORE INTO `column_stats` VALUES
+INSERT IGNORE INTO `column_stats` VALUES
('mysql','tz','Time_zone_id','1','5',0.0000,4.0000,98.2500,4,'JSON_HB','{\"target_histogram_size\": 254, \"collected_at\": \"2022-01-07 07:07:00\", \"collected_by\": \"version\", \"histogram_hb\": [{\"start\": \"1\", \"size\": 0.340966921, \"ndv\": 1}, {\"start\": \"3\", \"size\": 0.328244275, \"ndv\": 1}, {\"start\": \"4\", \"size\": 0.328244275, \"ndv\": 1}, {\"start\": \"5\", \"end\": \"5\", \"size\": 0.002544529, \"ndv\": 1}]}');
/*!40000 ALTER TABLE `column_stats` ENABLE KEYS */;
UNLOCK TABLES;
LOCK TABLES `index_stats` WRITE;
/*!40000 ALTER TABLE `index_stats` DISABLE KEYS */;
-INSERT IGNORE INTO `index_stats` VALUES
+INSERT IGNORE INTO `index_stats` VALUES
('mysql','tz','PRIMARY',1,98.2500);
/*!40000 ALTER TABLE `index_stats` ENABLE KEYS */;
UNLOCK TABLES;
LOCK TABLES `table_stats` WRITE;
/*!40000 ALTER TABLE `table_stats` DISABLE KEYS */;
-INSERT IGNORE INTO `table_stats` VALUES
+INSERT IGNORE INTO `table_stats` VALUES
('mysql','tz',393);
/*!40000 ALTER TABLE `table_stats` ENABLE KEYS */;
UNLOCK TABLES;
LOCK TABLES `innodb_index_stats` WRITE;
/*!40000 ALTER TABLE `innodb_index_stats` DISABLE KEYS */;
-INSERT IGNORE INTO `innodb_index_stats` VALUES
+INSERT IGNORE INTO `innodb_index_stats` VALUES
('mysql','tz','PRIMARY','2019-12-31 21:00:00','n_diff_pfx01',4,1,'Time_zone_id'),
('mysql','tz','PRIMARY','2019-12-31 21:00:00','n_diff_pfx02',393,1,'Time_zone_id,Transition_time'),
('mysql','tz','PRIMARY','2019-12-31 21:00:00','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),
@@ -1331,7 +1334,7 @@ UNLOCK TABLES;
LOCK TABLES `innodb_table_stats` WRITE;
/*!40000 ALTER TABLE `innodb_table_stats` DISABLE KEYS */;
-INSERT IGNORE INTO `innodb_table_stats` VALUES
+INSERT IGNORE INTO `innodb_table_stats` VALUES
('mysql','tz','2019-12-31 21:00:00',393,1,0);
/*!40000 ALTER TABLE `innodb_table_stats` ENABLE KEYS */;
UNLOCK TABLES;
@@ -1340,7 +1343,7 @@ USE mysql;
LOCK TABLES `time_zone` WRITE;
/*!40000 ALTER TABLE `time_zone` DISABLE KEYS */;
-INSERT IGNORE INTO `time_zone` VALUES
+INSERT IGNORE INTO `time_zone` VALUES
(1,'N'),
(2,'N'),
(3,'N'),
@@ -1351,7 +1354,7 @@ UNLOCK TABLES;
LOCK TABLES `time_zone_name` WRITE;
/*!40000 ALTER TABLE `time_zone_name` DISABLE KEYS */;
-INSERT IGNORE INTO `time_zone_name` VALUES
+INSERT IGNORE INTO `time_zone_name` VALUES
('Europe/Moscow',3),
('Japan',5),
('leap/Europe/Moscow',4),
@@ -1363,7 +1366,7 @@ UNLOCK TABLES;
LOCK TABLES `time_zone_leap_second` WRITE;
/*!40000 ALTER TABLE `time_zone_leap_second` DISABLE KEYS */;
-INSERT IGNORE INTO `time_zone_leap_second` VALUES
+INSERT IGNORE INTO `time_zone_leap_second` VALUES
(78796800,1),
(94694401,2),
(126230402,3),
@@ -1391,7 +1394,7 @@ UNLOCK TABLES;
LOCK TABLES `time_zone_transition` WRITE;
/*!40000 ALTER TABLE `time_zone_transition` DISABLE KEYS */;
-INSERT IGNORE INTO `time_zone_transition` VALUES
+INSERT IGNORE INTO `time_zone_transition` VALUES
(1,-1693706400,0),
(1,-1680483600,1),
(1,-1663455600,2),
@@ -1790,7 +1793,7 @@ UNLOCK TABLES;
LOCK TABLES `time_zone_transition_type` WRITE;
/*!40000 ALTER TABLE `time_zone_transition_type` DISABLE KEYS */;
-INSERT IGNORE INTO `time_zone_transition_type` VALUES
+INSERT IGNORE INTO `time_zone_transition_type` VALUES
(1,0,7200,1,'MEST'),
(1,1,3600,0,'MET'),
(1,2,7200,1,'MEST'),
diff --git a/mysql-test/main/mysqldump-timing.result b/mysql-test/main/mysqldump-timing.result
index 7fa11893..5e2851b8 100644
--- a/mysql-test/main/mysqldump-timing.result
+++ b/mysql-test/main/mysqldump-timing.result
@@ -7,6 +7,7 @@ CREATE TABLE t1 (i INT);
INSERT INTO t1 VALUES (0);
LOCK TABLE t1 WRITE;
timeout without t1 contents expected
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -30,6 +31,7 @@ SET @save_max_statement_time=@@max_statement_time;
SET GLOBAL max_statement_time=0.1;
UNLOCK TABLES;;
This would be a race condition otherwise, but default max_statement_time=0 makes it succeed
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
diff --git a/mysql-test/main/mysqldump-utf8mb4.result b/mysql-test/main/mysqldump-utf8mb4.result
index 90477130..7c5aea5f 100644
--- a/mysql-test/main/mysqldump-utf8mb4.result
+++ b/mysql-test/main/mysqldump-utf8mb4.result
@@ -32,6 +32,7 @@ Testing XML format output
----
Testing text format output
----
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
diff --git a/mysql-test/main/mysqldump.result b/mysql-test/main/mysqldump.result
index 9fb5f0bd..b1279320 100644
--- a/mysql-test/main/mysqldump.result
+++ b/mysql-test/main/mysqldump.result
@@ -31,6 +31,7 @@ DROP TABLE t1;
CREATE TABLE t1 (a decimal(64, 20));
INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
("0987654321098765432109876543210987654321");
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
@@ -48,6 +49,7 @@ CREATE TABLE t1 (a double);
INSERT IGNORE INTO t1 VALUES ('-9e999999');
Warnings:
Warning 1264 Out of range value for column 'a' at row 1
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
@@ -70,6 +72,7 @@ INSERT INTO t1 VALUES ('1.2345', 2.3456);
INSERT INTO t1 VALUES ("1.2345", 2.3456);
ERROR 42S22: Unknown column '1.2345' in 'field list'
SET SQL_MODE=@OLD_SQL_MODE;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
@@ -83,6 +86,7 @@ INSERT INTO `t1` VALUES
(1.23450,2.3456),
(1.23450,2.3456),
(1.23450,2.3456);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
@@ -96,6 +100,7 @@ INSERT INTO `t1` VALUES
(1.23450,2.3456),
(1.23450,2.3456),
(1.23450,2.3456);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -136,6 +141,7 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!999999\- enable the sandbox mode */
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
@@ -217,6 +223,7 @@ DROP TABLE t1;
#
CREATE TABLE t1 (a VARCHAR(255)) DEFAULT CHARSET koi8r;
INSERT INTO t1 VALUES (_koi8r x'C1C2C3C4C5'), (NULL);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -258,6 +265,7 @@ DROP TABLE t1;
#
CREATE TABLE t1 (a int) ENGINE=MYISAM;
INSERT INTO t1 VALUES (1), (2);
+/*!999999\- enable the sandbox mode */
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
@@ -283,6 +291,7 @@ UNLOCK TABLES;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!999999\- enable the sandbox mode */
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
@@ -313,6 +322,7 @@ DROP TABLE t1;
# Bug#2592 mysqldump doesn't quote "tricky" names correctly
#
create table ```a` (i int);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE ```a` (
@@ -324,6 +334,7 @@ drop table ```a`;
# Bug#2591 mysqldump quotes names inconsistently
#
create table t1(a int);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -357,6 +368,7 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!999999\- enable the sandbox mode */
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
@@ -383,6 +395,7 @@ UNLOCK TABLES;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
set global sql_mode='ANSI_QUOTES';
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -416,6 +429,7 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!999999\- enable the sandbox mode */
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
@@ -448,6 +462,7 @@ drop table t1;
#
create table t1(a int);
insert into t1 values (1),(2),(3);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -480,6 +495,7 @@ drop table t1;
#
# Bug#6101 create database problem
#
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -506,6 +522,7 @@ USE `test`;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
create database mysqldump_test_db character set latin2 collate latin2_bin;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -540,6 +557,7 @@ drop database mysqldump_test_db;
# if it is explicitly set.
CREATE TABLE t1 (a CHAR(10));
INSERT INTO t1 VALUES (_latin1 '');
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -582,6 +600,7 @@ UNLOCK TABLES;
# If the future we can move this command into a separate test with
# checking that "mysqldump" is compiled with "latin1"
#
+/*!999999\- enable the sandbox mode */
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
@@ -606,6 +625,7 @@ UNLOCK TABLES;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!999999\- enable the sandbox mode */
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
@@ -630,6 +650,7 @@ UNLOCK TABLES;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!999999\- enable the sandbox mode */
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
@@ -662,6 +683,7 @@ CREATE TABLE t1 (a int);
CREATE TABLE t2 (a int);
INSERT INTO t1 VALUES (1),(2),(3);
INSERT INTO t2 VALUES (4),(5),(6);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -706,6 +728,7 @@ DROP TABLE t2;
#
CREATE TABLE t1 (`b` blob);
INSERT INTO `t1` VALUES (0x602010000280100005E71A);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -747,6 +770,7 @@ DROP TABLE t1;
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1),(2),(3);
INSERT INTO t1 VALUES (4),(5),(6);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -768,7 +792,7 @@ CREATE TABLE `t1` (
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
-INSERT IGNORE INTO `t1` VALUES
+INSERT IGNORE INTO `t1` VALUES
(1),
(2),
(3),
@@ -787,6 +811,7 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -807,7 +832,7 @@ CREATE TABLE `t1` (
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
-INSERT DELAYED IGNORE INTO `t1` VALUES
+INSERT DELAYED IGNORE INTO `t1` VALUES
(1),
(2),
(3),
@@ -1162,6 +1187,7 @@ F_cd00692c3bfe59267d5ecfac5310286c int,
F_6faa8040da20ef399b63a72d0e4ab575 int,
F_fe73f687e5bc5280214e0486b273a5f9 int);
insert into t1 (F_8d3bba7425e7c98c50f52ca1b52d3735) values (1);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -1531,6 +1557,7 @@ drop table t1;
#
CREATE TABLE t1 (a int);
INSERT INTO t1 VALUES (1),(2),(3);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -1584,6 +1611,7 @@ CREATE TABLE t1 ( a INT );
CREATE TABLE t2 ( a INT );
INSERT INTO t1 VALUES (1), (2);
INSERT INTO t2 VALUES (1), (2);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -1619,6 +1647,7 @@ CREATE TABLE `t2` (
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -1691,21 +1720,35 @@ create table t3(a varchar(30) primary key, b int not null);
test_sequence
------ Testing with illegal table names ------
mariadb-dump: Couldn't find table: "\d-2-1.sql"
+/*!999999\- enable the sandbox mode */
mariadb-dump: Couldn't find table: "\t1"
+/*!999999\- enable the sandbox mode */
mariadb-dump: Couldn't find table: "\t1"
+/*!999999\- enable the sandbox mode */
mariadb-dump: Couldn't find table: "\\t1"
+/*!999999\- enable the sandbox mode */
mariadb-dump: Couldn't find table: "t\1"
+/*!999999\- enable the sandbox mode */
mariadb-dump: Couldn't find table: "t\1"
+/*!999999\- enable the sandbox mode */
mariadb-dump: Couldn't find table: "t/1"
+/*!999999\- enable the sandbox mode */
mariadb-dump: Couldn't find table: "T_1"
+/*!999999\- enable the sandbox mode */
mariadb-dump: Couldn't find table: "T%1"
+/*!999999\- enable the sandbox mode */
mariadb-dump: Couldn't find table: "T'1"
+/*!999999\- enable the sandbox mode */
mariadb-dump: Couldn't find table: "T_1"
+/*!999999\- enable the sandbox mode */
mariadb-dump: Couldn't find table: "T_"
+/*!999999\- enable the sandbox mode */
test_sequence
------ Testing with illegal database names ------
mariadb-dump: Got error: 1049: "Unknown database 'mysqldump_test_d'" when selecting the database
+/*!999999\- enable the sandbox mode */
mariadb-dump: Got error: 1049: "Unknown database 'mysqld\ump_test_db'" when selecting the database
+/*!999999\- enable the sandbox mode */
drop table t1, t2, t3;
drop database mysqldump_test_db;
use test;
@@ -1767,6 +1810,7 @@ insert into t2 (a, b) values (NULL, NULL),(10, NULL),(NULL, "twenty"),(30, "thir
</table_data>
</database>
</mysqldump>
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -1805,6 +1849,7 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -1930,6 +1975,7 @@ create table t1(a int);
create table t2(a int);
create table t3(a int);
mariadb-dump: Couldn't find table: "non_existing"
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -1979,6 +2025,7 @@ drop table t1, t2, t3;
create table t1 (a int);
mariadb-dump: Couldn't execute 'SELECT /*!40001 SQL_NO_CACHE */ `a` FROM `t1` WHERE xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx': 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 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' at line 1 (1064)
mariadb-dump: Got error: 1064: "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 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' at line 1" when retrieving data from server
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -2020,6 +2067,7 @@ CREATE TABLE `t1` (
PRIMARY KEY (`a b`, `c"d`, `e``f`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
insert into t1 values (0815, 4711, 2006);
+/*!999999\- enable the sandbox mode */
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
@@ -2050,6 +2098,7 @@ UNLOCK TABLES;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -2105,6 +2154,7 @@ INSERT INTO t2 VALUES ('bingo');
INSERT INTO t2 VALUES ('waffle');
INSERT INTO t2 VALUES ('lemon');
create view v2 as select * from t2 where a like 'a%' with check option;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -2204,6 +2254,7 @@ drop database db1;
use test;
create table t1(a int);
create view v1 as select * from t1;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -2274,6 +2325,7 @@ INSERT INTO t2 VALUES ('bingo');
INSERT INTO t2 VALUES ('waffle');
INSERT INTO t2 VALUES ('lemon');
create view v2 as select * from t2 where a like 'a%' with check option;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -2344,6 +2396,7 @@ use test;
#
CREATE TABLE t1 (a char(10));
INSERT INTO t1 VALUES ('\'');
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -2391,6 +2444,7 @@ create view v1 as
select * from v3 where b in (1, 2, 3, 4, 5, 6, 7);
create view v2 as
select v3.a from v3, v1 where v1.a=v3.a and v3.b=3 limit 1;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -2543,6 +2597,7 @@ end if;
end AFTER 0000-00-00 00:00:00 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
INSERT INTO t1 (a) VALUES (1),(2),(3),(22);
update t1 set a = 4 where a=3;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -2676,6 +2731,7 @@ DELIMITER ;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -2827,6 +2883,7 @@ Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be
set sql_mode='ansi';
create procedure `a'b` () select 1;
set sql_mode='';
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -2983,6 +3040,7 @@ d
2003-10-26 02:00:00
2003-10-26 02:00:00
set global time_zone='Europe/Moscow';
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -3024,6 +3082,7 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -3086,6 +3145,7 @@ a2
1
2
3
+/*!999999\- enable the sandbox mode */
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
@@ -3166,6 +3226,7 @@ a b c
1 first value xxxx
2 second value tttt
3 third value vvv vvv
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -3294,6 +3355,7 @@ BEGIN
SET new.a = 0;
END|
SET SQL_MODE = @old_sql_mode;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -3357,6 +3419,7 @@ DROP TABLE t1;
#
create table t1 (a binary(1), b blob);
insert into t1 values ('','');
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -3392,6 +3455,7 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -3492,6 +3556,7 @@ insert into t values(5, 51);
create view v1 as select qty, price, qty*price as value from t;
create view v2 as select qty from v1;
mysqldump {
+/*!999999\- enable the sandbox mode */
/*!50001 DROP VIEW IF EXISTS `v1`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
@@ -3507,6 +3572,7 @@ mysqldump {
/*!50001 SET collation_connection = @saved_col_connection */;
} mysqldump {
+/*!999999\- enable the sandbox mode */
/*!50001 DROP VIEW IF EXISTS `v2`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
@@ -3552,6 +3618,7 @@ drop table t1;
mysqldump {
mariadb-dump: Got error: 1356: "View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them" when using LOCK TABLES
mariadb-dump: Couldn't execute 'SHOW FIELDS FROM `v1`': View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them (1356)
+/*!999999\- enable the sandbox mode */
-- failed on view `v1`: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`id` AS `id` from `t1`
@@ -3568,6 +3635,7 @@ insert into t1 values (1232131);
insert into t1 values (4711);
insert into t1 values (3231);
insert into t1 values (0815);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -3646,6 +3714,7 @@ create table basetable ( id serial, tag varchar(64) );
create database mysqldump_views;
use mysqldump_views;
create view nasishnasifu as select mysqldump_tables.basetable.id from mysqldump_tables.basetable;
+/*!999999\- enable the sandbox mode */
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqldump_tables` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */;
@@ -3731,10 +3800,14 @@ grant all on test.* to mysqltest_1@localhost;
create table t1(a int, b varchar(34));
reset master;
mariadb-dump: Couldn't execute 'FLUSH /*!40101 LOCAL */ TABLES': Access denied; you need (at least one of) the RELOAD privilege(s) for this operation (1227)
+/*!999999\- enable the sandbox mode */
mariadb-dump: Couldn't execute 'FLUSH /*!40101 LOCAL */ TABLES': Access denied; you need (at least one of) the RELOAD privilege(s) for this operation (1227)
+/*!999999\- enable the sandbox mode */
grant RELOAD on *.* to mysqltest_1@localhost;
mariadb-dump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need (at least one of) the SUPER, BINLOG MONITOR privilege(s) for this operation (1227)
+/*!999999\- enable the sandbox mode */
mariadb-dump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need (at least one of) the SUPER, BINLOG MONITOR privilege(s) for this operation (1227)
+/*!999999\- enable the sandbox mode */
grant REPLICATION CLIENT on *.* to mysqltest_1@localhost;
drop table t1;
drop user mysqltest_1@localhost;
@@ -3793,6 +3866,7 @@ use test;
#
# Bug #33762: mysqldump can not dump INFORMATION_SCHEMA
#
+/*!999999\- enable the sandbox mode */
DROP TABLE IF EXISTS `TABLES`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
@@ -3857,6 +3931,7 @@ DROP TABLE t1;
CREATE TABLE t2 (a INT) ENGINE=MyISAM;
CREATE TABLE t3 (a INT) ENGINE=MyISAM;
CREATE TABLE t1 (a INT) ENGINE=merge UNION=(t2, t3);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -3947,10 +4022,12 @@ connect user27293,localhost,user1,,mysqldump_test_db,$MASTER_MYPORT,$MASTER_MYS
connection user27293;
create procedure mysqldump_test_db.sp1() select 'hello';
mariadb-dump: user2 has insufficient privileges to SHOW CREATE PROCEDURE `sp1`!
+/*!999999\- enable the sandbox mode */
-- insufficient privileges to SHOW CREATE PROCEDURE `sp1`
-- does user2 have permissions on mysql.proc?
+/*!999999\- enable the sandbox mode */
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
@@ -3978,6 +4055,7 @@ drop database mysqldump_test_db;
#
CREATE TABLE t1 (c1 INT, c2 LONGBLOB);
INSERT INTO t1 SET c1=11, c2=REPEAT('q',509);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
@@ -4051,6 +4129,7 @@ use db42635;
create table t1 (id int);
create view db42635.v1 (c) as select * from db42635.t1;
create view db42635.v2 (c) as select * from db42635.t1;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -4111,6 +4190,7 @@ drop database db42635;
#
SET NAMES utf8;
CREATE TABLE `straße` ( f1 INT );
+/*!999999\- enable the sandbox mode */
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
@@ -4133,6 +4213,7 @@ UNLOCK TABLES;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!999999\- enable the sandbox mode */
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
@@ -4157,6 +4238,7 @@ UNLOCK TABLES;
DROP TABLE `straße`;
CREATE TABLE `כדשגכחךלדגכחשךדגחכךלדגכ` ( f1 INT );
+/*!999999\- enable the sandbox mode */
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
@@ -4180,6 +4262,7 @@ UNLOCK TABLES;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
mariadb-dump: Got error: 1146: "Table 'test.???????????????????????' doesn't exist" when using LOCK TABLES
+/*!999999\- enable the sandbox mode */
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
@@ -4196,6 +4279,7 @@ CREATE TABLE t1(a int, b int);
INSERT INTO t1 VALUES (1,1);
INSERT INTO t1 VALUES (2,3);
INSERT INTO t1 VALUES (3,4), (4,5);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -4470,6 +4554,7 @@ insert into t1 values (1232131);
insert into t1 values (4711);
insert into t1 values (3231);
insert into t1 values (0815);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -4602,6 +4687,7 @@ CREATE DATABASE test;
create database `test-database`;
use `test-database`;
create table test (a int);
+/*!999999\- enable the sandbox mode */
DROP TABLE IF EXISTS `test`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
@@ -4824,6 +4910,7 @@ CREATE TRIGGER `trig` BEFORE INSERT ON `test` FOR EACH ROW BEGIN
END |
ALTER DATABASE `test-database` CHARACTER SET latin1 COLLATE latin1_swedish_ci;
ALTER DATABASE `test-database` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `test` (
@@ -5307,6 +5394,7 @@ USE test;
# Also verify that a prefix of the mode's name is enough.
#
CREATE TABLE t1 (a INT);
+/*!999999\- enable the sandbox mode */
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
@@ -5539,6 +5627,7 @@ CREATE DATABASE `a\"'``b`;
USE `a\"'``b`;
CREATE PROCEDURE p1() BEGIN END;
ALTER DATABASE `a\"'``b` COLLATE utf8_general_ci;
+/*!999999\- enable the sandbox mode */
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = '' */ ;
ALTER DATABASE `a\"'``b` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
@@ -5587,6 +5676,7 @@ CREATE VIEW nonunique_table_view_name AS SELECT 1;
##################################################
# --compact --databases db1 db2
+/*!999999\- enable the sandbox mode */
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `db1` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci */;
@@ -5655,6 +5745,7 @@ USE `db2`;
##################################################
# --compact db2
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `nonunique_table_name` (
@@ -5677,6 +5768,7 @@ INSERT INTO `nonunique_table_view_name` VALUES
##################################################
# --compact --delayed-insert --no-data-med=0 --databases db2 db1
+/*!999999\- enable the sandbox mode */
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `db2` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci */;
@@ -5688,7 +5780,7 @@ CREATE TABLE `nonunique_table_name` (
UNIQUE KEY `i1` (`i1`)
) ENGINE=MEMORY AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
-INSERT DELAYED INTO `nonunique_table_name` VALUES
+INSERT DELAYED INTO `nonunique_table_name` VALUES
(1),
(2);
/*!40101 SET @saved_cs_client = @@character_set_client */;
@@ -5710,7 +5802,7 @@ CREATE TABLE `basetable` (
`id` smallint(6) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
-INSERT DELAYED INTO `basetable` VALUES
+INSERT DELAYED INTO `basetable` VALUES
(5),
(6);
/*!40101 SET @saved_cs_client = @@character_set_client */;
@@ -5811,6 +5903,7 @@ CREATE TABLE t1 (a int, b int);
CREATE TRIGGER tt1_t1 BEFORE INSERT ON t1 FOR EACH ROW
SET NEW.b=NEW.a + 10;
INSERT INTO t1 (a) VALUES (1),(2),(3);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -5859,6 +5952,7 @@ DROP TABLE t1;
#
# Without --replace and --insert-ignore
#
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -5954,6 +6048,7 @@ CREATE TABLE IF NOT EXISTS `transaction_registry` (
#
# With --replace
#
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -6059,6 +6154,7 @@ CREATE TABLE IF NOT EXISTS `transaction_registry` (
#
# With --insert-ignore
#
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -6183,6 +6279,7 @@ insert into t3 values(2);
insert into t3(`invisible`, `a b c & $!@#$%^&*( )`, `ds=~!@ \# $% ^ & * ( ) _ - = +` ) values(1,2,3);
CREATE TABLE t4(ËÏÌÏÎËÁ1 INT);
insert into t4 values(1);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
@@ -6223,6 +6320,7 @@ CREATE TABLE `t4` (
INSERT INTO `t4` VALUES
(1);
#Check side effect on --complete insert
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
@@ -6468,7 +6566,7 @@ j integer
INSERT INTO t VALUES (1,1),(2,2),(3,3),(4,4);
# Dump database 1
# Restore from database 1 to database 2
-ERROR 1100 (HY000) at line 45: Table 'seq_t_i' was not locked with LOCK TABLES
+ERROR 1100 (HY000) at line 46: Table 'seq_t_i' was not locked with LOCK TABLES
SETVAL(`seq_t_i`, 1, 0)
1
DROP DATABASE IF EXISTS test1;
@@ -6589,10 +6687,8 @@ TABLE 1
SET GLOBAL LOG_OUTPUT=DEFAULT, GLOBAL GENERAL_LOG=@save_general_log;
TRUNCATE TABLE mysql.general_log;
DROP DATABASE test1;
-#
# End of 10.3 tests
#
-#
# MDEV-31092 mysqldump --force doesn't ignore error as it should
#
create function f1() returns int return 1;
@@ -6603,6 +6699,7 @@ Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
update mysql.event set body ='select not_a_value' where db='test' and name='e1';
create table t1 (i int);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
@@ -6650,7 +6747,24 @@ drop function f1;
drop function f2;
drop event e1;
drop table t1;
-#
# End of 10.4 tests
#
+# MDEV-33727 mariadb-dump trusts the server and does not validate the data
+#
+create table t1 (a int);
+/*!999999\- enable the sandbox mode */
+DROP TABLE IF EXISTS `t1`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `t1` (
+`a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+ERROR at line 9: Not allowed in the sandbox mode
+drop table t1;
+# End of 10.5 tests
+#
+# MDEV-16733 mysqldump --tab and --xml options are conflicting
+#
mariadb-dump: --xml can't be used with --tab.
+# End of 10.11 tests
diff --git a/mysql-test/main/mysqldump.test b/mysql-test/main/mysqldump.test
index 1d479dde..0f513a7f 100644
--- a/mysql-test/main/mysqldump.test
+++ b/mysql-test/main/mysqldump.test
@@ -2989,9 +2989,7 @@ TRUNCATE TABLE mysql.general_log;
DROP DATABASE test1;
--remove_file $MYSQLTEST_VARDIR/tmp/dumptest1.sql
---echo #
--echo # End of 10.3 tests
---echo #
--echo #
--echo # MDEV-31092 mysqldump --force doesn't ignore error as it should
@@ -3010,13 +3008,34 @@ drop function f2;
drop event e1;
drop table t1;
---echo #
--echo # End of 10.4 tests
+
+--echo #
+--echo # MDEV-33727 mariadb-dump trusts the server and does not validate the data
--echo #
-#
-# MDEV-16733 mysqldump --tab and --xml options are conflicting
-#
+create table t1 (a int);
+--exec $MYSQL_DUMP --compact --add-drop-table test > $MYSQLTEST_VARDIR/tmp/mdev33727.sql
+
+# first let's verify it can be loaded not only by mariadb client
+--source $MYSQLTEST_VARDIR/tmp/mdev33727.sql
+
+# and now test the mariadb client sandbox protection
+--append_file $MYSQLTEST_VARDIR/tmp/mdev33727.sql
+\! echo foo
+EOF
+--error 1
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/mdev33727.sql 2>&1
+--remove_file $MYSQLTEST_VARDIR/tmp/mdev33727.sql
+drop table t1;
+
+--echo # End of 10.5 tests
+
+--echo #
+--echo # MDEV-16733 mysqldump --tab and --xml options are conflicting
+--echo #
--replace_result mariadb-dump.exe mariadb-dump
--error 1
--exec $MYSQL_DUMP --xml --tab=$MYSQLTEST_VARDIR/tmp 2>&1
+
+--echo # End of 10.11 tests
diff --git a/mysql-test/main/openssl_1.result b/mysql-test/main/openssl_1.result
index be6c2998..b022ce23 100644
--- a/mysql-test/main/openssl_1.result
+++ b/mysql-test/main/openssl_1.result
@@ -77,6 +77,7 @@ DROP TABLE thread_status;
SET GLOBAL event_scheduler=0;
CREATE TABLE t1(a int);
INSERT INTO t1 VALUES (1), (2);
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -113,6 +114,7 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -149,6 +151,7 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
diff --git a/mysql-test/main/openssl_1.test b/mysql-test/main/openssl_1.test
index 9232868b..24525287 100644
--- a/mysql-test/main/openssl_1.test
+++ b/mysql-test/main/openssl_1.test
@@ -68,7 +68,7 @@ drop table t1;
# Test that we can't open connection to server if we are using
# a different cacert
#
---exec echo "this query should not execute;" > $MYSQLTEST_VARDIR/tmp/test.sql
+--write_line "this query should not execute;" $MYSQLTEST_VARDIR/tmp/test.sql
# Handle that openssl gives different error messages from YaSSL.
--replace_regex /2026 TLS\/SSL error.*/2026 TLS\/SSL error: xxxx/
--error 1
diff --git a/mysql-test/main/opt_trace.result b/mysql-test/main/opt_trace.result
index aeaff29a..3c90e97c 100644
--- a/mysql-test/main/opt_trace.result
+++ b/mysql-test/main/opt_trace.result
@@ -1609,6 +1609,12 @@ EXPLAIN SELECT MIN(d) FROM t1 where b=2 and c=3 group by a {
},
{
"test_if_skip_sort_order": []
+ },
+ {
+ "prepare_sum_aggregators": {
+ "function": "min(t1.d)",
+ "aggregator_type": "simple"
+ }
}
]
}
@@ -1818,6 +1824,18 @@ EXPLAIN SELECT id,MIN(a),MAX(a) FROM t1 WHERE a>=20010104e0 GROUP BY id {
},
{
"test_if_skip_sort_order": []
+ },
+ {
+ "prepare_sum_aggregators": {
+ "function": "min(t1.a)",
+ "aggregator_type": "simple"
+ }
+ },
+ {
+ "prepare_sum_aggregators": {
+ "function": "max(t1.a)",
+ "aggregator_type": "simple"
+ }
}
]
}
@@ -10528,6 +10546,25 @@ JS
drop table t1,t2,t3,t10,t11;
set optimizer_trace=DEFAULT;
#
+# MDEV-29179 Condition pushdown from HAVING into WHERE is not shown in optimizer trace
+#
+CREATE TABLE t1 (a INT, b VARCHAR(1), KEY (a), KEY(b,a)) ENGINE=MEMORY;
+INSERT INTO t1 VALUES (4,'n'),(1,'h'),(NULL,'w');
+SET optimizer_trace= 'enabled=on';
+SELECT b, a FROM t1 WHERE b <> 'p' OR a = 4 GROUP BY b, a HAVING a <= 7;
+b a
+h 1
+n 4
+SELECT json_detailed(json_extract(trace, '$**.steps[*].join_optimization.steps[*].condition_pushdown_from_having') ) exp1, JSON_VALID(trace) exp2 FROM information_schema.optimizer_trace;
+exp1 exp2
+[
+ {
+ "conds": "(t1.b <> 'p' or multiple equal(4, t1.a)) and t1.a <= 7",
+ "having": null
+ }
+] 1
+DROP TABLE t1;
+#
# End of 10.4 tests
#
set optimizer_trace='enabled=on';
diff --git a/mysql-test/main/opt_trace.test b/mysql-test/main/opt_trace.test
index 7b0ee5be..58a6b23d 100644
--- a/mysql-test/main/opt_trace.test
+++ b/mysql-test/main/opt_trace.test
@@ -804,6 +804,16 @@ drop table t1,t2,t3,t10,t11;
set optimizer_trace=DEFAULT;
--echo #
+--echo # MDEV-29179 Condition pushdown from HAVING into WHERE is not shown in optimizer trace
+--echo #
+
+CREATE TABLE t1 (a INT, b VARCHAR(1), KEY (a), KEY(b,a)) ENGINE=MEMORY;
+INSERT INTO t1 VALUES (4,'n'),(1,'h'),(NULL,'w');
+SET optimizer_trace= 'enabled=on';
+SELECT b, a FROM t1 WHERE b <> 'p' OR a = 4 GROUP BY b, a HAVING a <= 7; SELECT json_detailed(json_extract(trace, '$**.steps[*].join_optimization.steps[*].condition_pushdown_from_having') ) exp1, JSON_VALID(trace) exp2 FROM information_schema.optimizer_trace;
+DROP TABLE t1;
+
+--echo #
--echo # End of 10.4 tests
--echo #
diff --git a/mysql-test/main/partition.result b/mysql-test/main/partition.result
index 4f2a55ad..4c762a1d 100644
--- a/mysql-test/main/partition.result
+++ b/mysql-test/main/partition.result
@@ -2063,7 +2063,6 @@ ALTER TABLE t1 ANALYZE PARTITION p1 EXTENDED;
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 'EXTENDED' at line 1
ALTER TABLE t1 ANALYZE PARTITION p1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
ALTER TABLE t1 CHECK PARTITION p1;
Table Op Msg_type Msg_text
diff --git a/mysql-test/main/partition_binlog.result b/mysql-test/main/partition_binlog.result
index 45cd636c..5ecccde4 100644
--- a/mysql-test/main/partition_binlog.result
+++ b/mysql-test/main/partition_binlog.result
@@ -27,7 +27,6 @@ Table Op Msg_type Msg_text
test.t1 repair error Wrong partition name or partition list
ALTER TABLE t1 ANALYZE PARTITION p0;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
ALTER TABLE t1 CHECK PARTITION p0;
Table Op Msg_type Msg_text
diff --git a/mysql-test/main/plugin_auth.result b/mysql-test/main/plugin_auth.result
index 12a5156e..9a13b9ba 100644
--- a/mysql-test/main/plugin_auth.result
+++ b/mysql-test/main/plugin_auth.result
@@ -338,6 +338,7 @@ FLUSH PRIVILEGES;
# Executing 'mysqladmin'
mysqld is alive
# Executing 'mysqldump'
+/*!999999\- enable the sandbox mode */
# Executing 'mysql_upgrade'
#
# Bug #59657: Move the client authentication_pam plugin into the
diff --git a/mysql-test/main/plugin_loaderr.test b/mysql-test/main/plugin_loaderr.test
index 85621ad0..1623630b 100644
--- a/mysql-test/main/plugin_loaderr.test
+++ b/mysql-test/main/plugin_loaderr.test
@@ -13,14 +13,14 @@ FROM INFORMATION_SCHEMA.PLUGINS WHERE plugin_name = 'innodb';
--echo #
--echo # MDEV-6351 --plugin=force has no effect for built-in plugins
--echo #
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
--error 1
--exec $MYSQLD_CMD --innodb=force --innodb-page-size=6000 --disable-log-error
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
--disable_reconnect
diff --git a/mysql-test/main/ps.result b/mysql-test/main/ps.result
index 7fd30f3e..fb3681ca 100644
--- a/mysql-test/main/ps.result
+++ b/mysql-test/main/ps.result
@@ -5812,5 +5812,186 @@ GROUP_CONCAT(@x)
0
DROP TABLE t;
#
+# MDEV-15703: Crash in EXECUTE IMMEDIATE 'CREATE OR REPLACE TABLE t1 (a INT DEFAULT ?)' USING DEFAULT
+#
+PREPARE stmt FROM 'CREATE OR REPLACE TABLE t1 (a INT DEFAULT ?)';
+EXECUTE stmt USING DEFAULT;
+ERROR HY000: Default/ignore value is not supported for such parameter usage
+DEALLOCATE PREPARE stmt;
+PREPARE stmt FROM 'CREATE OR REPLACE TABLE t1 (a INT DEFAULT ?)';
+EXECUTE stmt USING IGNORE;
+ERROR HY000: Default/ignore value is not supported for such parameter usage
+DEALLOCATE PREPARE stmt;
+EXECUTE IMMEDIATE 'CREATE OR REPLACE TABLE t1 (a INT DEFAULT ?)' USING DEFAULT;
+ERROR HY000: Default/ignore value is not supported for such parameter usage
+EXECUTE IMMEDIATE 'CREATE OR REPLACE TABLE t1 (a INT DEFAULT ?)' USING IGNORE;
+ERROR HY000: Default/ignore value is not supported for such parameter usage
+EXECUTE IMMEDIATE 'BEGIN NOT ATOMIC DECLARE a INT DEFAULT ?; END' USING DEFAULT;
+ERROR HY000: Default/ignore value is not supported for such parameter usage
+EXECUTE IMMEDIATE 'BEGIN NOT ATOMIC DECLARE a INT DEFAULT ?; END' USING IGNORE;
+ERROR HY000: Default/ignore value is not supported for such parameter usage
+CREATE PROCEDURE p1(a INT) SELECT 1;
+EXECUTE IMMEDIATE 'CALL p1(?)' USING DEFAULT;
+ERROR HY000: Default/ignore value is not supported for such parameter usage
+EXECUTE IMMEDIATE 'CALL p1(?)' USING IGNORE;
+ERROR HY000: Default/ignore value is not supported for such parameter usage
+DROP PROCEDURE p1;
+EXECUTE IMMEDIATE 'SELECT ? UNION SELECT 1' USING DEFAULT;
+ERROR HY000: Default/ignore value is not supported for such parameter usage
+EXECUTE IMMEDIATE 'SELECT ? UNION SELECT 1' USING IGNORE;
+ERROR HY000: Default/ignore value is not supported for such parameter usage
+EXECUTE IMMEDIATE 'SELECT * FROM (SELECT ? UNION ALL SELECT 1) AS derived' USING DEFAULT;
+ERROR HY000: Default/ignore value is not supported for such parameter usage
+EXECUTE IMMEDIATE 'SELECT * FROM (SELECT ? UNION ALL SELECT 1) AS derived' USING IGNORE;
+ERROR HY000: Default/ignore value is not supported for such parameter usage
+EXECUTE IMMEDIATE 'SELECT * FROM (SELECT ? UNION DISTINCT SELECT 1) AS derived' USING DEFAULT;
+ERROR HY000: Default/ignore value is not supported for such parameter usage
+EXECUTE IMMEDIATE 'SELECT * FROM (SELECT ? UNION DISTINCT SELECT 1) AS derived' USING IGNORE;
+ERROR HY000: Default/ignore value is not supported for such parameter usage
+# multi-update and DEFAULT
+CREATE TABLE t1 (a INT, b INT DEFAULT a);
+INSERT into t1 VALUES (1,2),(2,3);
+CREATE TABLE t2 (a INT, b INT DEFAULT a);
+INSERT INTO t2 VALUES (1,10),(2,30);
+UPDATE t1,t2 SET t1.b = DEFAULT, t2.b = DEFAULT WHERE t1.a=t2.a;
+SELECT * FROM t1;
+a b
+1 1
+2 2
+SELECT * FROM t2;
+a b
+1 1
+2 2
+# re-check the case for Prepared Statement with parameters
+TRUNCATE TABLE t1;
+TRUNCATE TABLE t2;
+INSERT INTO t1 VALUES (1,2),(2,3);
+INSERT INTO t2 VALUES (1,10),(2,30);
+EXECUTE IMMEDIATE 'UPDATE t1,t2 SET t1.b = ?, t2.b = ? WHERE t1.a=t2.a' USING DEFAULT, DEFAULT;
+SELECT * FROM t1;
+a b
+1 1
+2 2
+SELECT * FROM t2;
+a b
+1 1
+2 2
+DROP TABLE t1, t2;
+# multi-update and IGNORE
+CREATE TABLE t1 (a INT, b INT default a);
+INSERT INTO t1 VALUES (1,2),(2,3);
+CREATE TABLE t2 (a INT, b INT default a);
+INSERT INTO t2 VALUES (1,10),(2,30);
+UPDATE t1,t2 SET t1.b = IGNORE, t2.b = IGNORE WHERE t1.a=t2.a;
+SELECT * FROM t1;
+a b
+1 2
+2 3
+SELECT * FROM t2;
+a b
+1 NULL
+2 NULL
+# re-check the case for Prepared Statement with parameters
+TRUNCATE TABLE t1;
+TRUNCATE TABLE t2;
+INSERT INTO t1 VALUES (1,2),(2,3);
+INSERT INTO t2 VALUES (1,10),(2,30);
+EXECUTE IMMEDIATE 'UPDATE t1,t2 SET t1.b = ?, t2.b = ? WHERE t1.a=t2.a' USING IGNORE, IGNORE;
+SELECT * FROM t1;
+a b
+1 2
+2 3
+SELECT * FROM t2;
+a b
+1 10
+2 30
+DROP TABLE t1, t2;
+# multi-update and DEFAULT parameter (no default)
+CREATE TABLE t1 (a INT, b INT NOT NULL);
+INSERT INTO t1 VALUES (1,2),(2,3);
+CREATE TABLE t2 (a INT, b INT NOT NULL);
+INSERT INTO t2 VALUES (1,10),(2,30);
+EXECUTE IMMEDIATE 'UPDATE t1,t2 SET t1.b = ?, t2.b = ? WHERE t1.a=t2.a' USING DEFAULT, DEFAULT;
+ERROR HY000: Field 'b' doesn't have a default value
+DROP TABLE t1, t2;
+# multi-update and IGNORE parameter (no default)
+CREATE TABLE t1 (a INT, b INT NOT NULL);
+INSERT INTO t1 VALUES (1,2),(2,3);
+CREATE TABLE t2 (a INT, b INT NOT NULL);
+INSERT INTO t2 VALUES (1,10),(2,30);
+EXECUTE IMMEDIATE 'UPDATE t1,t2 SET t1.b = ?, t2.b = ? WHERE t1.a=t2.a' USING IGNORE, IGNORE;
+SELECT * FROM t1;
+a b
+1 2
+2 3
+SELECT * FROM t2;
+a b
+1 10
+2 30
+DROP TABLE t1, t2;
+#
+# MDEV-33549: Incorrect handling of UPDATE in PS mode in case a table's colum declared as NOT NULL
+#
+CREATE TABLE t1 (a INT, b INT DEFAULT NULL);
+INSERT INTO t1 VALUES (20, 30);
+EXECUTE IMMEDIATE 'UPDATE t1 SET b=?' USING DEFAULT;
+SELECT * FROM t1;
+a b
+20 NULL
+# Run twice the same update in PS mode to check
+# that no memory relating issues taken place.
+PREPARE stmt FROM 'UPDATE t1 SET b=?';
+EXECUTE stmt USING DEFAULT;
+EXECUTE stmt USING DEFAULT;
+# Clean up
+DEALLOCATE PREPARE stmt;
+DROP TABLE t1;
+# The same test for multi-table update
+CREATE TABLE t1 (a INT, b INT DEFAULT NULL);
+CREATE TABLE t2 (a INT, c INT DEFAULT NULL);
+INSERT INTO t1 VALUES (20, 30);
+INSERT INTO t2 VALUES (20, 30);
+EXECUTE IMMEDIATE 'UPDATE t1,t2 SET b=? WHERE t1.a=t2.a' USING DEFAULT;
+SELECT * FROM t1;
+a b
+20 NULL
+# Run twice the same multi-table update in PS mode to check
+# that no memory relating issues taken place.
+PREPARE stmt FROM 'UPDATE t1,t2 SET b=? WHERE t1.a=t2.a';
+EXECUTE stmt USING DEFAULT;
+EXECUTE stmt USING DEFAULT;
+DEALLOCATE PREPARE stmt;
+# Clean up
+DROP TABLE t1;
+# This time checks that a default value for table's column
+# represented by a function call is handled correctly on UPDATE in PS mode
+CREATE TABLE t1 (a INT, b INT DEFAULT MOD(a, 3));
+INSERT INTO t1 VALUES (20, 30);
+EXECUTE IMMEDIATE 'UPDATE t1, t2 SET b=? WHERE t1.a=t2.a' USING DEFAULT;
+SELECT * FROM t1;
+a b
+20 2
+# Run twice the same multi-table update in PS mode to check
+# that no memory relating issues taken place.
+PREPARE stmt FROM 'UPDATE t1, t2 SET b=? WHERE t1.a=t2.a';
+EXECUTE stmt USING DEFAULT;
+EXECUTE stmt USING DEFAULT;
+# Clean up
+DEALLOCATE PREPARE stmt;
+DROP TABLE t1, t2;
+# MDEV-33218: Assertion `active_arena->is_stmt_prepare_or_first_stmt_execute() || active_arena->state == Query_arena::STMT_SP_QUERY_ARGUMENTS' failed. in st_select_lex::fix_prepare_information
+CREATE TABLE t1 AS SELECT 1 f;
+PREPARE stmt FROM 'SHOW CREATE TABLE t1';
+DROP TABLE t1;
+EXECUTE stmt;
+ERROR 42S02: Table 'test.t1' doesn't exist
+CREATE VIEW t1 AS SELECT 1;
+EXECUTE stmt;
+View Create View character_set_client collation_connection
+t1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `t1` AS select 1 AS `1` latin1 latin1_swedish_ci
+# Clean up
+DEALLOCATE PREPARE stmt;
+DROP VIEW t1;
+#
# End of 10.4 tests
#
diff --git a/mysql-test/main/ps.test b/mysql-test/main/ps.test
index 675c5102..c7568f73 100644
--- a/mysql-test/main/ps.test
+++ b/mysql-test/main/ps.test
@@ -5249,5 +5249,190 @@ EXECUTE IMMEDIATE 'SELECT GROUP_CONCAT(@x) FROM t GROUP BY @x := f';
DROP TABLE t;
--echo #
+--echo # MDEV-15703: Crash in EXECUTE IMMEDIATE 'CREATE OR REPLACE TABLE t1 (a INT DEFAULT ?)' USING DEFAULT
+--echo #
+
+PREPARE stmt FROM 'CREATE OR REPLACE TABLE t1 (a INT DEFAULT ?)';
+--error ER_INVALID_DEFAULT_PARAM
+EXECUTE stmt USING DEFAULT;
+DEALLOCATE PREPARE stmt;
+
+PREPARE stmt FROM 'CREATE OR REPLACE TABLE t1 (a INT DEFAULT ?)';
+--error ER_INVALID_DEFAULT_PARAM
+EXECUTE stmt USING IGNORE;
+DEALLOCATE PREPARE stmt;
+
+--error ER_INVALID_DEFAULT_PARAM
+EXECUTE IMMEDIATE 'CREATE OR REPLACE TABLE t1 (a INT DEFAULT ?)' USING DEFAULT;
+
+--error ER_INVALID_DEFAULT_PARAM
+EXECUTE IMMEDIATE 'CREATE OR REPLACE TABLE t1 (a INT DEFAULT ?)' USING IGNORE;
+
+--error ER_INVALID_DEFAULT_PARAM
+EXECUTE IMMEDIATE 'BEGIN NOT ATOMIC DECLARE a INT DEFAULT ?; END' USING DEFAULT;
+
+--error ER_INVALID_DEFAULT_PARAM
+EXECUTE IMMEDIATE 'BEGIN NOT ATOMIC DECLARE a INT DEFAULT ?; END' USING IGNORE;
+
+CREATE PROCEDURE p1(a INT) SELECT 1;
+--error ER_INVALID_DEFAULT_PARAM
+EXECUTE IMMEDIATE 'CALL p1(?)' USING DEFAULT;
+--error ER_INVALID_DEFAULT_PARAM
+EXECUTE IMMEDIATE 'CALL p1(?)' USING IGNORE;
+DROP PROCEDURE p1;
+
+--error ER_INVALID_DEFAULT_PARAM
+EXECUTE IMMEDIATE 'SELECT ? UNION SELECT 1' USING DEFAULT;
+--error ER_INVALID_DEFAULT_PARAM
+EXECUTE IMMEDIATE 'SELECT ? UNION SELECT 1' USING IGNORE;
+
+--error ER_INVALID_DEFAULT_PARAM
+EXECUTE IMMEDIATE 'SELECT * FROM (SELECT ? UNION ALL SELECT 1) AS derived' USING DEFAULT;
+--error ER_INVALID_DEFAULT_PARAM
+EXECUTE IMMEDIATE 'SELECT * FROM (SELECT ? UNION ALL SELECT 1) AS derived' USING IGNORE;
+
+--error ER_INVALID_DEFAULT_PARAM
+EXECUTE IMMEDIATE 'SELECT * FROM (SELECT ? UNION DISTINCT SELECT 1) AS derived' USING DEFAULT;
+--error ER_INVALID_DEFAULT_PARAM
+EXECUTE IMMEDIATE 'SELECT * FROM (SELECT ? UNION DISTINCT SELECT 1) AS derived' USING IGNORE;
+
+--echo # multi-update and DEFAULT
+CREATE TABLE t1 (a INT, b INT DEFAULT a);
+INSERT into t1 VALUES (1,2),(2,3);
+CREATE TABLE t2 (a INT, b INT DEFAULT a);
+INSERT INTO t2 VALUES (1,10),(2,30);
+
+UPDATE t1,t2 SET t1.b = DEFAULT, t2.b = DEFAULT WHERE t1.a=t2.a;
+SELECT * FROM t1;
+SELECT * FROM t2;
+
+--echo # re-check the case for Prepared Statement with parameters
+TRUNCATE TABLE t1;
+TRUNCATE TABLE t2;
+INSERT INTO t1 VALUES (1,2),(2,3);
+INSERT INTO t2 VALUES (1,10),(2,30);
+
+EXECUTE IMMEDIATE 'UPDATE t1,t2 SET t1.b = ?, t2.b = ? WHERE t1.a=t2.a' USING DEFAULT, DEFAULT;
+SELECT * FROM t1;
+SELECT * FROM t2;
+
+# Cleanup
+DROP TABLE t1, t2;
+
+--echo # multi-update and IGNORE
+CREATE TABLE t1 (a INT, b INT default a);
+INSERT INTO t1 VALUES (1,2),(2,3);
+CREATE TABLE t2 (a INT, b INT default a);
+INSERT INTO t2 VALUES (1,10),(2,30);
+
+UPDATE t1,t2 SET t1.b = IGNORE, t2.b = IGNORE WHERE t1.a=t2.a;
+SELECT * FROM t1;
+SELECT * FROM t2;
+
+--echo # re-check the case for Prepared Statement with parameters
+TRUNCATE TABLE t1;
+TRUNCATE TABLE t2;
+INSERT INTO t1 VALUES (1,2),(2,3);
+INSERT INTO t2 VALUES (1,10),(2,30);
+
+EXECUTE IMMEDIATE 'UPDATE t1,t2 SET t1.b = ?, t2.b = ? WHERE t1.a=t2.a' USING IGNORE, IGNORE;
+SELECT * FROM t1;
+SELECT * FROM t2;
+
+# Cleanup
+DROP TABLE t1, t2;
+
+--echo # multi-update and DEFAULT parameter (no default)
+CREATE TABLE t1 (a INT, b INT NOT NULL);
+INSERT INTO t1 VALUES (1,2),(2,3);
+CREATE TABLE t2 (a INT, b INT NOT NULL);
+INSERT INTO t2 VALUES (1,10),(2,30);
+
+--error ER_NO_DEFAULT_FOR_FIELD
+EXECUTE IMMEDIATE 'UPDATE t1,t2 SET t1.b = ?, t2.b = ? WHERE t1.a=t2.a' USING DEFAULT, DEFAULT;
+
+# Cleanup
+DROP TABLE t1, t2;
+
+--echo # multi-update and IGNORE parameter (no default)
+CREATE TABLE t1 (a INT, b INT NOT NULL);
+INSERT INTO t1 VALUES (1,2),(2,3);
+CREATE TABLE t2 (a INT, b INT NOT NULL);
+INSERT INTO t2 VALUES (1,10),(2,30);
+
+EXECUTE IMMEDIATE 'UPDATE t1,t2 SET t1.b = ?, t2.b = ? WHERE t1.a=t2.a' USING IGNORE, IGNORE;
+SELECT * FROM t1;
+SELECT * FROM t2;
+
+# Cleanup
+DROP TABLE t1, t2;
+
+--echo #
+--echo # MDEV-33549: Incorrect handling of UPDATE in PS mode in case a table's colum declared as NOT NULL
+--echo #
+
+CREATE TABLE t1 (a INT, b INT DEFAULT NULL);
+INSERT INTO t1 VALUES (20, 30);
+EXECUTE IMMEDIATE 'UPDATE t1 SET b=?' USING DEFAULT;
+SELECT * FROM t1;
+
+--echo # Run twice the same update in PS mode to check
+--echo # that no memory relating issues taken place.
+PREPARE stmt FROM 'UPDATE t1 SET b=?';
+EXECUTE stmt USING DEFAULT;
+EXECUTE stmt USING DEFAULT;
+
+--echo # Clean up
+DEALLOCATE PREPARE stmt;
+DROP TABLE t1;
+
+--echo # The same test for multi-table update
+CREATE TABLE t1 (a INT, b INT DEFAULT NULL);
+CREATE TABLE t2 (a INT, c INT DEFAULT NULL);
+
+INSERT INTO t1 VALUES (20, 30);
+INSERT INTO t2 VALUES (20, 30);
+
+EXECUTE IMMEDIATE 'UPDATE t1,t2 SET b=? WHERE t1.a=t2.a' USING DEFAULT;
+SELECT * FROM t1;
+--echo # Run twice the same multi-table update in PS mode to check
+--echo # that no memory relating issues taken place.
+PREPARE stmt FROM 'UPDATE t1,t2 SET b=? WHERE t1.a=t2.a';
+EXECUTE stmt USING DEFAULT;
+EXECUTE stmt USING DEFAULT;
+DEALLOCATE PREPARE stmt;
+--echo # Clean up
+DROP TABLE t1;
+
+--echo # This time checks that a default value for table's column
+--echo # represented by a function call is handled correctly on UPDATE in PS mode
+CREATE TABLE t1 (a INT, b INT DEFAULT MOD(a, 3));
+INSERT INTO t1 VALUES (20, 30);
+EXECUTE IMMEDIATE 'UPDATE t1, t2 SET b=? WHERE t1.a=t2.a' USING DEFAULT;
+SELECT * FROM t1;
+
+--echo # Run twice the same multi-table update in PS mode to check
+--echo # that no memory relating issues taken place.
+PREPARE stmt FROM 'UPDATE t1, t2 SET b=? WHERE t1.a=t2.a';
+EXECUTE stmt USING DEFAULT;
+EXECUTE stmt USING DEFAULT;
+
+--echo # Clean up
+DEALLOCATE PREPARE stmt;
+DROP TABLE t1, t2;
+
+--echo # MDEV-33218: Assertion `active_arena->is_stmt_prepare_or_first_stmt_execute() || active_arena->state == Query_arena::STMT_SP_QUERY_ARGUMENTS' failed. in st_select_lex::fix_prepare_information
+CREATE TABLE t1 AS SELECT 1 f;
+PREPARE stmt FROM 'SHOW CREATE TABLE t1';
+DROP TABLE t1;
+--error ER_NO_SUCH_TABLE
+EXECUTE stmt;
+CREATE VIEW t1 AS SELECT 1;
+EXECUTE stmt;
+--echo # Clean up
+DEALLOCATE PREPARE stmt;
+DROP VIEW t1;
+
+--echo #
--echo # End of 10.4 tests
--echo #
diff --git a/mysql-test/main/ps_2myisam.result b/mysql-test/main/ps_2myisam.result
index 256665ce..ec365498 100644
--- a/mysql-test/main/ps_2myisam.result
+++ b/mysql-test/main/ps_2myisam.result
@@ -1798,7 +1798,7 @@ t5 CREATE TABLE `t5` (
`param09` longtext DEFAULT NULL,
`const10` bigint(17) DEFAULT NULL,
`param10` bigint(20) DEFAULT NULL,
- `const11` int(4) DEFAULT NULL,
+ `const11` int(5) DEFAULT NULL,
`param11` bigint(20) DEFAULT NULL,
`const12` binary(0) DEFAULT NULL,
`param12` bigint(20) DEFAULT NULL,
@@ -1828,7 +1828,7 @@ def test t5 t5 const09 const09 12 19 19 Y 128 0 63
def test t5 t5 param09 param09 252 4294967295 19 Y 16 0 8
def test t5 t5 const10 const10 8 17 9 Y 32768 0 63
def test t5 t5 param10 param10 8 20 9 Y 32768 0 63
-def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
+def test t5 t5 const11 const11 3 5 4 Y 32768 0 63
def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
diff --git a/mysql-test/main/ps_3innodb.result b/mysql-test/main/ps_3innodb.result
index 675587e0..1c98a59c 100644
--- a/mysql-test/main/ps_3innodb.result
+++ b/mysql-test/main/ps_3innodb.result
@@ -1781,7 +1781,7 @@ t5 CREATE TABLE `t5` (
`param09` longtext DEFAULT NULL,
`const10` bigint(17) DEFAULT NULL,
`param10` bigint(20) DEFAULT NULL,
- `const11` int(4) DEFAULT NULL,
+ `const11` int(5) DEFAULT NULL,
`param11` bigint(20) DEFAULT NULL,
`const12` binary(0) DEFAULT NULL,
`param12` bigint(20) DEFAULT NULL,
@@ -1811,7 +1811,7 @@ def test t5 t5 const09 const09 12 19 19 Y 128 0 63
def test t5 t5 param09 param09 252 4294967295 19 Y 16 0 8
def test t5 t5 const10 const10 8 17 9 Y 32768 0 63
def test t5 t5 param10 param10 8 20 9 Y 32768 0 63
-def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
+def test t5 t5 const11 const11 3 5 4 Y 32768 0 63
def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
diff --git a/mysql-test/main/ps_4heap.result b/mysql-test/main/ps_4heap.result
index dcde7613..db182536 100644
--- a/mysql-test/main/ps_4heap.result
+++ b/mysql-test/main/ps_4heap.result
@@ -1782,7 +1782,7 @@ t5 CREATE TABLE `t5` (
`param09` longtext DEFAULT NULL,
`const10` bigint(17) DEFAULT NULL,
`param10` bigint(20) DEFAULT NULL,
- `const11` int(4) DEFAULT NULL,
+ `const11` int(5) DEFAULT NULL,
`param11` bigint(20) DEFAULT NULL,
`const12` binary(0) DEFAULT NULL,
`param12` bigint(20) DEFAULT NULL,
@@ -1812,7 +1812,7 @@ def test t5 t5 const09 const09 12 19 19 Y 128 0 63
def test t5 t5 param09 param09 252 4294967295 19 Y 16 0 8
def test t5 t5 const10 const10 8 17 9 Y 32768 0 63
def test t5 t5 param10 param10 8 20 9 Y 32768 0 63
-def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
+def test t5 t5 const11 const11 3 5 4 Y 32768 0 63
def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
diff --git a/mysql-test/main/ps_5merge.result b/mysql-test/main/ps_5merge.result
index c9d33dbb..963a3a60 100644
--- a/mysql-test/main/ps_5merge.result
+++ b/mysql-test/main/ps_5merge.result
@@ -1719,7 +1719,7 @@ t5 CREATE TABLE `t5` (
`param09` longtext DEFAULT NULL,
`const10` bigint(17) DEFAULT NULL,
`param10` bigint(20) DEFAULT NULL,
- `const11` int(4) DEFAULT NULL,
+ `const11` int(5) DEFAULT NULL,
`param11` bigint(20) DEFAULT NULL,
`const12` binary(0) DEFAULT NULL,
`param12` bigint(20) DEFAULT NULL,
@@ -1749,7 +1749,7 @@ def test t5 t5 const09 const09 12 19 19 Y 128 0 63
def test t5 t5 param09 param09 252 4294967295 19 Y 16 0 8
def test t5 t5 const10 const10 8 17 9 Y 32768 0 63
def test t5 t5 param10 param10 8 20 9 Y 32768 0 63
-def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
+def test t5 t5 const11 const11 3 5 4 Y 32768 0 63
def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
@@ -5087,7 +5087,7 @@ t5 CREATE TABLE `t5` (
`param09` longtext DEFAULT NULL,
`const10` bigint(17) DEFAULT NULL,
`param10` bigint(20) DEFAULT NULL,
- `const11` int(4) DEFAULT NULL,
+ `const11` int(5) DEFAULT NULL,
`param11` bigint(20) DEFAULT NULL,
`const12` binary(0) DEFAULT NULL,
`param12` bigint(20) DEFAULT NULL,
@@ -5117,7 +5117,7 @@ def test t5 t5 const09 const09 12 19 19 Y 128 0 63
def test t5 t5 param09 param09 252 4294967295 19 Y 16 0 8
def test t5 t5 const10 const10 8 17 9 Y 32768 0 63
def test t5 t5 param10 param10 8 20 9 Y 32768 0 63
-def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
+def test t5 t5 const11 const11 3 5 4 Y 32768 0 63
def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
diff --git a/mysql-test/main/query_cache.result b/mysql-test/main/query_cache.result
index f78a6ccc..f68f619f 100644
--- a/mysql-test/main/query_cache.result
+++ b/mysql-test/main/query_cache.result
@@ -2208,12 +2208,42 @@ Qcache_queries_in_cache 0
DROP FUNCTION foo;
drop table t1;
#
+# MDEV-33861: main.query_cache fails with embedded after
+# enabling WITH_PROTECT_STATEMENT_MEMROOT
+#
+create table t1 (s1 int);
+create procedure f3 () begin
+select * from t1;
+end;
+//
+create procedure f4 () begin
+select * from t1;
+end;
+//
+Call f4();
+s1
+cAll f3();
+s1
+insert into t1 values (2);
+caLl f3();
+s1
+2
+drop procedure f3;
+drop procedure f4;
+drop table t1;
+#
+# End of 10.4 tests
+#
+#
# MDEV-24858 SIGABRT in DbugExit from my_malloc in Query_cache::init_cache Regression
#
SET @qc= @@query_cache_size;
set global Query_cache_size=18446744073709547520;
SET GLOBAL query_cache_size= @qc;
#
+# End of 10.5 tests
+#
+#
# MDEV-22301 JSON_TABLE: Queries are not inserted into query cache.
#
create table t1 (a text);
@@ -2239,6 +2269,7 @@ DROP TABLE t;
restore defaults
SET GLOBAL query_cache_type= default;
SET GLOBAL query_cache_size=@save_query_cache_size;
+# End of 10.6 tests
#
# MDEV-29028: Queries using RANDOM_BYTES get stored in query cache
#
@@ -2261,6 +2292,4 @@ improbable
0
drop table t1;
set global query_cache_type= @qcache;
-#
# End of 10.10 tests
-#
diff --git a/mysql-test/main/query_cache.test b/mysql-test/main/query_cache.test
index 08756b80..feb9ecf5 100644
--- a/mysql-test/main/query_cache.test
+++ b/mysql-test/main/query_cache.test
@@ -1808,6 +1808,40 @@ DROP FUNCTION foo;
drop table t1;
--echo #
+--echo # MDEV-33861: main.query_cache fails with embedded after
+--echo # enabling WITH_PROTECT_STATEMENT_MEMROOT
+--echo #
+
+create table t1 (s1 int);
+--delimiter //
+create procedure f3 () begin
+select * from t1;
+end;
+//
+create procedure f4 () begin
+select * from t1;
+end;
+//
+--delimiter ;
+
+Call f4();
+
+cAll f3();
+
+insert into t1 values (2);
+
+caLl f3();
+
+drop procedure f3;
+drop procedure f4;
+drop table t1;
+
+
+--echo #
+--echo # End of 10.4 tests
+--echo #
+
+--echo #
--echo # MDEV-24858 SIGABRT in DbugExit from my_malloc in Query_cache::init_cache Regression
--echo #
--disable_warnings
@@ -1817,6 +1851,10 @@ SET GLOBAL query_cache_size= @qc;
--enable_warnings
--echo #
+--echo # End of 10.5 tests
+--echo #
+
+--echo #
--echo # MDEV-22301 JSON_TABLE: Queries are not inserted into query cache.
--echo #
create table t1 (a text);
@@ -1838,6 +1876,8 @@ DROP TABLE t;
SET GLOBAL query_cache_type= default;
SET GLOBAL query_cache_size=@save_query_cache_size;
+--echo # End of 10.6 tests
+
--echo #
--echo # MDEV-29028: Queries using RANDOM_BYTES get stored in query cache
--echo #
@@ -1866,7 +1906,6 @@ select random_bytes(1024) = random_bytes(1024) as improbable;
drop table t1;
set global query_cache_type= @qcache;
---echo #
--echo # End of 10.10 tests
---echo #
+
--enable_ps2_protocol
diff --git a/mysql-test/main/read_only_innodb.result b/mysql-test/main/read_only_innodb.result
index cfc8f2ec..85aee640 100644
--- a/mysql-test/main/read_only_innodb.result
+++ b/mysql-test/main/read_only_innodb.result
@@ -70,7 +70,7 @@ UNLOCK TABLES;
DROP TABLE t1;
DROP USER test@localhost;
disconnect con1;
-echo End of 5.1 tests
+# End of 5.1 tests
#
# Bug#33669: Transactional temporary tables do not work under --read-only
#
@@ -244,3 +244,26 @@ connection default;
SET GLOBAL READ_ONLY = OFF;
DROP USER bug33669@localhost;
DROP DATABASE db1;
+# End of 5.5 tests
+#
+# MDEV-33889 Read only server throws error when running a create temporary table as select statement
+#
+create table t1(a int) engine=innodb;
+create user u1@localhost;
+grant insert, select, update, delete, create temporary tables on test.* to u1@localhost;
+insert into t1 values (1);
+set global read_only=1;
+connect u1,localhost,u1;
+set default_tmp_storage_engine=innodb;
+create temporary table tt1 (a int);
+create temporary table tt2 like t1;
+create temporary table tt3 as select * from t1;
+select * from tt3;
+a
+1
+disconnect u1;
+connection default;
+drop table t1;
+drop user u1@localhost;
+set global read_only=0;
+# End of 10.5 tests
diff --git a/mysql-test/main/read_only_innodb.test b/mysql-test/main/read_only_innodb.test
index e2c2979c..59af952d 100644
--- a/mysql-test/main/read_only_innodb.test
+++ b/mysql-test/main/read_only_innodb.test
@@ -103,7 +103,7 @@ DROP USER test@localhost;
disconnect con1;
---echo echo End of 5.1 tests
+--echo # End of 5.1 tests
--echo #
--echo # Bug#33669: Transactional temporary tables do not work under --read-only
@@ -250,3 +250,29 @@ SET GLOBAL READ_ONLY = OFF;
DROP USER bug33669@localhost;
DROP DATABASE db1;
+--echo # End of 5.5 tests
+
+--echo #
+--echo # MDEV-33889 Read only server throws error when running a create temporary table as select statement
+--echo #
+create table t1(a int) engine=innodb;
+create user u1@localhost;
+grant insert, select, update, delete, create temporary tables on test.* to u1@localhost;
+insert into t1 values (1);
+set global read_only=1;
+
+connect u1,localhost,u1;
+set default_tmp_storage_engine=innodb;
+
+create temporary table tt1 (a int);
+create temporary table tt2 like t1;
+create temporary table tt3 as select * from t1;
+select * from tt3;
+disconnect u1;
+
+connection default;
+drop table t1;
+drop user u1@localhost;
+set global read_only=0;
+
+--echo # End of 10.5 tests
diff --git a/mysql-test/main/rowid_filter_innodb.result b/mysql-test/main/rowid_filter_innodb.result
index db52e4dc..85a3008c 100644
--- a/mysql-test/main/rowid_filter_innodb.result
+++ b/mysql-test/main/rowid_filter_innodb.result
@@ -4170,5 +4170,105 @@ Warnings:
Note 1276 Field or reference 'test.t1.pk' of SELECT #2 was resolved in SELECT #1
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk`,`test`.`t1`.`c1` AS `c1` from `test`.`t1` where !<expr_cache><`test`.`t1`.`c1`,`test`.`t1`.`pk`>(<in_optimizer>(`test`.`t1`.`c1`,<exists>(/* select#2 */ select `test`.`t2`.`c1` from `test`.`t2` join `test`.`t1` `a1` where `test`.`t2`.`i1` = `test`.`t1`.`pk` and `test`.`t2`.`i1` between 3 and 5 and trigcond(<cache>(`test`.`t1`.`c1`) = `test`.`t2`.`c1`))))
DROP TABLE t1,t2;
-set global innodb_stats_persistent= @stats.save;
+#
+# MDEV-31154: Fatal InnoDB error or assertion `!is_v' failure upon multi-update with indexed virtual column
+#
+# Test with auto generated Primary Key
+#
+SET @save_optimizer_switch= @@optimizer_switch;
+SET optimizer_switch='rowid_filter=on';
+CREATE TABLE t0(a int);
+INSERT INTO t0 SELECT seq FROM seq_1_to_20;
+ANALYZE TABLE t0 PERSISTENT FOR ALL;
+Table Op Msg_type Msg_text
+test.t0 analyze status Engine-independent statistics collected
+test.t0 analyze status OK
+CREATE TABLE t1 (
+a int,
+b int as (a * 2) VIRTUAL,
+f char(200), /* Filler */
+key (b),
+key (a)
+) engine=innodb;
+INSERT INTO t1 (a, f) SELECT seq, seq FROM seq_1_to_1000;
+ANALYZE TABLE t1 PERSISTENT FOR ALL;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status OK
+# Test for type 'ref|filter'
+EXPLAIN SELECT count(*) from t0,t1 WHERE t0.a=t1.b AND t1.a<20;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ALL NULL NULL NULL NULL 20 Using where
+1 SIMPLE t1 ref|filter b,a b|a 5|5 test.t0.a 1 (2%) Using where; Using rowid filter
+SELECT count(*) from t0,t1 WHERE t0.a=t1.b AND t1.a<20;
+count(*)
+10
+EXPLAIN SELECT count(*) from t0,t1 WHERE t0.a=t1.b AND t1.a<20 FOR UPDATE;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ALL NULL NULL NULL NULL 20 Using where
+1 SIMPLE t1 ref|filter b,a b|a 5|5 test.t0.a 1 (2%) Using where; Using rowid filter
+SELECT count(*) from t0,t1 WHERE t0.a=t1.b AND t1.a<20 FOR UPDATE;
+count(*)
+10
+# Test for type 'range|filter'
+EXPLAIN SELECT count(*) FROM t1 WHERE a<100 and b <100;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range|filter b,a b|a 5|5 NULL 49 (10%) Using where; Using rowid filter
+SELECT count(*) FROM t1 WHERE a<100 and b <100;
+count(*)
+49
+EXPLAIN SELECT count(*) FROM t1 WHERE a<100 and b <100 FOR UPDATE;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range|filter b,a b|a 5|5 NULL 49 (10%) Using where; Using rowid filter
+SELECT count(*) FROM t1 WHERE a<100 and b <100 FOR UPDATE;
+count(*)
+49
+# Test with Primary Key
+#
+DROP TABLE t1;
+CREATE TABLE t1 (
+p int PRIMARY KEY AUTO_INCREMENT,
+a int,
+b int as (a * 2) VIRTUAL,
+f char(200), /* Filler */
+key (b),
+key (a)
+) engine=innodb;
+INSERT INTO t1 (a, f) SELECT seq, seq FROM seq_1_to_1000;
+ANALYZE TABLE t1 PERSISTENT FOR ALL;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status OK
+# Test for type 'ref|filter'
+EXPLAIN SELECT count(*) from t0,t1 WHERE t0.a=t1.b AND t1.a<20;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ALL NULL NULL NULL NULL 20 Using where
+1 SIMPLE t1 ref|filter b,a b|a 5|5 test.t0.a 1 (2%) Using where; Using rowid filter
+SELECT count(*) from t0,t1 WHERE t0.a=t1.b AND t1.a<20;
+count(*)
+10
+EXPLAIN SELECT count(*) from t0,t1 WHERE t0.a=t1.b AND t1.a<20 FOR UPDATE;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ALL NULL NULL NULL NULL 20 Using where
+1 SIMPLE t1 ref|filter b,a b|a 5|5 test.t0.a 1 (2%) Using where; Using rowid filter
+SELECT count(*) from t0,t1 WHERE t0.a=t1.b AND t1.a<20 FOR UPDATE;
+count(*)
+10
+# Test for type 'range|filter'
+EXPLAIN SELECT count(*) FROM t1 WHERE a<100 and b <100;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range|filter b,a b|a 5|5 NULL 49 (10%) Using where; Using rowid filter
+SELECT count(*) FROM t1 WHERE a<100 and b <100;
+count(*)
+49
+EXPLAIN SELECT count(*) FROM t1 WHERE a<100 and b <100 FOR UPDATE;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range|filter b,a b|a 5|5 NULL 49 (10%) Using where; Using rowid filter
+SELECT count(*) FROM t1 WHERE a<100 and b <100 FOR UPDATE;
+count(*)
+49
+SET optimizer_switch=@save_optimizer_switch;
+DROP TABLE t0, t1;
# End of 10.4 tests
+# End of 10.6 tests
+set global innodb_stats_persistent= @stats.save;
diff --git a/mysql-test/main/rowid_filter_innodb.test b/mysql-test/main/rowid_filter_innodb.test
index 6777baf8..b0d65837 100644
--- a/mysql-test/main/rowid_filter_innodb.test
+++ b/mysql-test/main/rowid_filter_innodb.test
@@ -1,6 +1,8 @@
--source include/no_valgrind_without_big.inc
--source include/have_innodb.inc
--source include/have_debug.inc
+--source include/have_sequence.inc
+--source include/innodb_stable_estimates.inc
SET SESSION DEFAULT_STORAGE_ENGINE='InnoDB';
@@ -683,6 +685,82 @@ eval EXPLAIN EXTENDED $q;
DROP TABLE t1,t2;
-set global innodb_stats_persistent= @stats.save;
+--echo #
+--echo # MDEV-31154: Fatal InnoDB error or assertion `!is_v' failure upon multi-update with indexed virtual column
+--echo #
+
+--echo # Test with auto generated Primary Key
+--echo #
+
+SET @save_optimizer_switch= @@optimizer_switch;
+SET optimizer_switch='rowid_filter=on';
+
+CREATE TABLE t0(a int);
+INSERT INTO t0 SELECT seq FROM seq_1_to_20;
+ANALYZE TABLE t0 PERSISTENT FOR ALL;
+
+CREATE TABLE t1 (
+ a int,
+ b int as (a * 2) VIRTUAL,
+ f char(200), /* Filler */
+ key (b),
+ key (a)
+) engine=innodb;
+
+INSERT INTO t1 (a, f) SELECT seq, seq FROM seq_1_to_1000;
+ANALYZE TABLE t1 PERSISTENT FOR ALL;
+
+--echo # Test for type 'ref|filter'
+EXPLAIN SELECT count(*) from t0,t1 WHERE t0.a=t1.b AND t1.a<20;
+SELECT count(*) from t0,t1 WHERE t0.a=t1.b AND t1.a<20;
+
+EXPLAIN SELECT count(*) from t0,t1 WHERE t0.a=t1.b AND t1.a<20 FOR UPDATE;
+SELECT count(*) from t0,t1 WHERE t0.a=t1.b AND t1.a<20 FOR UPDATE;
+
+--echo # Test for type 'range|filter'
+EXPLAIN SELECT count(*) FROM t1 WHERE a<100 and b <100;
+SELECT count(*) FROM t1 WHERE a<100 and b <100;
+
+EXPLAIN SELECT count(*) FROM t1 WHERE a<100 and b <100 FOR UPDATE;
+SELECT count(*) FROM t1 WHERE a<100 and b <100 FOR UPDATE;
+
+--echo # Test with Primary Key
+--echo #
+
+DROP TABLE t1;
+CREATE TABLE t1 (
+ p int PRIMARY KEY AUTO_INCREMENT,
+ a int,
+ b int as (a * 2) VIRTUAL,
+ f char(200), /* Filler */
+ key (b),
+ key (a)
+) engine=innodb;
+
+INSERT INTO t1 (a, f) SELECT seq, seq FROM seq_1_to_1000;
+ANALYZE TABLE t1 PERSISTENT FOR ALL;
+
+--echo # Test for type 'ref|filter'
+EXPLAIN SELECT count(*) from t0,t1 WHERE t0.a=t1.b AND t1.a<20;
+SELECT count(*) from t0,t1 WHERE t0.a=t1.b AND t1.a<20;
+
+EXPLAIN SELECT count(*) from t0,t1 WHERE t0.a=t1.b AND t1.a<20 FOR UPDATE;
+SELECT count(*) from t0,t1 WHERE t0.a=t1.b AND t1.a<20 FOR UPDATE;
+
+--echo # Test for type 'range|filter'
+EXPLAIN SELECT count(*) FROM t1 WHERE a<100 and b <100;
+SELECT count(*) FROM t1 WHERE a<100 and b <100;
+
+EXPLAIN SELECT count(*) FROM t1 WHERE a<100 and b <100 FOR UPDATE;
+SELECT count(*) FROM t1 WHERE a<100 and b <100 FOR UPDATE;
+
+SET optimizer_switch=@save_optimizer_switch;
+
+DROP TABLE t0, t1;
--echo # End of 10.4 tests
+
+--echo # End of 10.6 tests
+
+set global innodb_stats_persistent= @stats.save;
+
diff --git a/mysql-test/main/rpl_mysqldump_slave.result b/mysql-test/main/rpl_mysqldump_slave.result
index 9f93e3c4..8d6f0994 100644
--- a/mysql-test/main/rpl_mysqldump_slave.result
+++ b/mysql-test/main/rpl_mysqldump_slave.result
@@ -7,25 +7,33 @@ connection slave;
connection master;
use test;
connection slave;
+/*!999999\- enable the sandbox mode */
-- SET GLOBAL gtid_slave_pos='';
CHANGE MASTER '' TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START;
+
+/*!999999\- enable the sandbox mode */
STOP ALL SLAVES;
-- SET GLOBAL gtid_slave_pos='';
CHANGE MASTER '' TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START;
+
START ALL SLAVES;
+/*!999999\- enable the sandbox mode */
STOP ALL SLAVES;
-- SET GLOBAL gtid_slave_pos='';
CHANGE MASTER '' TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_MYPORT, MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START;
+
START ALL SLAVES;
start slave;
Warnings:
Note 1254 Slave is already running
+/*!999999\- enable the sandbox mode */
-- SET GLOBAL gtid_slave_pos='';
CHANGE MASTER '' TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START;
+
start slave;
Warnings:
Note 1254 Slave is already running
-*** Test mysqldump --dump-slave GTID functionality.
+*** Test mysqldump --dump-slave GTID/non-gtid functionality.
connection master;
SET gtid_seq_no = 1000;
CREATE TABLE t1 (a INT PRIMARY KEY);
@@ -35,36 +43,182 @@ connection slave;
CREATE TABLE t2 (a INT PRIMARY KEY);
DROP TABLE t2;
-1. --dump-slave=1
+1. --dump-slave=1 --gtid
+/*!999999\- enable the sandbox mode */
SET GLOBAL gtid_slave_pos='0-1-1001';
CHANGE MASTER '' TO MASTER_USE_GTID=slave_pos;
-- CHANGE MASTER '' TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START;
-2. --dump-slave=2
+1a. --dump-slave=1
+
+/*!999999\- enable the sandbox mode */
+-- SET GLOBAL gtid_slave_pos='0-1-1001';
+CHANGE MASTER '' TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START;
+
+
+2. --dump-slave=2 --gtid
+
+/*!999999\- enable the sandbox mode */
-- SET GLOBAL gtid_slave_pos='0-1-1001';
-- CHANGE MASTER '' TO MASTER_USE_GTID=slave_pos;
-- CHANGE MASTER '' TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START;
-*** Test mysqldump --master-data GTID functionality.
-1. --master-data=1
--- CHANGE MASTER TO MASTER_LOG_FILE='slave-bin.000001', MASTER_LOG_POS=BINLOG_START;
+2. --dump-slave=2
+
+/*!999999\- enable the sandbox mode */
+-- SET GLOBAL gtid_slave_pos='0-1-1001';
+-- CHANGE MASTER '' TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START;
+
+*** Test mysqldump --master-data GTID/non-gtid functionality.
+
+1. --master-data=1 --gtid
+
+/*!999999\- enable the sandbox mode */
CHANGE MASTER TO MASTER_USE_GTID=slave_pos;
SET GLOBAL gtid_slave_pos='0-2-1003';
+-- CHANGE MASTER TO MASTER_LOG_FILE='slave-bin.000001', MASTER_LOG_POS=BINLOG_START;
-2. --master-data=2
+1a. --master-data=1
--- CHANGE MASTER TO MASTER_LOG_FILE='slave-bin.000001', MASTER_LOG_POS=BINLOG_START;
+/*!999999\- enable the sandbox mode */
+-- SET GLOBAL gtid_slave_pos='0-2-1003';
+CHANGE MASTER TO MASTER_LOG_FILE='slave-bin.000001', MASTER_LOG_POS=BINLOG_START;
+
+2. --master-data=2 --gtid
+
+/*!999999\- enable the sandbox mode */
-- CHANGE MASTER TO MASTER_USE_GTID=slave_pos;
-- SET GLOBAL gtid_slave_pos='0-2-1003';
+-- CHANGE MASTER TO MASTER_LOG_FILE='slave-bin.000001', MASTER_LOG_POS=BINLOG_START;
-3. --master-data --single-transaction
+2a. --master-data=2
+/*!999999\- enable the sandbox mode */
+-- SET GLOBAL gtid_slave_pos='0-2-1003';
-- CHANGE MASTER TO MASTER_LOG_FILE='slave-bin.000001', MASTER_LOG_POS=BINLOG_START;
+
+3. --master-data --single-transaction --gtid
+
+/*!999999\- enable the sandbox mode */
CHANGE MASTER TO MASTER_USE_GTID=slave_pos;
SET GLOBAL gtid_slave_pos='0-2-1003';
+-- CHANGE MASTER TO MASTER_LOG_FILE='slave-bin.000001', MASTER_LOG_POS=BINLOG_START;
+
+3a. --master-data --single-transaction
+
+/*!999999\- enable the sandbox mode */
+-- SET GLOBAL gtid_slave_pos='0-2-1003';
+CHANGE MASTER TO MASTER_LOG_FILE='slave-bin.000001', MASTER_LOG_POS=BINLOG_START;
+
+4. --master-data=2 --dump-slave=2 --single-transaction --gtid (MDEV-4827)
+
+/*!999999\- enable the sandbox mode */
+-- MariaDB dump--
+-- Host: localhost Database: test
+-- ------------------------------------------------------
+-- Server version
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8mb4 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+-- Preferably use GTID to start replication from GTID position:
+
+-- CHANGE MASTER TO MASTER_USE_GTID=slave_pos;
+-- SET GLOBAL gtid_slave_pos='0-2-1003';
+
+--
+-- Alternately, following is the position of the binary logging from SHOW MASTER STATUS at point of backup.
+-- Use this when creating a replica of the primary server where the backup was made.
+-- The new server will be connecting to the primary server where the backup was taken.
+--
+
+-- CHANGE MASTER TO MASTER_LOG_FILE='slave-bin.000001', MASTER_LOG_POS=BINLOG_START;
+
+--
+-- The following is the SQL position of the replication taken from SHOW SLAVE STATUS at the time of backup.
+-- Use this position when creating a clone of, or replacement server, from where the backup was taken.
+-- This new server will connects to the same primary server(s).
+--
+-- GTID position to start replication:
+-- SET GLOBAL gtid_slave_pos='0-1-1001';
+
+-- Use only the MASTER_USE_GTID=slave_pos or MASTER_LOG_FILE/MASTER_LOG_POS in the statements below.
+
+-- CHANGE MASTER '' TO MASTER_USE_GTID=slave_pos;
+-- CHANGE MASTER '' TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START;
+
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+-- Dump completed
+
+4a. --master-data=2 --dump-slave=2 --single-transaction (MDEV-4827)
+
+/*!999999\- enable the sandbox mode */
+-- MariaDB dump--
+-- Host: localhost Database: test
+-- ------------------------------------------------------
+-- Server version
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8mb4 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+-- Preferably use GTID to start replication from GTID position:
+
+-- SET GLOBAL gtid_slave_pos='0-2-1003';
+
+--
+-- Alternately, following is the position of the binary logging from SHOW MASTER STATUS at point of backup.
+-- Use this when creating a replica of the primary server where the backup was made.
+-- The new server will be connecting to the primary server where the backup was taken.
+--
+
+-- CHANGE MASTER TO MASTER_LOG_FILE='slave-bin.000001', MASTER_LOG_POS=BINLOG_START;
+
+--
+-- The following is the SQL position of the replication taken from SHOW SLAVE STATUS at the time of backup.
+-- Use this position when creating a clone of, or replacement server, from where the backup was taken.
+-- This new server will connects to the same primary server(s).
+--
+-- GTID position to start replication:
+-- SET GLOBAL gtid_slave_pos='0-1-1001';
+-- CHANGE MASTER '' TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START;
+
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+-- Dump completed
connection master;
CREATE TABLE t (
id int
@@ -77,8 +231,13 @@ include/stop_slave.inc
change master to master_use_gtid=slave_pos;
connection master;
# Ensuring the binlog dump thread is killed on primary...
--- CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000002', MASTER_LOG_POS=BINLOG_START;
+/*!999999\- enable the sandbox mode */
-- SET GLOBAL gtid_slave_pos='0-1-1005';
+-- CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000002', MASTER_LOG_POS=BINLOG_START;
connection slave;
include/start_slave.inc
+connection master;
+connection slave;
+connection master;
+FOUND 1 matches in MDEV-33212.sql
include/rpl_end.inc
diff --git a/mysql-test/main/rpl_mysqldump_slave.test b/mysql-test/main/rpl_mysqldump_slave.test
index 0273e196..75bb85db 100644
--- a/mysql-test/main/rpl_mysqldump_slave.test
+++ b/mysql-test/main/rpl_mysqldump_slave.test
@@ -37,7 +37,7 @@ start slave;
start slave;
---echo *** Test mysqldump --dump-slave GTID functionality.
+--echo *** Test mysqldump --dump-slave GTID/non-gtid functionality.
--connection master
SET gtid_seq_no = 1000;
@@ -52,37 +52,80 @@ CREATE TABLE t2 (a INT PRIMARY KEY);
DROP TABLE t2;
--echo
---echo 1. --dump-slave=1
+--echo 1. --dump-slave=1 --gtid
--echo
--replace_regex /MASTER_LOG_POS=[0-9]+/MASTER_LOG_POS=BINLOG_START/
--exec $MYSQL_DUMP_SLAVE --compact --dump-slave=1 --gtid test
--echo
---echo 2. --dump-slave=2
+--echo 1a. --dump-slave=1
+--echo
+--replace_regex /MASTER_LOG_POS=[0-9]+/MASTER_LOG_POS=BINLOG_START/
+--exec $MYSQL_DUMP_SLAVE --compact --dump-slave=1 test
+
+--echo
+--echo 2. --dump-slave=2 --gtid
--echo
--replace_regex /MASTER_LOG_POS=[0-9]+/MASTER_LOG_POS=BINLOG_START/
--exec $MYSQL_DUMP_SLAVE --compact --dump-slave=2 --gtid test
+--echo
+--echo 2. --dump-slave=2
+--echo
+--replace_regex /MASTER_LOG_POS=[0-9]+/MASTER_LOG_POS=BINLOG_START/
+--exec $MYSQL_DUMP_SLAVE --compact --dump-slave=2 test
+
---echo *** Test mysqldump --master-data GTID functionality.
+--echo *** Test mysqldump --master-data GTID/non-gtid functionality.
--echo
---echo 1. --master-data=1
+--echo 1. --master-data=1 --gtid
--echo
--replace_regex /MASTER_LOG_POS=[0-9]+/MASTER_LOG_POS=BINLOG_START/
--exec $MYSQL_DUMP_SLAVE --compact --master-data=1 --gtid test
--echo
---echo 2. --master-data=2
+--echo 1a. --master-data=1
+--echo
+--replace_regex /MASTER_LOG_POS=[0-9]+/MASTER_LOG_POS=BINLOG_START/
+--exec $MYSQL_DUMP_SLAVE --compact --master-data=1 test
+
+--echo
+--echo 2. --master-data=2 --gtid
--echo
--replace_regex /MASTER_LOG_POS=[0-9]+/MASTER_LOG_POS=BINLOG_START/
--exec $MYSQL_DUMP_SLAVE --compact --master-data=2 --gtid test
--echo
---echo 3. --master-data --single-transaction
+--echo 2a. --master-data=2
+--echo
+--replace_regex /MASTER_LOG_POS=[0-9]+/MASTER_LOG_POS=BINLOG_START/
+--exec $MYSQL_DUMP_SLAVE --compact --master-data=2 test
+
+--echo
+--echo 3. --master-data --single-transaction --gtid
--echo
--replace_regex /MASTER_LOG_POS=[0-9]+/MASTER_LOG_POS=BINLOG_START/
--exec $MYSQL_DUMP_SLAVE --compact --master-data --single-transaction --gtid test
+--echo
+--echo 3a. --master-data --single-transaction
+--echo
+--replace_regex /MASTER_LOG_POS=[0-9]+/MASTER_LOG_POS=BINLOG_START/
+--exec $MYSQL_DUMP_SLAVE --compact --master-data --single-transaction test
+
+--echo
+--echo 4. --master-data=2 --dump-slave=2 --single-transaction --gtid (MDEV-4827)
+--echo
+--replace_regex /MASTER_LOG_POS=[0-9]+/MASTER_LOG_POS=BINLOG_START/ /MariaDB dump.*/MariaDB dump/ /Dump completed.*/Dump completed/ /Server version.*/Server version/
+--exec $MYSQL_DUMP_SLAVE --master-data=2 --dump-slave=2 --single-transaction --gtid test
+--echo
+
+--echo
+--echo 4a. --master-data=2 --dump-slave=2 --single-transaction (MDEV-4827)
+--echo
+--replace_regex /MASTER_LOG_POS=[0-9]+/MASTER_LOG_POS=BINLOG_START/ /MariaDB dump.*/MariaDB dump/ /Dump completed.*/Dump completed/ /Server version.*/Server version/
+--exec $MYSQL_DUMP_SLAVE --master-data=2 --dump-slave=2 --single-transaction test
+--echo
#
# MDEV-32611 Added test for mysqldump --delete-master-logs option.
# This options is alias of
@@ -155,4 +198,20 @@ if ($postdump_first_binary_log_filename != $postdump_binlog_filename)
connection slave;
--source include/start_slave.inc
+# MDEV-33212: mysqldump uses MASTER_LOG_POS with dump-slave
+# The bug was that the MASTER_LOG_POS was wrong. So check that it is correct.
+--connection master
+--let $pos= query_get_value(SHOW MASTER STATUS, Position, 1)
+--sync_slave_with_master
+--connection master
+--exec $MYSQL_DUMP_SLAVE --compact --dump-slave test >$MYSQLTEST_VARDIR/tmp/MDEV-33212.sql
+--let SEARCH_RANGE=500000000
+--let SEARCH_FILE=$MYSQLTEST_VARDIR/tmp/MDEV-33212.sql
+--let SEARCH_PATTERN= MASTER_LOG_POS=$pos
+--let SEARCH_OUTPUT=count
+--source include/search_pattern_in_file.inc
+
+--remove_file $MYSQLTEST_VARDIR/tmp/MDEV-33212.sql
+
+
--source include/rpl_end.inc
diff --git a/mysql-test/main/secondary_key_costs.result b/mysql-test/main/secondary_key_costs.result
index 55c84705..dbdaaa3e 100644
--- a/mysql-test/main/secondary_key_costs.result
+++ b/mysql-test/main/secondary_key_costs.result
@@ -80,3 +80,38 @@ json_detailed(json_extract(@trace, '$**.considered_access_paths'))
]
]
drop table t1, name, flag2;
+select @@optimizer_adjust_secondary_key_costs;
+@@optimizer_adjust_secondary_key_costs
+
+set @@optimizer_adjust_secondary_key_costs=7;
+select @@optimizer_adjust_secondary_key_costs;
+@@optimizer_adjust_secondary_key_costs
+adjust_secondary_key_cost,disable_max_seek,disable_forced_index_in_group_by
+set @@optimizer_adjust_secondary_key_costs=default;
+#
+# MDEV-33306 Optimizer choosing incorrect index in 10.6, 10.5 but not in 10.4
+#
+create table t1 (a int primary key, b int, c int, d int, key(b),key(c)) engine=innodb;
+insert into t1 select seq, mod(seq,10), mod(seq,2), seq from seq_1_to_50000;
+explain select b, sum(d) from t1 where c=0 group by b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index c b 5 NULL # Using where
+select b, sum(d) from t1 where c=0 group by b;
+b sum(d)
+0 125025000
+2 124985000
+4 124995000
+6 125005000
+8 125015000
+set @@optimizer_adjust_secondary_key_costs="disable_forced_index_in_group_by";
+explain select b, sum(d) from t1 where c=0 group by b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL c NULL NULL NULL # Using where; Using temporary; Using filesort
+select b, sum(d) from t1 where c=0 group by b;
+b sum(d)
+0 125025000
+2 124985000
+4 124995000
+6 125005000
+8 125015000
+drop table t1;
diff --git a/mysql-test/main/secondary_key_costs.test b/mysql-test/main/secondary_key_costs.test
index d3db1376..bf662d40 100644
--- a/mysql-test/main/secondary_key_costs.test
+++ b/mysql-test/main/secondary_key_costs.test
@@ -1,5 +1,6 @@
--source include/have_sequence.inc
--source include/not_embedded.inc
+--source include/have_innodb.inc
#
# Show the costs for rowid filter
@@ -51,3 +52,23 @@ select json_detailed(json_extract(@trace, '$**.considered_access_paths'));
--enable_ps_protocol
drop table t1, name, flag2;
+
+select @@optimizer_adjust_secondary_key_costs;
+set @@optimizer_adjust_secondary_key_costs=7;
+select @@optimizer_adjust_secondary_key_costs;
+set @@optimizer_adjust_secondary_key_costs=default;
+
+--echo #
+--echo # MDEV-33306 Optimizer choosing incorrect index in 10.6, 10.5 but not in 10.4
+--echo #
+
+create table t1 (a int primary key, b int, c int, d int, key(b),key(c)) engine=innodb;
+insert into t1 select seq, mod(seq,10), mod(seq,2), seq from seq_1_to_50000;
+--replace_column 9 #
+explain select b, sum(d) from t1 where c=0 group by b;
+select b, sum(d) from t1 where c=0 group by b;
+set @@optimizer_adjust_secondary_key_costs="disable_forced_index_in_group_by";
+--replace_column 9 #
+explain select b, sum(d) from t1 where c=0 group by b;
+select b, sum(d) from t1 where c=0 group by b;
+drop table t1;
diff --git a/mysql-test/main/selectivity_innodb_notembedded.result b/mysql-test/main/selectivity_innodb_notembedded.result
index 8b06fe75..a387d241 100644
--- a/mysql-test/main/selectivity_innodb_notembedded.result
+++ b/mysql-test/main/selectivity_innodb_notembedded.result
@@ -88,15 +88,142 @@ sel
]
set optimizer_trace=@tmp;
drop table t0,t1,t10;
-set optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity;
set histogram_size=@save_histogram_size;
-set use_stat_tables= @save_use_stat_tables;
#
# End of 10.4 tests
#
#
+# MDEV-33314: Crash inside calculate_cond_selectivity_for_table() with many columns
+#
+set optimizer_use_condition_selectivity= 4;
+set use_stat_tables= preferably;
+#
+# create table t1 (col0 int, col1 int, col2 int, ...);
+#
+$create_tbl;
+#
+# insert into t1 select seq, ... seq from seq_1_to_10;
+#
+$insert_cmd;
+analyze table t1 persistent for all;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status OK
+set @trace_tmp=@@optimizer_trace;
+set optimizer_trace=1;
+#
+# Basic testcase: don't crash for many-column selectivity
+# explain extended select * from t1 where col0>1 and col1>1 and col2>1 and ...
+#
+$query_tbl;
+EXPLAIN
+{
+ "query_block": {
+ "select_id": 1,
+ "nested_loop": [
+ {
+ "table": {
+ "table_name": "t1",
+ "access_type": "ALL",
+ "rows": 100,
+ "filtered": 53.32928848,
+ "attached_condition": "t1.col0 > 1 and t1.col1 > 1 and t1.col2 > 1 and t1.col3 > 1 and t1.col4 > 1 and t1.col5 > 1 and t1.col6 > 1 and t1.col7 > 1 and t1.col8 > 1 and t1.col9 > 1 and t1.col10 > 1 and t1.col11 > 1 and t1.col12 > 1 and t1.col13 > 1 and t1.col14 > 1 and t1.col15 > 1 and t1.col16 > 1 and t1.col17 > 1 and t1.col18 > 1 and t1.col19 > 1 and t1.col20 > 1 and t1.col21 > 1 and t1.col22 > 1 and t1.col23 > 1 and t1.col24 > 1 and t1.col25 > 1 and t1.col26 > 1 and t1.col27 > 1 and t1.col28 > 1 and t1.col29 > 1 and t1.col30 > 1 and t1.col31 > 1 and t1.col32 > 1 and t1.col33 > 1 and t1.col34 > 1 and t1.col35 > 1 and t1.col36 > 1 and t1.col37 > 1 and t1.col38 > 1 and t1.col39 > 1 and t1.col40 > 1 and t1.col41 > 1 and t1.col42 > 1 and t1.col43 > 1 and t1.col44 > 1 and t1.col45 > 1 and t1.col46 > 1 and t1.col47 > 1 and t1.col48 > 1 and t1.col49 > 1 and t1.col50 > 1 and t1.col51 > 1 and t1.col52 > 1 and t1.col53 > 1 and t1.col54 > 1 and t1.col55 > 1 and t1.col56 > 1 and t1.col57 > 1 and t1.col58 > 1 and t1.col59 > 1 and t1.col60 > 1 and t1.col61 > 1 and t1.col62 > 1 and t1.col63 > 1 and t1.col64 > 1 and t1.col65 > 1 and t1.col66 > 1 and t1.col67 > 1 and t1.col68 > 1 and t1.col69 > 1 and t1.col70 > 1 and t1.col71 > 1 and t1.col72 > 1 and t1.col73 > 1 and t1.col74 > 1 and t1.col75 > 1 and t1.col76 > 1 and t1.col77 > 1 and t1.col78 > 1 and t1.col79 > 1 and t1.col80 > 1 and t1.col81 > 1 and t1.col82 > 1 and t1.col83 > 1 and t1.col84 > 1 and t1.col85 > 1 and t1.col86 > 1 and t1.col87 > 1 and t1.col88 > 1 and t1.col89 > 1 and t1.col90 > 1 and t1.col91 > 1 and t1.col92 > 1 and t1.col93 > 1 and t1.col94 > 1 and t1.col95 > 1 and t1.col96 > 1 and t1.col97 > 1 and t1.col98 > 1 and t1.col99 > 1 and t1.col100 > 1 and t1.col101 > 1 and t1.col102 > 1 and t1.col103 > 1 and t1.col104 > 1 and t1.col105 > 1 and t1.col106 > 1 and t1.col107 > 1 and t1.col108 > 1 and t1.col109 > 1 and t1.col110 > 1 and t1.col111 > 1 and t1.col112 > 1 and t1.col113 > 1 and t1.col114 > 1 and t1.col115 > 1 and t1.col116 > 1 and t1.col117 > 1 and t1.col118 > 1 and t1.col119 > 1 and t1.col120 > 1 and t1.col121 > 1 and t1.col122 > 1 and t1.col123 > 1 and t1.col124 > 1 and t1.col125 > 1 and t1.col126 > 1 and t1.col127 > 1 and t1.col128 > 1 and t1.col129 > 1 and t1.col130 > 1 and t1.col131 > 1 and t1.col132 > 1 and t1.col133 > 1 and t1.col134 > 1 and t1.col135 > 1 and t1.col136 > 1 and t1.col137 > 1 and t1.col138 > 1 and t1.col139 > 1 and t1.col140 > 1 and t1.col141 > 1 and t1.col142 > 1 and t1.col143 > 1 and t1.col144 > 1 and t1.col145 > 1 and t1.col146 > 1 and t1.col147 > 1 and t1.col148 > 1 and t1.col149 > 1 and t1.col150 > 1 and t1.col151 > 1 and t1.col152 > 1 and t1.col153 > 1 and t1.col154 > 1 and t1.col155 > 1 and t1.col156 > 1 and t1.col157 > 1 and t1.col158 > 1 and t1.col159 > 1"
+ }
+ }
+ ]
+ }
+}
+select
+json_detailed(json_extract(trace,'$**.selectivity_for_columns[0]')) as JS
+from
+information_schema.optimizer_trace;
+JS
+[
+ {
+ "column_name": "col0",
+ "ranges":
+ ["1 < col0"],
+ "selectivity_from_histogram": 0.996078431
+ }
+]
+$query_tbl;
+EXPLAIN
+{
+ "query_block": {
+ "select_id": 1,
+ "nested_loop": [
+ {
+ "table": {
+ "table_name": "t1",
+ "access_type": "ALL",
+ "rows": 100,
+ "filtered": 53.32928848,
+ "attached_condition": "t1.col0 > 1 and t1.col1 > 1 and t1.col2 > 1 and t1.col3 > 1 and t1.col4 > 1 and t1.col5 > 1 and t1.col6 > 1 and t1.col7 > 1 and t1.col8 > 1 and t1.col9 > 1 and t1.col10 > 1 and t1.col11 > 1 and t1.col12 > 1 and t1.col13 > 1 and t1.col14 > 1 and t1.col15 > 1 and t1.col16 > 1 and t1.col17 > 1 and t1.col18 > 1 and t1.col19 > 1 and t1.col20 > 1 and t1.col21 > 1 and t1.col22 > 1 and t1.col23 > 1 and t1.col24 > 1 and t1.col25 > 1 and t1.col26 > 1 and t1.col27 > 1 and t1.col28 > 1 and t1.col29 > 1 and t1.col30 > 1 and t1.col31 > 1 and t1.col32 > 1 and t1.col33 > 1 and t1.col34 > 1 and t1.col35 > 1 and t1.col36 > 1 and t1.col37 > 1 and t1.col38 > 1 and t1.col39 > 1 and t1.col40 > 1 and t1.col41 > 1 and t1.col42 > 1 and t1.col43 > 1 and t1.col44 > 1 and t1.col45 > 1 and t1.col46 > 1 and t1.col47 > 1 and t1.col48 > 1 and t1.col49 > 1 and t1.col50 > 1 and t1.col51 > 1 and t1.col52 > 1 and t1.col53 > 1 and t1.col54 > 1 and t1.col55 > 1 and t1.col56 > 1 and t1.col57 > 1 and t1.col58 > 1 and t1.col59 > 1 and t1.col60 > 1 and t1.col61 > 1 and t1.col62 > 1 and t1.col63 > 1 and t1.col64 > 1 and t1.col65 > 1 and t1.col66 > 1 and t1.col67 > 1 and t1.col68 > 1 and t1.col69 > 1 and t1.col70 > 1 and t1.col71 > 1 and t1.col72 > 1 and t1.col73 > 1 and t1.col74 > 1 and t1.col75 > 1 and t1.col76 > 1 and t1.col77 > 1 and t1.col78 > 1 and t1.col79 > 1 and t1.col80 > 1 and t1.col81 > 1 and t1.col82 > 1 and t1.col83 > 1 and t1.col84 > 1 and t1.col85 > 1 and t1.col86 > 1 and t1.col87 > 1 and t1.col88 > 1 and t1.col89 > 1 and t1.col90 > 1 and t1.col91 > 1 and t1.col92 > 1 and t1.col93 > 1 and t1.col94 > 1 and t1.col95 > 1 and t1.col96 > 1 and t1.col97 > 1 and t1.col98 > 1 and t1.col99 > 1 and t1.col100 > 1 and t1.col101 > 1 and t1.col102 > 1 and t1.col103 > 1 and t1.col104 > 1 and t1.col105 > 1 and t1.col106 > 1 and t1.col107 > 1 and t1.col108 > 1 and t1.col109 > 1 and t1.col110 > 1 and t1.col111 > 1 and t1.col112 > 1 and t1.col113 > 1 and t1.col114 > 1 and t1.col115 > 1 and t1.col116 > 1 and t1.col117 > 1 and t1.col118 > 1 and t1.col119 > 1 and t1.col120 > 1 and t1.col121 > 1 and t1.col122 > 1 and t1.col123 > 1 and t1.col124 > 1 and t1.col125 > 1 and t1.col126 > 1 and t1.col127 > 1 and t1.col128 > 1 and t1.col129 > 1 and t1.col130 > 1 and t1.col131 > 1 and t1.col132 > 1 and t1.col133 > 1 and t1.col134 > 1 and t1.col135 > 1 and t1.col136 > 1 and t1.col137 > 1 and t1.col138 > 1 and t1.col139 > 1 and t1.col140 > 1 and t1.col141 > 1 and t1.col142 > 1 and t1.col143 > 1 and t1.col144 > 1 and t1.col145 > 1 and t1.col146 > 1 and t1.col147 > 1 and t1.col148 > 1 and t1.col149 > 1 and t1.col150 > 1 and t1.col151 > 1 and t1.col152 > 1 and t1.col153 > 1 and t1.col154 > 1 and t1.col155 > 1 and t1.col156 > 1 and t1.col157 > 1 and t1.col158 > 1 and t1.col159 > 1"
+ }
+ }
+ ]
+ }
+}
+select
+json_detailed(json_extract(trace,'$**.selectivity_for_columns[159]')) as JS
+from
+information_schema.optimizer_trace;
+JS
+[
+ {
+ "column_name": "col159",
+ "ranges":
+ ["1 < col159"],
+ "selectivity_from_histogram": 0.996078431
+ }
+]
+#
+# Check if not being able to infer anything for the first MAX_KEY
+# columns doesn't prevent further inferences.
+#
+# explain extended select * from t1
+# where (1>2 or col0>1 or col1>1 or ...) and col99>1
+#
+$query_tbl;
+EXPLAIN
+{
+ "query_block": {
+ "select_id": 1,
+ "nested_loop": [
+ {
+ "table": {
+ "table_name": "t1",
+ "access_type": "ALL",
+ "rows": 100,
+ "filtered": 99.60784149,
+ "attached_condition": "(t1.col1 > 1 or t1.col2 > 1 or t1.col3 > 1 or t1.col4 > 1 or t1.col5 > 1 or t1.col6 > 1 or t1.col7 > 1 or t1.col8 > 1 or t1.col9 > 1 or t1.col10 > 1 or t1.col11 > 1 or t1.col12 > 1 or t1.col13 > 1 or t1.col14 > 1 or t1.col15 > 1 or t1.col16 > 1 or t1.col17 > 1 or t1.col18 > 1 or t1.col19 > 1 or t1.col20 > 1 or t1.col21 > 1 or t1.col22 > 1 or t1.col23 > 1 or t1.col24 > 1 or t1.col25 > 1 or t1.col26 > 1 or t1.col27 > 1 or t1.col28 > 1 or t1.col29 > 1 or t1.col30 > 1 or t1.col31 > 1 or t1.col32 > 1 or t1.col33 > 1 or t1.col34 > 1 or t1.col35 > 1 or t1.col36 > 1 or t1.col37 > 1 or t1.col38 > 1 or t1.col39 > 1 or t1.col40 > 1 or t1.col41 > 1 or t1.col42 > 1 or t1.col43 > 1 or t1.col44 > 1 or t1.col45 > 1 or t1.col46 > 1 or t1.col47 > 1 or t1.col48 > 1 or t1.col49 > 1 or t1.col50 > 1 or t1.col51 > 1 or t1.col52 > 1 or t1.col53 > 1 or t1.col54 > 1 or t1.col55 > 1 or t1.col56 > 1 or t1.col57 > 1 or t1.col58 > 1 or t1.col59 > 1 or t1.col60 > 1 or t1.col61 > 1 or t1.col62 > 1 or t1.col63 > 1 or t1.col64 > 1 or t1.col65 > 1 or t1.col66 > 1 or t1.col67 > 1 or t1.col68 > 1 or t1.col69 > 1 or t1.col70 > 1 or t1.col71 > 1 or t1.col72 > 1 or t1.col73 > 1 or t1.col74 > 1 or t1.col75 > 1 or t1.col76 > 1 or t1.col77 > 1 or t1.col78 > 1 or t1.col79 > 1 or t1.col80 > 1 or t1.col81 > 1 or t1.col82 > 1 or t1.col83 > 1 or t1.col84 > 1 or t1.col85 > 1 or t1.col86 > 1 or t1.col87 > 1 or t1.col88 > 1 or t1.col89 > 1 or t1.col90 > 1 or t1.col91 > 1 or t1.col92 > 1 or t1.col93 > 1 or t1.col94 > 1 or t1.col95 > 1 or t1.col96 > 1 or t1.col97 > 1 or t1.col98 > 1 or t1.col99 > 1 or t1.col100 > 1 or t1.col101 > 1 or t1.col102 > 1 or t1.col103 > 1 or t1.col104 > 1 or t1.col105 > 1 or t1.col106 > 1 or t1.col107 > 1 or t1.col108 > 1 or t1.col109 > 1 or t1.col110 > 1 or t1.col111 > 1 or t1.col112 > 1 or t1.col113 > 1 or t1.col114 > 1 or t1.col115 > 1 or t1.col116 > 1 or t1.col117 > 1 or t1.col118 > 1 or t1.col119 > 1 or t1.col120 > 1 or t1.col121 > 1 or t1.col122 > 1 or t1.col123 > 1 or t1.col124 > 1 or t1.col125 > 1 or t1.col126 > 1 or t1.col127 > 1 or t1.col128 > 1 or t1.col129 > 1 or t1.col130 > 1 or t1.col131 > 1 or t1.col132 > 1 or t1.col133 > 1 or t1.col134 > 1 or t1.col135 > 1 or t1.col136 > 1 or t1.col137 > 1 or t1.col138 > 1 or t1.col139 > 1 or t1.col140 > 1 or t1.col141 > 1 or t1.col142 > 1 or t1.col143 > 1 or t1.col144 > 1 or t1.col145 > 1 or t1.col146 > 1 or t1.col147 > 1 or t1.col148 > 1 or t1.col149 > 1 or t1.col150 > 1 or t1.col151 > 1 or t1.col152 > 1 or t1.col153 > 1 or t1.col154 > 1 or t1.col155 > 1 or t1.col156 > 1 or t1.col157 > 1 or t1.col158 > 1) and t1.col159 > 1"
+ }
+ }
+ ]
+ }
+}
+select
+json_detailed(json_extract(trace,'$**.selectivity_for_columns')) as JS
+from
+information_schema.optimizer_trace;
+JS
+[
+ [
+ {
+ "column_name": "col159",
+ "ranges":
+ ["1 < col159"],
+ "selectivity_from_histogram": 0.996078431
+ }
+ ]
+]
+set optimizer_trace=@trace_tmp;
+drop table t1;
+#
# Clean up
#
+set optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity;
+set use_stat_tables= @save_use_stat_tables;
set @@global.histogram_size=@save_histogram_size;
set optimizer_switch=@save_optimizer_switch_for_selectivity_test;
SET SESSION STORAGE_ENGINE=DEFAULT;
diff --git a/mysql-test/main/selectivity_notembedded.result b/mysql-test/main/selectivity_notembedded.result
index d2e90a19..ac8922a2 100644
--- a/mysql-test/main/selectivity_notembedded.result
+++ b/mysql-test/main/selectivity_notembedded.result
@@ -83,13 +83,140 @@ sel
]
set optimizer_trace=@tmp;
drop table t0,t1,t10;
-set optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity;
set histogram_size=@save_histogram_size;
-set use_stat_tables= @save_use_stat_tables;
#
# End of 10.4 tests
#
#
+# MDEV-33314: Crash inside calculate_cond_selectivity_for_table() with many columns
+#
+set optimizer_use_condition_selectivity= 4;
+set use_stat_tables= preferably;
+#
+# create table t1 (col0 int, col1 int, col2 int, ...);
+#
+$create_tbl;
+#
+# insert into t1 select seq, ... seq from seq_1_to_10;
+#
+$insert_cmd;
+analyze table t1 persistent for all;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status OK
+set @trace_tmp=@@optimizer_trace;
+set optimizer_trace=1;
+#
+# Basic testcase: don't crash for many-column selectivity
+# explain extended select * from t1 where col0>1 and col1>1 and col2>1 and ...
+#
+$query_tbl;
+EXPLAIN
+{
+ "query_block": {
+ "select_id": 1,
+ "nested_loop": [
+ {
+ "table": {
+ "table_name": "t1",
+ "access_type": "ALL",
+ "rows": 100,
+ "filtered": 53.32928848,
+ "attached_condition": "t1.col0 > 1 and t1.col1 > 1 and t1.col2 > 1 and t1.col3 > 1 and t1.col4 > 1 and t1.col5 > 1 and t1.col6 > 1 and t1.col7 > 1 and t1.col8 > 1 and t1.col9 > 1 and t1.col10 > 1 and t1.col11 > 1 and t1.col12 > 1 and t1.col13 > 1 and t1.col14 > 1 and t1.col15 > 1 and t1.col16 > 1 and t1.col17 > 1 and t1.col18 > 1 and t1.col19 > 1 and t1.col20 > 1 and t1.col21 > 1 and t1.col22 > 1 and t1.col23 > 1 and t1.col24 > 1 and t1.col25 > 1 and t1.col26 > 1 and t1.col27 > 1 and t1.col28 > 1 and t1.col29 > 1 and t1.col30 > 1 and t1.col31 > 1 and t1.col32 > 1 and t1.col33 > 1 and t1.col34 > 1 and t1.col35 > 1 and t1.col36 > 1 and t1.col37 > 1 and t1.col38 > 1 and t1.col39 > 1 and t1.col40 > 1 and t1.col41 > 1 and t1.col42 > 1 and t1.col43 > 1 and t1.col44 > 1 and t1.col45 > 1 and t1.col46 > 1 and t1.col47 > 1 and t1.col48 > 1 and t1.col49 > 1 and t1.col50 > 1 and t1.col51 > 1 and t1.col52 > 1 and t1.col53 > 1 and t1.col54 > 1 and t1.col55 > 1 and t1.col56 > 1 and t1.col57 > 1 and t1.col58 > 1 and t1.col59 > 1 and t1.col60 > 1 and t1.col61 > 1 and t1.col62 > 1 and t1.col63 > 1 and t1.col64 > 1 and t1.col65 > 1 and t1.col66 > 1 and t1.col67 > 1 and t1.col68 > 1 and t1.col69 > 1 and t1.col70 > 1 and t1.col71 > 1 and t1.col72 > 1 and t1.col73 > 1 and t1.col74 > 1 and t1.col75 > 1 and t1.col76 > 1 and t1.col77 > 1 and t1.col78 > 1 and t1.col79 > 1 and t1.col80 > 1 and t1.col81 > 1 and t1.col82 > 1 and t1.col83 > 1 and t1.col84 > 1 and t1.col85 > 1 and t1.col86 > 1 and t1.col87 > 1 and t1.col88 > 1 and t1.col89 > 1 and t1.col90 > 1 and t1.col91 > 1 and t1.col92 > 1 and t1.col93 > 1 and t1.col94 > 1 and t1.col95 > 1 and t1.col96 > 1 and t1.col97 > 1 and t1.col98 > 1 and t1.col99 > 1 and t1.col100 > 1 and t1.col101 > 1 and t1.col102 > 1 and t1.col103 > 1 and t1.col104 > 1 and t1.col105 > 1 and t1.col106 > 1 and t1.col107 > 1 and t1.col108 > 1 and t1.col109 > 1 and t1.col110 > 1 and t1.col111 > 1 and t1.col112 > 1 and t1.col113 > 1 and t1.col114 > 1 and t1.col115 > 1 and t1.col116 > 1 and t1.col117 > 1 and t1.col118 > 1 and t1.col119 > 1 and t1.col120 > 1 and t1.col121 > 1 and t1.col122 > 1 and t1.col123 > 1 and t1.col124 > 1 and t1.col125 > 1 and t1.col126 > 1 and t1.col127 > 1 and t1.col128 > 1 and t1.col129 > 1 and t1.col130 > 1 and t1.col131 > 1 and t1.col132 > 1 and t1.col133 > 1 and t1.col134 > 1 and t1.col135 > 1 and t1.col136 > 1 and t1.col137 > 1 and t1.col138 > 1 and t1.col139 > 1 and t1.col140 > 1 and t1.col141 > 1 and t1.col142 > 1 and t1.col143 > 1 and t1.col144 > 1 and t1.col145 > 1 and t1.col146 > 1 and t1.col147 > 1 and t1.col148 > 1 and t1.col149 > 1 and t1.col150 > 1 and t1.col151 > 1 and t1.col152 > 1 and t1.col153 > 1 and t1.col154 > 1 and t1.col155 > 1 and t1.col156 > 1 and t1.col157 > 1 and t1.col158 > 1 and t1.col159 > 1"
+ }
+ }
+ ]
+ }
+}
+select
+json_detailed(json_extract(trace,'$**.selectivity_for_columns[0]')) as JS
+from
+information_schema.optimizer_trace;
+JS
+[
+ {
+ "column_name": "col0",
+ "ranges":
+ ["1 < col0"],
+ "selectivity_from_histogram": 0.996078431
+ }
+]
+$query_tbl;
+EXPLAIN
+{
+ "query_block": {
+ "select_id": 1,
+ "nested_loop": [
+ {
+ "table": {
+ "table_name": "t1",
+ "access_type": "ALL",
+ "rows": 100,
+ "filtered": 53.32928848,
+ "attached_condition": "t1.col0 > 1 and t1.col1 > 1 and t1.col2 > 1 and t1.col3 > 1 and t1.col4 > 1 and t1.col5 > 1 and t1.col6 > 1 and t1.col7 > 1 and t1.col8 > 1 and t1.col9 > 1 and t1.col10 > 1 and t1.col11 > 1 and t1.col12 > 1 and t1.col13 > 1 and t1.col14 > 1 and t1.col15 > 1 and t1.col16 > 1 and t1.col17 > 1 and t1.col18 > 1 and t1.col19 > 1 and t1.col20 > 1 and t1.col21 > 1 and t1.col22 > 1 and t1.col23 > 1 and t1.col24 > 1 and t1.col25 > 1 and t1.col26 > 1 and t1.col27 > 1 and t1.col28 > 1 and t1.col29 > 1 and t1.col30 > 1 and t1.col31 > 1 and t1.col32 > 1 and t1.col33 > 1 and t1.col34 > 1 and t1.col35 > 1 and t1.col36 > 1 and t1.col37 > 1 and t1.col38 > 1 and t1.col39 > 1 and t1.col40 > 1 and t1.col41 > 1 and t1.col42 > 1 and t1.col43 > 1 and t1.col44 > 1 and t1.col45 > 1 and t1.col46 > 1 and t1.col47 > 1 and t1.col48 > 1 and t1.col49 > 1 and t1.col50 > 1 and t1.col51 > 1 and t1.col52 > 1 and t1.col53 > 1 and t1.col54 > 1 and t1.col55 > 1 and t1.col56 > 1 and t1.col57 > 1 and t1.col58 > 1 and t1.col59 > 1 and t1.col60 > 1 and t1.col61 > 1 and t1.col62 > 1 and t1.col63 > 1 and t1.col64 > 1 and t1.col65 > 1 and t1.col66 > 1 and t1.col67 > 1 and t1.col68 > 1 and t1.col69 > 1 and t1.col70 > 1 and t1.col71 > 1 and t1.col72 > 1 and t1.col73 > 1 and t1.col74 > 1 and t1.col75 > 1 and t1.col76 > 1 and t1.col77 > 1 and t1.col78 > 1 and t1.col79 > 1 and t1.col80 > 1 and t1.col81 > 1 and t1.col82 > 1 and t1.col83 > 1 and t1.col84 > 1 and t1.col85 > 1 and t1.col86 > 1 and t1.col87 > 1 and t1.col88 > 1 and t1.col89 > 1 and t1.col90 > 1 and t1.col91 > 1 and t1.col92 > 1 and t1.col93 > 1 and t1.col94 > 1 and t1.col95 > 1 and t1.col96 > 1 and t1.col97 > 1 and t1.col98 > 1 and t1.col99 > 1 and t1.col100 > 1 and t1.col101 > 1 and t1.col102 > 1 and t1.col103 > 1 and t1.col104 > 1 and t1.col105 > 1 and t1.col106 > 1 and t1.col107 > 1 and t1.col108 > 1 and t1.col109 > 1 and t1.col110 > 1 and t1.col111 > 1 and t1.col112 > 1 and t1.col113 > 1 and t1.col114 > 1 and t1.col115 > 1 and t1.col116 > 1 and t1.col117 > 1 and t1.col118 > 1 and t1.col119 > 1 and t1.col120 > 1 and t1.col121 > 1 and t1.col122 > 1 and t1.col123 > 1 and t1.col124 > 1 and t1.col125 > 1 and t1.col126 > 1 and t1.col127 > 1 and t1.col128 > 1 and t1.col129 > 1 and t1.col130 > 1 and t1.col131 > 1 and t1.col132 > 1 and t1.col133 > 1 and t1.col134 > 1 and t1.col135 > 1 and t1.col136 > 1 and t1.col137 > 1 and t1.col138 > 1 and t1.col139 > 1 and t1.col140 > 1 and t1.col141 > 1 and t1.col142 > 1 and t1.col143 > 1 and t1.col144 > 1 and t1.col145 > 1 and t1.col146 > 1 and t1.col147 > 1 and t1.col148 > 1 and t1.col149 > 1 and t1.col150 > 1 and t1.col151 > 1 and t1.col152 > 1 and t1.col153 > 1 and t1.col154 > 1 and t1.col155 > 1 and t1.col156 > 1 and t1.col157 > 1 and t1.col158 > 1 and t1.col159 > 1"
+ }
+ }
+ ]
+ }
+}
+select
+json_detailed(json_extract(trace,'$**.selectivity_for_columns[159]')) as JS
+from
+information_schema.optimizer_trace;
+JS
+[
+ {
+ "column_name": "col159",
+ "ranges":
+ ["1 < col159"],
+ "selectivity_from_histogram": 0.996078431
+ }
+]
+#
+# Check if not being able to infer anything for the first MAX_KEY
+# columns doesn't prevent further inferences.
+#
+# explain extended select * from t1
+# where (1>2 or col0>1 or col1>1 or ...) and col99>1
+#
+$query_tbl;
+EXPLAIN
+{
+ "query_block": {
+ "select_id": 1,
+ "nested_loop": [
+ {
+ "table": {
+ "table_name": "t1",
+ "access_type": "ALL",
+ "rows": 100,
+ "filtered": 99.60784149,
+ "attached_condition": "(t1.col1 > 1 or t1.col2 > 1 or t1.col3 > 1 or t1.col4 > 1 or t1.col5 > 1 or t1.col6 > 1 or t1.col7 > 1 or t1.col8 > 1 or t1.col9 > 1 or t1.col10 > 1 or t1.col11 > 1 or t1.col12 > 1 or t1.col13 > 1 or t1.col14 > 1 or t1.col15 > 1 or t1.col16 > 1 or t1.col17 > 1 or t1.col18 > 1 or t1.col19 > 1 or t1.col20 > 1 or t1.col21 > 1 or t1.col22 > 1 or t1.col23 > 1 or t1.col24 > 1 or t1.col25 > 1 or t1.col26 > 1 or t1.col27 > 1 or t1.col28 > 1 or t1.col29 > 1 or t1.col30 > 1 or t1.col31 > 1 or t1.col32 > 1 or t1.col33 > 1 or t1.col34 > 1 or t1.col35 > 1 or t1.col36 > 1 or t1.col37 > 1 or t1.col38 > 1 or t1.col39 > 1 or t1.col40 > 1 or t1.col41 > 1 or t1.col42 > 1 or t1.col43 > 1 or t1.col44 > 1 or t1.col45 > 1 or t1.col46 > 1 or t1.col47 > 1 or t1.col48 > 1 or t1.col49 > 1 or t1.col50 > 1 or t1.col51 > 1 or t1.col52 > 1 or t1.col53 > 1 or t1.col54 > 1 or t1.col55 > 1 or t1.col56 > 1 or t1.col57 > 1 or t1.col58 > 1 or t1.col59 > 1 or t1.col60 > 1 or t1.col61 > 1 or t1.col62 > 1 or t1.col63 > 1 or t1.col64 > 1 or t1.col65 > 1 or t1.col66 > 1 or t1.col67 > 1 or t1.col68 > 1 or t1.col69 > 1 or t1.col70 > 1 or t1.col71 > 1 or t1.col72 > 1 or t1.col73 > 1 or t1.col74 > 1 or t1.col75 > 1 or t1.col76 > 1 or t1.col77 > 1 or t1.col78 > 1 or t1.col79 > 1 or t1.col80 > 1 or t1.col81 > 1 or t1.col82 > 1 or t1.col83 > 1 or t1.col84 > 1 or t1.col85 > 1 or t1.col86 > 1 or t1.col87 > 1 or t1.col88 > 1 or t1.col89 > 1 or t1.col90 > 1 or t1.col91 > 1 or t1.col92 > 1 or t1.col93 > 1 or t1.col94 > 1 or t1.col95 > 1 or t1.col96 > 1 or t1.col97 > 1 or t1.col98 > 1 or t1.col99 > 1 or t1.col100 > 1 or t1.col101 > 1 or t1.col102 > 1 or t1.col103 > 1 or t1.col104 > 1 or t1.col105 > 1 or t1.col106 > 1 or t1.col107 > 1 or t1.col108 > 1 or t1.col109 > 1 or t1.col110 > 1 or t1.col111 > 1 or t1.col112 > 1 or t1.col113 > 1 or t1.col114 > 1 or t1.col115 > 1 or t1.col116 > 1 or t1.col117 > 1 or t1.col118 > 1 or t1.col119 > 1 or t1.col120 > 1 or t1.col121 > 1 or t1.col122 > 1 or t1.col123 > 1 or t1.col124 > 1 or t1.col125 > 1 or t1.col126 > 1 or t1.col127 > 1 or t1.col128 > 1 or t1.col129 > 1 or t1.col130 > 1 or t1.col131 > 1 or t1.col132 > 1 or t1.col133 > 1 or t1.col134 > 1 or t1.col135 > 1 or t1.col136 > 1 or t1.col137 > 1 or t1.col138 > 1 or t1.col139 > 1 or t1.col140 > 1 or t1.col141 > 1 or t1.col142 > 1 or t1.col143 > 1 or t1.col144 > 1 or t1.col145 > 1 or t1.col146 > 1 or t1.col147 > 1 or t1.col148 > 1 or t1.col149 > 1 or t1.col150 > 1 or t1.col151 > 1 or t1.col152 > 1 or t1.col153 > 1 or t1.col154 > 1 or t1.col155 > 1 or t1.col156 > 1 or t1.col157 > 1 or t1.col158 > 1) and t1.col159 > 1"
+ }
+ }
+ ]
+ }
+}
+select
+json_detailed(json_extract(trace,'$**.selectivity_for_columns')) as JS
+from
+information_schema.optimizer_trace;
+JS
+[
+ [
+ {
+ "column_name": "col159",
+ "ranges":
+ ["1 < col159"],
+ "selectivity_from_histogram": 0.996078431
+ }
+ ]
+]
+set optimizer_trace=@trace_tmp;
+drop table t1;
+#
# Clean up
#
+set optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity;
+set use_stat_tables= @save_use_stat_tables;
set @@global.histogram_size=@save_histogram_size;
diff --git a/mysql-test/main/selectivity_notembedded.test b/mysql-test/main/selectivity_notembedded.test
index 6752bd3c..30e0b7f0 100644
--- a/mysql-test/main/selectivity_notembedded.test
+++ b/mysql-test/main/selectivity_notembedded.test
@@ -105,17 +105,113 @@ from information_schema.optimizer_trace;
set optimizer_trace=@tmp;
drop table t0,t1,t10;
-set optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity;
set histogram_size=@save_histogram_size;
-set use_stat_tables= @save_use_stat_tables;
-
--echo #
--echo # End of 10.4 tests
--echo #
--echo #
+--echo # MDEV-33314: Crash inside calculate_cond_selectivity_for_table() with many columns
+--echo #
+set optimizer_use_condition_selectivity= 4;
+set use_stat_tables= preferably;
+
+let $N_CONDS=160;
+let $N_LAST_COND=159;
+--echo #
+--echo # create table t1 (col0 int, col1 int, col2 int, ...);
+--echo #
+let $create_tbl= create table t1 ( col0 int;
+let $i=1;
+
+while ($i < $N_CONDS) {
+ let $create_tbl= $create_tbl, col$i int;
+ let $i=`select $i + 1`;
+}
+
+let $create_tbl= $create_tbl );
+#echo $create_tbl;
+evalp $create_tbl;
+
+
+--echo #
+--echo # insert into t1 select seq, ... seq from seq_1_to_10;
+--echo #
+let $insert_cmd= insert into t1 select seq;
+let $i=1;
+
+while ($i < $N_CONDS) {
+ let $insert_cmd = $insert_cmd ,seq;
+ let $i=`select $i + 1`;
+}
+let $insert_cmd= $insert_cmd from seq_1_to_100;
+
+# echo $insert_cmd;
+evalp $insert_cmd;
+
+analyze table t1 persistent for all;
+set @trace_tmp=@@optimizer_trace;
+set optimizer_trace=1;
+
+--echo #
+--echo # Basic testcase: don't crash for many-column selectivity
+--echo # explain extended select * from t1 where col0>1 and col1>1 and col2>1 and ...
+--echo #
+let $query_tbl= explain format=json select * from t1 where col0>1;
+
+let $i=1;
+while ($i < $N_CONDS) {
+ let $query_tbl= $query_tbl and col$i>1;
+ let $i=`select $i + 1`;
+}
+
+#echo $query_tbl;
+evalp $query_tbl;
+
+select
+ json_detailed(json_extract(trace,'$**.selectivity_for_columns[0]')) as JS
+from
+ information_schema.optimizer_trace;
+
+evalp $query_tbl;
+eval select
+ json_detailed(json_extract(trace,'\$**.selectivity_for_columns[$N_LAST_COND]')) as JS
+from
+ information_schema.optimizer_trace;
+
+
+--echo #
+--echo # Check if not being able to infer anything for the first MAX_KEY
+--echo # columns doesn't prevent further inferences.
+--echo #
+--echo # explain extended select * from t1
+--echo # where (1>2 or col0>1 or col1>1 or ...) and col99>1
+--echo #
+let $query_tbl= explain format=json select * from t1 where (1>2 ;
+
+let $i=1;
+while ($i < $N_LAST_COND) {
+ let $query_tbl= $query_tbl or col$i>1;
+ let $i=`select $i + 1`;
+}
+let $query_tbl= $query_tbl) and col$N_LAST_COND>1;
+
+#echo $query_tbl;
+evalp $query_tbl;
+
+select
+ json_detailed(json_extract(trace,'$**.selectivity_for_columns')) as JS
+from
+ information_schema.optimizer_trace;
+
+set optimizer_trace=@trace_tmp;
+drop table t1;
+
+--echo #
--echo # Clean up
--echo #
--source include/restore_charset.inc
+set optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity;
+set use_stat_tables= @save_use_stat_tables;
set @@global.histogram_size=@save_histogram_size;
diff --git a/mysql-test/main/show_analyze.result b/mysql-test/main/show_analyze.result
index 77cfbc58..cc427b45 100644
--- a/mysql-test/main/show_analyze.result
+++ b/mysql-test/main/show_analyze.result
@@ -207,9 +207,12 @@ id select_type table type possible_keys key key_len ref rows r_rows filtered r_f
SET debug_dbug=@old_debug;
# Try to do SHOW ANALYZE for a query that runs a SET command:
#
-set @show_explain_probe_select_id=2;
+create table t2 (a int);
+insert into t2 values (1),(2);
+set @show_explain_probe_select_id=3;
SET debug_dbug='+d,show_explain_probe_join_exec_start';
-set @foo= (select max(a) from t0 where sin(a) >0);
+set @foo= (select max(a) from t2
+where a + (select max(a) from t0 where t0.a>t2.a) < 10000);
connection default;
show analyze for $thr2;
ERROR HY000: Target is not executing an operation with a query plan
@@ -217,6 +220,7 @@ kill query $thr2;
connection con1;
ERROR 70100: Query execution was interrupted
SET debug_dbug=@old_debug;
+drop table t2;
#
# Attempt SHOW ANALYZE for an UPDATE
#
diff --git a/mysql-test/main/show_analyze.test b/mysql-test/main/show_analyze.test
index 58d36d7d..c55aacda 100644
--- a/mysql-test/main/show_analyze.test
+++ b/mysql-test/main/show_analyze.test
@@ -213,9 +213,15 @@ SET debug_dbug=@old_debug;
--echo # Try to do SHOW ANALYZE for a query that runs a SET command:
--echo #
-set @show_explain_probe_select_id=2; # <---
+create table t2 (a int);
+insert into t2 values (1),(2);
+set @show_explain_probe_select_id=3; # Stop in the subquery.
SET debug_dbug='+d,show_explain_probe_join_exec_start';
-send set @foo= (select max(a) from t0 where sin(a) >0);
+# t2 has 2 rows so we will stop in the subquery twice:
+# - first one to serve the SHOW ANALYZE request
+# - second one when waiting to be KILLed.
+send set @foo= (select max(a) from t2
+ where a + (select max(a) from t0 where t0.a>t2.a) < 10000);
connection default;
--source include/wait_condition.inc
--error ER_TARGET_NOT_EXPLAINABLE
@@ -225,7 +231,7 @@ connection con1;
--error ER_QUERY_INTERRUPTED
reap;
SET debug_dbug=@old_debug;
-
+drop table t2;
--echo #
--echo # Attempt SHOW ANALYZE for an UPDATE
diff --git a/mysql-test/main/show_explain_json.result b/mysql-test/main/show_explain_json.result
index a5c441af..1a816597 100644
--- a/mysql-test/main/show_explain_json.result
+++ b/mysql-test/main/show_explain_json.result
@@ -518,9 +518,12 @@ SET debug_dbug=@old_debug;
# Try to do SHOW EXPLAIN for a query that runs a SET command:
# I've found experimentally that select_id==2 here...
#
-set @show_explain_probe_select_id=2;
+create table t2 (a int);
+insert into t2 values (1),(2);
+set @show_explain_probe_select_id=3;
SET debug_dbug='+d,show_explain_probe_join_exec_start';
-set @foo= (select max(a) from t0 where sin(a) >0);
+set @foo= (select max(a) from t2
+where a + (select max(a) from t0 where t0.a>t2.a) < 10000);
connection default;
show explain format=JSON for $thr2;
ERROR HY000: Target is not executing an operation with a query plan
@@ -528,6 +531,7 @@ kill query $thr2;
connection con1;
ERROR 70100: Query execution was interrupted
SET debug_dbug=@old_debug;
+drop table t2;
#
# Attempt SHOW EXPLAIN for an UPDATE
#
diff --git a/mysql-test/main/show_explain_json.test b/mysql-test/main/show_explain_json.test
index 8d2a6aa8..2426e095 100644
--- a/mysql-test/main/show_explain_json.test
+++ b/mysql-test/main/show_explain_json.test
@@ -271,9 +271,16 @@ SET debug_dbug=@old_debug;
--echo # Try to do SHOW EXPLAIN for a query that runs a SET command:
--echo # I've found experimentally that select_id==2 here...
--echo #
-set @show_explain_probe_select_id=2;
+
+create table t2 (a int);
+insert into t2 values (1),(2);
+set @show_explain_probe_select_id=3; # Stop in the subquery.
SET debug_dbug='+d,show_explain_probe_join_exec_start';
-send set @foo= (select max(a) from t0 where sin(a) >0);
+# t2 has 2 rows so we will stop in the subquery twice:
+# - first one to serve the SHOW ANALYZE request
+# - second one when waiting to be KILLed.
+send set @foo= (select max(a) from t2
+ where a + (select max(a) from t0 where t0.a>t2.a) < 10000);
connection default;
--source include/wait_condition.inc
--error ER_TARGET_NOT_EXPLAINABLE
@@ -283,6 +290,7 @@ connection con1;
--error ER_QUERY_INTERRUPTED
reap;
SET debug_dbug=@old_debug;
+drop table t2;
--echo #
--echo # Attempt SHOW EXPLAIN for an UPDATE
diff --git a/mysql-test/main/shutdown.test b/mysql-test/main/shutdown.test
index 71f2156a..b26a6d4b 100644
--- a/mysql-test/main/shutdown.test
+++ b/mysql-test/main/shutdown.test
@@ -20,13 +20,13 @@ drop procedure try_shutdown;
--let $_expect_file_name= `select regexp_replace(@@tmpdir, '^.*/','')`
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/$_expect_file_name.expect
---exec echo "wait" > $_expect_file_name
+--write_line wait $_expect_file_name
--send shutdown
--connection default
--source include/wait_until_disconnected.inc
---exec echo "restart" > $_expect_file_name
+--write_line restart $_expect_file_name
--enable_reconnect
--source include/wait_until_connected_again.inc
diff --git a/mysql-test/main/skip_grants.test b/mysql-test/main/skip_grants.test
index b74cd41b..5af697f6 100644
--- a/mysql-test/main/skip_grants.test
+++ b/mysql-test/main/skip_grants.test
@@ -176,12 +176,12 @@ drop user baz@baz;
SELECT @@skip_grant_tables AS EXPECT_1;
# Also check when the server starts without "--skip-grant-table" option
---let $restart_parameters = "--skip-skip-grant-tables"
+--let $restart_parameters = --skip-skip-grant-tables
--source include/restart_mysqld.inc
SELECT @@skip_grant_tables AS EXPECT_0;
# Need to restart the server to restore the "--skip-grant-tables" state
---let $restart_parameters = "--skip-grant-tables"
+--let $restart_parameters = --skip-grant-tables
--source include/restart_mysqld.inc
--echo #
diff --git a/mysql-test/main/sp.result b/mysql-test/main/sp.result
index 522c2ced..71268c5d 100644
--- a/mysql-test/main/sp.result
+++ b/mysql-test/main/sp.result
@@ -7179,15 +7179,14 @@ CREATE VIEW t1 AS SELECT 10 AS f1;
CALL p1(1);
ERROR HY000: The target table t1 of the INSERT is not insertable-into
CREATE TEMPORARY TABLE t1 (f1 INT);
-# t1 still refers to the view since it was inlined
CALL p1(2);
-ERROR HY000: The target table t1 of the INSERT is not insertable-into
DROP VIEW t1;
# t1 now refers to the temporary table
CALL p1(3);
# Check which values were inserted into the temp table.
SELECT * FROM t1;
f1
+2
3
DROP TEMPORARY TABLE t1;
DROP PROCEDURE p1;
diff --git a/mysql-test/main/sp.test b/mysql-test/main/sp.test
index 4e9b4c78..2bc71bd1 100644
--- a/mysql-test/main/sp.test
+++ b/mysql-test/main/sp.test
@@ -8632,8 +8632,6 @@ CALL p1(1);
CREATE TEMPORARY TABLE t1 (f1 INT);
---echo # t1 still refers to the view since it was inlined
---error ER_NON_INSERTABLE_TABLE
CALL p1(2);
DROP VIEW t1;
diff --git a/mysql-test/main/ssl_and_innodb.test b/mysql-test/main/ssl_and_innodb.test
index 4966f05b..2104eb5c 100644
--- a/mysql-test/main/ssl_and_innodb.test
+++ b/mysql-test/main/ssl_and_innodb.test
@@ -1,5 +1,5 @@
-- source include/have_innodb.inc
--- source include/have_ssl_crypto_functs.inc
+-- source include/have_des.inc
CREATE TABLE t1(a int) engine=innodb;
INSERT INTO t1 VALUES (1);
diff --git a/mysql-test/main/ssl_crl.result b/mysql-test/main/ssl_crl.result
index d5603254..58e3e07f 100644
--- a/mysql-test/main/ssl_crl.result
+++ b/mysql-test/main/ssl_crl.result
@@ -2,4 +2,4 @@
Variable_name Value
Ssl_version TLS_VERSION
# try logging in with a certificate in the server's --ssl-crl : should fail
-ERROR 2026 (HY000): TLS/SSL error: sslv3 alert certificate revoked
+ERROR 2026 (HY000): TLS/SSL error: ssl/tls alert certificate revoked
diff --git a/mysql-test/main/ssl_crl.test b/mysql-test/main/ssl_crl.test
index 9b475857..a09490f2 100644
--- a/mysql-test/main/ssl_crl.test
+++ b/mysql-test/main/ssl_crl.test
@@ -7,7 +7,7 @@
--exec $MYSQL --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/server-new-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/server-new-cert.pem test -e "SHOW STATUS LIKE 'Ssl_version'"
--echo # try logging in with a certificate in the server's --ssl-crl : should fail
-# OpenSSL 1.1.1a correctly rejects the certificate, but the error message is different
---replace_regex /ERROR 2013 \(HY000\): Lost connection to server at '.*', system error: [0-9]+/ERROR 2026 (HY000): TLS\/SSL error: sslv3 alert certificate revoked/
+# OpenSSL 1.1.1a and later releases correctly rejects the certificate, but the error message is different
+--replace_regex /(ERROR 2013 \(HY000\): Lost connection to server at '.*', system error: [0-9]+|ERROR 2026 \(HY000\): TLS\/SSL error: sslv3 alert certificate revoked)/ERROR 2026 (HY000): TLS\/SSL error: ssl\/tls alert certificate revoked/
--error 1
--exec $MYSQL --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test -e "SHOW STATUS LIKE 'Ssl_version'" 2>&1
diff --git a/mysql-test/main/ssl_timeout.result b/mysql-test/main/ssl_timeout.result
index 208be527..d94cfed8 100644
--- a/mysql-test/main/ssl_timeout.result
+++ b/mysql-test/main/ssl_timeout.result
@@ -1,5 +1,5 @@
# connect with read timeout so SLEEP() should timeout
-connect ssl_con,localhost,root,,,,,SSL read_timeout=5;
+connect ssl_con,localhost,root,,,,,SSL read_timeout=5$_timeout_adjustment;
# Check ssl turned on
SELECT (VARIABLE_VALUE <> '') AS have_ssl FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher';
have_ssl
diff --git a/mysql-test/main/ssl_timeout.test b/mysql-test/main/ssl_timeout.test
index f5965f87..d762ebc3 100644
--- a/mysql-test/main/ssl_timeout.test
+++ b/mysql-test/main/ssl_timeout.test
@@ -1,10 +1,11 @@
--source include/have_ssl_communication.inc
+--source include/slow_environ.inc
# Save the initial number of concurrent sessions
--source include/count_sessions.inc
--echo # connect with read timeout so SLEEP() should timeout
-connect (ssl_con,localhost,root,,,,,SSL read_timeout=5);
+connect (ssl_con,localhost,root,,,,,SSL read_timeout=5$_timeout_adjustment);
--echo # Check ssl turned on
SELECT (VARIABLE_VALUE <> '') AS have_ssl FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher';
diff --git a/mysql-test/main/stat_tables_partition.result b/mysql-test/main/stat_tables_partition.result
index 2619026b..2dd63e85 100644
--- a/mysql-test/main/stat_tables_partition.result
+++ b/mysql-test/main/stat_tables_partition.result
@@ -34,13 +34,12 @@ set session use_stat_tables='preferably';
# Must NOT show "Engine-independent statistics collected":
alter table t1 analyze partition p0;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
# Should not have Handler_read_rnd_next=34
show session status like 'Handler_read_rnd%';
Variable_name Value
Handler_read_rnd 0
Handler_read_rnd_deleted 0
-Handler_read_rnd_next 34
+Handler_read_rnd_next 0
drop table t1;
SET use_stat_tables = DEFAULT;
diff --git a/mysql-test/main/stat_tables_rbr.result b/mysql-test/main/stat_tables_rbr.result
index 38f77441..9d5e7f85 100644
--- a/mysql-test/main/stat_tables_rbr.result
+++ b/mysql-test/main/stat_tables_rbr.result
@@ -17,7 +17,6 @@ SET use_stat_tables = PREFERABLY;
CREATE TABLE t1 ( a INT ) ENGINE=MyISAM PARTITION BY HASH(a) PARTITIONS 2;
ALTER TABLE t1 ANALYZE PARTITION p1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
diff --git a/mysql-test/main/subselect4.result b/mysql-test/main/subselect4.result
index 6d1e0dac..1e65bfc8 100644
--- a/mysql-test/main/subselect4.result
+++ b/mysql-test/main/subselect4.result
@@ -3001,34 +3001,31 @@ where a >= any (select b from t2 group by (select c from t3 where c = 1));
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
2 SUBQUERY t2 ALL NULL NULL NULL NULL 2 100.00
+3 SUBQUERY t3 ALL NULL NULL NULL NULL 2 100.00 Using where
Warnings:
-Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where <nop>(<in_optimizer>(`test`.`t1`.`a`,(/* select#2 */ select min(`test`.`t2`.`b`) from `test`.`t2`) <= <cache>(`test`.`t1`.`a`)))
+Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where <nop>(<in_optimizer>(`test`.`t1`.`a`,<min>(/* select#2 */ select `test`.`t2`.`b` from `test`.`t2` group by (/* select#3 */ select `test`.`t3`.`c` from `test`.`t3` where `test`.`t3`.`c` = 1)) <= <cache>(`test`.`t1`.`a`)))
select a from t1
where a >= any (select b from t2 group by (select c from t3 where c = 1));
a
-3
-2
prepare stmt from "select a from t1
where a >= any (select b from t2 group by (select c from t3 where c = 1))";
execute stmt;
a
-3
-2
execute stmt;
a
-3
-2
deallocate prepare stmt;
explain extended select a from t1
where a <= all (select b from t2 group by (select c from t3 where c = 1));
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
2 SUBQUERY t2 ALL NULL NULL NULL NULL 2 100.00
+3 SUBQUERY t3 ALL NULL NULL NULL NULL 2 100.00 Using where
Warnings:
-Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where <not>(<in_optimizer>(`test`.`t1`.`a`,(/* select#2 */ select min(`test`.`t2`.`b`) from `test`.`t2`) < <cache>(`test`.`t1`.`a`)))
+Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where <not>(<in_optimizer>(`test`.`t1`.`a`,<min>(/* select#2 */ select `test`.`t2`.`b` from `test`.`t2` group by (/* select#3 */ select `test`.`t3`.`c` from `test`.`t3` where `test`.`t3`.`c` = 1)) < <cache>(`test`.`t1`.`a`)))
select a from t1
where a <= all (select b from t2 group by (select c from t3 where c = 1));
a
+3
1
2
explain extended select a from t1
@@ -3036,13 +3033,12 @@ where a >= any (select b from t2 group by 1 + (select c from t3 where c = 1));
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
2 SUBQUERY t2 ALL NULL NULL NULL NULL 2 100.00
+3 SUBQUERY t3 ALL NULL NULL NULL NULL 2 100.00 Using where
Warnings:
-Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where <nop>(<in_optimizer>(`test`.`t1`.`a`,(/* select#2 */ select min(`test`.`t2`.`b`) from `test`.`t2`) <= <cache>(`test`.`t1`.`a`)))
+Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where <nop>(<in_optimizer>(`test`.`t1`.`a`,<min>(/* select#2 */ select `test`.`t2`.`b` from `test`.`t2` group by 1 + (/* select#3 */ select `test`.`t3`.`c` from `test`.`t3` where `test`.`t3`.`c` = 1)) <= <cache>(`test`.`t1`.`a`)))
select a from t1
where a >= any (select b from t2 group by 1 + (select c from t3 where c = 1));
a
-3
-2
drop table t1,t2,t3;
#
# MDEV-29139: Redundant IN/ALL/ANY predicand in GROUP BY clause of
@@ -3062,8 +3058,10 @@ group by (select a from t1 where a = 1) in (select d from t4));
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00
2 SUBQUERY t3 ALL NULL NULL NULL NULL 2 100.00
+4 SUBQUERY t4 ALL NULL NULL NULL NULL 2 100.00 Using where
+3 SUBQUERY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`b` AS `b` from `test`.`t2` where 1
+Note 1003 /* select#1 */ select `test`.`t2`.`b` AS `b` from `test`.`t2` where <in_optimizer>(1,exists(/* select#2 */ select `test`.`t3`.`c` from `test`.`t3` group by <in_optimizer>((/* select#3 */ select `test`.`t1`.`a` from `test`.`t1` where `test`.`t1`.`a` = 1),<exists>(/* select#4 */ select `test`.`t4`.`d` from `test`.`t4` where trigcond(<cache>((/* select#3 */ select `test`.`t1`.`a` from `test`.`t1` where `test`.`t1`.`a` = 1)) = `test`.`t4`.`d` or `test`.`t4`.`d` is null) having trigcond(`test`.`t4`.`d` is null))) limit 1))
select b from t2
where exists (select c from t3
group by (select a from t1 where a = 1) in (select d from t4));
@@ -3089,8 +3087,10 @@ any (select d from t4));
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00
2 SUBQUERY t3 ALL NULL NULL NULL NULL 2 100.00
+4 SUBQUERY t4 ALL NULL NULL NULL NULL 2 100.00 Using where
+3 SUBQUERY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`b` AS `b` from `test`.`t2` where 1
+Note 1003 /* select#1 */ select `test`.`t2`.`b` AS `b` from `test`.`t2` where <in_optimizer>(1,exists(/* select#2 */ select `test`.`t3`.`c` from `test`.`t3` group by <nop>(<expr_cache><(/* select#3 */ select `test`.`t1`.`a` from `test`.`t1` where `test`.`t1`.`a` = 1)>(<in_optimizer>((/* select#3 */ select `test`.`t1`.`a` from `test`.`t1` where `test`.`t1`.`a` = 1),<exists>(/* select#4 */ select `test`.`t4`.`d` from `test`.`t4` where trigcond(<cache>((/* select#3 */ select `test`.`t1`.`a` from `test`.`t1` where `test`.`t1`.`a` = 1)) >= `test`.`t4`.`d` or `test`.`t4`.`d` is null) having trigcond(`test`.`t4`.`d` is null))))) limit 1))
select b from t2
where exists (select c from t3
group by (select a from t1 where a = 1) >=
@@ -3105,8 +3105,10 @@ all (select d from t4));
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00
2 SUBQUERY t3 ALL NULL NULL NULL NULL 2 100.00
+4 SUBQUERY t4 ALL NULL NULL NULL NULL 2 100.00 Using where
+3 SUBQUERY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`b` AS `b` from `test`.`t2` where 1
+Note 1003 /* select#1 */ select `test`.`t2`.`b` AS `b` from `test`.`t2` where <in_optimizer>(1,exists(/* select#2 */ select `test`.`t3`.`c` from `test`.`t3` group by <not>(<expr_cache><(/* select#3 */ select `test`.`t1`.`a` from `test`.`t1` where `test`.`t1`.`a` = 1)>(<in_optimizer>((/* select#3 */ select `test`.`t1`.`a` from `test`.`t1` where `test`.`t1`.`a` = 1),<exists>(/* select#4 */ select `test`.`t4`.`d` from `test`.`t4` where trigcond(<cache>((/* select#3 */ select `test`.`t1`.`a` from `test`.`t1` where `test`.`t1`.`a` = 1)) >= `test`.`t4`.`d` or `test`.`t4`.`d` is null) having trigcond(`test`.`t4`.`d` is null))))) limit 1))
select b from t2
where exists (select c from t3
group by (select a from t1 where a = 1) <
@@ -3118,16 +3120,17 @@ explain extended select b from t2
where b in (select c from t3
group by (select a from t1 where a = 1) in (select d from t4));
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00
-1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 100.00
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where
+1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 test.t2.b 1 100.00
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 100.00
+4 SUBQUERY t4 ALL NULL NULL NULL NULL 2 100.00 Using where
+3 SUBQUERY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
Warnings:
-Note 1003 select `test`.`t2`.`b` AS `b` from `test`.`t2` semi join (`test`.`t3`) where 1
+Note 1003 /* select#1 */ select `test`.`t2`.`b` AS `b` from <materialize> (/* select#2 */ select `test`.`t3`.`c` from `test`.`t3` group by <in_optimizer>((/* select#3 */ select `test`.`t1`.`a` from `test`.`t1` where `test`.`t1`.`a` = 1),<exists>(/* select#4 */ select `test`.`t4`.`d` from `test`.`t4` where trigcond(<cache>((/* select#3 */ select `test`.`t1`.`a` from `test`.`t1` where `test`.`t1`.`a` = 1)) = `test`.`t4`.`d` or `test`.`t4`.`d` is null) having trigcond(`test`.`t4`.`d` is null)))) join `test`.`t2` where `<subquery2>`.`c` = `test`.`t2`.`b`
select b from t2
where b in (select c from t3
group by (select a from t1 where a = 1) in (select d from t4));
b
-2
explain extended select b from t2
where b >= any (select c from t3
group by (select a from t1 where a = 1) in
@@ -3135,15 +3138,15 @@ group by (select a from t1 where a = 1) in
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where
2 SUBQUERY t3 ALL NULL NULL NULL NULL 2 100.00
+4 SUBQUERY t4 ALL NULL NULL NULL NULL 2 100.00 Using where
+3 SUBQUERY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`b` AS `b` from `test`.`t2` where <nop>(<in_optimizer>(`test`.`t2`.`b`,(/* select#2 */ select min(`test`.`t3`.`c`) from `test`.`t3`) <= <cache>(`test`.`t2`.`b`)))
+Note 1003 /* select#1 */ select `test`.`t2`.`b` AS `b` from `test`.`t2` where <nop>(<in_optimizer>(`test`.`t2`.`b`,<min>(/* select#2 */ select `test`.`t3`.`c` from `test`.`t3` group by <in_optimizer>((/* select#3 */ select `test`.`t1`.`a` from `test`.`t1` where `test`.`t1`.`a` = 1),<exists>(/* select#4 */ select `test`.`t4`.`d` from `test`.`t4` where trigcond(<cache>((/* select#3 */ select `test`.`t1`.`a` from `test`.`t1` where `test`.`t1`.`a` = 1)) = `test`.`t4`.`d` or `test`.`t4`.`d` is null) having trigcond(`test`.`t4`.`d` is null)))) <= <cache>(`test`.`t2`.`b`)))
select b from t2
where b >= any (select c from t3
group by (select a from t1 where a = 1) in
(select d from t4));
b
-3
-2
explain extended select b from t2
where b <= all (select c from t3
group by (select a from t1 where a = 1) in
@@ -3151,13 +3154,16 @@ group by (select a from t1 where a = 1) in
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where
2 SUBQUERY t3 ALL NULL NULL NULL NULL 2 100.00
+4 SUBQUERY t4 ALL NULL NULL NULL NULL 2 100.00 Using where
+3 SUBQUERY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`b` AS `b` from `test`.`t2` where <not>(<in_optimizer>(`test`.`t2`.`b`,<min>(/* select#2 */ select `test`.`t3`.`c` from `test`.`t3`) < <cache>(`test`.`t2`.`b`)))
+Note 1003 /* select#1 */ select `test`.`t2`.`b` AS `b` from `test`.`t2` where <not>(<in_optimizer>(`test`.`t2`.`b`,<min>(/* select#2 */ select `test`.`t3`.`c` from `test`.`t3` group by <in_optimizer>((/* select#3 */ select `test`.`t1`.`a` from `test`.`t1` where `test`.`t1`.`a` = 1),<exists>(/* select#4 */ select `test`.`t4`.`d` from `test`.`t4` where trigcond(<cache>((/* select#3 */ select `test`.`t1`.`a` from `test`.`t1` where `test`.`t1`.`a` = 1)) = `test`.`t4`.`d` or `test`.`t4`.`d` is null) having trigcond(`test`.`t4`.`d` is null)))) < <cache>(`test`.`t2`.`b`)))
select b from t2
where b <= all (select c from t3
group by (select a from t1 where a = 1) in
(select d from t4));
b
+3
2
drop table t1,t2,t3,t4;
# End of 10.3 tests
@@ -3330,4 +3336,33 @@ a
2
DEALLOCATE PREPARE stmt;
DROP TABLE t1,t2,t3;
+#
+# MDEV-33747: Optimization of (SELECT) IN (SELECT ...) executes subquery at prepare stage
+#
+create table t1 (a int, b int);
+insert into t1 select seq, seq from seq_1_to_200;
+create table t2 as select * from t1;
+create table t3 as select * from t1;
+analyze table t1,t2,t3;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status OK
+test.t2 analyze status Engine-independent statistics collected
+test.t2 analyze status OK
+test.t3 analyze status Engine-independent statistics collected
+test.t3 analyze status OK
+select @@expensive_subquery_limit < 200 as DEFAULTS_ARE_SUITABLE;
+DEFAULTS_ARE_SUITABLE
+1
+flush status;
+explain select * from t1 where a<3 or (select max(a) from t2) in (select b from t3);
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 200 Using where
+3 SUBQUERY t3 ALL NULL NULL NULL NULL 200 Using where
+2 SUBQUERY t2 ALL NULL NULL NULL NULL 200
+# Must show 0. If this shows 200, this means subquery was executed and you have a bug:
+show status like 'Handler_read_rnd_next%';
+Variable_name Value
+Handler_read_rnd_next 0
+drop table t1,t2,t3;
# End of 10.4 tests
diff --git a/mysql-test/main/subselect4.test b/mysql-test/main/subselect4.test
index 41fa9066..854b3736 100644
--- a/mysql-test/main/subselect4.test
+++ b/mysql-test/main/subselect4.test
@@ -2670,5 +2670,20 @@ DEALLOCATE PREPARE stmt;
DROP TABLE t1,t2,t3;
+--echo #
+--echo # MDEV-33747: Optimization of (SELECT) IN (SELECT ...) executes subquery at prepare stage
+--echo #
+create table t1 (a int, b int);
+insert into t1 select seq, seq from seq_1_to_200;
+create table t2 as select * from t1;
+create table t3 as select * from t1;
+analyze table t1,t2,t3;
+select @@expensive_subquery_limit < 200 as DEFAULTS_ARE_SUITABLE;
+flush status;
+explain select * from t1 where a<3 or (select max(a) from t2) in (select b from t3);
+--echo # Must show 0. If this shows 200, this means subquery was executed and you have a bug:
+show status like 'Handler_read_rnd_next%';
+drop table t1,t2,t3;
+
--echo # End of 10.4 tests
diff --git a/mysql-test/main/subselect_elimination.result b/mysql-test/main/subselect_elimination.result
new file mode 100644
index 00000000..17400e49
--- /dev/null
+++ b/mysql-test/main/subselect_elimination.result
@@ -0,0 +1,268 @@
+#
+# MDEV-28621 group by optimization incorrectly removing subquery where
+# subject buried in a function
+#
+CREATE TABLE t1 (i int) ;
+INSERT INTO t1 VALUES (1),(2),(3);
+SELECT 1 FROM t1
+WHERE i in
+( SELECT a+1
+FROM
+(SELECT (SELECT i FROM (SELECT 1 FROM t1) dt) AS a FROM t1) dt2
+GROUP BY a
+);
+ERROR 21000: Subquery returns more than 1 row
+DROP TABLE t1;
+create table t1 (a int, b int, c int);
+insert into t1 select seq, seq, seq from seq_1_to_10;
+create table t2 as select * from t1;
+create table t20 as select * from t1;
+create table t21 as select * from t1;
+create table t3 as select * from t1;
+select a, a in
+(
+select
+(
+select max(c) from t20 where t20.a<=t2.a
+) as SUBQ1 from t2 group by SUBQ1+1
+) as COL
+from t1;
+a COL
+1 1
+2 1
+3 1
+4 1
+5 1
+6 1
+7 1
+8 1
+9 1
+10 1
+create view v2 as
+select
+a, b,
+(select max(c) from t20 where t20.a<=t2.a) as SUBQ1,
+(select max(c) from t21 where t21.a<=t2.a) as SUBQ2
+from t2;
+# test partial elimination
+explain
+select
+a,
+a in (select a from v2 where a>3 and v2.SUBQ2>=0 group by v2.SUBQ1, v2.SUBQ2)
+from t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 10
+2 MATERIALIZED t2 ALL NULL NULL NULL NULL 10 Using where; Using temporary
+5 DEPENDENT SUBQUERY t21 ALL NULL NULL NULL NULL 10 Using where
+4 DEPENDENT SUBQUERY t20 ALL NULL NULL NULL NULL 10 Using where
+# test buried subselects in group by clause
+select a, a in
+(
+select
+(
+select max(c) from t20 where t20.a<=t2.a
+)*2 as SUBQ1 from t2 group by SUBQ1+1
+) as COL
+from t1;
+a COL
+1 0
+2 1
+3 0
+4 1
+5 0
+6 1
+7 0
+8 1
+9 0
+10 1
+drop view v2;
+drop table t1, t2, t20, t21, t3;
+# Testcase from MDEV-32311
+SELECT (
+( WITH x ( x ) AS
+(SELECT ( SELECT 'x' UNION SELECT 'x' ) FROM ( SELECT ( 'x' ) ) x)
+SELECT x FROM x
+WHERE x IN ( ( SELECT 'x' AND x GROUP BY x ) )
+)
+) AS SUBQ;
+SUBQ
+x
+# MDEV-32390:
+CREATE TABLE t0 ( c43 DECIMAL ( 31 ) DEFAULT ( 45 ) ) ;
+INSERT INTO t0 VALUES ( 13 ) , ( 29 ) ;
+ALTER TABLE t0 ADD COLUMN c24 INT AFTER c43 ;
+INSERT INTO t0 VALUES ( DEFAULT , DEFAULT ) , ( DEFAULT , DEFAULT ) ;
+SELECT t1 . c22 AS c9 FROM ( SELECT ( SELECT + EXISTS ( SELECT -128 AS c29 ) <<
+LOCATE ( t0 . c43 , t0 . c24 <= t0 . c24 NOT BETWEEN 4642475734208631537 AND
+-108 , NULLIF ( 57 , -8 ) SOUNDS LIKE TRIM( TRAILING FROM 6107036197732405580 )
+) - t0 . c43 AS c57 FROM t0 LIMIT 1 ) AS c22 FROM t0 ) AS t1 HAVING TRIM( CASE
+t1 . c22 WHEN -16 THEN RAND ( ) % HEX ( t1 . c22 ) - SUBSTRING_INDEX ( t1 . c22,
+':A9SEZxtjN,fKN*zR' , 'V*vhJb}&c%Op,[T[S,j`F9NDsK;\'8 4;m"
+P,ce}1r"3ID1DN' ) >> NULLIF ( t1 . c22 , -95 ) ELSE -2 END IS TRUE
+FROM t1 . c22 >= EXISTS ( SELECT t2 . c57 AS c59 FROM ( SELECT CASE c24 WHEN
+-103 THEN 85 ELSE 22 END IS TRUE AS c57 FROM t0 ) AS t2 WHERE MOD ( 64 , 46 ) =
+CONVERT ( 73 , BINARY ) % RAND ( ) IS NOT NULL = -65 GROUP BY c57 , c22 , c22
+WINDOW w0 AS ( PARTITION BY t2 . c57 ) ) & PI ( ) ) ;
+c9
+DROP TABLE t0;
+# MDEV-32309
+SELECT
+( WITH x ( x ) AS
+(
+WITH x ( x ) AS ( SELECT 1 ) SELECT ( SELECT x ) FROM x
+)
+SELECT x FROM x WHERE x IN ( SELECT NULL GROUP BY x )
+) as col1 ;
+col1
+NULL
+# MDEV-32391
+CREATE TABLE t0 ( c15 INT , c33 INT ) engine=innodb;
+INSERT INTO t0 ( c15 ) WITH t1 AS ( SELECT SQRT ( 123 ) NOT
+REGEXP MOD ( 91 , -121 ) = ALL ( SELECT c15 AS c33 FROM t0 ) AS c49 FROM t0 )
+SELECT t1 . c49 IS UNKNOWN AS c59 FROM t1 CROSS JOIN t0 AS t2
+WHERE t1 . c49 = + EXISTS ( SELECT -5839312620871436105 AS c17 GROUP BY c49 )
+BETWEEN -109 AND CHAR_LENGTH ( 2694839150676403988 ) - - LOWER ( -13 ) ;
+DROP TABLE t0;
+# MDEV-28620
+CREATE TABLE t1 ( a int);
+INSERT INTO t1 VALUES (1),(2);
+SELECT EXISTS
+( SELECT 1 FROM t1 GROUP BY 1 IN (SELECT a FROM t1)
+ORDER BY a + (SELECT 1 FROM t1 WHERE (1,2) NOT IN (SELECT 1,0))
+) as SUBQ;
+ERROR 21000: Subquery returns more than 1 row
+DROP TABLE t1;
+# MDEV-30842 Item_subselect::get_cache_parameters and UBSAN member
+# access within null pointer
+CREATE TABLE x (x INT) ENGINE=InnoDB;
+INSERT INTO x (x) VALUES (0);
+INSERT INTO x (x) VALUES (x IN (SELECT (SELECT x FROM (SELECT x FROM
+(SELECT 0 IN (SELECT x=0 FROM (SELECT x FROM (SELECT (SELECT (SELECT (SELECT
+(SELECT 0 AS x) FROM x AS x) IN (SELECT 0 AS x) AS x) FROM x AS x) IN
+(SELECT x WHERE x=0) AS x FROM x AS x) AS x) AS x GROUP BY x) AS x FROM x) AS x)
+AS x) IN (SELECT 0 AS x) AS x FROM x));
+ERROR HY000: Table 'x' is specified twice, both as a target for 'INSERT' and as a separate source for data
+DROP TABLE x;
+# MDEV-28622: Item_subselect eliminated flag set but Item still
+# evaluated/used.
+CREATE TABLE t1 ( a int) ;
+CREATE VIEW v1 (i) AS SELECT EXISTS(SELECT 1) FROM t1;
+SELECT 1 FROM v1 WHERE i NOT IN (SELECT i = 0 FROM v1 WHERE i = -1 GROUP BY i);
+1
+DROP TABLE t1;
+DROP VIEW v1;
+CREATE TABLE t(c1 INT);
+SELECT 0
+WHERE 0 IN
+(
+SELECT 0 FROM
+(
+SELECT 0 IN
+(
+SELECT
+(
+SELECT c1 FROM t
+)
+) AS c
+FROM t
+) AS dt
+WHERE c GROUP BY c
+);
+0
+DROP TABLE t;
+create table t1 (a int, b int, c int);
+insert into t1 select seq, seq, seq from seq_1_to_10;
+create table t2 as select * from t1;
+create table t20 as select * from t1;
+create table t3 as select * from t1;
+create view v2 as
+select
+a, b, (select max(c) from t20 where t20.a<=t2.a) as SUBQ1
+from t2;
+explain
+select
+a, a in (select a from v2 where a>3 group by v2.SUBQ1)
+from t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 10
+2 MATERIALIZED t2 ALL NULL NULL NULL NULL 10 Using where; Using temporary
+4 DEPENDENT SUBQUERY t20 ALL NULL NULL NULL NULL 10 Using where
+prepare s from '
+explain
+select
+ a, a in (select a from v2 where a>3 group by v2.SUBQ1)
+from t1';
+execute s;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 10
+2 MATERIALIZED t2 ALL NULL NULL NULL NULL 10 Using where; Using temporary
+4 DEPENDENT SUBQUERY t20 ALL NULL NULL NULL NULL 10 Using where
+execute s;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 10
+2 MATERIALIZED t2 ALL NULL NULL NULL NULL 10 Using where; Using temporary
+4 DEPENDENT SUBQUERY t20 ALL NULL NULL NULL NULL 10 Using where
+execute s;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 10
+2 MATERIALIZED t2 ALL NULL NULL NULL NULL 10 Using where; Using temporary
+4 DEPENDENT SUBQUERY t20 ALL NULL NULL NULL NULL 10 Using where
+prepare s from '
+explain
+select
+ a, a in (select a from v2 where a>3 and SUBQ1+1 group by v2.SUBQ1)
+from t1';
+execute s;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 10
+2 MATERIALIZED t2 ALL NULL NULL NULL NULL 10 Using where; Using temporary
+4 DEPENDENT SUBQUERY t20 ALL NULL NULL NULL NULL 10 Using where
+execute s;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 10
+2 MATERIALIZED t2 ALL NULL NULL NULL NULL 10 Using where; Using temporary
+4 DEPENDENT SUBQUERY t20 ALL NULL NULL NULL NULL 10 Using where
+execute s;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 10
+2 MATERIALIZED t2 ALL NULL NULL NULL NULL 10 Using where; Using temporary
+4 DEPENDENT SUBQUERY t20 ALL NULL NULL NULL NULL 10 Using where
+create procedure p1()
+begin
+explain
+select
+a, a in (select a from v2 where a>3 group by v2.SUBQ1)
+from t1;
+end//
+create procedure p2()
+begin
+explain
+select
+a, a in (select a from v2 where a>3 and SUBQ1+1 group by v2.SUBQ1)
+from t1;
+end//
+call p1();
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 10
+2 MATERIALIZED t2 ALL NULL NULL NULL NULL 10 Using where; Using temporary
+4 DEPENDENT SUBQUERY t20 ALL NULL NULL NULL NULL 10 Using where
+call p1();
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 10
+2 MATERIALIZED t2 ALL NULL NULL NULL NULL 10 Using where; Using temporary
+4 DEPENDENT SUBQUERY t20 ALL NULL NULL NULL NULL 10 Using where
+call p2();
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 10
+2 MATERIALIZED t2 ALL NULL NULL NULL NULL 10 Using where; Using temporary
+4 DEPENDENT SUBQUERY t20 ALL NULL NULL NULL NULL 10 Using where
+call p2();
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 10
+2 MATERIALIZED t2 ALL NULL NULL NULL NULL 10 Using where; Using temporary
+4 DEPENDENT SUBQUERY t20 ALL NULL NULL NULL NULL 10 Using where
+drop procedure p1;
+drop procedure p2;
+drop view v2;
+drop table t1,t2,t3,t20;
+# end of 10.4 tests
diff --git a/mysql-test/main/subselect_elimination.test b/mysql-test/main/subselect_elimination.test
new file mode 100644
index 00000000..9d973477
--- /dev/null
+++ b/mysql-test/main/subselect_elimination.test
@@ -0,0 +1,242 @@
+--source include/have_innodb.inc
+--source include/have_sequence.inc
+
+--echo #
+--echo # MDEV-28621 group by optimization incorrectly removing subquery where
+--echo # subject buried in a function
+--echo #
+
+CREATE TABLE t1 (i int) ;
+INSERT INTO t1 VALUES (1),(2),(3);
+
+--error ER_SUBQUERY_NO_1_ROW
+SELECT 1 FROM t1
+WHERE i in
+( SELECT a+1
+ FROM
+ (SELECT (SELECT i FROM (SELECT 1 FROM t1) dt) AS a FROM t1) dt2
+ GROUP BY a
+);
+
+DROP TABLE t1;
+
+create table t1 (a int, b int, c int);
+insert into t1 select seq, seq, seq from seq_1_to_10;
+create table t2 as select * from t1;
+create table t20 as select * from t1;
+create table t21 as select * from t1;
+create table t3 as select * from t1;
+select a, a in
+(
+ select
+ (
+ select max(c) from t20 where t20.a<=t2.a
+ ) as SUBQ1 from t2 group by SUBQ1+1
+) as COL
+from t1;
+
+create view v2 as
+select
+ a, b,
+ (select max(c) from t20 where t20.a<=t2.a) as SUBQ1,
+ (select max(c) from t21 where t21.a<=t2.a) as SUBQ2
+from t2;
+
+--echo # test partial elimination
+
+explain
+select
+ a,
+ a in (select a from v2 where a>3 and v2.SUBQ2>=0 group by v2.SUBQ1, v2.SUBQ2)
+from t1;
+
+--echo # test buried subselects in group by clause
+
+select a, a in
+(
+ select
+ (
+ select max(c) from t20 where t20.a<=t2.a
+ )*2 as SUBQ1 from t2 group by SUBQ1+1
+) as COL
+from t1;
+
+drop view v2;
+drop table t1, t2, t20, t21, t3;
+
+--echo # Testcase from MDEV-32311
+
+# some warning duplicated using ps-protocol
+--disable_warnings
+SELECT (
+ ( WITH x ( x ) AS
+ (SELECT ( SELECT 'x' UNION SELECT 'x' ) FROM ( SELECT ( 'x' ) ) x)
+ SELECT x FROM x
+ WHERE x IN ( ( SELECT 'x' AND x GROUP BY x ) )
+ )
+) AS SUBQ;
+--enable_warnings
+
+--echo # MDEV-32390:
+
+CREATE TABLE t0 ( c43 DECIMAL ( 31 ) DEFAULT ( 45 ) ) ;
+INSERT INTO t0 VALUES ( 13 ) , ( 29 ) ;
+ALTER TABLE t0 ADD COLUMN c24 INT AFTER c43 ;
+INSERT INTO t0 VALUES ( DEFAULT , DEFAULT ) , ( DEFAULT , DEFAULT ) ;
+SELECT t1 . c22 AS c9 FROM ( SELECT ( SELECT + EXISTS ( SELECT -128 AS c29 ) <<
+LOCATE ( t0 . c43 , t0 . c24 <= t0 . c24 NOT BETWEEN 4642475734208631537 AND
+-108 , NULLIF ( 57 , -8 ) SOUNDS LIKE TRIM( TRAILING FROM 6107036197732405580 )
+) - t0 . c43 AS c57 FROM t0 LIMIT 1 ) AS c22 FROM t0 ) AS t1 HAVING TRIM( CASE
+t1 . c22 WHEN -16 THEN RAND ( ) % HEX ( t1 . c22 ) - SUBSTRING_INDEX ( t1 . c22,
+':A9SEZxtjN,fKN*zR' , 'V*vhJb}&c%Op,[T[S,j`F9NDsK;\'8 4;m"
+P,ce}1r"3ID1DN' ) >> NULLIF ( t1 . c22 , -95 ) ELSE -2 END IS TRUE
+FROM t1 . c22 >= EXISTS ( SELECT t2 . c57 AS c59 FROM ( SELECT CASE c24 WHEN
+-103 THEN 85 ELSE 22 END IS TRUE AS c57 FROM t0 ) AS t2 WHERE MOD ( 64 , 46 ) =
+CONVERT ( 73 , BINARY ) % RAND ( ) IS NOT NULL = -65 GROUP BY c57 , c22 , c22
+WINDOW w0 AS ( PARTITION BY t2 . c57 ) ) & PI ( ) ) ;
+
+DROP TABLE t0;
+
+--echo # MDEV-32309
+
+SELECT
+ ( WITH x ( x ) AS
+ (
+ WITH x ( x ) AS ( SELECT 1 ) SELECT ( SELECT x ) FROM x
+ )
+ SELECT x FROM x WHERE x IN ( SELECT NULL GROUP BY x )
+) as col1 ;
+
+--echo # MDEV-32391
+
+CREATE TABLE t0 ( c15 INT , c33 INT ) engine=innodb;
+INSERT INTO t0 ( c15 ) WITH t1 AS ( SELECT SQRT ( 123 ) NOT
+REGEXP MOD ( 91 , -121 ) = ALL ( SELECT c15 AS c33 FROM t0 ) AS c49 FROM t0 )
+SELECT t1 . c49 IS UNKNOWN AS c59 FROM t1 CROSS JOIN t0 AS t2
+WHERE t1 . c49 = + EXISTS ( SELECT -5839312620871436105 AS c17 GROUP BY c49 )
+BETWEEN -109 AND CHAR_LENGTH ( 2694839150676403988 ) - - LOWER ( -13 ) ;
+DROP TABLE t0;
+
+--echo # MDEV-28620
+CREATE TABLE t1 ( a int);
+INSERT INTO t1 VALUES (1),(2);
+
+--error ER_SUBQUERY_NO_1_ROW
+SELECT EXISTS
+( SELECT 1 FROM t1 GROUP BY 1 IN (SELECT a FROM t1)
+ ORDER BY a + (SELECT 1 FROM t1 WHERE (1,2) NOT IN (SELECT 1,0))
+) as SUBQ;
+DROP TABLE t1;
+
+--echo # MDEV-30842 Item_subselect::get_cache_parameters and UBSAN member
+--echo # access within null pointer
+
+CREATE TABLE x (x INT) ENGINE=InnoDB;
+INSERT INTO x (x) VALUES (0);
+--error ER_UPDATE_TABLE_USED
+INSERT INTO x (x) VALUES (x IN (SELECT (SELECT x FROM (SELECT x FROM
+(SELECT 0 IN (SELECT x=0 FROM (SELECT x FROM (SELECT (SELECT (SELECT (SELECT
+(SELECT 0 AS x) FROM x AS x) IN (SELECT 0 AS x) AS x) FROM x AS x) IN
+(SELECT x WHERE x=0) AS x FROM x AS x) AS x) AS x GROUP BY x) AS x FROM x) AS x)
+AS x) IN (SELECT 0 AS x) AS x FROM x));
+DROP TABLE x;
+
+--echo # MDEV-28622: Item_subselect eliminated flag set but Item still
+--echo # evaluated/used.
+
+CREATE TABLE t1 ( a int) ;
+CREATE VIEW v1 (i) AS SELECT EXISTS(SELECT 1) FROM t1;
+
+SELECT 1 FROM v1 WHERE i NOT IN (SELECT i = 0 FROM v1 WHERE i = -1 GROUP BY i);
+DROP TABLE t1;
+DROP VIEW v1;
+
+CREATE TABLE t(c1 INT);
+
+SELECT 0
+WHERE 0 IN
+(
+ SELECT 0 FROM
+ (
+ SELECT 0 IN
+ (
+ SELECT
+ (
+ SELECT c1 FROM t
+ )
+ ) AS c
+ FROM t
+ ) AS dt
+ WHERE c GROUP BY c
+);
+
+DROP TABLE t;
+
+create table t1 (a int, b int, c int);
+insert into t1 select seq, seq, seq from seq_1_to_10;
+create table t2 as select * from t1;
+create table t20 as select * from t1;
+create table t3 as select * from t1;
+
+create view v2 as
+select
+ a, b, (select max(c) from t20 where t20.a<=t2.a) as SUBQ1
+from t2;
+
+explain
+select
+ a, a in (select a from v2 where a>3 group by v2.SUBQ1)
+from t1;
+
+prepare s from '
+explain
+select
+ a, a in (select a from v2 where a>3 group by v2.SUBQ1)
+from t1';
+
+execute s;
+execute s;
+execute s;
+
+prepare s from '
+explain
+select
+ a, a in (select a from v2 where a>3 and SUBQ1+1 group by v2.SUBQ1)
+from t1';
+
+execute s;
+execute s;
+execute s;
+
+delimiter //;
+
+create procedure p1()
+begin
+explain
+select
+ a, a in (select a from v2 where a>3 group by v2.SUBQ1)
+from t1;
+end//
+
+create procedure p2()
+begin
+explain
+select
+ a, a in (select a from v2 where a>3 and SUBQ1+1 group by v2.SUBQ1)
+from t1;
+end//
+
+delimiter ;//
+
+call p1();
+call p1();
+call p2();
+call p2();
+drop procedure p1;
+drop procedure p2;
+
+
+drop view v2;
+drop table t1,t2,t3,t20;
+
+--echo # end of 10.4 tests
diff --git a/mysql-test/main/subselect_sj_mat.test b/mysql-test/main/subselect_sj_mat.test
index 00d2e95e..0222743d 100644
--- a/mysql-test/main/subselect_sj_mat.test
+++ b/mysql-test/main/subselect_sj_mat.test
@@ -523,8 +523,6 @@ where a1 in (select substring(b1,1,512) from t2_512 where b1 > '0');
# group_concat with a blob argument - depends on
# the variable group_concat_max_len, and
# convert_blob_length == max_len*collation->mbmaxlen > CONVERT_IF_BIGGER_TO_BLOB
-#Check after fix MDEV-31276
---disable_ps2_protocol
explain extended select left(a1,7), left(a2,7)
from t1_512
where a1 in (select group_concat(b1) from t2_512 group by b2);
@@ -542,7 +540,6 @@ where a1 in (select group_concat(b1) from t2_512 group by b2);
select left(a1,7), left(a2,7)
from t1_512
where a1 in (select group_concat(b1) from t2_512 group by b2);
---enable_ps2_protocol
drop table t1_512, t2_512, t3_512;
@@ -608,8 +605,6 @@ where a1 in (select substring(b1,1,1024) from t2_1024 where b1 > '0');
# group_concat with a blob argument - depends on
# the variable group_concat_max_len, and
# convert_blob_length == max_len*collation->mbmaxlen > CONVERT_IF_BIGGER_TO_BLOB
-#Check after fix MDEV-31276
---disable_ps2_protocol
explain extended select left(a1,7), left(a2,7)
from t1_1024
where a1 in (select group_concat(b1) from t2_1024 group by b2);
@@ -627,7 +622,6 @@ where a1 in (select group_concat(b1) from t2_1024 group by b2);
select left(a1,7), left(a2,7)
from t1_1024
where a1 in (select group_concat(b1) from t2_1024 group by b2);
---enable_ps2_protocol
drop table t1_1024, t2_1024, t3_1024;
@@ -693,8 +687,6 @@ where a1 in (select substring(b1,1,1025) from t2_1025 where b1 > '0');
# group_concat with a blob argument - depends on
# the variable group_concat_max_len, and
# convert_blob_length == max_len*collation->mbmaxlen > CONVERT_IF_BIGGER_TO_BLOB
-#Check after fix MDEV-31276
---disable_ps2_protocol
explain extended select left(a1,7), left(a2,7)
from t1_1025
where a1 in (select group_concat(b1) from t2_1025 group by b2);
@@ -712,7 +704,6 @@ where a1 in (select group_concat(b1) from t2_1025 group by b2);
select left(a1,7), left(a2,7)
from t1_1025
where a1 in (select group_concat(b1) from t2_1025 group by b2);
---enable_ps2_protocol
drop table t1_1025, t2_1025, t3_1025;
diff --git a/mysql-test/main/system_mysql_db_fix50030.result b/mysql-test/main/system_mysql_db_fix50030.result
index 644d2b8a..10607be8 100644
--- a/mysql-test/main/system_mysql_db_fix50030.result
+++ b/mysql-test/main/system_mysql_db_fix50030.result
@@ -151,7 +151,7 @@ columns_priv CREATE TABLE `columns_priv` (
show create table procs_priv;
Table Create Table
procs_priv CREATE TABLE `procs_priv` (
- `Host` char(60) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
`User` char(128) NOT NULL DEFAULT '',
`Routine_name` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
diff --git a/mysql-test/main/system_mysql_db_fix50117.result b/mysql-test/main/system_mysql_db_fix50117.result
index 0a7cf2a9..391c4e5b 100644
--- a/mysql-test/main/system_mysql_db_fix50117.result
+++ b/mysql-test/main/system_mysql_db_fix50117.result
@@ -131,7 +131,7 @@ columns_priv CREATE TABLE `columns_priv` (
show create table procs_priv;
Table Create Table
procs_priv CREATE TABLE `procs_priv` (
- `Host` char(60) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
`User` char(128) NOT NULL DEFAULT '',
`Routine_name` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
diff --git a/mysql-test/main/system_mysql_db_fix50568.result b/mysql-test/main/system_mysql_db_fix50568.result
index 0598f0a5..8f3a1ff1 100644
--- a/mysql-test/main/system_mysql_db_fix50568.result
+++ b/mysql-test/main/system_mysql_db_fix50568.result
@@ -152,7 +152,7 @@ columns_priv CREATE TABLE `columns_priv` (
show create table procs_priv;
Table Create Table
procs_priv CREATE TABLE `procs_priv` (
- `Host` char(60) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
`User` char(128) NOT NULL DEFAULT '',
`Routine_name` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
diff --git a/mysql-test/main/table_value_constr.result b/mysql-test/main/table_value_constr.result
index 1ed6953b..46bea606 100644
--- a/mysql-test/main/table_value_constr.result
+++ b/mysql-test/main/table_value_constr.result
@@ -2621,9 +2621,9 @@ ERROR HY000: 'ignore' is not allowed in this context
VALUES (DEFAULT);
ERROR HY000: 'default' is not allowed in this context
EXECUTE IMMEDIATE 'VALUES (?)' USING IGNORE;
-ERROR HY000: 'ignore' is not allowed in this context
+ERROR HY000: Default/ignore value is not supported for such parameter usage
EXECUTE IMMEDIATE 'VALUES (?)' USING DEFAULT;
-ERROR HY000: 'default' is not allowed in this context
+ERROR HY000: Default/ignore value is not supported for such parameter usage
#
# MDEV-24675: TVC using subqueries
#
diff --git a/mysql-test/main/table_value_constr.test b/mysql-test/main/table_value_constr.test
index bf660bb9..6fee71a5 100644
--- a/mysql-test/main/table_value_constr.test
+++ b/mysql-test/main/table_value_constr.test
@@ -1358,9 +1358,9 @@ DELIMITER ;$$
VALUES (IGNORE);
--error ER_NOT_ALLOWED_IN_THIS_CONTEXT
VALUES (DEFAULT);
---error ER_NOT_ALLOWED_IN_THIS_CONTEXT
+--error ER_INVALID_DEFAULT_PARAM
EXECUTE IMMEDIATE 'VALUES (?)' USING IGNORE;
---error ER_NOT_ALLOWED_IN_THIS_CONTEXT
+--error ER_INVALID_DEFAULT_PARAM
EXECUTE IMMEDIATE 'VALUES (?)' USING DEFAULT;
--echo #
diff --git a/mysql-test/main/temp_table.result b/mysql-test/main/temp_table.result
index 23052e03..61b78f96 100644
--- a/mysql-test/main/temp_table.result
+++ b/mysql-test/main/temp_table.result
@@ -614,6 +614,55 @@ Tables_in_test
# in 11.2 and above here should be listed above used temporary tables
DROP TEMPORARY TABLE t1, t2;
#
+# MDEV-33218: Assertion `active_arena->is_stmt_prepare_or_first_stmt_execute() || active_arena->state == Query_arena::STMT_SP_QUERY_ARGUMENTS' failed. in st_select_lex::fix_prepare_information
+#
+CREATE VIEW v1 AS SELECT 5;
+CREATE PROCEDURE sp() SELECT * FROM v1;
+CREATE TEMPORARY TABLE v1 as SELECT 7;
+# sp() accesses the temporary table v1 that hides the view with the same name
+# Therefore expected output is the row (7)
+CALL sp();
+7
+7
+DROP TEMPORARY TABLE v1;
+# After the temporary table v1 has been dropped the next invocation of sp()
+# accesses the view v1. So, expected output is the row (5)
+CALL sp();
+5
+5
+# Clean up
+DROP VIEW v1;
+DROP PROCEDURE sp;
+# Another use case is when a temporary table hides a view is dropped
+# inside a stored routine being called.
+CREATE VIEW t1 AS SELECT 1;
+CREATE PROCEDURE p1()
+BEGIN
+DROP TEMPORARY TABLE t1;
+END
+|
+CREATE FUNCTION f1() RETURNS INT
+BEGIN
+CALL p1();
+RETURN 1;
+END
+|
+CREATE TEMPORARY TABLE t1 AS SELECT 1 AS a;
+PREPARE stmt FROM 'SELECT f1()';
+EXECUTE stmt;
+f1()
+1
+# The temporary table t1 has been dropped on first
+# execution of the prepared statement 'stmt',
+# next time this statement is run it results in issuing
+# the error ER_BAD_TABLE_ERROR
+EXECUTE stmt;
+ERROR 42S02: Unknown table 'test.t1'
+# Clean up
+DROP VIEW t1;
+DROP FUNCTION f1;
+DROP PROCEDURE p1;
+#
# End of 10.4 tests
#
create function f1() returns int
diff --git a/mysql-test/main/temp_table.test b/mysql-test/main/temp_table.test
index 11a66743..529ce4a6 100644
--- a/mysql-test/main/temp_table.test
+++ b/mysql-test/main/temp_table.test
@@ -670,6 +670,60 @@ SHOW TABLES;
DROP TEMPORARY TABLE t1, t2;
--echo #
+--echo # MDEV-33218: Assertion `active_arena->is_stmt_prepare_or_first_stmt_execute() || active_arena->state == Query_arena::STMT_SP_QUERY_ARGUMENTS' failed. in st_select_lex::fix_prepare_information
+--echo #
+CREATE VIEW v1 AS SELECT 5;
+CREATE PROCEDURE sp() SELECT * FROM v1;
+CREATE TEMPORARY TABLE v1 as SELECT 7;
+--echo # sp() accesses the temporary table v1 that hides the view with the same name
+--echo # Therefore expected output is the row (7)
+CALL sp();
+DROP TEMPORARY TABLE v1;
+--echo # After the temporary table v1 has been dropped the next invocation of sp()
+--echo # accesses the view v1. So, expected output is the row (5)
+CALL sp();
+
+--echo # Clean up
+DROP VIEW v1;
+DROP PROCEDURE sp;
+
+--echo # Another use case is when a temporary table hides a view is dropped
+--echo # inside a stored routine being called.
+
+CREATE VIEW t1 AS SELECT 1;
+
+--delimiter |
+CREATE PROCEDURE p1()
+BEGIN
+ DROP TEMPORARY TABLE t1;
+END
+|
+
+CREATE FUNCTION f1() RETURNS INT
+BEGIN
+ CALL p1();
+ RETURN 1;
+END
+|
+
+--delimiter ;
+
+CREATE TEMPORARY TABLE t1 AS SELECT 1 AS a;
+PREPARE stmt FROM 'SELECT f1()';
+EXECUTE stmt;
+--echo # The temporary table t1 has been dropped on first
+--echo # execution of the prepared statement 'stmt',
+--echo # next time this statement is run it results in issuing
+--echo # the error ER_BAD_TABLE_ERROR
+--error ER_BAD_TABLE_ERROR
+EXECUTE stmt;
+
+--echo # Clean up
+DROP VIEW t1;
+DROP FUNCTION f1;
+DROP PROCEDURE p1;
+
+--echo #
--echo # End of 10.4 tests
--echo #
diff --git a/mysql-test/main/trigger.result b/mysql-test/main/trigger.result
index 410c5a53..c824af66 100644
--- a/mysql-test/main/trigger.result
+++ b/mysql-test/main/trigger.result
@@ -1,9 +1,3 @@
-drop table if exists t1, t2, t3, t4;
-drop view if exists v1;
-drop database if exists mysqltest;
-drop function if exists f1;
-drop function if exists f2;
-drop procedure if exists p1;
connect addconroot1, localhost, root,,;
connect addconroot2, localhost, root,,;
connect addconwithoutdb, localhost, root,,*NO-ONE*;
diff --git a/mysql-test/main/trigger.test b/mysql-test/main/trigger.test
index 466e9b8f..f54a09bf 100644
--- a/mysql-test/main/trigger.test
+++ b/mysql-test/main/trigger.test
@@ -7,15 +7,6 @@
# Basic triggers test
#
---disable_warnings
-drop table if exists t1, t2, t3, t4;
-drop view if exists v1;
-drop database if exists mysqltest;
-drop function if exists f1;
-drop function if exists f2;
-drop procedure if exists p1;
---enable_warnings
-
# Create additional connections used through test
connect (addconroot1, localhost, root,,);
connect (addconroot2, localhost, root,,);
diff --git a/mysql-test/main/trigger_wl3253.result b/mysql-test/main/trigger_wl3253.result
index ed08b336..e501b264 100644
--- a/mysql-test/main/trigger_wl3253.result
+++ b/mysql-test/main/trigger_wl3253.result
@@ -310,6 +310,7 @@ CREATE TABLE t1 (a INT);
CREATE TRIGGER tr1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1;
CREATE TRIGGER tr2_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a:=2;
CREATE TRIGGER tr1_bu BEFORE UPDATE ON t1 FOR EACH ROW SET @a:=3;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
@@ -372,6 +373,7 @@ CREATE TRIGGER tr2_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a:=2;
CREATE TRIGGER tr0_bi BEFORE INSERT ON t1 FOR EACH ROW PRECEDES tr1_bi SET @a:=0;
CREATE TRIGGER tr1_1_bi BEFORE INSERT ON t1 FOR EACH ROW FOLLOWS tr1_bi SET @a:=0;
# Expected order of triggers in the dump is: tr0_bi, tr1_bi, tr1_1_bi, tr2_i.
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
diff --git a/mysql-test/main/type_decimal.result b/mysql-test/main/type_decimal.result
index b2853f18..e219124a 100644
--- a/mysql-test/main/type_decimal.result
+++ b/mysql-test/main/type_decimal.result
@@ -1323,3 +1323,176 @@ SET sql_mode=DEFAULT;
#
# End of 10.4 tests
#
+#
+# Start of 10.11 tests
+#
+#
+# MDEV-33442 REPAIR TABLE corrupts UUIDs
+#
+CREATE PROCEDURE show_table()
+BEGIN
+SHOW CREATE TABLE t1;
+SELECT VERSION FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test';
+SELECT * FROM t1 ORDER BY a;
+END;
+$$
+# Upgrade using REPAIR
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` decimal(10,2)/*old*/ DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+VERSION
+9
+a
+123.45
+123.46
+123.47
+CHECK TABLE t1 FOR UPGRADE;
+Table Op Msg_type Msg_text
+test.t1 check error Upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it!
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` decimal(10,2)/*old*/ DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+VERSION
+9
+a
+123.45
+123.46
+123.47
+CHECK TABLE t1 FOR UPGRADE;
+Table Op Msg_type Msg_text
+test.t1 check error Upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it!
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` decimal(10,2)/*old*/ DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+VERSION
+9
+a
+123.45
+123.46
+123.47
+REPAIR TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+# Expect old decimal, as it does not implicitly upgrade to new decimal
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` decimal(10,2)/*old*/ DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+VERSION
+10
+a
+123.45
+123.46
+123.47
+CHECK TABLE t1 FOR UPGRADE;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` decimal(10,2)/*old*/ DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+VERSION
+10
+a
+123.45
+123.46
+123.47
+DROP TABLE t1;
+# Upgrade using ALTER, adding a table COMMENT
+# Upgrade a 10.11.4 table using ALTER, adding a table COMMENT
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` decimal(10,2)/*old*/ DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+VERSION
+9
+a
+123.45
+123.46
+123.47
+# ALTER..INPLACE should fail - the FRM file is too old and needs upgrade
+ALTER IGNORE TABLE t1 ALGORITHM=INPLACE, COMMENT 'test10';
+ERROR 0A000: ALGORITHM=INPLACE is not supported for this operation. Try ALGORITHM=COPY
+ALTER IGNORE TABLE t1 COMMENT 'test11';
+# Expect old decimal, as it does not implicitly upgrade to new decimal
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` decimal(10,2)/*old*/ DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci COMMENT='test11'
+VERSION
+10
+a
+123.45
+123.46
+123.47
+# Now ALTER..INPLACE should work
+ALTER IGNORE TABLE t1 ALGORITHM=INPLACE, COMMENT 'test12';
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` decimal(10,2)/*old*/ DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci COMMENT='test12'
+VERSION
+10
+a
+123.45
+123.46
+123.47
+DROP TABLE t1;
+# Upgrade using ALTER, adding a column DEFAULT
+# Upgrade a 10.11.4 table using ALTER, adding a table COMMENT
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` decimal(10,2)/*old*/ DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+VERSION
+9
+a
+123.45
+123.46
+123.47
+# ALTER..INPLACE should fail - the FRM file is too old and needs upgrade
+ALTER IGNORE TABLE t1 ALGORITHM=INPLACE, MODIFY a DECIMAL(10,2) DEFAULT 10;
+ERROR 0A000: ALGORITHM=INPLACE is not supported for this operation. Try ALGORITHM=COPY
+ALTER IGNORE TABLE t1 MODIFY a DECIMAL(10,2) DEFAULT 11;
+# Expect new decimal, as we explicitly redefined the data type
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` decimal(10,2) DEFAULT 11.00
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+VERSION
+10
+a
+123.45
+123.46
+123.47
+# Now ALTER..INPLACE should work
+ALTER IGNORE TABLE t1 ALGORITHM=INPLACE, MODIFY a DECIMAL(10,2) DEFAULT 12;
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` decimal(10,2) DEFAULT 12.00
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+VERSION
+10
+a
+123.45
+123.46
+123.47
+DROP TABLE t1;
+DROP PROCEDURE show_table;
+#
+# End of 10.11 tests
+#
diff --git a/mysql-test/main/type_decimal.test b/mysql-test/main/type_decimal.test
index 9e294410..5f02d16e 100644
--- a/mysql-test/main/type_decimal.test
+++ b/mysql-test/main/type_decimal.test
@@ -826,3 +826,93 @@ SET sql_mode=DEFAULT;
--echo #
--echo # End of 10.4 tests
--echo #
+
+--echo #
+--echo # Start of 10.11 tests
+--echo #
+
+--echo #
+--echo # MDEV-33442 REPAIR TABLE corrupts UUIDs
+--echo #
+
+DELIMITER $$;
+CREATE PROCEDURE show_table()
+BEGIN
+ SHOW CREATE TABLE t1;
+ SELECT VERSION FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test';
+ SELECT * FROM t1 ORDER BY a;
+END;
+$$
+DELIMITER ;$$
+
+--echo # Upgrade using REPAIR
+
+--copy_file std_data/old_decimal/t1dec102.frm $MYSQLD_DATADIR/test/t1.frm
+--copy_file std_data/old_decimal/t1dec102.MYD $MYSQLD_DATADIR/test/t1.MYD
+--copy_file std_data/old_decimal/t1dec102.MYI $MYSQLD_DATADIR/test/t1.MYI
+CALL show_table;
+
+CHECK TABLE t1 FOR UPGRADE;
+CALL show_table;
+
+CHECK TABLE t1 FOR UPGRADE;
+CALL show_table;
+
+REPAIR TABLE t1;
+--echo # Expect old decimal, as it does not implicitly upgrade to new decimal
+CALL show_table;
+
+CHECK TABLE t1 FOR UPGRADE;
+CALL show_table;
+DROP TABLE t1;
+
+
+--echo # Upgrade using ALTER, adding a table COMMENT
+
+--echo # Upgrade a 10.11.4 table using ALTER, adding a table COMMENT
+--copy_file std_data/old_decimal/t1dec102.frm $MYSQLD_DATADIR/test/t1.frm
+--copy_file std_data/old_decimal/t1dec102.MYD $MYSQLD_DATADIR/test/t1.MYD
+--copy_file std_data/old_decimal/t1dec102.MYI $MYSQLD_DATADIR/test/t1.MYI
+CALL show_table;
+
+--echo # ALTER..INPLACE should fail - the FRM file is too old and needs upgrade
+--error ER_ALTER_OPERATION_NOT_SUPPORTED
+ALTER IGNORE TABLE t1 ALGORITHM=INPLACE, COMMENT 'test10';
+ALTER IGNORE TABLE t1 COMMENT 'test11';
+-- echo # Expect old decimal, as it does not implicitly upgrade to new decimal
+CALL show_table;
+
+--echo # Now ALTER..INPLACE should work
+ALTER IGNORE TABLE t1 ALGORITHM=INPLACE, COMMENT 'test12';
+CALL show_table;
+
+DROP TABLE t1;
+
+
+--echo # Upgrade using ALTER, adding a column DEFAULT
+
+--echo # Upgrade a 10.11.4 table using ALTER, adding a table COMMENT
+--copy_file std_data/old_decimal/t1dec102.frm $MYSQLD_DATADIR/test/t1.frm
+--copy_file std_data/old_decimal/t1dec102.MYD $MYSQLD_DATADIR/test/t1.MYD
+--copy_file std_data/old_decimal/t1dec102.MYI $MYSQLD_DATADIR/test/t1.MYI
+CALL show_table;
+
+--echo # ALTER..INPLACE should fail - the FRM file is too old and needs upgrade
+--error ER_ALTER_OPERATION_NOT_SUPPORTED
+ALTER IGNORE TABLE t1 ALGORITHM=INPLACE, MODIFY a DECIMAL(10,2) DEFAULT 10;
+ALTER IGNORE TABLE t1 MODIFY a DECIMAL(10,2) DEFAULT 11;
+--echo # Expect new decimal, as we explicitly redefined the data type
+CALL show_table;
+
+--echo # Now ALTER..INPLACE should work
+ALTER IGNORE TABLE t1 ALGORITHM=INPLACE, MODIFY a DECIMAL(10,2) DEFAULT 12;
+CALL show_table;
+
+DROP TABLE t1;
+
+DROP PROCEDURE show_table;
+
+
+--echo #
+--echo # End of 10.11 tests
+--echo #
diff --git a/mysql-test/main/type_json.result b/mysql-test/main/type_json.result
index 431a7f13..91686704 100644
--- a/mysql-test/main/type_json.result
+++ b/mysql-test/main/type_json.result
@@ -155,7 +155,7 @@ DROP TABLE t1;
#
SELECT json_object('a', (SELECT json_objectagg(b, c) FROM (SELECT 'b','c') d)) AS j FROM DUAL;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def j 250 (format=json) 9437283 16 Y 0 39 33
+def j 250 (format=json) 9437310 16 Y 0 39 33
j
{"a": {"b":"c"}}
#
diff --git a/mysql-test/main/type_timestamp.result b/mysql-test/main/type_timestamp.result
index 243d223c..5ac7cd64 100644
--- a/mysql-test/main/type_timestamp.result
+++ b/mysql-test/main/type_timestamp.result
@@ -1368,6 +1368,122 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
#
+# MDEV-34069 Zero datetime reinterprets as '1970-01-01 00:00:00' on field_datetime=field_timestamp
+#
+SET sql_mode='';
+SET time_zone='+00:00';
+CREATE TABLE t1 (a TIMESTAMP);
+INSERT INTO t1 VALUES ('0000-00-00 00:00:00');
+SELECT * FROM t1;
+a
+0000-00-00 00:00:00
+CREATE TABLE t2 (a DATETIME);
+INSERT INTO t2 SELECT a FROM t1;
+SELECT * FROM t2;
+a
+0000-00-00 00:00:00
+SET sql_mode='NO_ZERO_DATE,NO_ZERO_IN_DATE';
+INSERT INTO t2 VALUES ('0000-00-00 00:00:00');
+Warnings:
+Warning 1264 Out of range value for column 'a' at row 1
+INSERT INTO t2 SELECT a FROM t1;
+Warnings:
+Warning 1264 Out of range value for column 'a' at row 1
+SELECT * FROM t2;
+a
+0000-00-00 00:00:00
+0000-00-00 00:00:00
+0000-00-00 00:00:00
+DROP TABLE t2, t1;
+SET time_zone=DEFAULT;
+SET sql_mode=DEFAULT;
+#
+# MDEV-34061 unix_timestamp(coalesce(timestamp_column)) returns NULL on '1970-01-01 00:00:00.000001'
+#
+SET time_zone='+00:00';
+CREATE TABLE t1 (a TIMESTAMP(6) NULL);
+INSERT INTO t1 VALUES ('1970-01-01 00:00:00.000001');
+SELECT unix_timestamp(a) AS c1, unix_timestamp(coalesce(a)) AS c2 FROM t1;
+c1 c2
+0.000001 0.000001
+DROP TABLE t1;
+SET time_zone=DEFAULT;
+#
+# MDEV-34088 The TIMESTAMP value of '1970-01-01 00:00:00' can be indirectly inserted in strict mode
+#
+SET sql_mode='STRICT_TRANS_TABLES,STRICT_ALL_TABLES';
+SET time_zone='+00:00';
+CREATE TABLE t1 (a TIMESTAMP);
+INSERT INTO t1 VALUES ('1970-01-01 00:00:00');
+ERROR 22007: Incorrect datetime value: '1970-01-01 00:00:00' for column `test`.`t1`.`a` at row 1
+INSERT INTO t1 VALUES ('1970-01-01 00:00:00.1');
+ERROR 22007: Incorrect datetime value: '1970-01-01 00:00:00.1' for column `test`.`t1`.`a` at row 1
+CREATE TABLE t2 (a TIMESTAMP(1)) ENGINE=MyISAM;
+INSERT INTO t2 VALUES ('1970-01-01 00:00:00.1');
+INSERT INTO t1 SELECT a FROM t2;
+ERROR 22007: Incorrect datetime value: '1970-01-01 00:00:00 +00:00' for column `test`.`t1`.`a` at row 1
+DROP TABLE t2;
+DROP TABLE t1;
+SET sql_mode=DEFAULT;
+SET sql_mode='STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE';
+SET time_zone='+00:00';
+CREATE TABLE t1 (a TIMESTAMP);
+INSERT INTO t1 VALUES ('1970-01-01 00:00:00');
+ERROR 22007: Incorrect datetime value: '1970-01-01 00:00:00' for column `test`.`t1`.`a` at row 1
+INSERT INTO t1 VALUES ('1970-01-01 00:00:00.1');
+ERROR 22007: Incorrect datetime value: '1970-01-01 00:00:00.1' for column `test`.`t1`.`a` at row 1
+CREATE TABLE t2 (a TIMESTAMP(1)) ENGINE=MyISAM;
+INSERT INTO t2 VALUES ('1970-01-01 00:00:00.1');
+INSERT INTO t1 SELECT a FROM t2;
+ERROR 22007: Incorrect datetime value: '1970-01-01 00:00:00 +00:00' for column `test`.`t1`.`a` at row 1
+DROP TABLE t2;
+DROP TABLE t1;
+SET sql_mode=DEFAULT;
+SET sql_mode='';
+SET time_zone='+00:00';
+CREATE TABLE t1 (a TIMESTAMP);
+INSERT INTO t1 VALUES ('1970-01-01 00:00:00');
+Warnings:
+Warning 1264 Out of range value for column 'a' at row 1
+INSERT INTO t1 VALUES ('1970-01-01 00:00:00.1');
+Warnings:
+Warning 1264 Out of range value for column 'a' at row 1
+CREATE TABLE t2 (a TIMESTAMP(1)) ENGINE=MyISAM;
+INSERT INTO t2 VALUES ('1970-01-01 00:00:00.1');
+INSERT INTO t1 SELECT a FROM t2;
+Warnings:
+Warning 1264 Out of range value for column 'a' at row 1
+DROP TABLE t2;
+SELECT * FROM t1;
+a
+0000-00-00 00:00:00
+0000-00-00 00:00:00
+0000-00-00 00:00:00
+DROP TABLE t1;
+SET sql_mode=DEFAULT;
+SET sql_mode='NO_ZERO_DATE,NO_ZERO_IN_DATE';
+SET time_zone='+00:00';
+CREATE TABLE t1 (a TIMESTAMP);
+INSERT INTO t1 VALUES ('1970-01-01 00:00:00');
+Warnings:
+Warning 1264 Out of range value for column 'a' at row 1
+INSERT INTO t1 VALUES ('1970-01-01 00:00:00.1');
+Warnings:
+Warning 1264 Out of range value for column 'a' at row 1
+CREATE TABLE t2 (a TIMESTAMP(1)) ENGINE=MyISAM;
+INSERT INTO t2 VALUES ('1970-01-01 00:00:00.1');
+INSERT INTO t1 SELECT a FROM t2;
+Warnings:
+Warning 1264 Out of range value for column 'a' at row 1
+DROP TABLE t2;
+SELECT * FROM t1;
+a
+0000-00-00 00:00:00
+0000-00-00 00:00:00
+0000-00-00 00:00:00
+DROP TABLE t1;
+SET sql_mode=DEFAULT;
+#
# End of 10.5 tests
#
#
diff --git a/mysql-test/main/type_timestamp.test b/mysql-test/main/type_timestamp.test
index b3dfa192..b8568291 100644
--- a/mysql-test/main/type_timestamp.test
+++ b/mysql-test/main/type_timestamp.test
@@ -921,6 +921,98 @@ show create table t1;
drop table t1;
--echo #
+--echo # MDEV-34069 Zero datetime reinterprets as '1970-01-01 00:00:00' on field_datetime=field_timestamp
+--echo #
+
+SET sql_mode='';
+SET time_zone='+00:00';
+CREATE TABLE t1 (a TIMESTAMP);
+INSERT INTO t1 VALUES ('0000-00-00 00:00:00');
+SELECT * FROM t1;
+CREATE TABLE t2 (a DATETIME);
+INSERT INTO t2 SELECT a FROM t1;
+SELECT * FROM t2;
+SET sql_mode='NO_ZERO_DATE,NO_ZERO_IN_DATE';
+INSERT INTO t2 VALUES ('0000-00-00 00:00:00');
+INSERT INTO t2 SELECT a FROM t1;
+SELECT * FROM t2;
+DROP TABLE t2, t1;
+SET time_zone=DEFAULT;
+SET sql_mode=DEFAULT;
+
+--echo #
+--echo # MDEV-34061 unix_timestamp(coalesce(timestamp_column)) returns NULL on '1970-01-01 00:00:00.000001'
+--echo #
+
+SET time_zone='+00:00';
+CREATE TABLE t1 (a TIMESTAMP(6) NULL);
+INSERT INTO t1 VALUES ('1970-01-01 00:00:00.000001');
+SELECT unix_timestamp(a) AS c1, unix_timestamp(coalesce(a)) AS c2 FROM t1;
+DROP TABLE t1;
+SET time_zone=DEFAULT;
+
+--echo #
+--echo # MDEV-34088 The TIMESTAMP value of '1970-01-01 00:00:00' can be indirectly inserted in strict mode
+--echo #
+
+SET sql_mode='STRICT_TRANS_TABLES,STRICT_ALL_TABLES';
+SET time_zone='+00:00';
+CREATE TABLE t1 (a TIMESTAMP);
+--error ER_TRUNCATED_WRONG_VALUE
+INSERT INTO t1 VALUES ('1970-01-01 00:00:00');
+--error ER_TRUNCATED_WRONG_VALUE
+INSERT INTO t1 VALUES ('1970-01-01 00:00:00.1');
+CREATE TABLE t2 (a TIMESTAMP(1)) ENGINE=MyISAM;
+INSERT INTO t2 VALUES ('1970-01-01 00:00:00.1');
+--error ER_TRUNCATED_WRONG_VALUE
+INSERT INTO t1 SELECT a FROM t2;
+DROP TABLE t2;
+DROP TABLE t1;
+SET sql_mode=DEFAULT;
+
+
+SET sql_mode='STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE';
+SET time_zone='+00:00';
+CREATE TABLE t1 (a TIMESTAMP);
+--error ER_TRUNCATED_WRONG_VALUE
+INSERT INTO t1 VALUES ('1970-01-01 00:00:00');
+--error ER_TRUNCATED_WRONG_VALUE
+INSERT INTO t1 VALUES ('1970-01-01 00:00:00.1');
+CREATE TABLE t2 (a TIMESTAMP(1)) ENGINE=MyISAM;
+INSERT INTO t2 VALUES ('1970-01-01 00:00:00.1');
+--error ER_TRUNCATED_WRONG_VALUE
+INSERT INTO t1 SELECT a FROM t2;
+DROP TABLE t2;
+DROP TABLE t1;
+SET sql_mode=DEFAULT;
+
+SET sql_mode='';
+SET time_zone='+00:00';
+CREATE TABLE t1 (a TIMESTAMP);
+INSERT INTO t1 VALUES ('1970-01-01 00:00:00');
+INSERT INTO t1 VALUES ('1970-01-01 00:00:00.1');
+CREATE TABLE t2 (a TIMESTAMP(1)) ENGINE=MyISAM;
+INSERT INTO t2 VALUES ('1970-01-01 00:00:00.1');
+INSERT INTO t1 SELECT a FROM t2;
+DROP TABLE t2;
+SELECT * FROM t1;
+DROP TABLE t1;
+SET sql_mode=DEFAULT;
+
+SET sql_mode='NO_ZERO_DATE,NO_ZERO_IN_DATE';
+SET time_zone='+00:00';
+CREATE TABLE t1 (a TIMESTAMP);
+INSERT INTO t1 VALUES ('1970-01-01 00:00:00');
+INSERT INTO t1 VALUES ('1970-01-01 00:00:00.1');
+CREATE TABLE t2 (a TIMESTAMP(1)) ENGINE=MyISAM;
+INSERT INTO t2 VALUES ('1970-01-01 00:00:00.1');
+INSERT INTO t1 SELECT a FROM t2;
+DROP TABLE t2;
+SELECT * FROM t1;
+DROP TABLE t1;
+SET sql_mode=DEFAULT;
+
+--echo #
--echo # End of 10.5 tests
--echo #
diff --git a/mysql-test/main/type_varchar_mysql41.result b/mysql-test/main/type_varchar_mysql41.result
index cc7f663d..eb8bafe0 100644
--- a/mysql-test/main/type_varchar_mysql41.result
+++ b/mysql-test/main/type_varchar_mysql41.result
@@ -111,3 +111,152 @@ t2 CREATE TABLE `t2` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1old;
DROP PROCEDURE p1;
+#
+# Start of 10.11 tests
+#
+#
+# MDEV-33442 REPAIR TABLE corrupts UUIDs
+#
+CREATE PROCEDURE show_table()
+BEGIN
+SHOW CREATE TABLE t1;
+SELECT VERSION FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test';
+SELECT * FROM t1 ORDER BY a,b;
+END;
+$$
+# Upgrade using REPAIR
+TRUNCATE TABLE t1;
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varbinary(255)/*old*/ DEFAULT NULL,
+ `b` varchar(255)/*old*/ DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+VERSION
+9
+a b
+CHECK TABLE t1 FOR UPGRADE;
+Table Op Msg_type Msg_text
+test.t1 check error Upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it!
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varbinary(255)/*old*/ DEFAULT NULL,
+ `b` varchar(255)/*old*/ DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+VERSION
+9
+a b
+CHECK TABLE t1 FOR UPGRADE;
+Table Op Msg_type Msg_text
+test.t1 check error Upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it!
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varbinary(255)/*old*/ DEFAULT NULL,
+ `b` varchar(255)/*old*/ DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+VERSION
+9
+a b
+REPAIR TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varbinary(255) DEFAULT NULL,
+ `b` varchar(255) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+VERSION
+10
+a b
+CHECK TABLE t1 FOR UPGRADE;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varbinary(255) DEFAULT NULL,
+ `b` varchar(255) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+VERSION
+10
+a b
+DROP TABLE t1;
+# Upgrade using ALTER, adding a table COMMENT
+TRUNCATE TABLE t1;
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varbinary(255)/*old*/ DEFAULT NULL,
+ `b` varchar(255)/*old*/ DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+VERSION
+9
+a b
+# ALTER..INPLACE should fail - the old columns need upgrade
+ALTER IGNORE TABLE t1 ALGORITHM=INPLACE, COMMENT 'test10';
+ERROR 0A000: ALGORITHM=INPLACE is not supported for this operation. Try ALGORITHM=COPY
+ALTER IGNORE TABLE t1 COMMENT 'test11';
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varbinary(255) DEFAULT NULL,
+ `b` varchar(255) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci COMMENT='test11'
+VERSION
+10
+a b
+# Now ALTER..INPLACE should work
+ALTER IGNORE TABLE t1 ALGORITHM=INPLACE, COMMENT 'test12';
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varbinary(255) DEFAULT NULL,
+ `b` varchar(255) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci COMMENT='test12'
+VERSION
+10
+a b
+DROP TABLE t1;
+# Upgrade using ALTER, adding a column DEFAULT
+TRUNCATE TABLE t1;
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varbinary(255)/*old*/ DEFAULT NULL,
+ `b` varchar(255)/*old*/ DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+VERSION
+9
+a b
+# ALTER..INPLACE should fail - the old columns need upgrade
+ALTER IGNORE TABLE t1 ALGORITHM=INPLACE, MODIFY a VARBINARY(255) DEFAULT 'a10';
+ERROR 0A000: ALGORITHM=INPLACE is not supported for this operation. Try ALGORITHM=COPY
+ALTER IGNORE TABLE t1 MODIFY a VARBINARY(255) DEFAULT 'a11';
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varbinary(255) DEFAULT 'a11',
+ `b` varchar(255) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+VERSION
+10
+a b
+# Now ALTER..INPLACE should work
+ALTER IGNORE TABLE t1 MODIFY a VARBINARY(255) DEFAULT 'a12';
+CALL show_table;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varbinary(255) DEFAULT 'a12',
+ `b` varchar(255) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+VERSION
+10
+a b
+DROP TABLE t1;
+DROP PROCEDURE show_table;
+#
+# End of 10.11 tests
+#
diff --git a/mysql-test/main/type_varchar_mysql41.test b/mysql-test/main/type_varchar_mysql41.test
index 5624e9ed..c963d3a3 100644
--- a/mysql-test/main/type_varchar_mysql41.test
+++ b/mysql-test/main/type_varchar_mysql41.test
@@ -57,3 +57,88 @@ CALL p1('a');
DROP TABLE t1old;
DROP PROCEDURE p1;
+
+--echo #
+--echo # Start of 10.11 tests
+--echo #
+
+--echo #
+--echo # MDEV-33442 REPAIR TABLE corrupts UUIDs
+--echo #
+
+DELIMITER $$;
+CREATE PROCEDURE show_table()
+BEGIN
+ SHOW CREATE TABLE t1;
+ SELECT VERSION FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test';
+ SELECT * FROM t1 ORDER BY a,b;
+END;
+$$
+DELIMITER ;$$
+
+
+--echo # Upgrade using REPAIR
+
+--copy_file $MYSQL_TEST_DIR/std_data/bug19371.frm $MYSQLD_DATADIR/test/t1.frm
+TRUNCATE TABLE t1;
+CALL show_table;
+
+CHECK TABLE t1 FOR UPGRADE;
+CALL show_table;
+
+CHECK TABLE t1 FOR UPGRADE;
+CALL show_table;
+
+REPAIR TABLE t1;
+CALL show_table;
+
+CHECK TABLE t1 FOR UPGRADE;
+CALL show_table;
+
+DROP TABLE t1;
+
+
+--echo # Upgrade using ALTER, adding a table COMMENT
+
+--copy_file $MYSQL_TEST_DIR/std_data/bug19371.frm $MYSQLD_DATADIR/test/t1.frm
+TRUNCATE TABLE t1;
+CALL show_table;
+
+--echo # ALTER..INPLACE should fail - the old columns need upgrade
+--error ER_ALTER_OPERATION_NOT_SUPPORTED
+ALTER IGNORE TABLE t1 ALGORITHM=INPLACE, COMMENT 'test10';
+ALTER IGNORE TABLE t1 COMMENT 'test11';
+CALL show_table;
+
+--echo # Now ALTER..INPLACE should work
+ALTER IGNORE TABLE t1 ALGORITHM=INPLACE, COMMENT 'test12';
+CALL show_table;
+
+DROP TABLE t1;
+
+
+--echo # Upgrade using ALTER, adding a column DEFAULT
+
+--copy_file $MYSQL_TEST_DIR/std_data/bug19371.frm $MYSQLD_DATADIR/test/t1.frm
+TRUNCATE TABLE t1;
+CALL show_table;
+
+--echo # ALTER..INPLACE should fail - the old columns need upgrade
+--error ER_ALTER_OPERATION_NOT_SUPPORTED
+ALTER IGNORE TABLE t1 ALGORITHM=INPLACE, MODIFY a VARBINARY(255) DEFAULT 'a10';
+ALTER IGNORE TABLE t1 MODIFY a VARBINARY(255) DEFAULT 'a11';
+CALL show_table;
+
+--echo # Now ALTER..INPLACE should work
+ALTER IGNORE TABLE t1 MODIFY a VARBINARY(255) DEFAULT 'a12';
+CALL show_table;
+
+DROP TABLE t1;
+
+
+DROP PROCEDURE show_table;
+
+
+--echo #
+--echo # End of 10.11 tests
+--echo #
diff --git a/mysql-test/main/udf.result b/mysql-test/main/udf.result
index 8dc24a8d..53abd9c1 100644
--- a/mysql-test/main/udf.result
+++ b/mysql-test/main/udf.result
@@ -607,4 +607,68 @@ drop table t1;
DROP FUNCTION avgcost;
DROP FUNCTION avg2;
DROP FUNCTION myfunc_double;
+#
+# MDEV-24507: Server Crash using UDF in WHERE clause of VIEW
+#
+CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB";
+create table t1(pk int primary key, a varchar(20));
+create table t2(pk int primary key, a varchar(20));
+create view v1 as select pk, a from t1 union select pk, a from t2;
+insert into t1 values (1, "One"), (3, "Three"), (5, "Five");
+insert into t2 values (2, "Dos"), (4, "Quatro"), (6, "Seis");
+select pk, myfunc_int(a) from t1;
+pk myfunc_int(a)
+1 3
+3 5
+5 4
+select pk, myfunc_int(a) from t2;
+pk myfunc_int(a)
+2 3
+4 6
+6 4
+select pk, myfunc_int(a) from v1;
+pk myfunc_int(a)
+1 3
+3 5
+5 4
+2 3
+4 6
+6 4
+select pk from t1 where myfunc_int(a) > 4;
+pk
+3
+select pk from (select pk, a from t1) A where myfunc_int(A.a) > 4;
+pk
+3
+set @save_optimizer_switch = @@optimizer_switch;
+set optimizer_switch = 'derived_merge=OFF';
+select pk, myfunc_int(a) from t1;
+pk myfunc_int(a)
+1 3
+3 5
+5 4
+select pk, myfunc_int(a) from t2;
+pk myfunc_int(a)
+2 3
+4 6
+6 4
+select pk, myfunc_int(a) from v1;
+pk myfunc_int(a)
+1 3
+3 5
+5 4
+2 3
+4 6
+6 4
+select pk from t1 where myfunc_int(a) > 4;
+pk
+3
+select pk from (select pk, a from t1) A where myfunc_int(A.a) > 4;
+pk
+3
+set optimizer_switch = @save_optimizer_switch;
+drop view v1;
+drop table t2;
+drop table t1;
+drop function myfunc_int;
# End of 10.4 tests
diff --git a/mysql-test/main/udf.test b/mysql-test/main/udf.test
index e9823a31..d87d446f 100644
--- a/mysql-test/main/udf.test
+++ b/mysql-test/main/udf.test
@@ -647,4 +647,38 @@ DROP FUNCTION avgcost;
DROP FUNCTION avg2;
DROP FUNCTION myfunc_double;
+--echo #
+--echo # MDEV-24507: Server Crash using UDF in WHERE clause of VIEW
+--echo #
+
+--replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB
+eval CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "$UDF_EXAMPLE_SO";
+
+create table t1(pk int primary key, a varchar(20));
+create table t2(pk int primary key, a varchar(20));
+create view v1 as select pk, a from t1 union select pk, a from t2;
+
+insert into t1 values (1, "One"), (3, "Three"), (5, "Five");
+insert into t2 values (2, "Dos"), (4, "Quatro"), (6, "Seis");
+
+select pk, myfunc_int(a) from t1;
+select pk, myfunc_int(a) from t2;
+select pk, myfunc_int(a) from v1;
+select pk from t1 where myfunc_int(a) > 4;
+select pk from (select pk, a from t1) A where myfunc_int(A.a) > 4;
+
+set @save_optimizer_switch = @@optimizer_switch;
+set optimizer_switch = 'derived_merge=OFF';
+select pk, myfunc_int(a) from t1;
+select pk, myfunc_int(a) from t2;
+select pk, myfunc_int(a) from v1;
+select pk from t1 where myfunc_int(a) > 4;
+select pk from (select pk, a from t1) A where myfunc_int(A.a) > 4;
+
+set optimizer_switch = @save_optimizer_switch;
+drop view v1;
+drop table t2;
+drop table t1;
+drop function myfunc_int;
+
--echo # End of 10.4 tests
diff --git a/mysql-test/mariadb-test-run.pl b/mysql-test/mariadb-test-run.pl
index 8effcfeb..8bd45e5b 100755
--- a/mysql-test/mariadb-test-run.pl
+++ b/mysql-test/mariadb-test-run.pl
@@ -434,6 +434,10 @@ sub main {
{
$opt_parallel= $ENV{NUMBER_OF_PROCESSORS} || 1;
}
+ elsif (IS_MAC)
+ {
+ $opt_parallel= `sysctl -n hw.ncpu`;
+ }
else
{
my $sys_info= My::SysInfo->new();
@@ -3101,7 +3105,7 @@ sub mysql_install_db {
mtr_add_arg($args, "--core-file");
mtr_add_arg($args, "--console");
mtr_add_arg($args, "--character-set-server=latin1");
- mtr_add_arg($args, "--disable-performance-schema");
+ mtr_add_arg($args, "--loose-disable-performance-schema");
if ( $opt_debug )
{
@@ -4486,6 +4490,14 @@ sub extract_warning_lines ($$) {
qr/Slave I\/0: Master command COM_BINLOG_DUMP failed/,
qr/Error reading packet/,
qr/Lost connection to MariaDB server at 'reading initial communication packet'/,
+ qr/Could not read packet:.* state: [2-3] /,
+ qr/Could not read packet:.* errno: 104 /,
+ qr/Could not read packet:.* errno: 0 .* length: 0/,
+ qr/Could not write packet:.* errno: 32 /,
+ qr/Could not write packet:.* errno: 104 /,
+ qr/Semisync ack receiver got error 1158/,
+ qr/Semisync ack receiver got hangup/,
+ qr/Connection was killed/,
qr/Failed on request_dump/,
qr/Slave: Can't drop database.* database doesn't exist/,
qr/Slave: Operation DROP USER failed for 'create_rout_db'/,
@@ -4541,8 +4553,7 @@ sub extract_warning_lines ($$) {
qr/WSREP: Failed to guess base node address/,
qr/WSREP: Guessing address for incoming client/,
- # for UBSAN
- qr/decimal\.c.*: runtime error: signed integer overflow/,
+ qr/InnoDB: Difficult to find free blocks in the buffer pool*/,
# Disable test for UBSAN on dynamically loaded objects
qr/runtime error: member call.*object.*'Handler_share'/,
qr/sql_type\.cc.* runtime error: member call.*object.* 'Type_collection'/,
@@ -5702,6 +5713,8 @@ sub start_mysqltest ($) {
mtr_add_arg($args, "--result-file=%s", $tinfo->{'result_file'});
}
+ mtr_add_arg($args, "--wait-for-pos-timeout=%d", $opt_debug_sync_timeout);
+
client_debug_arg($args, "mysqltest");
if ( $opt_record )
diff --git a/mysql-test/std_data/autoinc_import_101.frm b/mysql-test/std_data/autoinc_import_101.frm
new file mode 100644
index 00000000..b16ae91b
--- /dev/null
+++ b/mysql-test/std_data/autoinc_import_101.frm
Binary files differ
diff --git a/mysql-test/std_data/autoinc_import_57.frm b/mysql-test/std_data/autoinc_import_57.frm
new file mode 100644
index 00000000..a333931b
--- /dev/null
+++ b/mysql-test/std_data/autoinc_import_57.frm
Binary files differ
diff --git a/mysql-test/std_data/mdev-25731.dat b/mysql-test/std_data/mdev-25731.dat
new file mode 100644
index 00000000..e6c779a8
--- /dev/null
+++ b/mysql-test/std_data/mdev-25731.dat
@@ -0,0 +1,6 @@
+1
+2
+3
+1
+5
+6
diff --git a/mysql-test/suite.pm b/mysql-test/suite.pm
index f30cc5ec..c9eea9b6 100644
--- a/mysql-test/suite.pm
+++ b/mysql-test/suite.pm
@@ -4,14 +4,7 @@ use My::Platform;
@ISA = qw(My::Suite);
sub skip_combinations {
- my @combinations;
-
- # disable innodb combinations for configurations that were not built
- push @combinations, 'innodb_plugin' unless $ENV{HA_INNODB_SO};
-
- push @combinations, 'innodb' unless $::mysqld_variables{'innodb'} eq "ON";
-
- my %skip = ( 'include/have_innodb.combinations' => [ @combinations ]);
+ my %skip;
$skip{'include/innodb_encrypt_log.combinations'} = [ 'crypt' ]
unless $ENV{DEBUG_KEY_MANAGEMENT_SO};
diff --git a/mysql-test/suite/archive/archive.test b/mysql-test/suite/archive/archive.test
index 430bdd66..1367a30c 100644
--- a/mysql-test/suite/archive/archive.test
+++ b/mysql-test/suite/archive/archive.test
@@ -1609,7 +1609,7 @@ SELECT DATA_LENGTH, AVG_ROW_LENGTH FROM
INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test';
INSERT INTO t1 VALUES(1, 'sampleblob1'),(2, 'sampleblob2');
# Compression length depends on zip library
---replace_result 583 584 291 292
+--replace_result 583 584 585 584 291 292
SELECT DATA_LENGTH, AVG_ROW_LENGTH FROM
INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test';
DROP TABLE t1;
diff --git a/mysql-test/suite/archive/archive_bitfield.result b/mysql-test/suite/archive/archive_bitfield.result
index 8c30a5f8..8cb4190e 100644
--- a/mysql-test/suite/archive/archive_bitfield.result
+++ b/mysql-test/suite/archive/archive_bitfield.result
@@ -180,6 +180,7 @@ INSERT INTO `t1` VALUES
(NULL,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'100000',b'010010',b'011111',4,5,5,5,5,5,5,5,5,5,3,2,1),
(NULL,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000000',b'001100',b'111111',4,5,5,5,5,5,5,5,5,5,3,2,1),
(NULL,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'111111',b'000000',b'000000',4,5,5,5,5,5,5,5,5,5,3,2,1);
+/*!999999\- enable the sandbox mode */
INSERT INTO `t1` VALUES (1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x01,0x3F,0x3E,4,5,5,5,5,5,5,5,5,5,3,2,1);
INSERT INTO `t1` VALUES (2,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x02,0x00,0x3D,4,5,5,5,5,5,5,5,5,5,3,2,1);
INSERT INTO `t1` VALUES (3,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x04,0x0F,0x3B,4,5,5,5,5,5,5,5,5,5,3,2,1);
diff --git a/mysql-test/suite/atomic/alter_table.test b/mysql-test/suite/atomic/alter_table.test
index 1f87b7e7..aa265c92 100644
--- a/mysql-test/suite/atomic/alter_table.test
+++ b/mysql-test/suite/atomic/alter_table.test
@@ -1,7 +1,12 @@
--source include/have_debug.inc
--source include/have_innodb.inc
--source include/have_log_bin.inc
---source include/not_valgrind.inc
+
+if (!$BIG_TEST)
+{
+ --source include/not_valgrind.inc
+ --source include/not_msan.inc
+}
#
# Testing of atomic create table with crashes in a lot of different places
diff --git a/mysql-test/suite/binlog/include/binlog_index.inc b/mysql-test/suite/binlog/include/binlog_index.inc
index da6cac18..69498f42 100644
--- a/mysql-test/suite/binlog/include/binlog_index.inc
+++ b/mysql-test/suite/binlog/include/binlog_index.inc
@@ -98,7 +98,7 @@ reset master;
--echo # crash_purge_before_update_index
flush logs;
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
SET SESSION debug_dbug="+d,crash_purge_before_update_index";
--source include/wait_for_binlog_checkpoint.inc
--error 2013
@@ -119,7 +119,7 @@ SELECT @index;
--echo # crash_purge_non_critical_after_update_index
flush logs;
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
SET SESSION debug_dbug="+d,crash_purge_non_critical_after_update_index";
--source include/wait_for_binlog_checkpoint.inc
--error 2013
@@ -143,7 +143,7 @@ SELECT @index;
--echo # crash_purge_critical_after_update_index
flush logs;
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
SET SESSION debug_dbug="+d,crash_purge_critical_after_update_index";
--source include/wait_for_binlog_checkpoint.inc
--error 2013
@@ -167,7 +167,7 @@ file_exists $MYSQLD_DATADIR/master-bin.000008;
SELECT @index;
--echo # crash_create_non_critical_before_update_index
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
SET SESSION debug_dbug="+d,crash_create_non_critical_before_update_index";
--error 2013
flush logs;
@@ -185,7 +185,7 @@ file_exists $MYSQLD_DATADIR/master-bin.000009;
SELECT @index;
--echo # crash_create_critical_before_update_index
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
SET SESSION debug_dbug="+d,crash_create_critical_before_update_index";
--error 2013
flush logs;
@@ -205,7 +205,7 @@ file_exists $MYSQLD_DATADIR/master-bin.000011;
SELECT @index;
--echo # crash_create_after_update_index
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
SET SESSION debug_dbug="+d,crash_create_after_update_index";
--error 2013
flush logs;
diff --git a/mysql-test/suite/binlog/include/print_optional_metadata.inc b/mysql-test/suite/binlog/include/print_optional_metadata.inc
index 739903ab..47feede8 100644
--- a/mysql-test/suite/binlog/include/print_optional_metadata.inc
+++ b/mysql-test/suite/binlog/include/print_optional_metadata.inc
@@ -16,10 +16,9 @@ if ($stop_position)
--exec $MYSQL_BINLOG -F --print-table-metadata $_stop_position_opt $binlog_file > $output_file
---let SEARCH_PATTERN= # (?:Columns\(| {8}).*
+--let SEARCH_PATTERN= (?m-s:# (?:Columns\(| {8}).*)
--let SEARCH_FILE= $output_file
--let SEARCH_OUTPUT=matches
---let SEARCH_TYPE="_gm_"
--source include/search_pattern_in_file.inc
if ($print_primary_key)
diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result
index 7cb67660..9e88917c 100644
--- a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result
+++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result
@@ -2460,7 +2460,10 @@ START TRANSACTION
#Q> '', -- c76
#Q> #
#Q> 'a', -- c77
-#Q> '',
+#Q> '', -- c78
+#Q> #
+#Q> 1 -- crn -- row number
+#Q> )
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F
@@ -2642,7 +2645,10 @@ START TRANSACTION
#Q> 'longtext-ucs2', -- c76 not using maximum value here
#Q> #
#Q> 'c', -- c77
-#Q> 'a,b,c
+#Q> 'a,b,c', -- c78
+#Q> #
+#Q> 2 -- crn -- row number
+#Q> )
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F
@@ -2909,7 +2915,13 @@ START TRANSACTION
#Q> 'mediumtext-ucs2', -- c73
#Q> 'longblob', -- c74
#Q> 'longtext', -- c75
-#Q> 'longtext
+#Q> 'longtext-ucs2', -- c76
+#Q> #
+#Q> 'b', -- c77
+#Q> 'b,c', -- c78
+#Q> #
+#Q> 4 -- crn -- row number
+#Q> )
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F
@@ -3250,7 +3262,21 @@ START TRANSACTION
#Q> #
#Q> c65 = '' AND
#Q> c66 = '' AND
-#Q> c67 =
+#Q> c67 = '' AND
+#Q> c68 = '' AND
+#Q> c69 = '' AND
+#Q> c70 = '' AND
+#Q> c71 = '' AND
+#Q> c72 = '' AND
+#Q> c73 = '' AND
+#Q> c74 = '' AND
+#Q> c75 = '' AND
+#Q> c76 = '' AND
+#Q> #
+#Q> c77 = 'a' AND
+#Q> c78 = '' AND
+#Q> #
+#Q> crn = 1
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F
@@ -3595,7 +3621,17 @@ START TRANSACTION
#Q> c68 = 'blob' AND
#Q> c69 = 'text' AND
#Q> c70 = 'text-ucs2' AND
-#Q> c71 = 'mediumblob
+#Q> c71 = 'mediumblob' AND
+#Q> c72 = 'mediumtext' AND
+#Q> c73 = 'mediumtext-ucs2' AND
+#Q> c74 = 'longblob' AND
+#Q> c75 = 'longtext' AND
+#Q> c76 = 'longtext-ucs2' AND
+#Q> #
+#Q> c77 = 'c' AND
+#Q> c78 = 'a,b,c' AND
+#Q> #
+#Q> crn = 2
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F
@@ -3938,7 +3974,18 @@ START TRANSACTION
#Q> c67 IS NULL AND
#Q> c68 IS NULL AND
#Q> c69 IS NULL AND
-#Q> c70 IS NULL
+#Q> c70 IS NULL AND
+#Q> c71 IS NULL AND
+#Q> c72 IS NULL AND
+#Q> c73 IS NULL AND
+#Q> c74 IS NULL AND
+#Q> c75 IS NULL AND
+#Q> c76 IS NULL AND
+#Q> #
+#Q> c77 IS NULL AND
+#Q> c78 IS NULL AND
+#Q> #
+#Q> crn = 3
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F
@@ -4284,7 +4331,16 @@ START TRANSACTION
#Q> c69 = 'text' AND
#Q> c70 = 'text-ucs2' AND
#Q> c71 = 'mediumblob' AND
-#Q> c72 = 'me
+#Q> c72 = 'mediumtext' AND
+#Q> c73 = 'mediumtext-ucs2' AND
+#Q> c74 = 'longblob' AND
+#Q> c75 = 'longtext' AND
+#Q> c76 = 'longtext-ucs2' AND
+#Q> #
+#Q> c77 = 'b' AND
+#Q> c78 = 'b,c' AND
+#Q> #
+#Q> crn = 4
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F
@@ -4544,7 +4600,13 @@ START TRANSACTION
#Q> c72 = 'mediumtext' AND
#Q> c73 = 'mediumtext-ucs2' AND
#Q> c74 = 'longblob' AND
-#Q> c75 = '
+#Q> c75 = 'longtext' AND
+#Q> c76 = 'longtext-ucs2' AND
+#Q> #
+#Q> c77 = 'c' AND
+#Q> c78 = 'a,b,c' AND
+#Q> #
+#Q> crn = 1
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F
@@ -4721,7 +4783,15 @@ START TRANSACTION
#Q> c70 = '' AND
#Q> c71 = '' AND
#Q> c72 = '' AND
-#Q> c73 = '' A
+#Q> c73 = '' AND
+#Q> c74 = '' AND
+#Q> c75 = '' AND
+#Q> c76 = '' AND
+#Q> #
+#Q> c77 = 'a' AND
+#Q> c78 = '' AND
+#Q> #
+#Q> crn = 2
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F
@@ -4901,7 +4971,13 @@ START TRANSACTION
#Q> c72 = 'mediumtext' AND
#Q> c73 = 'mediumtext-ucs2' AND
#Q> c74 = 'longblob' AND
-#Q> c75 = 'longtext'
+#Q> c75 = 'longtext' AND
+#Q> c76 = 'longtext-ucs2' AND
+#Q> #
+#Q> c77 = 'b' AND
+#Q> c78 = 'b,c' AND
+#Q> #
+#Q> crn = 3
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F
@@ -5079,7 +5155,14 @@ START TRANSACTION
#Q> c71 IS NULL AND
#Q> c72 IS NULL AND
#Q> c73 IS NULL AND
-#Q> c74 IS NUL
+#Q> c74 IS NULL AND
+#Q> c75 IS NULL AND
+#Q> c76 IS NULL AND
+#Q> #
+#Q> c77 IS NULL AND
+#Q> c78 IS NULL AND
+#Q> #
+#Q> crn = 4
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F
@@ -5309,7 +5392,7 @@ START TRANSACTION
#Q> ('2008-08-06','VARCHAR-06',6),
#Q> ('2008-08-07','VARCHAR-07',7),
#Q> ('2008-08-08','VARCHAR-08',8),
-#Q> ('2008-08-09','VARCH
+#Q> ('2008-08-09','VARCHAR-09',9)
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F
@@ -5733,7 +5816,7 @@ START TRANSACTION
#Q> ('2008-01-06','VARCHAR-01-06',6),
#Q> ('2008-01-07','VARCHAR-01-07',7),
#Q> ('2008-01-08','VARCHAR-01-08',18),
-#Q> ('2008-01-09','VARCHAR-0
+#Q> ('2008-01-09','VARCHAR-01-09',19)
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F
@@ -5803,7 +5886,7 @@ START TRANSACTION
#Q> ('2008-02-06','VARCHAR-02-06',6),
#Q> ('2008-02-07','VARCHAR-02-07',7),
#Q> ('2008-02-08','VARCHAR-02-08',28),
-#Q> ('2008-02-09','VARCHAR-0
+#Q> ('2008-02-09','VARCHAR-02-09',29)
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F
@@ -5873,7 +5956,7 @@ START TRANSACTION
#Q> ('2008-03-06','VARCHAR-03-06',6),
#Q> ('2008-03-07','VARCHAR-03-07',7),
#Q> ('2008-03-08','VARCHAR-03-08',38),
-#Q> ('2008-03-09','VARCHAR-0
+#Q> ('2008-03-09','VARCHAR-03-09',39)
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t3` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F
@@ -5938,7 +6021,7 @@ START TRANSACTION
#Q> c_1_1 = ADDDATE(c_1_1,INTERVAL 10 YEAR),
#Q> c_2_1 = ADDDATE(c_2_1,INTERVAL 20 YEAR),
#Q> c_3_1 = ADDDATE(c_3_1,INTERVAL 30 YEAR)
-#Q> WHERE c_1_n = c_2_n AND c_2_n = c
+#Q> WHERE c_1_n = c_2_n AND c_2_n = c_3_n
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number #
@@ -6125,7 +6208,7 @@ START TRANSACTION
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows:
#Q> DELETE FROM t1,t2,t3 USING t1 INNER JOIN t2 INNER JOIN t3
-#Q> WHERE c_1_n = c_2_n AND c_2_n = c_3_
+#Q> WHERE c_1_n = c_2_n AND c_2_n = c_3_n
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number #
@@ -6340,7 +6423,7 @@ START TRANSACTION
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows:
#Q> LOAD DATA INFILE '../../std_data/loaddata5.dat'
#Q> INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY '' (c1,c2)
-#Q> SET c3 = 'Wo
+#Q> SET c3 = 'Wow'
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F
diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result
index 2bd600f3..916bed0c 100644
--- a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result
+++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result
@@ -2458,7 +2458,10 @@ START TRANSACTION
#Q> '', -- c76
#Q> #
#Q> 'a', -- c77
-#Q> '',
+#Q> '', -- c78
+#Q> #
+#Q> 1 -- crn -- row number
+#Q> )
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F
@@ -2643,7 +2646,10 @@ START TRANSACTION
#Q> 'longtext-ucs2', -- c76 not using maximum value here
#Q> #
#Q> 'c', -- c77
-#Q> 'a,b,c
+#Q> 'a,b,c', -- c78
+#Q> #
+#Q> 2 -- crn -- row number
+#Q> )
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F
@@ -2912,7 +2918,13 @@ START TRANSACTION
#Q> 'mediumtext-ucs2', -- c73
#Q> 'longblob', -- c74
#Q> 'longtext', -- c75
-#Q> 'longtext
+#Q> 'longtext-ucs2', -- c76
+#Q> #
+#Q> 'b', -- c77
+#Q> 'b,c', -- c78
+#Q> #
+#Q> 4 -- crn -- row number
+#Q> )
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F
@@ -3255,7 +3267,21 @@ START TRANSACTION
#Q> #
#Q> c65 = '' AND
#Q> c66 = '' AND
-#Q> c67 =
+#Q> c67 = '' AND
+#Q> c68 = '' AND
+#Q> c69 = '' AND
+#Q> c70 = '' AND
+#Q> c71 = '' AND
+#Q> c72 = '' AND
+#Q> c73 = '' AND
+#Q> c74 = '' AND
+#Q> c75 = '' AND
+#Q> c76 = '' AND
+#Q> #
+#Q> c77 = 'a' AND
+#Q> c78 = '' AND
+#Q> #
+#Q> crn = 1
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F
@@ -3602,7 +3628,17 @@ START TRANSACTION
#Q> c68 = 'blob' AND
#Q> c69 = 'text' AND
#Q> c70 = 'text-ucs2' AND
-#Q> c71 = 'mediumblob
+#Q> c71 = 'mediumblob' AND
+#Q> c72 = 'mediumtext' AND
+#Q> c73 = 'mediumtext-ucs2' AND
+#Q> c74 = 'longblob' AND
+#Q> c75 = 'longtext' AND
+#Q> c76 = 'longtext-ucs2' AND
+#Q> #
+#Q> c77 = 'c' AND
+#Q> c78 = 'a,b,c' AND
+#Q> #
+#Q> crn = 2
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F
@@ -3947,7 +3983,18 @@ START TRANSACTION
#Q> c67 IS NULL AND
#Q> c68 IS NULL AND
#Q> c69 IS NULL AND
-#Q> c70 IS NULL
+#Q> c70 IS NULL AND
+#Q> c71 IS NULL AND
+#Q> c72 IS NULL AND
+#Q> c73 IS NULL AND
+#Q> c74 IS NULL AND
+#Q> c75 IS NULL AND
+#Q> c76 IS NULL AND
+#Q> #
+#Q> c77 IS NULL AND
+#Q> c78 IS NULL AND
+#Q> #
+#Q> crn = 3
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F
@@ -4295,7 +4342,16 @@ START TRANSACTION
#Q> c69 = 'text' AND
#Q> c70 = 'text-ucs2' AND
#Q> c71 = 'mediumblob' AND
-#Q> c72 = 'me
+#Q> c72 = 'mediumtext' AND
+#Q> c73 = 'mediumtext-ucs2' AND
+#Q> c74 = 'longblob' AND
+#Q> c75 = 'longtext' AND
+#Q> c76 = 'longtext-ucs2' AND
+#Q> #
+#Q> c77 = 'b' AND
+#Q> c78 = 'b,c' AND
+#Q> #
+#Q> crn = 4
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F
@@ -4557,7 +4613,13 @@ START TRANSACTION
#Q> c72 = 'mediumtext' AND
#Q> c73 = 'mediumtext-ucs2' AND
#Q> c74 = 'longblob' AND
-#Q> c75 = '
+#Q> c75 = 'longtext' AND
+#Q> c76 = 'longtext-ucs2' AND
+#Q> #
+#Q> c77 = 'c' AND
+#Q> c78 = 'a,b,c' AND
+#Q> #
+#Q> crn = 1
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F
@@ -4736,7 +4798,15 @@ START TRANSACTION
#Q> c70 = '' AND
#Q> c71 = '' AND
#Q> c72 = '' AND
-#Q> c73 = '' A
+#Q> c73 = '' AND
+#Q> c74 = '' AND
+#Q> c75 = '' AND
+#Q> c76 = '' AND
+#Q> #
+#Q> c77 = 'a' AND
+#Q> c78 = '' AND
+#Q> #
+#Q> crn = 2
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F
@@ -4918,7 +4988,13 @@ START TRANSACTION
#Q> c72 = 'mediumtext' AND
#Q> c73 = 'mediumtext-ucs2' AND
#Q> c74 = 'longblob' AND
-#Q> c75 = 'longtext'
+#Q> c75 = 'longtext' AND
+#Q> c76 = 'longtext-ucs2' AND
+#Q> #
+#Q> c77 = 'b' AND
+#Q> c78 = 'b,c' AND
+#Q> #
+#Q> crn = 3
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F
@@ -5098,7 +5174,14 @@ START TRANSACTION
#Q> c71 IS NULL AND
#Q> c72 IS NULL AND
#Q> c73 IS NULL AND
-#Q> c74 IS NUL
+#Q> c74 IS NULL AND
+#Q> c75 IS NULL AND
+#Q> c76 IS NULL AND
+#Q> #
+#Q> c77 IS NULL AND
+#Q> c78 IS NULL AND
+#Q> #
+#Q> crn = 4
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F
@@ -5330,7 +5413,7 @@ START TRANSACTION
#Q> ('2008-08-06','VARCHAR-06',6),
#Q> ('2008-08-07','VARCHAR-07',7),
#Q> ('2008-08-08','VARCHAR-08',8),
-#Q> ('2008-08-09','VARCH
+#Q> ('2008-08-09','VARCHAR-09',9)
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F
@@ -5760,7 +5843,7 @@ START TRANSACTION
#Q> ('2008-01-06','VARCHAR-01-06',6),
#Q> ('2008-01-07','VARCHAR-01-07',7),
#Q> ('2008-01-08','VARCHAR-01-08',18),
-#Q> ('2008-01-09','VARCHAR-0
+#Q> ('2008-01-09','VARCHAR-01-09',19)
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F
@@ -5832,7 +5915,7 @@ START TRANSACTION
#Q> ('2008-02-06','VARCHAR-02-06',6),
#Q> ('2008-02-07','VARCHAR-02-07',7),
#Q> ('2008-02-08','VARCHAR-02-08',28),
-#Q> ('2008-02-09','VARCHAR-0
+#Q> ('2008-02-09','VARCHAR-02-09',29)
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F
@@ -5904,7 +5987,7 @@ START TRANSACTION
#Q> ('2008-03-06','VARCHAR-03-06',6),
#Q> ('2008-03-07','VARCHAR-03-07',7),
#Q> ('2008-03-08','VARCHAR-03-08',38),
-#Q> ('2008-03-09','VARCHAR-0
+#Q> ('2008-03-09','VARCHAR-03-09',39)
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t3` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F
@@ -5971,7 +6054,7 @@ START TRANSACTION
#Q> c_1_1 = ADDDATE(c_1_1,INTERVAL 10 YEAR),
#Q> c_2_1 = ADDDATE(c_2_1,INTERVAL 20 YEAR),
#Q> c_3_1 = ADDDATE(c_3_1,INTERVAL 30 YEAR)
-#Q> WHERE c_1_n = c_2_n AND c_2_n = c
+#Q> WHERE c_1_n = c_2_n AND c_2_n = c_3_n
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number #
@@ -6160,7 +6243,7 @@ START TRANSACTION
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows:
#Q> DELETE FROM t1,t2,t3 USING t1 INNER JOIN t2 INNER JOIN t3
-#Q> WHERE c_1_n = c_2_n AND c_2_n = c_3_
+#Q> WHERE c_1_n = c_2_n AND c_2_n = c_3_n
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number #
@@ -6377,7 +6460,7 @@ START TRANSACTION
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows:
#Q> LOAD DATA INFILE '../../std_data/loaddata5.dat'
#Q> INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY '' (c1,c2)
-#Q> SET c3 = 'Wo
+#Q> SET c3 = 'Wow'
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
# at #
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F
diff --git a/mysql-test/suite/binlog/r/binlog_row_annotate.result b/mysql-test/suite/binlog/r/binlog_row_annotate.result
index bb4d318b..edf8f4e7 100644
--- a/mysql-test/suite/binlog/r/binlog_row_annotate.result
+++ b/mysql-test/suite/binlog/r/binlog_row_annotate.result
@@ -232,7 +232,7 @@ START TRANSACTION
#010909 4:46:40 server id # end_log_pos # Annotate_rows:
#Q> DELETE test1.t1, test2.t2
#Q> FROM test1.t1 INNER JOIN test2.t2 INNER JOIN test3.t3
-#Q> WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3
+#Q> WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3.a
#010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number #
# at #
#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number #
@@ -301,7 +301,7 @@ START TRANSACTION
#010909 4:46:40 server id # end_log_pos # Annotate_rows:
#Q> DELETE xtest1.xt1, test2.t2
#Q> FROM xtest1.xt1 INNER JOIN test2.t2 INNER JOIN test3.t3
-#Q> WHERE xtest1.xt1.a=test2.t2.a AND test2.t2.a=test3.t3
+#Q> WHERE xtest1.xt1.a=test2.t2.a AND test2.t2.a=test3.t3.a
#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number #
# at #
#010909 4:46:40 server id # end_log_pos # Delete_rows: table id # flags: STMT_END_F
@@ -434,7 +434,7 @@ START TRANSACTION
#010909 4:46:40 server id # end_log_pos # Annotate_rows:
#Q> DELETE test1.t1, test2.t2
#Q> FROM test1.t1 INNER JOIN test2.t2 INNER JOIN test3.t3
-#Q> WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3
+#Q> WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3.a
#010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number #
# at #
# at #
@@ -855,7 +855,7 @@ START TRANSACTION
#010909 4:46:40 server id # end_log_pos # Annotate_rows:
#Q> DELETE test1.t1, test2.t2
#Q> FROM test1.t1 INNER JOIN test2.t2 INNER JOIN test3.t3
-#Q> WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3
+#Q> WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3.a
#010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number #
# at #
#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number #
@@ -924,7 +924,7 @@ START TRANSACTION
#010909 4:46:40 server id # end_log_pos # Annotate_rows:
#Q> DELETE xtest1.xt1, test2.t2
#Q> FROM xtest1.xt1 INNER JOIN test2.t2 INNER JOIN test3.t3
-#Q> WHERE xtest1.xt1.a=test2.t2.a AND test2.t2.a=test3.t3
+#Q> WHERE xtest1.xt1.a=test2.t2.a AND test2.t2.a=test3.t3.a
#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number #
# at #
#010909 4:46:40 server id # end_log_pos # Delete_rows: table id # flags: STMT_END_F
@@ -1057,7 +1057,7 @@ START TRANSACTION
#010909 4:46:40 server id # end_log_pos # Annotate_rows:
#Q> DELETE test1.t1, test2.t2
#Q> FROM test1.t1 INNER JOIN test2.t2 INNER JOIN test3.t3
-#Q> WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3
+#Q> WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3.a
#010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number #
# at #
# at #
diff --git a/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result b/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result
index a0cf5b2d..07e46933 100644
--- a/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result
+++ b/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result
@@ -204,7 +204,7 @@ START TRANSACTION
# at #
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows:
#Q> LOAD DATA INFILE '../../std_data/loaddata7.dat' INTO TABLE t1
-#Q> FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n
+#Q> FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test1`.`t1` mapped to number #
# at #
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F
@@ -445,7 +445,7 @@ START TRANSACTION
# at #
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows:
#Q> LOAD DATA INFILE '../../std_data/loaddata7.dat' INTO TABLE t1
-#Q> FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n
+#Q> FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test1`.`t1` mapped to number #
# at #
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F
diff --git a/mysql-test/suite/binlog/t/binlog_autocommit_off_no_hang.test b/mysql-test/suite/binlog/t/binlog_autocommit_off_no_hang.test
index 8f1dbb2a..149b1a8d 100644
--- a/mysql-test/suite/binlog/t/binlog_autocommit_off_no_hang.test
+++ b/mysql-test/suite/binlog/t/binlog_autocommit_off_no_hang.test
@@ -26,10 +26,10 @@
ALTER TABLE mysql.gtid_slave_pos ENGINE=innodb;
--echo # Restart the server so mysqld reads the gtid_slave_pos using innodb
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
diff --git a/mysql-test/suite/binlog/t/binlog_rotate_perf.test b/mysql-test/suite/binlog/t/binlog_rotate_perf.test
index 74c91fec..512471e2 100644
--- a/mysql-test/suite/binlog/t/binlog_rotate_perf.test
+++ b/mysql-test/suite/binlog/t/binlog_rotate_perf.test
@@ -68,10 +68,10 @@ while ($loop_times) {
# try to change the log-bin configs and restart
--echo # ======= now try to change the log-bin config for mysqld =======
---let $restart_parameters="--log-bin=new_log_bin"
+--let $restart_parameters=--log-bin=new_log_bin
--echo #begin to restart mysqld
--source include/restart_mysqld.inc
---let $restart_parameters= ""
+--let $restart_parameters=
--source include/show_binary_logs.inc
let $loop_times= 10;
diff --git a/mysql-test/suite/binlog_encryption/binlog_row_annotate.result b/mysql-test/suite/binlog_encryption/binlog_row_annotate.result
index 583d9a30..2a20f939 100644
--- a/mysql-test/suite/binlog_encryption/binlog_row_annotate.result
+++ b/mysql-test/suite/binlog_encryption/binlog_row_annotate.result
@@ -236,7 +236,7 @@ START TRANSACTION
#010909 4:46:40 server id # end_log_pos # Annotate_rows:
#Q> DELETE test1.t1, test2.t2
#Q> FROM test1.t1 INNER JOIN test2.t2 INNER JOIN test3.t3
-#Q> WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3
+#Q> WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3.a
#010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number #
# at #
#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number #
@@ -305,7 +305,7 @@ START TRANSACTION
#010909 4:46:40 server id # end_log_pos # Annotate_rows:
#Q> DELETE xtest1.xt1, test2.t2
#Q> FROM xtest1.xt1 INNER JOIN test2.t2 INNER JOIN test3.t3
-#Q> WHERE xtest1.xt1.a=test2.t2.a AND test2.t2.a=test3.t3
+#Q> WHERE xtest1.xt1.a=test2.t2.a AND test2.t2.a=test3.t3.a
#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number #
# at #
#010909 4:46:40 server id # end_log_pos # Delete_rows: table id # flags: STMT_END_F
@@ -441,7 +441,7 @@ START TRANSACTION
#010909 4:46:40 server id # end_log_pos # Annotate_rows:
#Q> DELETE test1.t1, test2.t2
#Q> FROM test1.t1 INNER JOIN test2.t2 INNER JOIN test3.t3
-#Q> WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3
+#Q> WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3.a
#010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number #
# at #
# at #
diff --git a/mysql-test/suite/binlog_encryption/restart_server.inc b/mysql-test/suite/binlog_encryption/restart_server.inc
index 8f0fe7d8..f71858be 100644
--- a/mysql-test/suite/binlog_encryption/restart_server.inc
+++ b/mysql-test/suite/binlog_encryption/restart_server.inc
@@ -20,7 +20,7 @@
--connection $_cur_con
--enable_reconnect
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.$rpl_server_number.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.$rpl_server_number.expect
shutdown_server;
@@ -31,5 +31,5 @@ if ($rpl_server_parameters)
{
--let $_rpl_start_server_command= restart:$rpl_server_parameters
}
---exec echo "$_rpl_start_server_command" > $MYSQLTEST_VARDIR/tmp/mysqld.$rpl_server_number.expect
+--write_line "$_rpl_start_server_command" $MYSQLTEST_VARDIR/tmp/mysqld.$rpl_server_number.expect
--source include/wait_until_connected_again.inc
diff --git a/mysql-test/suite/binlog_encryption/rpl_gtid_basic.result b/mysql-test/suite/binlog_encryption/rpl_gtid_basic.result
index fde37036..99721813 100644
--- a/mysql-test/suite/binlog_encryption/rpl_gtid_basic.result
+++ b/mysql-test/suite/binlog_encryption/rpl_gtid_basic.result
@@ -69,8 +69,6 @@ INSERT INTO t2 VALUES (5, "i1a");
connection server_4;
CHANGE MASTER TO master_host = '127.0.0.1', master_port = MASTER_PORT,
MASTER_USE_GTID=CURRENT_POS;
-Warnings:
-Warning 1681 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
include/start_slave.inc
SELECT * FROM t1 ORDER BY a;
a b
@@ -91,8 +89,6 @@ connection server_2;
include/stop_slave.inc
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_4,
MASTER_USE_GTID=CURRENT_POS;
-Warnings:
-Warning 1681 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
include/start_slave.inc
connection server_4;
UPDATE t2 SET b="j1a" WHERE a=5;
@@ -121,8 +117,6 @@ include/save_master_gtid.inc
connection server_3;
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_4,
MASTER_USE_GTID=CURRENT_POS;
-Warnings:
-Warning 1681 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
include/start_slave.inc
include/sync_with_master_gtid.inc
SELECT * FROM t2 ORDER BY a;
diff --git a/mysql-test/suite/binlog_encryption/rpl_packet.result b/mysql-test/suite/binlog_encryption/rpl_packet.result
index 4a2a5d70..bb626960 100644
--- a/mysql-test/suite/binlog_encryption/rpl_packet.result
+++ b/mysql-test/suite/binlog_encryption/rpl_packet.result
@@ -2,6 +2,8 @@ include/master-slave.inc
[connection master]
call mtr.add_suppression("Slave I/O: Got a packet bigger than 'slave_max_allowed_packet' bytes, .*error.* 1153");
call mtr.add_suppression("Log entry on master is longer than slave_max_allowed_packet");
+call mtr.add_suppression("Could not write packet:");
+call mtr.add_suppression("Got a packet bigger than 'max_allowed_packet' bytes");
drop database if exists DB_NAME_OF_MAX_LENGTH_AKA_NAME_LEN_64_BYTES_____________________;
create database DB_NAME_OF_MAX_LENGTH_AKA_NAME_LEN_64_BYTES_____________________;
connection master;
diff --git a/mysql-test/suite/binlog_encryption/rpl_parallel_slave_bgc_kill.result b/mysql-test/suite/binlog_encryption/rpl_parallel_slave_bgc_kill.result
index ba131ea0..6b75dbf6 100644
--- a/mysql-test/suite/binlog_encryption/rpl_parallel_slave_bgc_kill.result
+++ b/mysql-test/suite/binlog_encryption/rpl_parallel_slave_bgc_kill.result
@@ -206,10 +206,12 @@ RETURN x;
END
||
SET sql_log_bin=1;
+include/stop_slave_io.inc
connection server_1;
INSERT INTO t3 VALUES (49,0);
connection server_2;
-START SLAVE SQL_THREAD;
+CHANGE MASTER TO master_use_gtid=no;
+include/start_slave.inc
SELECT * FROM t3 WHERE a >= 40 ORDER BY a;
a b
41 41
@@ -239,10 +241,6 @@ SET GLOBAL slave_parallel_threads=0;
SET GLOBAL slave_parallel_threads=10;
include/start_slave.inc
*** 3. Same as (2), but not using gtid mode ***
-connection server_2;
-include/stop_slave.inc
-CHANGE MASTER TO master_use_gtid=no;
-include/start_slave.inc
connection server_1;
connection con_temp3;
SET debug_sync='commit_after_release_LOCK_prepare_ordered SIGNAL master_queued1 WAIT_FOR master_cont1';
diff --git a/mysql-test/suite/binlog_encryption/rpl_parallel_stop_slave.result b/mysql-test/suite/binlog_encryption/rpl_parallel_stop_slave.result
index 0c810d2a..b0a4fa59 100644
--- a/mysql-test/suite/binlog_encryption/rpl_parallel_stop_slave.result
+++ b/mysql-test/suite/binlog_encryption/rpl_parallel_stop_slave.result
@@ -37,7 +37,9 @@ connection con_temp1;
BEGIN;
INSERT INTO t2 VALUES (21);
connection server_2;
-START SLAVE;
+START SLAVE IO_THREAD;
+include/wait_for_slave_param.inc [Read_Master_Log_Pos]
+START SLAVE SQL_THREAD;
connection con_temp2;
SET @old_dbug= @@GLOBAL.debug_dbug;
SET GLOBAL debug_dbug="+d,rpl_parallel_wait_for_done_trigger";
diff --git a/mysql-test/suite/compat/oracle/r/empty_string_literal.result b/mysql-test/suite/compat/oracle/r/empty_string_literal.result
index 4af576e9..1260c7aa 100644
--- a/mysql-test/suite/compat/oracle/r/empty_string_literal.result
+++ b/mysql-test/suite/compat/oracle/r/empty_string_literal.result
@@ -64,7 +64,7 @@ SET sql_mode=@mode;
# Test litteral concat
#
SELECT 'a' 'b';
-a
+ab
ab
SELECT 'a' '';
a
@@ -76,13 +76,13 @@ SELECT '' '';
NULL
NULL
SELECT '' 'b' 'c';
-b
+bc
bc
SELECT '' '' 'c';
c
c
SELECT 'a' '' 'c';
-a
+ac
ac
SELECT 'a' '' '';
a
diff --git a/mysql-test/suite/compat/oracle/r/gis.result b/mysql-test/suite/compat/oracle/r/gis.result
index 113cb0ea..8145b97d 100644
--- a/mysql-test/suite/compat/oracle/r/gis.result
+++ b/mysql-test/suite/compat/oracle/r/gis.result
@@ -33,37 +33,37 @@ ERROR 42000: Incorrect parameter count in the call to native function 'WITHIN(PO
# MDEV-20009 Add CAST(expr AS pluggable_type)
#
SELECT CAST(1 AS GEOMETRY);
-ERROR HY000: Operator does not exists: 'CAST(expr AS geometry)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS geometry)'
SELECT CAST(1 AS GEOMETRYCOLLECTION);
-ERROR HY000: Operator does not exists: 'CAST(expr AS geometrycollection)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS geometrycollection)'
SELECT CAST(1 AS POINT);
-ERROR HY000: Operator does not exists: 'CAST(expr AS point)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS point)'
SELECT CAST(1 AS LINESTRING);
-ERROR HY000: Operator does not exists: 'CAST(expr AS linestring)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS linestring)'
SELECT CAST(1 AS POLYGON);
-ERROR HY000: Operator does not exists: 'CAST(expr AS polygon)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS polygon)'
SELECT CAST(1 AS MULTIPOINT);
-ERROR HY000: Operator does not exists: 'CAST(expr AS multipoint)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS multipoint)'
SELECT CAST(1 AS MULTILINESTRING);
-ERROR HY000: Operator does not exists: 'CAST(expr AS multilinestring)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS multilinestring)'
SELECT CAST(1 AS MULTIPOLYGON);
-ERROR HY000: Operator does not exists: 'CAST(expr AS multipolygon)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS multipolygon)'
SELECT CONVERT(1, GEOMETRY);
-ERROR HY000: Operator does not exists: 'CAST(expr AS geometry)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS geometry)'
SELECT CONVERT(1, GEOMETRYCOLLECTION);
-ERROR HY000: Operator does not exists: 'CAST(expr AS geometrycollection)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS geometrycollection)'
SELECT CONVERT(1, POINT);
-ERROR HY000: Operator does not exists: 'CAST(expr AS point)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS point)'
SELECT CONVERT(1, LINESTRING);
-ERROR HY000: Operator does not exists: 'CAST(expr AS linestring)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS linestring)'
SELECT CONVERT(1, POLYGON);
-ERROR HY000: Operator does not exists: 'CAST(expr AS polygon)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS polygon)'
SELECT CONVERT(1, MULTIPOINT);
-ERROR HY000: Operator does not exists: 'CAST(expr AS multipoint)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS multipoint)'
SELECT CONVERT(1, MULTILINESTRING);
-ERROR HY000: Operator does not exists: 'CAST(expr AS multilinestring)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS multilinestring)'
SELECT CONVERT(1, MULTIPOLYGON);
-ERROR HY000: Operator does not exists: 'CAST(expr AS multipolygon)'
+ERROR HY000: Operator does not exist: 'CAST(expr AS multipolygon)'
#
# End of 10.5 tests
#
diff --git a/mysql-test/suite/compat/oracle/r/mysqldump_restore_func_qualified.result b/mysql-test/suite/compat/oracle/r/mysqldump_restore_func_qualified.result
index fd3dd787..c01524b3 100644
--- a/mysql-test/suite/compat/oracle/r/mysqldump_restore_func_qualified.result
+++ b/mysql-test/suite/compat/oracle/r/mysqldump_restore_func_qualified.result
@@ -24,6 +24,7 @@ b1 VARCHAR(64) AS (LPAD(b0,10)) PERSISTENT
CREATE VIEW v2 AS SELECT
LTRIM(now()) AS a0,
LPAD(now(),10) AS b0;
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
diff --git a/mysql-test/suite/compat/oracle/r/sp-package-mysqldump.result b/mysql-test/suite/compat/oracle/r/sp-package-mysqldump.result
index 24211c63..508aea0e 100644
--- a/mysql-test/suite/compat/oracle/r/sp-package-mysqldump.result
+++ b/mysql-test/suite/compat/oracle/r/sp-package-mysqldump.result
@@ -34,6 +34,7 @@ PROCEDURE p1;
FUNCTION f1 RETURN INT;
END;
$$
+/*!999999\- enable the sandbox mode */
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
diff --git a/mysql-test/suite/encryption/r/corrupted_during_recovery.result b/mysql-test/suite/encryption/r/corrupted_during_recovery.result
index 7329999d..8fef209e 100644
--- a/mysql-test/suite/encryption/r/corrupted_during_recovery.result
+++ b/mysql-test/suite/encryption/r/corrupted_during_recovery.result
@@ -9,7 +9,7 @@ INSERT INTO t2 VALUES(2);
SELECT * FROM t1;
ERROR 42000: Unknown storage engine 'InnoDB'
SELECT * FROM t1;
-Got one of the listed errors
+ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
SELECT * FROM t2;
a
2
diff --git a/mysql-test/suite/encryption/r/innodb-bad-key-change.result b/mysql-test/suite/encryption/r/innodb-bad-key-change.result
index e2034f14..e69d427e 100644
--- a/mysql-test/suite/encryption/r/innodb-bad-key-change.result
+++ b/mysql-test/suite/encryption/r/innodb-bad-key-change.result
@@ -32,7 +32,7 @@ foobar 2
# Restart server with keysbad3.txt
# restart: --file-key-management-filename=MYSQL_TEST_DIR/std_data/keysbad3.txt
SELECT * FROM t1;
-ERROR 42S02: Table 'test.t1' doesn't exist in engine
+ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
# restart: --file-key-management-filename=MYSQL_TEST_DIR/std_data/keysbad3.txt
DROP TABLE t1;
# Start server with keys3.txt
@@ -44,31 +44,31 @@ INSERT INTO t2 VALUES ('foobar',1,2);
# Restart server with keys2.txt
# restart: --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
SELECT * FROM t2;
-ERROR 42S02: Table 'test.t2' doesn't exist in engine
+ERROR HY000: Table `test`.`t2` is corrupted. Please drop the table and recreate.
SELECT * FROM t2 where id = 1;
-ERROR HY000: Table test/t2 is corrupted. Please drop the table and recreate.
+ERROR HY000: Table `test`.`t2` is corrupted. Please drop the table and recreate.
SELECT * FROM t2 where b = 1;
-ERROR HY000: Table test/t2 is corrupted. Please drop the table and recreate.
+ERROR HY000: Table `test`.`t2` is corrupted. Please drop the table and recreate.
INSERT INTO t2 VALUES ('tmp',3,3);
-ERROR HY000: Table test/t2 is corrupted. Please drop the table and recreate.
+ERROR HY000: Table `test`.`t2` is corrupted. Please drop the table and recreate.
DELETE FROM t2 where b = 3;
-ERROR HY000: Table test/t2 is corrupted. Please drop the table and recreate.
+ERROR HY000: Table `test`.`t2` is corrupted. Please drop the table and recreate.
DELETE FROM t2 where id = 3;
-ERROR HY000: Table test/t2 is corrupted. Please drop the table and recreate.
+ERROR HY000: Table `test`.`t2` is corrupted. Please drop the table and recreate.
UPDATE t2 set b = b +1;
-ERROR HY000: Table test/t2 is corrupted. Please drop the table and recreate.
+ERROR HY000: Table `test`.`t2` is corrupted. Please drop the table and recreate.
OPTIMIZE TABLE t2;
Table Op Msg_type Msg_text
-test.t2 optimize Error Table test/t2 is corrupted. Please drop the table and recreate.
+test.t2 optimize Error Table `test`.`t2` is corrupted. Please drop the table and recreate.
test.t2 optimize error Corrupt
ALTER TABLE t2 ADD COLUMN d INT;
-ERROR HY000: Table test/t2 is corrupted. Please drop the table and recreate.
+ERROR HY000: Table `test`.`t2` is corrupted. Please drop the table and recreate.
ANALYZE TABLE t2;
Table Op Msg_type Msg_text
-test.t2 analyze Error Table test/t2 is corrupted. Please drop the table and recreate.
+test.t2 analyze Error Table `test`.`t2` is corrupted. Please drop the table and recreate.
test.t2 analyze error Corrupt
TRUNCATE TABLE t2;
-ERROR HY000: Table test/t2 is corrupted. Please drop the table and recreate.
+ERROR HY000: Table `test`.`t2` is corrupted. Please drop the table and recreate.
DROP TABLE t2;
# Start server with keys2.txt
diff --git a/mysql-test/suite/encryption/r/innodb-bad-key-change2.result b/mysql-test/suite/encryption/r/innodb-bad-key-change2.result
index 3cda2bd5..c02c543a 100644
--- a/mysql-test/suite/encryption/r/innodb-bad-key-change2.result
+++ b/mysql-test/suite/encryption/r/innodb-bad-key-change2.result
@@ -14,24 +14,24 @@ ENCRYPTED=YES ENCRYPTION_KEY_ID=4;
INSERT INTO t1 VALUES (1,'foo'),(2,'bar');
# restart: --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys3.txt
SELECT * FROM t1;
-ERROR 42S02: Table 'test.t1' doesn't exist in engine
+ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
SHOW WARNINGS;
Level Code Message
-Error 1932 Table 'test.t1' doesn't exist in engine
+Error 1877 Table `test`.`t1` is corrupted. Please drop the table and recreate.
ALTER TABLE t1 ENGINE=InnoDB;
-ERROR HY000: Table test/t1 is corrupted. Please drop the table and recreate.
+ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
SHOW WARNINGS;
Level Code Message
-Error 1877 Table test/t1 is corrupted. Please drop the table and recreate.
+Error 1877 Table `test`.`t1` is corrupted. Please drop the table and recreate.
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize Error Table test/t1 is corrupted. Please drop the table and recreate.
+test.t1 optimize Error Table `test`.`t1` is corrupted. Please drop the table and recreate.
test.t1 optimize error Corrupt
SHOW WARNINGS;
Level Code Message
CHECK TABLE t1;
Table Op Msg_type Msg_text
-test.t1 check Error Table test/t1 is corrupted. Please drop the table and recreate.
+test.t1 check Error Table `test`.`t1` is corrupted. Please drop the table and recreate.
test.t1 check error Corrupt
SHOW WARNINGS;
Level Code Message
@@ -41,7 +41,7 @@ backup: t1
UNLOCK TABLES;
# restart: --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys3.txt
ALTER TABLE t1 DISCARD TABLESPACE;
-ERROR 42S02: Table 'test.t1' doesn't exist in engine
+ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
DROP TABLE t1;
CREATE TABLE t1 (pk INT PRIMARY KEY, f VARCHAR(8)) ENGINE=InnoDB
ENCRYPTED=YES ENCRYPTION_KEY_ID=4;
@@ -62,7 +62,7 @@ t1 CREATE TABLE `t1` (
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci `ENCRYPTED`=YES `ENCRYPTION_KEY_ID`=4
# restart: --innodb-encrypt-tables --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys3.txt
RENAME TABLE t1 TO t1new;
-ERROR HY000: Error on rename of './test/t1' to './test/t1new' (errno: 155 "The table does not exist in the storage engine")
+ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
ALTER TABLE t1 RENAME TO t1new;
-ERROR HY000: Table test/t1 is corrupted. Please drop the table and recreate.
+ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
DROP TABLE t1;
diff --git a/mysql-test/suite/encryption/r/innodb-bad-key-change4.result b/mysql-test/suite/encryption/r/innodb-bad-key-change4.result
index e808d50b..40b377e6 100644
--- a/mysql-test/suite/encryption/r/innodb-bad-key-change4.result
+++ b/mysql-test/suite/encryption/r/innodb-bad-key-change4.result
@@ -12,13 +12,13 @@ INSERT INTO t1 VALUES (1,'foo'),(2,'bar');
# restart: --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys3.txt
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize Error Table 'test.t1' doesn't exist in engine
-test.t1 optimize status Operation failed
+test.t1 optimize Error Table `test`.`t1` is corrupted. Please drop the table and recreate.
+test.t1 optimize error Corrupt
SHOW WARNINGS;
Level Code Message
CHECK TABLE t1;
Table Op Msg_type Msg_text
-test.t1 check Error Table test/t1 is corrupted. Please drop the table and recreate.
+test.t1 check Error Table `test`.`t1` is corrupted. Please drop the table and recreate.
test.t1 check error Corrupt
SHOW WARNINGS;
Level Code Message
diff --git a/mysql-test/suite/encryption/r/innodb-compressed-blob.result b/mysql-test/suite/encryption/r/innodb-compressed-blob.result
index 0dc873b9..6c645ecf 100644
--- a/mysql-test/suite/encryption/r/innodb-compressed-blob.result
+++ b/mysql-test/suite/encryption/r/innodb-compressed-blob.result
@@ -1,7 +1,7 @@
call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[123]\\.ibd' cannot be decrypted; key_version=1");
call mtr.add_suppression("InnoDB: Recovery failed to read page");
call mtr.add_suppression("InnoDB: Unable to decompress ..test.t[1-3]\\.ibd\\[page id: space=[1-9][0-9]*, page number=[0-9]+\\]");
-call mtr.add_suppression("InnoDB: Table `test`\\.`t[12]` is corrupted");
+call mtr.add_suppression("Table `test`\\.`t[12]` is corrupted");
# Restart mysqld --file-key-management-filename=keys2.txt
# restart: --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
SET GLOBAL innodb_file_per_table = ON;
@@ -17,9 +17,9 @@ insert into t3 values (1, repeat('secret',6000));
# Restart mysqld --file-key-management-filename=keys3.txt
# restart: --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys3.txt
select count(*) from t1 FORCE INDEX (b) where b like 'secret%';
-ERROR 42S02: Table 'test.t1' doesn't exist in engine
+ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
select count(*) from t2 FORCE INDEX (b) where b like 'secret%';
-ERROR 42S02: Table 'test.t2' doesn't exist in engine
+ERROR HY000: Table `test`.`t2` is corrupted. Please drop the table and recreate.
select count(*) from t3 FORCE INDEX (b) where b like 'secret%';
count(*)
1
diff --git a/mysql-test/suite/encryption/r/innodb-encryption-disable.result b/mysql-test/suite/encryption/r/innodb-encryption-disable.result
index 179bc550..86c6d636 100644
--- a/mysql-test/suite/encryption/r/innodb-encryption-disable.result
+++ b/mysql-test/suite/encryption/r/innodb-encryption-disable.result
@@ -1,8 +1,7 @@
-call mtr.add_suppression("InnoDB: Table `test`\\.`t[15]` (has an unreadable root page|is corrupted)");
+call mtr.add_suppression("Table `test`\\.`t[15]` (has an unreadable root page|is corrupted)");
call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[15]\\.ibd' cannot be decrypted\\.");
call mtr.add_suppression("InnoDB: Recovery failed to read page");
call mtr.add_suppression("InnoDB: Encrypted page \\[page id: space=[1-9][0-9]*, page number=3\\] in file .*test.t[15].ibd looks corrupted; key_version=1");
-call mtr.add_suppression("InnoDB: Table `test`\\.`t[15]` is corrupted");
call mtr.add_suppression("Couldn't load plugins from 'file_key_management");
# restart: --innodb-encrypt-tables=ON --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
create table t5 (
@@ -24,9 +23,9 @@ insert into t1 values (1,2,'maria','db','encryption');
alter table t1 encrypted='yes' `encryption_key_id`=1;
# restart: --innodb-encrypt-tables=OFF
select * from t1;
-ERROR 42S02: Table 'test.t1' doesn't exist in engine
+ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
select * from t5;
-ERROR 42S02: Table 'test.t5' doesn't exist in engine
+ERROR HY000: Table `test`.`t5` is corrupted. Please drop the table and recreate.
# restart: --innodb-encrypt-tables=ON --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
drop table t1;
drop table t5;
diff --git a/mysql-test/suite/encryption/r/innodb-force-corrupt.result b/mysql-test/suite/encryption/r/innodb-force-corrupt.result
index ad75df95..16cce1d2 100644
--- a/mysql-test/suite/encryption/r/innodb-force-corrupt.result
+++ b/mysql-test/suite/encryption/r/innodb-force-corrupt.result
@@ -1,4 +1,4 @@
-call mtr.add_suppression("InnoDB: Table `test`\\.`t[13]` (has an unreadable root page|is corrupted)");
+call mtr.add_suppression("Table `test`\\.`t[13]` (has an unreadable root page|is corrupted)");
call mtr.add_suppression("InnoDB: Encrypted page \\[page id: space=\\d+, page number=[36]\\] in file .*test.t[123]\\.ibd looks corrupted; key_version=");
call mtr.add_suppression("\\[ERROR\\] InnoDB: We detected index corruption in an InnoDB type table");
call mtr.add_suppression("\\[ERROR\\] (mysqld|mariadbd).*: Index for table 't2' is corrupt; try to repair it");
@@ -18,11 +18,11 @@ COMMIT;
# Corrupt tables
# restart
SELECT * FROM t1;
-ERROR 42S02: Table 'test.t1' doesn't exist in engine
+ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
SELECT * FROM t2;
Got one of the listed errors
SELECT * FROM t3;
-ERROR 42S02: Table 'test.t3' doesn't exist in engine
+ERROR HY000: Table `test`.`t3` is corrupted. Please drop the table and recreate.
# Restore the original tables
# restart
DROP TABLE t1,t2,t3;
diff --git a/mysql-test/suite/encryption/r/innodb-missing-key.result b/mysql-test/suite/encryption/r/innodb-missing-key.result
index d5c1e079..83c9166d 100644
--- a/mysql-test/suite/encryption/r/innodb-missing-key.result
+++ b/mysql-test/suite/encryption/r/innodb-missing-key.result
@@ -38,11 +38,11 @@ SELECT COUNT(1) FROM t2;
COUNT(1)
2048
SELECT COUNT(1) FROM t2,t1 where t2.a = t1.a;
-ERROR 42S02: Table 'test.t1' doesn't exist in engine
+ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
SELECT COUNT(1) FROM t1 where b = 'ab';
-ERROR HY000: Table test/t1 is corrupted. Please drop the table and recreate.
+ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
SELECT COUNT(1) FROM t1;
-ERROR HY000: Table test/t1 is corrupted. Please drop the table and recreate.
+ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
# Start server with keys2.txt
# restart: --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
diff --git a/mysql-test/suite/encryption/r/innodb-redo-nokeys.result b/mysql-test/suite/encryption/r/innodb-redo-nokeys.result
index b7d6eb50..78c2a200 100644
--- a/mysql-test/suite/encryption/r/innodb-redo-nokeys.result
+++ b/mysql-test/suite/encryption/r/innodb-redo-nokeys.result
@@ -23,6 +23,15 @@ insert into t2 select * from t1;
insert into t3 select * from t1;
insert into t4 select * from t1;
commit;
+
+# Flush all dirty pages from buffer pool
+SET @no_checkpoint_save_pct= @@GLOBAL.innodb_max_dirty_pages_pct;
+SET @no_checkpoint_save_pct_lwm= @@GLOBAL.innodb_max_dirty_pages_pct_lwm;
+SET GLOBAL innodb_max_dirty_pages_pct_lwm=0.0;
+SET GLOBAL innodb_max_dirty_pages_pct=0.0;
+SET GLOBAL innodb_max_dirty_pages_pct= @no_checkpoint_save_pct;
+SET GLOBAL innodb_max_dirty_pages_pct_lwm= @no_checkpoint_save_pct_lwm;
+
CREATE TABLE t5 (a VARCHAR(8)) ENGINE=InnoDB ENCRYPTED=YES;
SET GLOBAL innodb_flush_log_at_trx_commit=1;
begin;
@@ -42,6 +51,6 @@ SELECT * FROM INFORMATION_SCHEMA.ENGINES
WHERE engine = 'innodb'
AND support IN ('YES', 'DEFAULT', 'ENABLED');
ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS
-FOUND 1 /\[ERROR\] InnoDB: Encryption key is not found for .*test.t1.ibd/ in mysqld.1.err
+FOUND 1 /\[ERROR\] InnoDB: Encryption key is not found for .*test.t[1-5].ibd/ in mysqld.1.err
# restart: --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
drop table t1,t2,t3,t4,t5;
diff --git a/mysql-test/suite/encryption/t/corrupted_during_recovery.test b/mysql-test/suite/encryption/t/corrupted_during_recovery.test
index 1240ee1a..e4a31a0b 100644
--- a/mysql-test/suite/encryption/t/corrupted_during_recovery.test
+++ b/mysql-test/suite/encryption/t/corrupted_during_recovery.test
@@ -60,7 +60,7 @@ call mtr.add_suppression("Table .*t1.* is corrupted. Please drop the table and r
let $restart_parameters=--innodb_force_recovery=1 --skip-innodb-buffer-pool-load-at-startup;
--source include/restart_mysqld.inc
---error ER_NO_SUCH_TABLE_IN_ENGINE,ER_TABLE_CORRUPT
+--error ER_TABLE_CORRUPT
SELECT * FROM t1;
SELECT * FROM t2;
CHECK TABLE t2;
diff --git a/mysql-test/suite/encryption/t/encrypt_and_grep.test b/mysql-test/suite/encryption/t/encrypt_and_grep.test
index 687f14e8..12593837 100644
--- a/mysql-test/suite/encryption/t/encrypt_and_grep.test
+++ b/mysql-test/suite/encryption/t/encrypt_and_grep.test
@@ -24,8 +24,9 @@ insert t2 values (repeat('tempsecret', 12));
insert t3 values (repeat('dummysecret', 12));
--echo # Wait max 10 min for key encryption threads to encrypt all spaces
+--let $tables_count= `select count(*) + @@global.innodb_undo_tablespaces from information_schema.tables where engine = 'InnoDB'`
--let $wait_timeout= 600
---let $wait_condition=SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0
+--let $wait_condition=SELECT COUNT(*) = $tables_count FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0
--source include/wait_condition.inc
--sorted_result
@@ -95,8 +96,9 @@ UNLOCK TABLES;
SET GLOBAL innodb_encrypt_tables = on;
--echo # Wait max 10 min for key encryption threads to encrypt all spaces
+--let $tables_count= `select count(*) + @@global.innodb_undo_tablespaces from information_schema.tables where engine = 'InnoDB'`
--let $wait_timeout= 600
---let $wait_condition=SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0;
+--let $wait_condition=SELECT COUNT(*) = $tables_count FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0
--source include/wait_condition.inc
--sorted_result
diff --git a/mysql-test/suite/encryption/t/innodb-bad-key-change.test b/mysql-test/suite/encryption/t/innodb-bad-key-change.test
index 05a3b5f4..e9537847 100644
--- a/mysql-test/suite/encryption/t/innodb-bad-key-change.test
+++ b/mysql-test/suite/encryption/t/innodb-bad-key-change.test
@@ -43,7 +43,7 @@ SELECT * FROM t1;
-- source include/restart_mysqld.inc
--disable_warnings
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_TABLE_CORRUPT
SELECT * FROM t1;
--enable_warnings
@@ -72,7 +72,7 @@ INSERT INTO t2 VALUES ('foobar',1,2);
-- source include/restart_mysqld.inc
--disable_warnings
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_TABLE_CORRUPT
SELECT * FROM t2;
--error ER_TABLE_CORRUPT
diff --git a/mysql-test/suite/encryption/t/innodb-bad-key-change2.test b/mysql-test/suite/encryption/t/innodb-bad-key-change2.test
index 21a9ddb2..9ae3c722 100644
--- a/mysql-test/suite/encryption/t/innodb-bad-key-change2.test
+++ b/mysql-test/suite/encryption/t/innodb-bad-key-change2.test
@@ -32,7 +32,7 @@ INSERT INTO t1 VALUES (1,'foo'),(2,'bar');
--let $restart_parameters=--plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys3.txt
--source include/restart_mysqld.inc
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_TABLE_CORRUPT
SELECT * FROM t1;
--replace_regex /key_id [1-9][0-9]*/\1 /
SHOW WARNINGS;
@@ -63,7 +63,7 @@ UNLOCK TABLES;
--let $restart_parameters=--plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys3.txt
--source include/restart_mysqld.inc
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_TABLE_CORRUPT
ALTER TABLE t1 DISCARD TABLESPACE;
# Drop table will succeed.
DROP TABLE t1;
@@ -95,7 +95,7 @@ SHOW CREATE TABLE t1;
--let $restart_parameters= --innodb-encrypt-tables --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys3.txt
--source include/restart_mysqld.inc
---error ER_ERROR_ON_RENAME
+--error ER_TABLE_CORRUPT
RENAME TABLE t1 TO t1new;
--error ER_TABLE_CORRUPT
ALTER TABLE t1 RENAME TO t1new;
diff --git a/mysql-test/suite/encryption/t/innodb-bad-key-change3.test b/mysql-test/suite/encryption/t/innodb-bad-key-change3.test
index 9c2918f3..f4065290 100644
--- a/mysql-test/suite/encryption/t/innodb-bad-key-change3.test
+++ b/mysql-test/suite/encryption/t/innodb-bad-key-change3.test
@@ -16,7 +16,7 @@ call mtr.add_suppression("InnoDB: Cannot calculate statistics for table .* becau
--let $MYSQLD_DATADIR = `SELECT @@datadir`
--let SEARCH_RANGE = 10000000
--let t1_IBD = $MYSQLD_DATADIR/test/t1.ibd
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
@@ -25,7 +25,7 @@ call mtr.add_suppression("InnoDB: Cannot calculate statistics for table .* becau
4;770A8A65DA156D24EE2A093277530143
EOF
---exec echo "restart:--innodb-encrypt-tables --innodb-stats-persistent --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line "restart:--innodb-encrypt-tables --innodb-stats-persistent --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
@@ -47,7 +47,7 @@ UNLOCK TABLES;
ALTER TABLE t1 DISCARD TABLESPACE;
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
@@ -62,7 +62,7 @@ ib_discard_tablespaces("test", "t1");
ib_restore_tablespaces("test", "t1");
EOF
---exec echo "restart:--innodb-encrypt-tables --innodb-stats-persistent --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys2.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line "restart:--innodb-encrypt-tables --innodb-stats-persistent --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys2.txt" $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
--source include/restart_mysqld.inc
@@ -80,7 +80,7 @@ SELECT * FROM t1;
-- let SEARCH_FILE=$t1_IBD
-- source include/search_pattern_in_file.inc
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
--remove_file $MYSQLTEST_VARDIR/keys1.txt
@@ -89,7 +89,7 @@ SELECT * FROM t1;
4;770A8A65DA156D24EE2A093277530143
EOF
---exec echo "restart:--innodb-encrypt-tables --innodb-stats-persistent --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line "restart:--innodb-encrypt-tables --innodb-stats-persistent --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
DROP TABLE t1;
diff --git a/mysql-test/suite/encryption/t/innodb-compressed-blob.test b/mysql-test/suite/encryption/t/innodb-compressed-blob.test
index 12d061a8..645c7235 100644
--- a/mysql-test/suite/encryption/t/innodb-compressed-blob.test
+++ b/mysql-test/suite/encryption/t/innodb-compressed-blob.test
@@ -7,7 +7,7 @@
call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[123]\\.ibd' cannot be decrypted; key_version=1");
call mtr.add_suppression("InnoDB: Recovery failed to read page");
call mtr.add_suppression("InnoDB: Unable to decompress ..test.t[1-3]\\.ibd\\[page id: space=[1-9][0-9]*, page number=[0-9]+\\]");
-call mtr.add_suppression("InnoDB: Table `test`\\.`t[12]` is corrupted");
+call mtr.add_suppression("Table `test`\\.`t[12]` is corrupted");
--echo # Restart mysqld --file-key-management-filename=keys2.txt
-- let $restart_parameters=--file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
@@ -28,9 +28,9 @@ insert into t3 values (1, repeat('secret',6000));
-- let $restart_parameters=--file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys3.txt
-- source include/restart_mysqld.inc
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_TABLE_CORRUPT
select count(*) from t1 FORCE INDEX (b) where b like 'secret%';
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_TABLE_CORRUPT
select count(*) from t2 FORCE INDEX (b) where b like 'secret%';
select count(*) from t3 FORCE INDEX (b) where b like 'secret%';
diff --git a/mysql-test/suite/encryption/t/innodb-encryption-disable.test b/mysql-test/suite/encryption/t/innodb-encryption-disable.test
index 939ad2b5..7a7e590e 100644
--- a/mysql-test/suite/encryption/t/innodb-encryption-disable.test
+++ b/mysql-test/suite/encryption/t/innodb-encryption-disable.test
@@ -7,11 +7,10 @@
# MDEV-9559: Server without encryption configs crashes if selecting from an implicitly encrypted table
#
-call mtr.add_suppression("InnoDB: Table `test`\\.`t[15]` (has an unreadable root page|is corrupted)");
+call mtr.add_suppression("Table `test`\\.`t[15]` (has an unreadable root page|is corrupted)");
call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[15]\\.ibd' cannot be decrypted\\.");
call mtr.add_suppression("InnoDB: Recovery failed to read page");
call mtr.add_suppression("InnoDB: Encrypted page \\[page id: space=[1-9][0-9]*, page number=3\\] in file .*test.t[15].ibd looks corrupted; key_version=1");
-call mtr.add_suppression("InnoDB: Table `test`\\.`t[15]` is corrupted");
# Suppression for builds where file_key_management plugin is linked statically
call mtr.add_suppression("Couldn't load plugins from 'file_key_management");
@@ -43,9 +42,9 @@ alter table t1 encrypted='yes' `encryption_key_id`=1;
--let $restart_parameters=--innodb-encrypt-tables=OFF
--source include/restart_mysqld.inc
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_TABLE_CORRUPT
select * from t1;
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_TABLE_CORRUPT
select * from t5;
--let $restart_parameters=--innodb-encrypt-tables=ON --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
diff --git a/mysql-test/suite/encryption/t/innodb-force-corrupt.test b/mysql-test/suite/encryption/t/innodb-force-corrupt.test
index 51771f1e..861cc78c 100644
--- a/mysql-test/suite/encryption/t/innodb-force-corrupt.test
+++ b/mysql-test/suite/encryption/t/innodb-force-corrupt.test
@@ -7,7 +7,7 @@
# Don't test under embedded
-- source include/not_embedded.inc
-call mtr.add_suppression("InnoDB: Table `test`\\.`t[13]` (has an unreadable root page|is corrupted)");
+call mtr.add_suppression("Table `test`\\.`t[13]` (has an unreadable root page|is corrupted)");
call mtr.add_suppression("InnoDB: Encrypted page \\[page id: space=\\d+, page number=[36]\\] in file .*test.t[123]\\.ibd looks corrupted; key_version=");
call mtr.add_suppression("\\[ERROR\\] InnoDB: We detected index corruption in an InnoDB type table");
call mtr.add_suppression("\\[ERROR\\] (mysqld|mariadbd).*: Index for table 't2' is corrupt; try to repair it");
@@ -68,11 +68,11 @@ EOF
--source include/start_mysqld.inc
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_TABLE_CORRUPT
SELECT * FROM t1;
--error ER_GET_ERRMSG,ER_NOT_KEYFILE
SELECT * FROM t2;
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_TABLE_CORRUPT
SELECT * FROM t3;
--source include/shutdown_mysqld.inc
diff --git a/mysql-test/suite/encryption/t/innodb-missing-key.test b/mysql-test/suite/encryption/t/innodb-missing-key.test
index 53fc820a..0c7a1df9 100644
--- a/mysql-test/suite/encryption/t/innodb-missing-key.test
+++ b/mysql-test/suite/encryption/t/innodb-missing-key.test
@@ -46,7 +46,7 @@ CREATE TABLE t4(a int not null primary key auto_increment, b varchar(128)) engin
SELECT SLEEP(5);
SELECT COUNT(1) FROM t3;
SELECT COUNT(1) FROM t2;
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_TABLE_CORRUPT
SELECT COUNT(1) FROM t2,t1 where t2.a = t1.a;
--error ER_TABLE_CORRUPT
SELECT COUNT(1) FROM t1 where b = 'ab';
diff --git a/mysql-test/suite/encryption/t/innodb-redo-nokeys.test b/mysql-test/suite/encryption/t/innodb-redo-nokeys.test
index 52c12761..9cf515f5 100644
--- a/mysql-test/suite/encryption/t/innodb-redo-nokeys.test
+++ b/mysql-test/suite/encryption/t/innodb-redo-nokeys.test
@@ -44,7 +44,9 @@ insert into t3 select * from t1;
insert into t4 select * from t1;
commit;
+let $no_checkpoint_flush= 1;
--source ../../suite/innodb/include/no_checkpoint_start.inc
+
#
# We test redo log page read at recv_read_page using
# keys that are not in std_data/keys.txt. If checkpoint
@@ -77,7 +79,7 @@ WHERE engine = 'innodb'
AND support IN ('YES', 'DEFAULT', 'ENABLED');
let SEARCH_FILE = $MYSQLTEST_VARDIR/log/mysqld.1.err;
-let SEARCH_PATTERN = \[ERROR\] InnoDB: Encryption key is not found for .*test.t1.ibd;
+let SEARCH_PATTERN = \[ERROR\] InnoDB: Encryption key is not found for .*test.t[1-5].ibd;
--source include/search_pattern_in_file.inc
#
diff --git a/mysql-test/suite/encryption/t/innodb_encrypt_freed.test b/mysql-test/suite/encryption/t/innodb_encrypt_freed.test
index 7ba0b5a2..26c1e8df 100644
--- a/mysql-test/suite/encryption/t/innodb_encrypt_freed.test
+++ b/mysql-test/suite/encryption/t/innodb_encrypt_freed.test
@@ -21,7 +21,7 @@ CREATE TABLE t1(f1 BIGINT PRIMARY KEY, f2 int not null,
SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0;
CREATE TABLE t2 (f1 int not null)engine=innodb;
-let $restart_parameters="--debug=d,ib_log_checkpoint_avoid";
+let $restart_parameters=--debug=d,ib_log_checkpoint_avoid;
--source include/restart_mysqld.inc
# Stop the purge
diff --git a/mysql-test/suite/engines/funcs/r/rpl_change_master.result b/mysql-test/suite/engines/funcs/r/rpl_change_master.result
index 88801b07..48cec72d 100644
--- a/mysql-test/suite/engines/funcs/r/rpl_change_master.result
+++ b/mysql-test/suite/engines/funcs/r/rpl_change_master.result
@@ -26,9 +26,4 @@ connection master;
CHANGE MASTER TO MASTER_USER='root', MASTER_SSL=0, MASTER_SSL_CA='', MASTER_SSL_CERT='',
MASTER_SSL_KEY='', MASTER_SSL_CRL='', MASTER_SSL_CRLPATH='';
CHANGE MASTER TO MASTER_USER='root', MASTER_PASSWORD='', MASTER_SSL=0;
-"Usage of CURRENT_POS in CHANGE MASTER MASTER_USE_GTID is dreprecated.
-CHANGE MASTER TO MASTER_USE_GTID=CURRENT_POS;
-Warnings:
-Warning 1681 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
-CHANGE MASTER TO MASTER_USE_GTID=SLAVE_POS;
include/rpl_end.inc
diff --git a/mysql-test/suite/engines/funcs/r/rpl_get_lock.result b/mysql-test/suite/engines/funcs/r/rpl_get_lock.result
index b852546e..cbb02a32 100644
--- a/mysql-test/suite/engines/funcs/r/rpl_get_lock.result
+++ b/mysql-test/suite/engines/funcs/r/rpl_get_lock.result
@@ -1,6 +1,6 @@
include/master-slave.inc
[connection master]
-CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
+SET GLOBAL LOG_WARNINGS=4;
create table t1(n int);
insert into t1 values(get_lock("lock",2));
disconnect master;
@@ -35,4 +35,5 @@ NULL
connection master1;
drop table t1;
connection slave;
+connection default;
include/rpl_end.inc
diff --git a/mysql-test/suite/engines/funcs/r/tc_partition_analyze.result b/mysql-test/suite/engines/funcs/r/tc_partition_analyze.result
index cd4a0294..ae3305b3 100644
--- a/mysql-test/suite/engines/funcs/r/tc_partition_analyze.result
+++ b/mysql-test/suite/engines/funcs/r/tc_partition_analyze.result
@@ -33,7 +33,6 @@ t1 CREATE TABLE `t1` (
PARTITION `p5` VALUES LESS THAN MAXVALUE ENGINE = ENGINE)
ALTER TABLE t1 ANALYZE PARTITION p1,p2;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
SELECT * FROM t1 ORDER BY c1;
c1 c2
diff --git a/mysql-test/suite/federated/federatedx.result b/mysql-test/suite/federated/federatedx.result
index 49deff81..3054060b 100644
--- a/mysql-test/suite/federated/federatedx.result
+++ b/mysql-test/suite/federated/federatedx.result
@@ -2243,6 +2243,7 @@ connection master;
CREATE TABLE t1(id VARCHAR(20) NOT NULL, PRIMARY KEY(id)) ENGINE=FEDERATED
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/test/t1';
# Dump table t1 using mysqldump tool
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
diff --git a/mysql-test/suite/federated/federatedx_create_handlers.result b/mysql-test/suite/federated/federatedx_create_handlers.result
index 1a2f8c5d..7288c520 100644
--- a/mysql-test/suite/federated/federatedx_create_handlers.result
+++ b/mysql-test/suite/federated/federatedx_create_handlers.result
@@ -521,6 +521,23 @@ use federated;
SELECT * FROM (SELECT * FROM (SELECT * FROM (SELECT * FROM t1 where id=3) dt3
WHERE id=2) dt2) dt;
id name
+PREPARE stmt FROM "
+SELECT * FROM (SELECT * FROM (SELECT * FROM (SELECT * FROM t1 where id=3) dt3
+ WHERE id=3) dt2) dt;
+";
+EXECUTE stmt;
+id name
+3 xxx
+EXECUTE stmt;
+id name
+3 xxx
+DEALLOCATE PREPARE stmt;
+EXPLAIN
+SELECT * FROM (SELECT * FROM (SELECT * FROM (SELECT * FROM t1 where id=3) dt3
+WHERE id=3) dt2) dt;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <derived4> ALL NULL NULL NULL NULL 5 Using where
+4 PUSHED DERIVED NULL NULL NULL NULL NULL NULL NULL NULL
connection slave;
CREATE TABLE federated.t10 (a INT,b INT);
CREATE TABLE federated.t11 (a INT, b INT);
@@ -541,6 +558,54 @@ WHERE id=2) dt2) dt
a b a b id name
1 1 NULL NULL NULL NULL
2 2 NULL NULL NULL NULL
+#
+# MDEV-31361: Second execution of PS for query with derived table
+#
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+id int(20) NOT NULL,
+name varchar(16) NOT NULL default ''
+)
+DEFAULT CHARSET=latin1;
+INSERT INTO federated.t1 VALUES
+(3,'xxx'), (7,'yyy'), (4,'xxx'), (1,'zzz'), (5,'yyy');
+connection master;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+id int(20) NOT NULL,
+name varchar(16) NOT NULL default ''
+)
+ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+use federated;
+SELECT * FROM
+(SELECT * FROM
+(SELECT * FROM
+(SELECT * FROM t1 where id>3) dt3
+WHERE id>3) dt2
+) dt;
+id name
+7 yyy
+4 xxx
+5 yyy
+PREPARE stmt FROM "SELECT * FROM
+(SELECT * FROM
+(SELECT * FROM
+(SELECT * FROM t1 where id>3) dt3
+WHERE id>3) dt2
+) dt";
+EXECUTE stmt;
+id name
+7 yyy
+4 xxx
+5 yyy
+EXECUTE stmt;
+id name
+7 yyy
+4 xxx
+5 yyy
+DEALLOCATE PREPARE stmt;
set global federated_pushdown=0;
connection master;
DROP TABLE IF EXISTS federated.t1;
diff --git a/mysql-test/suite/federated/federatedx_create_handlers.test b/mysql-test/suite/federated/federatedx_create_handlers.test
index 61dc32a2..c5ac36de 100644
--- a/mysql-test/suite/federated/federatedx_create_handlers.test
+++ b/mysql-test/suite/federated/federatedx_create_handlers.test
@@ -94,12 +94,9 @@ DEFAULT CHARSET=latin1;
INSERT INTO federated.t3 VALUES
('yyy'), ('www'), ('yyy'), ('xxx'), ('www'), ('yyy'), ('www');
-#Enable after fix MDEV-31361
---disable_ps2_protocol
SELECT *
FROM federated.t3, (SELECT * FROM federated.t1 WHERE id > 3) t
WHERE federated.t3.name=t.name;
---enable_ps2_protocol
EXPLAIN
SELECT *
@@ -354,6 +351,18 @@ use federated;
SELECT * FROM (SELECT * FROM (SELECT * FROM (SELECT * FROM t1 where id=3) dt3
WHERE id=2) dt2) dt;
+PREPARE stmt FROM "
+SELECT * FROM (SELECT * FROM (SELECT * FROM (SELECT * FROM t1 where id=3) dt3
+ WHERE id=3) dt2) dt;
+";
+EXECUTE stmt;
+EXECUTE stmt;
+DEALLOCATE PREPARE stmt;
+
+EXPLAIN
+SELECT * FROM (SELECT * FROM (SELECT * FROM (SELECT * FROM t1 where id=3) dt3
+ WHERE id=3) dt2) dt;
+
connection slave;
CREATE TABLE federated.t10 (a INT,b INT);
CREATE TABLE federated.t11 (a INT, b INT);
@@ -379,6 +388,52 @@ SELECT * FROM t10 LEFT JOIN
WHERE id=2) dt2) dt
) ON t10.a=t11.a;
+--echo #
+--echo # MDEV-31361: Second execution of PS for query with derived table
+--echo #
+
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+
+CREATE TABLE federated.t1 (
+ id int(20) NOT NULL,
+ name varchar(16) NOT NULL default ''
+)
+DEFAULT CHARSET=latin1;
+
+INSERT INTO federated.t1 VALUES
+ (3,'xxx'), (7,'yyy'), (4,'xxx'), (1,'zzz'), (5,'yyy');
+
+connection master;
+DROP TABLE IF EXISTS federated.t1;
+
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval
+CREATE TABLE federated.t1 (
+ id int(20) NOT NULL,
+ name varchar(16) NOT NULL default ''
+)
+ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+use federated;
+
+let $q=
+SELECT * FROM
+ (SELECT * FROM
+ (SELECT * FROM
+ (SELECT * FROM t1 where id>3) dt3
+ WHERE id>3) dt2
+ ) dt;
+
+eval $q;
+
+eval PREPARE stmt FROM "$q";
+EXECUTE stmt;
+EXECUTE stmt;
+DEALLOCATE PREPARE stmt;
+
+
set global federated_pushdown=0;
source include/federated_cleanup.inc;
diff --git a/mysql-test/suite/galera/disabled.def b/mysql-test/suite/galera/disabled.def
index d6b30bba..752994c4 100644
--- a/mysql-test/suite/galera/disabled.def
+++ b/mysql-test/suite/galera/disabled.def
@@ -17,14 +17,10 @@ galera_ssl_upgrade : [Warning] Failed to load slave replication state from table
galera_parallel_simple : timeout related to wsrep_sync_wait
galera_insert_bulk : MDEV-30536 no expected deadlock in galera_insert_bulk test
galera_sequences : MDEV-32561 WSREP FSM failure: no such a transition REPLICATING -> COMMITTED
-galera_shutdown_nonprim : MDEV-32635 galera_shutdown_nonprim: mysql_shutdown failed
-versioning_trx_id : MDEV-18590 : galera.versioning_trx_id: Test failure: mysqltest: Result content mismatch
galera_concurrent_ctas : MDEV-32779 galera_concurrent_ctas: assertion in the galera::ReplicatorSMM::finish_cert()
galera_as_slave_replay : MDEV-32780 galera_as_slave_replay: assertion in the wsrep::transaction::before_rollback()
galera_slave_replay : MDEV-32780 galera_as_slave_replay: assertion in the wsrep::transaction::before_rollback()
galera_sst_mysqldump_with_key : MDEV-32782 galera_sst_mysqldump_with_key test failed
-mdev-31285 : MDEV-25089 Assertion `error.len > 0' failed in galera::ReplicatorSMM::handle_apply_error()
galera_var_ignore_apply_errors : MENT-1997 galera_var_ignore_apply_errors test freezes
-MW-402 : temporarily disabled at the request of Codership
-MDEV-22232 : temporarily disabled at the request of Codership
galera_desync_overlapped : MDEV-21538 galera_desync_overlapped MTR failed: Result content mismatch
+galera_create_table_as_select : MDEV-33952 fails sporadically
diff --git a/mysql-test/suite/galera/galera_4nodes.cnf b/mysql-test/suite/galera/galera_4nodes.cnf
index 66238a8e..3ad1a66b 100644
--- a/mysql-test/suite/galera/galera_4nodes.cnf
+++ b/mysql-test/suite/galera/galera_4nodes.cnf
@@ -21,6 +21,7 @@ wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#gale
wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port'
+auto-increment-offset=1
[mysqld.2]
wsrep-on=1
@@ -32,6 +33,7 @@ wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#gale
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'
+auto-increment-offset=2
[mysqld.3]
wsrep-on=1
@@ -43,6 +45,7 @@ wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.3.#gale
wsrep_node_address='127.0.0.1:@mysqld.3.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.3.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.3.#sst_port'
+auto-increment-offset=3
[mysqld.4]
wsrep-on=1
@@ -54,6 +57,7 @@ wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.4.#gale
wsrep_node_address='127.0.0.1:@mysqld.4.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.4.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.4.#sst_port'
+auto-increment-offset=4
[ENV]
NODE_MYPORT_1= @mysqld.1.port
diff --git a/mysql-test/suite/galera/include/kill_galera.inc b/mysql-test/suite/galera/include/kill_galera.inc
index 28a1b0f3..3c218a19 100644
--- a/mysql-test/suite/galera/include/kill_galera.inc
+++ b/mysql-test/suite/galera/include/kill_galera.inc
@@ -8,7 +8,7 @@ if (!$kill_signal)
# Write file to make mysql-test-run.pl expect the crash, but don't start it
--let $_expect_file_name= `select regexp_replace(@@tmpdir, '^.*/','')`
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/$_expect_file_name.expect
---exec echo "wait" > $_expect_file_name
+--write_line wait $_expect_file_name
# Kill the connected server
--disable_reconnect
diff --git a/mysql-test/suite/galera/include/shutdown_mysqld.inc b/mysql-test/suite/galera/include/shutdown_mysqld.inc
deleted file mode 100644
index 793be8d7..00000000
--- a/mysql-test/suite/galera/include/shutdown_mysqld.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-# This is the first half of include/restart_mysqld.inc.
-if ($rpl_inited)
-{
- if (!$allow_rpl_inited)
- {
- --die ERROR IN TEST: When using the replication test framework (master-slave.inc, rpl_init.inc etc), use rpl_restart_server.inc instead of restart_mysqld.inc. If you know what you are doing and you really have to use restart_mysqld.inc, set allow_rpl_inited=1 before you source restart_mysqld.inc
- }
-}
-
-# Write file to make mysql-test-run.pl expect the "crash", but don't start it
---let $_expect_file_name= `select regexp_replace(@@tmpdir, '^.*/','')`
---let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/$_expect_file_name.expect
---exec echo "wait" > $_expect_file_name
-
-# Send shutdown to the connected server
---shutdown_server
---source include/wait_until_disconnected.inc
-
diff --git a/mysql-test/suite/galera/include/start_mysqld.inc b/mysql-test/suite/galera/include/start_mysqld.inc
index 57af9203..c9bed71f 100644
--- a/mysql-test/suite/galera/include/start_mysqld.inc
+++ b/mysql-test/suite/galera/include/start_mysqld.inc
@@ -4,12 +4,12 @@
if ($galera_wsrep_start_position != '') {
--echo Using --wsrep-start-position when starting mysqld ...
- --exec echo "restart:$start_mysqld_params --wsrep-start-position=$galera_wsrep_start_position" > $_expect_file_name
+ --write_line "restart:$start_mysqld_params --wsrep-start-position=$galera_wsrep_start_position" $_expect_file_name
--let $galera_wsrep_start_position = 0
}
if ($galera_wsrep_start_position == '') {
- --exec echo "restart:$start_mysqld_params" > $_expect_file_name
+ --write_line "restart:$start_mysqld_params" $_expect_file_name
}
--source include/galera_wait_ready.inc
diff --git a/mysql-test/suite/galera/r/MDEV-22232.result b/mysql-test/suite/galera/r/MDEV-22232.result
index a6a61945..79db271b 100644
--- a/mysql-test/suite/galera/r/MDEV-22232.result
+++ b/mysql-test/suite/galera/r/MDEV-22232.result
@@ -3,21 +3,21 @@ connection node_1;
connect con1,127.0.0.1,root,,test,$NODE_MYPORT_1;
--- CTAS with empty result set ---
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
-SET DEBUG_SYNC = 'create_table_select_before_create SIGNAL may_alter WAIT_FOR bf_abort';
+SET DEBUG_SYNC = 'create_table_select_before_create SIGNAL may_run WAIT_FOR bf_abort';
CREATE TABLE t2 SELECT * FROM t1;
connection node_1;
-SET DEBUG_SYNC = 'now WAIT_FOR may_alter';
-ALTER TABLE t1 DROP FOREIGN KEY b, ALGORITHM=COPY;
+SET DEBUG_SYNC = 'now WAIT_FOR may_run';
+TRUNCATE TABLE t1;
connection con1;
ERROR 70100: Query execution was interrupted
SET DEBUG_SYNC = 'RESET';
--- CTAS with non-empty result set ---
INSERT INTO t1 VALUES (10), (20), (30);
-SET DEBUG_SYNC = 'create_table_select_before_create SIGNAL may_alter WAIT_FOR bf_abort';
+SET DEBUG_SYNC = 'create_table_select_before_create SIGNAL may_run WAIT_FOR bf_abort';
CREATE TABLE t2 SELECT * FROM t1;
connection node_1;
-SET DEBUG_SYNC = 'now WAIT_FOR may_alter';
-ALTER TABLE t1 DROP FOREIGN KEY b, ALGORITHM=COPY;
+SET DEBUG_SYNC = 'now WAIT_FOR may_run';
+TRUNCATE TABLE t1;
connection con1;
ERROR 70100: Query execution was interrupted
SET DEBUG_SYNC = 'RESET';
diff --git a/mysql-test/suite/galera/r/MDEV-24143.result b/mysql-test/suite/galera/r/MDEV-24143.result
index 860d8a35..879e7d9c 100644
--- a/mysql-test/suite/galera/r/MDEV-24143.result
+++ b/mysql-test/suite/galera/r/MDEV-24143.result
@@ -14,7 +14,7 @@ c1
INSERT INTO t1 VALUES (4),(3),(1),(2);
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
CREATE TABLE t1 (pk INT PRIMARY KEY, b INT) ENGINE=SEQUENCE;
-ERROR 42S01: Table 't1' already exists
+ERROR 42000: This version of MariaDB doesn't yet support 'non-InnoDB sequences in Galera cluster'
ALTER TABLE t1 DROP COLUMN c2;
ERROR 42000: Can't DROP COLUMN `c2`; check that it exists
SELECT get_lock ('test', 1.5);
diff --git a/mysql-test/suite/galera/r/MDEV-25731.result b/mysql-test/suite/galera/r/MDEV-25731.result
new file mode 100644
index 00000000..11a72730
--- /dev/null
+++ b/mysql-test/suite/galera/r/MDEV-25731.result
@@ -0,0 +1,47 @@
+connection node_2;
+connection node_1;
+connection node_1;
+SET GLOBAL wsrep_load_data_splitting=ON;
+Warnings:
+Warning 1287 '@@wsrep_load_data_splitting' is deprecated and will be removed in a future release
+SET GLOBAL wsrep_mode=REPLICATE_MYISAM;
+CREATE TABLE t1 (c1 int) ENGINE=MYISAM;
+LOAD DATA INFILE '../../std_data/mdev-25731.dat' IGNORE INTO TABLE t1 LINES TERMINATED BY '\n';
+Warnings:
+Warning 1235 wsrep_load_data_splitting for other than InnoDB tables
+SELECT COUNT(*) AS EXPECT_6 FROM t1;
+EXPECT_6
+6
+connection node_2;
+SELECT COUNT(*) AS EXPECT_6 FROM t1;
+EXPECT_6
+6
+connection node_1;
+ALTER TABLE t1 ENGINE=Aria;
+SET GLOBAL wsrep_mode=REPLICATE_ARIA;
+LOAD DATA INFILE '../../std_data/mdev-25731.dat' IGNORE INTO TABLE t1 LINES TERMINATED BY '\n';
+Warnings:
+Warning 1235 wsrep_load_data_splitting for other than InnoDB tables
+SELECT COUNT(*) AS EXPECT_12 FROM t1;
+EXPECT_12
+12
+connection node_2;
+SELECT COUNT(*) AS EXPECT_12 FROM t1;
+EXPECT_12
+12
+connection node_1;
+ALTER TABLE t1 ENGINE=InnoDB;
+LOAD DATA INFILE '../../std_data/mdev-25731.dat' IGNORE INTO TABLE t1 LINES TERMINATED BY '\n';
+SELECT COUNT(*) AS EXPECT_18 FROM t1;
+EXPECT_18
+18
+connection node_2;
+SELECT COUNT(*) AS EXPECT_18 FROM t1;
+EXPECT_18
+18
+connection node_1;
+DROP TABLE t1;
+SET GLOBAL wsrep_load_data_splitting=OFF;
+Warnings:
+Warning 1287 '@@wsrep_load_data_splitting' is deprecated and will be removed in a future release
+SET GLOBAL wsrep_mode=DEFAULT;
diff --git a/mysql-test/suite/galera/r/MDEV-26499.result b/mysql-test/suite/galera/r/MDEV-26499.result
new file mode 100644
index 00000000..15d37247
--- /dev/null
+++ b/mysql-test/suite/galera/r/MDEV-26499.result
@@ -0,0 +1,6 @@
+connection node_2;
+connection node_1;
+connection node_1;
+connection node_2;
+connection node_2;
+SET GLOBAL debug_dbug="+d,simulate_slow_client_at_shutdown";
diff --git a/mysql-test/suite/galera/r/MDEV-27276.result b/mysql-test/suite/galera/r/MDEV-27276.result
index 7e5b29fa..38e217a9 100644
--- a/mysql-test/suite/galera/r/MDEV-27276.result
+++ b/mysql-test/suite/galera/r/MDEV-27276.result
@@ -16,17 +16,15 @@ connection node_1a;
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
-SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
connection node_1;
COMMIT;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
-SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
SET GLOBAL wsrep_provider_options = 'dbug=';
connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
+connection node_1a;
+SET SESSION DEBUG_SYNC = "RESET";
connection node_2;
SELECT * FROM p;
id f2
diff --git a/mysql-test/suite/galera/r/MDEV-27806.result b/mysql-test/suite/galera/r/MDEV-27806.result
index 0f7ac79e..6fe288f4 100644
--- a/mysql-test/suite/galera/r/MDEV-27806.result
+++ b/mysql-test/suite/galera/r/MDEV-27806.result
@@ -37,7 +37,7 @@ mysqld-bin.000002 # Gtid # # BEGIN GTID #-#-#
mysqld-bin.000002 # Query # # use `test`; CREATE TABLE `ts1` (
`f1` int(11) NOT NULL
)
-mysqld-bin.000002 # Xid # # COMMIT /* XID */
+mysqld-bin.000002 # Query # # COMMIT
connection node_2;
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
diff --git a/mysql-test/suite/galera/r/MDEV-33136.result b/mysql-test/suite/galera/r/MDEV-33136.result
new file mode 100644
index 00000000..36159fa0
--- /dev/null
+++ b/mysql-test/suite/galera/r/MDEV-33136.result
@@ -0,0 +1,21 @@
+connection node_2;
+connection node_1;
+connect node_1a,127.0.0.1,root,,test,$NODE_MYPORT_1;
+connection node_1;
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
+connection node_1a;
+TRUNCATE TABLE t1;
+SET SESSION wsrep_retry_autocommit = 0;
+SET DEBUG_SYNC = 'dict_stats_mdl_acquired SIGNAL may_toi WAIT_FOR bf_abort';
+INSERT INTO t1 VALUES (1);
+connection node_1;
+SET DEBUG_SYNC = 'now WAIT_FOR may_toi';
+TRUNCATE TABLE t1;
+connection node_1a;
+ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
+connection node_1;
+SET DEBUG_SYNC = 'RESET';
+DROP TABLE t1;
+disconnect node_1a;
+disconnect node_2;
+disconnect node_1;
diff --git a/mysql-test/suite/galera/r/MDEV-33828.result b/mysql-test/suite/galera/r/MDEV-33828.result
new file mode 100644
index 00000000..a3ce6816
--- /dev/null
+++ b/mysql-test/suite/galera/r/MDEV-33828.result
@@ -0,0 +1,41 @@
+connection node_2;
+connection node_1;
+SET AUTOCOMMIT=ON;
+SELECT @@autocommit;
+@@autocommit
+1
+SET LOCAL enforce_storage_engine=InnoDB;
+CREATE TABLE t1(id int not null primary key auto_increment, name varchar(64)) ENGINE=InnoDB;
+INSERT INTO t1(name) VALUES ('name1'),('name3'),('name6'),('name2');
+CREATE PROCEDURE sel_proc()
+BEGIN
+DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;
+SELECT * FROM t1;
+END|
+CREATE PROCEDURE ins_proc()
+BEGIN
+DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;
+INSERT INTO t1 VALUES ('name_proc');
+END|
+SET AUTOCOMMIT=OFF;
+SELECT @@autocommit;
+@@autocommit
+0
+START TRANSACTION;
+insert into t1(name) values('name10');
+select param_list, returns, db, type from mysql.proc where name='sel_proc';
+param_list returns db type
+ test PROCEDURE
+call ins_proc();
+COMMIT;
+SET AUTOCOMMIT=ON;
+SELECT * FROM t1;
+id name
+1 name1
+3 name3
+5 name6
+7 name2
+9 name10
+DROP TABLE t1;
+DROP PROCEDURE sel_proc;
+DROP PROCEDURE ins_proc;
diff --git a/mysql-test/suite/galera/r/MW-336.result b/mysql-test/suite/galera/r/MW-336.result
index 8996b85c..e0cb1ee0 100644
--- a/mysql-test/suite/galera/r/MW-336.result
+++ b/mysql-test/suite/galera/r/MW-336.result
@@ -1,7 +1,8 @@
connection node_2;
connection node_1;
connection node_1;
-CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB;
+SET @wsrep_slave_threads_orig = @@wsrep_slave_threads;
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY AUTO_INCREMENT) Engine=InnoDB;
SET GLOBAL wsrep_slave_threads = 10;
# Set slave threads to 10 step 1
SELECT VARIABLE_VALUE AS EXPECT_10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
@@ -9,7 +10,7 @@ EXPECT_10
10
SET GLOBAL wsrep_slave_threads = 1;
connection node_2;
-INSERT INTO t1 VALUES (1);
+INSERT INTO t1 VALUES (NULL);
connection node_1;
# Wait until one of the appliers has exited
SELECT VARIABLE_VALUE AS EXPECT_9 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
@@ -27,33 +28,14 @@ EXPECT_20
20
SET GLOBAL wsrep_slave_threads = 1;
connection node_2;
-INSERT INTO t1 VALUES (1);
-INSERT INTO t1 VALUES (2);
-INSERT INTO t1 VALUES (3);
-INSERT INTO t1 VALUES (4);
-INSERT INTO t1 VALUES (5);
-INSERT INTO t1 VALUES (6);
-INSERT INTO t1 VALUES (7);
-INSERT INTO t1 VALUES (8);
-INSERT INTO t1 VALUES (9);
-INSERT INTO t1 VALUES (10);
-INSERT INTO t1 VALUES (11);
-INSERT INTO t1 VALUES (12);
-INSERT INTO t1 VALUES (13);
-INSERT INTO t1 VALUES (14);
-INSERT INTO t1 VALUES (16);
-INSERT INTO t1 VALUES (17);
-INSERT INTO t1 VALUES (18);
-INSERT INTO t1 VALUES (19);
-INSERT INTO t1 VALUES (20);
connection node_1;
# Wait until 19 of the appliers has exited
SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
EXPECT_1
1
-SELECT COUNT(*) FROM t1;
-COUNT(*)
-20
+SELECT COUNT(*) AS EXPECT_51 FROM t1;
+EXPECT_51
+51
SET GLOBAL wsrep_slave_threads = 10;
# Set slave threads to 10 step 3
SELECT VARIABLE_VALUE AS EXPECT_10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
@@ -62,22 +44,12 @@ EXPECT_10
connection node_1;
SET GLOBAL wsrep_slave_threads = 1;
connection node_2;
-INSERT INTO t1 VALUES (21);
-INSERT INTO t1 VALUES (22);
-INSERT INTO t1 VALUES (23);
-INSERT INTO t1 VALUES (24);
-INSERT INTO t1 VALUES (25);
-INSERT INTO t1 VALUES (26);
-INSERT INTO t1 VALUES (27);
-INSERT INTO t1 VALUES (28);
-INSERT INTO t1 VALUES (29);
-INSERT INTO t1 VALUES (30);
connection node_1;
# Wait until slave threads back to 1
SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
EXPECT_1
1
-SELECT COUNT(*) FROM t1;
-COUNT(*)
-30
+SELECT COUNT(*) AS EXPECT_101 FROM t1;
+EXPECT_101
+101
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/MW-369.result b/mysql-test/suite/galera/r/MW-369.result
index 9f0a77ed..b4fb8668 100644
--- a/mysql-test/suite/galera/r/MW-369.result
+++ b/mysql-test/suite/galera/r/MW-369.result
@@ -12,22 +12,20 @@ START TRANSACTION;
DELETE FROM p WHERE f1 = 1;
connection node_1a;
SET SESSION wsrep_sync_wait = 0;
-SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
+SET GLOBAL DEBUG_DBUG = "d,sync.wsrep_apply_cb";
connection node_2;
INSERT INTO c VALUES (1, 1);
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'dbug=';
-SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached";
connection node_1;
+SET DEBUG_SYNC = "wsrep_after_certification SIGNAL after_certification_reached WAIT_FOR continue_after_certification";
COMMIT;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
-SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
-SET GLOBAL wsrep_provider_options = 'dbug=';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR after_certification_reached";
+SET DEBUG_SYNC = 'now SIGNAL continue_after_certification';
+SET DEBUG_SYNC = 'now SIGNAL signal.wsrep_apply_cb';
+SET GLOBAL DEBUG_DBUG = "";
+SET DEBUG_SYNC = 'RESET';
connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
connection node_2;
@@ -54,22 +52,20 @@ START TRANSACTION;
UPDATE p SET f2 = 1 WHERE f1 = 1;
connection node_1a;
SET SESSION wsrep_sync_wait = 0;
-SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
+SET GLOBAL DEBUG_DBUG = "d,sync.wsrep_apply_cb";
connection node_2;
UPDATE c SET f2 = 1 WHERE f1 = 1;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'dbug=';
-SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached";
connection node_1;
+SET DEBUG_SYNC = "wsrep_after_certification SIGNAL after_certification_reached WAIT_FOR continue_after_certification";
COMMIT;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
-SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
-SET GLOBAL wsrep_provider_options = 'dbug=';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR after_certification_reached";
+SET DEBUG_SYNC = 'now SIGNAL continue_after_certification';
+SET DEBUG_SYNC = 'now SIGNAL signal.wsrep_apply_cb';
+SET GLOBAL DEBUG_DBUG = "";
+SET DEBUG_SYNC = 'RESET';
connection node_1;
connection node_2;
SELECT * FROM p;
@@ -94,22 +90,20 @@ START TRANSACTION;
UPDATE p SET f2 = 1 WHERE f1 = 1;
connection node_1a;
SET SESSION wsrep_sync_wait = 0;
-SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
+SET GLOBAL DEBUG_DBUG = "d,sync.wsrep_apply_cb";
connection node_2;
DELETE FROM c WHERE f1 = 1;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'dbug=';
-SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached";
connection node_1;
+SET DEBUG_SYNC = "wsrep_after_certification SIGNAL after_certification_reached WAIT_FOR continue_after_certification";
COMMIT;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
-SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
-SET GLOBAL wsrep_provider_options = 'dbug=';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR after_certification_reached";
+SET DEBUG_SYNC = 'now SIGNAL continue_after_certification';
+SET DEBUG_SYNC = 'now SIGNAL signal.wsrep_apply_cb';
+SET GLOBAL DEBUG_DBUG = "";
+SET DEBUG_SYNC = 'RESET';
connection node_1;
connection node_2;
SELECT * FROM p;
@@ -130,22 +124,20 @@ START TRANSACTION;
UPDATE p SET f2 = 1 WHERE f1 = 1;
connection node_1a;
SET SESSION wsrep_sync_wait = 0;
-SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
+SET GLOBAL DEBUG_DBUG = "d,sync.wsrep_apply_cb";
connection node_2;
INSERT INTO c VALUES (1, 0);;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'dbug=';
-SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached";
connection node_1;
+SET DEBUG_SYNC = "wsrep_after_certification SIGNAL after_certification_reached WAIT_FOR continue_after_certification";
COMMIT;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
-SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
-SET GLOBAL wsrep_provider_options = 'dbug=';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR after_certification_reached";
+SET DEBUG_SYNC = 'now SIGNAL continue_after_certification';
+SET DEBUG_SYNC = 'now SIGNAL signal.wsrep_apply_cb';
+SET GLOBAL DEBUG_DBUG = "";
+SET DEBUG_SYNC = 'RESET';
connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
connection node_2;
@@ -170,22 +162,20 @@ START TRANSACTION;
DELETE FROM p WHERE f1 = 1;
connection node_1a;
SET SESSION wsrep_sync_wait = 0;
-SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
+SET GLOBAL DEBUG_DBUG = "d,sync.wsrep_apply_cb";
connection node_2;
UPDATE c SET f2 = 1 WHERE f1 = 1;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'dbug=';
-SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached";
connection node_1;
+SET DEBUG_SYNC = "wsrep_after_certification SIGNAL after_certification_reached WAIT_FOR continue_after_certification";
COMMIT;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
-SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
-SET GLOBAL wsrep_provider_options = 'dbug=';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR after_certification_reached";
+SET DEBUG_SYNC = 'now SIGNAL continue_after_certification';
+SET DEBUG_SYNC = 'now SIGNAL signal.wsrep_apply_cb';
+SET GLOBAL DEBUG_DBUG = "";
+SET DEBUG_SYNC = 'RESET';
connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
connection node_2;
@@ -215,22 +205,20 @@ START TRANSACTION;
INSERT INTO cf (f1, p_id) VALUES (10, 1);
connection node_1a;
SET SESSION wsrep_sync_wait = 0;
-SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
+SET GLOBAL DEBUG_DBUG = "d,sync.wsrep_apply_cb";
connection node_2;
INSERT INTO cf (f1, p_id) VALUES (20, 1);
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'dbug=';
-SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached";
connection node_1;
+SET DEBUG_SYNC = "wsrep_after_certification SIGNAL after_certification_reached WAIT_FOR continue_after_certification";
COMMIT;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
-SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
-SET GLOBAL wsrep_provider_options = 'dbug=';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR after_certification_reached";
+SET DEBUG_SYNC = 'now SIGNAL continue_after_certification';
+SET DEBUG_SYNC = 'now SIGNAL signal.wsrep_apply_cb';
+SET GLOBAL DEBUG_DBUG = "";
+SET DEBUG_SYNC = 'RESET';
connection node_1;
connection node_2;
SELECT * FROM pf;
@@ -255,22 +243,20 @@ START TRANSACTION;
UPDATE pg SET f2 = 1 WHERE f1 = 1;
connection node_1a;
SET SESSION wsrep_sync_wait = 0;
-SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
+SET GLOBAL DEBUG_DBUG = "d,sync.wsrep_apply_cb";
connection node_2;
INSERT INTO cg VALUES (1, 1, 0);
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'dbug=';
-SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached";
connection node_1;
+SET DEBUG_SYNC = "wsrep_after_certification SIGNAL after_certification_reached WAIT_FOR continue_after_certification";
COMMIT;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
-SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
-SET GLOBAL wsrep_provider_options = 'dbug=';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR after_certification_reached";
+SET DEBUG_SYNC = 'now SIGNAL continue_after_certification';
+SET DEBUG_SYNC = 'now SIGNAL signal.wsrep_apply_cb';
+SET GLOBAL DEBUG_DBUG = "";
+SET DEBUG_SYNC = 'RESET';
connection node_1;
connection node_2;
SELECT * FROM pg;
diff --git a/mysql-test/suite/galera/r/MW-402.result b/mysql-test/suite/galera/r/MW-402.result
index f692c90d..e936b835 100644
--- a/mysql-test/suite/galera/r/MW-402.result
+++ b/mysql-test/suite/galera/r/MW-402.result
@@ -15,22 +15,20 @@ START TRANSACTION;
UPDATE c SET f2=1 where f1=1;
connection node_1a;
SET SESSION wsrep_sync_wait = 0;
-SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
+SET GLOBAL DEBUG_DBUG = "d,sync.wsrep_apply_cb";
connection node_2;
DELETE FROM p WHERE f1 = 1;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'dbug=';
-SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached";
connection node_1;
+SET DEBUG_SYNC = "wsrep_after_certification SIGNAL after_certification_reached WAIT_FOR continue_after_certification";
COMMIT;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
-SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
-SET GLOBAL wsrep_provider_options = 'dbug=';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR after_certification_reached";
+SET DEBUG_SYNC = 'now SIGNAL continue_after_certification';
+SET DEBUG_SYNC = 'now SIGNAL signal.wsrep_apply_cb';
+SET GLOBAL DEBUG_DBUG = "";
+SET DEBUG_SYNC = 'RESET';
connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
connection node_2;
@@ -55,22 +53,20 @@ START TRANSACTION;
UPDATE c SET f2=2 where f1=1;
connection node_1a;
SET SESSION wsrep_sync_wait = 0;
-SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
+SET GLOBAL DEBUG_DBUG = "d,sync.wsrep_apply_cb";
connection node_2;
UPDATE p set f1=11 WHERE f1 = 1;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'dbug=';
-SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached";
connection node_1;
+SET DEBUG_SYNC = "wsrep_after_certification SIGNAL after_certification_reached WAIT_FOR continue_after_certification";
COMMIT;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
-SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
-SET GLOBAL wsrep_provider_options = 'dbug=';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR after_certification_reached";
+SET DEBUG_SYNC = 'now SIGNAL continue_after_certification';
+SET DEBUG_SYNC = 'now SIGNAL signal.wsrep_apply_cb';
+SET GLOBAL DEBUG_DBUG = "";
+SET DEBUG_SYNC = 'RESET';
connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
connection node_2;
@@ -97,22 +93,20 @@ START TRANSACTION;
UPDATE c SET p_id=2 where f1=1;
connection node_1a;
SET SESSION wsrep_sync_wait = 0;
-SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
+SET GLOBAL DEBUG_DBUG = "d,sync.wsrep_apply_cb";
connection node_2;
UPDATE p set f1=11 WHERE f1 = 1;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'dbug=';
-SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached";
connection node_1;
+SET DEBUG_SYNC = "wsrep_after_certification SIGNAL after_certification_reached WAIT_FOR continue_after_certification";
COMMIT;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
-SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
-SET GLOBAL wsrep_provider_options = 'dbug=';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR after_certification_reached";
+SET DEBUG_SYNC = 'now SIGNAL continue_after_certification';
+SET DEBUG_SYNC = 'now SIGNAL signal.wsrep_apply_cb';
+SET GLOBAL DEBUG_DBUG = "";
+SET DEBUG_SYNC = 'RESET';
connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
connection node_2;
@@ -130,22 +124,20 @@ START TRANSACTION;
UPDATE p set f1=21 WHERE f1 = 11;
connection node_1a;
SET SESSION wsrep_sync_wait = 0;
-SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
+SET GLOBAL DEBUG_DBUG = "d,sync.wsrep_apply_cb";
connection node_2;
UPDATE c SET p_id=2 where f1=1;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'dbug=';
-SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached";
connection node_1;
+SET DEBUG_SYNC = "wsrep_after_certification SIGNAL after_certification_reached WAIT_FOR continue_after_certification";
COMMIT;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
-SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
-SET GLOBAL wsrep_provider_options = 'dbug=';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR after_certification_reached";
+SET DEBUG_SYNC = 'now SIGNAL continue_after_certification';
+SET DEBUG_SYNC = 'now SIGNAL signal.wsrep_apply_cb';
+SET GLOBAL DEBUG_DBUG = "";
+SET DEBUG_SYNC = 'RESET';
connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
connection node_2;
@@ -176,22 +168,20 @@ START TRANSACTION;
UPDATE p2 SET f2=2 where f1=1;
connection node_1a;
SET SESSION wsrep_sync_wait = 0;
-SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
+SET GLOBAL DEBUG_DBUG = "d,sync.wsrep_apply_cb";
connection node_2;
DELETE FROM p1 WHERE f1 = 1;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'dbug=';
-SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached";
connection node_1;
+SET DEBUG_SYNC = "wsrep_after_certification SIGNAL after_certification_reached WAIT_FOR continue_after_certification";
COMMIT;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
-SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
-SET GLOBAL wsrep_provider_options = 'dbug=';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR after_certification_reached";
+SET DEBUG_SYNC = 'now SIGNAL continue_after_certification';
+SET DEBUG_SYNC = 'now SIGNAL signal.wsrep_apply_cb';
+SET GLOBAL DEBUG_DBUG = "";
+SET DEBUG_SYNC = 'RESET';
connection node_1;
connection node_2;
SELECT * FROM p1;
@@ -223,22 +213,20 @@ START TRANSACTION;
DELETE FROM p2 WHERE f1=1;
connection node_1a;
SET SESSION wsrep_sync_wait = 0;
-SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
+SET GLOBAL DEBUG_DBUG = "d,sync.wsrep_apply_cb";
connection node_2;
DELETE FROM p1 WHERE f1=1;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'dbug=';
-SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached";
connection node_1;
+SET DEBUG_SYNC = "wsrep_after_certification SIGNAL after_certification_reached WAIT_FOR continue_after_certification";
COMMIT;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
-SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
-SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
-SET GLOBAL wsrep_provider_options = 'dbug=';
+SET SESSION DEBUG_SYNC = "now WAIT_FOR after_certification_reached";
+SET DEBUG_SYNC = 'now SIGNAL continue_after_certification';
+SET DEBUG_SYNC = 'now SIGNAL signal.wsrep_apply_cb';
+SET GLOBAL DEBUG_DBUG = "";
+SET DEBUG_SYNC = 'RESET';
connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
connection node_2;
diff --git a/mysql-test/suite/galera/r/galera_bf_abort_mariabackup.result b/mysql-test/suite/galera/r/galera_bf_abort_mariabackup.result
index 88c200ee..fa056803 100644
--- a/mysql-test/suite/galera/r/galera_bf_abort_mariabackup.result
+++ b/mysql-test/suite/galera/r/galera_bf_abort_mariabackup.result
@@ -12,9 +12,9 @@ connection node_1;
connection node_2;
Starting server ...
connection node_1;
-# Both should return FOUND 2 as we have bootstrap and SST
-FOUND 2 /Desyncing and pausing the provider/ in mysqld.1.err
-FOUND 2 /Resuming and resyncing the provider/ in mysqld.1.err
+# Both should return NOT FOUND as we have mariabackup with backup locks
+NOT FOUND /Desyncing and pausing the provider/ in mysqld.1.err
+NOT FOUND /Resuming and resyncing the provider/ in mysqld.1.err
connection node_1;
SET GLOBAL wsrep_mode = "BF_ABORT_MARIABACKUP";
# Restart node_2, force SST.
@@ -25,9 +25,9 @@ connection node_2;
Starting server ...
connection node_2;
connection node_1;
-# Both should return FOUND 3 as we have 1 new SST
-FOUND 3 /Desyncing and pausing the provider/ in mysqld.1.err
-FOUND 3 /Resuming and resyncing the provider/ in mysqld.1.err
+# Both should return NOT FOUND as we have mariabackup with backup locks
+NOT FOUND /Desyncing and pausing the provider/ in mysqld.1.err
+NOT FOUND /Resuming and resyncing the provider/ in mysqld.1.err
SET GLOBAL wsrep_mode = "";
DROP TABLE t;
# Case 2: MariaBackup backup from node_2
@@ -46,11 +46,13 @@ SET GLOBAL wsrep_mode = "BF_ABORT_MARIABACKUP";
SELECT @@wsrep_mode;
@@wsrep_mode
BF_ABORT_MARIABACKUP
-# Both should return FOUND 1 as node should not desync
-FOUND 1 /Desyncing and pausing the provider/ in mysqld.2.err
-FOUND 1 /Resuming and resyncing the provider/ in mysqld.2.err
-# Should return FOUND 1 because only last backup does not desync
-FOUND 1 /Server not desynched from group because WSREP_MODE_BF_MARIABACKUP used./ in mysqld.2.err
+# Both should return FOUND 2 because both backups do desync but on different points
+FOUND 2 /Desyncing and pausing the provider/ in mysqld.2.err
+FOUND 2 /Resuming and resyncing the provider/ in mysqld.2.err
+# Should return FOUND 1 as server did not desync at BLOCK_DDL
+FOUND 1 /Server not desynched from group at BLOCK_DDL because WSREP_MODE_BF_MARIABACKUP is used./ in mysqld.2.err
+# Should return FOUND 1 as server did desync and pause at BLOCK_COMMIT
+FOUND 1 /Server desynched from group during BACKUP STAGE BLOCK_COMMIT./ in mysqld.2.err
SET GLOBAL wsrep_mode = "";
connection node_1;
DROP TABLE t;
diff --git a/mysql-test/suite/galera/r/galera_load_data.result b/mysql-test/suite/galera/r/galera_load_data.result
index 84e96f8a..c275eb02 100644
--- a/mysql-test/suite/galera/r/galera_load_data.result
+++ b/mysql-test/suite/galera/r/galera_load_data.result
@@ -26,9 +26,308 @@ PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1324 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED;
LOCK TABLES cardtest_tbl WRITE;
ALTER TABLE cardtest_tbl DISABLE KEYS;
-Warnings:
-Note 1031 Storage engine InnoDB of the table `cardtest02`.`cardtest_tbl` doesn't have this option
-INSERT INTO cardtest_tbl VALUES (1,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(2,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(3,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(4,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(5,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(6,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(7,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(8,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(9,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(10,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(11,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(12,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(13,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(14,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(15,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(16,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(17,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(18,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(19,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(20,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(21,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(22,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(23,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(24,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(25,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(26,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(27,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(28,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(29,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(30,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(31,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(32,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(33,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(34,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(35,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(36,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(37,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(38,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(39,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(40,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(41,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(42,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(43,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(44,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(45,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(46,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(47,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(48,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(49,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(50,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(51,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(52,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(53,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(54,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(55,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(56,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(57,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(58,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(59,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(60,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(61,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(62,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(63,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(64,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(65,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(66,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(67,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(68,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(69,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(70,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(71,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(72,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(73,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(74,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(75,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(76,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(77,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(78,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(79,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(80,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(81,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(82,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(83,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(84,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(85,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(86,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(87,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(88,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(89,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(90,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(91,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(92,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(93,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(94,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(95,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(96,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(97,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(98,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(99,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(100,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(101,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(102,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(103,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(104,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(105,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(106,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(107,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(108,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(109,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(110,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(111,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(112,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(113,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(114,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(115,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(116,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(117,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(118,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(119,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(120,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(121,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(122,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(123,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(124,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(125,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(126,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(127,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(128,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(129,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(130,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(131,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(132,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(133,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(134,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(135,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(136,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(137,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(138,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(139,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(140,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(141,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(142,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(143,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(144,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(145,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(146,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(147,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(148,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(149,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(150,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(151,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(152,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(153,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(154,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(155,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(156,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(157,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(158,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(159,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(160,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(161,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(162,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(163,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(164,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(165,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(166,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(167,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(168,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(169,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(170,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(171,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(172,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(173,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(174,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(175,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(176,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(177,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(178,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(179,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(180,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(181,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(182,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(183,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(184,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(185,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(186,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(187,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(188,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(189,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(190,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(191,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(192,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(193,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(194,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(195,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(196,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(197,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(198,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(199,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(200,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(201,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(202,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(203,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(204,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(205,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(206,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(207,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(208,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(209,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(210,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(211,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(212,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(213,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(214,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(215,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(216,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(217,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(218,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(219,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(220,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(221,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(222,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(223,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(224,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(225,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(226,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(227,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(228,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(229,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(230,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(231,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(232,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(233,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(234,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(235,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(236,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(237,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(238,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(239,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(240,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(241,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(242,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(243,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(244,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(245,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(246,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(247,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(248,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(249,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(250,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(251,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(252,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(253,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(254,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(255,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(256,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(257,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(258,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(259,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(260,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(261,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(262,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(263,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(264,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(265,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(266,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(267,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(268,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(269,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(270,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(271,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(272,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(273,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(274,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(275,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(276,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(277,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(278,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(279,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(280,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(281,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(282,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(283,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(284,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(285,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(286,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(287,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(288,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(289,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(290,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(291,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(292,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(293,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(294,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(295,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(296,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(297,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(298,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(299,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(300,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(301,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL);
+INSERT INTO cardtest_tbl VALUES
+(1,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(2,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(3,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(4,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(5,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(6,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(7,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(8,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(9,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(10,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(11,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(12,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(13,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(14,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(15,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(16,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(17,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(18,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(19,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(20,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(21,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(22,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(23,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(24,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(25,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(26,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(27,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(28,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(29,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(30,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(31,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(32,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(33,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(34,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(35,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(36,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(37,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(38,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(39,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(40,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(41,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(42,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(43,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(44,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(45,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(46,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(47,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(48,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(49,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(50,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(51,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(52,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(53,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(54,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(55,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(56,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(57,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(58,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(59,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(60,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(61,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(62,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(63,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(64,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(65,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(66,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(67,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(68,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(69,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(70,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(71,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(72,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(73,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(74,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(75,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(76,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(77,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(78,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(79,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(80,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(81,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(82,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(83,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(84,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(85,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(86,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(87,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(88,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(89,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(90,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(91,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(92,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(93,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(94,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(95,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(96,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(97,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(98,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(99,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(100,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(101,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(102,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(103,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(104,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(105,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(106,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(107,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(108,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(109,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(110,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(111,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(112,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(113,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(114,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(115,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(116,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(117,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(118,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(119,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(120,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(121,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(122,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(123,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(124,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(125,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(126,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(127,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(128,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(129,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(130,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(131,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(132,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(133,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(134,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(135,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(136,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(137,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(138,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(139,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(140,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(141,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(142,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(143,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(144,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(145,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(146,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(147,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(148,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(149,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(150,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(151,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(152,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(153,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(154,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(155,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(156,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(157,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(158,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(159,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(160,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(161,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(162,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(163,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(164,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(165,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(166,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(167,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(168,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(169,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(170,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(171,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(172,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(173,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(174,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(175,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(176,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(177,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(178,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(179,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(180,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(181,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(182,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(183,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(184,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(185,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(186,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(187,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(188,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(189,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(190,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(191,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(192,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(193,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(194,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(195,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(196,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(197,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(198,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(199,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(200,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(201,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(202,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(203,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(204,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(205,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(206,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(207,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(208,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(209,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(210,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(211,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(212,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(213,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(214,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(215,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(216,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(217,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(218,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(219,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(220,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(221,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(222,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(223,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(224,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(225,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(226,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(227,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(228,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(229,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(230,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(231,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(232,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(233,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(234,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(235,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(236,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(237,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(238,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(239,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(240,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(241,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(242,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(243,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(244,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(245,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(246,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(247,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(248,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(249,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(250,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(251,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(252,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(253,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(254,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(255,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(256,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(257,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(258,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(259,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(260,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(261,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(262,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(263,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(264,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(265,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(266,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(267,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(268,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(269,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(270,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(271,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(272,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(273,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(274,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(275,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(276,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(277,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(278,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(279,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(280,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(281,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(282,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(283,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(284,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(285,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(286,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(287,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(288,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(289,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(290,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(291,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(292,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(293,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(294,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(295,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(296,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(297,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(298,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(299,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(300,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+(301,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL);
ALTER TABLE cardtest_tbl ENABLE KEYS;
Warnings:
Note 1031 Storage engine InnoDB of the table `cardtest02`.`cardtest_tbl` doesn't have this option
diff --git a/mysql-test/suite/galera/r/galera_mdl_race.result b/mysql-test/suite/galera/r/galera_mdl_race.result
index cf747ed8..a7f0bc8e 100644
--- a/mysql-test/suite/galera/r/galera_mdl_race.result
+++ b/mysql-test/suite/galera/r/galera_mdl_race.result
@@ -1,44 +1,68 @@
connection node_2;
connection node_1;
+connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(1)) engine=innodb;
CREATE TABLE t2 (f1 INTEGER PRIMARY KEY, f2 CHAR(1)) engine=innodb;
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;
+SET SESSION wsrep_sync_wait=0;
LOCK TABLE t2 WRITE;
connection node_1;
-SET @@debug_dbug = "d,sync.wsrep_before_mdl_wait";
+SET DEBUG_SYNC= 'wsrep_before_mdl_wait SIGNAL before_mdl_wait WAIT_FOR mdl_wait_continue';
SELECT * FROM t2;;
connection node_1a;
+# Wait until select is blocked before MDL lock wait
+SET DEBUG_SYNC= 'now WAIT_FOR before_mdl_wait';
+connection node_1a;
SET @@debug_dbug = "d,sync.wsrep_after_BF_victim_lock";
connection node_2;
UPDATE t1 SET f2 = 'c' WHERE f1 = 1;
-connection node_1a;
-SET @@debug_dbug = "";
-SET DEBUG_SYNC = "now SIGNAL signal.wsrep_before_mdl_wait";
+connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1;
+connection node_1b;
+SET SESSION wsrep_sync_wait=0;
+# Wait for conflicting update to block
SET DEBUG_SYNC = "now SIGNAL signal.wsrep_after_BF_victim_lock";
+connect node_1c, 127.0.0.1, root, , test, $NODE_MYPORT_1;
+connection node_1c;
+connection node_1a;
+SET DEBUG_SYNC = "now SIGNAL BF_victim_continue";
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
+connection node_1;
+SELECT COUNT(*) AS EXPECT_1 FROM t1 WHERE f2 = 'a';
+EXPECT_1
1
-SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'c';
-COUNT(*) = 1
+SELECT COUNT(*) AS EXPECT_1 FROM t1 WHERE f2 = 'c';
+EXPECT_1
1
+SELECT * FROM t1;
+f1 f2
+1 c
+2 a
connection node_2;
-SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'a';
-COUNT(*) = 1
+SELECT COUNT(*) AS EXPECT_1 FROM t1 WHERE f2 = 'a';
+EXPECT_1
1
-SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'c';
-COUNT(*) = 1
+SELECT COUNT(*) AS EXPECT_1 FROM t1 WHERE f2 = 'c';
+EXPECT_1
1
+SELECT * FROM t1;
+f1 f2
+1 c
+2 a
DROP TABLE t1;
DROP TABLE t2;
connection node_1a;
SET DEBUG_SYNC = "RESET";
+connection node_1b;
+SET DEBUG_SYNC = "RESET";
+connection node_1;
+disconnect node_1a;
+disconnect node_1b;
+disconnect node_1c;
diff --git a/mysql-test/suite/galera/r/galera_myisam_autocommit.result b/mysql-test/suite/galera/r/galera_myisam_autocommit.result
index b80af779..23883ef3 100644
--- a/mysql-test/suite/galera/r/galera_myisam_autocommit.result
+++ b/mysql-test/suite/galera/r/galera_myisam_autocommit.result
@@ -15,16 +15,37 @@ UPDATE t1 SET f1 = 9;
UPDATE t2 SET f1 = 9 WHERE f1 = 1;
DELETE FROM t1 WHERE f1 = 9;
DELETE FROM t2 WHERE f1 = 9;
+SELECT * FROM t1 ORDER BY f1;
+f1
+SELECT * FROM t2 ORDER BY f1;
+f1
+2
+3
+4
+5
+6
+connection node_2;
+SELECT * FROM t1 ORDER BY f1;
+f1
+SELECT * FROM t2 ORDER BY f1;
+f1
+2
+3
+4
+5
+6
TRUNCATE TABLE t1;
-TRUNCATE TABLE t1;
+TRUNCATE TABLE t2;
+SELECT * FROM t1 ORDER BY f1;
+f1
+SELECT * FROM t2 ORDER BY f1;
+f1
connection node_2;
-SELECT COUNT(*) = 0 FROM t1;
-COUNT(*) = 0
-1
-SELECT COUNT(*) = 0 FROM t2;
-COUNT(*) = 0
-0
+SELECT * FROM t1 ORDER BY f1;
+f1
+SELECT * FROM t2 ORDER BY f1;
+f1
connection node_1;
+SET GLOBAL wsrep_mode=DEFAULT;
DROP TABLE t1;
DROP TABLE t2;
-SET GLOBAL wsrep_mode=DEFAULT;
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 a15b0c7d..bc61cfb4 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
@@ -10,7 +10,7 @@ INSERT INTO t1 VALUES (1);
INSERT INTO t2 VALUES (1);
connection node_2a;
SET SESSION wsrep_sync_wait=0;
-SELECT COUNT(*) AS EXPECT_1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE (STATE LIKE '%committing%' or STATE = 'Waiting for certification');
+SELECT COUNT(*) AS EXPECT_1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE (STATE LIKE 'Commit' or STATE = 'Waiting for certification');
EXPECT_1
1
SELECT COUNT(*) AS EXPECT_1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE '%Waiting for table metadata lock%';
diff --git a/mysql-test/suite/galera/r/galera_query_cache_invalidate.result b/mysql-test/suite/galera/r/galera_query_cache_invalidate.result
index 4a6b61e4..fc23c0f1 100644
--- a/mysql-test/suite/galera/r/galera_query_cache_invalidate.result
+++ b/mysql-test/suite/galera/r/galera_query_cache_invalidate.result
@@ -8,8 +8,6 @@ connection node_4;
call mtr.add_suppression("WSREP: Ignoring server id for non bootstrap node.");
connection node_3;
CHANGE MASTER TO master_host='127.0.0.1', master_user='root', master_port=NODE_MYPORT_1, master_use_gtid=current_pos;;
-Warnings:
-Warning 1681 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
START SLAVE;
include/wait_for_slave_to_start.inc
connection node_1;
diff --git a/mysql-test/suite/galera/r/galera_sequence_engine.result b/mysql-test/suite/galera/r/galera_sequence_engine.result
new file mode 100644
index 00000000..93e6c46b
--- /dev/null
+++ b/mysql-test/suite/galera/r/galera_sequence_engine.result
@@ -0,0 +1,12 @@
+connection node_2;
+connection node_1;
+SET GLOBAL wsrep_ignore_apply_errors=0;
+SET SESSION AUTOCOMMIT=0;
+SET SESSION max_error_count=0;
+CREATE TABLE t0 (id GEOMETRY,parent_id GEOMETRY)ENGINE=SEQUENCE;
+ERROR 42000: This version of MariaDB doesn't yet support 'non-InnoDB sequences in Galera cluster'
+connection node_2;
+SHOW CREATE TABLE t0;
+ERROR 42S02: Table 'test.t0' doesn't exist
+connection node_1;
+SET GLOBAL wsrep_ignore_apply_errors=DEFAULT;
diff --git a/mysql-test/suite/galera/r/galera_shutdown_nonprim.result b/mysql-test/suite/galera/r/galera_shutdown_nonprim.result
index 8b769743..d577eab9 100644
--- a/mysql-test/suite/galera/r/galera_shutdown_nonprim.result
+++ b/mysql-test/suite/galera/r/galera_shutdown_nonprim.result
@@ -5,7 +5,12 @@ connection node_2;
connection node_1;
SET GLOBAL wsrep_provider_options = 'pc.weight=2';
connection node_2;
-SET GLOBAL wsrep_provider_options = 'gmcast.isolate = 1';
SET SESSION wsrep_sync_wait = 0;
+SET GLOBAL wsrep_provider_options = 'gmcast.isolate = 1';
+connection node_1;
+connection node_2;
+SHOW STATUS LIKE 'wsrep_cluster_status';
+Variable_name Value
+wsrep_cluster_status non-Primary
connection node_1;
SET GLOBAL wsrep_provider_options = 'pc.weight = 1';
diff --git a/mysql-test/suite/galera/r/galera_sst_mariabackup,debug.rdiff b/mysql-test/suite/galera/r/galera_sst_mariabackup,debug.rdiff
index 3aad611c..9dc84549 100644
--- a/mysql-test/suite/galera/r/galera_sst_mariabackup,debug.rdiff
+++ b/mysql-test/suite/galera/r/galera_sst_mariabackup,debug.rdiff
@@ -1,6 +1,6 @@
---- r/galera_sst_mariabackup.result
-+++ r/galera_sst_mariabackup.reject
-@@ -516,5 +516,189 @@
+--- galera/r/galera_sst_mariabackup.result 2024-04-11 09:53:12.950512316 +0300
++++ galera/r/galera_sst_mariabackup,debug.reject 2024-04-11 10:00:36.771144955 +0300
+@@ -524,6 +524,190 @@
1
DROP TABLE t1;
COMMIT;
@@ -188,5 +188,6 @@
+DROP TABLE t1;
+COMMIT;
+SET GLOBAL debug_dbug = $debug_orig;
- disconnect node_2;
- disconnect node_1;
+ connection node_2;
+ Shutting down server ...
+ connection node_1;
diff --git a/mysql-test/suite/galera/r/galera_sst_mariabackup.result b/mysql-test/suite/galera/r/galera_sst_mariabackup.result
index caf602c0..374f714e 100644
--- a/mysql-test/suite/galera/r/galera_sst_mariabackup.result
+++ b/mysql-test/suite/galera/r/galera_sst_mariabackup.result
@@ -2,6 +2,14 @@ connection node_2;
connection node_1;
connection node_1;
connection node_2;
+connection node_1;
+select @@innodb_undo_tablespaces;
+@@innodb_undo_tablespaces
+0
+connection node_2;
+select @@innodb_undo_tablespaces;
+@@innodb_undo_tablespaces
+3
Performing State Transfer on a server that has been shut down cleanly and restarted
connection node_1;
CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
@@ -516,5 +524,17 @@ COUNT(*) = 0
1
DROP TABLE t1;
COMMIT;
+connection node_2;
+Shutting down server ...
+connection node_1;
+connection node_2;
+Starting server ...
+Using --wsrep-start-position when starting mysqld ...
+connection node_1;
+connection node_2;
+select @@innodb_undo_tablespaces;
+@@innodb_undo_tablespaces
+3
+call mtr.add_suppression("InnoDB: Cannot change innodb_undo_tablespaces=3 because previous shutdown was not with innodb_fast_shutdown=0");
disconnect node_2;
disconnect node_1;
diff --git a/mysql-test/suite/galera/r/galera_table_with_hyphen.result b/mysql-test/suite/galera/r/galera_table_with_hyphen.result
new file mode 100644
index 00000000..c9993004
--- /dev/null
+++ b/mysql-test/suite/galera/r/galera_table_with_hyphen.result
@@ -0,0 +1,52 @@
+connection node_2;
+connection node_1;
+connection node_1;
+set wsrep_sync_wait=0;
+connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
+SET SESSION wsrep_sync_wait = 0;
+connection node_1;
+SET GLOBAL wsrep_slave_threads=2;
+CREATE TABLE `par-ent` ( id INT AUTO_INCREMENT PRIMARY KEY, j INT) ENGINE=InnoDB;
+CREATE TABLE `child` (id INT AUTO_INCREMENT PRIMARY KEY, parent_id INT, j INT, FOREIGN KEY (parent_id) REFERENCES `par-ent`(id)) ENGINE=InnoDB;
+INSERT INTO `par-ent` VALUES (23,0);
+connection node_2;
+connection node_1a;
+SET GLOBAL DEBUG_DBUG='+d,wsrep_ha_write_row';
+connection node_2;
+INSERT INTO `child` VALUES (21,23,0),(22,23,0),(23,23,0);
+connection node_1a;
+SET DEBUG_SYNC='now WAIT_FOR wsrep_ha_write_row_reached';
+connection node_2;
+UPDATE `par-ent` SET j=2 WHERE id=23;
+connection node_1a;
+SET GLOBAL DEBUG_DBUG='-d,wsrep_ha_write_row';
+SET DEBUG_SYNC='now SIGNAL wsrep_ha_write_row_continue';
+SET GLOBAL DEBUG_DBUG="RESET";
+SET DEBUG_SYNC = 'RESET';
+SET GLOBAL wsrep_slave_threads=DEFAULT;
+connection node_2;
+drop table `child`;
+drop table `par-ent`;
+connection node_1;
+SET GLOBAL wsrep_slave_threads=2;
+CREATE TABLE `p-arent-` ( id INT AUTO_INCREMENT PRIMARY KEY, j INT) ENGINE=InnoDB;
+CREATE TABLE `c-hild` (id INT AUTO_INCREMENT PRIMARY KEY, parent_id INT, j INT, FOREIGN KEY (parent_id) REFERENCES `p-arent-`(id)) ENGINE=InnoDB;
+INSERT INTO `p-arent-` VALUES (23,0);
+connection node_2;
+connection node_1a;
+SET GLOBAL DEBUG_DBUG='+d,wsrep_ha_write_row';
+connection node_2;
+INSERT INTO `c-hild` VALUES (21,23,0),(22,23,0),(23,23,0);
+connection node_1a;
+SET DEBUG_SYNC='now WAIT_FOR wsrep_ha_write_row_reached';
+connection node_2;
+UPDATE `p-arent-` SET j=2 WHERE id=23;
+connection node_1a;
+SET GLOBAL DEBUG_DBUG='-d,wsrep_ha_write_row';
+SET DEBUG_SYNC='now SIGNAL wsrep_ha_write_row_continue';
+SET GLOBAL DEBUG_DBUG="RESET";
+SET DEBUG_SYNC = 'RESET';
+SET GLOBAL wsrep_slave_threads=DEFAULT;
+connection node_2;
+drop table `c-hild`;
+drop table `p-arent-`;
diff --git a/mysql-test/suite/galera/r/galera_vote_rejoin_ddl.result b/mysql-test/suite/galera/r/galera_vote_rejoin_ddl.result
index c6b3d8fa..ff0063fb 100644
--- a/mysql-test/suite/galera/r/galera_vote_rejoin_ddl.result
+++ b/mysql-test/suite/galera/r/galera_vote_rejoin_ddl.result
@@ -1,7 +1,5 @@
connection node_2;
connection node_1;
-connection node_1;
-connection node_2;
connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3;
connect node_4, 127.0.0.1, root, , test, $NODE_MYPORT_4;
connection node_1;
@@ -55,6 +53,7 @@ expect_0
SELECT COUNT(*) AS expect_1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't2';
expect_1
1
+CALL mtr.add_suppression("WSREP: Vote 0 \\(success\\) on .* is inconsistent with group. Leaving cluster.");
connection node_4;
SELECT COUNT(*) AS expect_0 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
expect_0
@@ -64,3 +63,5 @@ expect_1
1
CALL mtr.add_suppression("WSREP: Vote 0 \\(success\\) on .* is inconsistent with group. Leaving cluster.");
DROP TABLE t2;
+disconnect node_3;
+disconnect node_4;
diff --git a/mysql-test/suite/galera/r/galera_wan_restart_sst.result b/mysql-test/suite/galera/r/galera_wan_restart_sst.result
index 2433a1d9..edaefe0e 100644
--- a/mysql-test/suite/galera/r/galera_wan_restart_sst.result
+++ b/mysql-test/suite/galera/r/galera_wan_restart_sst.result
@@ -10,7 +10,7 @@ SELECT VARIABLE_VALUE AS EXPECT_4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VA
EXPECT_4
4
connection node_1;
-CREATE TABLE t1 (f1 INTEGER);
+CREATE TABLE t1 (f1 INTEGER NOT NULL PRIMARY KEY) ENGINE=INNODB;
INSERT INTO t1 VALUES (1);
connection node_2;
INSERT INTO t1 VALUES (2);
@@ -20,6 +20,8 @@ connection node_4;
INSERT INTO t1 VALUES (4);
connection node_3;
INSERT INTO t1 VALUES (13);
+connection node_1;
+connection node_3;
Killing server ...
connection node_1;
INSERT INTO t1 VALUES (11);
@@ -29,8 +31,11 @@ connection node_4;
INSERT INTO t1 VALUES (14);
connection node_3;
INSERT INTO t1 VALUES (131);
+connection node_1;
connection node_2;
INSERT INTO t1 VALUES (22);
+connection node_1;
+connection node_2;
Killing server ...
connection node_1;
INSERT INTO t1 VALUES (21);
@@ -42,6 +47,8 @@ connection node_2;
INSERT INTO t1 VALUES (221);
connection node_4;
INSERT INTO t1 VALUES (34);
+connection node_1;
+connection node_4;
Killing server ...
connection node_1;
INSERT INTO t1 VALUES (31);
diff --git a/mysql-test/suite/galera/r/mdev-22063.result b/mysql-test/suite/galera/r/mdev-22063.result
new file mode 100644
index 00000000..155d1ebb
--- /dev/null
+++ b/mysql-test/suite/galera/r/mdev-22063.result
@@ -0,0 +1,241 @@
+connection node_2;
+connection node_1;
+# Case 1 CREATE SEQUENCE with no NOCACHE
+CREATE SEQUENCE s ENGINE=InnoDB;
+ERROR 42000: This version of MariaDB doesn't yet support 'CACHE without INCREMENT BY 0 in Galera cluster'
+CREATE SEQUENCE s NOCACHE ENGINE=InnoDB;
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+START TRANSACTION;
+REPLACE INTO s VALUES (1,1,9223372036854775806,1,1,1000,0,0);
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
+test.t1 optimize status OK
+SELECT * FROM t1;
+a
+SELECT * FROM s;
+next_not_cached_value minimum_value maximum_value start_value increment cache_size cycle_option cycle_count
+1 1 9223372036854775806 1 1 1000 0 0
+connection node_2;
+SELECT * FROM t1;
+a
+SELECT * FROM s;
+next_not_cached_value minimum_value maximum_value start_value increment cache_size cycle_option cycle_count
+1 1 9223372036854775806 1 1 1000 0 0
+connection node_1;
+DROP TABLE t1;
+DROP SEQUENCE s;
+# Case 2 REPLACE INTO ... SELECT with error
+CREATE TABLE t (id INT KEY,a YEAR,INDEX (id,a)) engine=innodb;
+REPLACE INTO t (id,a)SELECT /*!99997 */ 1;
+ERROR 21S01: Column count doesn't match value count at row 1
+REPLACE INTO t (id,a)SELECT /*!99997 */ 1,2;
+SELECT * FROM t;
+id a
+1 2002
+CREATE TABLE t2 (id INT KEY,a YEAR,INDEX (id,a)) engine=myisam;
+REPLACE INTO t2 (id,a)SELECT /*!99997 */ 1;
+ERROR 21S01: Column count doesn't match value count at row 1
+REPLACE INTO t2 (id,a)SELECT /*!99997 */ 1,2;
+Warnings:
+Warning 138 Galera cluster does support consistency check only for InnoDB tables.
+SELECT * FROM t2;
+id a
+1 2002
+CREATE TABLE t3 (id INT KEY,a YEAR,INDEX (id,a)) engine=aria;
+REPLACE INTO t3 (id,a)SELECT /*!99997 */ 1;
+ERROR 21S01: Column count doesn't match value count at row 1
+REPLACE INTO t3 (id,a)SELECT /*!99997 */ 1,2;
+Warnings:
+Warning 138 Galera cluster does support consistency check only for InnoDB tables.
+SELECT * FROM t3;
+id a
+1 2002
+connection node_2;
+SELECT * FROM t;
+id a
+1 2002
+SELECT * FROM t2;
+id a
+1 2002
+SELECT * FROM t3;
+id a
+1 2002
+connection node_1;
+DROP TABLE t,t2,t3;
+# Bigger REPLACE ... AS SELECT test
+CREATE TABLE t1(id int not null primary key ,b int) ENGINE=InnoDB;
+CREATE TABLE t2(id int not null primary key ,b int) ENGINE=MyISAM;
+CREATE TABLE t3(id int not null primary key ,b int) ENGINE=Aria;
+CREATE TABLE t4(id int not null primary key ,b int) ENGINE=InnoDB;
+CREATE TABLE t5(id int not null primary key ,b int) ENGINE=InnoDB;
+CREATE TABLE t6(id int not null primary key ,b int) ENGINE=InnoDB;
+CREATE TABLE t7(id int not null primary key ,b int) ENGINE=MyISAM;
+CREATE TABLE t8(id int not null primary key ,b int) ENGINE=Aria;
+INSERT INTO t1(id) SELECT seq FROM seq_1_to_1000;
+INSERT INTO t2(id) SELECT seq FROM seq_1_to_1000;
+INSERT INTO t3(id) SELECT seq FROM seq_1_to_1000;
+REPLACE INTO t4 SELECT * FROM t1;
+REPLACE INTO t5 SELECT * FROM t2;
+REPLACE INTO t6 SELECT * FROM t3;
+REPLACE INTO t7 SELECT * FROM t2;
+REPLACE INTO t8 SELECT * FROM t3;
+SELECT COUNT(*) AS EXPECT_1000 FROM t1;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t2;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t3;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t4;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t5;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t6;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t7;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t8;
+EXPECT_1000
+1000
+connection node_2;
+SELECT COUNT(*) AS EXPECT_1000 FROM t1;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t2;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t3;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t4;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t5;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t6;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t7;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t8;
+EXPECT_1000
+1000
+connection node_1;
+DROP TABLE t1,t2,t3,t4,t5,t6,t7,t8;
+# Bigger INSERT INTO ... SELECT test
+CREATE TABLE t1(id int not null primary key ,b int) ENGINE=InnoDB;
+CREATE TABLE t2(id int not null primary key ,b int) ENGINE=MyISAM;
+CREATE TABLE t3(id int not null primary key ,b int) ENGINE=Aria;
+CREATE TABLE t4(id int not null primary key ,b int) ENGINE=InnoDB;
+CREATE TABLE t5(id int not null primary key ,b int) ENGINE=InnoDB;
+CREATE TABLE t6(id int not null primary key ,b int) ENGINE=InnoDB;
+CREATE TABLE t7(id int not null primary key ,b int) ENGINE=MyISAM;
+CREATE TABLE t8(id int not null primary key ,b int) ENGINE=Aria;
+INSERT INTO t1(id) SELECT seq FROM seq_1_to_1000;
+INSERT INTO t2(id) SELECT seq FROM seq_1_to_1000;
+INSERT INTO t3(id) SELECT seq FROM seq_1_to_1000;
+INSERT INTO t4 SELECT * FROM t1;
+INSERT INTO t5 SELECT * FROM t2;
+INSERT INTO t6 SELECT * FROM t3;
+INSERT INTO t7 SELECT * FROM t2;
+INSERT INTO t8 SELECT * FROM t3;
+SELECT COUNT(*) AS EXPECT_1000 FROM t1;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t2;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t3;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t4;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t5;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t6;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t7;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t8;
+EXPECT_1000
+1000
+connection node_2;
+SELECT COUNT(*) AS EXPECT_1000 FROM t1;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t2;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t3;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t4;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t5;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t6;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t7;
+EXPECT_1000
+1000
+SELECT COUNT(*) AS EXPECT_1000 FROM t8;
+EXPECT_1000
+1000
+connection node_1;
+DROP TABLE t1,t2,t3,t4,t5,t6,t7,t8;
+CREATE TABLE t1(pk int not null primary key) engine=innodb;
+INSERT INTO t1 values (1),(2),(3),(4);
+CREATE VIEW view_t1 AS SELECT * FROM t1;
+INSERT INTO view_t1 VALUES (5);
+SELECT * FROM t1;
+pk
+1
+2
+3
+4
+5
+DROP TABLE t1;
+DROP VIEW view_t1;
+CREATE TABLE t1(pk int not null primary key) engine=myisam;
+INSERT INTO t1 values (1),(2),(3),(4);
+CREATE VIEW view_t1 AS SELECT * FROM t1;
+INSERT INTO view_t1 VALUES (5);
+SELECT * FROM t1;
+pk
+1
+2
+3
+4
+5
+DROP TABLE t1;
+DROP VIEW view_t1;
+CREATE TABLE t1(pk int not null primary key) engine=aria;
+INSERT INTO t1 values (1),(2),(3),(4);
+CREATE VIEW view_t1 AS SELECT * FROM t1;
+INSERT INTO view_t1 VALUES (5);
+SELECT * FROM t1;
+pk
+1
+2
+3
+4
+5
+DROP TABLE t1;
+DROP VIEW view_t1;
+SET GLOBAL wsrep_mode=DEFAULT;
diff --git a/mysql-test/suite/galera/r/mdev-31285.result b/mysql-test/suite/galera/r/mdev-31285.result
index 228f62fa..58fcb385 100644
--- a/mysql-test/suite/galera/r/mdev-31285.result
+++ b/mysql-test/suite/galera/r/mdev-31285.result
@@ -1,23 +1,8 @@
connection node_2;
connection node_1;
connection node_1;
-connection node_2;
-connection node_1;
CREATE TABLE t ENGINE=InnoDB WITH SYSTEM VERSIONING AS SELECT 1 AS i;
-SHOW CREATE TABLE t;
-Table Create Table
-t CREATE TABLE `t` (
- `i` int(1) NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci WITH SYSTEM VERSIONING
-SELECT * from t;
-i
-1
-DROP TABLE IF EXISTS t;
-COMMIT;
+ERROR 42000: This version of MariaDB doesn't yet support 'SYSTEM VERSIONING AS SELECT in Galera cluster'
connection node_2;
-SET SESSION wsrep_sync_wait=0;
-Killing server ...
-Starting server ...
-connection node_2;
-call mtr.add_suppression("WSREP: Event .*Write_rows_v1 apply failed:.*");
-call mtr.add_suppression("SREP: Failed to apply write set: gtid:.*");
+SHOW CREATE TABLE t;
+ERROR 42S02: Table 'test.t' doesn't exist
diff --git a/mysql-test/suite/galera/r/mysql-wsrep#332.result b/mysql-test/suite/galera/r/mysql-wsrep#332.result
index 565979a9..16b07817 100644
--- a/mysql-test/suite/galera/r/mysql-wsrep#332.result
+++ b/mysql-test/suite/galera/r/mysql-wsrep#332.result
@@ -21,14 +21,10 @@ connection node_1a;
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
-SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
connection node_1;
COMMIT;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
-SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
SET GLOBAL wsrep_provider_options = 'dbug=';
connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
@@ -64,14 +60,10 @@ connection node_1a;
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
-SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
connection node_1;
COMMIT;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
-SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
SET GLOBAL wsrep_provider_options = 'dbug=';
connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
@@ -112,14 +104,10 @@ connection node_1a;
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
-SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
connection node_1;
COMMIT;
connection node_1a;
-SET SESSION wsrep_on = 0;
-SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
-SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
SET GLOBAL wsrep_provider_options = 'dbug=';
connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
diff --git a/mysql-test/suite/galera/r/rpl_galera_to_mariadb_clone_slave_using_mariadb-backup.result b/mysql-test/suite/galera/r/rpl_galera_to_mariadb_clone_slave_using_mariadb-backup.result
new file mode 100644
index 00000000..76c13fa7
--- /dev/null
+++ b/mysql-test/suite/galera/r/rpl_galera_to_mariadb_clone_slave_using_mariadb-backup.result
@@ -0,0 +1,211 @@
+connection node_2;
+connection node_1;
+#
+# MDEV-33355 Add a Galera-2-node-to-MariaDB replication MTR test cloning the slave with mariadb-backup
+#
+connect master, 127.0.0.1, root, , test, $NODE_MYPORT_1;
+connect slave, 127.0.0.1, root, , test, $NODE_MYPORT_3;
+START SLAVE;
+include/wait_for_slave_to_start.inc
+connection master;
+connection slave;
+##############################################################
+### Initial block with some transactions
+### Slave: Make sure replication is not using GTID
+connection slave;
+# Using_Gtid=No
+### Master: Create and populate t1
+connection master;
+CREATE TABLE t1(a TEXT) ENGINE=InnoDB;
+START TRANSACTION;
+INSERT INTO t1 VALUES ('tr#00:stmt#00 - slave run#0, before backup');
+INSERT INTO t1 VALUES ('tr#00:stmt#01 - slave run#0, before backup');
+INSERT INTO t1 VALUES ('tr#00:stmt#02 - slave run#0, before backup');
+COMMIT;
+connection slave;
+##############################################################
+### Run the last transaction before mariadb-backup --backup
+### Remember SHOW MASTER STATUS and @@gtid_binlog_pos
+### before and after the transaction.
+### Master: Rember MASTER STATUS and @@gtid_binlog_pos before tr#01
+connection master;
+### Slave: Remember MASTER STATUS and @@gtid_binlog_pos before tr#01
+connection slave;
+### Master: Run the actual last transaction before the backup
+connection master;
+START TRANSACTION;
+INSERT INTO t1 VALUES ('tr#01:stmt#00 - slave run#0, before backup');
+INSERT INTO t1 VALUES ('tr#01:stmt#01 - slave run#0, before backup');
+INSERT INTO t1 VALUES ('tr#01:stmt#02 - slave run#0, before backup');
+COMMIT;
+connection slave;
+### Master: Remember MASTER STATUS and @@gtid_binlog_pos after tr#01
+connection master;
+### Slave: Remember MASTER STATUS and @@gtid_binlog_pos after tr#01
+connection slave;
+##############################################################
+### Running `mariadb-backup --backup,--prepare` and checking
+### that xtrabackup_slave_info and xtrabackup_binlog_info are OK
+### Slave: Create a backup
+### Slave: Prepare the backup
+### Slave: xtrabackup files:
+############################ xtrabackup_slave_info
+CHANGE MASTER TO MASTER_LOG_FILE='master_after_tr01_show_master_status_file', MASTER_LOG_POS=master_after_tr01_show_master_status_position;
+############################ xtrabackup_binlog_info
+slave_after_tr01_show_master_status_file slave_after_tr01_show_master_status_position slave_after_tr01_gtid_binlog_pos
+############################
+##############################################################
+### Run more transactions after the backup:
+### - while the slave is still running, then
+### - while the slave is shut down
+### Master: Run another transaction while the slave is still running
+connection master;
+START TRANSACTION;
+INSERT INTO t1 VALUES ('tr#02:stmt#00 - slave run#0, after backup');
+INSERT INTO t1 VALUES ('tr#02:stmt#01 - slave run#0, after backup');
+INSERT INTO t1 VALUES ('tr#02:stmt@02 - slave run#0, after backup');
+COMMIT;
+connection slave;
+### Master: Remember MASTER STATUS and @@gtid_binlog_pos after tr#02
+connection master;
+### Slave: Remember MASTER STATUS and @@gtid_binlog_pos after tr#02
+connection slave;
+### Master: Checking SHOW BINLOG EVENTS
+connection master;
+SHOW BINLOG EVENTS IN 'master_after_tr01_show_master_status_file' FROM master_after_tr01_show_master_status_position LIMIT 0,1;
+Log_name master_after_tr01_show_master_status_file
+Pos master_after_tr01_show_master_status_position
+Event_type Gtid
+Server_id #
+End_log_pos #
+Info BEGIN GTID master_after_tr02_gtid_binlog_pos
+SHOW BINLOG EVENTS IN 'master_after_tr01_show_master_status_file' FROM master_after_tr01_show_master_status_position LIMIT 1,1;
+Log_name master_after_tr01_show_master_status_file
+Pos #
+Event_type Query_or_Annotate_rows
+Server_id #
+End_log_pos #
+Info INSERT INTO t1 VALUES ('tr#02:stmt#00 - slave run#0, after backup')
+### Slave: Checking SHOW BINLOG EVENTS
+connection slave;
+SHOW BINLOG EVENTS IN 'slave_after_tr01_show_master_status_file' FROM slave_after_tr01_show_master_status_position LIMIT 0,1;
+Log_name slave_after_tr01_show_master_status_file
+Pos #
+Event_type Gtid
+Server_id 1
+End_log_pos #
+Info BEGIN GTID slave_after_tr02_gtid_binlog_pos
+SHOW BINLOG EVENTS IN 'slave_after_tr01_show_master_status_file' FROM slave_after_tr01_show_master_status_position LIMIT 1,1;
+Log_name slave_after_tr01_show_master_status_file
+Pos #
+Event_type Query_or_Annotate_rows
+Server_id #
+End_log_pos #
+Info INSERT INTO t1 VALUES ('tr#02:stmt#00 - slave run#0, after backup')
+### Slave: Stop replication
+connection slave;
+STOP SLAVE;
+include/wait_for_slave_to_stop.inc
+RESET SLAVE;
+Warnings:
+Note 4190 RESET SLAVE is implicitly changing the value of 'Using_Gtid' from 'No' to 'Slave_Pos'
+### Slave: Shutdown the server
+connection slave;
+### Master: Run a transaction while the slave is shut down
+connection master;
+START TRANSACTION;
+INSERT INTO t1 VALUES ('tr#03:stmt#00 - after slave run#0, slave is shut down, after backup');
+INSERT INTO t1 VALUES ('tr#03:stmt#01 - after slave run#0, slave is shut down, after backup');
+INSERT INTO t1 VALUES ('tr#03:stmt#02 - after slave run#0, slave is shut down, after backup');
+COMMIT;
+##############################################################
+### Emulate starting a new virgin slave
+### Slave: Remove the data directory
+### Slave: Copy back the backup
+### Slave: Restart the server
+connection slave;
+# restart
+### Slave: Display the restored data before START SLAVE
+connection slave;
+SELECT * FROM t1 ORDER BY a;
+a
+tr#00:stmt#00 - slave run#0, before backup
+tr#00:stmt#01 - slave run#0, before backup
+tr#00:stmt#02 - slave run#0, before backup
+tr#01:stmt#00 - slave run#0, before backup
+tr#01:stmt#01 - slave run#0, before backup
+tr#01:stmt#02 - slave run#0, before backup
+### Slave: Execute the CHANGE MASTER statement to set up the host and port
+CHANGE MASTER '' TO MASTER_USER='root', MASTER_HOST='127.0.0.1', MASTER_PORT=###, MASTER_CONNECT_RETRY=1;
+### Slave: Execute the CHANGE MASTER statement from xtrabackup_slave_info
+CHANGE MASTER TO MASTER_LOG_FILE='master_after_tr01_show_master_status_file', MASTER_LOG_POS=master_after_tr01_show_master_status_position;
+Warnings:
+Note 4190 CHANGE MASTER TO is implicitly changing the value of 'Using_Gtid' from 'Slave_Pos' to 'No'
+### Slave: Execute START SLAVE
+include/start_slave.inc
+### Master: Wait for the slave to apply all master events
+connection master;
+connection slave;
+### Slave: Make sure replication is not using GTID after the slave restart
+connection slave;
+# Using_Gtid=No
+### Slave: Display the restored data after START SLAVE
+connection slave;
+SELECT * FROM t1 ORDER BY a;
+a
+tr#00:stmt#00 - slave run#0, before backup
+tr#00:stmt#01 - slave run#0, before backup
+tr#00:stmt#02 - slave run#0, before backup
+tr#01:stmt#00 - slave run#0, before backup
+tr#01:stmt#01 - slave run#0, before backup
+tr#01:stmt#02 - slave run#0, before backup
+tr#02:stmt#00 - slave run#0, after backup
+tr#02:stmt#01 - slave run#0, after backup
+tr#02:stmt@02 - slave run#0, after backup
+tr#03:stmt#00 - after slave run#0, slave is shut down, after backup
+tr#03:stmt#01 - after slave run#0, slave is shut down, after backup
+tr#03:stmt#02 - after slave run#0, slave is shut down, after backup
+##############################################################
+### Continue master transactions, check the new slave replicates well.
+### Master: Run a transaction after restarting replication
+connection master;
+START TRANSACTION;
+INSERT INTO t1 VALUES ('tr#04:stmt#00 - slave run#1');
+INSERT INTO t1 VALUES ('tr#04:stmt#01 - slave run#1');
+INSERT INTO t1 VALUES ('tr#04:stmt#02 - slave run#1');
+COMMIT;
+connection slave;
+### Slave: Display the restored data + new transactions
+connection slave;
+SELECT * FROM t1 ORDER BY a;
+a
+tr#00:stmt#00 - slave run#0, before backup
+tr#00:stmt#01 - slave run#0, before backup
+tr#00:stmt#02 - slave run#0, before backup
+tr#01:stmt#00 - slave run#0, before backup
+tr#01:stmt#01 - slave run#0, before backup
+tr#01:stmt#02 - slave run#0, before backup
+tr#02:stmt#00 - slave run#0, after backup
+tr#02:stmt#01 - slave run#0, after backup
+tr#02:stmt@02 - slave run#0, after backup
+tr#03:stmt#00 - after slave run#0, slave is shut down, after backup
+tr#03:stmt#01 - after slave run#0, slave is shut down, after backup
+tr#03:stmt#02 - after slave run#0, slave is shut down, after backup
+tr#04:stmt#00 - slave run#1
+tr#04:stmt#01 - slave run#1
+tr#04:stmt#02 - slave run#1
+##############################################################
+### Cleanup
+### Removing the backup directory
+connection master;
+DROP TABLE t1;
+connection slave;
+STOP SLAVE;
+include/wait_for_slave_to_stop.inc
+RESET SLAVE ALL;
+Warnings:
+Note 4190 RESET SLAVE is implicitly changing the value of 'Using_Gtid' from 'No' to 'Slave_Pos'
+connection master;
+set global wsrep_on=OFF;
+RESET MASTER;
+set global wsrep_on=ON;
diff --git a/mysql-test/suite/galera/r/versioning_trx_id.result b/mysql-test/suite/galera/r/versioning_trx_id.result
index df92d088..c28662dc 100644
--- a/mysql-test/suite/galera/r/versioning_trx_id.result
+++ b/mysql-test/suite/galera/r/versioning_trx_id.result
@@ -17,7 +17,7 @@ a
select count(*) from mysql.transaction_registry where begin_timestamp='0-0-0';
count(*)
0
-select count(*) from mysql.transaction_registry where begin_timestamp>=commit_timestamp;
+select count(*) from mysql.transaction_registry where begin_timestamp>commit_timestamp;
count(*)
0
connection node_3;
@@ -34,7 +34,7 @@ a
select count(*) from mysql.transaction_registry where begin_timestamp='0-0-0';
count(*)
0
-select count(*) from mysql.transaction_registry where begin_timestamp>=commit_timestamp;
+select count(*) from mysql.transaction_registry where begin_timestamp>commit_timestamp;
count(*)
0
connection node_1;
@@ -50,7 +50,7 @@ a
select count(*) from mysql.transaction_registry where begin_timestamp='0-0-0';
count(*)
0
-select count(*) from mysql.transaction_registry where begin_timestamp>=commit_timestamp;
+select count(*) from mysql.transaction_registry where begin_timestamp>commit_timestamp;
count(*)
0
drop table t1;
diff --git a/mysql-test/suite/galera/suite.pm b/mysql-test/suite/galera/suite.pm
index f6caecdc..4c4d26db 100644
--- a/mysql-test/suite/galera/suite.pm
+++ b/mysql-test/suite/galera/suite.pm
@@ -1,5 +1,6 @@
package My::Suite::Galera;
+use warnings;
use lib 'suite';
use wsrep::common;
@@ -63,6 +64,7 @@ push @::global_suppressions,
qr(WSREP: Failed to remove page file .*),
qr(WSREP: wsrep_sst_method is set to 'mysqldump' yet mysqld bind_address is set to .*),
qr|WSREP: Sending JOIN failed: -107 \(Transport endpoint is not connected\). Will retry in new primary component.|,
+ qr|WSREP: Send action \{.* STATE_REQUEST} returned -107 \(Transport endpoint is not connected\)|,
qr|WSREP: Trying to continue unpaused monitor|,
qr|WSREP: Wait for gtid returned error 3 while waiting for prior transactions to commit before setting position|,
qr|WSREP: Failed to report last committed|,
diff --git a/mysql-test/suite/galera/t/MDEV-22232.test b/mysql-test/suite/galera/t/MDEV-22232.test
index dbd9ed1e..087d6417 100644
--- a/mysql-test/suite/galera/t/MDEV-22232.test
+++ b/mysql-test/suite/galera/t/MDEV-22232.test
@@ -18,19 +18,16 @@
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
# Run CTAS until the resulting table gets created,
-# then it gets BF aborted by ALTER.
-SET DEBUG_SYNC = 'create_table_select_before_create SIGNAL may_alter WAIT_FOR bf_abort';
+# then it gets BF aborted by other DDL.
+SET DEBUG_SYNC = 'create_table_select_before_create SIGNAL may_run WAIT_FOR bf_abort';
--send
CREATE TABLE t2 SELECT * FROM t1;
# Wait for CTAS to reach the table create point,
-# start executing ALTER and BF abort CTAS.
+# start executing other DDL and BF abort CTAS.
--connection node_1
-SET DEBUG_SYNC = 'now WAIT_FOR may_alter';
---disable_result_log
---error ER_CANT_DROP_FIELD_OR_KEY
-ALTER TABLE t1 DROP FOREIGN KEY b, ALGORITHM=COPY;
---enable_result_log
+SET DEBUG_SYNC = 'now WAIT_FOR may_run';
+TRUNCATE TABLE t1;
--connection con1
# CTAS gets BF aborted.
@@ -46,19 +43,16 @@ SET DEBUG_SYNC = 'RESET';
INSERT INTO t1 VALUES (10), (20), (30);
# Run CTAS until the resulting table gets created,
-# then it gets BF aborted by ALTER.
-SET DEBUG_SYNC = 'create_table_select_before_create SIGNAL may_alter WAIT_FOR bf_abort';
+# then it gets BF aborted by other DDL.
+SET DEBUG_SYNC = 'create_table_select_before_create SIGNAL may_run WAIT_FOR bf_abort';
--send
CREATE TABLE t2 SELECT * FROM t1;
# Wait for CTAS to reach the table create point,
-# start executing ALTER and BF abort CTAS.
+# start executing other DDL and BF abort CTAS.
--connection node_1
-SET DEBUG_SYNC = 'now WAIT_FOR may_alter';
---disable_result_log
---error ER_ERROR_ON_RENAME
-ALTER TABLE t1 DROP FOREIGN KEY b, ALGORITHM=COPY;
---enable_result_log
+SET DEBUG_SYNC = 'now WAIT_FOR may_run';
+TRUNCATE TABLE t1;
--connection con1
# CTAS gets BF aborted.
diff --git a/mysql-test/suite/galera/t/MDEV-24143.test b/mysql-test/suite/galera/t/MDEV-24143.test
index e58f147c..3aecac8c 100644
--- a/mysql-test/suite/galera/t/MDEV-24143.test
+++ b/mysql-test/suite/galera/t/MDEV-24143.test
@@ -11,7 +11,11 @@ SET SESSION autocommit=0;
SELECT * FROM t1 WHERE c1 <=0 ORDER BY c1 DESC;
--error ER_LOCK_DEADLOCK
INSERT INTO t1 VALUES (4),(3),(1),(2);
---error ER_TABLE_EXISTS_ERROR
+#
+# This is because support for CREATE TABLE ENGINE=SEQUENCE
+# is done before we check does table exists already.
+#
+--error ER_NOT_SUPPORTED_YET
CREATE TABLE t1 (pk INT PRIMARY KEY, b INT) ENGINE=SEQUENCE;
--error ER_CANT_DROP_FIELD_OR_KEY
ALTER TABLE t1 DROP COLUMN c2;
diff --git a/mysql-test/suite/galera/t/MDEV-25731.test b/mysql-test/suite/galera/t/MDEV-25731.test
new file mode 100644
index 00000000..893cccbb
--- /dev/null
+++ b/mysql-test/suite/galera/t/MDEV-25731.test
@@ -0,0 +1,34 @@
+--source include/galera_cluster.inc
+--source include/have_aria.inc
+
+--connection node_1
+SET GLOBAL wsrep_load_data_splitting=ON;
+SET GLOBAL wsrep_mode=REPLICATE_MYISAM;
+CREATE TABLE t1 (c1 int) ENGINE=MYISAM;
+LOAD DATA INFILE '../../std_data/mdev-25731.dat' IGNORE INTO TABLE t1 LINES TERMINATED BY '\n';
+SELECT COUNT(*) AS EXPECT_6 FROM t1;
+
+--connection node_2
+SELECT COUNT(*) AS EXPECT_6 FROM t1;
+
+--connection node_1
+ALTER TABLE t1 ENGINE=Aria;
+SET GLOBAL wsrep_mode=REPLICATE_ARIA;
+LOAD DATA INFILE '../../std_data/mdev-25731.dat' IGNORE INTO TABLE t1 LINES TERMINATED BY '\n';
+SELECT COUNT(*) AS EXPECT_12 FROM t1;
+
+--connection node_2
+SELECT COUNT(*) AS EXPECT_12 FROM t1;
+
+--connection node_1
+ALTER TABLE t1 ENGINE=InnoDB;
+LOAD DATA INFILE '../../std_data/mdev-25731.dat' IGNORE INTO TABLE t1 LINES TERMINATED BY '\n';
+SELECT COUNT(*) AS EXPECT_18 FROM t1;
+
+--connection node_2
+SELECT COUNT(*) AS EXPECT_18 FROM t1;
+
+--connection node_1
+DROP TABLE t1;
+SET GLOBAL wsrep_load_data_splitting=OFF;
+SET GLOBAL wsrep_mode=DEFAULT;
diff --git a/mysql-test/suite/galera/t/MDEV-26499.test b/mysql-test/suite/galera/t/MDEV-26499.test
new file mode 100644
index 00000000..824b28c1
--- /dev/null
+++ b/mysql-test/suite/galera/t/MDEV-26499.test
@@ -0,0 +1,20 @@
+#
+# MDEV-26499
+#
+# This test reproduces some failure on mysql_shutdown() call
+# which manifests sporadically in some galera MTR tests during
+# restart of a node.
+#
+
+--source include/galera_cluster.inc
+--source include/have_debug_sync.inc
+
+--let $node_1=node_1
+--let $node_2=node_2
+--source include/auto_increment_offset_save.inc
+
+--connection node_2
+SET GLOBAL debug_dbug="+d,simulate_slow_client_at_shutdown";
+--source include/restart_mysqld.inc
+
+--source include/auto_increment_offset_restore.inc
diff --git a/mysql-test/suite/galera/t/MDEV-26597.test b/mysql-test/suite/galera/t/MDEV-26597.test
index 783a52ca..465f1130 100644
--- a/mysql-test/suite/galera/t/MDEV-26597.test
+++ b/mysql-test/suite/galera/t/MDEV-26597.test
@@ -18,7 +18,7 @@ SHOW WARNINGS;
SET SESSION wsrep_sync_wait = 0;
--source include/kill_galera.inc
---let $start_mysqld_params = ""
+--let $start_mysqld_params =
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
--source include/start_mysqld.inc
diff --git a/mysql-test/suite/galera/t/MDEV-27276.test b/mysql-test/suite/galera/t/MDEV-27276.test
index 1c589c9e..bdce0d91 100644
--- a/mysql-test/suite/galera/t/MDEV-27276.test
+++ b/mysql-test/suite/galera/t/MDEV-27276.test
@@ -17,7 +17,7 @@
# We use concurrency facility of test MW-369 to setup the conflict between DDL and DML
#
-# Open connection node_1a here, MW-369.inc will use it later
+# Open connection node_1a here, we will use it later
--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
# create FK parent table
@@ -28,14 +28,51 @@ CREATE TABLE p (id INTEGER PRIMARY KEY, f2 INTEGER) ENGINE=INNODB;
--let $mw_369_parent_query = INSERT INTO p VALUES(1,0)
--let $mw_369_child_query = CREATE TABLE c(id INT NOT NULL PRIMARY KEY, p_id INT, FOREIGN KEY (p_id) REFERENCES p(id) ON DELETE CASCADE) ENGINE=InnoDB
-# execute above queries through separate nodes
---source MW-369.inc
+--connection node_1
+SET AUTOCOMMIT=ON;
+START TRANSACTION;
+--eval $mw_369_parent_query
+
+#
+# Block the $mw_369_child_query from node_2
+#
+# --connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
+--connection node_1a
+SET SESSION wsrep_sync_wait = 0;
+--let $galera_sync_point = apply_monitor_slave_enter_sync
+--source include/galera_set_sync_point.inc
+
+#
+# insert client row, which will make it impossible to replay the
+# delete on parent
+#
+--connection node_2
+--eval $mw_369_child_query
+
+#
+# Wait until $mw_369_child_query from node_2 reaches the sync point and
+# block the 'COMMIT' from node_1 before it certifies.
+#
+--connection node_1a
+--source include/galera_wait_sync_point.inc
+--source include/galera_clear_sync_point.inc
+
+--connection node_1
+--send COMMIT
+
+--connection node_1a
+--let $galera_sync_point = apply_monitor_slave_enter_sync
+--source include/galera_signal_sync_point.inc
+--source include/galera_clear_sync_point.inc
# Expect certification failure
--connection node_1
--error ER_LOCK_DEADLOCK
--reap
+--connection node_1a
+SET SESSION DEBUG_SYNC = "RESET";
+
--connection node_2
SELECT * FROM p;
SELECT * FROM c;
diff --git a/mysql-test/suite/galera/t/MDEV-29142.test b/mysql-test/suite/galera/t/MDEV-29142.test
index 7e9776b0..f7a8b329 100644
--- a/mysql-test/suite/galera/t/MDEV-29142.test
+++ b/mysql-test/suite/galera/t/MDEV-29142.test
@@ -50,12 +50,12 @@ SET SESSION wsrep_sync_wait = 0;
--source include/kill_galera.inc
--remove_file $MYSQLTEST_VARDIR/mysqld.1/data/grastate.dat
---let $start_mysqld_params = "--wsrep-new-cluster"
+--let $start_mysqld_params =--wsrep-new-cluster
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--source include/start_mysqld.inc
--connection node_2
---let $start_mysqld_params = ""
+--let $start_mysqld_params =
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
--source include/start_mysqld.inc
diff --git a/mysql-test/suite/galera/t/MDEV-33136.test b/mysql-test/suite/galera/t/MDEV-33136.test
new file mode 100644
index 00000000..12765ef6
--- /dev/null
+++ b/mysql-test/suite/galera/t/MDEV-33136.test
@@ -0,0 +1,44 @@
+#
+# MDEV-33136: Properly BF-abort user transactions with explicit locks
+#
+# User transactions may acquire explicit MDL locks from InnoDB level
+# when persistent statistics is re-read for a table.
+# If such a transaction would be subject to BF-abort, it was improperly
+# detected as a system transaction and wouldn't get aborted.
+#
+# The fix: Check if a transaction holding explicit MDL locks is a user
+# transaction in the MDL conflict handling code.
+
+--source include/galera_cluster.inc
+--source include/have_debug_sync.inc
+--source include/have_debug.inc
+
+--connect node_1a,127.0.0.1,root,,test,$NODE_MYPORT_1
+
+--connection node_1
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
+
+--connection node_1a
+TRUNCATE TABLE t1;
+# TRUNCATE forces the next statement to re-read statistics from persistent storage,
+# which will acquire MDL locks on the statistics tables in InnoDB.
+SET SESSION wsrep_retry_autocommit = 0;
+SET DEBUG_SYNC = 'dict_stats_mdl_acquired SIGNAL may_toi WAIT_FOR bf_abort';
+--send
+ INSERT INTO t1 VALUES (1);
+
+--connection node_1
+SET DEBUG_SYNC = 'now WAIT_FOR may_toi';
+TRUNCATE TABLE t1;
+
+--connection node_1a
+# Local INSERT gets aborted.
+--error ER_LOCK_DEADLOCK
+--reap
+
+# Cleanup
+--connection node_1
+SET DEBUG_SYNC = 'RESET';
+DROP TABLE t1;
+--disconnect node_1a
+--source include/galera_end.inc
diff --git a/mysql-test/suite/galera/t/MDEV-33828.cnf b/mysql-test/suite/galera/t/MDEV-33828.cnf
new file mode 100644
index 00000000..4c62448f
--- /dev/null
+++ b/mysql-test/suite/galera/t/MDEV-33828.cnf
@@ -0,0 +1,4 @@
+!include ../galera_2nodes.cnf
+
+[mysqld]
+log-bin
diff --git a/mysql-test/suite/galera/t/MDEV-33828.test b/mysql-test/suite/galera/t/MDEV-33828.test
new file mode 100644
index 00000000..8e30481b
--- /dev/null
+++ b/mysql-test/suite/galera/t/MDEV-33828.test
@@ -0,0 +1,45 @@
+--source include/galera_cluster.inc
+--source include/have_innodb.inc
+--source include/have_aria.inc
+
+SET AUTOCOMMIT=ON;
+SELECT @@autocommit;
+
+SET LOCAL enforce_storage_engine=InnoDB;
+
+CREATE TABLE t1(id int not null primary key auto_increment, name varchar(64)) ENGINE=InnoDB;
+INSERT INTO t1(name) VALUES ('name1'),('name3'),('name6'),('name2');
+
+DELIMITER |;
+CREATE PROCEDURE sel_proc()
+BEGIN
+ DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;
+ SELECT * FROM t1;
+END|
+
+CREATE PROCEDURE ins_proc()
+BEGIN
+ DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;
+ INSERT INTO t1 VALUES ('name_proc');
+END|
+DELIMITER ;|
+
+SET AUTOCOMMIT=OFF;
+SELECT @@autocommit;
+
+START TRANSACTION;
+
+insert into t1(name) values('name10');
+
+select param_list, returns, db, type from mysql.proc where name='sel_proc';
+
+call ins_proc();
+
+COMMIT;
+
+SET AUTOCOMMIT=ON;
+
+SELECT * FROM t1;
+DROP TABLE t1;
+DROP PROCEDURE sel_proc;
+DROP PROCEDURE ins_proc;
diff --git a/mysql-test/suite/galera/t/MW-336.cnf b/mysql-test/suite/galera/t/MW-336.cnf
index e68f8917..da97be5f 100644
--- a/mysql-test/suite/galera/t/MW-336.cnf
+++ b/mysql-test/suite/galera/t/MW-336.cnf
@@ -2,6 +2,8 @@
[mysqld.1]
wsrep-debug=SERVER
+loose-wsrep-mw-336=1
[mysqld.2]
wsrep-debug=SERVER
+loose-wsrep-mw-336=2
diff --git a/mysql-test/suite/galera/t/MW-336.test b/mysql-test/suite/galera/t/MW-336.test
index 83943c7d..29a70978 100644
--- a/mysql-test/suite/galera/t/MW-336.test
+++ b/mysql-test/suite/galera/t/MW-336.test
@@ -3,11 +3,12 @@
#
--source include/galera_cluster.inc
---source include/have_innodb.inc
--source include/force_restart.inc
+--source include/have_sequence.inc
--connection node_1
-CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB;
+SET @wsrep_slave_threads_orig = @@wsrep_slave_threads;
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY AUTO_INCREMENT) Engine=InnoDB;
SET GLOBAL wsrep_slave_threads = 10;
@@ -22,7 +23,7 @@ SELECT VARIABLE_VALUE AS EXPECT_10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE V
SET GLOBAL wsrep_slave_threads = 1;
--connection node_2
-INSERT INTO t1 VALUES (1);
+INSERT INTO t1 VALUES (NULL);
--connection node_1
--echo # Wait until one of the appliers has exited
@@ -54,27 +55,19 @@ SELECT VARIABLE_VALUE AS EXPECT_20 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE V
SET GLOBAL wsrep_slave_threads = 1;
--connection node_2
-INSERT INTO t1 VALUES (1);
-INSERT INTO t1 VALUES (2);
-INSERT INTO t1 VALUES (3);
-INSERT INTO t1 VALUES (4);
-INSERT INTO t1 VALUES (5);
-INSERT INTO t1 VALUES (6);
-INSERT INTO t1 VALUES (7);
-INSERT INTO t1 VALUES (8);
-INSERT INTO t1 VALUES (9);
-INSERT INTO t1 VALUES (10);
-INSERT INTO t1 VALUES (11);
-INSERT INTO t1 VALUES (12);
-INSERT INTO t1 VALUES (13);
-INSERT INTO t1 VALUES (14);
-INSERT INTO t1 VALUES (16);
-INSERT INTO t1 VALUES (17);
-INSERT INTO t1 VALUES (18);
-INSERT INTO t1 VALUES (19);
-INSERT INTO t1 VALUES (20);
+--disable_query_log
+let $c = 50;
+while ($c) {
+INSERT INTO t1 VALUES(NULL); COMMIT;
+dec $c;
+}
+--enable_query_log
--connection node_1
+--let $wait_condition = SELECT COUNT(*) = 51 FROM t1;
+--let $wait_condition_on_error_output = SELECT COUNT(*) FROM t1;
+--source include/wait_condition_with_debug.inc
+
--echo # Wait until 19 of the appliers has exited
--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
--let $wait_condition_on_error_output = SELECT COUNT(*), 1 as EXPECTED_VALUE FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; show processlist
@@ -82,7 +75,7 @@ INSERT INTO t1 VALUES (20);
SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
-SELECT COUNT(*) FROM t1;
+SELECT COUNT(*) AS EXPECT_51 FROM t1;
SET GLOBAL wsrep_slave_threads = 10;
--echo # Set slave threads to 10 step 3
@@ -96,16 +89,13 @@ SELECT VARIABLE_VALUE AS EXPECT_10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE V
SET GLOBAL wsrep_slave_threads = 1;
--connection node_2
-INSERT INTO t1 VALUES (21);
-INSERT INTO t1 VALUES (22);
-INSERT INTO t1 VALUES (23);
-INSERT INTO t1 VALUES (24);
-INSERT INTO t1 VALUES (25);
-INSERT INTO t1 VALUES (26);
-INSERT INTO t1 VALUES (27);
-INSERT INTO t1 VALUES (28);
-INSERT INTO t1 VALUES (29);
-INSERT INTO t1 VALUES (30);
+--disable_query_log
+let $c = 50;
+while ($c) {
+INSERT INTO t1 VALUES(NULL); COMMIT;
+dec $c;
+}
+--enable_query_log
--connection node_1
--echo # Wait until slave threads back to 1
@@ -115,6 +105,10 @@ INSERT INTO t1 VALUES (30);
SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
-SELECT COUNT(*) FROM t1;
+SELECT COUNT(*) AS EXPECT_101 FROM t1;
DROP TABLE t1;
+
+--disable_query_log
+SET GLOBAL wsrep_slave_threads = @wsrep_slave_threads_orig;
+--enable_query_log
diff --git a/mysql-test/suite/galera/t/MW-369.inc b/mysql-test/suite/galera/t/MW-369.inc
index 71df979d..f080d99f 100644
--- a/mysql-test/suite/galera/t/MW-369.inc
+++ b/mysql-test/suite/galera/t/MW-369.inc
@@ -12,9 +12,9 @@
# START TRANSACTION;
# $mw_369_parent_query
# node_2
-# $mw_369_child_query - will be blocked on node_1 in apply monitor
+# $mw_369_child_query - will be blocked on node_1 in wsrep_apply_cb
# node_1:
-# COMMIT; - will be blocked on node_1 in local monitor
+# COMMIT; - will be blocked on node_1 in wsrep_after_certification
#
# The $mw_369_child_query is always expected to succeed. The caller is
# responsible for checking if the final COMMIT on connection node_1
@@ -32,8 +32,7 @@ START TRANSACTION;
# --connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
--connection node_1a
SET SESSION wsrep_sync_wait = 0;
---let $galera_sync_point = apply_monitor_slave_enter_sync
---source include/galera_set_sync_point.inc
+SET GLOBAL DEBUG_DBUG = "d,sync.wsrep_apply_cb";
#
# insert client row, which will make it impossible to replay the
@@ -47,28 +46,37 @@ SET SESSION wsrep_sync_wait = 0;
# block the 'COMMIT' from node_1 before it certifies.
#
--connection node_1a
---source include/galera_wait_sync_point.inc
---source include/galera_clear_sync_point.inc
-
---let $galera_sync_point = local_monitor_master_enter_sync
---source include/galera_set_sync_point.inc
+SET SESSION DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached";
--connection node_1
+SET DEBUG_SYNC = "wsrep_after_certification SIGNAL after_certification_reached WAIT_FOR continue_after_certification";
--send COMMIT
#
# Wait until both sync points have been reached
#
--connection node_1a
---let $galera_sync_point = apply_monitor_slave_enter_sync local_monitor_master_enter_sync
---source include/galera_wait_sync_point.inc
+SET SESSION DEBUG_SYNC = "now WAIT_FOR after_certification_reached";
#
# both threads are now parked in sync points, signal them to continue
#
---let $galera_sync_point = apply_monitor_slave_enter_sync
---source include/galera_signal_sync_point.inc
---let $galera_sync_point = local_monitor_master_enter_sync
---source include/galera_signal_sync_point.inc
---source include/galera_clear_sync_point.inc
+--let $wait_condition = SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE 'debug sync point:%'
+--let $wait_condition_on_error_output = SELECT STATE FROM INFORMATION_SCHEMA.PROCESSLIST
+--source include/wait_condition_with_debug.inc
+
+SET DEBUG_SYNC = 'now SIGNAL continue_after_certification';
+
+--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE 'debug sync point:%'
+--let $wait_condition_on_error_output = SELECT STATE FROM INFORMATION_SCHEMA.PROCESSLIST
+--source include/wait_condition_with_debug.inc
+
+SET DEBUG_SYNC = 'now SIGNAL signal.wsrep_apply_cb';
+
+--let $wait_condition = SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE 'debug sync point:%'
+--let $wait_condition_on_error_output = SELECT STATE FROM INFORMATION_SCHEMA.PROCESSLIST
+--source include/wait_condition_with_debug.inc
+
+SET GLOBAL DEBUG_DBUG = "";
+SET DEBUG_SYNC = 'RESET';
diff --git a/mysql-test/suite/galera/t/MW-369.test b/mysql-test/suite/galera/t/MW-369.test
index c8f8c974..0efac20d 100644
--- a/mysql-test/suite/galera/t/MW-369.test
+++ b/mysql-test/suite/galera/t/MW-369.test
@@ -24,7 +24,6 @@
--source include/galera_cluster.inc
--source include/have_innodb.inc
--source include/have_debug_sync.inc
---source include/galera_have_debug_sync.inc
CREATE TABLE p (f1 INTEGER PRIMARY KEY, f2 INTEGER) ENGINE=INNODB;
CREATE TABLE c (f1 INTEGER PRIMARY KEY, p_id INTEGER,
diff --git a/mysql-test/suite/galera/t/galera_bf_abort_mariabackup.test b/mysql-test/suite/galera/t/galera_bf_abort_mariabackup.test
index 34c3f5d3..ed16ac39 100644
--- a/mysql-test/suite/galera/t/galera_bf_abort_mariabackup.test
+++ b/mysql-test/suite/galera/t/galera_bf_abort_mariabackup.test
@@ -13,7 +13,7 @@
CREATE TABLE t(i INT NOT NULL PRIMARY KEY) ENGINE INNODB;
INSERT INTO t VALUES(1);
#
-# In default settings donor should desync
+# In default settings donor should not desync
#
--echo # Restart node_2, force SST.
--connection node_2
@@ -37,7 +37,7 @@ let $restart_noprint=2;
--connection node_1
let SEARCH_FILE = $MYSQLTEST_VARDIR/log/mysqld.1.err;
---echo # Both should return FOUND 2 as we have bootstrap and SST
+--echo # Both should return NOT FOUND as we have mariabackup with backup locks
let SEARCH_PATTERN = Desyncing and pausing the provider;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN = Resuming and resyncing the provider;
@@ -76,7 +76,7 @@ let $restart_noprint=2;
--connection node_1
let SEARCH_FILE = $MYSQLTEST_VARDIR/log/mysqld.1.err;
---echo # Both should return FOUND 3 as we have 1 new SST
+--echo # Both should return NOT FOUND as we have mariabackup with backup locks
let SEARCH_PATTERN = Desyncing and pausing the provider;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN = Resuming and resyncing the provider;
@@ -117,13 +117,16 @@ let $targetdir=$MYSQLTEST_VARDIR/tmp/backup2;
--enable_result_log
let SEARCH_FILE = $MYSQLTEST_VARDIR/log/mysqld.2.err;
---echo # Both should return FOUND 1 as node should not desync
+--echo # Both should return FOUND 2 because both backups do desync but on different points
let SEARCH_PATTERN = Desyncing and pausing the provider;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN = Resuming and resyncing the provider;
--source include/search_pattern_in_file.inc
---echo # Should return FOUND 1 because only last backup does not desync
-let SEARCH_PATTERN = Server not desynched from group because WSREP_MODE_BF_MARIABACKUP used.;
+--echo # Should return FOUND 1 as server did not desync at BLOCK_DDL
+let SEARCH_PATTERN = Server not desynched from group at BLOCK_DDL because WSREP_MODE_BF_MARIABACKUP is used.;
+--source include/search_pattern_in_file.inc
+--echo # Should return FOUND 1 as server did desync and pause at BLOCK_COMMIT
+let SEARCH_PATTERN = Server desynched from group during BACKUP STAGE BLOCK_COMMIT.;
--source include/search_pattern_in_file.inc
SET GLOBAL wsrep_mode = "";
diff --git a/mysql-test/suite/galera/t/galera_ist_mariabackup_verify_ca.cnf b/mysql-test/suite/galera/t/galera_ist_mariabackup_verify_ca.cnf
index f2187b83..ffd2306b 100644
--- a/mysql-test/suite/galera/t/galera_ist_mariabackup_verify_ca.cnf
+++ b/mysql-test/suite/galera/t/galera_ist_mariabackup_verify_ca.cnf
@@ -10,9 +10,11 @@ ssl-ca=@ENV.MYSQL_TEST_DIR/std_data/cacert.pem
[mysqld.1]
wsrep_provider_options='base_port=@mysqld.1.#galera_port;pc.ignore_sb=true'
+innodb-log-file-buffering
[mysqld.2]
wsrep_provider_options='base_port=@mysqld.2.#galera_port;pc.ignore_sb=true'
+innodb-log-file-buffering
[sst]
ssl-mode=VERIFY_CA
diff --git a/mysql-test/suite/galera/t/galera_ist_restart_joiner.test b/mysql-test/suite/galera/t/galera_ist_restart_joiner.test
index b36a0de5..940b511f 100644
--- a/mysql-test/suite/galera/t/galera_ist_restart_joiner.test
+++ b/mysql-test/suite/galera/t/galera_ist_restart_joiner.test
@@ -37,7 +37,7 @@ UPDATE t1 SET f2 = 'c' WHERE f1 > 2;
# Write file to make mysql-test-run.pl expect the crash, but don't start it
--let $_expect_file_name= `select regexp_replace(@@tmpdir, '^.*/','')`
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/$_expect_file_name.expect
---exec echo "wait" > $_expect_file_name
+--write_line wait $_expect_file_name
--let KILL_NODE_PIDFILE = `SELECT @@pid_file`
diff --git a/mysql-test/suite/galera/t/galera_load_data.test b/mysql-test/suite/galera/t/galera_load_data.test
index c37920a4..252580f9 100644
--- a/mysql-test/suite/galera/t/galera_load_data.test
+++ b/mysql-test/suite/galera/t/galera_load_data.test
@@ -30,8 +30,308 @@ CREATE TABLE cardtest_tbl (
LOCK TABLES cardtest_tbl WRITE;
ALTER TABLE cardtest_tbl DISABLE KEYS;
-INSERT INTO cardtest_tbl VALUES (1,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(2,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(3,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(4,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(5,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(6,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(7,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(8,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(9,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(10,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(11,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(12,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(13,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(14,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(15,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(16,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(17,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(18,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(19,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(20,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(21,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(22,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(23,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(24,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(25,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(26,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(27,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(28,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(29,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(30,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(31,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(32,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(33,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(34,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(35,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(36,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(37,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(38,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(39,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(40,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(41,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(42,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(43,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(44,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(45,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(46,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(47,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(48,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(49,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(50,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(51,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(52,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(53,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(54,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(55,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(56,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(57,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(58,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(59,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(60,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(61,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(62,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(63,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(64,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(65,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(66,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(67,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(68,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(69,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(70,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(71,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(72,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(73,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(74,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(75,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(76,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(77,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(78,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(79,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(80,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(81,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(82,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(83,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(84,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(85,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(86,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(87,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(88,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(89,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(90,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(91,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(92,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(93,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(94,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(95,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(96,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(97,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(98,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(99,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(100,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(101,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(102,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(103,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(104,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(105,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(106,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(107,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(108,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(109,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(110,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(111,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(112,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(113,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(114,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(115,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(116,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(117,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(118,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(119,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(120,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(121,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(122,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(123,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(124,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(125,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(126,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(127,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(128,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(129,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(130,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(131,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(132,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(133,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(134,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(135,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(136,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(137,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(138,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(139,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(140,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(141,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(142,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(143,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(144,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(145,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(146,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(147,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(148,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(149,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(150,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(151,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(152,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(153,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(154,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(155,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(156,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(157,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(158,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(159,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(160,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(161,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(162,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(163,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(164,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(165,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(166,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(167,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(168,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(169,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(170,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(171,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(172,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(173,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(174,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(175,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(176,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(177,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(178,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(179,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(180,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(181,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(182,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(183,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(184,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(185,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(186,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(187,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(188,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(189,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(190,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(191,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(192,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(193,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(194,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(195,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(196,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(197,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(198,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(199,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(200,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(201,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(202,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(203,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(204,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(205,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(206,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(207,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(208,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(209,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(210,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(211,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(212,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(213,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(214,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(215,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(216,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(217,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(218,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(219,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(220,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(221,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(222,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(223,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(224,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(225,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(226,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(227,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(228,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(229,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(230,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(231,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(232,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(233,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(234,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(235,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(236,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(237,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(238,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(239,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(240,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(241,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(242,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(243,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(244,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(245,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(246,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(247,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(248,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(249,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(250,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(251,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(252,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(253,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(254,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(255,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(256,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(257,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(258,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(259,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(260,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(261,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(262,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(263,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(264,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(265,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(266,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(267,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(268,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(269,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(270,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(271,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(272,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(273,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(274,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(275,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(276,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(277,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(278,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(279,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(280,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(281,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(282,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(283,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(284,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(285,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(286,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(287,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(288,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(289,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(290,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(291,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(292,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(293,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(294,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(295,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(296,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(297,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(298,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(299,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(300,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),(301,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL);
-
+INSERT INTO cardtest_tbl VALUES
+ (1,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (2,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (3,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (4,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (5,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (6,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (7,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (8,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (9,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (10,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (11,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (12,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (13,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (14,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (15,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (16,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (17,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (18,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (19,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (20,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (21,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (22,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (23,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (24,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (25,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (26,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (27,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (28,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (29,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (30,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (31,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (32,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (33,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (34,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (35,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (36,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (37,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (38,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (39,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (40,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (41,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (42,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (43,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (44,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (45,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (46,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (47,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (48,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (49,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (50,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (51,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (52,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (53,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (54,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (55,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (56,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (57,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (58,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (59,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (60,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (61,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (62,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (63,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (64,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (65,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (66,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (67,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (68,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (69,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (70,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (71,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (72,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (73,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (74,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (75,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (76,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (77,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (78,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (79,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (80,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (81,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (82,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (83,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (84,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (85,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (86,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (87,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (88,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (89,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (90,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (91,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (92,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (93,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (94,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (95,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (96,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (97,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (98,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (99,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (100,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (101,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (102,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (103,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (104,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (105,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (106,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (107,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (108,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (109,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (110,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (111,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (112,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (113,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (114,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (115,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (116,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (117,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (118,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (119,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (120,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (121,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (122,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (123,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (124,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (125,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (126,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (127,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (128,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (129,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (130,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (131,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (132,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (133,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (134,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (135,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (136,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (137,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (138,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (139,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (140,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (141,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (142,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (143,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (144,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (145,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (146,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (147,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (148,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (149,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (150,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (151,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (152,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (153,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (154,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (155,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (156,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (157,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (158,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (159,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (160,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (161,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (162,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (163,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (164,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (165,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (166,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (167,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (168,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (169,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (170,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (171,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (172,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (173,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (174,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (175,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (176,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (177,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (178,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (179,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (180,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (181,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (182,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (183,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (184,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (185,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (186,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (187,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (188,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (189,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (190,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (191,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (192,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (193,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (194,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (195,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (196,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (197,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (198,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (199,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (200,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (201,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (202,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (203,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (204,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (205,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (206,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (207,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (208,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (209,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (210,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (211,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (212,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (213,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (214,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (215,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (216,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (217,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (218,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (219,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (220,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (221,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (222,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (223,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (224,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (225,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (226,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (227,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (228,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (229,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (230,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (231,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (232,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (233,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (234,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (235,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (236,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (237,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (238,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (239,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (240,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (241,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (242,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (243,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (244,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (245,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (246,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (247,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (248,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (249,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (250,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (251,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (252,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (253,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (254,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (255,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (256,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (257,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (258,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (259,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (260,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (261,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (262,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (263,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (264,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (265,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (266,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (267,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (268,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (269,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (270,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (271,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (272,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (273,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (274,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (275,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (276,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (277,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (278,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (279,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (280,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (281,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (282,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (283,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (284,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (285,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (286,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (287,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (288,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (289,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (290,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (291,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (292,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (293,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (294,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (295,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (296,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (297,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (298,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (299,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (300,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL),
+ (301,1,'','',1,1466430455,1471454450,NULL,10.00000,1,NULL,'','',NULL,NULL,1,NULL,NULL);
ALTER TABLE cardtest_tbl ENABLE KEYS;
UNLOCK TABLES;
diff --git a/mysql-test/suite/galera/t/galera_mdl_race.test b/mysql-test/suite/galera/t/galera_mdl_race.test
index ad6770f9..3341a379 100644
--- a/mysql-test/suite/galera/t/galera_mdl_race.test
+++ b/mysql-test/suite/galera/t/galera_mdl_race.test
@@ -3,70 +3,92 @@
#
--source include/galera_cluster.inc
+--source include/have_debug.inc
--source include/have_debug_sync.inc
+--connection node_1
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(1)) engine=innodb;
CREATE TABLE t2 (f1 INTEGER PRIMARY KEY, f2 CHAR(1)) engine=innodb;
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;
# block access to t2
--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
--connection node_1a
+SET SESSION wsrep_sync_wait=0;
+--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't2'
+--let $wait_condition_on_error_output = SELECT * FROM INFORMATION_SCHEMA.TABLES
+--source include/wait_condition_with_debug.inc
LOCK TABLE t2 WRITE;
-# Block before MLD lock wait
+# Block before MDL lock wait
--connection node_1
- SET @@debug_dbug = "d,sync.wsrep_before_mdl_wait";
+SET DEBUG_SYNC= 'wsrep_before_mdl_wait SIGNAL before_mdl_wait WAIT_FOR mdl_wait_continue';
--send SELECT * FROM t2;
-# Wait for SELECT to be blocked
--connection node_1a
-#--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIS WHERE STATE = 'System lock';
-#--source include/wait_condition.inc
-#--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE = 'init' AND INFO = 'COMMIT';
-#--source include/wait_condition.inc
+--echo # Wait until select is blocked before MDL lock wait
+SET DEBUG_SYNC= 'now WAIT_FOR before_mdl_wait';
# block applier to wait after BF victim is locked
+--connection node_1a
SET @@debug_dbug = "d,sync.wsrep_after_BF_victim_lock";
# Issue a conflicting update on node #2
--connection node_2
UPDATE t1 SET f2 = 'c' WHERE f1 = 1;
+--connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1
+--connection node_1b
+SET SESSION wsrep_sync_wait=0;
+--echo # Wait for conflicting update to block
+--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE 'Update_rows_log_event:%';
+--source include/wait_condition.inc
+
# Unblock the SELECT, to enter wsrep_thd_is_BF
---connection node_1a
-SET @@debug_dbug = "";
-SET DEBUG_SYNC = "now SIGNAL signal.wsrep_before_mdl_wait";
+SET DEBUG_SYNC = "now SIGNAL signal.wsrep_after_BF_victim_lock";
+
+--connect node_1c, 127.0.0.1, root, , test, $NODE_MYPORT_1
+--connection node_1c
+--let $wait_condition = SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE 'Update_rows_log_event:%';
+--source include/wait_condition.inc
+--connection node_1a
# unblock applier to try to BF the SELECT
-SET DEBUG_SYNC = "now SIGNAL signal.wsrep_after_BF_victim_lock";
+SET DEBUG_SYNC = "now SIGNAL BF_victim_continue";
# table lock is not needed anymore
UNLOCK TABLES;
-# SELECT succeeds
+# SELECT returns deadlock
--connection node_1
-
--error ER_LOCK_DEADLOCK
--reap
-SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'a';
-SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'c';
+--connection node_1
+SELECT COUNT(*) AS EXPECT_1 FROM t1 WHERE f2 = 'a';
+SELECT COUNT(*) AS EXPECT_1 FROM t1 WHERE f2 = 'c';
+SELECT * FROM t1;
--connection node_2
-SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'a';
-SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'c';
+SELECT COUNT(*) AS EXPECT_1 FROM t1 WHERE f2 = 'a';
+SELECT COUNT(*) AS EXPECT_1 FROM t1 WHERE f2 = 'c';
+SELECT * FROM t1;
DROP TABLE t1;
DROP TABLE t2;
--connection node_1a
SET DEBUG_SYNC = "RESET";
+--connection node_1b
+SET DEBUG_SYNC = "RESET";
+
+--connection node_1
+--disconnect node_1a
+--disconnect node_1b
+--disconnect node_1c
diff --git a/mysql-test/suite/galera/t/galera_myisam_autocommit.test b/mysql-test/suite/galera/t/galera_myisam_autocommit.test
index 3452a06a..0612aabb 100644
--- a/mysql-test/suite/galera/t/galera_myisam_autocommit.test
+++ b/mysql-test/suite/galera/t/galera_myisam_autocommit.test
@@ -2,22 +2,24 @@
--source include/have_innodb.inc
#
-# This tests simple autocommit replication of MyISAM tables. No updates arrive on the slave.
+# This tests simple autocommit replication of MyISAM tables.
#
-# Without a PK
-
SET GLOBAL wsrep_mode=REPLICATE_MYISAM;
+# Without a PK
+
CREATE TABLE t1 (f1 INTEGER) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1);
INSERT INTO t1 VALUES (2), (3);
+# This is TOI
INSERT INTO t1 SELECT 4 FROM DUAL UNION ALL SELECT 5 FROM DUAL;
CREATE TABLE t2 (f1 INTEGER PRIMARY KEY) ENGINE=MyISAM;
INSERT INTO t2 VALUES (1);
INSERT INTO t2 VALUES (2), (3);
+# This is TOI
INSERT INTO t2 SELECT 4 FROM DUAL UNION ALL SELECT 5 FROM DUAL;
# Error
@@ -34,16 +36,26 @@ UPDATE t2 SET f1 = 9 WHERE f1 = 1;
DELETE FROM t1 WHERE f1 = 9;
DELETE FROM t2 WHERE f1 = 9;
+SELECT * FROM t1 ORDER BY f1;
+SELECT * FROM t2 ORDER BY f1;
+
+--connection node_2
+SELECT * FROM t1 ORDER BY f1;
+SELECT * FROM t2 ORDER BY f1;
+
# TRUNCATE
TRUNCATE TABLE t1;
-TRUNCATE TABLE t1;
+TRUNCATE TABLE t2;
+
+SELECT * FROM t1 ORDER BY f1;
+SELECT * FROM t2 ORDER BY f1;
--connection node_2
-SELECT COUNT(*) = 0 FROM t1;
-SELECT COUNT(*) = 0 FROM t2;
+SELECT * FROM t1 ORDER BY f1;
+SELECT * FROM t2 ORDER BY f1;
--connection node_1
+SET GLOBAL wsrep_mode=DEFAULT;
DROP TABLE t1;
DROP TABLE t2;
-SET GLOBAL wsrep_mode=DEFAULT;
diff --git a/mysql-test/suite/galera/t/galera_parallel_apply_lock_table.test b/mysql-test/suite/galera/t/galera_parallel_apply_lock_table.test
index 2e9f05cb..b49253ef 100644
--- a/mysql-test/suite/galera/t/galera_parallel_apply_lock_table.test
+++ b/mysql-test/suite/galera/t/galera_parallel_apply_lock_table.test
@@ -32,7 +32,7 @@ INSERT INTO t2 VALUES (1);
--connection node_2a
--sleep 1
SET SESSION wsrep_sync_wait=0;
-SELECT COUNT(*) AS EXPECT_1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE (STATE LIKE '%committing%' or STATE = 'Waiting for certification');
+SELECT COUNT(*) AS EXPECT_1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE (STATE LIKE 'Commit' or STATE = 'Waiting for certification');
SELECT COUNT(*) AS EXPECT_1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE '%Waiting for table metadata lock%';
SELECT COUNT(*) AS EXPECT_0 FROM t1;
SELECT COUNT(*) AS EXPECT_0 FROM t2;
diff --git a/mysql-test/suite/galera/t/galera_parallel_simple.test b/mysql-test/suite/galera/t/galera_parallel_simple.test
index d49dc0ae..89adaf8c 100644
--- a/mysql-test/suite/galera/t/galera_parallel_simple.test
+++ b/mysql-test/suite/galera/t/galera_parallel_simple.test
@@ -51,7 +51,7 @@ SET SESSION wsrep_sync_wait = 0;
--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE 'Waiting for table metadata lock%';
--source include/wait_condition.inc
---let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE 'committing%';
+--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE 'Commit';
--source include/wait_condition.inc
UNLOCK TABLES;
diff --git a/mysql-test/suite/galera/t/galera_pc_recovery.test b/mysql-test/suite/galera/t/galera_pc_recovery.test
index 1621414a..16abe6fc 100644
--- a/mysql-test/suite/galera/t/galera_pc_recovery.test
+++ b/mysql-test/suite/galera/t/galera_pc_recovery.test
@@ -27,8 +27,8 @@ INSERT INTO t1 VALUES (1);
SELECT COUNT(*) = 1 FROM t1;
--let $NODE_2_PIDFILE = `SELECT @@pid_file`
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
--exec kill -9 `cat $NODE_1_PIDFILE` `cat $NODE_2_PIDFILE`
# Perform --wsrep-recover and preserve the positions into variables by placing them in $MYSQL_TMP_DIR/galera_wsrep_start_position.inc and then --source'ing it
@@ -66,8 +66,8 @@ if ($galera_wsrep_start_position2 == '') {
# Instruct MTR to perform the actual restart using --wsrep-start-position . Proper --wsrep_cluster_address is used as my.cnf only contains 'gcomm://' for node #1
---exec echo "restart: --wsrep-start-position=$galera_wsrep_start_position1 --wsrep_cluster_address=gcomm://127.0.0.1:$NODE_GALERAPORT_1,127.0.0.1:$NODE_GALERAPORT_2" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
---exec echo "restart: --wsrep-start-position=$galera_wsrep_start_position2 --wsrep_cluster_address=gcomm://127.0.0.1:$NODE_GALERAPORT_1,127.0.0.1:$NODE_GALERAPORT_2" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
+--write_line "restart: --wsrep-start-position=$galera_wsrep_start_position1 --wsrep_cluster_address=gcomm://127.0.0.1:$NODE_GALERAPORT_1,127.0.0.1:$NODE_GALERAPORT_2" $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line "restart: --wsrep-start-position=$galera_wsrep_start_position2 --wsrep_cluster_address=gcomm://127.0.0.1:$NODE_GALERAPORT_1,127.0.0.1:$NODE_GALERAPORT_2" $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
--sleep 5
--connection node_1
diff --git a/mysql-test/suite/galera/t/galera_restart_on_unknown_option.test b/mysql-test/suite/galera/t/galera_restart_on_unknown_option.test
index 6a0f24db..e3a8b749 100644
--- a/mysql-test/suite/galera/t/galera_restart_on_unknown_option.test
+++ b/mysql-test/suite/galera/t/galera_restart_on_unknown_option.test
@@ -62,7 +62,7 @@ SELECT * FROM t1;
--let $start_mysqld_params=--galera-unknown-option
--echo Starting server ...
---exec echo "try:$start_mysqld_params" > $_expect_file_name
+--write_line "try:$start_mysqld_params" $_expect_file_name
# Sleep to ensure that server exited...
@@ -107,7 +107,7 @@ SELECT * FROM t1;
--let $start_mysqld_params=--galera-unknown-option
--echo Starting server ...
---exec echo "try:$start_mysqld_params" > $_expect_file_name
+--write_line "try:$start_mysqld_params" $_expect_file_name
# Sleep to ensure that server exited...
diff --git a/mysql-test/suite/galera/t/galera_sequence_engine.test b/mysql-test/suite/galera/t/galera_sequence_engine.test
new file mode 100644
index 00000000..47107dcc
--- /dev/null
+++ b/mysql-test/suite/galera/t/galera_sequence_engine.test
@@ -0,0 +1,16 @@
+--source include/galera_cluster.inc
+--source include/have_sequence.inc
+
+SET GLOBAL wsrep_ignore_apply_errors=0;
+SET SESSION AUTOCOMMIT=0;
+SET SESSION max_error_count=0;
+--error ER_NOT_SUPPORTED_YET
+CREATE TABLE t0 (id GEOMETRY,parent_id GEOMETRY)ENGINE=SEQUENCE;
+
+--connection node_2
+--error ER_NO_SUCH_TABLE
+SHOW CREATE TABLE t0;
+
+--connection node_1
+SET GLOBAL wsrep_ignore_apply_errors=DEFAULT;
+
diff --git a/mysql-test/suite/galera/t/galera_shutdown_nonprim.test b/mysql-test/suite/galera/t/galera_shutdown_nonprim.test
index cf7018cd..d1a1c914 100644
--- a/mysql-test/suite/galera/t/galera_shutdown_nonprim.test
+++ b/mysql-test/suite/galera/t/galera_shutdown_nonprim.test
@@ -16,21 +16,27 @@ SET GLOBAL wsrep_provider_options = 'pc.weight=2';
--connection node_2
# Isolate node_2 from the group and wait until wsrep_ready becomes OFF.
-SET GLOBAL wsrep_provider_options = 'gmcast.isolate = 1';
SET SESSION wsrep_sync_wait = 0;
---let $wait_condition = SELECT VARIABLE_VALUE = 'OFF' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready'
+SET GLOBAL wsrep_provider_options = 'gmcast.isolate = 1';
+
+--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
--source include/wait_condition.inc
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 'OFF' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready'
+--source include/wait_condition.inc
+SHOW STATUS LIKE 'wsrep_cluster_status';
# Verify that graceful shutdown succeeds.
--source include/shutdown_mysqld.inc
---source include/start_mysqld.inc
---let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
---source include/wait_condition.inc
+--source include/start_mysqld.inc
--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
--source include/wait_condition.inc
# Restore original settings.
SET GLOBAL wsrep_provider_options = 'pc.weight = 1';
+
--source include/auto_increment_offset_restore.inc
diff --git a/mysql-test/suite/galera/t/galera_sst_mariabackup.cnf b/mysql-test/suite/galera/t/galera_sst_mariabackup.cnf
index 857a4101..6cb80831 100644
--- a/mysql-test/suite/galera/t/galera_sst_mariabackup.cnf
+++ b/mysql-test/suite/galera/t/galera_sst_mariabackup.cnf
@@ -7,9 +7,14 @@ wsrep_debug=1
[mysqld.1]
wsrep_provider_options='base_port=@mysqld.1.#galera_port;gcache.size=1;pc.ignore_sb=true'
+innodb_fast_shutdown=0
+innodb_undo_tablespaces=0
[mysqld.2]
wsrep_provider_options='base_port=@mysqld.2.#galera_port;gcache.size=1;pc.ignore_sb=true'
+innodb_fast_shutdown=0
+innodb_undo_tablespaces=3
+innodb_log_file_buffering
[sst]
transferfmt=@ENV.MTR_GALERA_TFMT
diff --git a/mysql-test/suite/galera/t/galera_sst_mariabackup.test b/mysql-test/suite/galera/t/galera_sst_mariabackup.test
index bcb9ade3..7dead49e 100644
--- a/mysql-test/suite/galera/t/galera_sst_mariabackup.test
+++ b/mysql-test/suite/galera/t/galera_sst_mariabackup.test
@@ -8,12 +8,39 @@
--let $node_2=node_2
--source include/auto_increment_offset_save.inc
+--connection node_1
+select @@innodb_undo_tablespaces;
+
+--connection node_2
+select @@innodb_undo_tablespaces;
+
--source suite/galera/include/galera_st_shutdown_slave.inc
--source suite/galera/include/galera_st_clean_slave.inc
--source suite/galera/include/galera_st_kill_slave.inc
--source suite/galera/include/galera_st_kill_slave_ddl.inc
+--connection node_2
+--echo Shutting down server ...
+--source include/shutdown_mysqld.inc
+
+--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'
+--source include/wait_condition.inc
+
+--connection node_2
+--echo Starting server ...
+--source include/start_mysqld.inc
+
+--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'
+--source include/wait_condition.inc
+
+--connection node_2
+select @@innodb_undo_tablespaces;
+
+call mtr.add_suppression("InnoDB: Cannot change innodb_undo_tablespaces=3 because previous shutdown was not with innodb_fast_shutdown=0");
+
# Restore original auto_increment_offset values.
--source include/auto_increment_offset_restore.inc
diff --git a/mysql-test/suite/galera/t/galera_table_with_hyphen.inc b/mysql-test/suite/galera/t/galera_table_with_hyphen.inc
new file mode 100644
index 00000000..ac79d864
--- /dev/null
+++ b/mysql-test/suite/galera/t/galera_table_with_hyphen.inc
@@ -0,0 +1,48 @@
+#
+# parameters:
+# $fk_child - child table name
+# $fk_parent - parent table name
+#
+--connection node_1
+SET GLOBAL wsrep_slave_threads=2;
+
+--eval CREATE TABLE `$fk_parent` ( id INT AUTO_INCREMENT PRIMARY KEY, j INT) ENGINE=InnoDB
+
+--eval CREATE TABLE `$fk_child` (id INT AUTO_INCREMENT PRIMARY KEY, parent_id INT, j INT, FOREIGN KEY (parent_id) REFERENCES `$fk_parent`(id)) ENGINE=InnoDB
+
+--eval INSERT INTO `$fk_parent` VALUES (23,0)
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 1 FROM `$fk_parent`;
+--source include/wait_condition.inc
+
+--connection node_1a
+SET GLOBAL DEBUG_DBUG='+d,wsrep_ha_write_row';
+
+--connection node_2
+--eval INSERT INTO `$fk_child` VALUES (21,23,0),(22,23,0),(23,23,0)
+
+--connection node_1a
+SET DEBUG_SYNC='now WAIT_FOR wsrep_ha_write_row_reached';
+
+--let $wsrep_received_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_received'`
+
+--connection node_2
+--eval UPDATE `$fk_parent` SET j=2 WHERE id=23
+
+--connection node_1a
+--let $wait_condition = SELECT VARIABLE_VALUE = $wsrep_received_before + 1 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_received'
+--source include/wait_condition.inc
+
+SET GLOBAL DEBUG_DBUG='-d,wsrep_ha_write_row';
+SET DEBUG_SYNC='now SIGNAL wsrep_ha_write_row_continue';
+
+SET GLOBAL DEBUG_DBUG="RESET";
+SET DEBUG_SYNC = 'RESET';
+
+SET GLOBAL wsrep_slave_threads=DEFAULT;
+
+--connection node_2
+--eval drop table `$fk_child`
+--eval drop table `$fk_parent`
+
diff --git a/mysql-test/suite/galera/t/galera_table_with_hyphen.test b/mysql-test/suite/galera/t/galera_table_with_hyphen.test
new file mode 100644
index 00000000..1b28bdeb
--- /dev/null
+++ b/mysql-test/suite/galera/t/galera_table_with_hyphen.test
@@ -0,0 +1,34 @@
+--source include/galera_cluster.inc
+--source include/have_innodb.inc
+--source include/have_debug.inc
+--source include/have_debug_sync.inc
+
+#
+# Testing how tables and databases with special characters
+# are treated in certification
+#
+# The test creates two tables having foreign key constraint
+# reference and executes two transactions which modify
+# same rows. The same test is executed with different names
+# containin special characters to see if the certification
+# can detect the conflicts
+#
+# Actual test is in include file galera_table_with_hyphen.inc
+# It create the test tables from parameters $fk_child and
+# $fk_parent
+#
+--connection node_1
+set wsrep_sync_wait=0;
+
+--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
+SET SESSION wsrep_sync_wait = 0;
+
+--let $fk_child = child
+--let $fk_parent = par-ent
+
+--source galera_table_with_hyphen.inc
+
+--let $fk_child = c-hild
+--let $fk_parent = p-arent-
+
+--source galera_table_with_hyphen.inc
diff --git a/mysql-test/suite/galera/t/galera_vote_rejoin_ddl.cnf b/mysql-test/suite/galera/t/galera_vote_rejoin_ddl.cnf
index 022cfcdc..b2cba42c 100644
--- a/mysql-test/suite/galera/t/galera_vote_rejoin_ddl.cnf
+++ b/mysql-test/suite/galera/t/galera_vote_rejoin_ddl.cnf
@@ -2,9 +2,3 @@
[mysqld]
wsrep-ignore-apply-errors=0
-
-[mysqld.3]
-auto_increment_offset=3
-
-[mysqld.4]
-auto_increment_offset=4
diff --git a/mysql-test/suite/galera/t/galera_vote_rejoin_ddl.test b/mysql-test/suite/galera/t/galera_vote_rejoin_ddl.test
index 5e74af4a..e21c271c 100644
--- a/mysql-test/suite/galera/t/galera_vote_rejoin_ddl.test
+++ b/mysql-test/suite/galera/t/galera_vote_rejoin_ddl.test
@@ -6,25 +6,15 @@
--source include/galera_cluster.inc
--source include/big_test.inc
-# Save original auto_increment_offset values.
---let $node_1=node_1
---let $node_2=node_2
---source include/auto_increment_offset_save.inc
-# The following has to be set hard as these connection doesn't yet exists and
-# the auto_increment_offset value changes during the lifetime of the servers.
---let $node_3=node_3
---let $auto_increment_offset_node_3 = 3;
---let $node_4=node_4
---let $auto_increment_offset_node_4 = 4;
-
--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3
--connect node_4, 127.0.0.1, root, , test, $NODE_MYPORT_4
+# Save original auto_increment_offset values.
--let $node_1=node_1
--let $node_2=node_2
--let $node_3=node_3
--let $node_4=node_4
---source suite/galera/include/auto_increment_offset_save.inc
+--source include/auto_increment_offset_save.inc
--connection node_3
# Isolate node #3
@@ -92,6 +82,7 @@ CALL mtr.add_suppression("Slave SQL: Error 'Unknown table");
--connection node_3
SELECT COUNT(*) AS expect_0 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
SELECT COUNT(*) AS expect_1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't2';
+CALL mtr.add_suppression("WSREP: Vote 0 \\(success\\) on .* is inconsistent with group. Leaving cluster.");
--connection node_4
SELECT COUNT(*) AS expect_0 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
@@ -105,3 +96,6 @@ DROP TABLE t2;
--let $node_4=node_4
--let $auto_increment_offset_node_4 = 4;
--source suite/galera/include/auto_increment_offset_restore.inc
+
+--disconnect node_3
+--disconnect node_4
diff --git a/mysql-test/suite/galera/t/galera_wan_restart_sst.test b/mysql-test/suite/galera/t/galera_wan_restart_sst.test
index 7a8c0df4..e904f46c 100644
--- a/mysql-test/suite/galera/t/galera_wan_restart_sst.test
+++ b/mysql-test/suite/galera/t/galera_wan_restart_sst.test
@@ -11,6 +11,7 @@
--source include/big_test.inc
--source include/galera_cluster.inc
--source include/have_innodb.inc
+--source include/force_restart.inc
--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3
--connect node_4, 127.0.0.1, root, , test, $NODE_MYPORT_4
@@ -27,7 +28,7 @@
SELECT VARIABLE_VALUE AS EXPECT_4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
--connection node_1
-CREATE TABLE t1 (f1 INTEGER);
+CREATE TABLE t1 (f1 INTEGER NOT NULL PRIMARY KEY) ENGINE=INNODB;
INSERT INTO t1 VALUES (1);
--connection node_2
@@ -45,10 +46,20 @@ INSERT INTO t1 VALUES (4);
--connection node_3
INSERT INTO t1 VALUES (13);
+--let $wait_condition = SELECT COUNT(*) = 5 FROM t1;
+--source include/wait_condition.inc
+
+--connection node_1
+--let $wait_condition = SELECT COUNT(*) = 5 FROM t1;
+--source include/wait_condition.inc
+--connection node_3
--source include/kill_galera.inc
+--remove_file $MYSQLTEST_VARDIR/mysqld.3/data/grastate.dat
--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
INSERT INTO t1 VALUES (11);
--connection node_2
@@ -62,6 +73,10 @@ INSERT INTO t1 VALUES (14);
INSERT INTO t1 VALUES (131);
+--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
#
# Restart node #2
#
@@ -69,9 +84,17 @@ INSERT INTO t1 VALUES (131);
--connection node_2
INSERT INTO t1 VALUES (22);
+--connection node_1
+--let $wait_condition = SELECT COUNT(*) = 10 FROM t1;
+--source include/wait_condition.inc
+
+--connection node_2
--source include/kill_galera.inc
+--remove_file $MYSQLTEST_VARDIR/mysqld.2/data/grastate.dat
--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
INSERT INTO t1 VALUES (21);
--connection node_3
@@ -90,11 +113,21 @@ INSERT INTO t1 VALUES (221);
#
--connection node_4
+--let $wait_condition = SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
INSERT INTO t1 VALUES (34);
+--connection node_1
+--let $wait_condition = SELECT COUNT(*) = 15 FROM t1;
+--source include/wait_condition.inc
+
+--connection node_4
--source include/kill_galera.inc
+--remove_file $MYSQLTEST_VARDIR/mysqld.4/data/grastate.dat
--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
INSERT INTO t1 VALUES (31);
--connection node_2
@@ -105,6 +138,7 @@ INSERT INTO t1 VALUES (33);
--connection node_4
--source include/start_mysqld.inc
+--remove_file $MYSQLTEST_VARDIR/mysqld.4/data/grastate.dat
INSERT INTO t1 VALUES (341);
diff --git a/mysql-test/suite/galera/t/galera_wsrep_new_cluster.test b/mysql-test/suite/galera/t/galera_wsrep_new_cluster.test
index 94ea008c..cfa5f8bc 100644
--- a/mysql-test/suite/galera/t/galera_wsrep_new_cluster.test
+++ b/mysql-test/suite/galera/t/galera_wsrep_new_cluster.test
@@ -30,7 +30,7 @@
--echo Starting server ...
--let $restart_noprint=2
---let $start_mysqld_params="--wsrep-new-cluster"
+--let $start_mysqld_params=--wsrep-new-cluster
--source include/start_mysqld.inc
--source include/wait_until_ready.inc
diff --git a/mysql-test/suite/galera/t/mdev-22063.test b/mysql-test/suite/galera/t/mdev-22063.test
new file mode 100644
index 00000000..d0f3e3bc
--- /dev/null
+++ b/mysql-test/suite/galera/t/mdev-22063.test
@@ -0,0 +1,184 @@
+--source include/galera_cluster.inc
+--source include/have_innodb.inc
+--source include/have_log_bin.inc
+--source include/have_sequence.inc
+--source include/have_aria.inc
+
+--echo # Case 1 CREATE SEQUENCE with no NOCACHE
+--error ER_NOT_SUPPORTED_YET
+CREATE SEQUENCE s ENGINE=InnoDB;
+CREATE SEQUENCE s NOCACHE ENGINE=InnoDB;
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+START TRANSACTION;
+REPLACE INTO s VALUES (1,1,9223372036854775806,1,1,1000,0,0);
+OPTIMIZE TABLE t1;
+SELECT * FROM t1;
+SELECT * FROM s;
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1'
+--source include/wait_condition.inc
+--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 's'
+--source include/wait_condition.inc
+--let $wait_condition = SELECT COUNT(*) = 1 FROM test.s;
+--source include/wait_condition.inc
+
+SELECT * FROM t1;
+SELECT * FROM s;
+
+--connection node_1
+DROP TABLE t1;
+DROP SEQUENCE s;
+
+--echo # Case 2 REPLACE INTO ... SELECT with error
+CREATE TABLE t (id INT KEY,a YEAR,INDEX (id,a)) engine=innodb;
+--error ER_WRONG_VALUE_COUNT_ON_ROW
+REPLACE INTO t (id,a)SELECT /*!99997 */ 1;
+REPLACE INTO t (id,a)SELECT /*!99997 */ 1,2;
+SELECT * FROM t;
+
+CREATE TABLE t2 (id INT KEY,a YEAR,INDEX (id,a)) engine=myisam;
+--error ER_WRONG_VALUE_COUNT_ON_ROW
+REPLACE INTO t2 (id,a)SELECT /*!99997 */ 1;
+REPLACE INTO t2 (id,a)SELECT /*!99997 */ 1,2;
+SELECT * FROM t2;
+
+CREATE TABLE t3 (id INT KEY,a YEAR,INDEX (id,a)) engine=aria;
+--error ER_WRONG_VALUE_COUNT_ON_ROW
+REPLACE INTO t3 (id,a)SELECT /*!99997 */ 1;
+REPLACE INTO t3 (id,a)SELECT /*!99997 */ 1,2;
+SELECT * FROM t3;
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't3'
+--source include/wait_condition.inc
+--let $wait_condition = SELECT COUNT(*) = 1 FROM test.t3;
+--source include/wait_condition.inc
+
+SELECT * FROM t;
+SELECT * FROM t2;
+SELECT * FROM t3;
+
+--connection node_1
+DROP TABLE t,t2,t3;
+
+--echo # Bigger REPLACE ... AS SELECT test
+
+CREATE TABLE t1(id int not null primary key ,b int) ENGINE=InnoDB;
+CREATE TABLE t2(id int not null primary key ,b int) ENGINE=MyISAM;
+CREATE TABLE t3(id int not null primary key ,b int) ENGINE=Aria;
+CREATE TABLE t4(id int not null primary key ,b int) ENGINE=InnoDB;
+CREATE TABLE t5(id int not null primary key ,b int) ENGINE=InnoDB;
+CREATE TABLE t6(id int not null primary key ,b int) ENGINE=InnoDB;
+CREATE TABLE t7(id int not null primary key ,b int) ENGINE=MyISAM;
+CREATE TABLE t8(id int not null primary key ,b int) ENGINE=Aria;
+
+INSERT INTO t1(id) SELECT seq FROM seq_1_to_1000;
+INSERT INTO t2(id) SELECT seq FROM seq_1_to_1000;
+INSERT INTO t3(id) SELECT seq FROM seq_1_to_1000;
+
+REPLACE INTO t4 SELECT * FROM t1;
+REPLACE INTO t5 SELECT * FROM t2;
+REPLACE INTO t6 SELECT * FROM t3;
+REPLACE INTO t7 SELECT * FROM t2;
+REPLACE INTO t8 SELECT * FROM t3;
+
+SELECT COUNT(*) AS EXPECT_1000 FROM t1;
+SELECT COUNT(*) AS EXPECT_1000 FROM t2;
+SELECT COUNT(*) AS EXPECT_1000 FROM t3;
+SELECT COUNT(*) AS EXPECT_1000 FROM t4;
+SELECT COUNT(*) AS EXPECT_1000 FROM t5;
+SELECT COUNT(*) AS EXPECT_1000 FROM t6;
+SELECT COUNT(*) AS EXPECT_1000 FROM t7;
+SELECT COUNT(*) AS EXPECT_1000 FROM t8;
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 8 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME LIKE 't_'
+--source include/wait_condition.inc
+--let $wait_condition = SELECT COUNT(*) = 1000 FROM test.t8;
+--source include/wait_condition.inc
+
+SELECT COUNT(*) AS EXPECT_1000 FROM t1;
+SELECT COUNT(*) AS EXPECT_1000 FROM t2;
+SELECT COUNT(*) AS EXPECT_1000 FROM t3;
+SELECT COUNT(*) AS EXPECT_1000 FROM t4;
+SELECT COUNT(*) AS EXPECT_1000 FROM t5;
+SELECT COUNT(*) AS EXPECT_1000 FROM t6;
+SELECT COUNT(*) AS EXPECT_1000 FROM t7;
+SELECT COUNT(*) AS EXPECT_1000 FROM t8;
+
+--connection node_1
+DROP TABLE t1,t2,t3,t4,t5,t6,t7,t8;
+
+--echo # Bigger INSERT INTO ... SELECT test
+
+CREATE TABLE t1(id int not null primary key ,b int) ENGINE=InnoDB;
+CREATE TABLE t2(id int not null primary key ,b int) ENGINE=MyISAM;
+CREATE TABLE t3(id int not null primary key ,b int) ENGINE=Aria;
+CREATE TABLE t4(id int not null primary key ,b int) ENGINE=InnoDB;
+CREATE TABLE t5(id int not null primary key ,b int) ENGINE=InnoDB;
+CREATE TABLE t6(id int not null primary key ,b int) ENGINE=InnoDB;
+CREATE TABLE t7(id int not null primary key ,b int) ENGINE=MyISAM;
+CREATE TABLE t8(id int not null primary key ,b int) ENGINE=Aria;
+
+INSERT INTO t1(id) SELECT seq FROM seq_1_to_1000;
+INSERT INTO t2(id) SELECT seq FROM seq_1_to_1000;
+INSERT INTO t3(id) SELECT seq FROM seq_1_to_1000;
+
+INSERT INTO t4 SELECT * FROM t1;
+INSERT INTO t5 SELECT * FROM t2;
+INSERT INTO t6 SELECT * FROM t3;
+INSERT INTO t7 SELECT * FROM t2;
+INSERT INTO t8 SELECT * FROM t3;
+
+SELECT COUNT(*) AS EXPECT_1000 FROM t1;
+SELECT COUNT(*) AS EXPECT_1000 FROM t2;
+SELECT COUNT(*) AS EXPECT_1000 FROM t3;
+SELECT COUNT(*) AS EXPECT_1000 FROM t4;
+SELECT COUNT(*) AS EXPECT_1000 FROM t5;
+SELECT COUNT(*) AS EXPECT_1000 FROM t6;
+SELECT COUNT(*) AS EXPECT_1000 FROM t7;
+SELECT COUNT(*) AS EXPECT_1000 FROM t8;
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 8 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME LIKE 't_'
+--source include/wait_condition.inc
+--let $wait_condition = SELECT COUNT(*) = 1000 FROM test.t8;
+--source include/wait_condition.inc
+
+SELECT COUNT(*) AS EXPECT_1000 FROM t1;
+SELECT COUNT(*) AS EXPECT_1000 FROM t2;
+SELECT COUNT(*) AS EXPECT_1000 FROM t3;
+SELECT COUNT(*) AS EXPECT_1000 FROM t4;
+SELECT COUNT(*) AS EXPECT_1000 FROM t5;
+SELECT COUNT(*) AS EXPECT_1000 FROM t6;
+SELECT COUNT(*) AS EXPECT_1000 FROM t7;
+SELECT COUNT(*) AS EXPECT_1000 FROM t8;
+
+--connection node_1
+DROP TABLE t1,t2,t3,t4,t5,t6,t7,t8;
+#
+# View
+#
+CREATE TABLE t1(pk int not null primary key) engine=innodb;
+INSERT INTO t1 values (1),(2),(3),(4);
+CREATE VIEW view_t1 AS SELECT * FROM t1;
+INSERT INTO view_t1 VALUES (5);
+SELECT * FROM t1;
+DROP TABLE t1;
+DROP VIEW view_t1;
+CREATE TABLE t1(pk int not null primary key) engine=myisam;
+INSERT INTO t1 values (1),(2),(3),(4);
+CREATE VIEW view_t1 AS SELECT * FROM t1;
+INSERT INTO view_t1 VALUES (5);
+SELECT * FROM t1;
+DROP TABLE t1;
+DROP VIEW view_t1;
+CREATE TABLE t1(pk int not null primary key) engine=aria;
+INSERT INTO t1 values (1),(2),(3),(4);
+CREATE VIEW view_t1 AS SELECT * FROM t1;
+INSERT INTO view_t1 VALUES (5);
+SELECT * FROM t1;
+DROP TABLE t1;
+DROP VIEW view_t1;
+SET GLOBAL wsrep_mode=DEFAULT;
diff --git a/mysql-test/suite/galera/t/mdev-22543.test b/mysql-test/suite/galera/t/mdev-22543.test
index 1e7d3712..26257b28 100644
--- a/mysql-test/suite/galera/t/mdev-22543.test
+++ b/mysql-test/suite/galera/t/mdev-22543.test
@@ -36,7 +36,7 @@ SET DEBUG_SYNC = "now WAIT_FOR sync_point_reached";
# Restart without waiting. The UPDATE should block FTWRL on node_1,
# so the SST cannot be completed and node_2 cannot join before
# UPDATE connection is signalled to continue.
---exec echo "restart:$start_mysqld_params" > $_expect_file_name
+--write_line "restart:$start_mysqld_params" $_expect_file_name
# If the bug is present, FTWRL times out on node_1 in couple of
# seconds and node_2 fails to join.
--sleep 10
diff --git a/mysql-test/suite/galera/t/mdev-30013.test b/mysql-test/suite/galera/t/mdev-30013.test
index 038b6660..3795dd32 100644
--- a/mysql-test/suite/galera/t/mdev-30013.test
+++ b/mysql-test/suite/galera/t/mdev-30013.test
@@ -1,4 +1,5 @@
--source include/galera_cluster.inc
+--source include/force_restart.inc # ARCHIVE plugin must be uninstalled
if (!$HA_ARCHIVE_SO) {
skip Needs Archive loadable plugin;
diff --git a/mysql-test/suite/galera/t/mdev-31285.test b/mysql-test/suite/galera/t/mdev-31285.test
index d2749165..5abef37c 100644
--- a/mysql-test/suite/galera/t/mdev-31285.test
+++ b/mysql-test/suite/galera/t/mdev-31285.test
@@ -1,34 +1,15 @@
--source include/galera_cluster.inc
---let $node_1 = node_1
---let $node_2 = node_2
---source include/auto_increment_offset_save.inc
-
--connection node_1
-CREATE TABLE t ENGINE=InnoDB WITH SYSTEM VERSIONING AS SELECT 1 AS i;
-SHOW CREATE TABLE t;
-SELECT * from t;
-DROP TABLE IF EXISTS t;
-COMMIT;
-
#
-# Restart node_2, force SST because database is inconsistent compared to node_1
+# Below should not cause nodes to be inconsistent (they could if we
+# allow TOI as some error are ignored on applier
#
---connection node_2
-SET SESSION wsrep_sync_wait=0;
---source include/kill_galera.inc
---remove_file $MYSQLTEST_VARDIR/mysqld.2/data/grastate.dat
---echo Starting server ...
-let $restart_noprint=2;
---source include/start_mysqld.inc
---let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
---source include/wait_condition.inc
-
---let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready';
---source include/wait_condition.inc
+--error ER_NOT_SUPPORTED_YET
+CREATE TABLE t ENGINE=InnoDB WITH SYSTEM VERSIONING AS SELECT 1 AS i;
--connection node_2
-call mtr.add_suppression("WSREP: Event .*Write_rows_v1 apply failed:.*");
-call mtr.add_suppression("SREP: Failed to apply write set: gtid:.*");
+--error ER_NO_SUCH_TABLE
+SHOW CREATE TABLE t;
+
---source include/auto_increment_offset_restore.inc
diff --git a/mysql-test/suite/galera/t/mysql-wsrep#332.test b/mysql-test/suite/galera/t/mysql-wsrep#332.test
index e216dfe7..464156e8 100644
--- a/mysql-test/suite/galera/t/mysql-wsrep#332.test
+++ b/mysql-test/suite/galera/t/mysql-wsrep#332.test
@@ -3,7 +3,7 @@
--source include/have_debug_sync.inc
--source include/galera_have_debug_sync.inc
-# Open connection node_1a here, MW-369.inc will use it later
+# Open connection node_1a here, will use it later
--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
#
@@ -27,7 +27,42 @@ INSERT INTO c VALUES (2, 2);
--let $mw_369_parent_query = UPDATE p SET f1 = f1 + 100
--let $mw_369_child_query = ALTER TABLE c ADD FOREIGN KEY (p_id) REFERENCES p(f1)
---source MW-369.inc
+--connection node_1
+SET AUTOCOMMIT=ON;
+START TRANSACTION;
+--eval $mw_369_parent_query
+
+#
+# Block the $mw_369_child_query from node_2
+#
+# --connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
+--connection node_1a
+SET SESSION wsrep_sync_wait = 0;
+--let $galera_sync_point = apply_monitor_slave_enter_sync
+--source include/galera_set_sync_point.inc
+
+#
+# insert client row, which will make it impossible to replay the
+# delete on parent
+#
+--connection node_2
+--eval $mw_369_child_query
+
+#
+# Wait until $mw_369_child_query from node_2 reaches the sync point and
+# block the 'COMMIT' from node_1 before it certifies.
+#
+--connection node_1a
+--source include/galera_wait_sync_point.inc
+--source include/galera_clear_sync_point.inc
+
+--connection node_1
+--send COMMIT
+
+--connection node_1a
+--let $galera_sync_point = apply_monitor_slave_enter_sync
+--source include/galera_signal_sync_point.inc
+--source include/galera_clear_sync_point.inc
# Expect certification failure
--connection node_1
@@ -62,7 +97,42 @@ INSERT INTO c VALUES (2, 2, 2);
--let $mw_369_parent_query = UPDATE p1 SET f1 = f1 + 100
--let $mw_369_child_query = ALTER TABLE c ADD FOREIGN KEY (p_id1) REFERENCES p1(f1), ADD FOREIGN KEY (p_id2) REFERENCES p2(f1)
---source MW-369.inc
+--connection node_1
+SET AUTOCOMMIT=ON;
+START TRANSACTION;
+--eval $mw_369_parent_query
+
+#
+# Block the $mw_369_child_query from node_2
+#
+# --connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
+--connection node_1a
+SET SESSION wsrep_sync_wait = 0;
+--let $galera_sync_point = apply_monitor_slave_enter_sync
+--source include/galera_set_sync_point.inc
+
+#
+# insert client row, which will make it impossible to replay the
+# delete on parent
+#
+--connection node_2
+--eval $mw_369_child_query
+
+#
+# Wait until $mw_369_child_query from node_2 reaches the sync point and
+# block the 'COMMIT' from node_1 before it certifies.
+#
+--connection node_1a
+--source include/galera_wait_sync_point.inc
+--source include/galera_clear_sync_point.inc
+
+--connection node_1
+--send COMMIT
+
+--connection node_1a
+--let $galera_sync_point = apply_monitor_slave_enter_sync
+--source include/galera_signal_sync_point.inc
+--source include/galera_clear_sync_point.inc
# Expect certification failure
--connection node_1
@@ -96,7 +166,42 @@ INSERT INTO c VALUES (2, 2, 2);
--let $mw_369_parent_query = UPDATE p2 SET f1 = f1 + 100
--let $mw_369_child_query = ALTER TABLE c ADD FOREIGN KEY (p_id1) REFERENCES p1(f1), ADD FOREIGN KEY (p_id2) REFERENCES p2(f1)
---source MW-369.inc
+--connection node_1
+SET AUTOCOMMIT=ON;
+START TRANSACTION;
+--eval $mw_369_parent_query
+
+#
+# Block the $mw_369_child_query from node_2
+#
+# --connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
+--connection node_1a
+SET SESSION wsrep_sync_wait = 0;
+--let $galera_sync_point = apply_monitor_slave_enter_sync
+--source include/galera_set_sync_point.inc
+
+#
+# insert client row, which will make it impossible to replay the
+# delete on parent
+#
+--connection node_2
+--eval $mw_369_child_query
+
+#
+# Wait until $mw_369_child_query from node_2 reaches the sync point and
+# block the 'COMMIT' from node_1 before it certifies.
+#
+--connection node_1a
+--source include/galera_wait_sync_point.inc
+--source include/galera_clear_sync_point.inc
+
+--connection node_1
+--send COMMIT
+
+--connection node_1a
+--let $galera_sync_point = apply_monitor_slave_enter_sync
+--source include/galera_signal_sync_point.inc
+--source include/galera_clear_sync_point.inc
# Expect certification failure
--connection node_1
diff --git a/mysql-test/suite/galera/t/rpl_galera_to_mariadb_clone_slave_using_mariadb-backup.cnf b/mysql-test/suite/galera/t/rpl_galera_to_mariadb_clone_slave_using_mariadb-backup.cnf
new file mode 100644
index 00000000..ebe1d47f
--- /dev/null
+++ b/mysql-test/suite/galera/t/rpl_galera_to_mariadb_clone_slave_using_mariadb-backup.cnf
@@ -0,0 +1,10 @@
+!include ../galera_2nodes_as_master.cnf
+
+[mysqld.1]
+innodb-log-file-buffering
+
+[mysqld.2]
+innodb-log-file-buffering
+
+[mysqld.3]
+innodb-log-file-buffering
diff --git a/mysql-test/suite/galera/t/rpl_galera_to_mariadb_clone_slave_using_mariadb-backup.test b/mysql-test/suite/galera/t/rpl_galera_to_mariadb_clone_slave_using_mariadb-backup.test
new file mode 100644
index 00000000..29590e32
--- /dev/null
+++ b/mysql-test/suite/galera/t/rpl_galera_to_mariadb_clone_slave_using_mariadb-backup.test
@@ -0,0 +1,9 @@
+--source include/have_innodb.inc
+--source include/galera_cluster.inc
+
+--echo #
+--echo # MDEV-33355 Add a Galera-2-node-to-MariaDB replication MTR test cloning the slave with mariadb-backup
+--echo #
+
+--let cnf=galera2_to_mariadb
+--source include/rpl_clone_slave_using_mariadb-backup.inc
diff --git a/mysql-test/suite/galera/t/versioning_trx_id.test b/mysql-test/suite/galera/t/versioning_trx_id.test
index 017379c3..fc9ea18e 100644
--- a/mysql-test/suite/galera/t/versioning_trx_id.test
+++ b/mysql-test/suite/galera/t/versioning_trx_id.test
@@ -13,29 +13,29 @@ set session wsrep_sync_wait=15;
insert into t1 (a) values (3),(4);
select a from t1;
select count(*) from mysql.transaction_registry where begin_timestamp='0-0-0';
-if (`SELECT count(*) from mysql.transaction_registry where begin_timestamp>=commit_timestamp`) {
+if (`SELECT count(*) from mysql.transaction_registry where begin_timestamp>commit_timestamp`) {
select * from mysql.transaction_registry;
}
-select count(*) from mysql.transaction_registry where begin_timestamp>=commit_timestamp;
+select count(*) from mysql.transaction_registry where begin_timestamp>commit_timestamp;
--connection node_3
set session wsrep_sync_wait=15;
insert into t1 (a) values (5),(6);
select a from t1;
select count(*) from mysql.transaction_registry where begin_timestamp='0-0-0';
-if (`SELECT count(*) from mysql.transaction_registry where begin_timestamp>=commit_timestamp`) {
+if (`SELECT count(*) from mysql.transaction_registry where begin_timestamp>commit_timestamp`) {
select * from mysql.transaction_registry;
}
-select count(*) from mysql.transaction_registry where begin_timestamp>=commit_timestamp;
+select count(*) from mysql.transaction_registry where begin_timestamp>commit_timestamp;
--connection node_1
set session wsrep_sync_wait=15;
select a from t1;
select count(*) from mysql.transaction_registry where begin_timestamp='0-0-0';
-if (`SELECT count(*) from mysql.transaction_registry where begin_timestamp>=commit_timestamp`) {
+if (`SELECT count(*) from mysql.transaction_registry where begin_timestamp>commit_timestamp`) {
select * from mysql.transaction_registry;
}
-select count(*) from mysql.transaction_registry where begin_timestamp>=commit_timestamp;
+select count(*) from mysql.transaction_registry where begin_timestamp>commit_timestamp;
drop table t1;
diff --git a/mysql-test/suite/galera_3nodes/disabled.def b/mysql-test/suite/galera_3nodes/disabled.def
index 728500f4..f71f726c 100644
--- a/mysql-test/suite/galera_3nodes/disabled.def
+++ b/mysql-test/suite/galera_3nodes/disabled.def
@@ -19,3 +19,4 @@ galera_ipv6_mariabackup_section : temporarily disabled at the request of Codersh
# Opensuse/suse/rocky9/rocky84/rhel9/rhel8-ppc64le .. - all same IPv6 isn't configured right or skipping or galera
galera_ipv6_rsync : Can't connect to server on '::1' (115)
galera_ipv6_rsync_section : Can't connect to server on '::1' (115)
+GCF-354 : MDEV-25614 Galera test failure on GCF-354
diff --git a/mysql-test/suite/galera_3nodes/r/MDEV-29171.result b/mysql-test/suite/galera_3nodes/r/MDEV-29171.result
index 371ce006..55513ff5 100644
--- a/mysql-test/suite/galera_3nodes/r/MDEV-29171.result
+++ b/mysql-test/suite/galera_3nodes/r/MDEV-29171.result
@@ -19,20 +19,40 @@ connection node_2;
connection node_1;
connection node_1;
# restart: --wsrep_new_cluster --wsrep_gtid_domain_id=200
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
+VARIABLE_VALUE
+Primary
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment';
+VARIABLE_VALUE
+Synced
show variables like 'wsrep_gtid_domain_id';
Variable_name Value
wsrep_gtid_domain_id 200
connection node_2;
# restart
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
+VARIABLE_VALUE
+Primary
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment';
+VARIABLE_VALUE
+Synced
show variables like 'wsrep_gtid_domain_id';
Variable_name Value
wsrep_gtid_domain_id 200
+connection node_1;
connection node_3;
# restart: --wsrep_sst_donor=node2
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
+VARIABLE_VALUE
+Primary
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment';
+VARIABLE_VALUE
+Synced
show variables like 'wsrep_gtid_domain_id';
Variable_name Value
wsrep_gtid_domain_id 200
connection node_1;
+connection node_1;
set global wsrep_gtid_domain_id=100;
connection node_2;
set global wsrep_gtid_domain_id=100;
diff --git a/mysql-test/suite/galera_3nodes/r/galera_allowlist.result b/mysql-test/suite/galera_3nodes/r/galera_allowlist.result
index 471444d8..a3fb6cf7 100644
--- a/mysql-test/suite/galera_3nodes/r/galera_allowlist.result
+++ b/mysql-test/suite/galera_3nodes/r/galera_allowlist.result
@@ -7,6 +7,9 @@ connection node_2;
SELECT COUNT(*) = 3 FROM mysql.wsrep_allowlist;
COUNT(*) = 3
1
+connection node_1;
+connection node_2;
+connection node_3;
connection node_3;
SET @@global.wsrep_desync = 1;
SET SESSION wsrep_sync_wait = 0;
diff --git a/mysql-test/suite/galera_3nodes/r/galera_ist_gcache_rollover.result b/mysql-test/suite/galera_3nodes/r/galera_ist_gcache_rollover.result
index 9f1d3fec..a69cef11 100644
--- a/mysql-test/suite/galera_3nodes/r/galera_ist_gcache_rollover.result
+++ b/mysql-test/suite/galera_3nodes/r/galera_ist_gcache_rollover.result
@@ -9,6 +9,7 @@ INSERT INTO t1 VALUES (01), (02), (03), (04), (05);
connection node_2;
Unloading wsrep provider ...
SET GLOBAL wsrep_cluster_address = '';
+connection node_1;
connection node_3;
Unloading wsrep provider ...
SET GLOBAL wsrep_cluster_address = '';
@@ -33,14 +34,16 @@ SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=ist_sender_send_after_get_buffers';
INSERT INTO t1 VALUES (51), (52), (53), (54), (55);
connection node_2;
+connection node_1;
connection node_3;
+connection node_1;
connection node_2;
-SELECT COUNT(*) = 30 FROM t1;
-COUNT(*) = 30
-1
-SELECT COUNT(*) = 3 FROM t2;
-COUNT(*) = 3
-1
+SELECT COUNT(*) AS EXPECT_30 FROM t1;
+EXPECT_30
+30
+SELECT COUNT(*) AS EXPECT_3 FROM t2;
+EXPECT_3
+3
SELECT LENGTH(f1) = 512 * 1024 FROM t2;
LENGTH(f1) = 512 * 1024
1
@@ -48,12 +51,12 @@ LENGTH(f1) = 512 * 1024
1
CALL mtr.add_suppression("WSREP: Unsupported protocol downgrade: incremental data collection disabled");
connection node_3;
-SELECT COUNT(*) = 30 FROM t1;
-COUNT(*) = 30
-1
-SELECT COUNT(*) = 3 FROM t2;
-COUNT(*) = 3
-1
+SELECT COUNT(*) AS EXPECT_30 FROM t1;
+EXPECT_30
+30
+SELECT COUNT(*) AS EXPECT_3 FROM t2;
+EXPECT_3
+3
SELECT LENGTH(f1) = 512 * 1024 FROM t2;
LENGTH(f1) = 512 * 1024
1
diff --git a/mysql-test/suite/galera_3nodes/r/galera_join_with_cc_B.result b/mysql-test/suite/galera_3nodes/r/galera_join_with_cc_B.result
index 732385a3..a88909f4 100644
--- a/mysql-test/suite/galera_3nodes/r/galera_join_with_cc_B.result
+++ b/mysql-test/suite/galera_3nodes/r/galera_join_with_cc_B.result
@@ -92,3 +92,7 @@ connection node_2;
call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
connection node_3;
call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
+disconnect node_1a;
+disconnect node_3;
+disconnect node_2;
+disconnect node_1;
diff --git a/mysql-test/suite/galera_3nodes/t/MDEV-29171.test b/mysql-test/suite/galera_3nodes/t/MDEV-29171.test
index bfb7abf9..1ce33bee 100644
--- a/mysql-test/suite/galera_3nodes/t/MDEV-29171.test
+++ b/mysql-test/suite/galera_3nodes/t/MDEV-29171.test
@@ -50,6 +50,16 @@ select @@wsrep_gtid_domain_id,@@wsrep_node_name;
--connection node_1
--let $restart_parameters = --wsrep_new_cluster --wsrep_gtid_domain_id=200
--source include/start_mysqld.inc
+
+--let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready';
+--source include/wait_condition.inc
+--let $wait_condition = SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
+--source include/wait_condition.inc
+--let $wait_condition = SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'
+--source include/wait_condition.inc
+
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment';
show variables like 'wsrep_gtid_domain_id';
#
@@ -59,8 +69,21 @@ show variables like 'wsrep_gtid_domain_id';
--let $restart_parameters =
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
--source include/start_mysqld.inc
+
+--let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready';
+--source include/wait_condition.inc
+--let $wait_condition = SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
+--source include/wait_condition.inc
+--let $wait_condition = SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'
+--source include/wait_condition.inc
+
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment';
show variables like 'wsrep_gtid_domain_id';
+--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
#
# Restart node_3, select node_2 as donor
@@ -70,9 +93,23 @@ show variables like 'wsrep_gtid_domain_id';
--let $restart_parameters = --wsrep_sst_donor="node2"
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.3.expect
--source include/start_mysqld.inc
+
+--let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready';
+--source include/wait_condition.inc
+--let $wait_condition = SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
+--source include/wait_condition.inc
+--let $wait_condition = SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'
+--source include/wait_condition.inc
+
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment';
+
# Expect domain id 200
show variables like 'wsrep_gtid_domain_id';
+--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
#
# Cleanup
diff --git a/mysql-test/suite/galera_3nodes/t/galera_allowlist.test b/mysql-test/suite/galera_3nodes/t/galera_allowlist.test
index 74fff61c..de80965a 100644
--- a/mysql-test/suite/galera_3nodes/t/galera_allowlist.test
+++ b/mysql-test/suite/galera_3nodes/t/galera_allowlist.test
@@ -12,6 +12,12 @@ SELECT COUNT(*) = 3 FROM mysql.wsrep_allowlist;
--let $galera_server_number = 3
--source include/galera_connect.inc
+# Save original auto_increment_offset values.
+--let $node_1=node_1
+--let $node_2=node_2
+--let $node_3=node_3
+--source ../galera/include/auto_increment_offset_save.inc
+
--connection node_3
# Desync and disconnect node 3 from the PC:
SET @@global.wsrep_desync = 1;
@@ -64,3 +70,6 @@ CALL mtr.add_suppression('WSREP: Connection not allowed');
--connection node_3
CALL mtr.add_suppression('WSREP: Ignoring lack of quorum');
+
+# Restore original auto_increment_offset values.
+--source ../galera/include/auto_increment_offset_restore.inc
diff --git a/mysql-test/suite/galera_3nodes/t/galera_gtid_consistency.cnf b/mysql-test/suite/galera_3nodes/t/galera_gtid_consistency.cnf
index 5bd03178..c27490fa 100644
--- a/mysql-test/suite/galera_3nodes/t/galera_gtid_consistency.cnf
+++ b/mysql-test/suite/galera_3nodes/t/galera_gtid_consistency.cnf
@@ -33,3 +33,6 @@ log_slave_updates=ON
log_bin=mariadb-bin-log
binlog-format=row
wsrep-gtid-mode=ON
+
+[sst]
+transferfmt=@ENV.MTR_GALERA_TFMT
diff --git a/mysql-test/suite/galera_3nodes/t/galera_ist_gcache_rollover.cnf b/mysql-test/suite/galera_3nodes/t/galera_ist_gcache_rollover.cnf
index 303087df..29563657 100644
--- a/mysql-test/suite/galera_3nodes/t/galera_ist_gcache_rollover.cnf
+++ b/mysql-test/suite/galera_3nodes/t/galera_ist_gcache_rollover.cnf
@@ -2,10 +2,22 @@
[mysqld.1]
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.ignore_sb=true;gcache.size=1M'
+auto_increment_increment=1
+auto_increment_offset=1
+# this will force server restarts before this test
+loose-galera-ist-gcache-rollover=1
+wsrep-debug=1
[mysqld.2]
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.ignore_sb=true;gcache.size=1M'
+auto_increment_increment=2
+auto_increment_offset=2
+loose-galera-ist-gcache-rollover=2
+wsrep-debug=1
[mysqld.3]
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.3.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.ignore_sb=true;gcache.size=1M'
-
+auto_increment_increment=3
+auto_increment_offset=3
+loose-galera-ist-gcache-rollover=3
+wsrep-debug=1
diff --git a/mysql-test/suite/galera_3nodes/t/galera_ist_gcache_rollover.test b/mysql-test/suite/galera_3nodes/t/galera_ist_gcache_rollover.test
index 210a4c23..16b9bdb2 100644
--- a/mysql-test/suite/galera_3nodes/t/galera_ist_gcache_rollover.test
+++ b/mysql-test/suite/galera_3nodes/t/galera_ist_gcache_rollover.test
@@ -12,6 +12,7 @@
--source include/have_innodb.inc
--source include/have_debug_sync.inc
--source include/galera_have_debug_sync.inc
+--source include/force_restart.inc
--let $galera_connection_name = node_3
--let $galera_server_number = 3
@@ -24,6 +25,9 @@
--source ../galera/include/auto_increment_offset_save.inc
--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'
+--let $wait_condition_on_error_output = SELECT * FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE 'wsrep%'; show processlist
+--source include/wait_condition_with_debug.inc
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY);
INSERT INTO t1 VALUES (01), (02), (03), (04), (05);
@@ -32,12 +36,15 @@ INSERT INTO t1 VALUES (01), (02), (03), (04), (05);
--let $wsrep_cluster_address_orig2 = `select @@wsrep_cluster_address`
--source suite/galera/include/galera_stop_replication.inc
+--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'
+--source include/wait_condition.inc
+
--connection node_3
--let $wsrep_cluster_address_orig3 = `select @@wsrep_cluster_address`
--source suite/galera/include/galera_stop_replication.inc
--connection node_1
---source include/wait_until_connected_again.inc
INSERT INTO t1 VALUES (11), (12), (13), (14), (15);
# Wait until nodes #2 and #3 have left
@@ -88,29 +95,39 @@ INSERT INTO t1 VALUES (51), (52), (53), (54), (55);
--connection node_2
--source include/wait_until_connected_again.inc
+--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 OR VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'
+--source include/wait_condition.inc
+
--connection node_3
--source include/wait_until_connected_again.inc
-sleep 5;
+--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'
+--source include/wait_condition.inc
# Final checks
--connection node_2
-SELECT COUNT(*) = 30 FROM t1;
-SELECT COUNT(*) = 3 FROM t2;
+--let $wait_condition = SELECT COUNT(*) = 30 FROM t1
+--source include/wait_condition.inc
+
+SELECT COUNT(*) AS EXPECT_30 FROM t1;
+SELECT COUNT(*) AS EXPECT_3 FROM t2;
SELECT LENGTH(f1) = 512 * 1024 FROM t2;
CALL mtr.add_suppression("WSREP: Unsupported protocol downgrade: incremental data collection disabled");
# Final checks
--connection node_3
-SELECT COUNT(*) = 30 FROM t1;
-SELECT COUNT(*) = 3 FROM t2;
+--let $wait_condition = SELECT COUNT(*) = 30 FROM t1
+--source include/wait_condition.inc
+SELECT COUNT(*) AS EXPECT_30 FROM t1;
+SELECT COUNT(*) AS EXPECT_3 FROM t2;
SELECT LENGTH(f1) = 512 * 1024 FROM t2;
CALL mtr.add_suppression("WSREP: Unsupported protocol downgrade: incremental data collection disabled");
DROP TABLE t1, t2;
# Restore original auto_increment_offset values.
---source ../galera/include/auto_increment_offset_restore.inc
-
--let $galera_cluster_size=3
+--source ../galera/include/auto_increment_offset_restore.inc
--source include/galera_end.inc
diff --git a/mysql-test/suite/galera_3nodes/t/galera_join_with_cc_B.test b/mysql-test/suite/galera_3nodes/t/galera_join_with_cc_B.test
index 55d6b458..d06cdcc8 100644
--- a/mysql-test/suite/galera_3nodes/t/galera_join_with_cc_B.test
+++ b/mysql-test/suite/galera_3nodes/t/galera_join_with_cc_B.test
@@ -278,4 +278,9 @@ call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State T
--connection node_3
call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
+--disconnect node_1a
+
+# Restore original auto_increment_offset values.
+--let $galera_cluster_size=3
--source ../galera/include/auto_increment_offset_restore.inc
+--source include/galera_end.inc
diff --git a/mysql-test/suite/galera_3nodes_sr/r/GCF-336.result b/mysql-test/suite/galera_3nodes_sr/r/GCF-336.result
index eeccfa3b..8fc853f8 100644
--- a/mysql-test/suite/galera_3nodes_sr/r/GCF-336.result
+++ b/mysql-test/suite/galera_3nodes_sr/r/GCF-336.result
@@ -25,6 +25,8 @@ SET SESSION wsrep_sync_wait=0;
connection node_2;
INSERT INTO t1 VALUES (2);
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
+connection node_2a;
+connection node_2;
COMMIT;
ERROR 08S01: WSREP has not yet prepared node for application use
connection node_2a;
diff --git a/mysql-test/suite/galera_3nodes_sr/r/GCF-832.result b/mysql-test/suite/galera_3nodes_sr/r/GCF-832.result
index 9043c668..ef21e4ca 100644
--- a/mysql-test/suite/galera_3nodes_sr/r/GCF-832.result
+++ b/mysql-test/suite/galera_3nodes_sr/r/GCF-832.result
@@ -6,20 +6,26 @@ connection node_2;
connection node_3;
connection node_2;
SET GLOBAL debug_dbug="d,crash_last_fragment_commit_after_fragment_removal";
-CREATE TABLE t1 (f1 VARCHAR(30)) ENGINE=InnoDB;
+CREATE TABLE t1 (f1 VARCHAR(30) not null primary key) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF;
SET SESSION wsrep_trx_fragment_size=1;
START TRANSACTION;
-INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary');
+INSERT INTO t1 VALUES ('primary1'),('primary2'),('primary3'),('primary4'),('primary5');
COMMIT;
Got one of the listed errors
+connection node_1;
+connection node_2;
# restart
connection node_1;
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
+SELECT * FROM t1;
+f1
connection node_2;
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
+SELECT * FROM t1;
+f1
DROP TABLE t1;
diff --git a/mysql-test/suite/galera_3nodes_sr/r/galera_sr_kill_slave_before_apply.result b/mysql-test/suite/galera_3nodes_sr/r/galera_sr_kill_slave_before_apply.result
index 933038e0..08e3fc6c 100644
--- a/mysql-test/suite/galera_3nodes_sr/r/galera_sr_kill_slave_before_apply.result
+++ b/mysql-test/suite/galera_3nodes_sr/r/galera_sr_kill_slave_before_apply.result
@@ -7,11 +7,11 @@ connection node_3;
connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
connection node_2;
-SELECT COUNT(*) = 0 FROM t1;
-COUNT(*) = 0
-1
+SELECT COUNT(*) AS EXPECT_0 FROM t1;
+EXPECT_0
+0
connection node_1;
-CREATE TABLE t2 (f1 INTEGER);
+CREATE TABLE t2 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2;
LOCK TABLE t2 WRITE;
connection node_1;
@@ -37,13 +37,14 @@ count_match
count_match
1
connection node_1;
-SELECT COUNT(*) FROM mysql.wsrep_streaming_log;
-COUNT(*)
+SELECT COUNT(*) AS EXPECT_0 FROM mysql.wsrep_streaming_log;
+EXPECT_0
0
connection node_2;
-SELECT COUNT(*) FROM mysql.wsrep_streaming_log;
-COUNT(*)
+SELECT COUNT(*) AS EXPECT_0 FROM mysql.wsrep_streaming_log;
+EXPECT_0
0
+call mtr.add_suppression("WSREP: node uuid:.*");
connection node_1;
DROP TABLE t1;
DROP TABLE t2;
diff --git a/mysql-test/suite/galera_3nodes_sr/t/GCF-336.test b/mysql-test/suite/galera_3nodes_sr/t/GCF-336.test
index ba85aa52..20d5955e 100644
--- a/mysql-test/suite/galera_3nodes_sr/t/GCF-336.test
+++ b/mysql-test/suite/galera_3nodes_sr/t/GCF-336.test
@@ -27,6 +27,12 @@ SET SESSION wsrep_sync_wait=0;
--connection node_2
--error ER_LOCK_DEADLOCK
INSERT INTO t1 VALUES (2);
+
+--connection node_2a
+--let $wait_condition = SELECT VARIABLE_VALUE = 'non-Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
+--source include/wait_condition.inc
+
+--connection node_2
--error ER_UNKNOWN_COM_ERROR
COMMIT;
diff --git a/mysql-test/suite/galera_3nodes_sr/t/GCF-832.test b/mysql-test/suite/galera_3nodes_sr/t/GCF-832.test
index 5da080a6..700b3c38 100644
--- a/mysql-test/suite/galera_3nodes_sr/t/GCF-832.test
+++ b/mysql-test/suite/galera_3nodes_sr/t/GCF-832.test
@@ -4,6 +4,7 @@
#
--source include/galera_cluster.inc
--source include/have_debug_sync.inc
+--source include/force_restart.inc
--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3
# Save original auto_increment_offset values.
@@ -13,30 +14,42 @@
--source ../galera/include/auto_increment_offset_save.inc
--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
SET GLOBAL debug_dbug="d,crash_last_fragment_commit_after_fragment_removal";
--let $_expect_file_name= `select regexp_replace(@@tmpdir, '^.*/','')`
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/$_expect_file_name.expect
---exec echo "wait" > $_expect_file_name
+--write_line wait $_expect_file_name
-CREATE TABLE t1 (f1 VARCHAR(30)) ENGINE=InnoDB;
+CREATE TABLE t1 (f1 VARCHAR(30) not null primary key) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF;
SET SESSION wsrep_trx_fragment_size=1;
START TRANSACTION;
-INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary');
+INSERT INTO t1 VALUES ('primary1'),('primary2'),('primary3'),('primary4'),('primary5');
--error 2013,2026
COMMIT;
+--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+--connection node_2
--source include/start_mysqld.inc
--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
+SELECT * FROM t1;
--connection node_2
--enable_reconnect
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
+SELECT * FROM t1;
DROP TABLE t1;
diff --git a/mysql-test/suite/galera_3nodes_sr/t/galera_sr_kill_slave_before_apply.test b/mysql-test/suite/galera_3nodes_sr/t/galera_sr_kill_slave_before_apply.test
index 08a59296..58d744e7 100644
--- a/mysql-test/suite/galera_3nodes_sr/t/galera_sr_kill_slave_before_apply.test
+++ b/mysql-test/suite/galera_3nodes_sr/t/galera_sr_kill_slave_before_apply.test
@@ -6,6 +6,7 @@
--source include/galera_cluster.inc
--source include/have_innodb.inc
+--source include/force_restart.inc
--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3
# Save original auto_increment_offset values.
@@ -15,18 +16,23 @@
--source ../galera/include/auto_increment_offset_save.inc
--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
# Block node #2's applier before table t1's inserts have come into play
--connection node_2
-SELECT COUNT(*) = 0 FROM t1;
+SELECT COUNT(*) AS EXPECT_0 FROM t1;
--connection node_1
-CREATE TABLE t2 (f1 INTEGER);
+CREATE TABLE t2 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
--connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2
+--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't2'
+--source include/wait_condition.inc
LOCK TABLE t2 WRITE;
--connection node_1
@@ -77,10 +83,12 @@ if ($mysql_errno == 1213) {
--enable_query_log
--connection node_1
-SELECT COUNT(*) FROM mysql.wsrep_streaming_log;
+SELECT COUNT(*) AS EXPECT_0 FROM mysql.wsrep_streaming_log;
--connection node_2
-SELECT COUNT(*) FROM mysql.wsrep_streaming_log;
+SELECT COUNT(*) AS EXPECT_0 FROM mysql.wsrep_streaming_log;
+# As noted above sometimes node delivers the same view twice
+call mtr.add_suppression("WSREP: node uuid:.*");
--connection node_1
DROP TABLE t1;
diff --git a/mysql-test/suite/galera_sr/r/galera_sr_bf_abort_idle.result b/mysql-test/suite/galera_sr/r/galera_sr_bf_abort_idle.result
new file mode 100644
index 00000000..a1495f1c
--- /dev/null
+++ b/mysql-test/suite/galera_sr/r/galera_sr_bf_abort_idle.result
@@ -0,0 +1,33 @@
+connection node_2;
+connection node_1;
+connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
+connection node_1;
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 INTEGER);
+INSERT INTO t1 VALUES (1,1),(2,1),(3,1),(4,1),(5,1),(6,1),(7,1),(8,1);
+SET SESSION wsrep_trx_fragment_size=10;
+SET SESSION wsrep_trx_fragment_unit='rows';
+START TRANSACTION;
+UPDATE t1 SET f2 = f2 + 10;
+connection node_2;
+INSERT INTO t1 VALUES (10,2);
+connection node_1a;
+connection node_1;
+INSERT INTO t1 VALUES (9,1);
+ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
+ROLLBACK;
+DROP TABLE t1;
+connection node_1;
+CREATE TABLE t1(f1 INTEGER PRIMARY KEY, f2 INTEGER);
+INSERT INTO t1 VALUES (1,1),(2,1),(3,1),(4,1),(5,1),(6,1),(7,1),(8,1);
+SET SESSION wsrep_trx_fragment_size=5;
+SET SESSION wsrep_trx_fragment_unit='rows';
+START TRANSACTION;
+UPDATE t1 SET f2 = f2 + 10;
+connection node_2;
+INSERT INTO t1 VALUES (10,2);
+connection node_1a;
+connection node_1;
+INSERT INTO t1 VALUES (9,1);
+ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
+ROLLBACK;
+DROP TABLE t1;
diff --git a/mysql-test/suite/galera_sr/t/MDEV-25718.test b/mysql-test/suite/galera_sr/t/MDEV-25718.test
index 9aebbdc7..037cd300 100644
--- a/mysql-test/suite/galera_sr/t/MDEV-25718.test
+++ b/mysql-test/suite/galera_sr/t/MDEV-25718.test
@@ -43,8 +43,9 @@ SET SESSION wsrep_sync_wait = 0;
SET debug_sync = "now SIGNAL write_row_continue";
# Let's give the INSERT some time, to make sure it does rollback
---let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE INFO = "INSERT INTO t1 VALUES (1)" AND STATE = "Freeing items";
---source include/wait_condition.inc
+--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE INFO = "INSERT INTO t1 VALUES (1)" AND (STATE = "Freeing items" OR STATE = 'Rollback');
+--let $wait_condition_on_error_output = SELECT INFO, STATE FROM INFORMATION_SCHEMA.PROCESSLIST
+--source include/wait_condition_with_debug.inc
# Resume the DDL in streaming_rollback
SET SESSION debug_sync = "now SIGNAL wsrep_streaming_rollback_continue";
diff --git a/mysql-test/suite/galera_sr/t/galera_sr_bf_abort_idle.test b/mysql-test/suite/galera_sr/t/galera_sr_bf_abort_idle.test
new file mode 100644
index 00000000..66259b79
--- /dev/null
+++ b/mysql-test/suite/galera_sr/t/galera_sr_bf_abort_idle.test
@@ -0,0 +1,68 @@
+#
+# Test BF abort for idle SR transactions
+#
+
+--source include/galera_cluster.inc
+
+--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
+
+#
+# Case 1: BF abort idle SR transaction that has not yet replicated any fragments
+#
+--connection node_1
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 INTEGER);
+INSERT INTO t1 VALUES (1,1),(2,1),(3,1),(4,1),(5,1),(6,1),(7,1),(8,1);
+
+--let $bf_count = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.global_status WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'`
+
+SET SESSION wsrep_trx_fragment_size=10;
+SET SESSION wsrep_trx_fragment_unit='rows';
+START TRANSACTION;
+UPDATE t1 SET f2 = f2 + 10;
+
+--connection node_2
+INSERT INTO t1 VALUES (10,2);
+
+# Wait for SR transaction to be BF aborted
+--connection node_1a
+--let $wait_condition = SELECT VARIABLE_VALUE = $bf_count + 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'
+--source include/wait_condition.inc
+
+
+--connection node_1
+--error ER_LOCK_DEADLOCK
+INSERT INTO t1 VALUES (9,1);
+ROLLBACK;
+
+DROP TABLE t1;
+
+
+#
+# Case 2: BF abort idle SR transaction that has already replicated a fragment
+#
+--connection node_1
+CREATE TABLE t1(f1 INTEGER PRIMARY KEY, f2 INTEGER);
+INSERT INTO t1 VALUES (1,1),(2,1),(3,1),(4,1),(5,1),(6,1),(7,1),(8,1);
+
+--let $bf_count = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.global_status WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'`
+
+
+SET SESSION wsrep_trx_fragment_size=5;
+SET SESSION wsrep_trx_fragment_unit='rows';
+START TRANSACTION;
+UPDATE t1 SET f2 = f2 + 10;
+
+--connection node_2
+INSERT INTO t1 VALUES (10,2);
+
+# Wait for SR transaction to be BF aborted
+--connection node_1a
+--let $wait_condition = SELECT VARIABLE_VALUE = $bf_count + 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'
+--source include/wait_condition.inc
+
+--connection node_1
+--error ER_LOCK_DEADLOCK
+INSERT INTO t1 VALUES (9,1);
+ROLLBACK;
+
+DROP TABLE t1;
diff --git a/mysql-test/suite/galera_sr/t/galera_sr_kill_all_norecovery.test b/mysql-test/suite/galera_sr/t/galera_sr_kill_all_norecovery.test
index 5332b1a1..f6f50fd5 100644
--- a/mysql-test/suite/galera_sr/t/galera_sr_kill_all_norecovery.test
+++ b/mysql-test/suite/galera_sr/t/galera_sr_kill_all_norecovery.test
@@ -38,12 +38,12 @@ SET SESSION wsrep_sync_wait = 0;
--source include/kill_galera.inc
--remove_file $MYSQLTEST_VARDIR/mysqld.1/data/grastate.dat
---let $start_mysqld_params = "--wsrep-new-cluster"
+--let $start_mysqld_params =--wsrep-new-cluster
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--source include/start_mysqld.inc
--connection node_2
---let $start_mysqld_params = ""
+--let $start_mysqld_params =
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
--source include/start_mysqld.inc
diff --git a/mysql-test/suite/gcol/inc/innodb_v_large_col.inc b/mysql-test/suite/gcol/inc/innodb_v_large_col.inc
index 70e18863..8ba6920f 100644
--- a/mysql-test/suite/gcol/inc/innodb_v_large_col.inc
+++ b/mysql-test/suite/gcol/inc/innodb_v_large_col.inc
@@ -1,5 +1,3 @@
---source include/have_innodb.inc
-
eval CREATE TABLE `t` (
`a` VARCHAR(10000), `b` VARCHAR(3000),
`c` VARCHAR(14000) GENERATED ALWAYS AS (CONCAT(a,b)) VIRTUAL,
diff --git a/mysql-test/suite/gcol/r/innodb_virtual_debug_purge.result b/mysql-test/suite/gcol/r/innodb_virtual_debug_purge.result
index 63ea5b1d..505afb9b 100644
--- a/mysql-test/suite/gcol/r/innodb_virtual_debug_purge.result
+++ b/mysql-test/suite/gcol/r/innodb_virtual_debug_purge.result
@@ -96,11 +96,8 @@ a b c
DROP TABLE t1;
CREATE TABLE t1 (a INT, b INT, c INT GENERATED ALWAYS AS(a+b));
INSERT INTO t1(a, b) VALUES (1, 1), (2, 2), (3, 3), (4, 4);
-connection con1;
-# disable purge
-BEGIN;
-SELECT * FROM t0;
-a
+connect stop_purge,localhost,root,,;
+START TRANSACTION WITH CONSISTENT SNAPSHOT;
connection default;
DELETE FROM t1 WHERE a = 1;
UPDATE t1 SET a = 2, b = 2 WHERE a = 5;
@@ -109,10 +106,11 @@ SET DEBUG_SYNC= 'inplace_after_index_build SIGNAL uncommitted WAIT_FOR purged';
ALTER TABLE t1 ADD INDEX idx (c), ALGORITHM=INPLACE, LOCK=NONE;
connection con1;
SET DEBUG_SYNC= 'now WAIT_FOR uncommitted';
+BEGIN;
DELETE FROM t1 WHERE a = 3;
UPDATE t1 SET a = 7, b = 7 WHERE a = 4;
INSERT INTO t1(a, b) VALUES (8, 8);
-# enable purge
+disconnect stop_purge;
COMMIT;
# wait for purge to process the deleted/updated records.
InnoDB 2 transactions not purged
diff --git a/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.test b/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.test
index 09fba028..79669535 100644
--- a/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.test
+++ b/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.test
@@ -131,9 +131,8 @@ CREATE TABLE t1 (a INT, b INT, c INT GENERATED ALWAYS AS(a+b));
INSERT INTO t1(a, b) VALUES (1, 1), (2, 2), (3, 3), (4, 4);
-connection con1;
---echo # disable purge
-BEGIN; SELECT * FROM t0;
+connect (stop_purge,localhost,root,,);
+START TRANSACTION WITH CONSISTENT SNAPSHOT;
connection default;
DELETE FROM t1 WHERE a = 1;
@@ -148,13 +147,14 @@ send ALTER TABLE t1 ADD INDEX idx (c), ALGORITHM=INPLACE, LOCK=NONE;
connection con1;
SET DEBUG_SYNC= 'now WAIT_FOR uncommitted';
+BEGIN;
DELETE FROM t1 WHERE a = 3;
UPDATE t1 SET a = 7, b = 7 WHERE a = 4;
INSERT INTO t1(a, b) VALUES (8, 8);
---echo # enable purge
+disconnect stop_purge;
COMMIT;
--echo # wait for purge to process the deleted/updated records.
diff --git a/mysql-test/suite/innodb/include/innodb_merge_threshold_delete.inc b/mysql-test/suite/innodb/include/innodb_merge_threshold_delete.inc
index 8c60cd6e..7d7188aa 100644
--- a/mysql-test/suite/innodb/include/innodb_merge_threshold_delete.inc
+++ b/mysql-test/suite/innodb/include/innodb_merge_threshold_delete.inc
@@ -5,9 +5,6 @@
# "create table tab1 (a bigint primary key, b varchar(2048)) engine=InnoDB;"
#
---source include/have_innodb.inc
---source include/have_innodb_16k.inc
-
# turn on flags
--disable_query_log
SET GLOBAL innodb_monitor_enable=index_page_merge_attempts;
diff --git a/mysql-test/suite/innodb/include/innodb_merge_threshold_secondary.inc b/mysql-test/suite/innodb/include/innodb_merge_threshold_secondary.inc
index 8e821365..1d3aca87 100644
--- a/mysql-test/suite/innodb/include/innodb_merge_threshold_secondary.inc
+++ b/mysql-test/suite/innodb/include/innodb_merge_threshold_secondary.inc
@@ -6,9 +6,6 @@
# "create index index1 on tab1(b(750));"
#
---source include/have_innodb.inc
---source include/have_innodb_16k.inc
-
# turn on flags
--disable_query_log
SET GLOBAL innodb_monitor_enable=index_page_merge_attempts;
diff --git a/mysql-test/suite/innodb/include/innodb_merge_threshold_update.inc b/mysql-test/suite/innodb/include/innodb_merge_threshold_update.inc
index 61e961ac..f91a796d 100644
--- a/mysql-test/suite/innodb/include/innodb_merge_threshold_update.inc
+++ b/mysql-test/suite/innodb/include/innodb_merge_threshold_update.inc
@@ -5,9 +5,6 @@
# "create table tab1 (a bigint primary key, b varchar(2048)) engine=InnoDB;"
#
---source include/have_innodb.inc
---source include/have_innodb_16k.inc
-
# turn on flags
--disable_query_log
SET GLOBAL innodb_monitor_enable=index_page_merge_attempts;
diff --git a/mysql-test/suite/innodb/include/no_checkpoint_start.inc b/mysql-test/suite/innodb/include/no_checkpoint_start.inc
index a903fee6..69823dd0 100644
--- a/mysql-test/suite/innodb/include/no_checkpoint_start.inc
+++ b/mysql-test/suite/innodb/include/no_checkpoint_start.inc
@@ -1,5 +1,28 @@
# Preparation for using no_checkpoint_end.inc
+# no_checkpoint_flush: Set to trigger flushing the dirty pages from buffer pool
+# and checkpoint before the "no checkpoint" block.
+
+if ($no_checkpoint_flush) {
+ --echo
+ --echo # Flush all dirty pages from buffer pool
+ SET @no_checkpoint_save_pct= @@GLOBAL.innodb_max_dirty_pages_pct;
+ SET @no_checkpoint_save_pct_lwm= @@GLOBAL.innodb_max_dirty_pages_pct_lwm;
+
+ SET GLOBAL innodb_max_dirty_pages_pct_lwm=0.0;
+ SET GLOBAL innodb_max_dirty_pages_pct=0.0;
+
+ let $wait_condition =
+ SELECT variable_value = 0
+ FROM information_schema.global_status
+ WHERE variable_name = 'INNODB_BUFFER_POOL_PAGES_DIRTY';
+ --source include/wait_condition.inc
+
+ SET GLOBAL innodb_max_dirty_pages_pct= @no_checkpoint_save_pct;
+ SET GLOBAL innodb_max_dirty_pages_pct_lwm= @no_checkpoint_save_pct_lwm;
+ --echo
+}
+
let MYSQLD_DATADIR= `select @@datadir`;
--replace_regex /.*Last checkpoint at[ ]*([0-9]+).*/\1/
let CHECKPOINT_LSN=`SHOW ENGINE INNODB STATUS`;
diff --git a/mysql-test/suite/innodb/r/alter_copy.result b/mysql-test/suite/innodb/r/alter_copy.result
index 8c9e5966..72ae28e9 100644
--- a/mysql-test/suite/innodb/r/alter_copy.result
+++ b/mysql-test/suite/innodb/r/alter_copy.result
@@ -51,7 +51,7 @@ ADD INDEX(a,b,d), ADD INDEX(a,d,b), ADD INDEX(b,c,d), ADD INDEX(b,d,c),
ALGORITHM=COPY;
connection default;
SET DEBUG_SYNC='now WAIT_FOR hung';
-# restart: --innodb-force-recovery=3 --debug_dbug=+d,recv_ran_out_of_buffer
+# restart: --innodb-force-recovery=3
disconnect hang;
FTS_INDEX_1.ibd
FTS_INDEX_2.ibd
diff --git a/mysql-test/suite/innodb/r/alter_kill.result b/mysql-test/suite/innodb/r/alter_kill.result
index 51814088..209a711d 100644
--- a/mysql-test/suite/innodb/r/alter_kill.result
+++ b/mysql-test/suite/innodb/r/alter_kill.result
@@ -15,9 +15,9 @@ disconnect con1;
# and recompute innodb_checksum_algorithm=crc32
# restart
SELECT COUNT(*) FROM bug16720368;
-ERROR 42S02: Table 'test.bug16720368' doesn't exist in engine
+ERROR HY000: Table `test`.`bug16720368` is corrupted. Please drop the table and recreate.
INSERT INTO bug16720368 VALUES(1);
-ERROR HY000: Table test/bug16720368 is corrupted. Please drop the table and recreate.
+ERROR HY000: Table `test`.`bug16720368` is corrupted. Please drop the table and recreate.
INSERT INTO bug16720368_1 VALUES(1);
# Shut down the server to uncorrupt the data.
# restart
diff --git a/mysql-test/suite/innodb/r/alter_not_null,COPY,NON-STRICT.rdiff b/mysql-test/suite/innodb/r/alter_not_null,COPY,NON-STRICT.rdiff
index 01db97e5..7c32d38a 100644
--- a/mysql-test/suite/innodb/r/alter_not_null,COPY,NON-STRICT.rdiff
+++ b/mysql-test/suite/innodb/r/alter_not_null,COPY,NON-STRICT.rdiff
@@ -1,42 +1,79 @@
-7,8c7,8
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
----
-> affected rows: 1
-> info: Records: 1 Duplicates: 0 Warnings: 1
-21,22c21,22
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
----
-> affected rows: 1
-> info: Records: 1 Duplicates: 0 Warnings: 1
-35,36c35,36
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
----
-> affected rows: 1
-> info: Records: 1 Duplicates: 0 Warnings: 1
-49,50c49,50
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
----
-> affected rows: 1
-> info: Records: 1 Duplicates: 0 Warnings: 1
-63,64c63,64
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
----
-> affected rows: 1
-> info: Records: 1 Duplicates: 0 Warnings: 1
-77,78c77,78
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
----
-> affected rows: 1
-> info: Records: 1 Duplicates: 0 Warnings: 1
-98,99c98,99
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
----
-> affected rows: 1
-> info: Records: 1 Duplicates: 0 Warnings: 1
+--- alter_not_null.result
++++ alter_not_null,COPY,NON-STRICT.result~
+@@ -4,8 +4,8 @@
+ f1
+ NULL
+ ALTER TABLE t1 CHANGE f1 f1 INT NOT NULL;
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
++affected rows: 1
++info: Records: 1 Duplicates: 0 Warnings: 1
+ Warnings:
+ Warning 1265 Data truncated for column 'f1' at row 1
+ SELECT * FROM t1;
+@@ -18,8 +18,8 @@
+ f1
+ NULL
+ ALTER TABLE t1 CHANGE f1 f1 CHAR(10) NOT NULL;
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
++affected rows: 1
++info: Records: 1 Duplicates: 0 Warnings: 1
+ Warnings:
+ Warning 1265 Data truncated for column 'f1' at row 1
+ SELECT * FROM t1;
+@@ -32,8 +32,8 @@
+ f1
+ NULL
+ ALTER TABLE t1 CHANGE f1 f1 VARCHAR(20) NOT NULL;
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
++affected rows: 1
++info: Records: 1 Duplicates: 0 Warnings: 1
+ Warnings:
+ Warning 1265 Data truncated for column 'f1' at row 1
+ SELECT * FROM t1;
+@@ -46,8 +46,8 @@
+ f1
+ NULL
+ ALTER TABLE t1 CHANGE f1 f1 TEXT NOT NULL DEFAULT 'abc';
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
++affected rows: 1
++info: Records: 1 Duplicates: 0 Warnings: 1
+ Warnings:
+ Warning 1265 Data truncated for column 'f1' at row 1
+ SELECT * FROM t1;
+@@ -60,8 +60,8 @@
+ f1 f2 f3
+ 2 2 NULL
+ ALTER TABLE t1 CHANGE f3 f3 INT NOT NULL DEFAULT (f1 + f2);
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
++affected rows: 1
++info: Records: 1 Duplicates: 0 Warnings: 1
+ Warnings:
+ Warning 1265 Data truncated for column 'f3' at row 1
+ SELECT * FROM t1;
+@@ -74,8 +74,8 @@
+ f1 b
+ 10 NULL
+ ALTER TABLE t1 CHANGE b b TINYINT NOT NULL DEFAULT if(unix_timestamp()>1,1000,0);
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
++affected rows: 1
++info: Records: 1 Duplicates: 0 Warnings: 1
+ Warnings:
+ Warning 1265 Data truncated for column 'b' at row 1
+ SELECT * FROM t1;
+@@ -95,8 +95,8 @@
+ CREATE TABLE t1(c1 INT NOT NULL, c2 INT, PRIMARY KEY(c1))ENGINE=INNODB;
+ INSERT INTO t1 VALUES(1, NULL);
+ ALTER IGNORE TABLE t1 CHANGE c2 c2 INT NOT NULL DEFAULT 2;
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
++affected rows: 1
++info: Records: 1 Duplicates: 0 Warnings: 1
+ Warnings:
+ Warning 1265 Data truncated for column 'c2' at row 1
+ SELECT * FROM t1;
diff --git a/mysql-test/suite/innodb/r/alter_not_null,COPY,STRICT.rdiff b/mysql-test/suite/innodb/r/alter_not_null,COPY,STRICT.rdiff
index e02d235c..37e97169 100644
--- a/mysql-test/suite/innodb/r/alter_not_null,COPY,STRICT.rdiff
+++ b/mysql-test/suite/innodb/r/alter_not_null,COPY,STRICT.rdiff
@@ -1,72 +1,109 @@
-7,10c7
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
-< Warnings:
-< Warning 1265 Data truncated for column 'f1' at row 1
----
-> ERROR 01000: Data truncated for column 'f1' at row 1
-13c10
-< 0
----
-> NULL
-21,24c18
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
-< Warnings:
-< Warning 1265 Data truncated for column 'f1' at row 1
----
-> ERROR 01000: Data truncated for column 'f1' at row 1
-27c21
-<
----
-> NULL
-35,38c29
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
-< Warnings:
-< Warning 1265 Data truncated for column 'f1' at row 1
----
-> ERROR 01000: Data truncated for column 'f1' at row 1
-41c32
-<
----
-> NULL
-49,52c40
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
-< Warnings:
-< Warning 1265 Data truncated for column 'f1' at row 1
----
-> ERROR 01000: Data truncated for column 'f1' at row 1
-55c43
-<
----
-> NULL
-63,66c51
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
-< Warnings:
-< Warning 1265 Data truncated for column 'f3' at row 1
----
-> ERROR 01000: Data truncated for column 'f3' at row 1
-69c54
-< 2 2 0
----
-> 2 2 NULL
-77,80c62
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
-< Warnings:
-< Warning 1265 Data truncated for column 'b' at row 1
----
-> ERROR 01000: Data truncated for column 'b' at row 1
-83c65
-< 10 0
----
-> 10 NULL
-98,99c80,81
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
----
-> affected rows: 1
-> info: Records: 1 Duplicates: 0 Warnings: 1
+--- alter_not_null.result
++++ alter_not_null,COPY,STRICT.result~
+@@ -4,13 +4,10 @@
+ f1
+ NULL
+ ALTER TABLE t1 CHANGE f1 f1 INT NOT NULL;
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
+-Warnings:
+-Warning 1265 Data truncated for column 'f1' at row 1
++ERROR 01000: Data truncated for column 'f1' at row 1
+ SELECT * FROM t1;
+ f1
+-0
++NULL
+ DROP TABLE t1;
+ CREATE TABLE t1(f1 CHAR(10))ENGINE=INNODB;
+ INSERT INTO t1 VALUES(NULL);
+@@ -18,13 +15,10 @@
+ f1
+ NULL
+ ALTER TABLE t1 CHANGE f1 f1 CHAR(10) NOT NULL;
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
+-Warnings:
+-Warning 1265 Data truncated for column 'f1' at row 1
++ERROR 01000: Data truncated for column 'f1' at row 1
+ SELECT * FROM t1;
+ f1
+-
++NULL
+ DROP TABLE t1;
+ CREATE TABLE t1(f1 VARCHAR(10))ENGINE=INNODB;
+ INSERT INTO t1 VALUES(NULL);
+@@ -32,13 +26,10 @@
+ f1
+ NULL
+ ALTER TABLE t1 CHANGE f1 f1 VARCHAR(20) NOT NULL;
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
+-Warnings:
+-Warning 1265 Data truncated for column 'f1' at row 1
++ERROR 01000: Data truncated for column 'f1' at row 1
+ SELECT * FROM t1;
+ f1
+-
++NULL
+ DROP TABLE t1;
+ CREATE TABLE t1(f1 TEXT)ENGINE=INNODB;
+ INSERT INTO t1 VALUES(NULL);
+@@ -46,13 +37,10 @@
+ f1
+ NULL
+ ALTER TABLE t1 CHANGE f1 f1 TEXT NOT NULL DEFAULT 'abc';
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
+-Warnings:
+-Warning 1265 Data truncated for column 'f1' at row 1
++ERROR 01000: Data truncated for column 'f1' at row 1
+ SELECT * FROM t1;
+ f1
+-
++NULL
+ DROP TABLE t1;
+ CREATE TABLE t1(f1 INT NOT NULL, f2 INT NOT NULL, f3 INT)ENGINE=INNODB;
+ INSERT INTO t1 VALUES(2, 2, NULL);
+@@ -60,13 +48,10 @@
+ f1 f2 f3
+ 2 2 NULL
+ ALTER TABLE t1 CHANGE f3 f3 INT NOT NULL DEFAULT (f1 + f2);
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
+-Warnings:
+-Warning 1265 Data truncated for column 'f3' at row 1
++ERROR 01000: Data truncated for column 'f3' at row 1
+ SELECT * FROM t1;
+ f1 f2 f3
+-2 2 0
++2 2 NULL
+ DROP TABLE t1;
+ CREATE TABLE t1(f1 INT NOT NULL DEFAULT 0, b TINYINT)ENGINE=InnoDB;
+ INSERT INTO t1 VALUES(10, NULL);
+@@ -74,13 +59,10 @@
+ f1 b
+ 10 NULL
+ ALTER TABLE t1 CHANGE b b TINYINT NOT NULL DEFAULT if(unix_timestamp()>1,1000,0);
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
+-Warnings:
+-Warning 1265 Data truncated for column 'b' at row 1
++ERROR 01000: Data truncated for column 'b' at row 1
+ SELECT * FROM t1;
+ f1 b
+-10 0
++10 NULL
+ DROP TABLE t1;
+ CREATE TABLE t1(a INT, v INT AS (a), c INT, d INT NOT NULL, e INT) ENGINE=InnoDB;
+ ALTER TABLE t1 DROP COLUMN c, CHANGE COLUMN e e INT NOT NULL;
+@@ -95,8 +77,8 @@
+ CREATE TABLE t1(c1 INT NOT NULL, c2 INT, PRIMARY KEY(c1))ENGINE=INNODB;
+ INSERT INTO t1 VALUES(1, NULL);
+ ALTER IGNORE TABLE t1 CHANGE c2 c2 INT NOT NULL DEFAULT 2;
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
++affected rows: 1
++info: Records: 1 Duplicates: 0 Warnings: 1
+ Warnings:
+ Warning 1265 Data truncated for column 'c2' at row 1
+ SELECT * FROM t1;
diff --git a/mysql-test/suite/innodb/r/alter_not_null,INPLACE,STRICT.rdiff b/mysql-test/suite/innodb/r/alter_not_null,INPLACE,STRICT.rdiff
index ec97b174..555f4cdb 100644
--- a/mysql-test/suite/innodb/r/alter_not_null,INPLACE,STRICT.rdiff
+++ b/mysql-test/suite/innodb/r/alter_not_null,INPLACE,STRICT.rdiff
@@ -1,66 +1,98 @@
-7,10c7
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
-< Warnings:
-< Warning 1265 Data truncated for column 'f1' at row 1
----
-> ERROR 01000: Data truncated for column 'f1' at row 1
-13c10
-< 0
----
-> NULL
-21,24c18
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
-< Warnings:
-< Warning 1265 Data truncated for column 'f1' at row 1
----
-> ERROR 01000: Data truncated for column 'f1' at row 1
-27c21
-<
----
-> NULL
-35,38c29
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
-< Warnings:
-< Warning 1265 Data truncated for column 'f1' at row 1
----
-> ERROR 01000: Data truncated for column 'f1' at row 1
-41c32
-<
----
-> NULL
-49,52c40
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
-< Warnings:
-< Warning 1265 Data truncated for column 'f1' at row 1
----
-> ERROR 01000: Data truncated for column 'f1' at row 1
-55c43
-<
----
-> NULL
-63,66c51
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
-< Warnings:
-< Warning 1265 Data truncated for column 'f3' at row 1
----
-> ERROR 01000: Data truncated for column 'f3' at row 1
-69c54
-< 2 2 0
----
-> 2 2 NULL
-77,80c62
-< affected rows: 0
-< info: Records: 0 Duplicates: 0 Warnings: 1
-< Warnings:
-< Warning 1265 Data truncated for column 'b' at row 1
----
-> ERROR 01000: Data truncated for column 'b' at row 1
-83c65
-< 10 0
----
-> 10 NULL
+--- alter_not_null.result
++++ alter_not_null,INPLACE,STRICT.result~
+@@ -4,13 +4,10 @@
+ f1
+ NULL
+ ALTER TABLE t1 CHANGE f1 f1 INT NOT NULL;
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
+-Warnings:
+-Warning 1265 Data truncated for column 'f1' at row 1
++ERROR 01000: Data truncated for column 'f1' at row 1
+ SELECT * FROM t1;
+ f1
+-0
++NULL
+ DROP TABLE t1;
+ CREATE TABLE t1(f1 CHAR(10))ENGINE=INNODB;
+ INSERT INTO t1 VALUES(NULL);
+@@ -18,13 +15,10 @@
+ f1
+ NULL
+ ALTER TABLE t1 CHANGE f1 f1 CHAR(10) NOT NULL;
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
+-Warnings:
+-Warning 1265 Data truncated for column 'f1' at row 1
++ERROR 01000: Data truncated for column 'f1' at row 1
+ SELECT * FROM t1;
+ f1
+-
++NULL
+ DROP TABLE t1;
+ CREATE TABLE t1(f1 VARCHAR(10))ENGINE=INNODB;
+ INSERT INTO t1 VALUES(NULL);
+@@ -32,13 +26,10 @@
+ f1
+ NULL
+ ALTER TABLE t1 CHANGE f1 f1 VARCHAR(20) NOT NULL;
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
+-Warnings:
+-Warning 1265 Data truncated for column 'f1' at row 1
++ERROR 01000: Data truncated for column 'f1' at row 1
+ SELECT * FROM t1;
+ f1
+-
++NULL
+ DROP TABLE t1;
+ CREATE TABLE t1(f1 TEXT)ENGINE=INNODB;
+ INSERT INTO t1 VALUES(NULL);
+@@ -46,13 +37,10 @@
+ f1
+ NULL
+ ALTER TABLE t1 CHANGE f1 f1 TEXT NOT NULL DEFAULT 'abc';
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
+-Warnings:
+-Warning 1265 Data truncated for column 'f1' at row 1
++ERROR 01000: Data truncated for column 'f1' at row 1
+ SELECT * FROM t1;
+ f1
+-
++NULL
+ DROP TABLE t1;
+ CREATE TABLE t1(f1 INT NOT NULL, f2 INT NOT NULL, f3 INT)ENGINE=INNODB;
+ INSERT INTO t1 VALUES(2, 2, NULL);
+@@ -60,13 +48,10 @@
+ f1 f2 f3
+ 2 2 NULL
+ ALTER TABLE t1 CHANGE f3 f3 INT NOT NULL DEFAULT (f1 + f2);
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
+-Warnings:
+-Warning 1265 Data truncated for column 'f3' at row 1
++ERROR 01000: Data truncated for column 'f3' at row 1
+ SELECT * FROM t1;
+ f1 f2 f3
+-2 2 0
++2 2 NULL
+ DROP TABLE t1;
+ CREATE TABLE t1(f1 INT NOT NULL DEFAULT 0, b TINYINT)ENGINE=InnoDB;
+ INSERT INTO t1 VALUES(10, NULL);
+@@ -74,13 +59,10 @@
+ f1 b
+ 10 NULL
+ ALTER TABLE t1 CHANGE b b TINYINT NOT NULL DEFAULT if(unix_timestamp()>1,1000,0);
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 1
+-Warnings:
+-Warning 1265 Data truncated for column 'b' at row 1
++ERROR 01000: Data truncated for column 'b' at row 1
+ SELECT * FROM t1;
+ f1 b
+-10 0
++10 NULL
+ DROP TABLE t1;
+ CREATE TABLE t1(a INT, v INT AS (a), c INT, d INT NOT NULL, e INT) ENGINE=InnoDB;
+ ALTER TABLE t1 DROP COLUMN c, CHANGE COLUMN e e INT NOT NULL;
diff --git a/mysql-test/suite/innodb/r/autoinc_debug.result b/mysql-test/suite/innodb/r/autoinc_debug.result
index b3b7a469..59740e43 100644
--- a/mysql-test/suite/innodb/r/autoinc_debug.result
+++ b/mysql-test/suite/innodb/r/autoinc_debug.result
@@ -105,3 +105,60 @@ t1 CREATE TABLE `t1` (
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
SET DEBUG_SYNC='RESET';
+#
+# MDEV-33593: Auto increment deadlock error causes ASSERT in subsequent save point
+#
+CREATE TABLE t1(col1 INT PRIMARY KEY AUTO_INCREMENT, col2 INT) ENGINE=InnoDB;
+CREATE TABLE t2(col1 INT PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t1(col2) values(100);
+connect con1, localhost, root,,;
+START TRANSACTION;
+# T1: Acquiring Row X lock on table t2
+INSERT INTO t2 values(100);
+connect con2, localhost, root,,;
+START TRANSACTION;
+# T2: Wait for (T1) row lock on t2 after acquiring GAP Lock on t1
+UPDATE t1 SET col2 = 20 where col1 = 10;
+SET DEBUG_SYNC='lock_wait_before_suspend SIGNAL t2_waiting';
+INSERT INTO t2 values(100);
+connection default;
+SET DEBUG_SYNC='now WAIT_FOR t2_waiting';
+# T3: Wait for (T2) II row Lock on t1 after acquiring Auto Increment Lock on t1
+SET DEBUG_SYNC='lock_wait_before_suspend SIGNAL t3_waiting';
+INSERT INTO t1(col2) SELECT col2 from t1;
+connection con1;
+SAVEPOINT s1;
+SET DEBUG_SYNC='now WAIT_FOR t3_waiting';
+# T1: Wait for (T3) auto increment lock on t1 causing T1 -> T3 -> T2 -> T1 deadlock
+SET debug_dbug = '+d,innodb_deadlock_victim_self';
+INSERT INTO t1(col2) VALUES(200);
+ERROR HY000: Failed to read auto-increment value from storage engine
+# The transaction should have been rolled back
+SELECT * FROM t1;
+col1 col2
+1 100
+SELECT * FROM t2;
+col1
+# Release the previous savepoint using the same name
+SAVEPOINT s1;
+COMMIT;
+connection con2;
+COMMIT;
+connection default;
+COMMIT;
+disconnect con1;
+disconnect con2;
+# Cleanup
+SELECT * FROM t1;
+col1 col2
+1 100
+2 100
+DROP TABLE t1;
+SELECT * FROM t2;
+col1
+100
+DROP TABLE t2;
+SET DEBUG_SYNC='RESET';
+#
+# End of 10.5 tests
+#
diff --git a/mysql-test/suite/innodb/r/autoinc_import.result b/mysql-test/suite/innodb/r/autoinc_import.result
new file mode 100644
index 00000000..4a8ddd02
--- /dev/null
+++ b/mysql-test/suite/innodb/r/autoinc_import.result
@@ -0,0 +1,232 @@
+CREATE TABLE t1 (id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t1 VALUES(42);
+CREATE TABLE t1b LIKE t1;
+INSERT INTO t1b VALUES(3);
+CREATE TABLE t1z LIKE t1;
+CREATE TABLE t1t (id TINYINT AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB;
+CREATE TABLE t0t LIKE t1t;
+INSERT INTO t1t VALUES(123);
+FLUSH TABLES t1,t1b,t1t FOR EXPORT;
+UNLOCK TABLES;
+CREATE TABLE t5_7 LIKE t1;
+CREATE TABLE t5_7b LIKE t1b;
+CREATE TABLE t10_1 LIKE t1;
+CREATE TABLE t10_1b LIKE t1b;
+ALTER TABLE t1 DISCARD TABLESPACE;
+ALTER TABLE t1b DISCARD TABLESPACE;
+ALTER TABLE t1z DISCARD TABLESPACE;
+ALTER TABLE t1t DISCARD TABLESPACE;
+ALTER TABLE t0t DISCARD TABLESPACE;
+ALTER TABLE t5_7 DISCARD TABLESPACE;
+ALTER TABLE t5_7b DISCARD TABLESPACE;
+ALTER TABLE t10_1 DISCARD TABLESPACE;
+ALTER TABLE t10_1b DISCARD TABLESPACE;
+FLUSH TABLES;
+ALTER TABLE t0t IMPORT TABLESPACE;
+Warnings:
+Warning 1810 IO Read error: (2, No such file or directory) Error opening './test/t0t.cfg', will attempt to import without schema verification
+INSERT INTO t0t VALUES(NULL);
+SELECT * FROM t0t;
+id
+123
+124
+DROP TABLE t0t;
+ALTER TABLE t1 IMPORT TABLESPACE;
+Warnings:
+Warning 1810 IO Read error: (2, No such file or directory) Error opening './test/t1.cfg', will attempt to import without schema verification
+ALTER TABLE t1b IMPORT TABLESPACE;
+Warnings:
+Warning 1810 IO Read error: (2, No such file or directory) Error opening './test/t1b.cfg', will attempt to import without schema verification
+ALTER TABLE t1z IMPORT TABLESPACE;
+Warnings:
+Warning 1810 IO Read error: (2, No such file or directory) Error opening './test/t1z.cfg', will attempt to import without schema verification
+ALTER TABLE t1t IMPORT TABLESPACE;
+Warnings:
+Warning 1810 IO Read error: (2, No such file or directory) Error opening './test/t1t.cfg', will attempt to import without schema verification
+ALTER TABLE t5_7 IMPORT TABLESPACE;
+Warnings:
+Warning 1810 IO Read error: (2, No such file or directory) Error opening './test/t5_7.cfg', will attempt to import without schema verification
+ALTER TABLE t5_7b IMPORT TABLESPACE;
+Warnings:
+Warning 1810 IO Read error: (2, No such file or directory) Error opening './test/t5_7b.cfg', will attempt to import without schema verification
+ALTER TABLE t10_1 IMPORT TABLESPACE;
+Warnings:
+Warning 1810 IO Read error: (2, No such file or directory) Error opening './test/t10_1.cfg', will attempt to import without schema verification
+ALTER TABLE t10_1b IMPORT TABLESPACE;
+Warnings:
+Warning 1810 IO Read error: (2, No such file or directory) Error opening './test/t10_1b.cfg', will attempt to import without schema verification
+FOUND 1 /InnoDB: Resetting PAGE_ROOT_AUTO_INC from 128 to 123 on table `test`\.`t0t`/ in mysqld.1.err
+FOUND 1 /InnoDB: Resetting PAGE_ROOT_AUTO_INC from 0 to 42 on table `test`\.`t1z`/ in mysqld.1.err
+FOUND 1 /InnoDB: Resetting PAGE_ROOT_AUTO_INC from 128 to 123 on table `test`\.`t1t`/ in mysqld.1.err
+FOUND 1 /InnoDB: Resetting PAGE_ROOT_AUTO_INC from 3 to 42 on table `test`\.`t5_7` \(created with version 50744\)/ in mysqld.1.err
+FOUND 1 /InnoDB: Resetting PAGE_ROOT_AUTO_INC from 3 to 42 on table `test`\.`t10_1` \(created with version 100149\)/ in mysqld.1.err
+FOUND 5 /InnoDB: Resetting PAGE_ROOT_AUTO_INC/ in mysqld.1.err
+# restart: --read-only
+CHECK TABLE t1, t1b, t1t, t1z, t5_7, t5_7b, t10_1, t10_1b;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+test.t1b check status OK
+test.t1t check status OK
+test.t1z check status OK
+test.t5_7 check note Auto_increment will be checked on each open until CHECK TABLE FOR UPGRADE is executed
+test.t5_7 check status OK
+test.t5_7b check note Auto_increment will be checked on each open until CHECK TABLE FOR UPGRADE is executed
+test.t5_7b check status OK
+test.t10_1 check note Auto_increment will be checked on each open until CHECK TABLE FOR UPGRADE is executed
+test.t10_1 check status OK
+test.t10_1b check note Auto_increment will be checked on each open until CHECK TABLE FOR UPGRADE is executed
+test.t10_1b check status OK
+CHECK TABLE t1, t1b, t1t, t1z, t5_7, t5_7b, t10_1, t10_1b FOR UPGRADE;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+test.t1b check status OK
+test.t1t check status OK
+test.t1z check status OK
+test.t5_7 check note Auto_increment will be checked on each open until CHECK TABLE FOR UPGRADE is executed
+test.t5_7 check status OK
+test.t5_7b check note Auto_increment will be checked on each open until CHECK TABLE FOR UPGRADE is executed
+test.t5_7b check status OK
+test.t10_1 check note Auto_increment will be checked on each open until CHECK TABLE FOR UPGRADE is executed
+test.t10_1 check status OK
+test.t10_1b check note Auto_increment will be checked on each open until CHECK TABLE FOR UPGRADE is executed
+test.t10_1b check status OK
+# restart: --innodb-read-only --read-only
+CHECK TABLE t1, t1b, t1t, t1z, t5_7, t5_7b, t10_1, t10_1b;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+test.t1b check status OK
+test.t1t check status OK
+test.t1z check status OK
+test.t5_7 check note Auto_increment will be checked on each open until CHECK TABLE FOR UPGRADE is executed
+test.t5_7 check status OK
+test.t5_7b check note Auto_increment will be checked on each open until CHECK TABLE FOR UPGRADE is executed
+test.t5_7b check status OK
+test.t10_1 check note Auto_increment will be checked on each open until CHECK TABLE FOR UPGRADE is executed
+test.t10_1 check status OK
+test.t10_1b check note Auto_increment will be checked on each open until CHECK TABLE FOR UPGRADE is executed
+test.t10_1b check status OK
+CHECK TABLE t1, t1b, t1t, t1z, t5_7, t5_7b, t10_1, t10_1b FOR UPGRADE;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+test.t1b check status OK
+test.t1t check status OK
+test.t1z check status OK
+test.t5_7 check note Auto_increment will be checked on each open until CHECK TABLE FOR UPGRADE is executed
+test.t5_7 check status OK
+test.t5_7b check note Auto_increment will be checked on each open until CHECK TABLE FOR UPGRADE is executed
+test.t5_7b check status OK
+test.t10_1 check note Auto_increment will be checked on each open until CHECK TABLE FOR UPGRADE is executed
+test.t10_1 check status OK
+test.t10_1b check note Auto_increment will be checked on each open until CHECK TABLE FOR UPGRADE is executed
+test.t10_1b check status OK
+# restart: --innodb-read-only
+CHECK TABLE t1, t1b, t1t, t1z, t5_7, t5_7b, t10_1, t10_1b;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+test.t1b check status OK
+test.t1t check status OK
+test.t1z check status OK
+test.t5_7 check status Operation failed
+test.t5_7b check status Operation failed
+test.t10_1 check status Operation failed
+test.t10_1b check status Operation failed
+CHECK TABLE t1, t1b, t1t, t1z, t5_7, t5_7b, t10_1, t10_1b FOR UPGRADE;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+test.t1b check status OK
+test.t1t check status OK
+test.t1z check status OK
+test.t5_7 check status Operation failed
+test.t5_7b check status Operation failed
+test.t10_1 check status Operation failed
+test.t10_1b check status Operation failed
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+1
+SELECT COUNT(*) FROM t1b;
+COUNT(*)
+1
+SELECT COUNT(*) FROM t1t;
+COUNT(*)
+1
+SELECT COUNT(*) FROM t1z;
+COUNT(*)
+1
+SELECT COUNT(*) FROM t5_7;
+COUNT(*)
+1
+SELECT COUNT(*) FROM t5_7b;
+COUNT(*)
+1
+SELECT COUNT(*) FROM t10_1;
+COUNT(*)
+1
+SELECT COUNT(*) FROM t10_1b;
+COUNT(*)
+1
+# restart
+CHECK TABLE t1, t1b, t1t, t1z, t5_7, t5_7b, t10_1, t10_1b FOR UPGRADE;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+test.t1b check status OK
+test.t1t check status OK
+test.t1z check status OK
+test.t5_7 check note Auto_increment checked and .frm file version updated
+test.t5_7 check status OK
+test.t5_7b check note Auto_increment checked and .frm file version updated
+test.t5_7b check status OK
+test.t10_1 check note Auto_increment checked and .frm file version updated
+test.t10_1 check status OK
+test.t10_1b check note Auto_increment checked and .frm file version updated
+test.t10_1b check status OK
+INSERT INTO t1 VALUES(NULL);
+INSERT INTO t1b VALUES(NULL);
+INSERT INTO t1t VALUES(NULL);
+INSERT INTO t1z VALUES(NULL);
+INSERT INTO t5_7 VALUES(NULL);
+INSERT INTO t5_7b VALUES(NULL);
+INSERT INTO t10_1 VALUES(NULL);
+INSERT INTO t10_1b VALUES(NULL);
+CHECK TABLE t1, t1b, t1t, t1z, t5_7, t5_7b, t10_1, t10_1b FOR UPGRADE;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+test.t1b check status OK
+test.t1t check status OK
+test.t1z check status OK
+test.t5_7 check status OK
+test.t5_7b check status OK
+test.t10_1 check status OK
+test.t10_1b check status OK
+SELECT * FROM t1;
+id
+4
+42
+SELECT * FROM t1b;
+id
+3
+347
+SELECT * FROM t1t;
+id
+123
+124
+SELECT * FROM t1z;
+id
+42
+43
+SELECT * FROM t5_7;
+id
+42
+43
+SELECT * FROM t5_7b;
+id
+3
+347
+SELECT * FROM t10_1;
+id
+42
+43
+SELECT * FROM t10_1b;
+id
+3
+347
+DROP TABLE t1, t1b, t1t, t1z, t5_7, t5_7b, t10_1, t10_1b;
diff --git a/mysql-test/suite/innodb/r/check_ibd_filesize,32k.rdiff b/mysql-test/suite/innodb/r/check_ibd_filesize,32k.rdiff
index 44446602..ad1f3a44 100644
--- a/mysql-test/suite/innodb/r/check_ibd_filesize,32k.rdiff
+++ b/mysql-test/suite/innodb/r/check_ibd_filesize,32k.rdiff
@@ -1,5 +1,5 @@
---- mysql-test/suite/innodb/r/check_ibd_filesize.result 2022-08-16 17:28:06.462350465 +0530
-+++ mysql-test/suite/innodb/r/check_ibd_filesize.reject 2022-08-16 17:29:25.129637040 +0530
+--- mysql-test/suite/innodb/r/check_ibd_filesize.result
++++ mysql-test/suite/innodb/r/check_ibd_filesize.reject
@@ -3,18 +3,12 @@
# SPACE IN 5.7 THAN IN 5.6
#
@@ -14,7 +14,7 @@
-# bytes: 65536
+# bytes: 131072
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
--# bytes: 4194304
+-# bytes: 2097152
-DROP TABLE t1;
-CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
diff --git a/mysql-test/suite/innodb/r/check_ibd_filesize,4k.rdiff b/mysql-test/suite/innodb/r/check_ibd_filesize,4k.rdiff
index ef55ad97..1412df39 100644
--- a/mysql-test/suite/innodb/r/check_ibd_filesize,4k.rdiff
+++ b/mysql-test/suite/innodb/r/check_ibd_filesize,4k.rdiff
@@ -1,5 +1,5 @@
---- mysql-test/suite/innodb/r/check_ibd_filesize.result 2022-08-16 17:28:06.462350465 +0530
-+++ mysql-test/suite/innodb/r/check_ibd_filesize.reject 2022-08-16 17:31:39.288769153 +0530
+--- mysql-test/suite/innodb/r/check_ibd_filesize.result
++++ mysql-test/suite/innodb/r/check_ibd_filesize.reject
@@ -3,18 +3,18 @@
# SPACE IN 5.7 THAN IN 5.6
#
@@ -13,7 +13,7 @@
-# bytes: 65536
+# bytes: 16384
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
- # bytes: 4194304
+ # bytes: 2097152
DROP TABLE t1;
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
diff --git a/mysql-test/suite/innodb/r/check_ibd_filesize,64k.rdiff b/mysql-test/suite/innodb/r/check_ibd_filesize,64k.rdiff
index bcdcea31..15692559 100644
--- a/mysql-test/suite/innodb/r/check_ibd_filesize,64k.rdiff
+++ b/mysql-test/suite/innodb/r/check_ibd_filesize,64k.rdiff
@@ -1,5 +1,5 @@
---- mysql-test/suite/innodb/r/check_ibd_filesize.result 2022-08-16 17:28:06.462350465 +0530
-+++ mysql-test/suite/innodb/r/check_ibd_filesize.reject 2022-08-16 17:30:28.957174270 +0530
+--- mysql-test/suite/innodb/r/check_ibd_filesize.result
++++ mysql-test/suite/innodb/r/check_ibd_filesize.reject
@@ -3,18 +3,12 @@
# SPACE IN 5.7 THAN IN 5.6
#
@@ -14,7 +14,7 @@
-# bytes: 65536
+# bytes: 262144
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
--# bytes: 4194304
+-# bytes: 2097152
-DROP TABLE t1;
-CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
diff --git a/mysql-test/suite/innodb/r/check_ibd_filesize,8k.rdiff b/mysql-test/suite/innodb/r/check_ibd_filesize,8k.rdiff
index 7b699ef4..55cf5973 100644
--- a/mysql-test/suite/innodb/r/check_ibd_filesize,8k.rdiff
+++ b/mysql-test/suite/innodb/r/check_ibd_filesize,8k.rdiff
@@ -1,5 +1,5 @@
---- mysql-test/suite/innodb/r/check_ibd_filesize.result 2022-08-16 17:28:06.462350465 +0530
-+++ mysql-test/suite/innodb/r/check_ibd_filesize.reject 2022-08-16 17:31:03.516962339 +0530
+--- mysql-test/suite/innodb/r/check_ibd_filesize.result
++++ mysql-test/suite/innodb/r/check_ibd_filesize.reject
@@ -3,18 +3,18 @@
# SPACE IN 5.7 THAN IN 5.6
#
@@ -13,7 +13,7 @@
-# bytes: 65536
+# bytes: 32768
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
- # bytes: 4194304
+ # bytes: 2097152
DROP TABLE t1;
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
diff --git a/mysql-test/suite/innodb/r/check_ibd_filesize.result b/mysql-test/suite/innodb/r/check_ibd_filesize.result
index 0d224d6a..b0f37618 100644
--- a/mysql-test/suite/innodb/r/check_ibd_filesize.result
+++ b/mysql-test/suite/innodb/r/check_ibd_filesize.result
@@ -10,7 +10,7 @@ DROP TABLE t1;
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=InnoDB;
# bytes: 65536
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
-# bytes: 4194304
+# bytes: 2097152
DROP TABLE t1;
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
diff --git a/mysql-test/suite/innodb/r/cursor-restore-unique-null.result b/mysql-test/suite/innodb/r/cursor-restore-unique-null.result
new file mode 100644
index 00000000..29edc47a
--- /dev/null
+++ b/mysql-test/suite/innodb/r/cursor-restore-unique-null.result
@@ -0,0 +1,24 @@
+CREATE TABLE t(a INT PRIMARY KEY, b INT, c INT, UNIQUE KEY `b_c` (`b`,`c`))
+ENGINE=InnoDB, STATS_PERSISTENT=0;
+INSERT INTO t SET a = 1, c = 2;
+connect con1,localhost,root;
+BEGIN;
+INSERT INTO t SET a=2, c=2;
+connection default;
+BEGIN;
+SET DEBUG_SYNC="lock_wait_start SIGNAL select_locked";
+SELECT * FROM t FORCE INDEX(b) FOR UPDATE;
+connection con1;
+SET DEBUG_SYNC="now WAIT_FOR select_locked";
+ROLLBACK;
+connection default;
+# If the bug is not fixed, and the both unique index key fields are
+# NULL, there will be two (1, NULL, 2) rows in the result,
+# because cursor will be restored to (NULL, 2, 1) position for
+# secondary key instead of "supremum".
+a b c
+1 NULL 2
+COMMIT;
+SET DEBUG_SYNC="RESET";
+disconnect con1;
+DROP TABLE t;
diff --git a/mysql-test/suite/innodb/r/foreign_key.result b/mysql-test/suite/innodb/r/foreign_key.result
index 808e2270..80a0afb8 100644
--- a/mysql-test/suite/innodb/r/foreign_key.result
+++ b/mysql-test/suite/innodb/r/foreign_key.result
@@ -1035,9 +1035,22 @@ BEGIN;
INSERT INTO child SET a=1;
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`child`, CONSTRAINT `child_ibfk_1` FOREIGN KEY (`a`) REFERENCES `parent` (`a`))
connection default;
+TRUNCATE TABLE parent;
+ERROR 42000: Cannot truncate a table referenced in a foreign key constraint (`test`.`child`, CONSTRAINT `child_ibfk_1` FOREIGN KEY (`a`) REFERENCES `test`.`parent` (`a`))
+DROP TABLE parent;
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails
+SET innodb_lock_wait_timeout=0;
+RENAME TABLE parent TO transparent;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+ALTER TABLE parent FORCE, ALGORITHM=COPY;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+ALTER TABLE parent FORCE, ALGORITHM=INPLACE;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
SET innodb_lock_wait_timeout=0, foreign_key_checks=0;
TRUNCATE TABLE parent;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+DROP TABLE parent;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
ALTER TABLE parent FORCE, ALGORITHM=COPY;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
ALTER TABLE parent FORCE, ALGORITHM=INPLACE;
@@ -1052,7 +1065,13 @@ TRUNCATE TABLE parent;
ALTER TABLE parent FORCE, ALGORITHM=COPY;
ALTER TABLE parent FORCE, ALGORITHM=INPLACE;
ALTER TABLE parent ADD COLUMN b INT, ALGORITHM=INSTANT;
-DROP TABLE child, parent;
+SET foreign_key_checks=ON;
+TRUNCATE TABLE parent;
+ERROR 42000: Cannot truncate a table referenced in a foreign key constraint (`test`.`child`, CONSTRAINT `child_ibfk_1` FOREIGN KEY (`a`) REFERENCES `test`.`parent` (`a`))
+ALTER TABLE parent FORCE, ALGORITHM=COPY;
+ALTER TABLE parent FORCE, ALGORITHM=INPLACE;
+RENAME TABLE parent TO transparent;
+DROP TABLE child, transparent;
#
# MDEV-26217 Failing assertion: list.count > 0 in ut_list_remove
# or Assertion `lock->trx == this' failed in dberr_t trx_t::drop_table
diff --git a/mysql-test/suite/innodb/r/full_crc32_import.result b/mysql-test/suite/innodb/r/full_crc32_import.result
index 548e69c1..416f607c 100644
--- a/mysql-test/suite/innodb/r/full_crc32_import.result
+++ b/mysql-test/suite/innodb/r/full_crc32_import.result
@@ -50,7 +50,15 @@ t1 CREATE TABLE `t1` (
`b` blob DEFAULT NULL,
`c` blob DEFAULT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ROW_FORMAT=DYNAMIC
+) ENGINE=InnoDB AUTO_INCREMENT=46 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ROW_FORMAT=DYNAMIC
+# Auto increment value must be more than maximum column value
+SELECT MAX(a) FROM t1;
+MAX(a)
+45
+SELECT auto_increment FROM information_schema.tables
+WHERE table_name like 't1';
+auto_increment
+46
UPDATE t1 set b = repeat("de", 100) where b = repeat("cd", 200);
explain SELECT a FROM t1 where b = repeat("de", 100);
id select_type table type possible_keys key key_len ref rows Extra
@@ -132,7 +140,15 @@ t1 CREATE TABLE `t1` (
`c2` point NOT NULL,
`c3` linestring NOT NULL,
PRIMARY KEY (`c1`)
-) ENGINE=InnoDB AUTO_INCREMENT=16372 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ROW_FORMAT=DYNAMIC
+) ENGINE=InnoDB AUTO_INCREMENT=14325 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ROW_FORMAT=DYNAMIC
+# Auto increment value must be more than maximum column value
+SELECT MAX(c1) FROM t1;
+MAX(c1)
+14324
+SELECT auto_increment FROM information_schema.tables
+WHERE table_name like 't1';
+auto_increment
+14325
UPDATE t1 SET C2 = ST_GeomFromText('POINT(0 0)');
SELECT COUNT(*) FROM t1;
COUNT(*)
diff --git a/mysql-test/suite/innodb/r/import_bugs.result b/mysql-test/suite/innodb/r/import_bugs.result
index 98f3e767..26845e55 100644
--- a/mysql-test/suite/innodb/r/import_bugs.result
+++ b/mysql-test/suite/innodb/r/import_bugs.result
@@ -15,6 +15,58 @@ CREATE TABLE imp_t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
DROP TABLE imp_t1, t1;
SET GLOBAL innodb_checksum_algorithm=@save_innodb_checksum_algorithm;
#
+# MDEV-33400 Adaptive hash index corruption after DISCARD TABLESPACE
+#
+SET @save_adaptive=@@GLOBAL.innodb_adaptive_hash_index;
+SET GLOBAL innodb_adaptive_hash_index=ON;
+CREATE TABLE t (a INT PRIMARY KEY) ENGINE=INNODB;
+INSERT INTO t SELECT * FROM seq_1_to_131;
+ALTER TABLE t ADD hid INT DEFAULT 2;
+INSERT INTO t VALUES (251,1);
+ALTER TABLE t DISCARD TABLESPACE;
+CHECK TABLE mysql.innodb_table_stats;
+Table Op Msg_type Msg_text
+mysql.innodb_table_stats check status OK
+DROP TABLE t;
+SET GLOBAL innodb_adaptive_hash_index=@save_adaptive;
+# End of 10.4 tests
+#
+# MDEV-18288: Transportable Tablespaces leave AUTO_INCREMENT in mismatched
+# state, causing INSERT errors in newly imported tables when .cfg is not used.
+#
+CREATE TABLE t1(
+id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+PRIMARY KEY (id)
+) ENGINE=INNODB;
+CREATE TABLE t2 LIKE t1;
+ALTER TABLE t2 DISCARD TABLESPACE;
+INSERT INTO t1() VALUES();
+INSERT INTO t1() VALUES();
+FLUSH TABLES test.t1 FOR EXPORT;
+# Copy data file
+# Skip CFG file copy
+UNLOCK TABLES;
+DROP TABLE t1;
+ALTER TABLE t2 IMPORT TABLESPACE;
+Warnings:
+Warning 1810 IO Read error: (2, No such file or directory) Error opening './test/t2.cfg', will attempt to import without schema verification
+SELECT * FROM t2 ORDER BY id;
+id
+1
+2
+INSERT INTO t2() VALUES();
+INSERT INTO t2() VALUES();
+INSERT INTO t2() VALUES();
+SELECT * FROM t2 ORDER BY id;
+id
+1
+2
+3
+4
+5
+DROP TABLE t2;
+# End of 10.5 tests
+#
# MDEV-27006 Assertion `!lock_trx_has_sys_table_locks(trx)'
# failed in dberr_t row_discard_tablespace_for_mysql
# (dict_table_t*, trx_t*)
diff --git a/mysql-test/suite/innodb/r/import_hidden_fts.result b/mysql-test/suite/innodb/r/import_hidden_fts.result
new file mode 100644
index 00000000..69120898
--- /dev/null
+++ b/mysql-test/suite/innodb/r/import_hidden_fts.result
@@ -0,0 +1,45 @@
+call mtr.add_suppression("InnoDB: Added system generated FTS_DOC_ID and FTS_DOC_ID_INDEX while importing the tablespace");
+CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
+f2 CHAR(2) not null, fulltext f_idx(f2),
+f3 INT as (f1) VIRTUAL, INDEX(f3),
+f4 INT as (f1) STORED, INDEX(f4),
+f5 INT as (f1) VIRTUAL)ENGINE=InnoDB;
+INSERT INTO t1(f1, f2) VALUES(1, "on");
+INSERT INTO t1(f1, f2) SELECT seq, "si" FROM seq_2_to_256;
+ALTER TABLE t1 ADD COLUMN f6 INT NOT NULL;
+ALTER TABLE t1 DROP COLUMN f6;
+ALTER TABLE t1 DROP INDEX f_idx;
+connect con1,localhost,root,,;
+START TRANSACTION WITH CONSISTENT SNAPSHOT;
+connection default;
+DELETE FROM t1 WHERE f1 > 1;
+FLUSH TABLE t1 FOR EXPORT;
+Warnings:
+Warning 1235 This version of MariaDB doesn't yet support 'FLUSH TABLES on a table that had an FTS index, created on a hidden column, the auxiliary tables haven't been dropped as yet. FTS auxiliary tables will not be flushed.'
+Warning 1235 This version of MariaDB doesn't yet support 'FLUSH TABLES on a table that had an FTS index, created on a hidden column, the auxiliary tables haven't been dropped as yet. FTS auxiliary tables will not be flushed.'
+backup: t1
+UNLOCK TABLES;
+Warnings:
+Warning 1235 This version of MariaDB doesn't yet support 'FLUSH TABLES on a table that had an FTS index, created on a hidden column, the auxiliary tables haven't been dropped as yet. FTS auxiliary tables will not be flushed.'
+DROP TABLE t1;
+CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
+f2 CHAR(2) not null,
+f3 INT as (f1) VIRTUAL, INDEX(f3),
+f4 INT as (f1) STORED, INDEX(f4),
+f5 INT as (f1) VIRTUAL)ENGINE=InnoDB;
+ALTER TABLE t1 DISCARD TABLESPACE;
+restore: t1 .ibd and .cfg files
+ALTER TABLE t1 IMPORT TABLESPACE;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f1` int(11) NOT NULL,
+ `f2` char(2) NOT NULL,
+ `f3` int(11) GENERATED ALWAYS AS (`f1`) VIRTUAL,
+ `f4` int(11) GENERATED ALWAYS AS (`f1`) STORED,
+ `f5` int(11) GENERATED ALWAYS AS (`f1`) VIRTUAL,
+ PRIMARY KEY (`f1`),
+ KEY `f3` (`f3`),
+ KEY `f4` (`f4`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/r/import_hidden_fts_debug.result b/mysql-test/suite/innodb/r/import_hidden_fts_debug.result
new file mode 100644
index 00000000..2cf1746e
--- /dev/null
+++ b/mysql-test/suite/innodb/r/import_hidden_fts_debug.result
@@ -0,0 +1,76 @@
+CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
+f2 CHAR(2) NOT NULL, FULLTEXT f_idx(f2),
+f3 INT as (f1) VIRTUAL, INDEX(f3))ENGINE=InnoDB;
+INSERT INTO t1(f1, f2) VALUES(1, "on");
+ALTER TABLE t1 DROP INDEX f_idx;
+FLUSH TABLE t1 FOR EXPORT;
+Warnings:
+Warning 1235 This version of MariaDB doesn't yet support 'FLUSH TABLES on a table that had an FTS index, created on a hidden column, the auxiliary tables haven't been dropped as yet. FTS auxiliary tables will not be flushed.'
+Warning 1235 This version of MariaDB doesn't yet support 'FLUSH TABLES on a table that had an FTS index, created on a hidden column, the auxiliary tables haven't been dropped as yet. FTS auxiliary tables will not be flushed.'
+backup: t1
+UNLOCK TABLES;
+Warnings:
+Warning 1235 This version of MariaDB doesn't yet support 'FLUSH TABLES on a table that had an FTS index, created on a hidden column, the auxiliary tables haven't been dropped as yet. FTS auxiliary tables will not be flushed.'
+DROP TABLE t1;
+CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
+f2 CHAR(2) NOT NULL,
+f3 CHAR(2) NOT NULL,
+f4 INT AS (f1) VIRTUAL, INDEX(f4))ENGINE=InnoDB;
+ALTER TABLE t1 DISCARD TABLESPACE;
+restore: t1 .ibd and .cfg files
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Schema mismatch (Number of indexes don't match, table has 2 indexes but the tablespace meta-data file has 3 indexes)
+DROP TABLE t1;
+CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
+f2 CHAR(2) NOT NULL,
+f3 INT as (f1) VIRTUAL, INDEX(f3))ENGINE=InnoDB;
+ALTER TABLE t1 DISCARD TABLESPACE;
+restore: t1 .ibd and .cfg files
+SET DEBUG_DBUG="+d,ib_import_set_index_root_failure";
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Too many active concurrent transactions
+SET DEBUG_DBUG="-d,ib_import_set_index_root_failure";
+SET DEBUG_DBUG="+d,ib_import_vcol_update_fail";
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR 23000: Can't write; duplicate key in table 't1'
+SET DEBUG_DBUG="-d,ib_import_vcol_update_fail";
+restore: t1 .ibd and .cfg files
+SET DEBUG_DBUG="+d,ib_import_fts_error";
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR 23000: Can't write; duplicate key in table 't1'
+SET DEBUG_DBUG="-d,ib_import_fts_error";
+unlink: t1.ibd
+unlink: t1.cfg
+SELECT NAME FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS
+WHERE table_id IN (SELECT table_id FROM information_schema.innodb_sys_tables where name="test/t1");
+NAME
+f1
+f2
+f3
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f1` int(11) NOT NULL,
+ `f2` char(2) NOT NULL,
+ `f3` int(11) GENERATED ALWAYS AS (`f1`) VIRTUAL,
+ PRIMARY KEY (`f1`),
+ KEY `f3` (`f3`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+DROP TABLE t1;
+CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
+FTS_DOC_ID BIGINT SIGNED NOT NULL,
+f2 CHAR(2) NOT NULL,
+FULLTEXT f_idx(f2))ENGINE=InnoDB;
+INSERT INTO t1 VALUES(1, 1, "on");
+ALTER TABLE t1 DROP INDEX f_idx;
+FLUSH TABLE t1 FOR EXPORT;
+backup: t1
+UNLOCK TABLES;
+DROP TABLE t1;
+CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
+f2 CHAR(2) NOT NULL)ENGINE=InnoDB;
+ALTER TABLE t1 DISCARD TABLESPACE;
+restore: t1 .ibd and .cfg files
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Schema mismatch (Column f2 ordinal value mismatch, it's at 1 in the table and 2 in the tablespace meta-data file)
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/r/index_length.result b/mysql-test/suite/innodb/r/index_length.result
index cc92780a..e0d6a735 100644
--- a/mysql-test/suite/innodb/r/index_length.result
+++ b/mysql-test/suite/innodb/r/index_length.result
@@ -20,4 +20,12 @@ FLOOR(index_length/@@innodb_page_size)
2
disconnect stop_purge;
DROP TABLE t1;
+#
+# MDEV-22855 Assertion (!field->prefix_len ||
+# field->fixed_len == field->prefix_len)
+# failed in btr_node_ptr_max_size
+#
+CREATE TABLE t1(c CHAR(194) CHARACTER SET UTF32, KEY k1(c(193)))ENGINE=InnoDB;
+INSERT INTO t1 SET c='';
+DROP TABLE t1;
# End of 10.4 tests
diff --git a/mysql-test/suite/innodb/r/innodb-alter-debug.result b/mysql-test/suite/innodb/r/innodb-alter-debug.result
index c55b4a3d..fd33581f 100644
--- a/mysql-test/suite/innodb/r/innodb-alter-debug.result
+++ b/mysql-test/suite/innodb/r/innodb-alter-debug.result
@@ -108,11 +108,11 @@ DROP TABLE t;
# MDEV-26772 InnoDB DDL fails with DUPLICATE KEY error
#
create table t1(f1 int not null primary key,
-f2 int not null, index idx(f2))engine=innodb;
+f2 int not null, index idx(f2), index i(f2,f1))engine=innodb;
insert into t1 values(1, 1);
connect con1,localhost,root,,,;
SET DEBUG_SYNC='before_delete_table_stats SIGNAL blocked WAIT_FOR go';
-SET innodb_lock_wait_timeout=0;
+SET STATEMENT innodb_lock_wait_timeout=0 FOR
ALTER TABLE t1 FORCE, ALGORITHM=COPY;
connection default;
SET DEBUG_SYNC='now WAIT_FOR blocked';
@@ -124,6 +124,17 @@ connection con1;
connection default;
COMMIT;
SET DEBUG_SYNC=RESET;
+RENAME TABLE mysql.innodb_table_stats TO mysql.innodb_table_stats_hidden;
+connection con1;
+SET DEBUG_SYNC='innodb_commit_inplace_before_lock SIGNAL blocked WAIT_FOR go';
+ALTER TABLE t1 DROP INDEX i;
+connection default;
+SET DEBUG_SYNC='now WAIT_FOR blocked';
+RENAME TABLE mysql.innodb_table_stats_hidden TO mysql.innodb_table_stats;
+SET DEBUG_SYNC='now SIGNAL go';
+connection con1;
+connection default;
+SET DEBUG_SYNC=RESET;
connection con1;
ALTER TABLE t1 RENAME KEY idx TO idx1, ALGORITHM=COPY;
disconnect con1;
diff --git a/mysql-test/suite/innodb/r/innodb-lru-force-no-free-page.result b/mysql-test/suite/innodb/r/innodb-lru-force-no-free-page.result
deleted file mode 100644
index 09e53b59..00000000
--- a/mysql-test/suite/innodb/r/innodb-lru-force-no-free-page.result
+++ /dev/null
@@ -1,10 +0,0 @@
-call mtr.add_suppression("InnoDB: Difficult to find free blocks in the buffer pool");
-SET @saved_debug = @@SESSION.debug_dbug;
-SET SESSION debug_dbug="+d,ib_lru_force_no_free_page";
-CREATE TABLE t1 (j LONGBLOB) ENGINE = InnoDB;
-BEGIN;
-INSERT INTO t1 VALUES (repeat('abcdefghijklmnopqrstuvwxyz',200));
-COMMIT;
-SET debug_dbug = @saved_debug;
-DROP TABLE t1;
-FOUND 1 /InnoDB: Difficult to find free blocks / in mysqld.1.err
diff --git a/mysql-test/suite/innodb/r/innodb-wl5522,crc32.rdiff b/mysql-test/suite/innodb/r/innodb-wl5522,crc32.rdiff
deleted file mode 100644
index bb902e18..00000000
--- a/mysql-test/suite/innodb/r/innodb-wl5522,crc32.rdiff
+++ /dev/null
@@ -1,5 +0,0 @@
-120,121c120
-< Warnings:
-< Warning 1810 IO Read error: (2, No such file or directory) Error opening './test/t2.cfg', will attempt to import without schema verification
----
-> ERROR HY000: Schema mismatch (Expected FSP_SPACE_FLAGS=0x*, .ibd file contains 0x*.)
diff --git a/mysql-test/suite/innodb/r/innodb-wl5522,strict_crc32.rdiff b/mysql-test/suite/innodb/r/innodb-wl5522,strict_crc32.rdiff
index bb902e18..283bbe96 100644
--- a/mysql-test/suite/innodb/r/innodb-wl5522,strict_crc32.rdiff
+++ b/mysql-test/suite/innodb/r/innodb-wl5522,strict_crc32.rdiff
@@ -1,5 +1,12 @@
-120,121c120
-< Warnings:
-< Warning 1810 IO Read error: (2, No such file or directory) Error opening './test/t2.cfg', will attempt to import without schema verification
----
-> ERROR HY000: Schema mismatch (Expected FSP_SPACE_FLAGS=0x*, .ibd file contains 0x*.)
+--- innodb-wl5522.result
++++ innodb-wl5522,strict_crc32.result~
+@@ -131,8 +131,7 @@
+ ALTER TABLE t2 IMPORT TABLESPACE;
+ ERROR HY000: Schema mismatch (Table flags don't match, server table has 0x21 and the meta-data file has 0x1; .cfg file uses ROW_FORMAT=COMPACT)
+ ALTER TABLE t2 IMPORT TABLESPACE;
+-Warnings:
+-Warning 1810 IO Read error: (2, No such file or directory) Error opening './test/t2.cfg', will attempt to import without schema verification
++ERROR HY000: Schema mismatch (Expected FSP_SPACE_FLAGS=0x*, .ibd file contains 0x*.)
+ DROP TABLE t2;
+ SET GLOBAL innodb_file_per_table = 1;
+ SELECT @@innodb_file_per_table;
diff --git a/mysql-test/suite/innodb/r/innodb_bug30113362.result b/mysql-test/suite/innodb/r/innodb_bug30113362.result
index cb0f5091..5d30c5c0 100644
--- a/mysql-test/suite/innodb/r/innodb_bug30113362.result
+++ b/mysql-test/suite/innodb/r/innodb_bug30113362.result
@@ -37,7 +37,7 @@ test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
SELECT CLUST_INDEX_SIZE FROM information_schema.INNODB_SYS_TABLESTATS WHERE NAME = 'test/t1';
CLUST_INDEX_SIZE
-1856
+1792
connection con2;
DELETE FROM t1 WHERE a00 = 'cnm';
COMMIT;
@@ -80,7 +80,7 @@ test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
SELECT CLUST_INDEX_SIZE FROM information_schema.INNODB_SYS_TABLESTATS WHERE NAME = 'test/t1';
CLUST_INDEX_SIZE
-1856
+1792
DELETE FROM t1 WHERE a00 = 'dpn';
COMMIT;
INSERT INTO t1 SET a00 = 'dpn';
@@ -117,6 +117,6 @@ test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
SELECT CLUST_INDEX_SIZE FROM information_schema.INNODB_SYS_TABLESTATS WHERE NAME = 'test/t1';
CLUST_INDEX_SIZE
-1856
+1792
SET DEBUG_SYNC = 'RESET';
DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/r/innodb_mysql.result b/mysql-test/suite/innodb/r/innodb_mysql.result
index d142c0e4..9d8ead7a 100644
--- a/mysql-test/suite/innodb/r/innodb_mysql.result
+++ b/mysql-test/suite/innodb/r/innodb_mysql.result
@@ -431,10 +431,6 @@ a
connection con1;
begin work;
insert into t1 values (5);
-select * from t1;
-a
-1
-5
insert into t1 values (2);
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
select * from t1;
@@ -509,10 +505,6 @@ a
connection con1;
begin work;
insert into t1 values (5);
-select * from t1;
-a
-1
-5
insert into t1 values (2);
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
select * from t1;
@@ -1217,10 +1209,6 @@ a
connection con1;
begin work;
insert into t1 values (5);
-select * from t1;
-a
-1
-5
insert into t1 values (2);
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
select * from t1;
diff --git a/mysql-test/suite/innodb/r/innodb_skip_innodb_is_tables.result b/mysql-test/suite/innodb/r/innodb_skip_innodb_is_tables.result
index 832a4800..94e40ee5 100644
--- a/mysql-test/suite/innodb/r/innodb_skip_innodb_is_tables.result
+++ b/mysql-test/suite/innodb/r/innodb_skip_innodb_is_tables.result
@@ -86,7 +86,6 @@ buffer_flush_n_to_flush_by_age buffer 0 NULL NULL NULL 0 NULL NULL NULL NULL NUL
buffer_flush_adaptive_avg_time buffer 0 NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL NULL 0 counter Avg time (ms) spent for adaptive flushing recently.
buffer_flush_adaptive_avg_pass buffer 0 NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL NULL 0 counter Number of adaptive flushes passed during the recent Avg period.
buffer_LRU_get_free_loops buffer 0 NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL NULL 0 counter Total loops in LRU get free.
-buffer_LRU_get_free_waits buffer 0 NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL NULL 0 counter Total sleep waits in LRU get free.
buffer_flush_avg_page_rate buffer 0 NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL NULL 0 counter Average number of pages at which flushing is happening
buffer_flush_lsn_avg_rate buffer 0 NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL NULL 0 counter Average redo generation rate
buffer_flush_pct_for_dirty buffer 0 NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL NULL 0 counter Percent of IO capacity used to avoid max dirty page limit
@@ -106,7 +105,6 @@ buffer_LRU_batch_num_scan buffer 0 NULL NULL NULL 0 NULL NULL NULL NULL NULL NUL
buffer_LRU_batch_scanned_per_call buffer 0 NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL NULL 0 set_member Pages scanned per LRU batch call
buffer_LRU_batch_flush_total_pages buffer 0 NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL NULL 0 status_counter Total pages flushed as part of LRU batches
buffer_LRU_batch_evict_total_pages buffer 0 NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL NULL 0 status_counter Total pages evicted as part of LRU batches
-buffer_LRU_single_flush_failure_count Buffer 0 NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL NULL 0 counter Number of times attempt to flush a single page from LRU failed
buffer_LRU_get_free_search Buffer 0 NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL NULL 0 counter Number of searches performed for a clean page
buffer_LRU_search_scanned buffer 0 NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL NULL 0 set_owner Total pages scanned as part of LRU search
buffer_LRU_search_num_scan buffer 0 NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL NULL 0 set_member Number of times LRU search is performed
diff --git a/mysql-test/suite/innodb/r/innodb_stats_fetch.result b/mysql-test/suite/innodb/r/innodb_stats_fetch.result
index df6bc4b0..cb205b18 100644
--- a/mysql-test/suite/innodb/r/innodb_stats_fetch.result
+++ b/mysql-test/suite/innodb/r/innodb_stats_fetch.result
@@ -174,3 +174,10 @@ SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_VIRTUAL LIMIT ROWS EXAMINED 5;
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN LIMIT ROWS EXAMINED 5;
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS LIMIT ROWS EXAMINED 5;
DROP TABLE t1;
+#
+# MDEV-33462 Disallow LOCK=NONE operation on statistics table
+#
+ALTER TABLE mysql.innodb_table_stats FORCE, LOCK=NONE;
+ERROR 0A000: LOCK=NONE is not supported. Reason: innodb_table_stats. Try LOCK=SHARED
+ALTER TABLE mysql.innodb_index_stats FORCE, LOCK=NONE;
+ERROR 0A000: LOCK=NONE is not supported. Reason: innodb_index_stats. Try LOCK=SHARED
diff --git a/mysql-test/suite/innodb/r/innodb_timeout_rollback.result b/mysql-test/suite/innodb/r/innodb_timeout_rollback.result
index 30db5a21..5f99ad75 100644
--- a/mysql-test/suite/innodb/r/innodb_timeout_rollback.result
+++ b/mysql-test/suite/innodb/r/innodb_timeout_rollback.result
@@ -17,10 +17,6 @@ a
connection con1;
begin work;
insert into t1 values (5);
-select * from t1;
-a
-1
-5
insert into t1 values (2);
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
select * from t1;
@@ -41,4 +37,4 @@ a
drop table t1;
disconnect con1;
disconnect con2;
-End of 5.0 tests
+# End of 5.0 tests
diff --git a/mysql-test/suite/innodb/r/innodb_ut_format_name.result b/mysql-test/suite/innodb/r/innodb_ut_format_name.result
deleted file mode 100644
index 41a5b0f7..00000000
--- a/mysql-test/suite/innodb/r/innodb_ut_format_name.result
+++ /dev/null
@@ -1,5 +0,0 @@
-CREATE TABLE t (c INT) ENGINE=INNODB;
-SET @save_dbug = @@debug_dbug;
-SET debug_dbug = '+d,test_ut_format_name';
-DROP TABLE t;
-SET debug_dbug = @save_dbug;
diff --git a/mysql-test/suite/innodb/r/insert_into_empty,4k.rdiff b/mysql-test/suite/innodb/r/insert_into_empty,4k.rdiff
index baa017ec..ad3d03a7 100644
--- a/mysql-test/suite/innodb/r/insert_into_empty,4k.rdiff
+++ b/mysql-test/suite/innodb/r/insert_into_empty,4k.rdiff
@@ -1,2 +1,10 @@
-423a424
-> ERROR 42000: Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+--- a/mysql-test/suite/innodb/r/insert_into_empty.result
++++ b/mysql-test/suite/innodb/r/insert_into_empty.result
+@@ -430,6 +430,7 @@
+ INSERT IGNORE INTO t1 VALUES
+ (1, REPEAT('x',4805), REPEAT('t',2211), REPEAT('u',974), REPEAT('e',871), REPEAT('z',224), REPEAT('j',978), REPEAT('n',190), REPEAT('t',888), REPEAT('x',32768), REPEAT('e',968), REPEAT('b',913), REPEAT('x',12107)),
+ (2, REPEAT('x',4805), REPEAT('t',2211), REPEAT('u',974), REPEAT('e',871), REPEAT('z',224), REPEAT('j',978), REPEAT('n',190), REPEAT('t',888), REPEAT('x',32768), REPEAT('e',968), REPEAT('b',913), REPEAT('x',12107));
++ERROR 42000: Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CHECK TABLE t1;
+ Table Op Msg_type Msg_text
+ test.t1 check status OK
diff --git a/mysql-test/suite/innodb/r/insert_into_empty.result b/mysql-test/suite/innodb/r/insert_into_empty.result
index 0cdee172..78d93494 100644
--- a/mysql-test/suite/innodb/r/insert_into_empty.result
+++ b/mysql-test/suite/innodb/r/insert_into_empty.result
@@ -251,6 +251,15 @@ c1
1984
3331
DROP TABLE t1;
+#
+# MDEV-33979 Disallow bulk insert operation during
+# partition update statement
+#
+CREATE TABLE t1(a INT KEY)ENGINE=InnoDB
+PARTITION BY KEY(a) PARTITIONS 16;
+INSERT INTO t1 VALUES(1);
+UPDATE t1 SET a = 2 WHERE a = 1;
+DROP TABLE t1;
# End of 10.6 tests
#
# MDEV-26947 UNIQUE column checks fail in InnoDB resulting
@@ -467,3 +476,47 @@ DROP TABLE t1;
CREATE TABLE t (a CHAR CHARACTER SET utf8) ENGINE=InnoDB ROW_FORMAT=REDUNDANT;
INSERT t SELECT left(seq,1) FROM seq_1_to_43691;
DROP TABLE t;
+#
+# MDEV-32453 Bulk insert fails to apply when trigger
+# does insert operation
+#
+CREATE TABLE t(c INT)ENGINE=InnoDB;
+CREATE TRIGGER t2_ai AFTER INSERT ON t FOR EACH ROW SET @a:=(SELECT * FROM t);
+BEGIN;
+INSERT INTO t VALUES (1),(1);
+ERROR 21000: Subquery returns more than 1 row
+COMMIT;
+DROP TABLE t;
+#
+# MDEV-33868 Assertion `trx->bulk_insert' failed in
+# innodb_prepare_commit_versioned
+#
+CREATE TABLE t (id INT) ENGINE=InnoDB;
+select 1 into outfile "VARDIR/tmp/t.outfile";
+BEGIN;
+LOAD DATA INFILE 'VARDIR/tmp/t.outfile' INTO TABLE t;
+COMMIT;
+DROP TABLE t;
+#
+# MDEV-33934 Assertion `!check_foreigns' failed in
+# trx_t::bulk_insert_apply_for_table(dict_table_t*)
+#
+CREATE TABLE t1(f1 INT,f2 INT,KEY(f1))engine=innodb;
+BEGIN;
+INSERT INTO t1 VALUES();
+SET STATEMENT FOREIGN_KEY_CHECKS=1 FOR SELECT * FROM t1;
+f1 f2
+NULL NULL
+COMMIT;
+DROP TABLE t1;
+#
+# MDEV-33970 Assertion `!m.first->second.is_bulk_insert()'
+# failed in trx_undo_report_row_operation()
+#
+CREATE TABLE t1(c1 INT,c2 CHAR) ENGINE=INNODB PARTITION BY KEY(c1) PARTITIONS 2;
+begin;
+INSERT INTO t1 VALUES(2,0);
+DELETE FROM t1;
+commit;
+DROP TABLE t1;
+# End of 10.11 tests
diff --git a/mysql-test/suite/innodb/r/instant_alter_crash.result b/mysql-test/suite/innodb/r/instant_alter_crash.result
index e423afe1..565f7e4b 100644
--- a/mysql-test/suite/innodb/r/instant_alter_crash.result
+++ b/mysql-test/suite/innodb/r/instant_alter_crash.result
@@ -202,27 +202,3 @@ Table Op Msg_type Msg_text
test.t2 check status OK
DROP TABLE t1,t2;
db.opt
-#
-# MDEV-26198 Assertion `0' failed in row_log_table_apply_op during
-# ADD PRIMARY KEY or OPTIMIZE TABLE
-#
-CREATE TABLE t1(f1 year default null, f2 year default null,
-f3 text, f4 year default null, f5 year default null,
-f6 year default null, f7 year default null,
-f8 year default null)ENGINE=InnoDB ROW_FORMAT=REDUNDANT;
-INSERT INTO t1 VALUES(1, 1, 1, 1, 1, 1, 1, 1);
-ALTER TABLE t1 ADD COLUMN f9 year default null, ALGORITHM=INPLACE;
-set DEBUG_SYNC="row_log_table_apply1_before SIGNAL con1_insert WAIT_FOR con1_finish";
-ALTER TABLE t1 ROW_FORMAT=REDUNDANT, ADD COLUMN f10 YEAR DEFAULT NULL, ALGORITHM=INPLACE;
-connect con1,localhost,root,,,;
-SET DEBUG_SYNC="now WAIT_FOR con1_insert";
-INSERT IGNORE INTO t1 (f3) VALUES ( 'b' );
-INSERT IGNORE INTO t1 (f3) VALUES ( 'l' );
-SET DEBUG_SYNC="now SIGNAL con1_finish";
-connection default;
-disconnect con1;
-SET DEBUG_SYNC=RESET;
-CHECK TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/r/instant_alter_debug,redundant.rdiff b/mysql-test/suite/innodb/r/instant_alter_debug,redundant.rdiff
index f442e406..cf72c37b 100644
--- a/mysql-test/suite/innodb/r/instant_alter_debug,redundant.rdiff
+++ b/mysql-test/suite/innodb/r/instant_alter_debug,redundant.rdiff
@@ -2,7 +2,7 @@
FROM information_schema.global_status
WHERE variable_name = 'innodb_instant_alter_column';
instants
--35
-+36
+-37
++38
SET GLOBAL innodb_stats_persistent = @save_stats_persistent;
# End of 10.6 tests
diff --git a/mysql-test/suite/innodb/r/instant_alter_debug.result b/mysql-test/suite/innodb/r/instant_alter_debug.result
index d6d49047..733a85aa 100644
--- a/mysql-test/suite/innodb/r/instant_alter_debug.result
+++ b/mysql-test/suite/innodb/r/instant_alter_debug.result
@@ -477,10 +477,59 @@ SET DEBUG_SYNC="now WAIT_FOR try_insert";
INSERT INTO t1 VALUES(1, 2);
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
SET DEBUG_SYNC="now SIGNAL alter_progress";
-disconnect con1;
connection default;
DROP TABLE t1;
+#
+# MDEV-26198 Assertion `0' failed in row_log_table_apply_op during
+# ADD PRIMARY KEY or OPTIMIZE TABLE
+#
+CREATE TABLE t1(f1 year default null, f2 year default null,
+f3 text, f4 year default null, f5 year default null,
+f6 year default null, f7 year default null,
+f8 year default null)ENGINE=InnoDB;
+INSERT INTO t1 VALUES(1, 1, 1, 1, 1, 1, 1, 1);
+ALTER TABLE t1 ADD COLUMN f9 year default null, ALGORITHM=INPLACE;
+set DEBUG_SYNC="row_log_table_apply1_before SIGNAL con1_insert WAIT_FOR con1_finish";
+ALTER TABLE t1 ADD COLUMN f10 YEAR DEFAULT NULL, FORCE, ALGORITHM=INPLACE;
+connection con1;
+SET DEBUG_SYNC="now WAIT_FOR con1_insert";
+INSERT IGNORE INTO t1 (f3) VALUES ( 'b' );
+INSERT IGNORE INTO t1 (f3) VALUES ( 'l' );
+SET DEBUG_SYNC="now SIGNAL con1_finish";
+connection default;
+CHECK TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+DROP TABLE t1;
+#
+# MDEV-19044 Alter table corrupts while applying the
+# modification log
+#
+CREATE TABLE t1 (
+f1 INT,
+f2 INT,
+f3 char(19) CHARACTER SET utf8mb3,
+f4 VARCHAR(500),
+f5 TEXT)ENGINE=InnoDB;
+INSERT INTO t1 VALUES(3, 1, REPEAT('a', 2), REPEAT("b", 20),'a');
+ALTER TABLE t1 ADD COLUMN f6 INT NOT NULL, ALGORITHM=INSTANT;
+INSERT INTO t1 VALUES(1, 2, REPEAT('InnoDB', 2),
+REPEAT("MariaDB", 20), REPEAT('a', 8000), 12);
+INSERT INTO t1 VALUES(1, 2, REPEAT('MYSQL', 2),
+REPEAT("MariaDB", 20), REPEAT('a', 8000), 12);
+SET DEBUG_SYNC='innodb_inplace_alter_table_enter SIGNAL con1_begin WAIT_FOR con1_update';
+ALTER TABLE t1 MODIFY COLUMN f2 INT NOT NULL, FORCE, ALGORITHM=INPLACE;
+connection con1;
+SET DEBUG_SYNC='now WAIT_FOR con1_begin';
+UPDATE t1 SET f2=204 order by f1 limit 2;
+SET DEBUG_SYNC='now SIGNAL con1_update';
+connection default;
+disconnect con1;
SET DEBUG_SYNC=reset;
+CHECK TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+DROP TABLE t1;
# End of 10.4 tests
#
# MDEV-22867 Assertion instant.n_core_fields == n_core_fields
@@ -525,6 +574,6 @@ SELECT variable_value-@old_instant instants
FROM information_schema.global_status
WHERE variable_name = 'innodb_instant_alter_column';
instants
-35
+37
SET GLOBAL innodb_stats_persistent = @save_stats_persistent;
# End of 10.6 tests
diff --git a/mysql-test/suite/innodb/r/instant_alter_extend.result b/mysql-test/suite/innodb/r/instant_alter_extend.result
index 33a5f57c..c22043ec 100644
--- a/mysql-test/suite/innodb/r/instant_alter_extend.result
+++ b/mysql-test/suite/innodb/r/instant_alter_extend.result
Binary files differ
diff --git a/mysql-test/suite/innodb/r/instant_alter_import.result b/mysql-test/suite/innodb/r/instant_alter_import.result
index 3e7ee35f..6fe48fb6 100644
--- a/mysql-test/suite/innodb/r/instant_alter_import.result
+++ b/mysql-test/suite/innodb/r/instant_alter_import.result
@@ -64,6 +64,7 @@ alter table t1 discard tablespace;
flush tables t2 for export;
unlock tables;
alter table t1 import tablespace;
+# restart
select * from t1;
z
42
diff --git a/mysql-test/suite/innodb/r/lock_insert_into_empty.result b/mysql-test/suite/innodb/r/lock_insert_into_empty.result
index c1dea2fc..97369b58 100644
--- a/mysql-test/suite/innodb/r/lock_insert_into_empty.result
+++ b/mysql-test/suite/innodb/r/lock_insert_into_empty.result
@@ -47,6 +47,9 @@ CREATE TABLE t1 (k INT PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 SET k=1;
START TRANSACTION;
INSERT INTO t1 SET k=2;
+SELECT count(*) > 0 FROM mysql.innodb_index_stats lock in share mode;
+count(*) > 0
+1
connect con1,localhost,root,,test;
SET innodb_lock_wait_timeout=0;
CREATE TABLE t2 (pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB
@@ -54,4 +57,6 @@ AS SELECT k FROM t1;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
disconnect con1;
connection default;
+SET innodb_lock_wait_timeout=default;
DROP TABLE t1;
+DROP TABLE IF EXISTS t2;
diff --git a/mysql-test/suite/innodb/r/lock_isolation.result b/mysql-test/suite/innodb/r/lock_isolation.result
new file mode 100644
index 00000000..31843266
--- /dev/null
+++ b/mysql-test/suite/innodb/r/lock_isolation.result
@@ -0,0 +1,136 @@
+#
+# MDEV-26642 Weird SELECT view when a record is
+# modified to the same value by two transactions
+# MDEV-32898 Phantom rows caused by updates of PRIMARY KEY
+#
+CREATE TABLE t(a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
+INSERT INTO t VALUES (1,1),(2,2);
+BEGIN;
+SELECT * FROM t LOCK IN SHARE MODE;
+a b
+1 1
+2 2
+connect con_weird,localhost,root;
+BEGIN;
+SELECT * FROM t;
+a b
+1 1
+2 2
+connect consistent,localhost,root;
+SET innodb_snapshot_isolation=ON;
+BEGIN;
+SELECT * FROM t;
+a b
+1 1
+2 2
+connection default;
+UPDATE t SET a=3 WHERE b=2;
+COMMIT;
+connection consistent;
+UPDATE t SET b=3;
+ERROR HY000: Record has changed since last read in table 't'
+SELECT * FROM t;
+a b
+1 1
+3 2
+COMMIT;
+connection con_weird;
+UPDATE t SET b=3;
+SELECT * FROM t;
+a b
+1 3
+2 2
+3 3
+COMMIT;
+connection default;
+SELECT * FROM t;
+a b
+1 3
+3 3
+DROP TABLE t;
+#
+# MDEV-26643 Inconsistent behaviors of UPDATE under
+# READ UNCOMMITTED and READ COMMITTED isolation level
+#
+CREATE TABLE t(a INT, b INT) ENGINE=InnoDB;
+INSERT INTO t VALUES(NULL, 1), (2, 2);
+SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
+BEGIN;
+UPDATE t SET a = 10;
+connection consistent;
+SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
+UPDATE t SET b = 20 WHERE a;
+connection default;
+COMMIT;
+connection consistent;
+SELECT * FROM t;
+a b
+10 20
+10 20
+connection default;
+TRUNCATE TABLE t;
+INSERT INTO t VALUES(NULL, 1), (2, 2);
+BEGIN;
+UPDATE t SET a = 10;
+connection consistent;
+SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
+UPDATE t SET b = 20 WHERE a;
+connection default;
+COMMIT;
+connection consistent;
+SELECT * FROM t;
+a b
+10 20
+10 20
+connection default;
+TRUNCATE TABLE t;
+INSERT INTO t VALUES(NULL, 1), (2, 2);
+BEGIN;
+UPDATE t SET a = 10;
+connection con_weird;
+SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
+UPDATE t SET b = 20 WHERE a;
+connection default;
+SELECT * FROM t;
+a b
+10 1
+10 2
+COMMIT;
+connection con_weird;
+COMMIT;
+connection default;
+SELECT * FROM t;
+a b
+10 1
+10 20
+DROP TABLE t;
+#
+# MDEV-33802 Weird read view after ROLLBACK of other transactions
+#
+CREATE TABLE t(a INT PRIMARY KEY, b INT UNIQUE) ENGINE=InnoDB;
+INSERT INTO t SET a=1;
+BEGIN;
+INSERT INTO t SET a=2;
+connection consistent;
+START TRANSACTION WITH CONSISTENT SNAPSHOT;
+SELECT * FROM t FORCE INDEX (b) FOR UPDATE;
+ERROR HY000: Record has changed since last read in table 't'
+connection con_weird;
+START TRANSACTION WITH CONSISTENT SNAPSHOT;
+SELECT * FROM t FORCE INDEX (b) FOR UPDATE;
+connection default;
+ROLLBACK;
+connection con_weird;
+a b
+1 NULL
+SELECT * FROM t FORCE INDEX (b) FOR UPDATE;
+a b
+1 NULL
+disconnect con_weird;
+connection consistent;
+SELECT * FROM t FORCE INDEX (b) FOR UPDATE;
+a b
+1 NULL
+disconnect consistent;
+connection default;
+DROP TABLE t;
diff --git a/mysql-test/suite/innodb/r/log_upgrade_101_flags.result b/mysql-test/suite/innodb/r/log_upgrade_101_flags.result
new file mode 100644
index 00000000..6ae7c848
--- /dev/null
+++ b/mysql-test/suite/innodb/r/log_upgrade_101_flags.result
@@ -0,0 +1,12 @@
+call mtr.add_suppression("InnoDB: The change buffer is corrupted");
+call mtr.add_suppression("InnoDB: Tablespace size stored in header is 768 pages, but the sum of data file sizes is 384 pages");
+call mtr.add_suppression("InnoDB: adjusting FSP_SPACE_FLAGS of file");
+# restart: --innodb-data-home-dir=MYSQLTEST_VARDIR/tmp/log_upgrade --innodb-log-group-home-dir=MYSQLTEST_VARDIR/tmp/log_upgrade --innodb-force-recovery=5 --innodb-log-file-size=4m --innodb_page_size=32k --innodb_buffer_pool_size=10M
+SELECT COUNT(*) FROM INFORMATION_SCHEMA.ENGINES
+WHERE engine = 'innodb'
+AND support IN ('YES', 'DEFAULT', 'ENABLED');
+COUNT(*)
+1
+FOUND 1 /InnoDB: Upgrading redo log:/ in mysqld.1.err
+# restart
+# End of 10.5 tests
diff --git a/mysql-test/suite/innodb/r/max_record_size,16k,compact,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,16k,compact.rdiff
index 118145be..118145be 100644
--- a/mysql-test/suite/innodb/r/max_record_size,16k,compact,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,16k,compact.rdiff
diff --git a/mysql-test/suite/innodb/r/max_record_size,16k,dynamic,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,16k,dynamic.rdiff
index 33067866..33067866 100644
--- a/mysql-test/suite/innodb/r/max_record_size,16k,dynamic,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,16k,dynamic.rdiff
diff --git a/mysql-test/suite/innodb/r/max_record_size,16k,innodb,redundant.rdiff b/mysql-test/suite/innodb/r/max_record_size,16k,redundant.rdiff
index e50e4d2b..e50e4d2b 100644
--- a/mysql-test/suite/innodb/r/max_record_size,16k,innodb,redundant.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,16k,redundant.rdiff
diff --git a/mysql-test/suite/innodb/r/max_record_size,32k,compact,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,32k,compact.rdiff
index 1bc03a5d..1bc03a5d 100644
--- a/mysql-test/suite/innodb/r/max_record_size,32k,compact,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,32k,compact.rdiff
diff --git a/mysql-test/suite/innodb/r/max_record_size,32k,dynamic,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,32k,dynamic.rdiff
index 71c4c2e4..71c4c2e4 100644
--- a/mysql-test/suite/innodb/r/max_record_size,32k,dynamic,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,32k,dynamic.rdiff
diff --git a/mysql-test/suite/innodb/r/max_record_size,32k,innodb,redundant.rdiff b/mysql-test/suite/innodb/r/max_record_size,32k,redundant.rdiff
index e42b3de8..e42b3de8 100644
--- a/mysql-test/suite/innodb/r/max_record_size,32k,innodb,redundant.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,32k,redundant.rdiff
diff --git a/mysql-test/suite/innodb/r/max_record_size,4k,compact,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,4k,compact.rdiff
index 6f08dab3..6f08dab3 100644
--- a/mysql-test/suite/innodb/r/max_record_size,4k,compact,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,4k,compact.rdiff
diff --git a/mysql-test/suite/innodb/r/max_record_size,4k,dynamic,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,4k,dynamic.rdiff
index bd37d435..bd37d435 100644
--- a/mysql-test/suite/innodb/r/max_record_size,4k,dynamic,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,4k,dynamic.rdiff
diff --git a/mysql-test/suite/innodb/r/max_record_size,4k,innodb,redundant.rdiff b/mysql-test/suite/innodb/r/max_record_size,4k,redundant.rdiff
index 93c39ff6..93c39ff6 100644
--- a/mysql-test/suite/innodb/r/max_record_size,4k,innodb,redundant.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,4k,redundant.rdiff
diff --git a/mysql-test/suite/innodb/r/max_record_size,64k,compact,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,64k,compact.rdiff
index 5e6c6221..5e6c6221 100644
--- a/mysql-test/suite/innodb/r/max_record_size,64k,compact,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,64k,compact.rdiff
diff --git a/mysql-test/suite/innodb/r/max_record_size,64k,dynamic,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,64k,dynamic.rdiff
index 2cbf4cd9..2cbf4cd9 100644
--- a/mysql-test/suite/innodb/r/max_record_size,64k,dynamic,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,64k,dynamic.rdiff
diff --git a/mysql-test/suite/innodb/r/max_record_size,64k,innodb,redundant.rdiff b/mysql-test/suite/innodb/r/max_record_size,64k,redundant.rdiff
index c324969f..c324969f 100644
--- a/mysql-test/suite/innodb/r/max_record_size,64k,innodb,redundant.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,64k,redundant.rdiff
diff --git a/mysql-test/suite/innodb/r/max_record_size,8k,compact,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,8k,compact.rdiff
index 4db669a8..4db669a8 100644
--- a/mysql-test/suite/innodb/r/max_record_size,8k,compact,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,8k,compact.rdiff
diff --git a/mysql-test/suite/innodb/r/max_record_size,8k,dynamic,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,8k,dynamic.rdiff
index 5f79d77e..5f79d77e 100644
--- a/mysql-test/suite/innodb/r/max_record_size,8k,dynamic,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,8k,dynamic.rdiff
diff --git a/mysql-test/suite/innodb/r/monitor.result b/mysql-test/suite/innodb/r/monitor.result
index d99dd69e..1834032e 100644
--- a/mysql-test/suite/innodb/r/monitor.result
+++ b/mysql-test/suite/innodb/r/monitor.result
@@ -51,7 +51,6 @@ buffer_flush_n_to_flush_by_age disabled
buffer_flush_adaptive_avg_time disabled
buffer_flush_adaptive_avg_pass disabled
buffer_LRU_get_free_loops disabled
-buffer_LRU_get_free_waits disabled
buffer_flush_avg_page_rate disabled
buffer_flush_lsn_avg_rate disabled
buffer_flush_pct_for_dirty disabled
@@ -71,7 +70,6 @@ buffer_LRU_batch_num_scan disabled
buffer_LRU_batch_scanned_per_call disabled
buffer_LRU_batch_flush_total_pages enabled
buffer_LRU_batch_evict_total_pages enabled
-buffer_LRU_single_flush_failure_count disabled
buffer_LRU_get_free_search disabled
buffer_LRU_search_scanned disabled
buffer_LRU_search_num_scan disabled
@@ -198,6 +196,7 @@ icp_attempts disabled
icp_no_match disabled
icp_out_of_range disabled
icp_match disabled
+create temporary table orig_innodb_metrics as select name, enabled from information_schema.innodb_metrics;
set global innodb_monitor_disable = All;
select name from information_schema.innodb_metrics where enabled;
name
@@ -431,7 +430,7 @@ set global innodb_monitor_reset_all = default;
# MONITORS
#
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB STATS_PERSISTENT=0;
-SELECT NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
+SELECT /*1*/ NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
LIKE 'buffer_page_written_index_leaf';
NAME COUNT > 0
buffer_page_written_index_leaf 0
@@ -439,13 +438,13 @@ SET GLOBAL innodb_monitor_enable='module_buffer_page';
INSERT INTO t1 VALUES (1), (2), (3), (4);
FLUSH TABLES t1 FOR EXPORT;
UNLOCK TABLES;
-SELECT NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
+SELECT /*2*/ NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
LIKE 'buffer_page_written_index_leaf';
NAME COUNT > 0
buffer_page_written_index_leaf 1
SET GLOBAL innodb_monitor_disable='module_buffer_page';
SET GLOBAL innodb_monitor_reset_all='module_buffer_page';
-SELECT NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
+SELECT /*3*/ NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
LIKE 'buffer_page_written_index_leaf';
NAME COUNT > 0
buffer_page_written_index_leaf 0
@@ -455,13 +454,13 @@ ERROR 42000: Variable 'innodb_compression_algorithm' can't be set to the value o
INSERT INTO t1 VALUES (5), (6), (7), (8);
FLUSH TABLES t1 FOR EXPORT;
UNLOCK TABLES;
-SELECT NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
+SELECT /*4*/ NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
LIKE 'buffer_page_written_index_leaf';
NAME COUNT > 0
buffer_page_written_index_leaf 1
SET GLOBAL innodb_monitor_disable='%';
SET GLOBAL innodb_monitor_reset_all='%';
-SELECT NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
+SELECT /*5*/ NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
LIKE 'buffer_page_written_index_leaf';
NAME COUNT > 0
buffer_page_written_index_leaf 0
@@ -469,7 +468,7 @@ SET GLOBAL innodb_monitor_enable='ALL';
INSERT INTO t1 VALUES (9), (10), (11), (12);
FLUSH TABLES t1 FOR EXPORT;
UNLOCK TABLES;
-SELECT NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
+SELECT /*6*/ NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
LIKE 'buffer_page_written_index_leaf';
NAME COUNT > 0
buffer_page_written_index_leaf 1
@@ -599,6 +598,41 @@ DROP TABLE t1;
DROP TABLE fl2;
DROP TABLE fl1;
DROP TABLE fl0;
-SET GLOBAL innodb_monitor_enable=default;
-SET GLOBAL innodb_monitor_disable=default;
-SET GLOBAL innodb_monitor_reset_all=default;
+set global innodb_monitor_disable = 'adaptive\\_hash\\_p%';
+set global innodb_monitor_disable = 'adaptive\\_hash\\_r%';
+set global innodb_monitor_disable = 'buffer\\_LRU\\_batch\\_n%';
+set global innodb_monitor_disable = 'buffer\\_LRU\\_batch\\_s%';
+set global innodb_monitor_disable = 'buffer\\_LRU\\_g%';
+set global innodb_monitor_disable = 'buffer\\_LRU\\_s%';
+set global innodb_monitor_disable = 'buffer\\_LRU\\_u%';
+set global innodb_monitor_disable = 'buffer\\_f%';
+set global innodb_monitor_disable = 'buffer\\_page\\_%';
+set global innodb_monitor_disable = 'c%';
+set global innodb_monitor_disable = 'ddl%';
+set global innodb_monitor_disable = 'icp%';
+set global innodb_monitor_disable = 'index\\_p%';
+set global innodb_monitor_disable = 'innodb\\_di%';
+set global innodb_monitor_disable = 'innodb\\_l%';
+set global innodb_monitor_disable = 'innodb\\_m%';
+set global innodb_monitor_disable = 'lock\\_re%';
+set global innodb_monitor_disable = 'lock\\_ta%';
+set global innodb_monitor_disable = 'log%';
+set global innodb_monitor_disable = 'm%';
+set global innodb_monitor_disable = 'p%';
+set global innodb_monitor_disable = 't%';
+set global innodb_monitor_enable = 'log\\_w%';
+set global innodb_monitor_enable = 'trx_rseg_history_len';
+set global innodb_monitor_enable = 'trx_undo_slots_cached';
+set global innodb_monitor_enable=default;
+Warnings:
+Warning 1230 Default value is not defined for this set option. Please specify correct counter or module name.
+set global innodb_monitor_disable=default;
+Warnings:
+Warning 1230 Default value is not defined for this set option. Please specify correct counter or module name.
+set global innodb_monitor_reset_all=default;
+Warnings:
+Warning 1230 Default value is not defined for this set option. Please specify correct counter or module name.
+select name, orig.enabled, new.enabled from
+orig_innodb_metrics orig join information_schema.innodb_metrics new using(name)
+where orig.enabled != new.enabled;
+name enabled enabled
diff --git a/mysql-test/suite/innodb/r/rename_table.result b/mysql-test/suite/innodb/r/rename_table.result
index 0ed56005..a3bf5910 100644
--- a/mysql-test/suite/innodb/r/rename_table.result
+++ b/mysql-test/suite/innodb/r/rename_table.result
@@ -21,11 +21,17 @@ path
DROP DATABASE abc_def;
# restart
DROP DATABASE abc_def2;
-call mtr.add_suppression("InnoDB: (Operating system error|Error number \\d+ means|Cannot rename file)");
+call mtr.add_suppression("InnoDB: Cannot rename '.*t1.ibd' to '.*non_existing_db.*' because the target schema directory doesn't exist");
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+INSERT INTO t1 VALUES(100);
RENAME TABLE t1 TO non_existing_db.t1;
ERROR HY000: Error on rename of './test/t1' to './non_existing_db/t1' (errno: 168 "Unknown (generic) error from engine")
-FOUND 1 /\[ERROR\] InnoDB: Cannot rename file '.*t1\.ibd' to '.*non_existing_db/ in mysqld.1.err
+FOUND 1 /\[ERROR\] InnoDB: Cannot rename '.*t1\.ibd' to '.*non_existing_db/ in mysqld.1.err
+SET GLOBAL innodb_fast_shutdown=2;
+# restart
+SELECT * FROM t1;
+a
+100
DROP TABLE t1;
#
# MDEV-25509 Atomic DDL: Assertion `err != DB_DUPLICATE_KEY'
diff --git a/mysql-test/suite/innodb/r/restart,16k,innodb.rdiff b/mysql-test/suite/innodb/r/restart,16k.rdiff
index b36ed067..b36ed067 100644
--- a/mysql-test/suite/innodb/r/restart,16k,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/restart,16k.rdiff
diff --git a/mysql-test/suite/innodb/r/restart,32k,innodb.rdiff b/mysql-test/suite/innodb/r/restart,32k.rdiff
index 8fa05781..8fa05781 100644
--- a/mysql-test/suite/innodb/r/restart,32k,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/restart,32k.rdiff
diff --git a/mysql-test/suite/innodb/r/restart,4k,innodb.rdiff b/mysql-test/suite/innodb/r/restart,4k.rdiff
index 7d084636..7d084636 100644
--- a/mysql-test/suite/innodb/r/restart,4k,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/restart,4k.rdiff
diff --git a/mysql-test/suite/innodb/r/restart,64k,innodb.rdiff b/mysql-test/suite/innodb/r/restart,64k.rdiff
index 3ac9f45b..3ac9f45b 100644
--- a/mysql-test/suite/innodb/r/restart,64k,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/restart,64k.rdiff
diff --git a/mysql-test/suite/innodb/r/restart,8k,innodb.rdiff b/mysql-test/suite/innodb/r/restart,8k.rdiff
index 4da55ebf..4da55ebf 100644
--- a/mysql-test/suite/innodb/r/restart,8k,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/restart,8k.rdiff
diff --git a/mysql-test/suite/innodb/r/row_size_error_log_warnings_3,4k.rdiff b/mysql-test/suite/innodb/r/row_size_error_log_warnings_3,4k.rdiff
new file mode 100644
index 00000000..812632ac
--- /dev/null
+++ b/mysql-test/suite/innodb/r/row_size_error_log_warnings_3,4k.rdiff
@@ -0,0 +1,2 @@
+91a92
+> ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 1982. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
diff --git a/mysql-test/suite/innodb/r/row_size_error_log_warnings_3.result b/mysql-test/suite/innodb/r/row_size_error_log_warnings_3.result
index 21085e4c..1fde89ac 100644
--- a/mysql-test/suite/innodb/r/row_size_error_log_warnings_3.result
+++ b/mysql-test/suite/innodb/r/row_size_error_log_warnings_3.result
@@ -82,3 +82,11 @@ f29(10), f30(10), f31(10), f32(10),
f33(10)))
ENGINE=InnoDB;
ERROR 42000: Too many key parts specified; max 32 parts allowed
+#
+# MDEV-31161 Assertion failures upon adding a too long key
+# to table with COMPRESSED row format
+#
+CREATE TABLE t1(pk INT PRIMARY KEY, f1 INT, f2 TEXT)ENGINE=InnoDB ROW_FORMAT=COMPRESSED;
+INSERT INTO t1 (pk) VALUES (1);
+ALTER TABLE t1 ADD KEY (f1), ADD KEY (f2(1000));
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/r/undo_space_dblwr.result b/mysql-test/suite/innodb/r/undo_space_dblwr.result
index d6822b20..4466df98 100644
--- a/mysql-test/suite/innodb/r/undo_space_dblwr.result
+++ b/mysql-test/suite/innodb/r/undo_space_dblwr.result
@@ -4,15 +4,14 @@ Variable_name Value
innodb_doublewrite ON
create table t1(f1 int not null, f2 int not null)engine=innodb;
insert into t1 values (1, 1);
-InnoDB 0 transactions not purged
-set GLOBAL innodb_log_checkpoint_now=1;
+SET GLOBAL innodb_fast_shutdown = 0;
+# restart: --debug_dbug=+d,ib_log_checkpoint_avoid_hard --innodb_flush_sync=0
# Make the first page dirty for undo tablespace
set global innodb_saved_page_number_debug = 0;
set global innodb_fil_make_page_dirty_debug = 1;
-SET GLOBAL innodb_max_dirty_pages_pct_lwm=0.0;
-SET GLOBAL innodb_max_dirty_pages_pct=0.0;
+SET GLOBAL innodb_buf_flush_list_now = 1;
# Kill the server
-# restart
+# restart: --debug_dbug=+d,ib_log_checkpoint_avoid_hard --innodb_flush_sync=0
FOUND 1 /Checksum mismatch in the first page of file/ in mysqld.1.err
check table t1;
Table Op Msg_type Msg_text
diff --git a/mysql-test/suite/innodb/r/undo_truncate.result b/mysql-test/suite/innodb/r/undo_truncate.result
index f90bef94..6d77baa9 100644
--- a/mysql-test/suite/innodb/r/undo_truncate.result
+++ b/mysql-test/suite/innodb/r/undo_truncate.result
@@ -27,6 +27,7 @@ delete from t1;
connection con2;
delete from t2;
connection con1;
+SET GLOBAL innodb_max_undo_log_size = @@GLOBAL.innodb_page_size * 4294967296;
SET GLOBAL innodb_undo_log_truncate = 1;
commit;
disconnect con1;
@@ -35,6 +36,8 @@ commit;
disconnect con2;
connection default;
SET GLOBAL innodb_max_purge_lag_wait=0;
+SET GLOBAL innodb_max_undo_log_size=DEFAULT;
+SET GLOBAL innodb_max_purge_lag_wait=0;
set global innodb_fast_shutdown=0;
# restart
drop table t1, t2;
diff --git a/mysql-test/suite/innodb/t/alter_copy.test b/mysql-test/suite/innodb/t/alter_copy.test
index b62f812f..90f2171d 100644
--- a/mysql-test/suite/innodb/t/alter_copy.test
+++ b/mysql-test/suite/innodb/t/alter_copy.test
@@ -57,7 +57,7 @@ ALTER TABLE t ADD INDEX(b,c,d,a),ADD INDEX(b,c,a,d),ADD INDEX(b,a,c,d),ADD INDEX
connection default;
SET DEBUG_SYNC='now WAIT_FOR hung';
let $shutdown_timeout=0;
---let $restart_parameters= --innodb-force-recovery=3 --debug_dbug="+d,recv_ran_out_of_buffer"
+--let $restart_parameters= --innodb-force-recovery=3
--source include/restart_mysqld.inc
disconnect hang;
let $shutdown_timeout=;
diff --git a/mysql-test/suite/innodb/t/alter_crash.test b/mysql-test/suite/innodb/t/alter_crash.test
index 164ff877..f56dcf2c 100644
--- a/mysql-test/suite/innodb/t/alter_crash.test
+++ b/mysql-test/suite/innodb/t/alter_crash.test
@@ -70,7 +70,7 @@ let $orig_table_id = `SELECT table_id
WHERE name = 'test/t1'`;
# Write file to make mysql-test-run.pl expect crash
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--error 2013
ALTER TABLE t1 ADD PRIMARY KEY (f2, f1);
@@ -110,7 +110,7 @@ let $orig_table_id = `SELECT table_id
WHERE name = 'test/t2'`;
# Write file to make mysql-test-run.pl expect crash
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--error 2013
ALTER TABLE t2 ADD PRIMARY KEY (f2, f1);
@@ -150,7 +150,7 @@ let $orig_table_id = `select table_id from
information_schema.innodb_sys_tables where name = 'test/t1'`;
# Write file to make mysql-test-run.pl expect crash
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
#
--error 2013
ALTER TABLE t1 ADD INDEX (b), CHANGE c d int, ALGORITHM=INPLACE;
diff --git a/mysql-test/suite/innodb/t/alter_kill.test b/mysql-test/suite/innodb/t/alter_kill.test
index 7d83e7e3..100beb76 100644
--- a/mysql-test/suite/innodb/t/alter_kill.test
+++ b/mysql-test/suite/innodb/t/alter_kill.test
@@ -76,7 +76,7 @@ EOF
-- source include/start_mysqld.inc
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_TABLE_CORRUPT
SELECT COUNT(*) FROM bug16720368;
--error ER_TABLE_CORRUPT
INSERT INTO bug16720368 VALUES(1);
diff --git a/mysql-test/suite/innodb/t/alter_rename_existing.test b/mysql-test/suite/innodb/t/alter_rename_existing.test
index 556d8e66..f09456e7 100644
--- a/mysql-test/suite/innodb/t/alter_rename_existing.test
+++ b/mysql-test/suite/innodb/t/alter_rename_existing.test
@@ -18,7 +18,7 @@ INSERT INTO t1(b) VALUES('one'), ('two'), ('three');
--echo #
--echo # Create a file called MYSQLD_DATADIR/test/t1.ibd
---exec echo "This is not t1.ibd" > $MYSQLD_DATADIR/test/t1.ibd
+--write_line "This is not t1.ibd" $MYSQLD_DATADIR/test/t1.ibd
--echo # Directory listing of test/*.ibd
--echo #
diff --git a/mysql-test/suite/innodb/t/autoinc_debug.test b/mysql-test/suite/innodb/t/autoinc_debug.test
index 7722b848..d38a70b3 100644
--- a/mysql-test/suite/innodb/t/autoinc_debug.test
+++ b/mysql-test/suite/innodb/t/autoinc_debug.test
@@ -92,3 +92,69 @@ SELECT * FROM t1;
SHOW CREATE TABLE t1;
DROP TABLE t1;
SET DEBUG_SYNC='RESET';
+
+--echo #
+--echo # MDEV-33593: Auto increment deadlock error causes ASSERT in subsequent save point
+--echo #
+
+CREATE TABLE t1(col1 INT PRIMARY KEY AUTO_INCREMENT, col2 INT) ENGINE=InnoDB;
+CREATE TABLE t2(col1 INT PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t1(col2) values(100);
+
+--connect(con1, localhost, root,,)
+START TRANSACTION;
+--echo # T1: Acquiring Row X lock on table t2
+INSERT INTO t2 values(100);
+
+--connect(con2, localhost, root,,)
+START TRANSACTION;
+--echo # T2: Wait for (T1) row lock on t2 after acquiring GAP Lock on t1
+UPDATE t1 SET col2 = 20 where col1 = 10;
+SET DEBUG_SYNC='lock_wait_before_suspend SIGNAL t2_waiting';
+--send INSERT INTO t2 values(100)
+
+--connection default
+SET DEBUG_SYNC='now WAIT_FOR t2_waiting';
+--echo # T3: Wait for (T2) II row Lock on t1 after acquiring Auto Increment Lock on t1
+SET DEBUG_SYNC='lock_wait_before_suspend SIGNAL t3_waiting';
+--send INSERT INTO t1(col2) SELECT col2 from t1
+
+--connection con1
+SAVEPOINT s1;
+SET DEBUG_SYNC='now WAIT_FOR t3_waiting';
+--echo # T1: Wait for (T3) auto increment lock on t1 causing T1 -> T3 -> T2 -> T1 deadlock
+SET debug_dbug = '+d,innodb_deadlock_victim_self';
+--error ER_AUTOINC_READ_FAILED
+INSERT INTO t1(col2) VALUES(200);
+
+--echo # The transaction should have been rolled back
+SELECT * FROM t1;
+SELECT * FROM t2;
+
+--echo # Release the previous savepoint using the same name
+SAVEPOINT s1;
+COMMIT;
+
+--connection con2
+--reap
+COMMIT;
+
+--connection default
+--reap
+COMMIT;
+
+--disconnect con1
+--disconnect con2
+
+--echo # Cleanup
+SELECT * FROM t1;
+DROP TABLE t1;
+
+SELECT * FROM t2;
+DROP TABLE t2;
+
+SET DEBUG_SYNC='RESET';
+
+--echo #
+--echo # End of 10.5 tests
+--echo #
diff --git a/mysql-test/suite/innodb/t/autoinc_import.test b/mysql-test/suite/innodb/t/autoinc_import.test
new file mode 100644
index 00000000..e137413d
--- /dev/null
+++ b/mysql-test/suite/innodb/t/autoinc_import.test
@@ -0,0 +1,168 @@
+--source include/have_innodb.inc
+
+CREATE TABLE t1 (id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t1 VALUES(42);
+CREATE TABLE t1b LIKE t1;
+INSERT INTO t1b VALUES(3);
+CREATE TABLE t1z LIKE t1;
+CREATE TABLE t1t (id TINYINT AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB;
+CREATE TABLE t0t LIKE t1t;
+INSERT INTO t1t VALUES(123);
+--let DATADIR=`select @@datadir`
+--let PAGE_SIZE=`select @@innodb_page_size`
+FLUSH TABLES t1,t1b,t1t FOR EXPORT;
+--copy_file $DATADIR/test/t1.ibd $DATADIR/test/t.ibd
+--copy_file $DATADIR/test/t1.ibd $DATADIR/test/tz.ibd
+--copy_file $DATADIR/test/t1b.ibd $DATADIR/test/tb.ibd
+--copy_file $DATADIR/test/t1t.ibd $DATADIR/test/tt.ibd
+UNLOCK TABLES;
+CREATE TABLE t5_7 LIKE t1;
+CREATE TABLE t5_7b LIKE t1b;
+CREATE TABLE t10_1 LIKE t1;
+CREATE TABLE t10_1b LIKE t1b;
+ALTER TABLE t1 DISCARD TABLESPACE;
+ALTER TABLE t1b DISCARD TABLESPACE;
+ALTER TABLE t1z DISCARD TABLESPACE;
+ALTER TABLE t1t DISCARD TABLESPACE;
+ALTER TABLE t0t DISCARD TABLESPACE;
+ALTER TABLE t5_7 DISCARD TABLESPACE;
+ALTER TABLE t5_7b DISCARD TABLESPACE;
+ALTER TABLE t10_1 DISCARD TABLESPACE;
+ALTER TABLE t10_1b DISCARD TABLESPACE;
+FLUSH TABLES;
+
+# Update the PAGE_ROOT_AUTO_INC field of a few files.
+perl;
+do "$ENV{MTR_SUITE_DIR}/include/crc32.pl";
+sub update_autoinc
+{
+ my ($file, $value) = @_;
+ open(FILE, "+<$file") || die "Unable to open $file";
+ binmode FILE;
+ my $ps= $ENV{PAGE_SIZE};
+ my $page;
+ die "Unable to read $file" unless sysread(FILE, $page, $ps) == $ps;
+ my $full_crc32 = unpack("N",substr($page,54,4)) & 0x10; # FIL_SPACE_FLAGS
+ sysseek(FILE, 3*$ps, 0) || die "Unable to seek $file\n";
+ die "Unable to read $file" unless sysread(FILE, $page, $ps) == $ps;
+ substr($page,56,8)=pack("NN",0,$value);
+ my $polynomial = 0x82f63b78; # CRC-32C
+ if ($full_crc32) {
+ my $ck = mycrc32(substr($page, 0, $ps-4), 0, $polynomial);
+ substr($page, $ps-4, 4) = pack("N", $ck);
+ }
+ else
+ {
+ my $ck= pack("N",mycrc32(substr($page, 4, 22), 0, $polynomial) ^
+ mycrc32(substr($page, 38, $ps - 38 - 8), 0, $polynomial));
+ substr($page,0,4)=$ck;
+ substr($page,$ps-8,4)=$ck;
+ }
+ sysseek(FILE, 3*$ps, 0) || die "Unable to rewind $file\n";
+ syswrite(FILE, $page, $ps)==$ps || die "Unable to write $file\n";
+ close(FILE) || die "Unable to close $file";
+}
+update_autoinc("$ENV{DATADIR}/test/tz.ibd", 0);
+update_autoinc("$ENV{DATADIR}/test/t.ibd", 3);
+update_autoinc("$ENV{DATADIR}/test/tb.ibd", 346);
+update_autoinc("$ENV{DATADIR}/test/tt.ibd", 128);
+EOF
+
+--remove_file $DATADIR/test/t5_7.frm
+--remove_file $DATADIR/test/t5_7b.frm
+--copy_file $MYSQL_TEST_DIR/std_data/autoinc_import_57.frm $DATADIR/test/t5_7.frm
+--copy_file $MYSQL_TEST_DIR/std_data/autoinc_import_57.frm $DATADIR/test/t5_7b.frm
+--remove_file $DATADIR/test/t10_1.frm
+--remove_file $DATADIR/test/t10_1b.frm
+--copy_file $MYSQL_TEST_DIR/std_data/autoinc_import_101.frm $DATADIR/test/t10_1.frm
+--copy_file $MYSQL_TEST_DIR/std_data/autoinc_import_101.frm $DATADIR/test/t10_1b.frm
+--copy_file $DATADIR/test/t.ibd $DATADIR/test/t5_7.ibd
+--copy_file $DATADIR/test/tb.ibd $DATADIR/test/t5_7b.ibd
+--copy_file $DATADIR/test/t.ibd $DATADIR/test/t10_1.ibd
+--copy_file $DATADIR/test/tb.ibd $DATADIR/test/t10_1b.ibd
+--move_file $DATADIR/test/t.ibd $DATADIR/test/t1.ibd
+--move_file $DATADIR/test/tb.ibd $DATADIR/test/t1b.ibd
+--copy_file $DATADIR/test/tt.ibd $DATADIR/test/t0t.ibd
+--move_file $DATADIR/test/tt.ibd $DATADIR/test/t1t.ibd
+--move_file $DATADIR/test/tz.ibd $DATADIR/test/t1z.ibd
+
+ALTER TABLE t0t IMPORT TABLESPACE;
+INSERT INTO t0t VALUES(NULL);
+SELECT * FROM t0t;
+DROP TABLE t0t;
+ALTER TABLE t1 IMPORT TABLESPACE;
+ALTER TABLE t1b IMPORT TABLESPACE;
+ALTER TABLE t1z IMPORT TABLESPACE;
+ALTER TABLE t1t IMPORT TABLESPACE;
+ALTER TABLE t5_7 IMPORT TABLESPACE;
+ALTER TABLE t5_7b IMPORT TABLESPACE;
+ALTER TABLE t10_1 IMPORT TABLESPACE;
+ALTER TABLE t10_1b IMPORT TABLESPACE;
+
+--let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err
+--let SEARCH_PATTERN= InnoDB: Resetting PAGE_ROOT_AUTO_INC from 128 to 123 on table `test`\.`t0t`
+--source include/search_pattern_in_file.inc
+--let SEARCH_PATTERN= InnoDB: Resetting PAGE_ROOT_AUTO_INC from 0 to 42 on table `test`\.`t1z`
+--source include/search_pattern_in_file.inc
+--let SEARCH_PATTERN= InnoDB: Resetting PAGE_ROOT_AUTO_INC from 128 to 123 on table `test`\.`t1t`
+--source include/search_pattern_in_file.inc
+--let SEARCH_PATTERN= InnoDB: Resetting PAGE_ROOT_AUTO_INC from 3 to 42 on table `test`\.`t5_7` \(created with version 50744\)
+--source include/search_pattern_in_file.inc
+--let SEARCH_PATTERN= InnoDB: Resetting PAGE_ROOT_AUTO_INC from 3 to 42 on table `test`\.`t10_1` \(created with version 100149\)
+--source include/search_pattern_in_file.inc
+--let SEARCH_PATTERN= InnoDB: Resetting PAGE_ROOT_AUTO_INC
+--source include/search_pattern_in_file.inc
+
+# Restart, so that the InnoDB tables will be loaded into the data dictionary.
+--let $restart_parameters=--read-only
+--source include/restart_mysqld.inc
+
+CHECK TABLE t1, t1b, t1t, t1z, t5_7, t5_7b, t10_1, t10_1b;
+CHECK TABLE t1, t1b, t1t, t1z, t5_7, t5_7b, t10_1, t10_1b FOR UPGRADE;
+
+--let $restart_parameters=--innodb-read-only --read-only
+--source include/restart_mysqld.inc
+
+CHECK TABLE t1, t1b, t1t, t1z, t5_7, t5_7b, t10_1, t10_1b;
+CHECK TABLE t1, t1b, t1t, t1z, t5_7, t5_7b, t10_1, t10_1b FOR UPGRADE;
+
+--let $restart_parameters=--innodb-read-only
+--source include/restart_mysqld.inc
+
+CHECK TABLE t1, t1b, t1t, t1z, t5_7, t5_7b, t10_1, t10_1b;
+CHECK TABLE t1, t1b, t1t, t1z, t5_7, t5_7b, t10_1, t10_1b FOR UPGRADE;
+
+SELECT COUNT(*) FROM t1;
+SELECT COUNT(*) FROM t1b;
+SELECT COUNT(*) FROM t1t;
+SELECT COUNT(*) FROM t1z;
+SELECT COUNT(*) FROM t5_7;
+SELECT COUNT(*) FROM t5_7b;
+SELECT COUNT(*) FROM t10_1;
+SELECT COUNT(*) FROM t10_1b;
+
+--let $restart_parameters=
+--source include/restart_mysqld.inc
+
+CHECK TABLE t1, t1b, t1t, t1z, t5_7, t5_7b, t10_1, t10_1b FOR UPGRADE;
+
+INSERT INTO t1 VALUES(NULL);
+INSERT INTO t1b VALUES(NULL);
+INSERT INTO t1t VALUES(NULL);
+INSERT INTO t1z VALUES(NULL);
+INSERT INTO t5_7 VALUES(NULL);
+INSERT INTO t5_7b VALUES(NULL);
+INSERT INTO t10_1 VALUES(NULL);
+INSERT INTO t10_1b VALUES(NULL);
+
+CHECK TABLE t1, t1b, t1t, t1z, t5_7, t5_7b, t10_1, t10_1b FOR UPGRADE;
+
+SELECT * FROM t1;
+SELECT * FROM t1b;
+SELECT * FROM t1t;
+SELECT * FROM t1z;
+SELECT * FROM t5_7;
+SELECT * FROM t5_7b;
+SELECT * FROM t10_1;
+SELECT * FROM t10_1b;
+DROP TABLE t1, t1b, t1t, t1z, t5_7, t5_7b, t10_1, t10_1b;
diff --git a/mysql-test/suite/innodb/t/corrupted_during_recovery.test b/mysql-test/suite/innodb/t/corrupted_during_recovery.test
index 1f410246..83240549 100644
--- a/mysql-test/suite/innodb/t/corrupted_during_recovery.test
+++ b/mysql-test/suite/innodb/t/corrupted_during_recovery.test
@@ -7,7 +7,7 @@ call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE faile
call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed read of file '.*test.t1\\.ibd' page");
call mtr.add_suppression("InnoDB: Failed to read page 3 from file '.*test.t1\\.ibd': Page read from tablespace is corrupted.");
call mtr.add_suppression("InnoDB: (Unable to apply log to|Discarding log for) corrupted page .*, page number=3\\]");
-call mtr.add_suppression("Table test/t1 is corrupted. Please drop the table and recreate\\.");
+call mtr.add_suppression("Table `test`.`t1` is corrupted. Please drop the table and recreate.");
call mtr.add_suppression("InnoDB: File '.*test/t1\\.ibd' is corrupted");
call mtr.add_suppression("InnoDB: A long wait .* was observed for dict_sys");
--enable_query_log
diff --git a/mysql-test/suite/innodb/t/cursor-restore-unique-null.test b/mysql-test/suite/innodb/t/cursor-restore-unique-null.test
new file mode 100644
index 00000000..409694d6
--- /dev/null
+++ b/mysql-test/suite/innodb/t/cursor-restore-unique-null.test
@@ -0,0 +1,36 @@
+--source include/have_innodb.inc
+--source include/have_debug.inc
+--source include/have_debug_sync.inc
+--source include/count_sessions.inc
+
+
+CREATE TABLE t(a INT PRIMARY KEY, b INT, c INT, UNIQUE KEY `b_c` (`b`,`c`))
+ ENGINE=InnoDB, STATS_PERSISTENT=0;
+INSERT INTO t SET a = 1, c = 2;
+
+--connect con1,localhost,root
+BEGIN;
+ INSERT INTO t SET a=2, c=2;
+
+--connection default
+BEGIN;
+SET DEBUG_SYNC="lock_wait_start SIGNAL select_locked";
+--send SELECT * FROM t FORCE INDEX(b) FOR UPDATE
+
+--connection con1
+SET DEBUG_SYNC="now WAIT_FOR select_locked";
+ROLLBACK;
+
+--connection default
+--echo # If the bug is not fixed, and the both unique index key fields are
+--echo # NULL, there will be two (1, NULL, 2) rows in the result,
+--echo # because cursor will be restored to (NULL, 2, 1) position for
+--echo # secondary key instead of "supremum".
+--reap
+COMMIT;
+
+SET DEBUG_SYNC="RESET";
+
+--disconnect con1
+DROP TABLE t;
+--source include/wait_until_count_sessions.inc
diff --git a/mysql-test/suite/innodb/t/doublewrite_debug.test b/mysql-test/suite/innodb/t/doublewrite_debug.test
index ab7fd8eb..b8dcd506 100644
--- a/mysql-test/suite/innodb/t/doublewrite_debug.test
+++ b/mysql-test/suite/innodb/t/doublewrite_debug.test
@@ -45,7 +45,7 @@ commit work;
# Slow shutdown and restart to make sure ibuf merge is finished
SET GLOBAL innodb_fast_shutdown = 0;
let $shutdown_timeout=;
-let $restart_parameters="--debug_dbug=+d,ib_log_checkpoint_avoid_hard --innodb_flush_sync=0";
+let $restart_parameters=--debug_dbug=+d,ib_log_checkpoint_avoid_hard --innodb_flush_sync=0;
--source include/restart_mysqld.inc
--source ../include/no_checkpoint_start.inc
begin;
@@ -95,7 +95,7 @@ select f1, f2 from t1;
--echo # Test Begin: Test if recovery works if 1st page of
--echo # system tablespace is corrupted and 2nd page as corrupted.
-let $restart_parameters="--debug_dbug=+d,ib_log_checkpoint_avoid_hard --innodb_flush_sync=0";
+let $restart_parameters=--debug_dbug=+d,ib_log_checkpoint_avoid_hard --innodb_flush_sync=0;
--source include/restart_mysqld.inc
--source ../include/no_checkpoint_start.inc
begin;
diff --git a/mysql-test/suite/innodb/t/foreign_key.test b/mysql-test/suite/innodb/t/foreign_key.test
index 0db3a7ca..e793e261 100644
--- a/mysql-test/suite/innodb/t/foreign_key.test
+++ b/mysql-test/suite/innodb/t/foreign_key.test
@@ -1077,10 +1077,23 @@ BEGIN;
--error ER_NO_REFERENCED_ROW_2
INSERT INTO child SET a=1;
connection default;
+--error ER_TRUNCATE_ILLEGAL_FK
+TRUNCATE TABLE parent;
+--error ER_ROW_IS_REFERENCED_2
+DROP TABLE parent;
+SET innodb_lock_wait_timeout=0;
+--error ER_LOCK_WAIT_TIMEOUT
+RENAME TABLE parent TO transparent;
+--error ER_LOCK_WAIT_TIMEOUT
+ALTER TABLE parent FORCE, ALGORITHM=COPY;
+--error ER_LOCK_WAIT_TIMEOUT
+ALTER TABLE parent FORCE, ALGORITHM=INPLACE;
SET innodb_lock_wait_timeout=0, foreign_key_checks=0;
--error ER_LOCK_WAIT_TIMEOUT
TRUNCATE TABLE parent;
--error ER_LOCK_WAIT_TIMEOUT
+DROP TABLE parent;
+--error ER_LOCK_WAIT_TIMEOUT
ALTER TABLE parent FORCE, ALGORITHM=COPY;
--error ER_LOCK_WAIT_TIMEOUT
ALTER TABLE parent FORCE, ALGORITHM=INPLACE;
@@ -1095,7 +1108,13 @@ TRUNCATE TABLE parent;
ALTER TABLE parent FORCE, ALGORITHM=COPY;
ALTER TABLE parent FORCE, ALGORITHM=INPLACE;
ALTER TABLE parent ADD COLUMN b INT, ALGORITHM=INSTANT;
-DROP TABLE child, parent;
+SET foreign_key_checks=ON;
+--error ER_TRUNCATE_ILLEGAL_FK
+TRUNCATE TABLE parent;
+ALTER TABLE parent FORCE, ALGORITHM=COPY;
+ALTER TABLE parent FORCE, ALGORITHM=INPLACE;
+RENAME TABLE parent TO transparent;
+DROP TABLE child, transparent;
--echo #
--echo # MDEV-26217 Failing assertion: list.count > 0 in ut_list_remove
diff --git a/mysql-test/suite/innodb/t/full_crc32_import.test b/mysql-test/suite/innodb/t/full_crc32_import.test
index 0eb31f8d..6f02b2ab 100644
--- a/mysql-test/suite/innodb/t/full_crc32_import.test
+++ b/mysql-test/suite/innodb/t/full_crc32_import.test
@@ -63,6 +63,12 @@ ALTER TABLE t1 DROP INDEX b;
ALTER TABLE t1 IMPORT TABLESPACE;
--enable_warnings
SHOW CREATE TABLE t1;
+
+--echo # Auto increment value must be more than maximum column value
+SELECT MAX(a) FROM t1;
+SELECT auto_increment FROM information_schema.tables
+WHERE table_name like 't1';
+
UPDATE t1 set b = repeat("de", 100) where b = repeat("cd", 200);
--replace_column 9 #
explain SELECT a FROM t1 where b = repeat("de", 100);
@@ -145,6 +151,12 @@ ALTER TABLE t1 DROP INDEX idx1;
ALTER TABLE t1 IMPORT TABLESPACE;
--disable_warnings
SHOW CREATE TABLE t1;
+
+--echo # Auto increment value must be more than maximum column value
+SELECT MAX(c1) FROM t1;
+SELECT auto_increment FROM information_schema.tables
+WHERE table_name like 't1';
+
UPDATE t1 SET C2 = ST_GeomFromText('POINT(0 0)');
SELECT COUNT(*) FROM t1;
DELETE FROM t1;
diff --git a/mysql-test/suite/innodb/t/group_commit_crash.test b/mysql-test/suite/innodb/t/group_commit_crash.test
index 12f7ba20..b0ed854f 100644
--- a/mysql-test/suite/innodb/t/group_commit_crash.test
+++ b/mysql-test/suite/innodb/t/group_commit_crash.test
@@ -51,7 +51,7 @@ while ($numtests)
START TRANSACTION;
insert into t1 select * from t2;
# Write file to make mysql-test-run.pl expect crash
- --exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+ --write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
eval call setcrash($numtests);
diff --git a/mysql-test/suite/innodb/t/group_commit_crash_no_optimize_thread.test b/mysql-test/suite/innodb/t/group_commit_crash_no_optimize_thread.test
index 6115e3f0..9b7de7ce 100644
--- a/mysql-test/suite/innodb/t/group_commit_crash_no_optimize_thread.test
+++ b/mysql-test/suite/innodb/t/group_commit_crash_no_optimize_thread.test
@@ -51,7 +51,7 @@ while ($numtests)
START TRANSACTION;
insert into t1 select * from t2;
# Write file to make mysql-test-run.pl expect crash
- --exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+ --write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
eval call setcrash($numtests);
diff --git a/mysql-test/suite/innodb/t/import_bugs.test b/mysql-test/suite/innodb/t/import_bugs.test
index 7fcab9f9..d22b4b67 100644
--- a/mysql-test/suite/innodb/t/import_bugs.test
+++ b/mysql-test/suite/innodb/t/import_bugs.test
@@ -1,4 +1,5 @@
--source include/have_innodb.inc
+--source include/have_sequence.inc
call mtr.add_suppression("Index for table 'imp_t1' is corrupt; try to repair it");
@@ -23,6 +24,67 @@ DROP TABLE imp_t1, t1;
SET GLOBAL innodb_checksum_algorithm=@save_innodb_checksum_algorithm;
--echo #
+--echo # MDEV-33400 Adaptive hash index corruption after DISCARD TABLESPACE
+--echo #
+
+SET @save_adaptive=@@GLOBAL.innodb_adaptive_hash_index;
+SET GLOBAL innodb_adaptive_hash_index=ON;
+
+CREATE TABLE t (a INT PRIMARY KEY) ENGINE=INNODB;
+INSERT INTO t SELECT * FROM seq_1_to_131;
+ALTER TABLE t ADD hid INT DEFAULT 2;
+INSERT INTO t VALUES (251,1);
+ALTER TABLE t DISCARD TABLESPACE;
+CHECK TABLE mysql.innodb_table_stats;
+DROP TABLE t;
+SET GLOBAL innodb_adaptive_hash_index=@save_adaptive;
+
+--echo # End of 10.4 tests
+
+--echo #
+--echo # MDEV-18288: Transportable Tablespaces leave AUTO_INCREMENT in mismatched
+--echo # state, causing INSERT errors in newly imported tables when .cfg is not used.
+--echo #
+
+CREATE TABLE t1(
+ id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+) ENGINE=INNODB;
+
+CREATE TABLE t2 LIKE t1;
+
+ALTER TABLE t2 DISCARD TABLESPACE;
+
+INSERT INTO t1() VALUES();
+INSERT INTO t1() VALUES();
+
+FLUSH TABLES test.t1 FOR EXPORT;
+
+--echo # Copy data file
+--copy_file $datadir/test/t1.ibd $datadir/test/t2.ibd
+
+--echo # Skip CFG file copy
+#--copy_file $datadir/test/t1.cfg $datadir/test/t2.cfg
+--remove_file $datadir/test/t1.cfg
+
+UNLOCK TABLES;
+DROP TABLE t1;
+
+--replace_regex /opening '.*\/test\//opening '.\/test\//
+ALTER TABLE t2 IMPORT TABLESPACE;
+
+SELECT * FROM t2 ORDER BY id;
+
+INSERT INTO t2() VALUES();
+INSERT INTO t2() VALUES();
+INSERT INTO t2() VALUES();
+
+SELECT * FROM t2 ORDER BY id;
+DROP TABLE t2;
+
+--echo # End of 10.5 tests
+
+--echo #
--echo # MDEV-27006 Assertion `!lock_trx_has_sys_table_locks(trx)'
--echo # failed in dberr_t row_discard_tablespace_for_mysql
--echo # (dict_table_t*, trx_t*)
diff --git a/mysql-test/suite/innodb/t/import_hidden_fts.test b/mysql-test/suite/innodb/t/import_hidden_fts.test
new file mode 100644
index 00000000..4129e258
--- /dev/null
+++ b/mysql-test/suite/innodb/t/import_hidden_fts.test
@@ -0,0 +1,46 @@
+--source include/have_innodb.inc
+--source include/have_sequence.inc
+# Table with virtual, fulltext, instant add, instant drop column
+# and purgeable rows
+call mtr.add_suppression("InnoDB: Added system generated FTS_DOC_ID and FTS_DOC_ID_INDEX while importing the tablespace");
+CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
+ f2 CHAR(2) not null, fulltext f_idx(f2),
+ f3 INT as (f1) VIRTUAL, INDEX(f3),
+ f4 INT as (f1) STORED, INDEX(f4),
+ f5 INT as (f1) VIRTUAL)ENGINE=InnoDB;
+INSERT INTO t1(f1, f2) VALUES(1, "on");
+INSERT INTO t1(f1, f2) SELECT seq, "si" FROM seq_2_to_256;
+ALTER TABLE t1 ADD COLUMN f6 INT NOT NULL;
+ALTER TABLE t1 DROP COLUMN f6;
+ALTER TABLE t1 DROP INDEX f_idx;
+connect(con1,localhost,root,,);
+START TRANSACTION WITH CONSISTENT SNAPSHOT;
+
+connection default;
+DELETE FROM t1 WHERE f1 > 1;
+FLUSH TABLE t1 FOR EXPORT;
+let MYSQLD_DATADIR =`SELECT @@datadir`;
+perl;
+do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
+ib_backup_tablespaces("test", "t1");
+EOF
+UNLOCK TABLES;
+DROP TABLE t1;
+
+CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
+ f2 CHAR(2) not null,
+ f3 INT as (f1) VIRTUAL, INDEX(f3),
+ f4 INT as (f1) STORED, INDEX(f4),
+ f5 INT as (f1) VIRTUAL)ENGINE=InnoDB;
+ALTER TABLE t1 DISCARD TABLESPACE;
+perl;
+do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
+ib_discard_tablespaces("test", "t1");
+ib_restore_tablespaces("test", "t1");
+EOF
+
+--disable_warnings
+ALTER TABLE t1 IMPORT TABLESPACE;
+--enable_warnings
+SHOW CREATE TABLE t1;
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/t/import_hidden_fts_debug.test b/mysql-test/suite/innodb/t/import_hidden_fts_debug.test
new file mode 100644
index 00000000..e3d8680d
--- /dev/null
+++ b/mysql-test/suite/innodb/t/import_hidden_fts_debug.test
@@ -0,0 +1,101 @@
+--source include/have_innodb.inc
+--source include/have_debug.inc
+CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
+ f2 CHAR(2) NOT NULL, FULLTEXT f_idx(f2),
+ f3 INT as (f1) VIRTUAL, INDEX(f3))ENGINE=InnoDB;
+INSERT INTO t1(f1, f2) VALUES(1, "on");
+ALTER TABLE t1 DROP INDEX f_idx;
+FLUSH TABLE t1 FOR EXPORT;
+let MYSQLD_DATADIR =`SELECT @@datadir`;
+perl;
+do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
+ib_backup_tablespaces("test", "t1");
+EOF
+UNLOCK TABLES;
+DROP TABLE t1;
+
+CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
+ f2 CHAR(2) NOT NULL,
+ f3 CHAR(2) NOT NULL,
+ f4 INT AS (f1) VIRTUAL, INDEX(f4))ENGINE=InnoDB;
+ALTER TABLE t1 DISCARD TABLESPACE;
+perl;
+do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
+ib_discard_tablespaces("test", "t1");
+ib_restore_tablespaces("test", "t1");
+EOF
+--error ER_TABLE_SCHEMA_MISMATCH
+ALTER TABLE t1 IMPORT TABLESPACE;
+DROP TABLE t1;
+
+CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
+ f2 CHAR(2) NOT NULL,
+ f3 INT as (f1) VIRTUAL, INDEX(f3))ENGINE=InnoDB;
+ALTER TABLE t1 DISCARD TABLESPACE;
+perl;
+do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
+ib_discard_tablespaces("test", "t1");
+ib_restore_tablespaces("test", "t1");
+EOF
+
+--disable_warnings
+SET DEBUG_DBUG="+d,ib_import_set_index_root_failure";
+--error ER_TOO_MANY_CONCURRENT_TRXS
+ALTER TABLE t1 IMPORT TABLESPACE;
+SET DEBUG_DBUG="-d,ib_import_set_index_root_failure";
+
+SET DEBUG_DBUG="+d,ib_import_vcol_update_fail";
+--error ER_DUP_KEY
+ALTER TABLE t1 IMPORT TABLESPACE;
+SET DEBUG_DBUG="-d,ib_import_vcol_update_fail";
+
+perl;
+do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
+ib_discard_tablespaces("test", "t1");
+ib_restore_tablespaces("test", "t1");
+EOF
+
+SET DEBUG_DBUG="+d,ib_import_fts_error";
+--error ER_DUP_KEY
+ALTER TABLE t1 IMPORT TABLESPACE;
+SET DEBUG_DBUG="-d,ib_import_fts_error";
+--enable_warnings
+
+perl;
+do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
+ib_unlink_tablespace("test", "t1");
+EOF
+
+SELECT NAME FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS
+WHERE table_id IN (SELECT table_id FROM information_schema.innodb_sys_tables where name="test/t1");
+
+SHOW CREATE TABLE t1;
+DROP TABLE t1;
+
+# Manually add the FTS_DOC_ID Column with mismatched data type
+CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
+ FTS_DOC_ID BIGINT SIGNED NOT NULL,
+ f2 CHAR(2) NOT NULL,
+ FULLTEXT f_idx(f2))ENGINE=InnoDB;
+INSERT INTO t1 VALUES(1, 1, "on");
+ALTER TABLE t1 DROP INDEX f_idx;
+FLUSH TABLE t1 FOR EXPORT;
+let MYSQLD_DATADIR =`SELECT @@datadir`;
+perl;
+do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
+ib_backup_tablespaces("test", "t1");
+EOF
+UNLOCK TABLES;
+DROP TABLE t1;
+
+CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
+ f2 CHAR(2) NOT NULL)ENGINE=InnoDB;
+ALTER TABLE t1 DISCARD TABLESPACE;
+perl;
+do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
+ib_discard_tablespaces("test", "t1");
+ib_restore_tablespaces("test", "t1");
+EOF
+--error ER_TABLE_SCHEMA_MISMATCH
+ALTER TABLE t1 IMPORT TABLESPACE;
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/t/index_length.test b/mysql-test/suite/innodb/t/index_length.test
index bf4940d4..03e61a5a 100644
--- a/mysql-test/suite/innodb/t/index_length.test
+++ b/mysql-test/suite/innodb/t/index_length.test
@@ -20,4 +20,12 @@ WHERE table_schema = 'test' AND table_name = 't1';
disconnect stop_purge;
DROP TABLE t1;
+--echo #
+--echo # MDEV-22855 Assertion (!field->prefix_len ||
+--echo # field->fixed_len == field->prefix_len)
+--echo # failed in btr_node_ptr_max_size
+--echo #
+CREATE TABLE t1(c CHAR(194) CHARACTER SET UTF32, KEY k1(c(193)))ENGINE=InnoDB;
+INSERT INTO t1 SET c='';
+DROP TABLE t1;
--echo # End of 10.4 tests
diff --git a/mysql-test/suite/innodb/t/index_merge_threshold.test b/mysql-test/suite/innodb/t/index_merge_threshold.test
index cb8e117d..acadf4f0 100644
--- a/mysql-test/suite/innodb/t/index_merge_threshold.test
+++ b/mysql-test/suite/innodb/t/index_merge_threshold.test
@@ -10,6 +10,7 @@
#
# Check actual behavior for table, partitioned table and temporary table
# #############################################################
+--source include/have_innodb.inc
--source include/have_innodb_16k.inc
--source include/have_partition.inc
diff --git a/mysql-test/suite/innodb/t/innodb-alter-debug.test b/mysql-test/suite/innodb/t/innodb-alter-debug.test
index c4a68ac7..6b94bfd2 100644
--- a/mysql-test/suite/innodb/t/innodb-alter-debug.test
+++ b/mysql-test/suite/innodb/t/innodb-alter-debug.test
@@ -144,15 +144,14 @@ DROP TABLE t;
--echo #
create table t1(f1 int not null primary key,
-
- f2 int not null, index idx(f2))engine=innodb;
+ f2 int not null, index idx(f2), index i(f2,f1))engine=innodb;
insert into t1 values(1, 1);
connect(con1,localhost,root,,,);
SET DEBUG_SYNC='before_delete_table_stats SIGNAL blocked WAIT_FOR go';
-SET innodb_lock_wait_timeout=0;
-send ALTER TABLE t1 FORCE, ALGORITHM=COPY;
+send SET STATEMENT innodb_lock_wait_timeout=0 FOR
+ALTER TABLE t1 FORCE, ALGORITHM=COPY;
connection default;
SET DEBUG_SYNC='now WAIT_FOR blocked';
@@ -167,6 +166,21 @@ connection default;
COMMIT;
SET DEBUG_SYNC=RESET;
+RENAME TABLE mysql.innodb_table_stats TO mysql.innodb_table_stats_hidden;
+connection con1;
+SET DEBUG_SYNC='innodb_commit_inplace_before_lock SIGNAL blocked WAIT_FOR go';
+send ALTER TABLE t1 DROP INDEX i;
+
+connection default;
+SET DEBUG_SYNC='now WAIT_FOR blocked';
+RENAME TABLE mysql.innodb_table_stats_hidden TO mysql.innodb_table_stats;
+SET DEBUG_SYNC='now SIGNAL go';
+
+connection con1;
+reap;
+connection default;
+SET DEBUG_SYNC=RESET;
+
connection con1;
ALTER TABLE t1 RENAME KEY idx TO idx1, ALGORITHM=COPY;
disconnect con1;
diff --git a/mysql-test/suite/innodb/t/innodb-alter-tempfile.test b/mysql-test/suite/innodb/t/innodb-alter-tempfile.test
index 2534f03d..0b6cbabb 100644
--- a/mysql-test/suite/innodb/t/innodb-alter-tempfile.test
+++ b/mysql-test/suite/innodb/t/innodb-alter-tempfile.test
@@ -35,7 +35,7 @@ let datadir= `select @@datadir`;
CREATE TABLE t1 (f1 INT NOT NULL, f2 INT NOT NULL) ENGINE=innodb;
SET debug_dbug='+d,innodb_alter_commit_crash_before_commit';
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--error 2013
ALTER TABLE t1 ADD PRIMARY KEY (f2, f1);
diff --git a/mysql-test/suite/innodb/t/innodb-corrupted-table.test b/mysql-test/suite/innodb/t/innodb-corrupted-table.test
index a064f08d..dcdaa618 100644
--- a/mysql-test/suite/innodb/t/innodb-corrupted-table.test
+++ b/mysql-test/suite/innodb/t/innodb-corrupted-table.test
@@ -23,14 +23,14 @@ alter table t1 add primary key (pk);
--echo # Stop the server, replace the frm with the old one and restart the server
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
--remove_file $datadir/test/t1.frm
--copy_file $MYSQLTEST_VARDIR/tmp/t1.frm $datadir/test/t1.frm
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
diff --git a/mysql-test/suite/innodb/t/innodb-lru-force-no-free-page.test b/mysql-test/suite/innodb/t/innodb-lru-force-no-free-page.test
deleted file mode 100644
index d4f08b5a..00000000
--- a/mysql-test/suite/innodb/t/innodb-lru-force-no-free-page.test
+++ /dev/null
@@ -1,24 +0,0 @@
---source include/have_innodb.inc
---source include/have_debug.inc
---source include/not_embedded.inc
-
-call mtr.add_suppression("InnoDB: Difficult to find free blocks in the buffer pool");
-
-SET @saved_debug = @@SESSION.debug_dbug;
-SET SESSION debug_dbug="+d,ib_lru_force_no_free_page";
-
-CREATE TABLE t1 (j LONGBLOB) ENGINE = InnoDB;
-BEGIN;
-INSERT INTO t1 VALUES (repeat('abcdefghijklmnopqrstuvwxyz',200));
-COMMIT;
-
-SET debug_dbug = @saved_debug;
-
-DROP TABLE t1;
-
-#
-# There should be only one message
-#
-let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err;
---let SEARCH_PATTERN=InnoDB: Difficult to find free blocks
---source include/search_pattern_in_file.inc
diff --git a/mysql-test/suite/innodb/t/innodb-wl5522-debug.test b/mysql-test/suite/innodb/t/innodb-wl5522-debug.test
index e642a949..2d3b5b3f 100644
--- a/mysql-test/suite/innodb/t/innodb-wl5522-debug.test
+++ b/mysql-test/suite/innodb/t/innodb-wl5522-debug.test
@@ -43,7 +43,7 @@ INSERT INTO t1 VALUES(1),(2),(3);
--let $_expect_file_name= `select regexp_replace(@@tmpdir, '^.*/','')`
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/$_expect_file_name.expect
---exec echo wait > $_expect_file_name
+--write_line wait $_expect_file_name
SET SESSION debug_dbug="+d,ib_discard_before_commit_crash";
--error 2013
ALTER TABLE t1 DISCARD TABLESPACE;
@@ -57,7 +57,7 @@ SET GLOBAL innodb_file_per_table = 1;
CREATE TABLE t1 (c1 INT) ENGINE = InnoDB;
INSERT INTO t1 VALUES(1),(2),(3);
---exec echo wait > $_expect_file_name
+--write_line wait $_expect_file_name
SET SESSION debug_dbug="+d,ib_discard_after_commit_crash";
--error 2013
ALTER TABLE t1 DISCARD TABLESPACE;
@@ -101,7 +101,7 @@ EOF
--error ER_TABLESPACE_DISCARDED
SELECT * FROM t1;
---exec echo wait > $_expect_file_name
+--write_line wait $_expect_file_name
SET SESSION debug_dbug="+d,ib_import_before_commit_crash";
--error 2013
ALTER TABLE t1 IMPORT TABLESPACE;
diff --git a/mysql-test/suite/innodb/t/innodb_bug60196.test b/mysql-test/suite/innodb/t/innodb_bug60196.test
index 7f1f5c40..41b9a4d8 100644
--- a/mysql-test/suite/innodb/t/innodb_bug60196.test
+++ b/mysql-test/suite/innodb/t/innodb_bug60196.test
@@ -58,7 +58,7 @@ SELECT * FROM bug_60196;
--echo # Restart server.
# Write file to make mysql-test-run.pl start up the server again
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
# Turn on reconnect
--enable_reconnect
@@ -132,7 +132,7 @@ SELECT * FROM Bug_60309;
--echo # Restart server.
# Write file to make mysql-test-run.pl start up the server again
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
# Turn on reconnect
--enable_reconnect
diff --git a/mysql-test/suite/innodb/t/innodb_defrag_stats.test b/mysql-test/suite/innodb/t/innodb_defrag_stats.test
index ef79d8d6..3730eb65 100644
--- a/mysql-test/suite/innodb/t/innodb_defrag_stats.test
+++ b/mysql-test/suite/innodb/t/innodb_defrag_stats.test
@@ -35,7 +35,7 @@ SELECT @@GLOBAL.innodb_force_recovery<2 "have background defragmentation";
# Wait for defrag_pool to be processed.
let $wait_timeout=30;
-let $wait_condition = SELECT COUNT(*)>0 FROM mysql.innodb_index_stats;
+let $wait_condition = SELECT COUNT(*)>5 FROM mysql.innodb_index_stats;
--source include/wait_condition.inc
--sorted_result
diff --git a/mysql-test/suite/innodb/t/innodb_stats_fetch.test b/mysql-test/suite/innodb/t/innodb_stats_fetch.test
index 99fc115a..d02cd3b8 100644
--- a/mysql-test/suite/innodb/t/innodb_stats_fetch.test
+++ b/mysql-test/suite/innodb/t/innodb_stats_fetch.test
@@ -96,3 +96,11 @@ SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_VIRTUAL LIMIT ROWS EXAMINED 5;
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN LIMIT ROWS EXAMINED 5;
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS LIMIT ROWS EXAMINED 5;
DROP TABLE t1;
+
+--echo #
+--echo # MDEV-33462 Disallow LOCK=NONE operation on statistics table
+--echo #
+--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
+ALTER TABLE mysql.innodb_table_stats FORCE, LOCK=NONE;
+--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
+ALTER TABLE mysql.innodb_index_stats FORCE, LOCK=NONE;
diff --git a/mysql-test/suite/innodb/t/innodb_timeout_rollback.test b/mysql-test/suite/innodb/t/innodb_timeout_rollback.test
index 44e8acdd..aa282352 100644
--- a/mysql-test/suite/innodb/t/innodb_timeout_rollback.test
+++ b/mysql-test/suite/innodb/t/innodb_timeout_rollback.test
@@ -1,4 +1,5 @@
+--source include/have_innodb.inc
--source include/innodb_rollback_on_timeout.inc
---echo End of 5.0 tests
+--echo # End of 5.0 tests
diff --git a/mysql-test/suite/innodb/t/innodb_ut_format_name.test b/mysql-test/suite/innodb/t/innodb_ut_format_name.test
deleted file mode 100644
index 6e4023c7..00000000
--- a/mysql-test/suite/innodb/t/innodb_ut_format_name.test
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Test ut_format_name()
-#
-
--- source include/have_debug.inc
--- source include/have_innodb.inc
-
-CREATE TABLE t (c INT) ENGINE=INNODB;
-
-# This will invoke test_ut_format_name() in debug builds
-
-SET @save_dbug = @@debug_dbug;
-SET debug_dbug = '+d,test_ut_format_name';
-
-DROP TABLE t;
-
-SET debug_dbug = @save_dbug;
diff --git a/mysql-test/suite/innodb/t/insert_into_empty.test b/mysql-test/suite/innodb/t/insert_into_empty.test
index baba5a14..cc631bca 100644
--- a/mysql-test/suite/innodb/t/insert_into_empty.test
+++ b/mysql-test/suite/innodb/t/insert_into_empty.test
@@ -271,6 +271,16 @@ connection default;
disconnect con1;
SELECT * FROM t1;
DROP TABLE t1;
+
+--echo #
+--echo # MDEV-33979 Disallow bulk insert operation during
+--echo # partition update statement
+--echo #
+CREATE TABLE t1(a INT KEY)ENGINE=InnoDB
+ PARTITION BY KEY(a) PARTITIONS 16;
+INSERT INTO t1 VALUES(1);
+UPDATE t1 SET a = 2 WHERE a = 1;
+DROP TABLE t1;
--echo # End of 10.6 tests
--echo #
@@ -495,3 +505,54 @@ DROP TABLE t1;
CREATE TABLE t (a CHAR CHARACTER SET utf8) ENGINE=InnoDB ROW_FORMAT=REDUNDANT;
INSERT t SELECT left(seq,1) FROM seq_1_to_43691;
DROP TABLE t;
+
+--echo #
+--echo # MDEV-32453 Bulk insert fails to apply when trigger
+--echo # does insert operation
+--echo #
+CREATE TABLE t(c INT)ENGINE=InnoDB;
+CREATE TRIGGER t2_ai AFTER INSERT ON t FOR EACH ROW SET @a:=(SELECT * FROM t);
+BEGIN;
+--error ER_SUBQUERY_NO_1_ROW
+INSERT INTO t VALUES (1),(1);
+COMMIT;
+DROP TABLE t;
+
+--echo #
+--echo # MDEV-33868 Assertion `trx->bulk_insert' failed in
+--echo # innodb_prepare_commit_versioned
+--echo #
+CREATE TABLE t (id INT) ENGINE=InnoDB;
+--replace_result $MYSQLTEST_VARDIR VARDIR
+--disable_ps2_protocol
+eval select 1 into outfile "$MYSQLTEST_VARDIR/tmp/t.outfile";
+--enable_ps2_protocol
+BEGIN;
+--replace_result $MYSQLTEST_VARDIR VARDIR
+eval LOAD DATA INFILE '$MYSQLTEST_VARDIR/tmp/t.outfile' INTO TABLE t;
+COMMIT;
+DROP TABLE t;
+--remove_file $MYSQLTEST_VARDIR/tmp/t.outfile
+
+--echo #
+--echo # MDEV-33934 Assertion `!check_foreigns' failed in
+--echo # trx_t::bulk_insert_apply_for_table(dict_table_t*)
+--echo #
+CREATE TABLE t1(f1 INT,f2 INT,KEY(f1))engine=innodb;
+BEGIN;
+INSERT INTO t1 VALUES();
+SET STATEMENT FOREIGN_KEY_CHECKS=1 FOR SELECT * FROM t1;
+COMMIT;
+DROP TABLE t1;
+
+--echo #
+--echo # MDEV-33970 Assertion `!m.first->second.is_bulk_insert()'
+--echo # failed in trx_undo_report_row_operation()
+--echo #
+CREATE TABLE t1(c1 INT,c2 CHAR) ENGINE=INNODB PARTITION BY KEY(c1) PARTITIONS 2;
+begin;
+INSERT INTO t1 VALUES(2,0);
+DELETE FROM t1;
+commit;
+DROP TABLE t1;
+--echo # End of 10.11 tests
diff --git a/mysql-test/suite/innodb/t/instant_alter_crash.test b/mysql-test/suite/innodb/t/instant_alter_crash.test
index f51f61e3..76b85b77 100644
--- a/mysql-test/suite/innodb/t/instant_alter_crash.test
+++ b/mysql-test/suite/innodb/t/instant_alter_crash.test
@@ -230,29 +230,3 @@ CHECK TABLE t2;
DROP TABLE t1,t2;
--list_files $MYSQLD_DATADIR/test
-
---echo #
---echo # MDEV-26198 Assertion `0' failed in row_log_table_apply_op during
---echo # ADD PRIMARY KEY or OPTIMIZE TABLE
---echo #
-CREATE TABLE t1(f1 year default null, f2 year default null,
- f3 text, f4 year default null, f5 year default null,
- f6 year default null, f7 year default null,
- f8 year default null)ENGINE=InnoDB ROW_FORMAT=REDUNDANT;
-INSERT INTO t1 VALUES(1, 1, 1, 1, 1, 1, 1, 1);
-ALTER TABLE t1 ADD COLUMN f9 year default null, ALGORITHM=INPLACE;
-set DEBUG_SYNC="row_log_table_apply1_before SIGNAL con1_insert WAIT_FOR con1_finish";
-send ALTER TABLE t1 ROW_FORMAT=REDUNDANT, ADD COLUMN f10 YEAR DEFAULT NULL, ALGORITHM=INPLACE;
-
-connect(con1,localhost,root,,,);
-SET DEBUG_SYNC="now WAIT_FOR con1_insert";
-INSERT IGNORE INTO t1 (f3) VALUES ( 'b' );
-INSERT IGNORE INTO t1 (f3) VALUES ( 'l' );
-SET DEBUG_SYNC="now SIGNAL con1_finish";
-
-connection default;
-reap;
-disconnect con1;
-SET DEBUG_SYNC=RESET;
-CHECK TABLE t1;
-DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/t/instant_alter_debug.test b/mysql-test/suite/innodb/t/instant_alter_debug.test
index f11d0bd0..953f7663 100644
--- a/mysql-test/suite/innodb/t/instant_alter_debug.test
+++ b/mysql-test/suite/innodb/t/instant_alter_debug.test
@@ -551,11 +551,62 @@ SET DEBUG_SYNC="now WAIT_FOR try_insert";
--error ER_LOCK_WAIT_TIMEOUT
INSERT INTO t1 VALUES(1, 2);
SET DEBUG_SYNC="now SIGNAL alter_progress";
-disconnect con1;
connection default;
reap;
DROP TABLE t1;
+
+--echo #
+--echo # MDEV-26198 Assertion `0' failed in row_log_table_apply_op during
+--echo # ADD PRIMARY KEY or OPTIMIZE TABLE
+--echo #
+CREATE TABLE t1(f1 year default null, f2 year default null,
+ f3 text, f4 year default null, f5 year default null,
+ f6 year default null, f7 year default null,
+ f8 year default null)ENGINE=InnoDB;
+INSERT INTO t1 VALUES(1, 1, 1, 1, 1, 1, 1, 1);
+ALTER TABLE t1 ADD COLUMN f9 year default null, ALGORITHM=INPLACE;
+set DEBUG_SYNC="row_log_table_apply1_before SIGNAL con1_insert WAIT_FOR con1_finish";
+send ALTER TABLE t1 ADD COLUMN f10 YEAR DEFAULT NULL, FORCE, ALGORITHM=INPLACE;
+
+connection con1;
+SET DEBUG_SYNC="now WAIT_FOR con1_insert";
+INSERT IGNORE INTO t1 (f3) VALUES ( 'b' );
+INSERT IGNORE INTO t1 (f3) VALUES ( 'l' );
+SET DEBUG_SYNC="now SIGNAL con1_finish";
+
+connection default;
+reap;
+CHECK TABLE t1;
+DROP TABLE t1;
+
+--echo #
+--echo # MDEV-19044 Alter table corrupts while applying the
+--echo # modification log
+--echo #
+CREATE TABLE t1 (
+ f1 INT,
+ f2 INT,
+ f3 char(19) CHARACTER SET utf8mb3,
+ f4 VARCHAR(500),
+ f5 TEXT)ENGINE=InnoDB;
+INSERT INTO t1 VALUES(3, 1, REPEAT('a', 2), REPEAT("b", 20),'a');
+ALTER TABLE t1 ADD COLUMN f6 INT NOT NULL, ALGORITHM=INSTANT;
+INSERT INTO t1 VALUES(1, 2, REPEAT('InnoDB', 2),
+ REPEAT("MariaDB", 20), REPEAT('a', 8000), 12);
+INSERT INTO t1 VALUES(1, 2, REPEAT('MYSQL', 2),
+ REPEAT("MariaDB", 20), REPEAT('a', 8000), 12);
+SET DEBUG_SYNC='innodb_inplace_alter_table_enter SIGNAL con1_begin WAIT_FOR con1_update';
+send ALTER TABLE t1 MODIFY COLUMN f2 INT NOT NULL, FORCE, ALGORITHM=INPLACE;
+connection con1;
+SET DEBUG_SYNC='now WAIT_FOR con1_begin';
+UPDATE t1 SET f2=204 order by f1 limit 2;
+SET DEBUG_SYNC='now SIGNAL con1_update';
+connection default;
+reap;
+disconnect con1;
SET DEBUG_SYNC=reset;
+CHECK TABLE t1;
+DROP TABLE t1;
--echo # End of 10.4 tests
diff --git a/mysql-test/suite/innodb/t/instant_alter_extend.test b/mysql-test/suite/innodb/t/instant_alter_extend.test
index 7258ba6d..636527e5 100644
--- a/mysql-test/suite/innodb/t/instant_alter_extend.test
+++ b/mysql-test/suite/innodb/t/instant_alter_extend.test
@@ -256,3 +256,16 @@ select * from t1;
check table t1;
drop database best;
+
+--echo #
+--echo # MDEV-33214 Table is getting rebuild with
+--echo # ALTER TABLE ADD COLUMN
+--echo #
+use test;
+CREATE TABLE t1(f1 INT, f2 VARCHAR(10)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
+INSERT INTO t1 VALUES(1,'abc'),(2,'def');
+ALTER TABLE t1 ADD (f3 VARCHAR(5000), f4 VARCHAR(20)), ALGORITHM=instant;
+ALTER TABLE t1 ADD f5 TEXT, ALGORITHM=INSTANT;
+DROP TABLE t1;
+
+--echo # End of 10.4 tests
diff --git a/mysql-test/suite/innodb/t/instant_alter_import.test b/mysql-test/suite/innodb/t/instant_alter_import.test
index 3a811def..fa35c582 100644
--- a/mysql-test/suite/innodb/t/instant_alter_import.test
+++ b/mysql-test/suite/innodb/t/instant_alter_import.test
@@ -83,6 +83,7 @@ flush tables t2 for export;
unlock tables;
alter table t1 import tablespace;
+--source include/restart_mysqld.inc
select * from t1;
--remove_file $MYSQLD_DATADIR/test/t1.ibd
diff --git a/mysql-test/suite/innodb/t/lock_insert_into_empty.test b/mysql-test/suite/innodb/t/lock_insert_into_empty.test
index 91d2bcdd..42409e8c 100644
--- a/mysql-test/suite/innodb/t/lock_insert_into_empty.test
+++ b/mysql-test/suite/innodb/t/lock_insert_into_empty.test
@@ -51,6 +51,7 @@ CREATE TABLE t1 (k INT PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 SET k=1;
START TRANSACTION;
INSERT INTO t1 SET k=2;
+SELECT count(*) > 0 FROM mysql.innodb_index_stats lock in share mode;
--connect (con1,localhost,root,,test)
SET innodb_lock_wait_timeout=0;
@@ -59,5 +60,6 @@ CREATE TABLE t2 (pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB
AS SELECT k FROM t1;
--disconnect con1
--connection default
-
+SET innodb_lock_wait_timeout=default;
DROP TABLE t1;
+DROP TABLE IF EXISTS t2;
diff --git a/mysql-test/suite/innodb/t/lock_isolation.test b/mysql-test/suite/innodb/t/lock_isolation.test
new file mode 100644
index 00000000..5c60f6e7
--- /dev/null
+++ b/mysql-test/suite/innodb/t/lock_isolation.test
@@ -0,0 +1,149 @@
+--source include/have_innodb.inc
+
+--echo #
+--echo # MDEV-26642 Weird SELECT view when a record is
+--echo # modified to the same value by two transactions
+--echo # MDEV-32898 Phantom rows caused by updates of PRIMARY KEY
+--echo #
+
+CREATE TABLE t(a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
+INSERT INTO t VALUES (1,1),(2,2);
+BEGIN; SELECT * FROM t LOCK IN SHARE MODE;
+--connect con_weird,localhost,root
+BEGIN;
+SELECT * FROM t;
+--connect consistent,localhost,root
+SET innodb_snapshot_isolation=ON;
+BEGIN;
+SELECT * FROM t;
+--connection default
+UPDATE t SET a=3 WHERE b=2;
+COMMIT;
+--connection consistent
+--error ER_CHECKREAD
+UPDATE t SET b=3;
+SELECT * FROM t;
+COMMIT;
+--connection con_weird
+UPDATE t SET b=3;
+SELECT * FROM t;
+COMMIT;
+--connection default
+SELECT * FROM t;
+DROP TABLE t;
+
+--echo #
+--echo # MDEV-26643 Inconsistent behaviors of UPDATE under
+--echo # READ UNCOMMITTED and READ COMMITTED isolation level
+--echo #
+
+CREATE TABLE t(a INT, b INT) ENGINE=InnoDB;
+INSERT INTO t VALUES(NULL, 1), (2, 2);
+SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
+BEGIN; UPDATE t SET a = 10;
+
+--connection consistent
+SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
+--send UPDATE t SET b = 20 WHERE a
+
+--connection default
+let $wait_condition=
+ select count(*) = 1 from information_schema.processlist
+ where state = 'Updating'
+ and info = 'UPDATE t SET b = 20 WHERE a';
+--source include/wait_condition.inc
+
+COMMIT;
+
+--connection consistent
+--reap
+SELECT * FROM t;
+
+--connection default
+TRUNCATE TABLE t;
+INSERT INTO t VALUES(NULL, 1), (2, 2);
+BEGIN; UPDATE t SET a = 10;
+
+--connection consistent
+SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
+--send UPDATE t SET b = 20 WHERE a
+
+--connection default
+let $wait_condition=
+ select count(*) = 1 from information_schema.processlist
+ where info = 'UPDATE t SET b = 20 WHERE a';
+--source include/wait_condition.inc
+
+COMMIT;
+
+--connection consistent
+--reap
+SELECT * FROM t;
+
+--connection default
+TRUNCATE TABLE t;
+INSERT INTO t VALUES(NULL, 1), (2, 2);
+BEGIN; UPDATE t SET a = 10;
+
+--connection con_weird
+SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
+send UPDATE t SET b = 20 WHERE a;
+
+--connection default
+let $wait_condition=
+ select count(*) = 1 from information_schema.processlist
+ where state = 'Updating'
+ and info = 'UPDATE t SET b = 20 WHERE a';
+--source include/wait_condition.inc
+
+SELECT * FROM t;
+COMMIT;
+
+--connection con_weird
+--reap
+COMMIT;
+
+--connection default
+SELECT * FROM t;
+DROP TABLE t;
+
+--echo #
+--echo # MDEV-33802 Weird read view after ROLLBACK of other transactions
+--echo #
+
+CREATE TABLE t(a INT PRIMARY KEY, b INT UNIQUE) ENGINE=InnoDB;
+INSERT INTO t SET a=1;
+
+BEGIN; INSERT INTO t SET a=2;
+
+--connection consistent
+START TRANSACTION WITH CONSISTENT SNAPSHOT;
+--disable_ps2_protocol
+--error ER_CHECKREAD
+SELECT * FROM t FORCE INDEX (b) FOR UPDATE;
+--enable_ps2_protocol
+
+--connection con_weird
+START TRANSACTION WITH CONSISTENT SNAPSHOT;
+send
+SELECT * FROM t FORCE INDEX (b) FOR UPDATE;
+
+--connection default
+let $wait_condition=
+ select count(*) = 1 from information_schema.processlist
+ where state = 'Sending data'
+ and info LIKE 'SELECT * FROM t %';
+--source include/wait_condition.inc
+ROLLBACK;
+
+--connection con_weird
+--reap
+SELECT * FROM t FORCE INDEX (b) FOR UPDATE;
+--disconnect con_weird
+
+--connection consistent
+SELECT * FROM t FORCE INDEX (b) FOR UPDATE;
+--disconnect consistent
+
+--connection default
+DROP TABLE t;
diff --git a/mysql-test/suite/innodb/t/log_file_name.test b/mysql-test/suite/innodb/t/log_file_name.test
index f88a13db..371d10c9 100644
--- a/mysql-test/suite/innodb/t/log_file_name.test
+++ b/mysql-test/suite/innodb/t/log_file_name.test
@@ -206,7 +206,7 @@ print FILE "\0" x 16384;
close(FILE);
EOF
---exec echo "" > $MYSQLD_DATADIR/test/u2.ibd
+--write_line "" $MYSQLD_DATADIR/test/u2.ibd
--copy_file $MYSQLD_DATADIR/test/u6.ibd $MYSQLD_DATADIR/test/u4.ibd
diff --git a/mysql-test/suite/innodb/t/log_upgrade_101_flags.test b/mysql-test/suite/innodb/t/log_upgrade_101_flags.test
new file mode 100644
index 00000000..4358ccfa
--- /dev/null
+++ b/mysql-test/suite/innodb/t/log_upgrade_101_flags.test
@@ -0,0 +1,91 @@
+--source include/have_innodb.inc
+--source include/big_test.inc
+--source include/not_embedded.inc
+call mtr.add_suppression("InnoDB: The change buffer is corrupted");
+call mtr.add_suppression("InnoDB: Tablespace size stored in header is 768 pages, but the sum of data file sizes is 384 pages");
+call mtr.add_suppression("InnoDB: adjusting FSP_SPACE_FLAGS of file");
+--source include/shutdown_mysqld.inc
+let bugdir= $MYSQLTEST_VARDIR/tmp/log_upgrade;
+--mkdir $bugdir
+--let SEARCH_FILE = $MYSQLTEST_VARDIR/log/mysqld.1.err
+--let $dirs= --innodb-data-home-dir=$bugdir --innodb-log-group-home-dir=$bugdir
+
+# Test case similar to log_upgrade.test
+perl;
+do "$ENV{MTR_SUITE_DIR}/../innodb/include/crc32.pl";
+my $polynomial = 0x82f63b78; # CRC-32C
+
+die unless open OUT, ">", "$ENV{bugdir}/ibdata1";
+binmode OUT;
+
+my $head = pack("Nx[18]", 0);
+# Add FSP_SPACE_FLAGS as 49152 (10.1.0...10.1.20), page_size = 32k
+my $body = pack("x[8]Nx[4]Nx[2]Nx[32696]", 768, 49152, 97937874);
+my $ck = mycrc32($head, 0, $polynomial) ^ mycrc32($body, 0, $polynomial);
+print OUT pack("N",$ck).$head.pack("x[12]").$body.pack("Nx[4]",$ck);
+# Dummy pages 1..6.
+print OUT chr(0) x (6 * 32768);
+# Dictionary header page (page 7).
+$head = pack("Nx[18]", 7);
+$body = pack("x[32]Nx[8]Nx[32674]", 8, 9);
+$ck = mycrc32($head, 0, $polynomial) ^ mycrc32($body, 0, $polynomial);
+print OUT pack("N",$ck).$head.pack("x[12]").$body.pack("Nx[4]",$ck);
+
+# Empty SYS_TABLES page (page 8).
+$head = pack("NNNx[8]n", 8, ~0, ~0, 17855);
+$body = pack("nnx[31]Cx[20]", 2, 124, 1);
+$body .= pack("nxnn", 0x801, 3, 116) . "infimum";
+$body .= pack("xnxnxx", 0x901, 0x803) . "supremum";
+$body .= pack("x[32632]nn", 116, 101);
+$ck = mycrc32($head, 0, $polynomial) ^ mycrc32($body, 0, $polynomial);
+print OUT pack("N",$ck).$head.pack("x[12]").$body.pack("Nx[4]",$ck);
+
+# Empty SYS_INDEXES page (page 9).
+$head = pack("NNNx[8]n", 9, ~0, ~0, 17855);
+$body = pack("nnx[31]Cx[20]", 2, 124, 3);
+$body .= pack("nxnn", 0x801, 3, 116) . "infimum";
+$body .= pack("xnxnxx", 0x901, 0x803) . "supremum";
+$body .= pack("x[32632]nn", 116, 101);
+$ck = mycrc32($head, 0, $polynomial) ^ mycrc32($body, 0, $polynomial);
+print OUT pack("N",$ck).$head.pack("x[12]").$body.pack("Nx[4]",$ck);
+
+die unless seek(OUT, 768 * 16384 - 1, 0);
+print OUT chr(0);
+close OUT or die;
+
+die unless open OUT, ">", "$ENV{bugdir}/ib_logfile0";
+binmode OUT;
+$_= pack("Nx[5]nx[5]", 1, 0x1286) . "BogoDB 4.3.2.1" . chr(0) x 478;
+print OUT $_, pack("N", mycrc32($_, 0, $polynomial));
+# checkpoint page 1 and all-zero checkpoint 2
+$_= pack("x[13]nCNNx[484]", 0x1286, 12, 2, 0x80c);
+print OUT $_, pack("N", mycrc32($_, 0, $polynomial));
+die unless seek(OUT, 0x1FFFFFFFF, 0);
+print OUT chr(0);
+close OUT or die;
+die unless open OUT, ">", "$ENV{bugdir}/ib_logfile1";
+binmode OUT;
+die unless seek(OUT, 0x800, 0); # the first 2048 bytes are unused!
+$_= pack("Nnnx[500]", 0x80000944, 12, 12);
+print OUT $_, pack("N", mycrc32($_, 0, $polynomial));
+die unless seek(OUT, 0x1FFFFFFFF, 0);
+print OUT chr(0);
+close OUT or die;
+EOF
+
+--let $restart_parameters= $dirs --innodb-force-recovery=5 --innodb-log-file-size=4m --innodb_page_size=32k --innodb_buffer_pool_size=10M
+--source include/start_mysqld.inc
+SELECT COUNT(*) FROM INFORMATION_SCHEMA.ENGINES
+WHERE engine = 'innodb'
+AND support IN ('YES', 'DEFAULT', 'ENABLED');
+--source include/shutdown_mysqld.inc
+--let SEARCH_PATTERN= InnoDB: Upgrading redo log:
+--source include/search_pattern_in_file.inc
+--let $restart_parameters= $dirs
+
+--remove_files_wildcard $bugdir
+--rmdir $bugdir
+--let $restart_parameters=
+--source include/start_mysqld.inc
+
+--echo # End of 10.5 tests
diff --git a/mysql-test/suite/innodb/t/monitor.test b/mysql-test/suite/innodb/t/monitor.test
index 77483d62..69545c9c 100644
--- a/mysql-test/suite/innodb/t/monitor.test
+++ b/mysql-test/suite/innodb/t/monitor.test
@@ -5,11 +5,11 @@
# sys_vars.innodb_monitor_enable_basic
--source include/have_innodb.inc
-# Test turn on/off the monitor counter with "all" option
-# By default, they will be off.
select name, if(enabled,'enabled','disabled') status
from information_schema.innodb_metrics;
+create temporary table orig_innodb_metrics as select name, enabled from information_schema.innodb_metrics;
+
set global innodb_monitor_disable = All;
select name from information_schema.innodb_metrics where enabled;
@@ -315,18 +315,22 @@ CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB STATS_PERSISTENT=0;
let $innodb_monitor_enable = `SELECT @@innodb_monitor_enable`;
-SELECT NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
+SELECT /*1*/ NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
LIKE 'buffer_page_written_index_leaf';
SET GLOBAL innodb_monitor_enable='module_buffer_page';
INSERT INTO t1 VALUES (1), (2), (3), (4); FLUSH TABLES t1 FOR EXPORT;
UNLOCK TABLES;
-SELECT NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
+
+let $wait_condition= select count > 0 from information_schema.innodb_metrics where name like 'buffer_page_written_index_leaf';
+source include/wait_condition.inc;
+
+SELECT /*2*/ NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
LIKE 'buffer_page_written_index_leaf';
SET GLOBAL innodb_monitor_disable='module_buffer_page';
SET GLOBAL innodb_monitor_reset_all='module_buffer_page';
-SELECT NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
+SELECT /*3*/ NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
LIKE 'buffer_page_written_index_leaf';
SET GLOBAL innodb_monitor_enable='%';
@@ -334,18 +338,22 @@ SET GLOBAL innodb_monitor_enable='%';
SET GLOBAL innodb_monitor_reset_all= '%', innodb_compression_algorithm= foo;
INSERT INTO t1 VALUES (5), (6), (7), (8); FLUSH TABLES t1 FOR EXPORT;
UNLOCK TABLES;
-SELECT NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
+
+let $wait_condition= select count > 0 from information_schema.innodb_metrics where name like 'buffer_page_written_index_leaf';
+source include/wait_condition.inc;
+
+SELECT /*4*/ NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
LIKE 'buffer_page_written_index_leaf';
SET GLOBAL innodb_monitor_disable='%';
SET GLOBAL innodb_monitor_reset_all='%';
-SELECT NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
+SELECT /*5*/ NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
LIKE 'buffer_page_written_index_leaf';
SET GLOBAL innodb_monitor_enable='ALL';
INSERT INTO t1 VALUES (9), (10), (11), (12); FLUSH TABLES t1 FOR EXPORT;
UNLOCK TABLES;
-SELECT NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
+SELECT /*6*/ NAME, COUNT > 0 FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME
LIKE 'buffer_page_written_index_leaf';
DROP TABLE t1;
@@ -462,8 +470,36 @@ DROP TABLE fl2;
DROP TABLE fl1;
DROP TABLE fl0;
---disable_warnings
-SET GLOBAL innodb_monitor_enable=default;
-SET GLOBAL innodb_monitor_disable=default;
-SET GLOBAL innodb_monitor_reset_all=default;
---enable_warnings
+set global innodb_monitor_disable = 'adaptive\\_hash\\_p%';
+set global innodb_monitor_disable = 'adaptive\\_hash\\_r%';
+set global innodb_monitor_disable = 'buffer\\_LRU\\_batch\\_n%';
+set global innodb_monitor_disable = 'buffer\\_LRU\\_batch\\_s%';
+set global innodb_monitor_disable = 'buffer\\_LRU\\_g%';
+set global innodb_monitor_disable = 'buffer\\_LRU\\_s%';
+set global innodb_monitor_disable = 'buffer\\_LRU\\_u%';
+set global innodb_monitor_disable = 'buffer\\_f%';
+set global innodb_monitor_disable = 'buffer\\_page\\_%';
+set global innodb_monitor_disable = 'c%';
+set global innodb_monitor_disable = 'ddl%';
+set global innodb_monitor_disable = 'icp%';
+set global innodb_monitor_disable = 'index\\_p%';
+set global innodb_monitor_disable = 'innodb\\_di%';
+set global innodb_monitor_disable = 'innodb\\_l%';
+set global innodb_monitor_disable = 'innodb\\_m%';
+set global innodb_monitor_disable = 'lock\\_re%';
+set global innodb_monitor_disable = 'lock\\_ta%';
+set global innodb_monitor_disable = 'log%';
+set global innodb_monitor_disable = 'm%';
+set global innodb_monitor_disable = 'p%';
+set global innodb_monitor_disable = 't%';
+set global innodb_monitor_enable = 'log\\_w%';
+set global innodb_monitor_enable = 'trx_rseg_history_len';
+set global innodb_monitor_enable = 'trx_undo_slots_cached';
+
+set global innodb_monitor_enable=default;
+set global innodb_monitor_disable=default;
+set global innodb_monitor_reset_all=default;
+
+select name, orig.enabled, new.enabled from
+ orig_innodb_metrics orig join information_schema.innodb_metrics new using(name)
+ where orig.enabled != new.enabled;
diff --git a/mysql-test/suite/innodb/t/purge_secondary.test b/mysql-test/suite/innodb/t/purge_secondary.test
index 8a38a418..ec02c726 100644
--- a/mysql-test/suite/innodb/t/purge_secondary.test
+++ b/mysql-test/suite/innodb/t/purge_secondary.test
@@ -4,10 +4,6 @@
SET @save_stats_persistent = @@GLOBAL.innodb_stats_persistent;
SET GLOBAL innodb_stats_persistent = 0;
---disable_query_log
-call mtr.add_suppression("InnoDB: Difficult to find free blocks in the buffer pool");
---enable_query_log
-
CREATE TABLE t1 (
a SERIAL, b CHAR(255) NOT NULL DEFAULT '', c BOOLEAN DEFAULT false,
l LINESTRING NOT NULL DEFAULT ST_linefromtext('linestring(448 -689,
diff --git a/mysql-test/suite/innodb/t/rename_table.test b/mysql-test/suite/innodb/t/rename_table.test
index 654f8809..a6181342 100644
--- a/mysql-test/suite/innodb/t/rename_table.test
+++ b/mysql-test/suite/innodb/t/rename_table.test
@@ -32,17 +32,22 @@ DROP DATABASE abc_def;
DROP DATABASE abc_def2;
-call mtr.add_suppression("InnoDB: (Operating system error|Error number \\d+ means|Cannot rename file)");
+call mtr.add_suppression("InnoDB: Cannot rename '.*t1.ibd' to '.*non_existing_db.*' because the target schema directory doesn't exist");
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+INSERT INTO t1 VALUES(100);
--replace_result "\\" "/"
--error ER_ERROR_ON_RENAME
RENAME TABLE t1 TO non_existing_db.t1;
---let SEARCH_PATTERN= \[ERROR\] InnoDB: Cannot rename file '.*t1\.ibd' to '.*non_existing_db
+--let SEARCH_PATTERN= \[ERROR\] InnoDB: Cannot rename '.*t1\.ibd' to '.*non_existing_db
let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err;
--source include/search_pattern_in_file.inc
+SET GLOBAL innodb_fast_shutdown=2;
+--source include/restart_mysqld.inc
+
+SELECT * FROM t1;
# Cleanup
DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/t/row_size_error_log_warnings_3.test b/mysql-test/suite/innodb/t/row_size_error_log_warnings_3.test
index 24029a48..47fedc52 100644
--- a/mysql-test/suite/innodb/t/row_size_error_log_warnings_3.test
+++ b/mysql-test/suite/innodb/t/row_size_error_log_warnings_3.test
@@ -85,3 +85,19 @@ CREATE TABLE t1(f1 char(200), f2 char(200), f3 char(200),
f29(10), f30(10), f31(10), f32(10),
f33(10)))
ENGINE=InnoDB;
+
+--echo #
+--echo # MDEV-31161 Assertion failures upon adding a too long key
+--echo # to table with COMPRESSED row format
+--echo #
+--let $page_size= `SELECT @@GLOBAL.innodb_page_size`
+CREATE TABLE t1(pk INT PRIMARY KEY, f1 INT, f2 TEXT)ENGINE=InnoDB ROW_FORMAT=COMPRESSED;
+INSERT INTO t1 (pk) VALUES (1);
+let $error_code = 0;
+if ($page_size == 4096) {
+let $error_code = ER_TOO_BIG_ROWSIZE;
+}
+
+--error $error_code
+ALTER TABLE t1 ADD KEY (f1), ADD KEY (f2(1000));
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/t/temporary_table.test b/mysql-test/suite/innodb/t/temporary_table.test
index b09ff7c7..ee1474bb 100644
--- a/mysql-test/suite/innodb/t/temporary_table.test
+++ b/mysql-test/suite/innodb/t/temporary_table.test
@@ -135,7 +135,7 @@ AND support IN ('YES', 'DEFAULT', 'ENABLED');
# We cannot use include/restart_mysqld.inc in this particular test,
# because SHOW STATUS would fail due to unwritable (nonexistent) tmpdir.
--source include/shutdown_mysqld.inc
---exec echo "restart: --tmpdir=/dev/null/$MYSQL_TMP_DIR --skip-innodb-fast-shutdown" > $_expect_file_name
+--write_line "restart: --tmpdir=/dev/null/$MYSQL_TMP_DIR --skip-innodb-fast-shutdown" $_expect_file_name
--enable_reconnect
--disable_result_log
--disable_query_log
diff --git a/mysql-test/suite/innodb/t/undo_space_dblwr.test b/mysql-test/suite/innodb/t/undo_space_dblwr.test
index b6fd6738..52b19a4b 100644
--- a/mysql-test/suite/innodb/t/undo_space_dblwr.test
+++ b/mysql-test/suite/innodb/t/undo_space_dblwr.test
@@ -9,19 +9,19 @@ show variables like 'innodb_doublewrite';
create table t1(f1 int not null, f2 int not null)engine=innodb;
insert into t1 values (1, 1);
---source include/wait_all_purged.inc
+# Slow shutdown and restart to make sure ibuf merge is finished
+SET GLOBAL innodb_fast_shutdown = 0;
+let $shutdown_timeout=;
+let $restart_parameters=--debug_dbug=+d,ib_log_checkpoint_avoid_hard --innodb_flush_sync=0;
+--source include/restart_mysqld.inc
-set GLOBAL innodb_log_checkpoint_now=1;
--source ../include/no_checkpoint_start.inc
-
--echo # Make the first page dirty for undo tablespace
set global innodb_saved_page_number_debug = 0;
set global innodb_fil_make_page_dirty_debug = 1;
-SET GLOBAL innodb_max_dirty_pages_pct_lwm=0.0;
-SET GLOBAL innodb_max_dirty_pages_pct=0.0;
+SET GLOBAL innodb_buf_flush_list_now = 1;
-sleep 1;
--let CLEANUP_IF_CHECKPOINT=drop table t1;
--source ../include/no_checkpoint_end.inc
diff --git a/mysql-test/suite/innodb/t/undo_truncate.test b/mysql-test/suite/innodb/t/undo_truncate.test
index 18cc4f36..9abf08ff 100644
--- a/mysql-test/suite/innodb/t/undo_truncate.test
+++ b/mysql-test/suite/innodb/t/undo_truncate.test
@@ -13,7 +13,7 @@ call mtr.add_suppression("InnoDB: Trying to delete tablespace.*pending operation
# Re-create the undo log tablespaces after slow shutdown
SET GLOBAL innodb_fast_shutdown=0;
-let $restart_parameters="--innodb_undo_tablespaces=2";
+let $restart_parameters=--innodb_undo_tablespaces=2;
--source include/restart_mysqld.inc
SET GLOBAL innodb_undo_log_truncate = 0;
@@ -46,6 +46,7 @@ connection con1; reap; send delete from t1;
connection con2; reap; delete from t2;
connection con1; reap;
+SET GLOBAL innodb_max_undo_log_size = @@GLOBAL.innodb_page_size * 4294967296;
SET GLOBAL innodb_undo_log_truncate = 1;
commit; disconnect con1;
connection con2; commit; disconnect con2;
@@ -57,6 +58,8 @@ let $trx_before= `SHOW ENGINE INNODB STATUS`;
let $trx_before= `select substr('$trx_before',9)+2`;
SET GLOBAL innodb_max_purge_lag_wait=0;
+SET GLOBAL innodb_max_undo_log_size=DEFAULT;
+SET GLOBAL innodb_max_purge_lag_wait=0;
set global innodb_fast_shutdown=0;
let $restart_parameters=;
--source include/restart_mysqld.inc
diff --git a/mysql-test/suite/innodb/t/undo_truncate_recover.test b/mysql-test/suite/innodb/t/undo_truncate_recover.test
index 148c3f93..988b28f7 100644
--- a/mysql-test/suite/innodb/t/undo_truncate_recover.test
+++ b/mysql-test/suite/innodb/t/undo_truncate_recover.test
@@ -13,7 +13,7 @@
# Re-create the undo log tablespaces after slow shutdown
SET GLOBAL innodb_fast_shutdown=0;
-let $restart_parameters="--innodb_undo_tablespaces=2";
+let $restart_parameters=--innodb_undo_tablespaces=2;
--source include/restart_mysqld.inc
SET GLOBAL innodb_undo_log_truncate = 1;
diff --git a/mysql-test/suite/innodb_fts/r/create,orig.rdiff b/mysql-test/suite/innodb_fts/r/create,orig.rdiff
new file mode 100644
index 00000000..e7191646
--- /dev/null
+++ b/mysql-test/suite/innodb_fts/r/create,orig.rdiff
@@ -0,0 +1,11 @@
+--- create.result
++++ create.reject
+@@ -207,7 +207,7 @@
+ UNIQUE KEY `FTS_DOC_ID_INDEX` (`FTS_DOC_ID` DESC)
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+ ALTER TABLE t1 ADD FULLTEXT INDEX(b), ALGORITHM=INPLACE;
+-ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Not implemented for system-versioned operations. Try ALGORITHM=COPY
++ERROR HY000: Index 'FTS_DOC_ID_INDEX' is of wrong type for an InnoDB FULLTEXT index
+ ALTER TABLE t1 ADD FULLTEXT INDEX(b), ALGORITHM=COPY;
+ ERROR HY000: Index 'FTS_DOC_ID_INDEX' is of wrong type for an InnoDB FULLTEXT index
+ DROP TABLE t1;
diff --git a/mysql-test/suite/innodb_fts/r/create.result b/mysql-test/suite/innodb_fts/r/create.result
index 4334344a..04fc2019 100644
--- a/mysql-test/suite/innodb_fts/r/create.result
+++ b/mysql-test/suite/innodb_fts/r/create.result
@@ -207,7 +207,7 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `FTS_DOC_ID_INDEX` (`FTS_DOC_ID` DESC)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ADD FULLTEXT INDEX(b), ALGORITHM=INPLACE;
-ERROR HY000: Index 'FTS_DOC_ID_INDEX' is of wrong type for an InnoDB FULLTEXT index
+ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Not implemented for system-versioned operations. Try ALGORITHM=COPY
ALTER TABLE t1 ADD FULLTEXT INDEX(b), ALGORITHM=COPY;
ERROR HY000: Index 'FTS_DOC_ID_INDEX' is of wrong type for an InnoDB FULLTEXT index
DROP TABLE t1;
diff --git a/mysql-test/suite/innodb_fts/r/foreign_key_update.result b/mysql-test/suite/innodb_fts/r/foreign_key_update.result
index f2d47da7..87c21c0b 100644
--- a/mysql-test/suite/innodb_fts/r/foreign_key_update.result
+++ b/mysql-test/suite/innodb_fts/r/foreign_key_update.result
@@ -32,3 +32,15 @@ database
database
DROP TABLE t1_fk;
DROP TABLE t1;
+#
+# MDEV-32346 Assertion failure sym_node->table != NULL
+# in pars_retrieve_table_def on UPDATE
+#
+CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
+CREATE TABLE t2 (a INT, b TEXT, FOREIGN KEY(a) REFERENCES t1(a),
+FULLTEXT (b))ENGINE=InnoDB;
+INSERT INTO t1 SET a=1;
+ALTER TABLE t2 DISCARD TABLESPACE;
+UPDATE t1 SET a=2;
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t1` (`a`))
+DROP TABLE t2,t1;
diff --git a/mysql-test/suite/innodb_fts/r/innodb-fts-ddl,vers.rdiff b/mysql-test/suite/innodb_fts/r/innodb-fts-ddl,vers.rdiff
new file mode 100644
index 00000000..d46275ff
--- /dev/null
+++ b/mysql-test/suite/innodb_fts/r/innodb-fts-ddl,vers.rdiff
@@ -0,0 +1,57 @@
+--- innodb-fts-ddl.result
++++ innodb-fts-ddl.reject
+@@ -11,8 +11,10 @@
+ ('MySQL vs. YourSQL','In the following database comparison ...'),
+ ('MySQL Security','When configured properly, MySQL ...');
+ ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body), ALGORITHM=NOCOPY;
+-ERROR 0A000: ALGORITHM=NOCOPY is not supported for this operation. Try ALGORITHM=INPLACE
+-ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body), ALGORITHM=INPLACE;
++ERROR 0A000: ALGORITHM=NOCOPY is not supported. Reason: Not implemented for system-versioned operations. Try ALGORITHM=COPY
++ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body);
++affected rows: 6
++info: Records: 6 Duplicates: 0 Warnings: 0
+ SELECT * FROM fts_test WHERE MATCH (title, body)
+ AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE);
+ id title body
+@@ -26,7 +28,9 @@
+ ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
+ ('MySQL vs. YourSQL','In the following database comparison ...'),
+ ('MySQL Security','When configured properly, MySQL ...');
+-ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body), ALGORITHM=NOCOPY;
++ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body);
++affected rows: 12
++info: Records: 12 Duplicates: 0 Warnings: 0
+ SELECT * FROM fts_test WHERE MATCH (title, body)
+ AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE);
+ id title body
+@@ -76,8 +80,10 @@
+ ('MySQL vs. YourSQL','In the following database comparison ...'),
+ ('MySQL Security','When configured properly, MySQL ...');
+ CREATE FULLTEXT INDEX idx on fts_test (title, body) LOCK=NONE;
+-ERROR 0A000: LOCK=NONE is not supported. Reason: Fulltext index creation requires a lock. Try LOCK=SHARED
+-ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body), ALGORITHM=NOCOPY;
++ERROR 0A000: LOCK=NONE is not supported. Reason: Not implemented for system-versioned operations. Try LOCK=SHARED
++ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body);
++affected rows: 6
++info: Records: 6 Duplicates: 0 Warnings: 0
+ ALTER TABLE fts_test ROW_FORMAT=REDUNDANT, LOCK=NONE;
+ ERROR 0A000: LOCK=NONE is not supported. Reason: Fulltext index creation requires a lock. Try LOCK=SHARED
+ ALTER TABLE fts_test ROW_FORMAT=REDUNDANT;
+@@ -162,7 +168,7 @@
+ (20, 'MySQL Security','When configured properly, MySQL ...');
+ ALTER TABLE articles ADD FULLTEXT INDEX idx (title),
+ ADD FULLTEXT INDEX idx3 (title), ALGORITHM=INPLACE;
+-ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: InnoDB presently supports one FULLTEXT index creation at a time. Try ALGORITHM=COPY
++ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Not implemented for system-versioned operations. Try ALGORITHM=COPY
+ ALTER TABLE articles ADD FULLTEXT INDEX idx (title),
+ ADD FULLTEXT INDEX idx3 (title);
+ affected rows: 6
+@@ -274,7 +280,7 @@
+ call mtr.add_suppression("InnoDB: Failed to create");
+ CREATE TABLE t1(a TEXT, FTS_DOC_ID BIGINT UNSIGNED NOT NULL UNIQUE) ENGINE=InnoDB;
+ ALTER TABLE t1 ADD FULLTEXT(a), ALGORITHM=INPLACE;
+-ERROR HY000: Got error 11 "Resource temporarily unavailable" from storage engine InnoDB
++ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Not implemented for system-versioned operations. Try ALGORITHM=COPY
+ DROP TABLE t1;
+ CREATE TABLE t1 (a VARCHAR(3)) ENGINE=InnoDB;
+ ALTER TABLE t1 ADD FULLTEXT KEY(a), ADD COLUMN b VARCHAR(3), ADD FULLTEXT KEY(b);
diff --git a/mysql-test/suite/innodb_fts/r/innodb-fts-ddl,vers_trx.rdiff b/mysql-test/suite/innodb_fts/r/innodb-fts-ddl,vers_trx.rdiff
new file mode 100644
index 00000000..d46275ff
--- /dev/null
+++ b/mysql-test/suite/innodb_fts/r/innodb-fts-ddl,vers_trx.rdiff
@@ -0,0 +1,57 @@
+--- innodb-fts-ddl.result
++++ innodb-fts-ddl.reject
+@@ -11,8 +11,10 @@
+ ('MySQL vs. YourSQL','In the following database comparison ...'),
+ ('MySQL Security','When configured properly, MySQL ...');
+ ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body), ALGORITHM=NOCOPY;
+-ERROR 0A000: ALGORITHM=NOCOPY is not supported for this operation. Try ALGORITHM=INPLACE
+-ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body), ALGORITHM=INPLACE;
++ERROR 0A000: ALGORITHM=NOCOPY is not supported. Reason: Not implemented for system-versioned operations. Try ALGORITHM=COPY
++ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body);
++affected rows: 6
++info: Records: 6 Duplicates: 0 Warnings: 0
+ SELECT * FROM fts_test WHERE MATCH (title, body)
+ AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE);
+ id title body
+@@ -26,7 +28,9 @@
+ ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
+ ('MySQL vs. YourSQL','In the following database comparison ...'),
+ ('MySQL Security','When configured properly, MySQL ...');
+-ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body), ALGORITHM=NOCOPY;
++ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body);
++affected rows: 12
++info: Records: 12 Duplicates: 0 Warnings: 0
+ SELECT * FROM fts_test WHERE MATCH (title, body)
+ AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE);
+ id title body
+@@ -76,8 +80,10 @@
+ ('MySQL vs. YourSQL','In the following database comparison ...'),
+ ('MySQL Security','When configured properly, MySQL ...');
+ CREATE FULLTEXT INDEX idx on fts_test (title, body) LOCK=NONE;
+-ERROR 0A000: LOCK=NONE is not supported. Reason: Fulltext index creation requires a lock. Try LOCK=SHARED
+-ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body), ALGORITHM=NOCOPY;
++ERROR 0A000: LOCK=NONE is not supported. Reason: Not implemented for system-versioned operations. Try LOCK=SHARED
++ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body);
++affected rows: 6
++info: Records: 6 Duplicates: 0 Warnings: 0
+ ALTER TABLE fts_test ROW_FORMAT=REDUNDANT, LOCK=NONE;
+ ERROR 0A000: LOCK=NONE is not supported. Reason: Fulltext index creation requires a lock. Try LOCK=SHARED
+ ALTER TABLE fts_test ROW_FORMAT=REDUNDANT;
+@@ -162,7 +168,7 @@
+ (20, 'MySQL Security','When configured properly, MySQL ...');
+ ALTER TABLE articles ADD FULLTEXT INDEX idx (title),
+ ADD FULLTEXT INDEX idx3 (title), ALGORITHM=INPLACE;
+-ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: InnoDB presently supports one FULLTEXT index creation at a time. Try ALGORITHM=COPY
++ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Not implemented for system-versioned operations. Try ALGORITHM=COPY
+ ALTER TABLE articles ADD FULLTEXT INDEX idx (title),
+ ADD FULLTEXT INDEX idx3 (title);
+ affected rows: 6
+@@ -274,7 +280,7 @@
+ call mtr.add_suppression("InnoDB: Failed to create");
+ CREATE TABLE t1(a TEXT, FTS_DOC_ID BIGINT UNSIGNED NOT NULL UNIQUE) ENGINE=InnoDB;
+ ALTER TABLE t1 ADD FULLTEXT(a), ALGORITHM=INPLACE;
+-ERROR HY000: Got error 11 "Resource temporarily unavailable" from storage engine InnoDB
++ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Not implemented for system-versioned operations. Try ALGORITHM=COPY
+ DROP TABLE t1;
+ CREATE TABLE t1 (a VARCHAR(3)) ENGINE=InnoDB;
+ ALTER TABLE t1 ADD FULLTEXT KEY(a), ADD COLUMN b VARCHAR(3), ADD FULLTEXT KEY(b);
diff --git a/mysql-test/suite/innodb_fts/r/innodb-fts-fic,vers.rdiff b/mysql-test/suite/innodb_fts/r/innodb-fts-fic,vers.rdiff
new file mode 100644
index 00000000..f9ba2177
--- /dev/null
+++ b/mysql-test/suite/innodb_fts/r/innodb-fts-fic,vers.rdiff
@@ -0,0 +1,10 @@
+--- innodb-fts-fic.result
++++ innodb-fts-fic.reject
+@@ -172,7 +172,6 @@
+ (1, 'MySQL Tutorial','DBMS stands for DataBase ...'),
+ (2, 'How To Use MySQL Well','After you went through a ...');
+ CREATE FULLTEXT INDEX idx ON wp(title, text);
+-ERROR HY000: Column 'FTS_DOC_ID' is of wrong type for an InnoDB FULLTEXT index
+ DROP TABLE wp;
+ CREATE TABLE wp(
+ FTS_DOC_ID bigint unsigned PRIMARY KEY,
diff --git a/mysql-test/suite/innodb_fts/r/innodb-fts-fic,vers_trx.rdiff b/mysql-test/suite/innodb_fts/r/innodb-fts-fic,vers_trx.rdiff
new file mode 100644
index 00000000..f9ba2177
--- /dev/null
+++ b/mysql-test/suite/innodb_fts/r/innodb-fts-fic,vers_trx.rdiff
@@ -0,0 +1,10 @@
+--- innodb-fts-fic.result
++++ innodb-fts-fic.reject
+@@ -172,7 +172,6 @@
+ (1, 'MySQL Tutorial','DBMS stands for DataBase ...'),
+ (2, 'How To Use MySQL Well','After you went through a ...');
+ CREATE FULLTEXT INDEX idx ON wp(title, text);
+-ERROR HY000: Column 'FTS_DOC_ID' is of wrong type for an InnoDB FULLTEXT index
+ DROP TABLE wp;
+ CREATE TABLE wp(
+ FTS_DOC_ID bigint unsigned PRIMARY KEY,
diff --git a/mysql-test/suite/innodb_fts/r/misc_debug,vers.rdiff b/mysql-test/suite/innodb_fts/r/misc_debug,vers.rdiff
new file mode 100644
index 00000000..69294a5a
--- /dev/null
+++ b/mysql-test/suite/innodb_fts/r/misc_debug,vers.rdiff
@@ -0,0 +1,66 @@
+--- misc_debug.result
++++ misc_debug.reject
+@@ -7,14 +7,14 @@
+ SET @saved_debug_dbug = @@SESSION.debug_dbug;
+ SET SESSION debug_dbug="+d,ib_dict_create_index_tree_fail";
+ CREATE FULLTEXT INDEX idx ON articles(body);
+-ERROR HY000: Out of memory.
++ERROR HY000: Can't create table `test`.`articles` (errno: 128 "Out of memory in engine")
+ SET SESSION debug_dbug=@saved_debug_dbug;
+ ALTER TABLE articles STATS_PERSISTENT=DEFAULT;
+ DROP TABLE articles;
+ CREATE TABLE t (a INT, b TEXT) engine=innodb;
+ SET debug_dbug='+d,alter_table_rollback_new_index';
+-ALTER TABLE t ADD FULLTEXT INDEX (b(64));
+-ERROR HY000: Unknown error
++ALTER TABLE t ADD FULLTEXT INDEX (b(64)), ALGORITHM=INPLACE;
++ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Not implemented for system-versioned operations. Try ALGORITHM=COPY
+ SET SESSION debug_dbug=@saved_debug_dbug;
+ DROP TABLE t;
+ CREATE TABLE t1 (pk INT, a VARCHAR(8), PRIMARY KEY(pk),
+@@ -28,32 +28,6 @@
+ DROP TABLE t2, t1;
+ SET SESSION debug_dbug=@saved_debug_dbug;
+ #
+-# MDEV-25200 Index count mismatch due to aborted FULLTEXT INDEX
+-#
+-CREATE TABLE t1(a INT, b TEXT, c TEXT, FULLTEXT INDEX(b)) ENGINE=InnoDB;
+-INSERT INTO t1 VALUES(1, "test", "test_1");
+-connect con1,localhost,root,,test;
+-SET DEBUG_DBUG="+d,innodb_OOM_inplace_alter";
+-SET DEBUG_SYNC='innodb_commit_inplace_alter_table_enter SIGNAL s2 WAIT_FOR g2';
+-ALTER TABLE t1 ADD FULLTEXT(c);
+-connection default;
+-SET DEBUG_SYNC='now WAIT_FOR s2';
+-START TRANSACTION;
+-SELECT * FROM t1;
+-a b c
+-1 test test_1
+-SET DEBUG_SYNC='now SIGNAL g2';
+-connection con1;
+-ERROR HY000: Out of memory.
+-disconnect con1;
+-connection default;
+-SET DEBUG_SYNC=RESET;
+-ALTER TABLE t1 ADD bl INT AS (LENGTH(b)) VIRTUAL;
+-CHECK TABLE t1;
+-Table Op Msg_type Msg_text
+-test.t1 check status OK
+-DROP TABLE t1;
+-#
+ # MDEV-25663 Double free of transaction during TRUNCATE
+ #
+ call mtr.add_suppression("InnoDB: \\(Too many concurrent transactions\\)");
+@@ -65,12 +39,3 @@
+ SET debug_dbug=@saved_debug_dbug;
+ DROP TABLE t1;
+ # End of 10.3 tests
+-CREATE TABLE t1(f1 INT NOT NULL, f2 CHAR(100))ENGINE=InnoDB;
+-SET DEBUG_DBUG="+d,stats_lock_fail";
+-ALTER TABLE t1 ADD FULLTEXT(f2);
+-ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+-SET debug_dbug=@saved_debug_dbug;
+-ALTER TABLE t1 DISCARD TABLESPACE;
+-ALTER TABLE t1 ADD FULLTEXT(f2);
+-ERROR HY000: Tablespace has been discarded for table `t1`
+-DROP TABLE t1;
diff --git a/mysql-test/suite/innodb_fts/r/misc_debug,vers_trx.rdiff b/mysql-test/suite/innodb_fts/r/misc_debug,vers_trx.rdiff
new file mode 100644
index 00000000..69294a5a
--- /dev/null
+++ b/mysql-test/suite/innodb_fts/r/misc_debug,vers_trx.rdiff
@@ -0,0 +1,66 @@
+--- misc_debug.result
++++ misc_debug.reject
+@@ -7,14 +7,14 @@
+ SET @saved_debug_dbug = @@SESSION.debug_dbug;
+ SET SESSION debug_dbug="+d,ib_dict_create_index_tree_fail";
+ CREATE FULLTEXT INDEX idx ON articles(body);
+-ERROR HY000: Out of memory.
++ERROR HY000: Can't create table `test`.`articles` (errno: 128 "Out of memory in engine")
+ SET SESSION debug_dbug=@saved_debug_dbug;
+ ALTER TABLE articles STATS_PERSISTENT=DEFAULT;
+ DROP TABLE articles;
+ CREATE TABLE t (a INT, b TEXT) engine=innodb;
+ SET debug_dbug='+d,alter_table_rollback_new_index';
+-ALTER TABLE t ADD FULLTEXT INDEX (b(64));
+-ERROR HY000: Unknown error
++ALTER TABLE t ADD FULLTEXT INDEX (b(64)), ALGORITHM=INPLACE;
++ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Not implemented for system-versioned operations. Try ALGORITHM=COPY
+ SET SESSION debug_dbug=@saved_debug_dbug;
+ DROP TABLE t;
+ CREATE TABLE t1 (pk INT, a VARCHAR(8), PRIMARY KEY(pk),
+@@ -28,32 +28,6 @@
+ DROP TABLE t2, t1;
+ SET SESSION debug_dbug=@saved_debug_dbug;
+ #
+-# MDEV-25200 Index count mismatch due to aborted FULLTEXT INDEX
+-#
+-CREATE TABLE t1(a INT, b TEXT, c TEXT, FULLTEXT INDEX(b)) ENGINE=InnoDB;
+-INSERT INTO t1 VALUES(1, "test", "test_1");
+-connect con1,localhost,root,,test;
+-SET DEBUG_DBUG="+d,innodb_OOM_inplace_alter";
+-SET DEBUG_SYNC='innodb_commit_inplace_alter_table_enter SIGNAL s2 WAIT_FOR g2';
+-ALTER TABLE t1 ADD FULLTEXT(c);
+-connection default;
+-SET DEBUG_SYNC='now WAIT_FOR s2';
+-START TRANSACTION;
+-SELECT * FROM t1;
+-a b c
+-1 test test_1
+-SET DEBUG_SYNC='now SIGNAL g2';
+-connection con1;
+-ERROR HY000: Out of memory.
+-disconnect con1;
+-connection default;
+-SET DEBUG_SYNC=RESET;
+-ALTER TABLE t1 ADD bl INT AS (LENGTH(b)) VIRTUAL;
+-CHECK TABLE t1;
+-Table Op Msg_type Msg_text
+-test.t1 check status OK
+-DROP TABLE t1;
+-#
+ # MDEV-25663 Double free of transaction during TRUNCATE
+ #
+ call mtr.add_suppression("InnoDB: \\(Too many concurrent transactions\\)");
+@@ -65,12 +39,3 @@
+ SET debug_dbug=@saved_debug_dbug;
+ DROP TABLE t1;
+ # End of 10.3 tests
+-CREATE TABLE t1(f1 INT NOT NULL, f2 CHAR(100))ENGINE=InnoDB;
+-SET DEBUG_DBUG="+d,stats_lock_fail";
+-ALTER TABLE t1 ADD FULLTEXT(f2);
+-ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+-SET debug_dbug=@saved_debug_dbug;
+-ALTER TABLE t1 DISCARD TABLESPACE;
+-ALTER TABLE t1 ADD FULLTEXT(f2);
+-ERROR HY000: Tablespace has been discarded for table `t1`
+-DROP TABLE t1;
diff --git a/mysql-test/suite/innodb_fts/r/sync_ddl,vers.rdiff b/mysql-test/suite/innodb_fts/r/sync_ddl,vers.rdiff
new file mode 100644
index 00000000..7834e04c
--- /dev/null
+++ b/mysql-test/suite/innodb_fts/r/sync_ddl,vers.rdiff
@@ -0,0 +1,12 @@
+--- sync_ddl.result
++++ sync_ddl.reject
+@@ -100,7 +100,7 @@
+ ADD COLUMN id2 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ DROP INDEX idx1,
+ ADD FULLTEXT INDEX idx2(value);
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 0
++affected rows: 2
++info: Records: 2 Duplicates: 0 Warnings: 0
+ DROP TABLE t1;
+ SET GLOBAL debug_dbug = @save_debug;
diff --git a/mysql-test/suite/innodb_fts/r/sync_ddl,vers_trx.rdiff b/mysql-test/suite/innodb_fts/r/sync_ddl,vers_trx.rdiff
new file mode 100644
index 00000000..7834e04c
--- /dev/null
+++ b/mysql-test/suite/innodb_fts/r/sync_ddl,vers_trx.rdiff
@@ -0,0 +1,12 @@
+--- sync_ddl.result
++++ sync_ddl.reject
+@@ -100,7 +100,7 @@
+ ADD COLUMN id2 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ DROP INDEX idx1,
+ ADD FULLTEXT INDEX idx2(value);
+-affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 0
++affected rows: 2
++info: Records: 2 Duplicates: 0 Warnings: 0
+ DROP TABLE t1;
+ SET GLOBAL debug_dbug = @save_debug;
diff --git a/mysql-test/suite/innodb_fts/r/sync_ddl.result b/mysql-test/suite/innodb_fts/r/sync_ddl.result
index 441954dc..5ebe1575 100644
--- a/mysql-test/suite/innodb_fts/r/sync_ddl.result
+++ b/mysql-test/suite/innodb_fts/r/sync_ddl.result
@@ -99,7 +99,8 @@ ALTER TABLE t1
DROP COLUMN id1,
ADD COLUMN id2 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
DROP INDEX idx1,
-ADD FULLTEXT INDEX idx2(value),
-ALGORITHM=INPLACE;
+ADD FULLTEXT INDEX idx2(value);
+affected rows: 0
+info: Records: 0 Duplicates: 0 Warnings: 0
DROP TABLE t1;
SET GLOBAL debug_dbug = @save_debug;
diff --git a/mysql-test/suite/innodb_fts/t/create.test b/mysql-test/suite/innodb_fts/t/create.test
index e6a7e993..9d88c1ed 100644
--- a/mysql-test/suite/innodb_fts/t/create.test
+++ b/mysql-test/suite/innodb_fts/t/create.test
@@ -131,8 +131,14 @@ ENGINE=InnoDB;
CREATE TABLE t1(a INT PRIMARY KEY, b TEXT, FTS_DOC_ID BIGINT UNSIGNED NOT NULL,
UNIQUE KEY FTS_DOC_ID_INDEX(FTS_DOC_ID DESC)) ENGINE=InnoDB;
SHOW CREATE TABLE t1;
+if ($MTR_COMBINATION_ORIG) {
--error ER_INNODB_FT_WRONG_DOCID_INDEX
ALTER TABLE t1 ADD FULLTEXT INDEX(b), ALGORITHM=INPLACE;
+}
+if (!$MTR_COMBINATION_ORIG) {
+--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
+ALTER TABLE t1 ADD FULLTEXT INDEX(b), ALGORITHM=INPLACE;
+}
--error ER_INNODB_FT_WRONG_DOCID_INDEX
ALTER TABLE t1 ADD FULLTEXT INDEX(b), ALGORITHM=COPY;
DROP TABLE t1;
diff --git a/mysql-test/suite/innodb_fts/t/foreign_key_update.test b/mysql-test/suite/innodb_fts/t/foreign_key_update.test
index 1f74e640..8a64ac33 100644
--- a/mysql-test/suite/innodb_fts/t/foreign_key_update.test
+++ b/mysql-test/suite/innodb_fts/t/foreign_key_update.test
@@ -32,3 +32,16 @@ SELECT * FROM t1_fk WHERE MATCH(a) AGAINST('database');
DROP TABLE t1_fk;
DROP TABLE t1;
+
+--echo #
+--echo # MDEV-32346 Assertion failure sym_node->table != NULL
+--echo # in pars_retrieve_table_def on UPDATE
+--echo #
+CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
+CREATE TABLE t2 (a INT, b TEXT, FOREIGN KEY(a) REFERENCES t1(a),
+ FULLTEXT (b))ENGINE=InnoDB;
+INSERT INTO t1 SET a=1;
+ALTER TABLE t2 DISCARD TABLESPACE;
+--error ER_ROW_IS_REFERENCED_2
+UPDATE t1 SET a=2;
+DROP TABLE t2,t1;
diff --git a/mysql-test/suite/innodb_fts/t/innodb-fts-ddl.test b/mysql-test/suite/innodb_fts/t/innodb-fts-ddl.test
index cef8df2d..11d2d493 100644
--- a/mysql-test/suite/innodb_fts/t/innodb-fts-ddl.test
+++ b/mysql-test/suite/innodb_fts/t/innodb-fts-ddl.test
@@ -20,11 +20,20 @@ INSERT INTO fts_test (title,body) VALUES
('MySQL Security','When configured properly, MySQL ...');
# Table does rebuild when fts index builds for the first time
+# Create the FTS index
+
+if ($MTR_COMBINATION_ORIG) {
--error ER_ALTER_OPERATION_NOT_SUPPORTED
ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body), ALGORITHM=NOCOPY;
-
-# Create the FTS index
ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body), ALGORITHM=INPLACE;
+}
+if (!$MTR_COMBINATION_ORIG) {
+--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
+ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body), ALGORITHM=NOCOPY;
+--enable_info
+ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body);
+--disable_info
+}
# Select word "tutorial" in the table
SELECT * FROM fts_test WHERE MATCH (title, body)
@@ -43,7 +52,14 @@ INSERT INTO fts_test (title,body) VALUES
('MySQL Security','When configured properly, MySQL ...');
# FTS_DOC_ID hidden column and FTS_DOC_ID index exist
+if ($MTR_COMBINATION_ORIG) {
ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body), ALGORITHM=NOCOPY;
+}
+if (!$MTR_COMBINATION_ORIG) {
+--enable_info
+ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body);
+--disable_info
+}
# Select word "tutorial" in the table
SELECT * FROM fts_test WHERE MATCH (title, body)
@@ -112,7 +128,14 @@ INSERT INTO fts_test (title,body) VALUES
# column already exists. This has not been implemented yet.
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
CREATE FULLTEXT INDEX idx on fts_test (title, body) LOCK=NONE;
+if ($MTR_COMBINATION_ORIG) {
ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body), ALGORITHM=NOCOPY;
+}
+if (!$MTR_COMBINATION_ORIG) {
+--enable_info
+ALTER TABLE fts_test ADD FULLTEXT `idx` (title, body);
+--disable_info
+}
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
ALTER TABLE fts_test ROW_FORMAT=REDUNDANT, LOCK=NONE;
@@ -349,8 +372,14 @@ let $fts_aux_file= `select concat('FTS_',right(concat(repeat('0',16), lower(hex(
write_file $MYSQLD_DATADIR/test/$fts_aux_file;
EOF
--replace_regex /".*" from/"Resource temporarily unavailable" from/
+if ($MTR_COMBINATION_ORIG) {
--error ER_GET_ERRNO
ALTER TABLE t1 ADD FULLTEXT(a), ALGORITHM=INPLACE;
+}
+if (!$MTR_COMBINATION_ORIG) {
+--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
+ALTER TABLE t1 ADD FULLTEXT(a), ALGORITHM=INPLACE;
+}
DROP TABLE t1;
remove_file $MYSQLD_DATADIR/test/$fts_aux_file;
diff --git a/mysql-test/suite/innodb_fts/t/innodb-fts-fic.test b/mysql-test/suite/innodb_fts/t/innodb-fts-fic.test
index 2d94c213..05855106 100644
--- a/mysql-test/suite/innodb_fts/t/innodb-fts-fic.test
+++ b/mysql-test/suite/innodb_fts/t/innodb-fts-fic.test
@@ -211,8 +211,13 @@ INSERT INTO wp (FTS_DOC_ID, title, text) VALUES
(1, 'MySQL Tutorial','DBMS stands for DataBase ...'),
(2, 'How To Use MySQL Well','After you went through a ...');
+if ($MTR_COMBINATION_ORIG) {
--error ER_INNODB_FT_WRONG_DOCID_COLUMN
CREATE FULLTEXT INDEX idx ON wp(title, text);
+}
+if (!$MTR_COMBINATION_ORIG) {
+CREATE FULLTEXT INDEX idx ON wp(title, text);
+}
DROP TABLE wp;
CREATE TABLE wp(
diff --git a/mysql-test/suite/innodb_fts/t/misc_debug.test b/mysql-test/suite/innodb_fts/t/misc_debug.test
index 08581768..8e4ec5d9 100644
--- a/mysql-test/suite/innodb_fts/t/misc_debug.test
+++ b/mysql-test/suite/innodb_fts/t/misc_debug.test
@@ -23,8 +23,14 @@ CREATE TABLE articles (
# The newly create dict_index_t should be removed from fts cache
SET @saved_debug_dbug = @@SESSION.debug_dbug;
SET SESSION debug_dbug="+d,ib_dict_create_index_tree_fail";
+if ($MTR_COMBINATION_ORIG) {
--error ER_OUT_OF_RESOURCES
CREATE FULLTEXT INDEX idx ON articles(body);
+}
+if (!$MTR_COMBINATION_ORIG) {
+--error ER_CANT_CREATE_TABLE
+CREATE FULLTEXT INDEX idx ON articles(body);
+}
SET SESSION debug_dbug=@saved_debug_dbug;
# This simply go through ha_innobase::commit_inplace_alter_table
@@ -37,8 +43,14 @@ DROP TABLE articles;
CREATE TABLE t (a INT, b TEXT) engine=innodb;
SET debug_dbug='+d,alter_table_rollback_new_index';
+if ($MTR_COMBINATION_ORIG) {
-- error ER_UNKNOWN_ERROR
ALTER TABLE t ADD FULLTEXT INDEX (b(64));
+}
+if (!$MTR_COMBINATION_ORIG) {
+-- error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
+ALTER TABLE t ADD FULLTEXT INDEX (b(64)), ALGORITHM=INPLACE;
+}
SET SESSION debug_dbug=@saved_debug_dbug;
DROP TABLE t;
@@ -57,6 +69,7 @@ ALTER TABLE t1 FORCE;
DROP TABLE t2, t1;
SET SESSION debug_dbug=@saved_debug_dbug;
+if ($MTR_COMBINATION_ORIG) {
--echo #
--echo # MDEV-25200 Index count mismatch due to aborted FULLTEXT INDEX
--echo #
@@ -82,6 +95,7 @@ ALTER TABLE t1 ADD bl INT AS (LENGTH(b)) VIRTUAL;
CHECK TABLE t1;
DROP TABLE t1;
--source include/wait_until_count_sessions.inc
+}
--echo #
--echo # MDEV-25663 Double free of transaction during TRUNCATE
@@ -104,6 +118,7 @@ SET debug_dbug=@saved_debug_dbug;
DROP TABLE t1;
--echo # End of 10.3 tests
+if ($MTR_COMBINATION_ORIG) {
# Fulltext fails in commit phase
CREATE TABLE t1(f1 INT NOT NULL, f2 CHAR(100))ENGINE=InnoDB;
@@ -115,3 +130,4 @@ ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
ALTER TABLE t1 ADD FULLTEXT(f2);
DROP TABLE t1;
+}
diff --git a/mysql-test/suite/innodb_fts/t/sync.test b/mysql-test/suite/innodb_fts/t/sync.test
index 168309a5..56b9052a 100644
--- a/mysql-test/suite/innodb_fts/t/sync.test
+++ b/mysql-test/suite/innodb_fts/t/sync.test
@@ -115,7 +115,7 @@ CREATE TABLE t1 (
INSERT INTO t1(title) VALUES('database');
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
SET debug_dbug = '+d,fts_instrument_sync_debug,fts_write_node_crash';
diff --git a/mysql-test/suite/innodb_fts/t/sync_ddl.test b/mysql-test/suite/innodb_fts/t/sync_ddl.test
index 6a16ecec..9a0451e9 100644
--- a/mysql-test/suite/innodb_fts/t/sync_ddl.test
+++ b/mysql-test/suite/innodb_fts/t/sync_ddl.test
@@ -182,12 +182,13 @@ INSERT INTO t1 (value) VALUES
('collation of latin1_bin to make it case sensitive')
;
+--enable_info
ALTER TABLE t1
DROP COLUMN id1,
ADD COLUMN id2 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
DROP INDEX idx1,
- ADD FULLTEXT INDEX idx2(value),
- ALGORITHM=INPLACE;
+ ADD FULLTEXT INDEX idx2(value);
+--disable_info
DROP TABLE t1;
diff --git a/mysql-test/suite/innodb_gis/t/rollback.test b/mysql-test/suite/innodb_gis/t/rollback.test
index fcfe71e2..a0998669 100644
--- a/mysql-test/suite/innodb_gis/t/rollback.test
+++ b/mysql-test/suite/innodb_gis/t/rollback.test
@@ -463,7 +463,7 @@ rollback;
# Test partial update rollback after recovered.
# Crash the server in partial update.
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
set session debug="+d,row_mysql_crash_if_error";
--error 2013
update t1 set a=point(5,5), b=point(5,5), c=5 where i < 3;
diff --git a/mysql-test/suite/innodb_zip/t/innochecksum_2.test b/mysql-test/suite/innodb_zip/t/innochecksum_2.test
index 62e792c1..57926d92 100644
--- a/mysql-test/suite/innodb_zip/t/innochecksum_2.test
+++ b/mysql-test/suite/innodb_zip/t/innochecksum_2.test
@@ -9,11 +9,6 @@
--source include/not_embedded.inc
-- source include/big_test.inc
---disable_query_log
-# This warning occurs due to small buffer pool size(i.e. 8MB). It doesn't occur
-# with --mysqld=--innodb_buffer_pool_size=10MB
-call mtr.add_suppression("\\[Warning\\] InnoDB: Difficult to find free blocks in the buffer pool.*");
---enable_query_log
let MYSQLD_BASEDIR= `SELECT @@basedir`;
let MYSQLD_DATADIR= `SELECT @@datadir`;
let SEARCH_FILE= $MYSQLTEST_VARDIR/log/my_restart.err;
diff --git a/mysql-test/suite/innodb_zip/t/restart.test b/mysql-test/suite/innodb_zip/t/restart.test
index c442b919..0c8073b8 100644
--- a/mysql-test/suite/innodb_zip/t/restart.test
+++ b/mysql-test/suite/innodb_zip/t/restart.test
@@ -412,13 +412,13 @@ SHOW CREATE TABLE t77_restart;
--echo # Moving tablespace 't4_restart' from MYSQL_DATA_DIR to MYSQL_TMP_DIR/new_dir
--copy_file $MYSQL_DATA_DIR/test/t4_restart.ibd $MYSQL_TMP_DIR/new_dir/test/t4_restart.ibd
--remove_file $MYSQL_DATA_DIR/test/t4_restart.ibd
---exec echo $MYSQL_TMP_DIR/new_dir/test/t4_restart.ibd > $MYSQL_DATA_DIR/test/t4_restart.isl
+--write_line $MYSQL_TMP_DIR/new_dir/test/t4_restart.ibd $MYSQL_DATA_DIR/test/t4_restart.isl
--echo # Moving tablespace 't55_restart' from MYSQL_TMP_DIR/alt_dir to MYSQL_TMP_DIR/new_dir
--copy_file $MYSQL_TMP_DIR/alt_dir/test/t55_restart.ibd $MYSQL_TMP_DIR/new_dir/test/t55_restart.ibd
--remove_file $MYSQL_TMP_DIR/alt_dir/test/t55_restart.ibd
--remove_file $MYSQL_DATA_DIR/test/t55_restart.isl
---exec echo $MYSQL_TMP_DIR/new_dir/test/t55_restart.ibd > $MYSQL_DATA_DIR/test/t55_restart.isl
+--write_line $MYSQL_TMP_DIR/new_dir/test/t55_restart.ibd $MYSQL_DATA_DIR/test/t55_restart.isl
--echo # Moving tablespace 't66_restart' from MYSQL_TMP_DIR/alt_dir to MYSQL_TMP_DIR/new_dir
--copy_file $MYSQL_TMP_DIR/alt_dir/test/t66_restart#P#p0.ibd $MYSQL_TMP_DIR/new_dir/test/t66_restart#P#p0.ibd
@@ -430,9 +430,9 @@ SHOW CREATE TABLE t77_restart;
--remove_file $MYSQL_DATA_DIR/test/t66_restart#P#p0.isl
--remove_file $MYSQL_DATA_DIR/test/t66_restart#P#p1.isl
--remove_file $MYSQL_DATA_DIR/test/t66_restart#P#p2.isl
---exec echo $MYSQL_TMP_DIR/new_dir/test/t66_restart#P#p0.ibd > $MYSQL_DATA_DIR/test/t66_restart#P#p0.isl
---exec echo $MYSQL_TMP_DIR/new_dir/test/t66_restart#P#p1.ibd > $MYSQL_DATA_DIR/test/t66_restart#P#p1.isl
---exec echo $MYSQL_TMP_DIR/new_dir/test/t66_restart#P#p2.ibd > $MYSQL_DATA_DIR/test/t66_restart#P#p2.isl
+--write_line $MYSQL_TMP_DIR/new_dir/test/t66_restart#P#p0.ibd $MYSQL_DATA_DIR/test/t66_restart#P#p0.isl
+--write_line $MYSQL_TMP_DIR/new_dir/test/t66_restart#P#p1.ibd $MYSQL_DATA_DIR/test/t66_restart#P#p1.isl
+--write_line $MYSQL_TMP_DIR/new_dir/test/t66_restart#P#p2.ibd $MYSQL_DATA_DIR/test/t66_restart#P#p2.isl
--echo # Moving tablespace 't77_restart' from MYSQL_TMP_DIR/alt_dir to MYSQL_TMP_DIR/new_dir
--copy_file $MYSQL_TMP_DIR/alt_dir/test/t77_restart#P#p0#SP#s0.ibd $MYSQL_TMP_DIR/new_dir/test/t77_restart#P#p0#SP#s0.ibd
@@ -447,10 +447,10 @@ SHOW CREATE TABLE t77_restart;
--remove_file $MYSQL_DATA_DIR/test/t77_restart#P#p0#SP#s1.isl
--remove_file $MYSQL_DATA_DIR/test/t77_restart#P#p1#SP#s2.isl
--remove_file $MYSQL_DATA_DIR/test/t77_restart#P#p1#SP#s3.isl
---exec echo $MYSQL_TMP_DIR/new_dir/test/t77_restart#P#p0#SP#s0.ibd > $MYSQL_DATA_DIR/test/t77_restart#P#p0#SP#s0.isl
---exec echo $MYSQL_TMP_DIR/new_dir/test/t77_restart#P#p0#SP#s1.ibd > $MYSQL_DATA_DIR/test/t77_restart#P#p0#SP#s1.isl
---exec echo $MYSQL_TMP_DIR/new_dir/test/t77_restart#P#p1#SP#s2.ibd > $MYSQL_DATA_DIR/test/t77_restart#P#p1#SP#s2.isl
---exec echo $MYSQL_TMP_DIR/new_dir/test/t77_restart#P#p1#SP#s3.ibd > $MYSQL_DATA_DIR/test/t77_restart#P#p1#SP#s3.isl
+--write_line $MYSQL_TMP_DIR/new_dir/test/t77_restart#P#p0#SP#s0.ibd $MYSQL_DATA_DIR/test/t77_restart#P#p0#SP#s0.isl
+--write_line $MYSQL_TMP_DIR/new_dir/test/t77_restart#P#p0#SP#s1.ibd $MYSQL_DATA_DIR/test/t77_restart#P#p0#SP#s1.isl
+--write_line $MYSQL_TMP_DIR/new_dir/test/t77_restart#P#p1#SP#s2.ibd $MYSQL_DATA_DIR/test/t77_restart#P#p1#SP#s2.isl
+--write_line $MYSQL_TMP_DIR/new_dir/test/t77_restart#P#p1#SP#s3.ibd $MYSQL_DATA_DIR/test/t77_restart#P#p1#SP#s3.isl
--echo ---- MYSQL_DATA_DIR/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_DATA_DIR/test
diff --git a/mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test b/mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test
index 36dcd1e4..47b53b71 100644
--- a/mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test
+++ b/mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test
@@ -75,7 +75,7 @@ SET SESSION debug_dbug="+d,ib_import_before_commit_crash";
SELECT * FROM t1;
# Write file to make mysql-test-run.pl start up the server again
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
# Execute the statement that causes the crash
--error 2013
@@ -96,7 +96,7 @@ SET SESSION debug_dbug="+d,ib_import_before_checkpoint_crash";
SELECT COUNT(*) FROM t1;
# Don't start up the server right away.
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
# Execute the statement that causes the crash
--error 2013
@@ -113,7 +113,7 @@ EOF
--echo # Restart and reconnect to the server
--enable_reconnect
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--source include/wait_until_connected_again.inc
--disable_reconnect
diff --git a/mysql-test/suite/json/r/json_no_table.result b/mysql-test/suite/json/r/json_no_table.result
index 375b29d5..df8ce6f6 100644
--- a/mysql-test/suite/json/r/json_no_table.result
+++ b/mysql-test/suite/json/r/json_no_table.result
@@ -1002,19 +1002,27 @@ DOUBLE
error ER_INVALID_JSON_TEXT_IN_PARAM
select json_type(CAST(CAST('2015-01-15' AS DATE) as CHAR CHARACTER SET 'utf8'));
json_type(CAST(CAST('2015-01-15' AS DATE) as CHAR CHARACTER SET 'utf8'))
-INTEGER
+NULL
+Warnings:
+Warning 4038 Syntax error in JSON text in argument 1 to function 'json_type' at position 5
# ----------------------------------------------------------------------
# Test of json_compact(literal)
# ----------------------------------------------------------------------
select json_type(json_compact(cast('2014-11-25 18:00' as datetime)));
json_type(json_compact(cast('2014-11-25 18:00' as datetime)))
-INTEGER
+NULL
+Warnings:
+Warning 4038 Syntax error in JSON text in argument 1 to function 'json_type' at position 5
select json_type(json_compact(cast('2014-11-25' as date)));
json_type(json_compact(cast('2014-11-25' as date)))
-INTEGER
+NULL
+Warnings:
+Warning 4038 Syntax error in JSON text in argument 1 to function 'json_type' at position 5
select json_type(json_compact(cast('18:00:59' as time)));
json_type(json_compact(cast('18:00:59' as time)))
-INTEGER
+NULL
+Warnings:
+Warning 4038 Syntax error in JSON text in argument 1 to function 'json_type' at position 3
select json_type(json_compact(127));
json_type(json_compact(127))
INTEGER
@@ -1064,7 +1072,9 @@ json_type(json_compact(3.14E30))
DOUBLE
select json_type(json_compact(cast('10101abcde' as binary)));
json_type(json_compact(cast('10101abcde' as binary)))
-INTEGER
+NULL
+Warnings:
+Warning 4038 Syntax error in JSON text in argument 1 to function 'json_type' at position 6
select json_type(json_compact(ST_GeomFromText('POINT(1 1)')));
json_type(json_compact(ST_GeomFromText('POINT(1 1)')))
NULL
diff --git a/mysql-test/suite/json/r/type_json.result b/mysql-test/suite/json/r/type_json.result
index 333e933e..44e14978 100644
--- a/mysql-test/suite/json/r/type_json.result
+++ b/mysql-test/suite/json/r/type_json.result
@@ -2880,5 +2880,13 @@ DROP PROCEDURE p1;
DROP PROCEDURE p2;
DROP TABLE t1, t1c, t2;
#
+# MDEV-30646 View created via JSON_ARRAYAGG returns incorrect json object
+#
+CREATE VIEW v1 AS SELECT JSON_OBJECT('plugin','unix_socket') as v1_json;
+SELECT JSON_ARRAYAGG(v1_json) FROM v1;
+JSON_ARRAYAGG(v1_json)
+[{"plugin": "unix_socket"}]
+DROP VIEW v1;
+#
# End of 10.5 tests
#
diff --git a/mysql-test/suite/json/t/type_json.test b/mysql-test/suite/json/t/type_json.test
index f84bef78..03236070 100644
--- a/mysql-test/suite/json/t/type_json.test
+++ b/mysql-test/suite/json/t/type_json.test
@@ -139,5 +139,14 @@ DROP PROCEDURE p2;
DROP TABLE t1, t1c, t2;
--echo #
+--echo # MDEV-30646 View created via JSON_ARRAYAGG returns incorrect json object
+--echo #
+
+CREATE VIEW v1 AS SELECT JSON_OBJECT('plugin','unix_socket') as v1_json;
+SELECT JSON_ARRAYAGG(v1_json) FROM v1;
+DROP VIEW v1;
+
+
+--echo #
--echo # End of 10.5 tests
--echo #
diff --git a/mysql-test/suite/large_tests/r/maria_recover_encrypted.result b/mysql-test/suite/large_tests/r/maria_recover_encrypted.result
index a7293d45..fb7f1ef1 100644
--- a/mysql-test/suite/large_tests/r/maria_recover_encrypted.result
+++ b/mysql-test/suite/large_tests/r/maria_recover_encrypted.result
@@ -36,7 +36,7 @@ CALL proc_insert_many();
UNLOCK TABLES;
SET debug_dbug="d,crash_shutdown";
shutdown;
-ERROR HY000: Lost connection to MySQL server during query
+ERROR HY000: Lost connection to server during query
SELECT * FROM t1 ORDER BY 1 DESC LIMIT 10;
field1 field2 field3
1069999 2069999 3069999
diff --git a/mysql-test/suite/large_tests/t/maria_recover_encrypted.test b/mysql-test/suite/large_tests/t/maria_recover_encrypted.test
index 4c590e5e..1064c2c0 100644
--- a/mysql-test/suite/large_tests/t/maria_recover_encrypted.test
+++ b/mysql-test/suite/large_tests/t/maria_recover_encrypted.test
@@ -3,6 +3,8 @@
--source include/have_maria.inc
--source include/default_charset.inc
+--source include/not_embedded.inc
+--source include/have_debug.inc
# Cleanup
--disable_warnings
@@ -13,7 +15,7 @@ DROP PROCEDURE IF EXISTS proc_insert_many;
# --------
# Configure encryption
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
@@ -21,7 +23,7 @@ DROP PROCEDURE IF EXISTS proc_insert_many;
1;76025E3ADC78D74819927DB02AAA4C35
EOF
---exec echo "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/key.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/key.txt" $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
@@ -73,7 +75,7 @@ CALL proc_insert_many();
UNLOCK TABLES;
# Crash and restart the server while it's still flushing index
---exec echo "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/key.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/key.txt" $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
SET debug_dbug="d,crash_shutdown";
--error 2013
shutdown;
diff --git a/mysql-test/suite/maria/alter.result b/mysql-test/suite/maria/alter.result
index cc035426..17164343 100644
--- a/mysql-test/suite/maria/alter.result
+++ b/mysql-test/suite/maria/alter.result
@@ -193,3 +193,29 @@ ALTER TABLE t1 DISABLE KEYS;
INSERT INTO t1 VALUES (1, 'Nine chars or more');
ALTER TABLE t1 ENABLE KEYS;
DROP TABLE t1;
+#
+# MDEV-25923 Memory not freed or Assertion `old_flags == ((my_flags &
+# 0x10000U) ? 1 : 0)' failed in my_realloc upon ALTER on Aria table
+# with GIS column
+#
+CREATE TABLE t1 (pk INT PRIMARY KEY, a POINT DEFAULT ST_GEOMFROMTEXT('Point(1 1)')) ENGINE=Aria;
+INSERT INTO t1 (pk) SELECT seq FROM seq_1_to_100;
+SET @old_threads= @@SESSION.aria_repair_threads;
+SET SESSION aria_repair_threads= 2;
+ALTER TABLE t1 ROW_FORMAT=DYNAMIC;
+DROP TABLE t1;
+#
+# MDEV-33562: Assertion `(old_flags & 1) == ((my_flags & 0x10000U) ?
+# 1 : 0)' failed in my_realloc from sort_get_next_record on INSERT
+#
+SET @old_mode= @@SESSION.sql_mode;
+SET sql_mode='';
+CREATE TEMPORARY TABLE t (b TEXT, INDEX s(b(300))) ROW_FORMAT=DYNAMIC ENGINE=Aria;
+INSERT INTO t VALUES (REPEAT ('a',10000000));
+Warnings:
+Warning 1265 Data truncated for column 'b' at row 1
+CREATE TABLE ti LIKE t;
+INSERT INTO ti SELECT * FROM t;
+DROP TABLE t, ti;
+SET SESSION aria_repair_threads= @old_threads;
+SET SESSION sql_mode= @old_mode;
diff --git a/mysql-test/suite/maria/alter.test b/mysql-test/suite/maria/alter.test
index 525cd80f..a68b5f2e 100644
--- a/mysql-test/suite/maria/alter.test
+++ b/mysql-test/suite/maria/alter.test
@@ -203,3 +203,31 @@ ALTER TABLE t1 DISABLE KEYS;
INSERT INTO t1 VALUES (1, 'Nine chars or more');
ALTER TABLE t1 ENABLE KEYS;
DROP TABLE t1;
+
+--echo #
+--echo # MDEV-25923 Memory not freed or Assertion `old_flags == ((my_flags &
+--echo # 0x10000U) ? 1 : 0)' failed in my_realloc upon ALTER on Aria table
+--echo # with GIS column
+--echo #
+
+CREATE TABLE t1 (pk INT PRIMARY KEY, a POINT DEFAULT ST_GEOMFROMTEXT('Point(1 1)')) ENGINE=Aria;
+INSERT INTO t1 (pk) SELECT seq FROM seq_1_to_100;
+SET @old_threads= @@SESSION.aria_repair_threads;
+SET SESSION aria_repair_threads= 2;
+ALTER TABLE t1 ROW_FORMAT=DYNAMIC;
+DROP TABLE t1;
+
+--echo #
+--echo # MDEV-33562: Assertion `(old_flags & 1) == ((my_flags & 0x10000U) ?
+--echo # 1 : 0)' failed in my_realloc from sort_get_next_record on INSERT
+--echo #
+
+SET @old_mode= @@SESSION.sql_mode;
+SET sql_mode='';
+CREATE TEMPORARY TABLE t (b TEXT, INDEX s(b(300))) ROW_FORMAT=DYNAMIC ENGINE=Aria;
+INSERT INTO t VALUES (REPEAT ('a',10000000));
+CREATE TABLE ti LIKE t;
+INSERT INTO ti SELECT * FROM t;
+DROP TABLE t, ti;
+SET SESSION aria_repair_threads= @old_threads;
+SET SESSION sql_mode= @old_mode;
diff --git a/mysql-test/suite/maria/bulk_insert_crash.test b/mysql-test/suite/maria/bulk_insert_crash.test
index d9167c3f..04f3a148 100644
--- a/mysql-test/suite/maria/bulk_insert_crash.test
+++ b/mysql-test/suite/maria/bulk_insert_crash.test
@@ -12,7 +12,7 @@
#
# Write file to make mysql-test-run.pl expect crash and restart
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
create table t1 (a int primary key, b int, c int, unique key(b), key(c)) engine=aria transactional=1;
insert into t1 values (1000,1000,1000);
diff --git a/mysql-test/suite/maria/encrypt-no-key.test b/mysql-test/suite/maria/encrypt-no-key.test
index 45744122..e1d67409 100644
--- a/mysql-test/suite/maria/encrypt-no-key.test
+++ b/mysql-test/suite/maria/encrypt-no-key.test
@@ -29,10 +29,10 @@ CREATE TABLE t1 (a INT KEY,b INT,KEY(b)) ENGINE=Aria;
--echo # Restart with encryption enabled
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
---exec echo "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
@@ -43,10 +43,10 @@ LOAD INDEX INTO CACHE t1;
# Restart without encryption. Above table should be unreadable
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
---exec echo "restart:--aria-encrypt-tables=0" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line "restart:--aria-encrypt-tables=0" $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
diff --git a/mysql-test/suite/maria/encrypt-wrong-key.test b/mysql-test/suite/maria/encrypt-wrong-key.test
index ac060c4e..274a165c 100644
--- a/mysql-test/suite/maria/encrypt-wrong-key.test
+++ b/mysql-test/suite/maria/encrypt-wrong-key.test
@@ -9,7 +9,7 @@ call mtr.add_suppression("System key id 1 is missing");
call mtr.add_suppression("Unknown key id 1");
call mtr.add_suppression("Initialization of encryption failed.*");
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
@@ -17,14 +17,14 @@ call mtr.add_suppression("Initialization of encryption failed.*");
1;770A8A65DA156D24EE2A093277530142
EOF
---exec echo "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
CREATE TABLE t1 (i INT, KEY(i)) ENGINE=Aria;
INSERT INTO t1 VALUES (1);
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
@@ -32,7 +32,7 @@ INSERT INTO t1 VALUES (1);
2;770A8A65DA156D24EE2A093277530143
EOF
---exec echo "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys2.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys2.txt" $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
@@ -43,11 +43,11 @@ repair table t1;
--error HA_ERR_NO_ENCRYPTION
INSERT INTO t1 VALUES (2);
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
---exec echo "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
diff --git a/mysql-test/suite/maria/ps_maria.result b/mysql-test/suite/maria/ps_maria.result
index 5c128a32..3f806c43 100644
--- a/mysql-test/suite/maria/ps_maria.result
+++ b/mysql-test/suite/maria/ps_maria.result
@@ -1798,7 +1798,7 @@ t5 CREATE TABLE `t5` (
`param09` longtext DEFAULT NULL,
`const10` bigint(17) DEFAULT NULL,
`param10` bigint(20) DEFAULT NULL,
- `const11` int(4) DEFAULT NULL,
+ `const11` int(5) DEFAULT NULL,
`param11` bigint(20) DEFAULT NULL,
`const12` binary(0) DEFAULT NULL,
`param12` bigint(20) DEFAULT NULL,
@@ -1828,7 +1828,7 @@ def test t5 t5 const09 const09 12 19 19 Y 128 0 63
def test t5 t5 param09 param09 252 4294967295 19 Y 16 0 8
def test t5 t5 const10 const10 8 17 9 Y 32768 0 63
def test t5 t5 param10 param10 8 20 9 Y 32768 0 63
-def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
+def test t5 t5 const11 const11 3 5 4 Y 32768 0 63
def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
diff --git a/mysql-test/suite/maria/repair.result b/mysql-test/suite/maria/repair.result
index 458b5503..7905cb02 100644
--- a/mysql-test/suite/maria/repair.result
+++ b/mysql-test/suite/maria/repair.result
@@ -62,3 +62,26 @@ SET SESSION aria_sort_buffer_size=default;
#
# End of 10.3 tests
#
+#
+# MDEV-34055 Assertion `readbytes != (size_t)-1 ||
+# (*__errno_location ()) != 9' failure or corruption errors upon
+# REPAIR on Aria tables
+#
+CREATE OR REPLACE TABLE t1 (a INT, b INT, UNIQUE(b), UNIQUE(a)) ENGINE=Aria;
+INSERT INTO t1 VALUES (1,2);
+REPAIR TABLE t1 EXTENDED QUICK USE_FRM;
+Table Op Msg_type Msg_text
+test.t1 repair warning Number of rows changed from 0 to 1
+test.t1 repair status OK
+CREATE TABLE t2 (c INT) ENGINE=Aria;
+SELECT * FROM t2;
+c
+REPLACE INTO t1 VALUES (1,3);
+REPAIR TABLE t2, t1 QUICK;
+Table Op Msg_type Msg_text
+test.t2 repair status OK
+test.t1 repair status OK
+DROP TABLE t1, t2;
+#
+# End of 10.5 tests
+#
diff --git a/mysql-test/suite/maria/repair.test b/mysql-test/suite/maria/repair.test
index 688ac076..08234a5a 100644
--- a/mysql-test/suite/maria/repair.test
+++ b/mysql-test/suite/maria/repair.test
@@ -74,3 +74,22 @@ SET SESSION aria_sort_buffer_size=default;
--echo #
--echo # End of 10.3 tests
--echo #
+
+--echo #
+--echo # MDEV-34055 Assertion `readbytes != (size_t)-1 ||
+--echo # (*__errno_location ()) != 9' failure or corruption errors upon
+--echo # REPAIR on Aria tables
+--echo #
+
+CREATE OR REPLACE TABLE t1 (a INT, b INT, UNIQUE(b), UNIQUE(a)) ENGINE=Aria;
+INSERT INTO t1 VALUES (1,2);
+REPAIR TABLE t1 EXTENDED QUICK USE_FRM;
+CREATE TABLE t2 (c INT) ENGINE=Aria;
+SELECT * FROM t2;
+REPLACE INTO t1 VALUES (1,3);
+REPAIR TABLE t2, t1 QUICK;
+DROP TABLE t1, t2;
+
+--echo #
+--echo # End of 10.5 tests
+--echo #
diff --git a/mysql-test/suite/mariabackup/absolute_ibdata_paths.test b/mysql-test/suite/mariabackup/absolute_ibdata_paths.test
index fa304f0b..f4d0e2a5 100644
--- a/mysql-test/suite/mariabackup/absolute_ibdata_paths.test
+++ b/mysql-test/suite/mariabackup/absolute_ibdata_paths.test
@@ -30,7 +30,7 @@ let $_innodb_data_file_path=`select @@innodb_data_file_path`;
let $_innodb_data_home_dir=`select @@innodb_data_home_dir`;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir;
--enable_result_log
exec $XTRABACKUP --prepare --target-dir=$targetdir;
diff --git a/mysql-test/suite/mariabackup/alter_copy_race.result b/mysql-test/suite/mariabackup/alter_copy_race.result
index 82202249..ae58ac28 100644
--- a/mysql-test/suite/mariabackup/alter_copy_race.result
+++ b/mysql-test/suite/mariabackup/alter_copy_race.result
@@ -4,7 +4,7 @@ INSERT into t1 values(1);
connect con2, localhost, root,,;
connection con2;
set lock_wait_timeout=1;
-SET debug_sync='copy_data_between_tables_before_reset_backup_lock SIGNAL go WAIT_FOR after_backup_stage_block_commit';
+SET debug_sync='copy_data_between_tables_before_reset_backup_lock SIGNAL go WAIT_FOR after_backup_stage_block_ddl';
SET debug_sync='alter_table_after_temp_table_drop SIGNAL temp_table_dropped';
SET debug_sync='now WAIT_FOR after_backup_stage_start';ALTER TABLE test.t1 FORCE, algorithm=COPY;|
connection default;
diff --git a/mysql-test/suite/mariabackup/alter_copy_race.test b/mysql-test/suite/mariabackup/alter_copy_race.test
index 553643bf..cfabd76c 100644
--- a/mysql-test/suite/mariabackup/alter_copy_race.test
+++ b/mysql-test/suite/mariabackup/alter_copy_race.test
@@ -18,7 +18,7 @@ INSERT into t1 values(1);
connect con2, localhost, root,,;
connection con2;
set lock_wait_timeout=1;
-SET debug_sync='copy_data_between_tables_before_reset_backup_lock SIGNAL go WAIT_FOR after_backup_stage_block_commit';
+SET debug_sync='copy_data_between_tables_before_reset_backup_lock SIGNAL go WAIT_FOR after_backup_stage_block_ddl';
SET debug_sync='alter_table_after_temp_table_drop SIGNAL temp_table_dropped';
DELIMITER |;
send SET debug_sync='now WAIT_FOR after_backup_stage_start';ALTER TABLE test.t1 FORCE, algorithm=COPY;|
@@ -27,7 +27,7 @@ connection default;
# setup mariabackup events
let after_backup_stage_start=SET debug_sync='now SIGNAL after_backup_stage_start WAIT_FOR go';
-let after_backup_stage_block_commit=SET debug_sync='now SIGNAL after_backup_stage_block_commit';
+let after_backup_stage_block_ddl=SET debug_sync='now SIGNAL after_backup_stage_block_ddl';
let backup_fix_ddl=SET debug_sync='now WAIT_FOR temp_table_dropped';
--disable_result_log
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir --dbug=+d,mariabackup_events;
diff --git a/mysql-test/suite/mariabackup/apply-log-only-incr.test b/mysql-test/suite/mariabackup/apply-log-only-incr.test
index 01b74af2..1da2be09 100644
--- a/mysql-test/suite/mariabackup/apply-log-only-incr.test
+++ b/mysql-test/suite/mariabackup/apply-log-only-incr.test
@@ -19,7 +19,7 @@ dec $n;
}
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$basedir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$basedir;
--enable_result_log
let $n=100;
while ($n) {
@@ -36,7 +36,7 @@ disconnect flush_log;
connection default;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --ftwrl-wait-timeout=5 --ftwrl-wait-threshold=300 --ftwrl-wait-query-type=all --target-dir=$incremental_dir --incremental-basedir=$basedir ;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --ftwrl-wait-timeout=5 --ftwrl-wait-threshold=300 --ftwrl-wait-query-type=all --target-dir=$incremental_dir --incremental-basedir=$basedir ;
exec $XTRABACKUP --prepare --verbose --target-dir=$basedir ;
--enable_result_log
diff --git a/mysql-test/suite/mariabackup/apply-log-only.test b/mysql-test/suite/mariabackup/apply-log-only.test
index 7ffed071..dbae77b7 100644
--- a/mysql-test/suite/mariabackup/apply-log-only.test
+++ b/mysql-test/suite/mariabackup/apply-log-only.test
@@ -8,7 +8,7 @@ start transaction;
INSERT INTO t VALUES(1);
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$basedir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$basedir;
--enable_result_log
exec $XTRABACKUP --prepare --target-dir=$basedir ;
diff --git a/mysql-test/suite/mariabackup/aria_backup.opt b/mysql-test/suite/mariabackup/aria_backup.opt
new file mode 100644
index 00000000..3565e3f1
--- /dev/null
+++ b/mysql-test/suite/mariabackup/aria_backup.opt
@@ -0,0 +1 @@
+--loose-partition --loose-aria-log-file-size=8388608
diff --git a/mysql-test/suite/mariabackup/aria_backup.result b/mysql-test/suite/mariabackup/aria_backup.result
new file mode 100644
index 00000000..e8c73f0a
--- /dev/null
+++ b/mysql-test/suite/mariabackup/aria_backup.result
@@ -0,0 +1,780 @@
+###
+# Test for backup to stream
+#####
+###
+# Test for mix of online/offline backup tables
+#####
+CREATE TABLE t_default(i INT PRIMARY KEY)
+ENGINE ARIA;
+INSERT INTO t_default VALUES (1);
+CREATE TABLE t_tr_p_ch(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+INSERT INTO t_tr_p_ch VALUES (1);
+CREATE TABLE t_tr_p_nch(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=0;
+INSERT INTO t_tr_p_nch VALUES (1);
+CREATE TABLE t_p_ch(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=0 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+INSERT INTO t_p_ch VALUES (1);
+CREATE TABLE t_p_nch(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=0 ROW_FORMAT=PAGE PAGE_CHECKSUM=0;
+INSERT INTO t_p_nch VALUES (1);
+CREATE TABLE t_fixed(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=0 ROW_FORMAT=FIXED PAGE_CHECKSUM=1;
+INSERT INTO t_fixed VALUES (1);
+CREATE TABLE t_dyn(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=0 ROW_FORMAT=DYNAMIC PAGE_CHECKSUM=1;
+INSERT INTO t_dyn VALUES (1);
+# Test for partitioned table
+CREATE TABLE t_part_online(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL = 1 PAGE_CHECKSUM = 1
+PARTITION BY RANGE( i ) (
+PARTITION p0 VALUES LESS THAN (10),
+PARTITION p1 VALUES LESS THAN (20),
+PARTITION p2 VALUES LESS THAN (30)
+);
+INSERT INTO t_part_online VALUES(5);
+INSERT INTO t_part_online VALUES(15);
+INSERT INTO t_part_online VALUES(25);
+SELECT * FROM t_part_online;
+i
+5
+15
+25
+CREATE TABLE t_part_offline(i INT)
+ENGINE ARIA TRANSACTIONAL = 0 PAGE_CHECKSUM = 0
+PARTITION BY RANGE( i ) (
+PARTITION p0 VALUES LESS THAN (10),
+PARTITION p1 VALUES LESS THAN (20),
+PARTITION p2 VALUES LESS THAN (30)
+);
+INSERT INTO t_part_offline VALUES(5);
+INSERT INTO t_part_offline VALUES(15);
+INSERT INTO t_part_offline VALUES(25);
+# Test for filename to tablename mapping
+CREATE TABLE `t 1 t-1`(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+INSERT INTO `t 1 t-1` VALUES (1);
+CREATE TABLE `t-part online`(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL = 1 PAGE_CHECKSUM = 1
+PARTITION BY RANGE( i ) (
+PARTITION p0 VALUES LESS THAN (10),
+PARTITION p1 VALUES LESS THAN (20),
+PARTITION p2 VALUES LESS THAN (30)
+);
+INSERT INTO `t-part online` VALUES(5);
+INSERT INTO `t-part online` VALUES(15);
+INSERT INTO `t-part online` VALUES(25);
+###
+# Test for redo log files backup;
+#####
+CREATE TABLE t_logs_1(i INT)
+ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+CREATE TABLE t_logs_2 LIKE t_logs_1;
+CREATE TABLE t_bulk_ins LIKE t_logs_1;
+INSERT INTO t_logs_1 VALUES
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9);
+# Generate several log files
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+###
+# Test for DML during backup for online backup
+#####
+CREATE TABLE t_dml_ins(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+INSERT INTO t_dml_ins VALUES(1);
+CREATE TABLE t_dml_upd(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+INSERT INTO t_dml_upd VALUES(1);
+CREATE TABLE t_dml_del(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+INSERT INTO t_dml_del VALUES(1);
+###
+# Test for DDL during backup for online backup
+#####
+CREATE DATABASE test_for_db_drop;
+CREATE TABLE test_for_db_drop.t(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_db_create(i INT PRIMARY KEY) ENGINE ARIA;
+SHOW DATABASES;
+Database
+information_schema
+mtr
+mysql
+performance_schema
+sys
+test
+test_for_db_drop
+CREATE TABLE t_alter(i INT PRIMARY KEY) ENGINE ARIA;
+INSERT INTO t_alter VALUES (1);
+CREATE TABLE t_trunc(i INT PRIMARY KEY) ENGINE ARIA;
+INSERT INTO t_trunc VALUES (1);
+CREATE TABLE t_ch_i (i int(10), index(i) ) ENGINE=Aria;
+INSERT INTO t_ch_i VALUES(1);
+CREATE TABLE t_change_engine(i INT PRIMARY KEY) ENGINE InnoDB;
+INSERT INTO t_change_engine VALUES (1);
+CREATE TABLE t_rename(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE DATABASE test_for_rename;
+CREATE TABLE t_rename_2(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_rename_3(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_rename_4(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_delete(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_delete_2(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_rename_alter(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_rename_create(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_part_create(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_part_add_part(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_part_change_eng(i INT PRIMARY KEY) ENGINE ARIA PARTITION BY HASH(i) PARTITIONS 2;
+CREATE TABLE t_part_change_eng_2(i INT PRIMARY KEY) ENGINE InnoDB PARTITION BY HASH(i) PARTITIONS 2;
+CREATE TABLE t_part_change_eng_3(i INT PRIMARY KEY) ENGINE Aria;
+CREATE TABLE t_part_alter(i INT PRIMARY KEY) ENGINE Aria PARTITION BY HASH(i) PARTITIONS 2;
+CREATE TABLE t_part_alter_2(i INT PRIMARY KEY) ENGINE Aria PARTITION BY HASH(i) PARTITIONS 3;
+CREATE TABLE t_part_drop(i INT PRIMARY KEY) ENGINE Aria PARTITION BY HASH(i) PARTITIONS 2;
+CREATE TABLE t_part_rename(i INT PRIMARY KEY) ENGINE Aria PARTITION BY HASH(i) PARTITIONS 2;
+CREATE TABLE t_part_rename_3(i INT PRIMARY KEY) ENGINE Aria PARTITION BY HASH(i) PARTITIONS 2;
+CREATE TABLE t_part_rm_part(i INT PRIMARY KEY) ENGINE Aria PARTITION BY HASH(i) PARTITIONS 2;
+SET SESSION debug_dbug="+d,maria_flush_whole_log";
+SET GLOBAL aria_checkpoint_interval=10000;
+### Backup to stream
+# xtrabackup prepare
+# shutdown server
+# remove datadir
+# xtrabackup move back
+# restart
+### Result for DDL test
+SHOW CREATE TABLE t_alter;
+Table Create Table
+t_alter CREATE TABLE `t_alter` (
+ `i` int(11) NOT NULL,
+ `c` int(11) DEFAULT NULL,
+ PRIMARY KEY (`i`)
+) ENGINE=Aria DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1
+SELECT * FROM t_alter;
+i c
+1 NULL
+SHOW CREATE TABLE t_change_engine;
+Table Create Table
+t_change_engine CREATE TABLE `t_change_engine` (
+ `i` int(11) NOT NULL,
+ PRIMARY KEY (`i`)
+) ENGINE=Aria DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1
+SELECT * FROM t_change_engine;
+i
+1
+SELECT * FROM t_trunc;
+i
+1
+SELECT * FROM t_ch_i;
+i
+1
+SELECT * FROM t_rename_new;
+i
+SELECT * FROM test_for_rename.t_rename_new_2;
+i
+SELECT * FROM t_rename_new_new_3;
+i
+SELECT * FROM t_rename_new_4;
+i
+SELECT * FROM t_delete;
+ERROR 42S02: Table 'test.t_delete' doesn't exist
+SHOW CREATE TABLE t_delete_2;
+Table Create Table
+t_delete_2 CREATE TABLE `t_delete_2` (
+ `i` int(11) NOT NULL,
+ PRIMARY KEY (`i`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1
+SELECT * FROM t_rename_alter_2;
+i c
+SELECT * FROM t_rename_create;
+d
+SELECT * FROM t_rename_create_new;
+i
+SHOW CREATE TABLE t_part_create_2;
+Table Create Table
+t_part_create_2 CREATE TABLE `t_part_create_2` (
+ `i` int(11) DEFAULT NULL
+) ENGINE=Aria DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+ PARTITION BY HASH (`i`)
+PARTITIONS 2
+SELECT * FROM t_part_create_2;
+i
+SHOW CREATE TABLE t_part_add_part;
+Table Create Table
+t_part_add_part CREATE TABLE `t_part_add_part` (
+ `i` int(11) NOT NULL,
+ PRIMARY KEY (`i`)
+) ENGINE=Aria DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1
+ PARTITION BY HASH (`i`)
+PARTITIONS 2
+SELECT * FROM t_part_add_part;
+i
+SHOW CREATE TABLE t_part_change_eng;
+Table Create Table
+t_part_change_eng CREATE TABLE `t_part_change_eng` (
+ `i` int(11) NOT NULL,
+ PRIMARY KEY (`i`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+ PARTITION BY HASH (`i`)
+PARTITIONS 2
+SELECT * FROM t_part_change_eng;
+i
+SHOW CREATE TABLE t_part_change_eng_2;
+Table Create Table
+t_part_change_eng_2 CREATE TABLE `t_part_change_eng_2` (
+ `i` int(11) NOT NULL,
+ PRIMARY KEY (`i`)
+) ENGINE=Aria DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+ PARTITION BY HASH (`i`)
+PARTITIONS 2
+SELECT * FROM t_part_change_eng_2;
+i
+SELECT * FROM t_part_alter;
+i c
+SHOW CREATE TABLE t_part_alter_2;
+Table Create Table
+t_part_alter_2 CREATE TABLE `t_part_alter_2` (
+ `i` int(11) NOT NULL,
+ PRIMARY KEY (`i`)
+) ENGINE=Aria DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+ PARTITION BY HASH (`i`)
+PARTITIONS 2
+SELECT * FROM t_part_alter_2;
+i
+SELECT * FROM t_part_drop;
+ERROR 42S02: Table 'test.t_part_drop' doesn't exist
+SELECT * FROM t_part_rename;
+ERROR 42S02: Table 'test.t_part_rename' doesn't exist
+SELECT * FROM t_part_rename_2;
+i
+SELECT * FROM t_part_rename_3;
+ERROR 42S02: Table 'test.t_part_rename_3' doesn't exist
+SELECT * FROM test_for_rename.t_part_rename_4;
+i
+SHOW CREATE TABLE t_part_rm_part;
+Table Create Table
+t_part_rm_part CREATE TABLE `t_part_rm_part` (
+ `i` int(11) NOT NULL,
+ `c` int(11) DEFAULT NULL,
+ PRIMARY KEY (`i`)
+) ENGINE=Aria DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1
+SELECT * FROM t_part_rm_part;
+i c
+SHOW DATABASES;
+Database
+information_schema
+mtr
+mysql
+performance_schema
+sys
+test
+test_for_db_create
+test_for_rename
+### Clean up for DDL test
+DROP DATABASE test_for_db_create;
+DROP TABLE t_db_create;
+DROP TABLE t_change_engine;
+DROP TABLE t_alter;
+DROP TABLE t_trunc;
+DROP TABLE t_ch_i;
+DROP TABLE t_rename_new;
+DROP TABLE t_rename_new_new_3;
+DROP TABLE t_rename_new_4;
+DROP TABLE t_delete_2;
+DROP TABLE t_rename_alter_2;
+DROP TABLE t_rename_create;
+DROP TABLE t_rename_create_new;
+DROP TABLE t_part_create;
+DROP TABLE t_part_create_2;
+DROP TABLE t_part_add_part;
+DROP TABLE t_part_change_eng;
+DROP TABLE t_part_change_eng_2;
+DROP TABLE t_part_change_eng_3;
+DROP TABLE t_part_alter;
+DROP TABLE t_part_alter_2;
+DROP TABLE t_part_rename_2;
+DROP TABLE t_part_rm_part;
+DROP DATABASE test_for_rename;
+### Result for DML test
+SELECT * FROM t_dml_ins;
+i
+1
+2
+SELECT * FROM t_dml_upd;
+i
+2
+SELECT * FROM t_dml_del;
+i
+### Clean up for DML test
+DROP TABLE t_dml_ins;
+DROP TABLE t_dml_upd;
+DROP TABLE t_dml_del;
+### Result for redo log files backup
+# ok
+# ok
+# ok
+### Cleanup for redo log files backup
+DROP TABLE t_logs_1;
+DROP TABLE t_logs_2;
+DROP TABLE t_bulk_ins;
+### Result for online/offline tables test
+SELECT * FROM t_default;
+i
+1
+SELECT * FROM t_tr_p_ch;
+i
+1
+SELECT * FROM t_tr_p_nch;
+i
+1
+SELECT * FROM t_p_ch;
+i
+1
+SELECT * FROM t_p_nch;
+i
+1
+SELECT * FROM t_fixed;
+i
+1
+SELECT * FROM t_dyn;
+i
+1
+SELECT * FROM t_part_online;
+i
+5
+15
+25
+SELECT * FROM t_part_offline;
+i
+5
+15
+25
+SELECT * FROM `t 1 t-1`;
+i
+1
+SELECT * FROM `t-part online`;
+i
+5
+15
+25
+### Cleanup for online/offline tables test
+DROP TABLE t_default;
+DROP TABLE t_tr_p_ch;
+DROP TABLE t_tr_p_nch;
+DROP TABLE t_p_ch;
+DROP TABLE t_p_nch;
+DROP TABLE t_fixed;
+DROP TABLE t_dyn;
+DROP TABLE t_part_online;
+DROP TABLE t_part_offline;
+DROP TABLE `t 1 t-1`;
+DROP TABLE `t-part online`;
+###
+# Test for backup to directory
+#####
+###
+# Test for mix of online/offline backup tables
+#####
+CREATE TABLE t_default(i INT PRIMARY KEY)
+ENGINE ARIA;
+INSERT INTO t_default VALUES (1);
+CREATE TABLE t_tr_p_ch(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+INSERT INTO t_tr_p_ch VALUES (1);
+CREATE TABLE t_tr_p_nch(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=0;
+INSERT INTO t_tr_p_nch VALUES (1);
+CREATE TABLE t_p_ch(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=0 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+INSERT INTO t_p_ch VALUES (1);
+CREATE TABLE t_p_nch(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=0 ROW_FORMAT=PAGE PAGE_CHECKSUM=0;
+INSERT INTO t_p_nch VALUES (1);
+CREATE TABLE t_fixed(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=0 ROW_FORMAT=FIXED PAGE_CHECKSUM=1;
+INSERT INTO t_fixed VALUES (1);
+CREATE TABLE t_dyn(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=0 ROW_FORMAT=DYNAMIC PAGE_CHECKSUM=1;
+INSERT INTO t_dyn VALUES (1);
+# Test for partitioned table
+CREATE TABLE t_part_online(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL = 1 PAGE_CHECKSUM = 1
+PARTITION BY RANGE( i ) (
+PARTITION p0 VALUES LESS THAN (10),
+PARTITION p1 VALUES LESS THAN (20),
+PARTITION p2 VALUES LESS THAN (30)
+);
+INSERT INTO t_part_online VALUES(5);
+INSERT INTO t_part_online VALUES(15);
+INSERT INTO t_part_online VALUES(25);
+SELECT * FROM t_part_online;
+i
+5
+15
+25
+CREATE TABLE t_part_offline(i INT)
+ENGINE ARIA TRANSACTIONAL = 0 PAGE_CHECKSUM = 0
+PARTITION BY RANGE( i ) (
+PARTITION p0 VALUES LESS THAN (10),
+PARTITION p1 VALUES LESS THAN (20),
+PARTITION p2 VALUES LESS THAN (30)
+);
+INSERT INTO t_part_offline VALUES(5);
+INSERT INTO t_part_offline VALUES(15);
+INSERT INTO t_part_offline VALUES(25);
+# Test for filename to tablename mapping
+CREATE TABLE `t 1 t-1`(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+INSERT INTO `t 1 t-1` VALUES (1);
+CREATE TABLE `t-part online`(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL = 1 PAGE_CHECKSUM = 1
+PARTITION BY RANGE( i ) (
+PARTITION p0 VALUES LESS THAN (10),
+PARTITION p1 VALUES LESS THAN (20),
+PARTITION p2 VALUES LESS THAN (30)
+);
+INSERT INTO `t-part online` VALUES(5);
+INSERT INTO `t-part online` VALUES(15);
+INSERT INTO `t-part online` VALUES(25);
+###
+# Test for redo log files backup;
+#####
+CREATE TABLE t_logs_1(i INT)
+ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+CREATE TABLE t_logs_2 LIKE t_logs_1;
+CREATE TABLE t_bulk_ins LIKE t_logs_1;
+INSERT INTO t_logs_1 VALUES
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(0), (1), (2), (3), (4), (5), (6), (7), (8), (9);
+# Generate several log files
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+###
+# Test for DML during backup for online backup
+#####
+CREATE TABLE t_dml_ins(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+INSERT INTO t_dml_ins VALUES(1);
+CREATE TABLE t_dml_upd(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+INSERT INTO t_dml_upd VALUES(1);
+CREATE TABLE t_dml_del(i INT PRIMARY KEY)
+ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+INSERT INTO t_dml_del VALUES(1);
+###
+# Test for DDL during backup for online backup
+#####
+CREATE DATABASE test_for_db_drop;
+CREATE TABLE test_for_db_drop.t(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_db_create(i INT PRIMARY KEY) ENGINE ARIA;
+SHOW DATABASES;
+Database
+information_schema
+mtr
+mysql
+performance_schema
+sys
+test
+test_for_db_drop
+CREATE TABLE t_alter(i INT PRIMARY KEY) ENGINE ARIA;
+INSERT INTO t_alter VALUES (1);
+CREATE TABLE t_trunc(i INT PRIMARY KEY) ENGINE ARIA;
+INSERT INTO t_trunc VALUES (1);
+CREATE TABLE t_ch_i (i int(10), index(i) ) ENGINE=Aria;
+INSERT INTO t_ch_i VALUES(1);
+CREATE TABLE t_change_engine(i INT PRIMARY KEY) ENGINE InnoDB;
+INSERT INTO t_change_engine VALUES (1);
+CREATE TABLE t_rename(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE DATABASE test_for_rename;
+CREATE TABLE t_rename_2(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_rename_3(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_rename_4(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_delete(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_delete_2(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_rename_alter(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_rename_create(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_part_create(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_part_add_part(i INT PRIMARY KEY) ENGINE ARIA;
+CREATE TABLE t_part_change_eng(i INT PRIMARY KEY) ENGINE ARIA PARTITION BY HASH(i) PARTITIONS 2;
+CREATE TABLE t_part_change_eng_2(i INT PRIMARY KEY) ENGINE InnoDB PARTITION BY HASH(i) PARTITIONS 2;
+CREATE TABLE t_part_change_eng_3(i INT PRIMARY KEY) ENGINE Aria;
+CREATE TABLE t_part_alter(i INT PRIMARY KEY) ENGINE Aria PARTITION BY HASH(i) PARTITIONS 2;
+CREATE TABLE t_part_alter_2(i INT PRIMARY KEY) ENGINE Aria PARTITION BY HASH(i) PARTITIONS 3;
+CREATE TABLE t_part_drop(i INT PRIMARY KEY) ENGINE Aria PARTITION BY HASH(i) PARTITIONS 2;
+CREATE TABLE t_part_rename(i INT PRIMARY KEY) ENGINE Aria PARTITION BY HASH(i) PARTITIONS 2;
+CREATE TABLE t_part_rename_3(i INT PRIMARY KEY) ENGINE Aria PARTITION BY HASH(i) PARTITIONS 2;
+CREATE TABLE t_part_rm_part(i INT PRIMARY KEY) ENGINE Aria PARTITION BY HASH(i) PARTITIONS 2;
+SET SESSION debug_dbug="+d,maria_flush_whole_log";
+SET GLOBAL aria_checkpoint_interval=10000;
+### Backup to dir
+# xtrabackup prepare
+# shutdown server
+# remove datadir
+# xtrabackup move back
+# restart
+### Result for DDL test
+SHOW CREATE TABLE t_alter;
+Table Create Table
+t_alter CREATE TABLE `t_alter` (
+ `i` int(11) NOT NULL,
+ `c` int(11) DEFAULT NULL,
+ PRIMARY KEY (`i`)
+) ENGINE=Aria DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1
+SELECT * FROM t_alter;
+i c
+1 NULL
+SHOW CREATE TABLE t_change_engine;
+Table Create Table
+t_change_engine CREATE TABLE `t_change_engine` (
+ `i` int(11) NOT NULL,
+ PRIMARY KEY (`i`)
+) ENGINE=Aria DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1
+SELECT * FROM t_change_engine;
+i
+1
+SELECT * FROM t_trunc;
+i
+1
+SELECT * FROM t_ch_i;
+i
+1
+SELECT * FROM t_rename_new;
+i
+SELECT * FROM test_for_rename.t_rename_new_2;
+i
+SELECT * FROM t_rename_new_new_3;
+i
+SELECT * FROM t_rename_new_4;
+i
+SELECT * FROM t_delete;
+ERROR 42S02: Table 'test.t_delete' doesn't exist
+SHOW CREATE TABLE t_delete_2;
+Table Create Table
+t_delete_2 CREATE TABLE `t_delete_2` (
+ `i` int(11) NOT NULL,
+ PRIMARY KEY (`i`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1
+SELECT * FROM t_rename_alter_2;
+i c
+SELECT * FROM t_rename_create;
+d
+SELECT * FROM t_rename_create_new;
+i
+SHOW CREATE TABLE t_part_create_2;
+Table Create Table
+t_part_create_2 CREATE TABLE `t_part_create_2` (
+ `i` int(11) DEFAULT NULL
+) ENGINE=Aria DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+ PARTITION BY HASH (`i`)
+PARTITIONS 2
+SELECT * FROM t_part_create_2;
+i
+SHOW CREATE TABLE t_part_add_part;
+Table Create Table
+t_part_add_part CREATE TABLE `t_part_add_part` (
+ `i` int(11) NOT NULL,
+ PRIMARY KEY (`i`)
+) ENGINE=Aria DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1
+ PARTITION BY HASH (`i`)
+PARTITIONS 2
+SELECT * FROM t_part_add_part;
+i
+SHOW CREATE TABLE t_part_change_eng;
+Table Create Table
+t_part_change_eng CREATE TABLE `t_part_change_eng` (
+ `i` int(11) NOT NULL,
+ PRIMARY KEY (`i`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+ PARTITION BY HASH (`i`)
+PARTITIONS 2
+SELECT * FROM t_part_change_eng;
+i
+SHOW CREATE TABLE t_part_change_eng_2;
+Table Create Table
+t_part_change_eng_2 CREATE TABLE `t_part_change_eng_2` (
+ `i` int(11) NOT NULL,
+ PRIMARY KEY (`i`)
+) ENGINE=Aria DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+ PARTITION BY HASH (`i`)
+PARTITIONS 2
+SELECT * FROM t_part_change_eng_2;
+i
+SELECT * FROM t_part_alter;
+i c
+SHOW CREATE TABLE t_part_alter_2;
+Table Create Table
+t_part_alter_2 CREATE TABLE `t_part_alter_2` (
+ `i` int(11) NOT NULL,
+ PRIMARY KEY (`i`)
+) ENGINE=Aria DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+ PARTITION BY HASH (`i`)
+PARTITIONS 2
+SELECT * FROM t_part_alter_2;
+i
+SELECT * FROM t_part_drop;
+ERROR 42S02: Table 'test.t_part_drop' doesn't exist
+SELECT * FROM t_part_rename;
+ERROR 42S02: Table 'test.t_part_rename' doesn't exist
+SELECT * FROM t_part_rename_2;
+i
+SELECT * FROM t_part_rename_3;
+ERROR 42S02: Table 'test.t_part_rename_3' doesn't exist
+SELECT * FROM test_for_rename.t_part_rename_4;
+i
+SHOW CREATE TABLE t_part_rm_part;
+Table Create Table
+t_part_rm_part CREATE TABLE `t_part_rm_part` (
+ `i` int(11) NOT NULL,
+ `c` int(11) DEFAULT NULL,
+ PRIMARY KEY (`i`)
+) ENGINE=Aria DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1
+SELECT * FROM t_part_rm_part;
+i c
+SHOW DATABASES;
+Database
+information_schema
+mtr
+mysql
+performance_schema
+sys
+test
+test_for_db_create
+test_for_rename
+### Clean up for DDL test
+DROP DATABASE test_for_db_create;
+DROP TABLE t_db_create;
+DROP TABLE t_change_engine;
+DROP TABLE t_alter;
+DROP TABLE t_trunc;
+DROP TABLE t_ch_i;
+DROP TABLE t_rename_new;
+DROP TABLE t_rename_new_new_3;
+DROP TABLE t_rename_new_4;
+DROP TABLE t_delete_2;
+DROP TABLE t_rename_alter_2;
+DROP TABLE t_rename_create;
+DROP TABLE t_rename_create_new;
+DROP TABLE t_part_create;
+DROP TABLE t_part_create_2;
+DROP TABLE t_part_add_part;
+DROP TABLE t_part_change_eng;
+DROP TABLE t_part_change_eng_2;
+DROP TABLE t_part_change_eng_3;
+DROP TABLE t_part_alter;
+DROP TABLE t_part_alter_2;
+DROP TABLE t_part_rename_2;
+DROP TABLE t_part_rm_part;
+DROP DATABASE test_for_rename;
+### Result for DML test
+SELECT * FROM t_dml_ins;
+i
+1
+2
+SELECT * FROM t_dml_upd;
+i
+2
+SELECT * FROM t_dml_del;
+i
+### Clean up for DML test
+DROP TABLE t_dml_ins;
+DROP TABLE t_dml_upd;
+DROP TABLE t_dml_del;
+### Result for redo log files backup
+# ok
+# ok
+# ok
+### Cleanup for redo log files backup
+DROP TABLE t_logs_1;
+DROP TABLE t_logs_2;
+DROP TABLE t_bulk_ins;
+### Result for online/offline tables test
+SELECT * FROM t_default;
+i
+1
+SELECT * FROM t_tr_p_ch;
+i
+1
+SELECT * FROM t_tr_p_nch;
+i
+1
+SELECT * FROM t_p_ch;
+i
+1
+SELECT * FROM t_p_nch;
+i
+1
+SELECT * FROM t_fixed;
+i
+1
+SELECT * FROM t_dyn;
+i
+1
+SELECT * FROM t_part_online;
+i
+5
+15
+25
+SELECT * FROM t_part_offline;
+i
+5
+15
+25
+SELECT * FROM `t 1 t-1`;
+i
+1
+SELECT * FROM `t-part online`;
+i
+5
+15
+25
+### Cleanup for online/offline tables test
+DROP TABLE t_default;
+DROP TABLE t_tr_p_ch;
+DROP TABLE t_tr_p_nch;
+DROP TABLE t_p_ch;
+DROP TABLE t_p_nch;
+DROP TABLE t_fixed;
+DROP TABLE t_dyn;
+DROP TABLE t_part_online;
+DROP TABLE t_part_offline;
+DROP TABLE `t 1 t-1`;
+DROP TABLE `t-part online`;
diff --git a/mysql-test/suite/mariabackup/aria_backup.test b/mysql-test/suite/mariabackup/aria_backup.test
new file mode 100644
index 00000000..b844518b
--- /dev/null
+++ b/mysql-test/suite/mariabackup/aria_backup.test
@@ -0,0 +1,425 @@
+--source include/have_aria.inc
+--source include/have_partition.inc
+--source include/have_debug.inc
+--source include/big_test.inc
+# This test timeouts with msan
+--source include/not_msan.inc
+
+--let $targetdir=$MYSQLTEST_VARDIR/tmp/backup
+--let $backup_stream=2
+--let $backup_dir=1
+--let $backup_variant=$backup_stream
+
+while ($backup_variant) {
+if ($backup_variant == $backup_stream) {
+--echo ###
+--echo # Test for backup to stream
+--echo #####
+}
+if ($backup_variant == $backup_dir) {
+--echo ###
+--echo # Test for backup to directory
+--echo #####
+}
+
+--echo ###
+--echo # Test for mix of online/offline backup tables
+--echo #####
+
+CREATE TABLE t_default(i INT PRIMARY KEY)
+ ENGINE ARIA;
+INSERT INTO t_default VALUES (1);
+
+CREATE TABLE t_tr_p_ch(i INT PRIMARY KEY)
+ ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+INSERT INTO t_tr_p_ch VALUES (1);
+
+CREATE TABLE t_tr_p_nch(i INT PRIMARY KEY)
+ ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=0;
+INSERT INTO t_tr_p_nch VALUES (1);
+
+CREATE TABLE t_p_ch(i INT PRIMARY KEY)
+ ENGINE ARIA TRANSACTIONAL=0 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+INSERT INTO t_p_ch VALUES (1);
+
+CREATE TABLE t_p_nch(i INT PRIMARY KEY)
+ ENGINE ARIA TRANSACTIONAL=0 ROW_FORMAT=PAGE PAGE_CHECKSUM=0;
+INSERT INTO t_p_nch VALUES (1);
+
+CREATE TABLE t_fixed(i INT PRIMARY KEY)
+ ENGINE ARIA TRANSACTIONAL=0 ROW_FORMAT=FIXED PAGE_CHECKSUM=1;
+INSERT INTO t_fixed VALUES (1);
+
+CREATE TABLE t_dyn(i INT PRIMARY KEY)
+ ENGINE ARIA TRANSACTIONAL=0 ROW_FORMAT=DYNAMIC PAGE_CHECKSUM=1;
+INSERT INTO t_dyn VALUES (1);
+
+--echo # Test for partitioned table
+CREATE TABLE t_part_online(i INT PRIMARY KEY)
+ ENGINE ARIA TRANSACTIONAL = 1 PAGE_CHECKSUM = 1
+ PARTITION BY RANGE( i ) (
+ PARTITION p0 VALUES LESS THAN (10),
+ PARTITION p1 VALUES LESS THAN (20),
+ PARTITION p2 VALUES LESS THAN (30)
+ );
+
+INSERT INTO t_part_online VALUES(5);
+INSERT INTO t_part_online VALUES(15);
+INSERT INTO t_part_online VALUES(25);
+SELECT * FROM t_part_online;
+
+CREATE TABLE t_part_offline(i INT)
+ ENGINE ARIA TRANSACTIONAL = 0 PAGE_CHECKSUM = 0
+ PARTITION BY RANGE( i ) (
+ PARTITION p0 VALUES LESS THAN (10),
+ PARTITION p1 VALUES LESS THAN (20),
+ PARTITION p2 VALUES LESS THAN (30)
+ );
+
+INSERT INTO t_part_offline VALUES(5);
+INSERT INTO t_part_offline VALUES(15);
+INSERT INTO t_part_offline VALUES(25);
+
+--echo # Test for filename to tablename mapping
+CREATE TABLE `t 1 t-1`(i INT PRIMARY KEY)
+ ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+INSERT INTO `t 1 t-1` VALUES (1);
+
+CREATE TABLE `t-part online`(i INT PRIMARY KEY)
+ ENGINE ARIA TRANSACTIONAL = 1 PAGE_CHECKSUM = 1
+ PARTITION BY RANGE( i ) (
+ PARTITION p0 VALUES LESS THAN (10),
+ PARTITION p1 VALUES LESS THAN (20),
+ PARTITION p2 VALUES LESS THAN (30)
+ );
+
+INSERT INTO `t-part online` VALUES(5);
+INSERT INTO `t-part online` VALUES(15);
+INSERT INTO `t-part online` VALUES(25);
+
+
+--echo ###
+--echo # Test for redo log files backup;
+--echo #####
+CREATE TABLE t_logs_1(i INT)
+ ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+CREATE TABLE t_logs_2 LIKE t_logs_1;
+CREATE TABLE t_bulk_ins LIKE t_logs_1;
+INSERT INTO t_logs_1 VALUES
+ (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+ (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+ (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+ (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+ (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+ (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+ (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+ (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+ (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+ (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);
+--echo # Generate several log files
+--let $i = 0
+while ($i < 14) {
+INSERT INTO t_logs_1 SELECT * FROM t_logs_1;
+--inc $i
+}
+
+--echo ###
+--echo # Test for DML during backup for online backup
+--echo #####
+CREATE TABLE t_dml_ins(i INT PRIMARY KEY)
+ ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+INSERT INTO t_dml_ins VALUES(1);
+--let after_aria_table_copy_test_t_dml_ins=INSERT INTO test.t_dml_ins VALUES(2)
+CREATE TABLE t_dml_upd(i INT PRIMARY KEY)
+ ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+INSERT INTO t_dml_upd VALUES(1);
+--let after_aria_table_copy_test_t_dml_upd=UPDATE test.t_dml_upd SET i = 2
+CREATE TABLE t_dml_del(i INT PRIMARY KEY)
+ ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+INSERT INTO t_dml_del VALUES(1);
+--let after_aria_table_copy_test_t_dml_del=DELETE FROM test.t_dml_del
+
+--echo ###
+--echo # Test for DDL during backup for online backup
+--echo #####
+CREATE DATABASE test_for_db_drop;
+CREATE TABLE test_for_db_drop.t(i INT PRIMARY KEY) ENGINE ARIA;
+--let after_aria_table_copy_test_for_db_drop_t=DROP DATABASE test_for_db_drop
+CREATE TABLE t_db_create(i INT PRIMARY KEY) ENGINE ARIA;
+--let after_aria_table_copy_test_t_db_create=CREATE DATABASE test_for_db_create
+--sorted_result
+SHOW DATABASES;
+
+CREATE TABLE t_alter(i INT PRIMARY KEY) ENGINE ARIA;
+INSERT INTO t_alter VALUES (1);
+--let after_aria_table_copy_test_t_alter=ALTER TABLE test.t_alter ADD COLUMN c INT
+
+CREATE TABLE t_trunc(i INT PRIMARY KEY) ENGINE ARIA;
+INSERT INTO t_trunc VALUES (1);
+--let after_aria_table_copy_test_t_trunc=TRUNCATE TABLE test.t_trunc
+
+CREATE TABLE t_ch_i (i int(10), index(i) ) ENGINE=Aria;
+INSERT INTO t_ch_i VALUES(1);
+--let after_aria_table_copy_test_t_ch_i=ALTER TABLE test.t_ch_i DISABLE KEYS
+
+CREATE TABLE t_change_engine(i INT PRIMARY KEY) ENGINE InnoDB;
+INSERT INTO t_change_engine VALUES (1);
+--let after_aria_background=begin not atomic ALTER TABLE test.t_change_engine ENGINE = ARIA; INSERT INTO test.t_logs_1 SELECT * FROM test.t_logs_1; INSERT INTO test.t_bulk_ins SELECT * FROM test.t_logs_1; INSERT INTO test.t_logs_2 SET i = 1; end
+
+CREATE TABLE t_rename(i INT PRIMARY KEY) ENGINE ARIA;
+--let after_aria_table_copy_test_t_rename=RENAME TABLE test.t_rename TO test.t_rename_new
+CREATE DATABASE test_for_rename;
+CREATE TABLE t_rename_2(i INT PRIMARY KEY) ENGINE ARIA;
+--let after_aria_table_copy_test_t_rename_2=RENAME TABLE test.t_rename_2 TO test_for_rename.t_rename_new_2
+
+CREATE TABLE t_rename_3(i INT PRIMARY KEY) ENGINE ARIA;
+--let after_aria_table_copy_test_t_rename_3=begin not atomic RENAME TABLE test.t_rename_3 TO test.t_rename_new_3; RENAME TABLE test.t_rename_new_3 TO test.t_rename_new_new_3; end
+
+CREATE TABLE t_rename_4(i INT PRIMARY KEY) ENGINE ARIA;
+--let after_aria_table_copy_test_t_rename_4=begin not atomic RENAME TABLE test.t_rename_4 TO test.t_rename_new_4; RENAME TABLE test.t_rename_new_4 TO test.t_rename_new_new_4; RENAME TABLE test.t_rename_new_new_4 TO test.t_rename_new_4; end
+
+CREATE TABLE t_delete(i INT PRIMARY KEY) ENGINE ARIA;
+--let after_aria_table_copy_test_t_delete=DROP TABLE test.t_delete
+
+CREATE TABLE t_delete_2(i INT PRIMARY KEY) ENGINE ARIA;
+--let after_aria_table_copy_test_t_delete_2=ALTER TABLE test.t_delete_2 ENGINE=Innodb
+
+CREATE TABLE t_rename_alter(i INT PRIMARY KEY) ENGINE ARIA;
+--let after_aria_table_copy_test_t_rename_alter=begin not atomic RENAME TABLE test.t_rename_alter TO test.t_rename_alter_2; ALTER TABLE test.t_rename_alter_2 ADD COLUMN c INT; end
+
+CREATE TABLE t_rename_create(i INT PRIMARY KEY) ENGINE ARIA;
+--let after_aria_table_copy_test_t_rename_create=begin not atomic RENAME TABLE test.t_rename_create TO test.t_rename_create_new; CREATE TABLE test.t_rename_create(d INT PRIMARY KEY) ENGINE ARIA; end
+
+CREATE TABLE t_part_create(i INT PRIMARY KEY) ENGINE ARIA;
+--let after_aria_table_copy_test_t_part_create=create table test.t_part_create_2 (i int) engine=Aria PARTITION BY HASH(i) PARTITIONS 2
+
+CREATE TABLE t_part_add_part(i INT PRIMARY KEY) ENGINE ARIA;
+--let after_aria_table_copy_test_t_part_add_part=alter table test.t_part_add_part PARTITION BY HASH(i) PARTITIONS 2
+
+CREATE TABLE t_part_change_eng(i INT PRIMARY KEY) ENGINE ARIA PARTITION BY HASH(i) PARTITIONS 2;
+--let after_aria_table_copy_test_t_part_change_eng=alter table test.t_part_change_eng ENGINE=InnoDB
+
+CREATE TABLE t_part_change_eng_2(i INT PRIMARY KEY) ENGINE InnoDB PARTITION BY HASH(i) PARTITIONS 2;
+CREATE TABLE t_part_change_eng_3(i INT PRIMARY KEY) ENGINE Aria;
+--let after_aria_table_copy_test_t_part_change_eng_3=alter table test.t_part_change_eng_2 ENGINE=Aria
+
+CREATE TABLE t_part_alter(i INT PRIMARY KEY) ENGINE Aria PARTITION BY HASH(i) PARTITIONS 2;
+--let after_aria_table_copy_test_t_part_alter=alter table test.t_part_alter ADD COLUMN c INT
+
+CREATE TABLE t_part_alter_2(i INT PRIMARY KEY) ENGINE Aria PARTITION BY HASH(i) PARTITIONS 3;
+--let after_aria_table_copy_test_t_part_alter_2=alter table test.t_part_alter_2 COALESCE PARTITION 1
+
+CREATE TABLE t_part_drop(i INT PRIMARY KEY) ENGINE Aria PARTITION BY HASH(i) PARTITIONS 2;
+--let after_aria_table_copy_test_t_part_drop=DROP table test.t_part_drop
+
+CREATE TABLE t_part_rename(i INT PRIMARY KEY) ENGINE Aria PARTITION BY HASH(i) PARTITIONS 2;
+--let after_aria_table_copy_test_t_part_rename=RENAME TABLE test.t_part_rename TO test.t_part_rename_2
+
+CREATE TABLE t_part_rename_3(i INT PRIMARY KEY) ENGINE Aria PARTITION BY HASH(i) PARTITIONS 2;
+--let after_aria_table_copy_test_t_part_rename_3=RENAME TABLE test.t_part_rename_3 TO test_for_rename.t_part_rename_4
+
+CREATE TABLE t_part_rm_part(i INT PRIMARY KEY) ENGINE Aria PARTITION BY HASH(i) PARTITIONS 2;
+--let after_aria_table_copy_test_t_part_rm_part=begin not atomic ALTER TABLE test.t_part_rm_part REMOVE PARTITIONING; ALTER TABLE test.t_part_rm_part ADD COLUMN c INT; end
+
+SET SESSION debug_dbug="+d,maria_flush_whole_log";
+SET GLOBAL aria_checkpoint_interval=10000;
+
+--mkdir $targetdir
+
+if ($backup_variant == $backup_stream) {
+--echo ### Backup to stream
+--let $streamfile=$MYSQLTEST_VARDIR/tmp/backup.xb
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir --dbug=+d,mariabackup_events --stream=xbstream > $streamfile 2>$targetdir/backup_stream.log;
+--disable_result_log
+exec $XBSTREAM -x -C $targetdir < $streamfile;
+--enable_result_log
+}
+
+if ($backup_variant == $backup_dir) {
+--echo ### Backup to dir
+--disable_result_log
+--exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir --dbug=+d,mariabackup_events
+--enable_result_log
+}
+
+--let $t_logs_1_records_count_before_backup=`SELECT COUNT(*) FROM t_logs_1`
+--let $t_logs_2_records_count_before_backup=`SELECT COUNT(*) FROM t_logs_2`
+--let $t_bulk_ins_records_count_before_backup=`SELECT COUNT(*) FROM t_bulk_ins`
+
+--echo # xtrabackup prepare
+--disable_result_log
+--exec $XTRABACKUP --prepare --target-dir=$targetdir
+--source include/restart_and_restore.inc
+--enable_result_log
+
+--echo ### Result for DDL test
+SHOW CREATE TABLE t_alter;
+SELECT * FROM t_alter;
+SHOW CREATE TABLE t_change_engine;
+SELECT * FROM t_change_engine;
+SELECT * FROM t_trunc;
+SELECT * FROM t_ch_i;
+SELECT * FROM t_rename_new;
+SELECT * FROM test_for_rename.t_rename_new_2;
+SELECT * FROM t_rename_new_new_3;
+SELECT * FROM t_rename_new_4;
+--error ER_NO_SUCH_TABLE
+SELECT * FROM t_delete;
+SHOW CREATE TABLE t_delete_2;
+SELECT * FROM t_rename_alter_2;
+SELECT * FROM t_rename_create;
+SELECT * FROM t_rename_create_new;
+SHOW CREATE TABLE t_part_create_2;
+SELECT * FROM t_part_create_2;
+SHOW CREATE TABLE t_part_add_part;
+SELECT * FROM t_part_add_part;
+SHOW CREATE TABLE t_part_change_eng;
+SELECT * FROM t_part_change_eng;
+SHOW CREATE TABLE t_part_change_eng_2;
+SELECT * FROM t_part_change_eng_2;
+SELECT * FROM t_part_alter;
+SHOW CREATE TABLE t_part_alter_2;
+SELECT * FROM t_part_alter_2;
+--error ER_NO_SUCH_TABLE
+SELECT * FROM t_part_drop;
+--error ER_NO_SUCH_TABLE
+SELECT * FROM t_part_rename;
+SELECT * FROM t_part_rename_2;
+--error ER_NO_SUCH_TABLE
+SELECT * FROM t_part_rename_3;
+SELECT * FROM test_for_rename.t_part_rename_4;
+SHOW CREATE TABLE t_part_rm_part;
+SELECT * FROM t_part_rm_part;
+--sorted_result
+SHOW DATABASES;
+
+--echo ### Clean up for DDL test
+DROP DATABASE test_for_db_create;
+DROP TABLE t_db_create;
+DROP TABLE t_change_engine;
+DROP TABLE t_alter;
+DROP TABLE t_trunc;
+DROP TABLE t_ch_i;
+DROP TABLE t_rename_new;
+DROP TABLE t_rename_new_new_3;
+DROP TABLE t_rename_new_4;
+DROP TABLE t_delete_2;
+DROP TABLE t_rename_alter_2;
+DROP TABLE t_rename_create;
+DROP TABLE t_rename_create_new;
+DROP TABLE t_part_create;
+DROP TABLE t_part_create_2;
+DROP TABLE t_part_add_part;
+DROP TABLE t_part_change_eng;
+DROP TABLE t_part_change_eng_2;
+DROP TABLE t_part_change_eng_3;
+DROP TABLE t_part_alter;
+DROP TABLE t_part_alter_2;
+DROP TABLE t_part_rename_2;
+DROP TABLE t_part_rm_part;
+DROP DATABASE test_for_rename;
+--let after_aria_table_copy_test_for_db_drop_t=
+--let after_aria_table_copy_test_t_db_create=
+--let after_aria_table_copy_test_t_alter=
+--let after_aria_background=
+--let after_aria_table_copy_test_t_trunc=
+--let after_aria_table_copy_test_t_ch_i=
+--let after_aria_table_copy_test_t_rename=
+--let after_aria_table_copy_test_t_rename_2=
+--let after_aria_table_copy_test_t_rename_3=
+--let after_aria_table_copy_test_t_rename_4=
+--let after_aria_table_copy_test_t_delete=
+--let after_aria_table_copy_test_t_delete_2=
+--let after_aria_table_copy_test_t_rename_alter=
+--let after_aria_table_copy_test_t_rename_create=
+--let after_aria_table_copy_test_t_part_create=
+--let after_aria_table_copy_test_t_part_add_part=
+--let after_aria_table_copy_test_t_part_change_eng=
+--let after_aria_table_copy_test_t_part_change_eng_3=
+--let after_aria_table_copy_test_t_part_alter=
+--let after_aria_table_copy_test_t_part_alter_2=
+--let after_aria_table_copy_test_t_part_drop=
+--let after_aria_table_copy_test_t_part_rename=
+--let after_aria_table_copy_test_t_part_rename_3=
+--let after_aria_table_copy_test_t_part_rm_part=
+
+--echo ### Result for DML test
+SELECT * FROM t_dml_ins;
+SELECT * FROM t_dml_upd;
+SELECT * FROM t_dml_del;
+
+--echo ### Clean up for DML test
+DROP TABLE t_dml_ins;
+DROP TABLE t_dml_upd;
+DROP TABLE t_dml_del;
+--let after_aria_table_copy_test_t_dml_ins=
+--let after_aria_table_copy_test_t_dml_upd=
+--let after_aria_table_copy_test_t_dml_del=
+
+--echo ### Result for redo log files backup
+--let $t_logs_1_records_count_after_backup=`SELECT COUNT(*) FROM t_logs_1`
+--let $t_logs_2_records_count_after_backup=`SELECT COUNT(*) FROM t_logs_2`
+--let $t_bulk_ins_records_count_after_backup=`SELECT COUNT(*) FROM t_bulk_ins`
+if ($t_logs_1_records_count_after_backup == $t_logs_1_records_count_before_backup) {
+--echo # ok
+}
+if ($t_logs_1_records_count_after_backup != $t_logs_1_records_count_before_backup) {
+--echo # failed
+}
+if ($t_logs_2_records_count_after_backup == $t_logs_2_records_count_before_backup) {
+--echo # ok
+}
+if ($t_logs_2_records_count_after_backup != $t_logs_2_records_count_before_backup) {
+--echo # failed
+}
+if ($t_bulk_ins_records_count_after_backup == $t_bulk_ins_records_count_before_backup) {
+--echo # ok
+}
+if ($t_bulk_ins_records_count_after_backup != $t_bulk_ins_records_count_before_backup) {
+--echo # failed
+}
+
+--echo ### Cleanup for redo log files backup
+DROP TABLE t_logs_1;
+DROP TABLE t_logs_2;
+DROP TABLE t_bulk_ins;
+--let $t_logs_1_records_count_before_backup=
+--let $t_logs_1_records_count_after_backup=
+--let $t_logs_2_records_count_before_backup=
+--let $t_logs_2_records_count_after_backup=
+--let $t_bulk_ins_records_count_before_backup=
+--let $t_bulk_ins_records_count_after_backup=
+
+--echo ### Result for online/offline tables test
+SELECT * FROM t_default;
+SELECT * FROM t_tr_p_ch;
+SELECT * FROM t_tr_p_nch;
+SELECT * FROM t_p_ch;
+SELECT * FROM t_p_nch;
+SELECT * FROM t_fixed;
+SELECT * FROM t_dyn;
+SELECT * FROM t_part_online;
+SELECT * FROM t_part_offline;
+SELECT * FROM `t 1 t-1`;
+SELECT * FROM `t-part online`;
+
+--echo ### Cleanup for online/offline tables test
+DROP TABLE t_default;
+DROP TABLE t_tr_p_ch;
+DROP TABLE t_tr_p_nch;
+DROP TABLE t_p_ch;
+DROP TABLE t_p_nch;
+DROP TABLE t_fixed;
+DROP TABLE t_dyn;
+DROP TABLE t_part_online;
+DROP TABLE t_part_offline;
+DROP TABLE `t 1 t-1`;
+DROP TABLE `t-part online`;
+
+if ($backup_variant == $backup_stream) {
+--remove_file $streamfile
+}
+--rmdir $targetdir
+--dec $backup_variant
+}
+
diff --git a/mysql-test/suite/mariabackup/aria_log.opt b/mysql-test/suite/mariabackup/aria_log.opt
new file mode 100644
index 00000000..f226499f
--- /dev/null
+++ b/mysql-test/suite/mariabackup/aria_log.opt
@@ -0,0 +1 @@
+--loose-aria-log-file-size=8388608
diff --git a/mysql-test/suite/mariabackup/aria_log_dir_path.result b/mysql-test/suite/mariabackup/aria_log_dir_path.result
index 1a877321..ead4b836 100644
--- a/mysql-test/suite/mariabackup/aria_log_dir_path.result
+++ b/mysql-test/suite/mariabackup/aria_log_dir_path.result
@@ -35,7 +35,6 @@ DROP TABLE t1;
SET @@global.aria_checkpoint_interval=DEFAULT /*Force checkpoint*/;
SHOW ENGINE aria logs;
Type Name Status
-Aria aria_log.00000001 free
Aria aria_log.00000002 in use
# Restarting mariadbd with default parameters
# restart
diff --git a/mysql-test/suite/mariabackup/aria_log_dir_path.test b/mysql-test/suite/mariabackup/aria_log_dir_path.test
index 0178cd4e..40bc3944 100644
--- a/mysql-test/suite/mariabackup/aria_log_dir_path.test
+++ b/mysql-test/suite/mariabackup/aria_log_dir_path.test
@@ -48,7 +48,6 @@ SET @@global.aria_checkpoint_interval=DEFAULT /*Force checkpoint*/;
--replace_regex /Size +[0-9]+ ; .+aria_log/aria_log/
SHOW ENGINE aria logs;
-
--echo # mariadb-backup --backup
--disable_result_log
--mkdir $targetdir
@@ -61,7 +60,6 @@ SHOW ENGINE aria logs;
--exec $XTRABACKUP --prepare --target-dir=$targetdir
--enable_result_log
-
--echo # shutdown server
--disable_result_log
--source include/shutdown_mysqld.inc
@@ -70,12 +68,14 @@ SHOW ENGINE aria logs;
--echo # remove aria-log-dir-path
--rmdir $ARIA_LOGDIR_FS
+
--echo # mariadb-backup --copy-back
--let $mariadb_backup_parameters=--defaults-file=$MYSQLTEST_VARDIR/my.cnf --copy-back --datadir=$datadir --target-dir=$targetdir --parallel=2 --throttle=1 --aria-log-dir-path=$ARIA_LOGDIR_MARIADB
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--exec echo "# with parameters: $mariadb_backup_parameters"
--exec $XTRABACKUP $mariadb_backup_parameters
+
--echo # starting server
--let $restart_parameters=$server_parameters
--source include/start_mysqld.inc
@@ -91,7 +91,7 @@ DROP TABLE t1;
--echo # Testing aria log files after --copy-back
SET @@global.aria_checkpoint_interval=DEFAULT /*Force checkpoint*/;
--file_exists $ARIA_LOGDIR_FS/aria_log_control
---file_exists $ARIA_LOGDIR_FS/aria_log.00000001
+#--file_exists $ARIA_LOGDIR_FS/aria_log.00000001
--file_exists $ARIA_LOGDIR_FS/aria_log.00000002
--error 1
--file_exists $ARIA_LOGDIR_FS/aria_log.00000003
diff --git a/mysql-test/suite/mariabackup/aria_log_dir_path_rel.result b/mysql-test/suite/mariabackup/aria_log_dir_path_rel.result
index 7fef2609..736bc556 100644
--- a/mysql-test/suite/mariabackup/aria_log_dir_path_rel.result
+++ b/mysql-test/suite/mariabackup/aria_log_dir_path_rel.result
@@ -35,7 +35,6 @@ DROP TABLE t1;
SET @@global.aria_checkpoint_interval=DEFAULT /*Force checkpoint*/;
SHOW ENGINE aria logs;
Type Name Status
-Aria aria_log.00000001 free
Aria aria_log.00000002 in use
# Restarting mariadbd with default parameters
# restart
diff --git a/mysql-test/suite/mariabackup/aria_log_rotate_during_backup.opt b/mysql-test/suite/mariabackup/aria_log_rotate_during_backup.opt
new file mode 100644
index 00000000..7c3ebe42
--- /dev/null
+++ b/mysql-test/suite/mariabackup/aria_log_rotate_during_backup.opt
@@ -0,0 +1,2 @@
+--loose-aria-log-file-size=8388608
+--loose-restart-for-aria_log_rotate_during_backup="This is needed to recreate datadir, to have Aria start logs from aria_log.00000001"
diff --git a/mysql-test/suite/mariabackup/aria_log_rotate_during_backup.result b/mysql-test/suite/mariabackup/aria_log_rotate_during_backup.result
new file mode 100644
index 00000000..0691bce8
--- /dev/null
+++ b/mysql-test/suite/mariabackup/aria_log_rotate_during_backup.result
@@ -0,0 +1,58 @@
+SHOW VARIABLES LIKE 'aria_log_file_size';
+Variable_name Value
+aria_log_file_size 8388608
+CREATE PROCEDURE display_aria_log_control(ctrl BLOB)
+BEGIN
+SELECT HEX(REVERSE(SUBSTRING(ctrl, 42, 4))) AS last_logno;
+END;
+$$
+CREATE PROCEDURE populate_t1()
+BEGIN
+FOR id IN 0..9 DO
+INSERT INTO test.t1 (id, txt) VALUES (id, REPEAT(id,1024*1024));
+END FOR;
+END;
+$$
+CREATE TABLE test.t1(id INT, txt LONGTEXT) ENGINE=Aria;
+# MYSQLD_DATADIR/aria_log_control before --backup
+CALL display_aria_log_control(@aria_log_control);
+last_logno
+00000001
+# Running --backup
+# MYSQLD_DATADIR/aria_log_control after --backup
+CALL display_aria_log_control(@aria_log_control);
+last_logno
+00000002
+# targetdir/aria_log_control after --backup
+CALL display_aria_log_control(@aria_log_control);
+last_logno
+00000001
+# Running --prepare
+# targetdir/aria_log_control after --prepare
+CALL display_aria_log_control(@aria_log_control);
+last_logno
+00000002
+# shutdown server
+# remove datadir
+# xtrabackup move back
+# restart
+# MYSQLD_DATADIR/aria_log_control after --copy-back
+CALL display_aria_log_control(@aria_log_control);
+last_logno
+00000002
+# Checking that after --restore all t1 data is there
+SELECT id, LENGTH(txt) FROM t1 ORDER BY id;
+id LENGTH(txt)
+0 1048576
+1 1048576
+2 1048576
+3 1048576
+4 1048576
+5 1048576
+6 1048576
+7 1048576
+8 1048576
+9 1048576
+DROP TABLE t1;
+DROP PROCEDURE populate_t1;
+DROP PROCEDURE display_aria_log_control;
diff --git a/mysql-test/suite/mariabackup/aria_log_rotate_during_backup.test b/mysql-test/suite/mariabackup/aria_log_rotate_during_backup.test
new file mode 100644
index 00000000..172ade33
--- /dev/null
+++ b/mysql-test/suite/mariabackup/aria_log_rotate_during_backup.test
@@ -0,0 +1,82 @@
+--source include/have_debug.inc
+--source include/have_aria.inc
+
+SHOW VARIABLES LIKE 'aria_log_file_size';
+
+--let $MYSQLD_DATADIR= `select @@datadir`
+--let $targetdir=$MYSQLTEST_VARDIR/tmp/backup
+mkdir $targetdir;
+
+
+DELIMITER $$;
+CREATE PROCEDURE display_aria_log_control(ctrl BLOB)
+BEGIN
+ SELECT HEX(REVERSE(SUBSTRING(ctrl, 42, 4))) AS last_logno;
+END;
+$$
+DELIMITER ;$$
+
+DELIMITER $$;
+CREATE PROCEDURE populate_t1()
+BEGIN
+ FOR id IN 0..9 DO
+ INSERT INTO test.t1 (id, txt) VALUES (id, REPEAT(id,1024*1024));
+ END FOR;
+END;
+$$
+DELIMITER ;$$
+
+
+CREATE TABLE test.t1(id INT, txt LONGTEXT) ENGINE=Aria;
+
+--echo # MYSQLD_DATADIR/aria_log_control before --backup
+--let ARIA_DATADIR=$MYSQLD_DATADIR
+--source include/aria_log_control_load.inc
+CALL display_aria_log_control(@aria_log_control);
+
+
+--echo # Running --backup
+--let after_scanning_log_files=CALL test.populate_t1
+--disable_result_log
+--exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir --dbug=+d,mariabackup_events 2>&1
+--let after_scanning_log_files=
+--enable_result_log
+
+--echo # MYSQLD_DATADIR/aria_log_control after --backup
+--let ARIA_DATADIR=$MYSQLD_DATADIR
+--source include/aria_log_control_load.inc
+CALL display_aria_log_control(@aria_log_control);
+
+--echo # targetdir/aria_log_control after --backup
+--let ARIA_DATADIR=$targetdir
+--source include/aria_log_control_load.inc
+CALL display_aria_log_control(@aria_log_control);
+
+
+--echo # Running --prepare
+--disable_result_log
+--exec $XTRABACKUP --prepare --target-dir=$targetdir
+--enable_result_log
+
+--echo # targetdir/aria_log_control after --prepare
+--let ARIA_DATADIR=$targetdir
+--source include/aria_log_control_load.inc
+CALL display_aria_log_control(@aria_log_control);
+
+
+--disable_result_log
+--source include/restart_and_restore.inc
+--enable_result_log
+
+--echo # MYSQLD_DATADIR/aria_log_control after --copy-back
+--let ARIA_DATADIR=$MYSQLD_DATADIR
+--source include/aria_log_control_load.inc
+CALL display_aria_log_control(@aria_log_control);
+
+--echo # Checking that after --restore all t1 data is there
+SELECT id, LENGTH(txt) FROM t1 ORDER BY id;
+DROP TABLE t1;
+rmdir $targetdir;
+
+DROP PROCEDURE populate_t1;
+DROP PROCEDURE display_aria_log_control;
diff --git a/mysql-test/suite/mariabackup/auth_plugin_win.test b/mysql-test/suite/mariabackup/auth_plugin_win.test
index 70ae74b7..7c0ba047 100644
--- a/mysql-test/suite/mariabackup/auth_plugin_win.test
+++ b/mysql-test/suite/mariabackup/auth_plugin_win.test
@@ -22,7 +22,7 @@ eval GRANT ALL PRIVILEGES ON *.* to '$USERNAME';
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf -u $USERNAME --backup --protocol=pipe --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf -u $USERNAME --backup --parallel=10 --protocol=pipe --target-dir=$targetdir;
--enable_result_log
--replace_result $USERNAME USERNAME
eval DROP USER '$USERNAME';
diff --git a/mysql-test/suite/mariabackup/backup_grants.result b/mysql-test/suite/mariabackup/backup_grants.result
index 6bd6c9f4..3407d288 100644
--- a/mysql-test/suite/mariabackup/backup_grants.result
+++ b/mysql-test/suite/mariabackup/backup_grants.result
@@ -1,4 +1,4 @@
-CREATE user backup@localhost;
+CREATE user backup@localhost IDENTIFIED BY 'xyz';
FOUND 1 /missing required privilege RELOAD/ in backup.log
FOUND 1 /missing required privilege PROCESS/ in backup.log
FOUND 1 /GRANT USAGE ON/ in backup.log
@@ -6,8 +6,6 @@ GRANT RELOAD, PROCESS on *.* to backup@localhost;
FOUND 1 /missing required privilege REPLICA MONITOR/ in backup.log
GRANT REPLICA MONITOR ON *.* TO backup@localhost;
REVOKE REPLICA MONITOR ON *.* FROM backup@localhost;
-FOUND 1 /missing required privilege CONNECTION ADMIN/ in backup.log
-GRANT CONNECTION ADMIN ON *.* TO backup@localhost;
FOUND 1 /missing required privilege REPLICATION SLAVE ADMIN/ in backup.log
FOUND 1 /missing required privilege REPLICA MONITOR/ in backup.log
GRANT REPLICATION SLAVE ADMIN ON *.* TO backup@localhost;
diff --git a/mysql-test/suite/mariabackup/backup_grants.test b/mysql-test/suite/mariabackup/backup_grants.test
index 18db3489..a90b4678 100644
--- a/mysql-test/suite/mariabackup/backup_grants.test
+++ b/mysql-test/suite/mariabackup/backup_grants.test
@@ -1,16 +1,16 @@
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
-CREATE user backup@localhost;
+CREATE user backup@localhost IDENTIFIED BY 'xyz';
# backup possible for unprivileges user, with --no-lock
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup -ubackup --no-lock --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 -ubackup -pxyz --no-lock --target-dir=$targetdir;
--enable_result_log
rmdir $targetdir;
# backup fails without --no-lock, because of FTWRL
--disable_result_log
error 1;
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup -ubackup --target-dir=$targetdir > $MYSQLTEST_VARDIR/tmp/backup.log 2>&1;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 -ubackup -pxyz --target-dir=$targetdir > $MYSQLTEST_VARDIR/tmp/backup.log 2>&1;
--enable_result_log
let SEARCH_FILE=$MYSQLTEST_VARDIR/tmp/backup.log;
@@ -23,7 +23,7 @@ let SEARCH_FILE=$MYSQLTEST_VARDIR/tmp/backup.log;
# backup succeeds with RELOAD privilege
GRANT RELOAD, PROCESS on *.* to backup@localhost;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup -ubackup --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --user=backup --password=xyz --target-dir=$targetdir;
--enable_result_log
rmdir $targetdir;
@@ -31,7 +31,7 @@ rmdir $targetdir;
# --slave-info and galera info require REPLICA MONITOR
--disable_result_log
error 1;
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup -ubackup --slave-info --target-dir=$targetdir > $MYSQLTEST_VARDIR/tmp/backup.log 2>&1;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --user=backup --password=xyz --slave-info --target-dir=$targetdir > $MYSQLTEST_VARDIR/tmp/backup.log 2>&1;
--enable_result_log
rmdir $targetdir;
@@ -40,33 +40,15 @@ rmdir $targetdir;
GRANT REPLICA MONITOR ON *.* TO backup@localhost;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup -ubackup --slave-info --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --user backup --password xyz --slave-info --target-dir=$targetdir;
--enable_result_log
rmdir $targetdir;
REVOKE REPLICA MONITOR ON *.* FROM backup@localhost;
-# TODO need a query that would delay a BACKUP STAGE START/ BACKUP STAGE BLOCK_COMMIT longer than the kill-long-queries-timeout
-#--send SELECT SLEEP(9) kill_me
-
-# kill-long-query-type=(not empty) requires CONNECTION ADMIN
---disable_result_log
---exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup -ubackup --kill-long-query-type=ALL --kill-long-queries-timeout=4 --target-dir=$targetdir > $MYSQLTEST_VARDIR/tmp/backup.log 2>&1;
---enable_result_log
-rmdir $targetdir;
-
---let SEARCH_PATTERN= missing required privilege CONNECTION ADMIN
---source include/search_pattern_in_file.inc
-
-GRANT CONNECTION ADMIN ON *.* TO backup@localhost;
---disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup -ubackup --kill-long-query-type=all --kill-long-queries-timeout=1 --target-dir=$targetdir;
---enable_result_log
-rmdir $targetdir;
-
# --safe-slave-backup requires REPLICATION SLAVE ADMIN, and REPLICA MONITOR
--disable_result_log
error 1;
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup -ubackup --safe-slave-backup --target-dir=$targetdir > $MYSQLTEST_VARDIR/tmp/backup.log;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --user backup --password xyz --safe-slave-backup --target-dir=$targetdir > $MYSQLTEST_VARDIR/tmp/backup.log;
--enable_result_log
rmdir $targetdir;
@@ -78,7 +60,7 @@ rmdir $targetdir;
GRANT REPLICATION SLAVE ADMIN ON *.* TO backup@localhost;
GRANT REPLICA MONITOR ON *.* TO backup@localhost;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup -ubackup --safe-slave-backup --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup -ubackup -pxyz --safe-slave-backup --target-dir=$targetdir;
--enable_result_log
rmdir $targetdir;
diff --git a/mysql-test/suite/mariabackup/backup_ssl.test b/mysql-test/suite/mariabackup/backup_ssl.test
index e858c834..b38073cf 100644
--- a/mysql-test/suite/mariabackup/backup_ssl.test
+++ b/mysql-test/suite/mariabackup/backup_ssl.test
@@ -3,7 +3,7 @@ FLUSH PRIVILEGES;
echo # xtrabackup backup;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --user=backup_user --password=x --ssl --backup --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --user=backup_user --password=x --ssl --backup --parallel=10 --target-dir=$targetdir;
--enable_result_log
echo # xtrabackup prepare;
diff --git a/mysql-test/suite/mariabackup/binlog.test b/mysql-test/suite/mariabackup/binlog.test
index 9d62e5f8..d02d135e 100644
--- a/mysql-test/suite/mariabackup/binlog.test
+++ b/mysql-test/suite/mariabackup/binlog.test
@@ -9,7 +9,7 @@ INSERT INTO t VALUES(1);
SHOW VARIABLES like 'log_bin';
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$basedir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$basedir;
--enable_result_log
exec $XTRABACKUP --prepare --binlog-info=1 --target-dir=$basedir ;
diff --git a/mysql-test/suite/mariabackup/compress_qpress.test b/mysql-test/suite/mariabackup/compress_qpress.test
index c7762f8e..263fc55e 100644
--- a/mysql-test/suite/mariabackup/compress_qpress.test
+++ b/mysql-test/suite/mariabackup/compress_qpress.test
@@ -4,7 +4,7 @@ echo # xtrabackup backup;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --compress --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --compress --target-dir=$targetdir;
--enable_result_log
INSERT INTO t VALUES(2);
diff --git a/mysql-test/suite/mariabackup/create_during_backup.test b/mysql-test/suite/mariabackup/create_during_backup.test
index 985a5a3e..16d47a64 100644
--- a/mysql-test/suite/mariabackup/create_during_backup.test
+++ b/mysql-test/suite/mariabackup/create_during_backup.test
@@ -7,7 +7,7 @@ mkdir $targetdir;
echo # xtrabackup backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir --dbug=+d,mariabackup_events;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir --dbug=+d,mariabackup_events;
--enable_result_log
--let after_load_tables=
diff --git a/mysql-test/suite/mariabackup/create_with_data_directory_during_backup.test b/mysql-test/suite/mariabackup/create_with_data_directory_during_backup.test
index f01028b6..aa7d6de2 100644
--- a/mysql-test/suite/mariabackup/create_with_data_directory_during_backup.test
+++ b/mysql-test/suite/mariabackup/create_with_data_directory_during_backup.test
@@ -8,7 +8,7 @@ mkdir $table_data_dir;
echo # xtrabackup backup;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir --dbug=+d,mariabackup_events;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir --dbug=+d,mariabackup_events;
--enable_result_log
--source include/shutdown_mysqld.inc
echo # xtrabackup prepare;
diff --git a/mysql-test/suite/mariabackup/data_directory.test b/mysql-test/suite/mariabackup/data_directory.test
index ffb3ab30..96d76ba0 100644
--- a/mysql-test/suite/mariabackup/data_directory.test
+++ b/mysql-test/suite/mariabackup/data_directory.test
@@ -7,7 +7,7 @@ INSERT INTO t VALUES(1);
echo # xtrabackup backup;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir;
--enable_result_log
--source include/shutdown_mysqld.inc
echo # xtrabackup prepare;
@@ -21,6 +21,7 @@ rmdir $table_data_dir;
SELECT * FROM t;
DROP TABLE t;
rmdir $targetdir;
+rmdir $table_data_dir;
--echo #
--echo # MDEV-18200 MariaBackup full backup failed with InnoDB: Failing assertion: success
@@ -32,8 +33,8 @@ chmod 0000 $DATADIR/ibdata1;
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
--enable_result_log
chmod 0755 $DATADIR/ibdata1;
-rmdir $table_data_dir;
rmdir $targetdir;
+
--echo #
--echo # End of 10.4 tests
--echo #
diff --git a/mysql-test/suite/mariabackup/ddl_for_common_engine.result b/mysql-test/suite/mariabackup/ddl_for_common_engine.result
new file mode 100644
index 00000000..27a2f288
--- /dev/null
+++ b/mysql-test/suite/mariabackup/ddl_for_common_engine.result
@@ -0,0 +1,67 @@
+CREATE TABLE t1 (a INT NOT NULL) ENGINE=CSV;
+CREATE TABLE t2 (a INT NOT NULL) ENGINE=CSV;
+CREATE TABLE t3 (a INT NOT NULL) ENGINE=CSV;
+### Backup to dir
+# xtrabackup prepare
+# shutdown server
+# remove datadir
+# xtrabackup move back
+# restart
+SELECT * FROM t4;
+a
+SELECT * FROM t2;
+ERROR 42S02: Table 'test.t2' doesn't exist
+SELECT * FROM t3;
+ERROR 42S02: Table 'test.t3' doesn't exist
+SELECT * FROM t5;
+a
+SELECT * FROM t1;
+a
+DROP TABLE t4, t5, t1;
+CREATE TABLE t1_m1 (a INT NOT NULL) ENGINE=MyISAM;
+CREATE TABLE t1_m2 (a INT NOT NULL) ENGINE=MyISAM;
+CREATE TABLE t1 (a INT NOT NULL) ENGINE=MERGE UNION=(t1_m1, t1_m2) INSERT_METHOD=LAST;
+CREATE TABLE t2_m1 (a INT NOT NULL) ENGINE=MyISAM;
+CREATE TABLE t2_m2 (a INT NOT NULL) ENGINE=MyISAM;
+CREATE TABLE t2 (a INT NOT NULL) ENGINE=MERGE UNION=(t2_m1, t2_m2) INSERT_METHOD=LAST;
+CREATE TABLE t3_m1 (a INT NOT NULL) ENGINE=MyISAM;
+CREATE TABLE t3_m2 (a INT NOT NULL) ENGINE=MyISAM;
+CREATE TABLE t3 (a INT NOT NULL) ENGINE=MERGE UNION=(t3_m1, t3_m2) INSERT_METHOD=LAST;
+### Backup to dir
+# xtrabackup prepare
+# shutdown server
+# remove datadir
+# xtrabackup move back
+# restart
+SELECT * FROM t4;
+a
+SELECT * FROM t2;
+ERROR 42S02: Table 'test.t2' doesn't exist
+SELECT * FROM t3;
+ERROR 42S02: Table 'test.t3' doesn't exist
+SELECT * FROM t5;
+a
+SELECT * FROM t1;
+a
+DROP TABLE t4, t5, t1;
+DROP TABLE t1_m1, t1_m2, t2_m1, t2_m2, t3_m1, t3_m2;
+CREATE TABLE t1 (a INT NOT NULL) ENGINE=MyISAM;
+CREATE TABLE t2 (a INT NOT NULL) ENGINE=MyISAM;
+CREATE TABLE t3 (a INT NOT NULL) ENGINE=MyISAM;
+### Backup to dir
+# xtrabackup prepare
+# shutdown server
+# remove datadir
+# xtrabackup move back
+# restart
+SELECT * FROM t4;
+a
+SELECT * FROM t2;
+ERROR 42S02: Table 'test.t2' doesn't exist
+SELECT * FROM t3;
+ERROR 42S02: Table 'test.t3' doesn't exist
+SELECT * FROM t5;
+a
+SELECT * FROM t1;
+a
+DROP TABLE t4, t5, t1;
diff --git a/mysql-test/suite/mariabackup/ddl_for_common_engine.test b/mysql-test/suite/mariabackup/ddl_for_common_engine.test
new file mode 100644
index 00000000..045c2320
--- /dev/null
+++ b/mysql-test/suite/mariabackup/ddl_for_common_engine.test
@@ -0,0 +1,79 @@
+# This test is just to ensure the DDL processing works for common engines like
+# MyISAM, ARCHIVE, CSV etc. The more complex test for different cases is
+# implemented in aria_backup.test.
+--source include/have_archive.inc
+--source include/have_csv.inc
+--source include/have_debug.inc
+
+--let $targetdir=$MYSQLTEST_VARDIR/tmp/backup
+
+--let $e_myisam = 1
+--let $e_merge = 2
+--let $e_csv = 3
+--let $e_archive = 4
+# 'rename' is not logged in $e_archive, return when fix
+--let $e_var = $e_csv
+
+while ($e_var) {
+if ($e_var == $e_csv) {
+--let $engine = CSV
+}
+if ($e_var == $e_archive) {
+--let $engine = ARCHIVE
+}
+if ($e_var == $e_merge) {
+--let $engine = MERGE
+}
+if ($e_var == $e_myisam) {
+--let $engine = MyISAM
+}
+
+if ($e_var == $e_merge) {
+CREATE TABLE t1_m1 (a INT NOT NULL) ENGINE=MyISAM;
+CREATE TABLE t1_m2 (a INT NOT NULL) ENGINE=MyISAM;
+CREATE TABLE t1 (a INT NOT NULL) ENGINE=MERGE UNION=(t1_m1, t1_m2) INSERT_METHOD=LAST;
+CREATE TABLE t2_m1 (a INT NOT NULL) ENGINE=MyISAM;
+CREATE TABLE t2_m2 (a INT NOT NULL) ENGINE=MyISAM;
+CREATE TABLE t2 (a INT NOT NULL) ENGINE=MERGE UNION=(t2_m1, t2_m2) INSERT_METHOD=LAST;
+CREATE TABLE t3_m1 (a INT NOT NULL) ENGINE=MyISAM;
+CREATE TABLE t3_m2 (a INT NOT NULL) ENGINE=MyISAM;
+CREATE TABLE t3 (a INT NOT NULL) ENGINE=MERGE UNION=(t3_m1, t3_m2) INSERT_METHOD=LAST;
+}
+if ($e_var != $e_merge) {
+eval CREATE TABLE t1 (a INT NOT NULL) ENGINE=$engine;
+eval CREATE TABLE t2 (a INT NOT NULL) ENGINE=$engine;
+eval CREATE TABLE t3 (a INT NOT NULL) ENGINE=$engine;
+}
+
+--let after_ce_table_copy_test_t1=begin not atomic CREATE TABLE test.t4 LIKE test.t1; DROP TABLE test.t2; RENAME TABLE test.t3 TO test.t5; end
+
+--mkdir $targetdir
+--echo ### Backup to dir
+--disable_result_log
+--exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir --dbug=+d,mariabackup_events
+--enable_result_log
+
+--echo # xtrabackup prepare
+--disable_result_log
+--exec $XTRABACKUP --prepare --target-dir=$targetdir
+--source include/restart_and_restore.inc
+--enable_result_log
+--rmdir $targetdir
+
+SELECT * FROM t4;
+--error ER_NO_SUCH_TABLE
+SELECT * FROM t2;
+--error ER_NO_SUCH_TABLE
+SELECT * FROM t3;
+SELECT * FROM t5;
+SELECT * FROM t1;
+
+DROP TABLE t4, t5, t1;
+
+if ($e_var == $e_merge) {
+DROP TABLE t1_m1, t1_m2, t2_m1, t2_m2, t3_m1, t3_m2;
+}
+--let after_ce_table_copy_test_t1=
+--dec $e_var
+}
+
diff --git a/mysql-test/suite/mariabackup/disabled.def b/mysql-test/suite/mariabackup/disabled.def
index d272540c..f8a34181 100644
--- a/mysql-test/suite/mariabackup/disabled.def
+++ b/mysql-test/suite/mariabackup/disabled.def
@@ -1 +1,3 @@
log_page_corruption : MDEV-26210
+mariabackup.xb_compressed_encrypted : MDEV-26154 (error 194 "Tablespace is missing for a table")
+innodb_ddl_on_intermediate_table : MENT-1213
diff --git a/mysql-test/suite/mariabackup/encrypted_export.opt b/mysql-test/suite/mariabackup/encrypted_export.opt
new file mode 100644
index 00000000..227c2e03
--- /dev/null
+++ b/mysql-test/suite/mariabackup/encrypted_export.opt
@@ -0,0 +1,6 @@
+--innodb_encrypt_tables=1
+--plugin-load-add=$FILE_KEY_MANAGEMENT_SO
+--loose-file-key-management
+--loose-file-key-management-filekey=FILE:$MTR_SUITE_DIR/filekeys-data.key
+--loose-file-key-management-filename=$MTR_SUITE_DIR/filekeys-data.enc
+--loose-file-key-management-encryption-algorithm=aes_cbc
diff --git a/mysql-test/suite/mariabackup/encrypted_export.result b/mysql-test/suite/mariabackup/encrypted_export.result
new file mode 100644
index 00000000..b2add8e6
--- /dev/null
+++ b/mysql-test/suite/mariabackup/encrypted_export.result
@@ -0,0 +1,14 @@
+CREATE TABLE t1(c VARCHAR(128)) ENGINE INNODB;
+insert into t1 values(repeat('a',100));
+select @@innodb_encrypt_tables;
+@@innodb_encrypt_tables
+ON
+# xtrabackup backup
+# xtrabackup prepare export
+# restart
+ALTER TABLE t1 DISCARD TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
+CHECK TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+DROP TABLE t1;
diff --git a/mysql-test/suite/mariabackup/encrypted_export.test b/mysql-test/suite/mariabackup/encrypted_export.test
new file mode 100644
index 00000000..d1802118
--- /dev/null
+++ b/mysql-test/suite/mariabackup/encrypted_export.test
@@ -0,0 +1,29 @@
+--source include/have_file_key_management.inc
+--source include/have_innodb.inc
+
+CREATE TABLE t1(c VARCHAR(128)) ENGINE INNODB;
+insert into t1 values(repeat('a',100));
+
+select @@innodb_encrypt_tables;
+echo # xtrabackup backup;
+let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
+
+--disable_result_log
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir;
+--enable_result_log
+--source include/shutdown_mysqld.inc
+
+echo # xtrabackup prepare export;
+--disable_result_log
+exec $XTRABACKUP --prepare --export --target-dir=$targetdir;
+--enable_result_log
+
+--source include/start_mysqld.inc
+let MYSQLD_DATADIR=`select @@datadir`;
+ALTER TABLE t1 DISCARD TABLESPACE;
+copy_file $targetdir/test/t1.ibd $MYSQLD_DATADIR/test/t1.ibd;
+copy_file $targetdir/test/t1.cfg $MYSQLD_DATADIR/test/t1.cfg;
+ALTER TABLE t1 IMPORT TABLESPACE;
+CHECK TABLE t1;
+DROP TABLE t1;
+rmdir $targetdir;
diff --git a/mysql-test/suite/mariabackup/encrypted_page_compressed.test b/mysql-test/suite/mariabackup/encrypted_page_compressed.test
index 54fffb7d..245fcc31 100644
--- a/mysql-test/suite/mariabackup/encrypted_page_compressed.test
+++ b/mysql-test/suite/mariabackup/encrypted_page_compressed.test
@@ -37,7 +37,7 @@ echo # xtrabackup backup;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
let $backuplog=$MYSQLTEST_VARDIR/tmp/backup.log;
--error 1
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir --core-file > $backuplog;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir --core-file > $backuplog;
--enable_result_log
--let SEARCH_PATTERN=Database page corruption detected.*
diff --git a/mysql-test/suite/mariabackup/encrypted_page_corruption.test b/mysql-test/suite/mariabackup/encrypted_page_corruption.test
index 1beb020b..9ba958c6 100644
--- a/mysql-test/suite/mariabackup/encrypted_page_corruption.test
+++ b/mysql-test/suite/mariabackup/encrypted_page_corruption.test
@@ -65,7 +65,7 @@ if (`select @@innodb_checksum_algorithm LIKE '%full_crc32'`)
}
--disable_result_log
--error $expect_error
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --extended-validation --target-dir=$targetdir --core-file > $backuplog;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --extended-validation --target-dir=$targetdir --core-file > $backuplog;
--enable_result_log
@@ -77,7 +77,7 @@ rmdir $targetdir;
# Due to very constructed nature of the "corruption" (faking checksums), the "corruption" won't be found without --extended-validation
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir;
--enable_result_log
drop table t1;
diff --git a/mysql-test/suite/mariabackup/extra_lsndir.test b/mysql-test/suite/mariabackup/extra_lsndir.test
index 092ee34c..f880edbe 100644
--- a/mysql-test/suite/mariabackup/extra_lsndir.test
+++ b/mysql-test/suite/mariabackup/extra_lsndir.test
@@ -2,7 +2,7 @@ let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
let $extra_lsndir=$MYSQLTEST_VARDIR/tmp/extra_lsndir;
mkdir $extra_lsndir;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir --extra-lsndir=$extra_lsndir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir --extra-lsndir=$extra_lsndir;
--enable_result_log
list_files $extra_lsndir;
rmdir $extra_lsndir;
diff --git a/mysql-test/suite/mariabackup/full_backup.test b/mysql-test/suite/mariabackup/full_backup.test
index c6a21112..385f3b87 100644
--- a/mysql-test/suite/mariabackup/full_backup.test
+++ b/mysql-test/suite/mariabackup/full_backup.test
@@ -7,7 +7,7 @@ let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
--let $backup_log=$MYSQLTEST_VARDIR/tmp/backup.log
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir > $backup_log 2>&1;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir --parallel=10 > $backup_log 2>&1;
--enable_result_log
# The following warning must not appear after MDEV-27343 fix
diff --git a/mysql-test/suite/mariabackup/huge_lsn.test b/mysql-test/suite/mariabackup/huge_lsn.test
index 8850e9d8..0da67744 100644
--- a/mysql-test/suite/mariabackup/huge_lsn.test
+++ b/mysql-test/suite/mariabackup/huge_lsn.test
@@ -79,7 +79,7 @@ INSERT INTO t VALUES(1);
echo # xtrabackup backup;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir;
--enable_result_log
SET GLOBAL innodb_flush_log_at_trx_commit=1;
INSERT INTO t VALUES(2);
diff --git a/mysql-test/suite/mariabackup/incremental_encrypted.test b/mysql-test/suite/mariabackup/incremental_encrypted.test
index d5570f20..d4619e1f 100644
--- a/mysql-test/suite/mariabackup/incremental_encrypted.test
+++ b/mysql-test/suite/mariabackup/incremental_encrypted.test
@@ -7,6 +7,12 @@ if (!$EXAMPLE_KEY_MANAGEMENT_SO)
}
call mtr.add_suppression("InnoDB: New log files created");
+if (`select @@innodb_page_size=65536`)
+{
+ # this needs too much memory for 32bit
+ source include/have_64bit.inc;
+}
+
let $basedir=$MYSQLTEST_VARDIR/tmp/backup;
let $incremental_dir=$MYSQLTEST_VARDIR/tmp/backup_inc1;
@@ -18,7 +24,7 @@ INSERT INTO t VALUES(1);
echo # Create full backup , modify table, then create incremental/differential backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$basedir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$basedir;
--enable_result_log
SET GLOBAL innodb_flush_log_at_trx_commit = 1;
@@ -26,7 +32,7 @@ INSERT INTO t VALUES(2);
SELECT * FROM t;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$incremental_dir --incremental-basedir=$basedir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$incremental_dir --incremental-basedir=$basedir;
echo # Prepare full backup, apply incremental one;
exec $XTRABACKUP --prepare --target-dir=$basedir;
exec $XTRABACKUP --prepare --target-dir=$basedir --incremental-dir=$incremental_dir;
diff --git a/mysql-test/suite/mariabackup/innodb_ddl_on_intermediate_table.result b/mysql-test/suite/mariabackup/innodb_ddl_on_intermediate_table.result
new file mode 100644
index 00000000..46fdfe77
--- /dev/null
+++ b/mysql-test/suite/mariabackup/innodb_ddl_on_intermediate_table.result
@@ -0,0 +1,5 @@
+CREATE TABLE IF NOT EXISTS t1 ( col1 INT, col_text TEXT ) ENGINE = InnoDB;
+ALTER TABLE t1 ADD FULLTEXT KEY `ftidx1` ( col_text );
+# xtrabackup backup
+SET debug_sync='RESET';
+DROP TABLE t1;
diff --git a/mysql-test/suite/mariabackup/innodb_ddl_on_intermediate_table.test b/mysql-test/suite/mariabackup/innodb_ddl_on_intermediate_table.test
new file mode 100644
index 00000000..d4c4d70d
--- /dev/null
+++ b/mysql-test/suite/mariabackup/innodb_ddl_on_intermediate_table.test
@@ -0,0 +1,18 @@
+--source include/have_debug.inc
+--source include/have_innodb.inc
+--source include/have_debug_sync.inc
+
+--let $targetdir=$MYSQLTEST_VARDIR/tmp/backup
+--mkdir $targetdir
+
+CREATE TABLE IF NOT EXISTS t1 ( col1 INT, col_text TEXT ) ENGINE = InnoDB;
+ALTER TABLE t1 ADD FULLTEXT KEY `ftidx1` ( col_text );
+
+echo # xtrabackup backup;
+--disable_result_log
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir --dbug=+d,mariabackup_events,emulate_ddl_on_intermediate_table;
+--enable_result_log
+
+SET debug_sync='RESET';
+rmdir $targetdir;
+DROP TABLE t1;
diff --git a/mysql-test/suite/mariabackup/lock_ddl_per_table.test b/mysql-test/suite/mariabackup/lock_ddl_per_table.test
index 18c20771..98e7c5ea 100644
--- a/mysql-test/suite/mariabackup/lock_ddl_per_table.test
+++ b/mysql-test/suite/mariabackup/lock_ddl_per_table.test
@@ -16,7 +16,7 @@ CREATE TABLE `bobby``tables` (id INT, name VARCHAR(50), purchased DATE) ENGINE I
set global innodb_log_checkpoint_now = 1;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir --lock-ddl-per-table=1 --dbug=+d,check_mdl_lock_works;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir --lock-ddl-per-table=1 --dbug=+d,check_mdl_lock_works;
--enable_result_log
DROP TABLE t;
DROP TABLE `bobby``tables`;
diff --git a/mysql-test/suite/mariabackup/log_checksum_mismatch.test b/mysql-test/suite/mariabackup/log_checksum_mismatch.test
index c8baf66e..6cf4b354 100644
--- a/mysql-test/suite/mariabackup/log_checksum_mismatch.test
+++ b/mysql-test/suite/mariabackup/log_checksum_mismatch.test
@@ -7,7 +7,7 @@ let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
let $backuplog=$MYSQLTEST_VARDIR/tmp/backup.log;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir --dbug=+d,log_intermittent_checksum_mismatch --core-file > $backuplog;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir --dbug=+d,log_intermittent_checksum_mismatch --core-file > $backuplog;
--enable_result_log
--let SEARCH_RANGE = 10000000
diff --git a/mysql-test/suite/mariabackup/log_file_unexpected_large_number_in_name.result b/mysql-test/suite/mariabackup/log_file_unexpected_large_number_in_name.result
new file mode 100644
index 00000000..51b4dfc5
--- /dev/null
+++ b/mysql-test/suite/mariabackup/log_file_unexpected_large_number_in_name.result
@@ -0,0 +1,20 @@
+#
+# Start of 10.5 tests
+#
+#
+# MENT-1587 mariabackup failing due to aria log file copy
+#
+CREATE TABLE t1(i INT PRIMARY KEY) ENGINE=ARIA;
+INSERT INTO t1 VALUES (10);
+# Prepare full backup
+# shutdown server
+# remove datadir
+# xtrabackup move back
+# restart
+SELECT * FROM t1;
+i
+10
+DROP TABLE t1;
+#
+# End of 10.5 tests
+#
diff --git a/mysql-test/suite/mariabackup/log_file_unexpected_large_number_in_name.test b/mysql-test/suite/mariabackup/log_file_unexpected_large_number_in_name.test
new file mode 100644
index 00000000..7fef9d61
--- /dev/null
+++ b/mysql-test/suite/mariabackup/log_file_unexpected_large_number_in_name.test
@@ -0,0 +1,47 @@
+--let $MYSQLD_DATADIR=`select @@datadir`
+
+--echo #
+--echo # Start of 10.5 tests
+--echo #
+
+--echo #
+--echo # MENT-1587 mariabackup failing due to aria log file copy
+--echo #
+
+
+--let $basedir=$MYSQLTEST_VARDIR/tmp/backup
+--let $incremental_dir=$MYSQLTEST_VARDIR/tmp/backup_inc1
+
+CREATE TABLE t1(i INT PRIMARY KEY) ENGINE=ARIA;
+INSERT INTO t1 VALUES (10);
+
+#
+# Add a log file with a number outside of last_log_number
+# specified in aria_log_control.
+# The actual file number written in the header is 4.
+# Let's rename it to 100 for test purposes.
+# Hopefully 100 should be enough.
+#
+--copy_file suite/mariabackup/std_data/ment1587_aria_log.00000004 $MYSQLD_DATADIR/aria_log.00000100
+
+--disable_result_log
+--exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$basedir
+--enable_result_log
+
+--disable_result_log
+--echo # Prepare full backup
+--exec $XTRABACKUP --prepare --target-dir=$basedir
+--enable_result_log
+
+--let $targetdir=$basedir
+--source include/restart_and_restore.inc
+--enable_result_log
+--rmdir $basedir
+
+SELECT * FROM t1;
+DROP TABLE t1;
+
+
+--echo #
+--echo # End of 10.5 tests
+--echo #
diff --git a/mysql-test/suite/mariabackup/log_tables.result b/mysql-test/suite/mariabackup/log_tables.result
new file mode 100644
index 00000000..840efc71
--- /dev/null
+++ b/mysql-test/suite/mariabackup/log_tables.result
@@ -0,0 +1,24 @@
+CREATE TABLE t(i INT)
+ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+SET GLOBAL general_log = 1;
+SET GLOBAL log_output = 'TABLE';
+INSERT INTO t VALUES (1);
+SELECT * FROM mysql.general_log
+WHERE argument LIKE "INSERT INTO %" AND
+(command_type = "Query" OR command_type = "Execute") ;
+event_time user_host thread_id server_id command_type argument
+TIMESTAMP USER_HOST THREAD_ID 1 Query INSERT INTO t VALUES (1)
+# Insert new row into general_log table after it has been copied on BLOCK_DDL.
+# Backup to dir.
+# Xtrabackup prepare.
+# shutdown server
+# remove datadir
+# xtrabackup move back
+# restart
+SELECT * FROM mysql.general_log
+WHERE argument LIKE "INSERT INTO %" AND
+(command_type = "Query" OR command_type = "Execute") ;
+event_time user_host thread_id server_id command_type argument
+TIMESTAMP USER_HOST THREAD_ID 1 Query INSERT INTO t VALUES (1)
+TIMESTAMP USER_HOST THREAD_ID 1 Query INSERT INTO test.t VALUES (2)
+DROP TABLE t;
diff --git a/mysql-test/suite/mariabackup/log_tables.test b/mysql-test/suite/mariabackup/log_tables.test
new file mode 100644
index 00000000..fe540a1c
--- /dev/null
+++ b/mysql-test/suite/mariabackup/log_tables.test
@@ -0,0 +1,49 @@
+# Test for copying log tables tail
+--source include/have_aria.inc
+--source include/have_debug.inc
+
+--let $targetdir=$MYSQLTEST_VARDIR/tmp/backup
+
+CREATE TABLE t(i INT)
+ ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1;
+
+--let $general_log_old = `SELECT @@global.general_log`
+--let $log_output_old = `SELECT @@global.log_output`
+
+SET GLOBAL general_log = 1;
+SET GLOBAL log_output = 'TABLE';
+
+INSERT INTO t VALUES (1);
+
+--replace_column 1 TIMESTAMP 2 USER_HOST 3 THREAD_ID 5 Query
+--sorted_result
+SELECT * FROM mysql.general_log
+ WHERE argument LIKE "INSERT INTO %" AND
+ (command_type = "Query" OR command_type = "Execute") ;
+
+--echo # Insert new row into general_log table after it has been copied on BLOCK_DDL.
+--let after_stage_block_ddl=INSERT INTO test.t VALUES (2)
+
+--echo # Backup to dir.
+--disable_result_log
+--exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir --dbug=+d,mariabackup_events
+--enable_result_log
+
+--echo # Xtrabackup prepare.
+--disable_result_log
+--exec $XTRABACKUP --prepare --target-dir=$targetdir
+--source include/restart_and_restore.inc
+--enable_result_log
+
+--replace_column 1 TIMESTAMP 2 USER_HOST 3 THREAD_ID 5 Query
+--sorted_result
+SELECT * FROM mysql.general_log
+ WHERE argument LIKE "INSERT INTO %" AND
+ (command_type = "Query" OR command_type = "Execute") ;
+
+--rmdir $targetdir
+DROP TABLE t;
+--disable_query_log
+--eval SET GLOBAL general_log = $general_log_old
+--eval SET GLOBAL log_output = $log_output_old
+--enable_query_log
diff --git a/mysql-test/suite/mariabackup/mdev-14447.test b/mysql-test/suite/mariabackup/mdev-14447.test
index 79a0d075..74ae1378 100644
--- a/mysql-test/suite/mariabackup/mdev-14447.test
+++ b/mysql-test/suite/mariabackup/mdev-14447.test
@@ -11,7 +11,7 @@ CREATE TABLE t(a varchar(40) PRIMARY KEY, b varchar(40), c varchar(40), d varcha
echo # Create full backup , modify table, then create incremental/differential backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$basedir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$basedir;
--enable_result_log
SET debug_dbug='+d,skip_page_checksum',foreign_key_checks=0,unique_checks=0;
diff --git a/mysql-test/suite/mariabackup/missing_ibd.test b/mysql-test/suite/mariabackup/missing_ibd.test
index f406a555..76d5a4ff 100644
--- a/mysql-test/suite/mariabackup/missing_ibd.test
+++ b/mysql-test/suite/mariabackup/missing_ibd.test
@@ -24,7 +24,7 @@ call mtr.add_suppression('InnoDB: Ignoring tablespace for test/t1 because it cou
echo # xtrabackup backup;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir;
--enable_result_log
rmdir $targetdir;
diff --git a/mysql-test/suite/mariabackup/nolock_ddl_during_backup_end.test b/mysql-test/suite/mariabackup/nolock_ddl_during_backup_end.test
index f6bc51bd..c75c063a 100644
--- a/mysql-test/suite/mariabackup/nolock_ddl_during_backup_end.test
+++ b/mysql-test/suite/mariabackup/nolock_ddl_during_backup_end.test
@@ -9,6 +9,6 @@ CREATE TABLE t1(i int) ENGINE=INNODB;
echo # xtrabackup backup;
--disable_result_log
error 1;
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir --no-lock --dbug=+d,mariabackup_events;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir --no-lock --dbug=+d,mariabackup_events;
--enable_result_log
rmdir $targetdir;
diff --git a/mysql-test/suite/mariabackup/partial.result b/mysql-test/suite/mariabackup/partial.result
index 981bef4e..9ff3a20c 100644
--- a/mysql-test/suite/mariabackup/partial.result
+++ b/mysql-test/suite/mariabackup/partial.result
@@ -14,6 +14,14 @@ ALTER TABLE t1 IMPORT TABLESPACE;
SELECT * FROM t1;
i
1
+# MDEV-33023 Crash in mariadb-backup --prepare --export after --prepare
+t1.cfg
+t21.cfg
+ALTER TABLE t1 DISCARD TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
+SELECT * FROM t1;
+i
+1
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t21;
diff --git a/mysql-test/suite/mariabackup/partial.test b/mysql-test/suite/mariabackup/partial.test
index d0d07daf..af6da274 100644
--- a/mysql-test/suite/mariabackup/partial.test
+++ b/mysql-test/suite/mariabackup/partial.test
@@ -14,7 +14,7 @@ echo # xtrabackup backup;
let targetdir=$MYSQLTEST_VARDIR/tmp/backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup "--tables=test.*1" --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 "--tables=test.*1" --target-dir=$targetdir;
--enable_result_log
list_files $targetdir/test *.ibd;
list_files $targetdir/test *.new;
@@ -55,6 +55,25 @@ copy_file $targetdir/test/t1.cfg $MYSQLD_DATADIR/test/t1.cfg;
ALTER TABLE t1 IMPORT TABLESPACE;
SELECT * FROM t1;
+
+--echo # MDEV-33023 Crash in mariadb-backup --prepare --export after --prepare
+--disable_result_log
+exec $XTRABACKUP --defaults-file=$server_cnf --defaults-group-suffix=.1 --prepare --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$server_cnf --defaults-group-suffix=.1 --prepare --export --target-dir=$targetdir;
+--enable_result_log
+
+list_files $targetdir/test *.cfg;
+# There must not be binary logs created on --prepare step
+list_files $targetdir/ mysqld-bin.*;
+
+let $MYSQLD_DATADIR= `select @@datadir`;
+ALTER TABLE t1 DISCARD TABLESPACE;
+copy_file $targetdir/test/t1.ibd $MYSQLD_DATADIR/test/t1.ibd;
+copy_file $targetdir/test/t1.cfg $MYSQLD_DATADIR/test/t1.cfg;
+ALTER TABLE t1 IMPORT TABLESPACE;
+
+SELECT * FROM t1;
+
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t21;
diff --git a/mysql-test/suite/mariabackup/partial_exclude.test b/mysql-test/suite/mariabackup/partial_exclude.test
index 6a1ae13b..973e7a4f 100644
--- a/mysql-test/suite/mariabackup/partial_exclude.test
+++ b/mysql-test/suite/mariabackup/partial_exclude.test
@@ -28,7 +28,7 @@ echo # xtrabackup backup;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup "--tables-exclude=test.*2" "--databases-exclude=db2" --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 "--tables-exclude=test.*2" "--databases-exclude=db2" --target-dir=$targetdir;
--enable_result_log
COMMIT;
diff --git a/mysql-test/suite/mariabackup/partition_datadir.test b/mysql-test/suite/mariabackup/partition_datadir.test
index 36520d33..078055a5 100644
--- a/mysql-test/suite/mariabackup/partition_datadir.test
+++ b/mysql-test/suite/mariabackup/partition_datadir.test
@@ -14,7 +14,7 @@ PARTITION BY RANGE (i)
PARTITION p3 VALUES LESS THAN (400) DATA DIRECTORY = '$MYSQLTEST_VARDIR/partitdata',
PARTITION p4 VALUES LESS THAN MAXVALUE);
INSERT INTO t VALUES (1), (101), (201), (301), (401);
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir;
exec $XTRABACKUP --prepare --target-dir=$targetdir;
DROP TABLE t;
rmdir $MYSQLTEST_VARDIR/partitdata;
diff --git a/mysql-test/suite/mariabackup/partition_partial.test b/mysql-test/suite/mariabackup/partition_partial.test
index 7ccc42c0..30e31a9d 100644
--- a/mysql-test/suite/mariabackup/partition_partial.test
+++ b/mysql-test/suite/mariabackup/partition_partial.test
@@ -16,7 +16,7 @@ echo # xtrabackup backup;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup "--tables=test.t1" --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 "--tables=test.t1" --target-dir=$targetdir;
--enable_result_log
INSERT INTO t1 VALUES (1), (101), (201), (301);
diff --git a/mysql-test/suite/mariabackup/rename_during_backup.result b/mysql-test/suite/mariabackup/rename_during_backup.result
index e071b6b2..ba509efe 100644
--- a/mysql-test/suite/mariabackup/rename_during_backup.result
+++ b/mysql-test/suite/mariabackup/rename_during_backup.result
@@ -61,3 +61,15 @@ SELECT * from t6;
i
5
DROP TABLE t6;
+#
+# MDEV-33011 mariabackup --backup: FATAL ERROR: ... Can't open datafile cool_down/t3
+#
+# Simulate zero initialized page to defer tablespace load after rename log is found
+SET @save_dbug = @@SESSION.debug_dbug;
+SET DEBUG_DBUG="+d,checkpoint_after_file_create";
+CREATE TABLE t1(f1 INT NOT NULL)ENGINE=InnoDB;
+INSERT INTO t1 VALUES(1);
+# RENAME that fails after redo log entry is written and flushed
+RENAME TABLE t1 TO non_existing_db.t1;
+ERROR HY000: Error on rename of './test/t1' to './non_existing_db/t1' (errno: 168 "Unknown (generic) error from engine")
+DROP TABLE t1;
diff --git a/mysql-test/suite/mariabackup/rename_during_backup.test b/mysql-test/suite/mariabackup/rename_during_backup.test
index d8e40b28..44036691 100644
--- a/mysql-test/suite/mariabackup/rename_during_backup.test
+++ b/mysql-test/suite/mariabackup/rename_during_backup.test
@@ -92,4 +92,31 @@ SELECT * from t6;
DROP TABLE t6;
rmdir $targetdir;
+--echo #
+--echo # MDEV-33011 mariabackup --backup: FATAL ERROR: ... Can't open datafile cool_down/t3
+--echo #
+--disable_query_log
+call mtr.add_suppression("InnoDB: Cannot rename '.*t1.ibd' to '.*non_existing_db.*' because the target schema directory doesn't exist");
+--enable_query_log
+
+mkdir $targetdir;
+
+--echo # Simulate zero initialized page to defer tablespace load after rename log is found
+SET @save_dbug = @@SESSION.debug_dbug;
+SET DEBUG_DBUG="+d,checkpoint_after_file_create";
+CREATE TABLE t1(f1 INT NOT NULL)ENGINE=InnoDB;
+INSERT INTO t1 VALUES(1);
+
+--echo # RENAME that fails after redo log entry is written and flushed
+--replace_result "\\" "/"
+--error ER_ERROR_ON_RENAME
+RENAME TABLE t1 TO non_existing_db.t1;
+
+--disable_result_log
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
+exec $XTRABACKUP --prepare --target-dir=$targetdir;
+--enable_result_log
+
+DROP TABLE t1;
+rmdir $targetdir;
diff --git a/mysql-test/suite/mariabackup/rename_during_mdl_lock.test b/mysql-test/suite/mariabackup/rename_during_mdl_lock.test
index 212b7aab..b14b04a5 100644
--- a/mysql-test/suite/mariabackup/rename_during_mdl_lock.test
+++ b/mysql-test/suite/mariabackup/rename_during_mdl_lock.test
@@ -3,7 +3,7 @@ let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
mkdir $targetdir;
CREATE TABLE t1(i int) ENGINE INNODB;
set global innodb_log_checkpoint_now = 1;
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir --lock-ddl-per-table --dbug=+d,rename_during_mdl_lock_table;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir --lock-ddl-per-table --dbug=+d,rename_during_mdl_lock_table;
echo # xtrabackup prepare;
--disable_result_log
diff --git a/mysql-test/suite/mariabackup/rpl_clone_slave.result b/mysql-test/suite/mariabackup/rpl_clone_slave.result
new file mode 100644
index 00000000..2e6c2701
--- /dev/null
+++ b/mysql-test/suite/mariabackup/rpl_clone_slave.result
@@ -0,0 +1,202 @@
+include/master-slave.inc
+[connection master]
+#
+# MDEV-33342 Add a replication MTR test cloning the slave with mariadb-backup
+#
+connection slave;
+stop slave;
+change master to master_use_gtid=no;
+start slave;
+connection master;
+connection slave;
+##############################################################
+### Initial block with some transactions
+### Slave: Make sure replication is not using GTID
+connection slave;
+# Using_Gtid=No
+### Master: Create and populate t1
+connection master;
+CREATE TABLE t1(a TEXT) ENGINE=InnoDB;
+START TRANSACTION;
+INSERT INTO t1 VALUES ('tr#00:stmt#00 - slave run#0, before backup');
+INSERT INTO t1 VALUES ('tr#00:stmt#01 - slave run#0, before backup');
+INSERT INTO t1 VALUES ('tr#00:stmt#02 - slave run#0, before backup');
+COMMIT;
+connection slave;
+##############################################################
+### Run the last transaction before mariadb-backup --backup
+### Remember SHOW MASTER STATUS and @@gtid_binlog_pos
+### before and after the transaction.
+### Master: Rember MASTER STATUS and @@gtid_binlog_pos before tr#01
+connection master;
+### Slave: Remember MASTER STATUS and @@gtid_binlog_pos before tr#01
+connection slave;
+### Master: Run the actual last transaction before the backup
+connection master;
+START TRANSACTION;
+INSERT INTO t1 VALUES ('tr#01:stmt#00 - slave run#0, before backup');
+INSERT INTO t1 VALUES ('tr#01:stmt#01 - slave run#0, before backup');
+INSERT INTO t1 VALUES ('tr#01:stmt#02 - slave run#0, before backup');
+COMMIT;
+connection slave;
+### Master: Remember MASTER STATUS and @@gtid_binlog_pos after tr#01
+connection master;
+### Slave: Remember MASTER STATUS and @@gtid_binlog_pos after tr#01
+connection slave;
+##############################################################
+### Running `mariadb-backup --backup,--prepare` and checking
+### that xtrabackup_slave_info and xtrabackup_binlog_info are OK
+### Slave: Create a backup
+### Slave: Prepare the backup
+### Slave: xtrabackup files:
+############################ xtrabackup_slave_info
+CHANGE MASTER TO MASTER_LOG_FILE='master_after_tr01_show_master_status_file', MASTER_LOG_POS=master_after_tr01_show_master_status_position;
+############################ xtrabackup_binlog_info
+slave_after_tr01_show_master_status_file slave_after_tr01_show_master_status_position slave_after_tr01_gtid_binlog_pos
+############################
+##############################################################
+### Run more transactions after the backup:
+### - while the slave is still running, then
+### - while the slave is shut down
+### Master: Run another transaction while the slave is still running
+connection master;
+START TRANSACTION;
+INSERT INTO t1 VALUES ('tr#02:stmt#00 - slave run#0, after backup');
+INSERT INTO t1 VALUES ('tr#02:stmt#01 - slave run#0, after backup');
+INSERT INTO t1 VALUES ('tr#02:stmt@02 - slave run#0, after backup');
+COMMIT;
+connection slave;
+### Master: Remember MASTER STATUS and @@gtid_binlog_pos after tr#02
+connection master;
+### Slave: Remember MASTER STATUS and @@gtid_binlog_pos after tr#02
+connection slave;
+### Master: Checking SHOW BINLOG EVENTS
+connection master;
+SHOW BINLOG EVENTS IN 'master_after_tr01_show_master_status_file' FROM master_after_tr01_show_master_status_position LIMIT 0,1;
+Log_name master_after_tr01_show_master_status_file
+Pos master_after_tr01_show_master_status_position
+Event_type Gtid
+Server_id #
+End_log_pos #
+Info BEGIN GTID master_after_tr02_gtid_binlog_pos
+SHOW BINLOG EVENTS IN 'master_after_tr01_show_master_status_file' FROM master_after_tr01_show_master_status_position LIMIT 1,1;
+Log_name master_after_tr01_show_master_status_file
+Pos #
+Event_type Query_or_Annotate_rows
+Server_id #
+End_log_pos #
+Info INSERT INTO t1 VALUES ('tr#02:stmt#00 - slave run#0, after backup')
+### Slave: Checking SHOW BINLOG EVENTS
+connection slave;
+SHOW BINLOG EVENTS IN 'slave_after_tr01_show_master_status_file' FROM slave_after_tr01_show_master_status_position LIMIT 0,1;
+Log_name slave_after_tr01_show_master_status_file
+Pos #
+Event_type Gtid
+Server_id 1
+End_log_pos #
+Info BEGIN GTID slave_after_tr02_gtid_binlog_pos
+SHOW BINLOG EVENTS IN 'slave_after_tr01_show_master_status_file' FROM slave_after_tr01_show_master_status_position LIMIT 1,1;
+Log_name slave_after_tr01_show_master_status_file
+Pos #
+Event_type Query_or_Annotate_rows
+Server_id #
+End_log_pos #
+Info INSERT INTO t1 VALUES ('tr#02:stmt#00 - slave run#0, after backup')
+### Slave: Stop replication
+connection slave;
+STOP SLAVE;
+include/wait_for_slave_to_stop.inc
+RESET SLAVE;
+Warnings:
+Note 4190 RESET SLAVE is implicitly changing the value of 'Using_Gtid' from 'No' to 'Slave_Pos'
+### Slave: Shutdown the server
+include/rpl_stop_server.inc [server_number=2]
+### Master: Run a transaction while the slave is shut down
+connection master;
+START TRANSACTION;
+INSERT INTO t1 VALUES ('tr#03:stmt#00 - after slave run#0, slave is shut down, after backup');
+INSERT INTO t1 VALUES ('tr#03:stmt#01 - after slave run#0, slave is shut down, after backup');
+INSERT INTO t1 VALUES ('tr#03:stmt#02 - after slave run#0, slave is shut down, after backup');
+COMMIT;
+##############################################################
+### Emulate starting a new virgin slave
+### Slave: Remove the data directory
+### Slave: Copy back the backup
+### Slave: Restart the server
+include/rpl_start_server.inc [server_number=2]
+### Slave: Display the restored data before START SLAVE
+connection slave;
+SELECT * FROM t1 ORDER BY a;
+a
+tr#00:stmt#00 - slave run#0, before backup
+tr#00:stmt#01 - slave run#0, before backup
+tr#00:stmt#02 - slave run#0, before backup
+tr#01:stmt#00 - slave run#0, before backup
+tr#01:stmt#01 - slave run#0, before backup
+tr#01:stmt#02 - slave run#0, before backup
+### Slave: Execute the CHANGE MASTER statement to set up the host and port
+CHANGE MASTER '' TO MASTER_USER='root', MASTER_HOST='127.0.0.1', MASTER_PORT=###, MASTER_CONNECT_RETRY=1;
+### Slave: Execute the CHANGE MASTER statement from xtrabackup_slave_info
+CHANGE MASTER TO MASTER_LOG_FILE='master_after_tr01_show_master_status_file', MASTER_LOG_POS=master_after_tr01_show_master_status_position;
+Warnings:
+Note 4190 CHANGE MASTER TO is implicitly changing the value of 'Using_Gtid' from 'Slave_Pos' to 'No'
+### Slave: Execute START SLAVE
+include/start_slave.inc
+### Master: Wait for the slave to apply all master events
+connection master;
+connection slave;
+### Slave: Make sure replication is not using GTID after the slave restart
+connection slave;
+# Using_Gtid=No
+### Slave: Display the restored data after START SLAVE
+connection slave;
+SELECT * FROM t1 ORDER BY a;
+a
+tr#00:stmt#00 - slave run#0, before backup
+tr#00:stmt#01 - slave run#0, before backup
+tr#00:stmt#02 - slave run#0, before backup
+tr#01:stmt#00 - slave run#0, before backup
+tr#01:stmt#01 - slave run#0, before backup
+tr#01:stmt#02 - slave run#0, before backup
+tr#02:stmt#00 - slave run#0, after backup
+tr#02:stmt#01 - slave run#0, after backup
+tr#02:stmt@02 - slave run#0, after backup
+tr#03:stmt#00 - after slave run#0, slave is shut down, after backup
+tr#03:stmt#01 - after slave run#0, slave is shut down, after backup
+tr#03:stmt#02 - after slave run#0, slave is shut down, after backup
+##############################################################
+### Continue master transactions, check the new slave replicates well.
+### Master: Run a transaction after restarting replication
+connection master;
+START TRANSACTION;
+INSERT INTO t1 VALUES ('tr#04:stmt#00 - slave run#1');
+INSERT INTO t1 VALUES ('tr#04:stmt#01 - slave run#1');
+INSERT INTO t1 VALUES ('tr#04:stmt#02 - slave run#1');
+COMMIT;
+connection slave;
+### Slave: Display the restored data + new transactions
+connection slave;
+SELECT * FROM t1 ORDER BY a;
+a
+tr#00:stmt#00 - slave run#0, before backup
+tr#00:stmt#01 - slave run#0, before backup
+tr#00:stmt#02 - slave run#0, before backup
+tr#01:stmt#00 - slave run#0, before backup
+tr#01:stmt#01 - slave run#0, before backup
+tr#01:stmt#02 - slave run#0, before backup
+tr#02:stmt#00 - slave run#0, after backup
+tr#02:stmt#01 - slave run#0, after backup
+tr#02:stmt@02 - slave run#0, after backup
+tr#03:stmt#00 - after slave run#0, slave is shut down, after backup
+tr#03:stmt#01 - after slave run#0, slave is shut down, after backup
+tr#03:stmt#02 - after slave run#0, slave is shut down, after backup
+tr#04:stmt#00 - slave run#1
+tr#04:stmt#01 - slave run#1
+tr#04:stmt#02 - slave run#1
+##############################################################
+### Cleanup
+### Removing the backup directory
+connection master;
+DROP TABLE t1;
+connection slave;
+include/rpl_end.inc
diff --git a/mysql-test/suite/mariabackup/rpl_clone_slave.test b/mysql-test/suite/mariabackup/rpl_clone_slave.test
new file mode 100644
index 00000000..7d93f723
--- /dev/null
+++ b/mysql-test/suite/mariabackup/rpl_clone_slave.test
@@ -0,0 +1,17 @@
+#
+# Cloning a slave using mariadb-backup
+#
+--source include/have_innodb.inc
+--source include/master-slave.inc
+
+--echo #
+--echo # MDEV-33342 Add a replication MTR test cloning the slave with mariadb-backup
+--echo #
+
+connection slave;
+stop slave;
+change master to master_use_gtid=no;
+start slave;
+
+--let cnf=mariadb_to_mariadb
+--source include/rpl_clone_slave_using_mariadb-backup.inc
diff --git a/mysql-test/suite/mariabackup/small_ibd.test b/mysql-test/suite/mariabackup/small_ibd.test
index e8175fce..bb476b87 100644
--- a/mysql-test/suite/mariabackup/small_ibd.test
+++ b/mysql-test/suite/mariabackup/small_ibd.test
@@ -13,7 +13,7 @@ echo #backup;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir;
--enable_result_log
remove_file $_datadir/test/small.ibd;
rmdir $targetdir;
diff --git a/mysql-test/suite/mariabackup/std_data/ment1587_aria_log.00000004 b/mysql-test/suite/mariabackup/std_data/ment1587_aria_log.00000004
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/mysql-test/suite/mariabackup/std_data/ment1587_aria_log.00000004
diff --git a/mysql-test/suite/mariabackup/suite.opt b/mysql-test/suite/mariabackup/suite.opt
index 1df46435..e6b20c32 100644
--- a/mysql-test/suite/mariabackup/suite.opt
+++ b/mysql-test/suite/mariabackup/suite.opt
@@ -1 +1 @@
---innodb --loose-changed_page_bitmaps --innodb-sys-tables --innodb-flush-log-at-trx-commit=2 --sequence
+--innodb --innodb-sys-tables --innodb-flush-log-at-trx-commit=2 --sequence
diff --git a/mysql-test/suite/mariabackup/system_versioning.test b/mysql-test/suite/mariabackup/system_versioning.test
index 1ced00b4..04a5f72a 100644
--- a/mysql-test/suite/mariabackup/system_versioning.test
+++ b/mysql-test/suite/mariabackup/system_versioning.test
@@ -5,7 +5,7 @@ update t set a=2;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir;
--enable_result_log
insert into t values (3);
@@ -32,7 +32,7 @@ insert into t values (1);
update t set a=2;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir;
--enable_result_log
insert into t values (3);
diff --git a/mysql-test/suite/mariabackup/truncate_during_backup.test b/mysql-test/suite/mariabackup/truncate_during_backup.test
index 46ee244d..8928fc4e 100644
--- a/mysql-test/suite/mariabackup/truncate_during_backup.test
+++ b/mysql-test/suite/mariabackup/truncate_during_backup.test
@@ -7,7 +7,7 @@ CREATE TABLE t1 ENGINE=InnoDB SELECT 1;
--let after_load_tablespaces=TRUNCATE test.t1
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir --dbug=+d,mariabackup_events;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir --dbug=+d,mariabackup_events;
--enable_result_log
--let after_load_tablespaces=
diff --git a/mysql-test/suite/mariabackup/undo_space_id.result b/mysql-test/suite/mariabackup/undo_space_id.result
index b03b9705..fd720d12 100644
--- a/mysql-test/suite/mariabackup/undo_space_id.result
+++ b/mysql-test/suite/mariabackup/undo_space_id.result
@@ -11,3 +11,10 @@ undo002
undo001
undo002
DROP TABLE t1;
+#
+# MDEV-33980 mariadb-backup --backup is missing
+# retry logic for undo tablespaces
+#
+# xtrabackup backup
+# Display undo log files from target directory
+FOUND 5 /Retrying to read undo tablespace*/ in backup.log
diff --git a/mysql-test/suite/mariabackup/undo_space_id.test b/mysql-test/suite/mariabackup/undo_space_id.test
index 2c56492f..32782354 100644
--- a/mysql-test/suite/mariabackup/undo_space_id.test
+++ b/mysql-test/suite/mariabackup/undo_space_id.test
@@ -11,7 +11,7 @@ INSERT INTO t1 VALUES(1);
--echo # xtrabackup backup
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$basedir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$basedir;
--enable_result_log
--echo # Display undo log files from target directory
list_files $basedir undo*;
@@ -23,3 +23,22 @@ list_files $basedir undo*;
DROP TABLE t1;
rmdir $basedir;
+
+--echo #
+--echo # MDEV-33980 mariadb-backup --backup is missing
+--echo # retry logic for undo tablespaces
+--echo #
+let $backuplog= $MYSQLTEST_VARDIR/tmp/backup.log;
+--echo # xtrabackup backup
+--disable_result_log
+--error 1
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$basedir --dbug=+d,undo_space_read_fail > $backuplog;
+--enable_result_log
+--echo # Display undo log files from target directory
+list_files $basedir undo*;
+
+--let SEARCH_PATTERN=Retrying to read undo tablespace*
+--let SEARCH_FILE=$backuplog
+--source include/search_pattern_in_file.inc
+rmdir $basedir;
+remove_file $backuplog;
diff --git a/mysql-test/suite/mariabackup/unencrypted_page_compressed.test b/mysql-test/suite/mariabackup/unencrypted_page_compressed.test
index 700c4dd2..31e8323b 100644
--- a/mysql-test/suite/mariabackup/unencrypted_page_compressed.test
+++ b/mysql-test/suite/mariabackup/unencrypted_page_compressed.test
@@ -38,7 +38,7 @@ echo # xtrabackup backup;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
let $backuplog=$MYSQLTEST_VARDIR/tmp/backup.log;
--error 1
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir --core-file > $backuplog;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir --core-file > $backuplog;
--enable_result_log
--let SEARCH_PATTERN=Database page corruption detected.*
diff --git a/mysql-test/suite/mariabackup/unsupported_redo.test b/mysql-test/suite/mariabackup/unsupported_redo.test
index 97e1cad2..38cceb2f 100644
--- a/mysql-test/suite/mariabackup/unsupported_redo.test
+++ b/mysql-test/suite/mariabackup/unsupported_redo.test
@@ -15,7 +15,7 @@ ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;
echo # No longer fails during full backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$basedir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$basedir;
--enable_result_log
DROP TABLE t1;
@@ -29,13 +29,13 @@ INSERT INTO t1(a) select 1 union select 2 union select 3;
--echo # Create full backup , modify table, then fails during creation of
--echo # incremental/differential backup
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$basedir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$basedir;
--enable_result_log
ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$incremental_dir --incremental-basedir=$basedir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$incremental_dir --incremental-basedir=$basedir;
--enable_result_log
DROP TABLE t1;
@@ -58,7 +58,7 @@ ALTER TABLE t21 FORCE, ALGORITHM=INPLACE;
--echo # unsupported redo log for the table t21.
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup "--tables-exclude=test.t21" --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 "--tables-exclude=test.t21" --target-dir=$targetdir;
--enable_result_log
--list_files $targetdir/test *.ibd
--list_files $targetdir/test *.new
diff --git a/mysql-test/suite/mariabackup/xb_aws_key_management.test b/mysql-test/suite/mariabackup/xb_aws_key_management.test
index c8a12f6e..a2e407d3 100644
--- a/mysql-test/suite/mariabackup/xb_aws_key_management.test
+++ b/mysql-test/suite/mariabackup/xb_aws_key_management.test
@@ -10,7 +10,7 @@ INSERT INTO t VALUES('foobar1');
echo # xtrabackup backup;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir;
exec $XTRABACKUP --prepare --target-dir=$targetdir;
-- source include/restart_and_restore.inc
--enable_result_log
diff --git a/mysql-test/suite/mariabackup/xb_file_key_management.test b/mysql-test/suite/mariabackup/xb_file_key_management.test
index 4d27b2df..eca69c97 100644
--- a/mysql-test/suite/mariabackup/xb_file_key_management.test
+++ b/mysql-test/suite/mariabackup/xb_file_key_management.test
@@ -8,7 +8,7 @@ DELETE FROM t LIMIT 1;
echo # xtrabackup backup;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir;
--enable_result_log
--let SEARCH_RANGE = 10000000
diff --git a/mysql-test/suite/mariabackup/xb_history.test b/mysql-test/suite/mariabackup/xb_history.test
index f9374a1a..e05b7721 100644
--- a/mysql-test/suite/mariabackup/xb_history.test
+++ b/mysql-test/suite/mariabackup/xb_history.test
@@ -6,7 +6,7 @@ DROP TABLE IF EXISTS mysql.mariadb_backup_history;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --history=foo --backup --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --history=foo --backup --parallel=10 --target-dir=$targetdir;
--enable_result_log
rmdir $targetdir;
diff --git a/mysql-test/suite/mariabackup/xb_page_compress.test b/mysql-test/suite/mariabackup/xb_page_compress.test
index 7e806e6d..e2819e26 100644
--- a/mysql-test/suite/mariabackup/xb_page_compress.test
+++ b/mysql-test/suite/mariabackup/xb_page_compress.test
@@ -27,7 +27,7 @@ echo # xtrabackup backup;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup "--tables=test.*1" --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 "--tables=test.*1" --target-dir=$targetdir;
echo # xtrabackup prepare;
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --defaults-group-suffix=.1 --prepare --export --target-dir=$targetdir;
--enable_result_log
diff --git a/mysql-test/suite/mariabackup/xb_partition.test b/mysql-test/suite/mariabackup/xb_partition.test
index 1c8eeaa1..13ce8fa2 100644
--- a/mysql-test/suite/mariabackup/xb_partition.test
+++ b/mysql-test/suite/mariabackup/xb_partition.test
@@ -39,7 +39,7 @@ INSERT INTO isam_p VALUES (1), (101), (201), (301);
let $targetdir=$MYSQLTEST_VARDIR/tmp;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir/full;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir/full;
--enable_result_log
DROP TABLE t1;
diff --git a/mysql-test/suite/mariabackup/xb_rocksdb.test b/mysql-test/suite/mariabackup/xb_rocksdb.test
index e41f3b2b..6c23fe3d 100644
--- a/mysql-test/suite/mariabackup/xb_rocksdb.test
+++ b/mysql-test/suite/mariabackup/xb_rocksdb.test
@@ -8,9 +8,9 @@ echo # xtrabackup backup;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
let $stream=$MYSQLTEST_VARDIR/tmp/backup.xb;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir $backup_extra_param;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir $backup_extra_param;
--enable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --stream=xbstream > $stream 2>$MYSQLTEST_VARDIR/tmp/backup_stream.log;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --stream=xbstream > $stream 2>$MYSQLTEST_VARDIR/tmp/backup_stream.log;
INSERT INTO t VALUES(2);
diff --git a/mysql-test/suite/mariabackup/xb_rocksdb_datadir.test b/mysql-test/suite/mariabackup/xb_rocksdb_datadir.test
index c2e90d90..2a0b2a46 100644
--- a/mysql-test/suite/mariabackup/xb_rocksdb_datadir.test
+++ b/mysql-test/suite/mariabackup/xb_rocksdb_datadir.test
@@ -9,7 +9,7 @@ INSERT INTO t VALUES(1);
echo # xtrabackup backup;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
--disable_result_log
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir;
--enable_result_log
INSERT INTO t VALUES(2);
diff --git a/mysql-test/suite/mariabackup/xbstream.test b/mysql-test/suite/mariabackup/xbstream.test
index 212ac598..8429a3b5 100644
--- a/mysql-test/suite/mariabackup/xbstream.test
+++ b/mysql-test/suite/mariabackup/xbstream.test
@@ -8,7 +8,7 @@ mkdir $targetdir;
let $streamfile=$MYSQLTEST_VARDIR/tmp/backup.xb;
echo # xtrabackup backup to stream;
-exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --databases-exclude=foobar --stream=xbstream > $streamfile 2>$targetdir/backup_stream.log;
+exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --databases-exclude=foobar --stream=xbstream > $streamfile 2>$targetdir/backup_stream.log;
echo # xbstream extract;
--disable_result_log
exec $XBSTREAM -x -C $targetdir < $streamfile;
diff --git a/mysql-test/suite/multi_source/gtid_ignore_duplicates.result b/mysql-test/suite/multi_source/gtid_ignore_duplicates.result
index e142ff8b..88b525e2 100644
--- a/mysql-test/suite/multi_source/gtid_ignore_duplicates.result
+++ b/mysql-test/suite/multi_source/gtid_ignore_duplicates.result
@@ -174,6 +174,105 @@ a
10
11
12
+*** MDEV-33475: --gtid-ignore-duplicate can double-apply event in case of parallel replication retry
+connection server_2;
+STOP SLAVE "c2b";
+SET default_master_connection = "c2b";
+include/wait_for_slave_to_stop.inc
+STOP SLAVE "a2b";
+SET default_master_connection = "a2b";
+include/wait_for_slave_to_stop.inc
+connection server_1;
+CREATE TABLE t2 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
+BEGIN;
+INSERT INTO t2 VALUES (0, 0);
+INSERT INTO t2 VALUES (1, 0);
+INSERT INTO t2 VALUES (2, 0);
+INSERT INTO t2 VALUES (3, 0);
+INSERT INTO t2 VALUES (4, 0);
+INSERT INTO t2 VALUES (5, 0);
+INSERT INTO t2 VALUES (6, 0);
+INSERT INTO t2 VALUES (7, 0);
+INSERT INTO t2 VALUES (8, 0);
+INSERT INTO t2 VALUES (9, 0);
+COMMIT;
+BEGIN;
+INSERT INTO t2 VALUES (0+10, 100);
+UPDATE t2 SET b=0 WHERE a<10;
+INSERT INTO t2 VALUES (0+20, 200);
+COMMIT;
+BEGIN;
+INSERT INTO t2 VALUES (1+10, 100);
+UPDATE t2 SET b=1 WHERE a<10;
+INSERT INTO t2 VALUES (1+20, 200);
+COMMIT;
+BEGIN;
+INSERT INTO t2 VALUES (2+10, 100);
+UPDATE t2 SET b=2 WHERE a<10;
+INSERT INTO t2 VALUES (2+20, 200);
+COMMIT;
+BEGIN;
+INSERT INTO t2 VALUES (3+10, 100);
+UPDATE t2 SET b=3 WHERE a<10;
+INSERT INTO t2 VALUES (3+20, 200);
+COMMIT;
+BEGIN;
+INSERT INTO t2 VALUES (4+10, 100);
+UPDATE t2 SET b=4 WHERE a<10;
+INSERT INTO t2 VALUES (4+20, 200);
+COMMIT;
+BEGIN;
+INSERT INTO t2 VALUES (5+10, 100);
+UPDATE t2 SET b=5 WHERE a<10;
+INSERT INTO t2 VALUES (5+20, 200);
+COMMIT;
+BEGIN;
+INSERT INTO t2 VALUES (6+10, 100);
+UPDATE t2 SET b=6 WHERE a<10;
+INSERT INTO t2 VALUES (6+20, 200);
+COMMIT;
+BEGIN;
+INSERT INTO t2 VALUES (7+10, 100);
+UPDATE t2 SET b=7 WHERE a<10;
+INSERT INTO t2 VALUES (7+20, 200);
+COMMIT;
+BEGIN;
+INSERT INTO t2 VALUES (8+10, 100);
+UPDATE t2 SET b=8 WHERE a<10;
+INSERT INTO t2 VALUES (8+20, 200);
+COMMIT;
+BEGIN;
+INSERT INTO t2 VALUES (9+10, 100);
+UPDATE t2 SET b=9 WHERE a<10;
+INSERT INTO t2 VALUES (9+20, 200);
+COMMIT;
+SELECT COUNT(*), SUM(a), SUM(b) FROM t2;
+COUNT(*) SUM(a) SUM(b)
+30 435 3090
+include/save_master_gtid.inc
+connection server_2;
+SET @old_mode= @@GLOBAL.slave_parallel_mode;
+SET GLOBAL slave_parallel_mode=aggressive;
+SET default_master_connection = "a2b";
+START SLAVE;
+include/wait_for_slave_to_start.inc
+SET default_master_connection = "c2b";
+START SLAVE;
+include/wait_for_slave_to_start.inc
+include/sync_with_master_gtid.inc
+SELECT COUNT(*), SUM(a), SUM(b) FROM t2;
+COUNT(*) SUM(a) SUM(b)
+30 435 3090
+connection server_3;
+include/sync_with_master_gtid.inc
+SELECT COUNT(*), SUM(a), SUM(b) FROM t2;
+COUNT(*) SUM(a) SUM(b)
+30 435 3090
+connection server_4;
+include/sync_with_master_gtid.inc
+SELECT COUNT(*), SUM(a), SUM(b) FROM t2;
+COUNT(*) SUM(a) SUM(b)
+30 435 3090
*** Test also with not using parallel replication.
connection server_1;
SET default_master_connection = "b2a";
@@ -474,6 +573,7 @@ Warnings:
Note 1938 SLAVE 'a2b' stopped
Note 1938 SLAVE 'c2b' stopped
SET GLOBAL slave_parallel_threads= @old_parallel;
+SET GLOBAL slave_parallel_mode= @old_mode;
SET GLOBAL gtid_ignore_duplicates= @old_ignore_duplicates;
connection server_3;
SET GLOBAL gtid_domain_id=0;
@@ -491,22 +591,22 @@ Note 1938 SLAVE 'a2d' stopped
SET GLOBAL slave_parallel_threads= @old_parallel;
SET GLOBAL gtid_ignore_duplicates= @old_ignore_duplicates;
connection server_1;
-DROP TABLE t1;
+DROP TABLE t1, t2;
ALTER TABLE mysql.gtid_slave_pos ENGINE=Aria;
include/reset_master_slave.inc
disconnect server_1;
connection server_2;
-DROP TABLE t1;
+DROP TABLE t1, t2;
ALTER TABLE mysql.gtid_slave_pos ENGINE=Aria;
include/reset_master_slave.inc
disconnect server_2;
connection server_3;
-DROP TABLE t1;
+DROP TABLE t1, t2;
ALTER TABLE mysql.gtid_slave_pos ENGINE=Aria;
include/reset_master_slave.inc
disconnect server_3;
connection server_4;
-DROP TABLE t1;
+DROP TABLE t1, t2;
ALTER TABLE mysql.gtid_slave_pos ENGINE=Aria;
include/reset_master_slave.inc
disconnect server_4;
diff --git a/mysql-test/suite/multi_source/gtid_ignore_duplicates.test b/mysql-test/suite/multi_source/gtid_ignore_duplicates.test
index 3d2d151b..cbc06920 100644
--- a/mysql-test/suite/multi_source/gtid_ignore_duplicates.test
+++ b/mysql-test/suite/multi_source/gtid_ignore_duplicates.test
@@ -173,6 +173,65 @@ SET default_master_connection = "a2b";
SELECT * FROM t1 WHERE a >= 10 ORDER BY a;
+--echo *** MDEV-33475: --gtid-ignore-duplicate can double-apply event in case of parallel replication retry
+
+# Create a bunch of transactions that will cause conflicts and retries.
+# The bug was that the retry code was not handling the --gtid-ignore-duplicates
+# option, so events could be doubly-applied.
+
+--connection server_2
+STOP SLAVE "c2b";
+SET default_master_connection = "c2b";
+--source include/wait_for_slave_to_stop.inc
+STOP SLAVE "a2b";
+SET default_master_connection = "a2b";
+--source include/wait_for_slave_to_stop.inc
+
+--connection server_1
+CREATE TABLE t2 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
+BEGIN;
+--let $i= 0
+while ($i < 10) {
+ eval INSERT INTO t2 VALUES ($i, 0);
+ inc $i;
+}
+COMMIT;
+
+--let $i= 0
+while ($i < 10) {
+ BEGIN;
+ eval INSERT INTO t2 VALUES ($i+10, 100);
+ eval UPDATE t2 SET b=$i WHERE a<10;
+ eval INSERT INTO t2 VALUES ($i+20, 200);
+ COMMIT;
+ inc $i;
+}
+
+SELECT COUNT(*), SUM(a), SUM(b) FROM t2;
+--source include/save_master_gtid.inc
+
+--connection server_2
+SET @old_mode= @@GLOBAL.slave_parallel_mode;
+SET GLOBAL slave_parallel_mode=aggressive;
+SET default_master_connection = "a2b";
+START SLAVE;
+--source include/wait_for_slave_to_start.inc
+SET default_master_connection = "c2b";
+START SLAVE;
+--source include/wait_for_slave_to_start.inc
+
+--source include/sync_with_master_gtid.inc
+SELECT COUNT(*), SUM(a), SUM(b) FROM t2;
+
+--connection server_3
+--source include/sync_with_master_gtid.inc
+SELECT COUNT(*), SUM(a), SUM(b) FROM t2;
+
+--connection server_4
+--source include/sync_with_master_gtid.inc
+SELECT COUNT(*), SUM(a), SUM(b) FROM t2;
+
+
--echo *** Test also with not using parallel replication.
--connection server_1
@@ -414,6 +473,7 @@ SET GLOBAL gtid_domain_id=0;
--sorted_result
STOP ALL SLAVES;
SET GLOBAL slave_parallel_threads= @old_parallel;
+SET GLOBAL slave_parallel_mode= @old_mode;
SET GLOBAL gtid_ignore_duplicates= @old_ignore_duplicates;
--connection server_3
@@ -431,25 +491,25 @@ SET GLOBAL slave_parallel_threads= @old_parallel;
SET GLOBAL gtid_ignore_duplicates= @old_ignore_duplicates;
--connection server_1
-DROP TABLE t1;
+DROP TABLE t1, t2;
ALTER TABLE mysql.gtid_slave_pos ENGINE=Aria;
--source include/reset_master_slave.inc
--disconnect server_1
--connection server_2
-DROP TABLE t1;
+DROP TABLE t1, t2;
ALTER TABLE mysql.gtid_slave_pos ENGINE=Aria;
--source include/reset_master_slave.inc
--disconnect server_2
--connection server_3
-DROP TABLE t1;
+DROP TABLE t1, t2;
ALTER TABLE mysql.gtid_slave_pos ENGINE=Aria;
--source include/reset_master_slave.inc
--disconnect server_3
--connection server_4
-DROP TABLE t1;
+DROP TABLE t1, t2;
ALTER TABLE mysql.gtid_slave_pos ENGINE=Aria;
--source include/reset_master_slave.inc
--disconnect server_4
diff --git a/mysql-test/suite/multi_source/info_logs.result b/mysql-test/suite/multi_source/info_logs.result
index a35a20bd..6f3fd7e7 100644
--- a/mysql-test/suite/multi_source/info_logs.result
+++ b/mysql-test/suite/multi_source/info_logs.result
@@ -94,17 +94,17 @@ MASTER 2.2
# EOF
#
show all slaves status;
-Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Rewrite_DB Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Master_SSL_Crl Master_SSL_Crlpath Using_Gtid Gtid_IO_Pos Replicate_Do_Domain_Ids Replicate_Ignore_Domain_Ids Parallel_Mode SQL_Delay SQL_Remaining_Delay Slave_SQL_Running_State Slave_DDL_Groups Slave_Non_Transactional_Groups Slave_Transactional_Groups Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Slave_Pos
- Slave has read all relay log; waiting for more updates Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 <read_master_log_pos> relay.000002 <relay_log_pos> master-bin.000001 Yes Yes 0 0 <read_master_log_pos> <relay_log_space1> None 0 No 0 No 0 0 1 No optimistic 0 NULL Slave has read all relay log; waiting for more updates 0 0 0 0 1073741824 7 0 60.000
-MASTER 2.2 Slave has read all relay log; waiting for more updates Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 <read_master_log_pos> relay-master@00202@002e2.000002 <relay_log_pos> master-bin.000001 Yes Yes 0 0 <read_master_log_pos> <relay_log_space2> None 0 No 0 No 0 0 2 No optimistic 0 NULL Slave has read all relay log; waiting for more updates 0 0 0 0 1073741824 7 0 60.000
+Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Master_SSL_Crl Master_SSL_Crlpath Using_Gtid Gtid_IO_Pos Replicate_Do_Domain_Ids Replicate_Ignore_Domain_Ids Parallel_Mode SQL_Delay SQL_Remaining_Delay Slave_SQL_Running_State Slave_DDL_Groups Slave_Non_Transactional_Groups Slave_Transactional_Groups Replicate_Rewrite_DB Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Slave_Pos
+ Slave has read all relay log; waiting for more updates Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 <read_master_log_pos> relay.000002 <relay_log_pos> master-bin.000001 Yes Yes 0 0 <read_master_log_pos> <relay_log_space1> None 0 No 0 No 0 0 1 No optimistic 0 NULL Slave has read all relay log; waiting for more updates 0 0 0 0 1073741824 7 0 60.000
+MASTER 2.2 Slave has read all relay log; waiting for more updates Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 <read_master_log_pos> relay-master@00202@002e2.000002 <relay_log_pos> master-bin.000001 Yes Yes 0 0 <read_master_log_pos> <relay_log_space2> None 0 No 0 No 0 0 2 No optimistic 0 NULL Slave has read all relay log; waiting for more updates 0 0 0 0 1073741824 7 0 60.000
include/wait_for_slave_to_start.inc
set default_master_connection = 'MASTER 2.2';
include/wait_for_slave_to_start.inc
set default_master_connection = '';
show all slaves status;
-Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Rewrite_DB Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Master_SSL_Crl Master_SSL_Crlpath Using_Gtid Gtid_IO_Pos Replicate_Do_Domain_Ids Replicate_Ignore_Domain_Ids Parallel_Mode SQL_Delay SQL_Remaining_Delay Slave_SQL_Running_State Slave_DDL_Groups Slave_Non_Transactional_Groups Slave_Transactional_Groups Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Slave_Pos
- Slave has read all relay log; waiting for more updates Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 <read_master_log_pos> relay.000004 <relay_log_pos> master-bin.000001 Yes Yes 0 0 <read_master_log_pos> <relay_log_space1> None 0 No 0 No 0 0 1 No optimistic 0 NULL Slave has read all relay log; waiting for more updates 0 0 0 0 1073741824 6 0 60.000
-MASTER 2.2 Slave has read all relay log; waiting for more updates Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 <read_master_log_pos> relay-master@00202@002e2.000004 <relay_log_pos> master-bin.000001 Yes Yes 0 0 <read_master_log_pos> <relay_log_space2> None 0 No 0 No 0 0 2 No optimistic 0 NULL Slave has read all relay log; waiting for more updates 0 0 0 0 1073741824 6 0 60.000
+Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Master_SSL_Crl Master_SSL_Crlpath Using_Gtid Gtid_IO_Pos Replicate_Do_Domain_Ids Replicate_Ignore_Domain_Ids Parallel_Mode SQL_Delay SQL_Remaining_Delay Slave_SQL_Running_State Slave_DDL_Groups Slave_Non_Transactional_Groups Slave_Transactional_Groups Replicate_Rewrite_DB Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Slave_Pos
+ Slave has read all relay log; waiting for more updates Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 <read_master_log_pos> relay.000004 <relay_log_pos> master-bin.000001 Yes Yes 0 0 <read_master_log_pos> <relay_log_space1> None 0 No 0 No 0 0 1 No optimistic 0 NULL Slave has read all relay log; waiting for more updates 0 0 0 0 1073741824 6 0 60.000
+MASTER 2.2 Slave has read all relay log; waiting for more updates Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 <read_master_log_pos> relay-master@00202@002e2.000004 <relay_log_pos> master-bin.000001 Yes Yes 0 0 <read_master_log_pos> <relay_log_space2> None 0 No 0 No 0 0 2 No optimistic 0 NULL Slave has read all relay log; waiting for more updates 0 0 0 0 1073741824 6 0 60.000
#
# List of files matching '*info*' pattern
# after slave server restart
diff --git a/mysql-test/suite/multi_source/multi_source_slave_alias_replica.result b/mysql-test/suite/multi_source/multi_source_slave_alias_replica.result
index 355919de..ce6efc26 100644
--- a/mysql-test/suite/multi_source/multi_source_slave_alias_replica.result
+++ b/mysql-test/suite/multi_source/multi_source_slave_alias_replica.result
@@ -34,7 +34,6 @@ Relay_Log_Pos <relay_log_pos>
Relay_Master_Log_File master-bin.000001
Slave_IO_Running Yes
Slave_SQL_Running Yes
-Replicate_Rewrite_DB
Replicate_Do_DB
Replicate_Ignore_DB
Replicate_Do_Table
@@ -76,6 +75,7 @@ Slave_SQL_Running_State Slave has read all relay log; waiting for more updates
Slave_DDL_Groups 0
Slave_Non_Transactional_Groups 0
Slave_Transactional_Groups 0
+Replicate_Rewrite_DB
Retried_transactions 0
Max_relay_log_size 1073741824
Executed_log_entries 7
@@ -96,7 +96,6 @@ Relay_Log_Pos <relay_log_pos>
Relay_Master_Log_File master-bin.000001
Slave_IO_Running Yes
Slave_SQL_Running Yes
-Replicate_Rewrite_DB
Replicate_Do_DB
Replicate_Ignore_DB
Replicate_Do_Table
@@ -138,6 +137,7 @@ Slave_SQL_Running_State Slave has read all relay log; waiting for more updates
Slave_DDL_Groups 0
Slave_Non_Transactional_Groups 0
Slave_Transactional_Groups 0
+Replicate_Rewrite_DB
Retried_transactions 0
Max_relay_log_size 1073741824
Executed_log_entries 7
diff --git a/mysql-test/suite/multi_source/reset_slave.result b/mysql-test/suite/multi_source/reset_slave.result
index 2e9ce5e8..6ff1f5a9 100644
--- a/mysql-test/suite/multi_source/reset_slave.result
+++ b/mysql-test/suite/multi_source/reset_slave.result
@@ -13,15 +13,15 @@ insert into t1 values (1),(2);
connection slave;
stop slave 'master1';
show slave 'master1' status;
-Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Rewrite_DB Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Master_SSL_Crl Master_SSL_Crlpath Using_Gtid Gtid_IO_Pos Replicate_Do_Domain_Ids Replicate_Ignore_Domain_Ids Parallel_Mode SQL_Delay SQL_Remaining_Delay Slave_SQL_Running_State Slave_DDL_Groups Slave_Non_Transactional_Groups Slave_Transactional_Groups
- 127.0.0.1 root MYPORT_1 60 master-bin.000001 <read_master_log_pos> mysqld-relay-bin-master1.000002 <relay_log_pos> master-bin.000001 No No 0 0 <read_master_log_pos> <relay_log_space> None 0 No NULL No 0 0 1 Slave_Pos 0-1-3 optimistic 0 NULL 2 1 0
+Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Master_SSL_Crl Master_SSL_Crlpath Using_Gtid Gtid_IO_Pos Replicate_Do_Domain_Ids Replicate_Ignore_Domain_Ids Parallel_Mode SQL_Delay SQL_Remaining_Delay Slave_SQL_Running_State Slave_DDL_Groups Slave_Non_Transactional_Groups Slave_Transactional_Groups Replicate_Rewrite_DB
+ 127.0.0.1 root MYPORT_1 60 master-bin.000001 <read_master_log_pos> mysqld-relay-bin-master1.000002 <relay_log_pos> master-bin.000001 No No 0 0 <read_master_log_pos> <relay_log_space> None 0 No NULL No 0 0 1 Slave_Pos 0-1-3 optimistic 0 NULL 2 1 0
mysqld-relay-bin-master1.000001
mysqld-relay-bin-master1.000002
mysqld-relay-bin-master1.index
reset slave 'master1';
show slave 'master1' status;
-Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Rewrite_DB Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Master_SSL_Crl Master_SSL_Crlpath Using_Gtid Gtid_IO_Pos Replicate_Do_Domain_Ids Replicate_Ignore_Domain_Ids Parallel_Mode SQL_Delay SQL_Remaining_Delay Slave_SQL_Running_State Slave_DDL_Groups Slave_Non_Transactional_Groups Slave_Transactional_Groups
- 127.0.0.1 root MYPORT_1 60 4 <relay_log_pos> No No 0 0 0 <relay_log_space> None 0 No NULL No 0 0 1 Slave_Pos optimistic 0 NULL 2 1 0
+Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Master_SSL_Crl Master_SSL_Crlpath Using_Gtid Gtid_IO_Pos Replicate_Do_Domain_Ids Replicate_Ignore_Domain_Ids Parallel_Mode SQL_Delay SQL_Remaining_Delay Slave_SQL_Running_State Slave_DDL_Groups Slave_Non_Transactional_Groups Slave_Transactional_Groups Replicate_Rewrite_DB
+ 127.0.0.1 root MYPORT_1 60 4 <relay_log_pos> No No 0 0 0 <relay_log_space> None 0 No NULL No 0 0 1 Slave_Pos optimistic 0 NULL 2 1 0
reset slave 'master1' all;
show slave 'master1' status;
ERROR HY000: There is no master connection 'master1'
diff --git a/mysql-test/suite/multi_source/simple.result b/mysql-test/suite/multi_source/simple.result
index 65c25b88..61932184 100644
--- a/mysql-test/suite/multi_source/simple.result
+++ b/mysql-test/suite/multi_source/simple.result
@@ -32,7 +32,6 @@ Relay_Log_Pos <relay_log_pos>
Relay_Master_Log_File master-bin.000001
Slave_IO_Running Yes
Slave_SQL_Running Yes
-Replicate_Rewrite_DB
Replicate_Do_DB
Replicate_Ignore_DB
Replicate_Do_Table
@@ -74,6 +73,7 @@ Slave_SQL_Running_State Slave has read all relay log; waiting for more updates
Slave_DDL_Groups 0
Slave_Non_Transactional_Groups 0
Slave_Transactional_Groups 0
+Replicate_Rewrite_DB
Retried_transactions 0
Max_relay_log_size 1073741824
Executed_log_entries 7
@@ -94,7 +94,6 @@ Relay_Log_Pos <relay_log_pos>
Relay_Master_Log_File master-bin.000001
Slave_IO_Running Yes
Slave_SQL_Running Yes
-Replicate_Rewrite_DB
Replicate_Do_DB
Replicate_Ignore_DB
Replicate_Do_Table
@@ -136,6 +135,7 @@ Slave_SQL_Running_State Slave has read all relay log; waiting for more updates
Slave_DDL_Groups 0
Slave_Non_Transactional_Groups 0
Slave_Transactional_Groups 0
+Replicate_Rewrite_DB
Retried_transactions 0
Max_relay_log_size 1073741824
Executed_log_entries 7
@@ -221,7 +221,6 @@ Relay_Log_Pos <relay_log_pos>
Relay_Master_Log_File master-bin.000001
Slave_IO_Running No
Slave_SQL_Running No
-Replicate_Rewrite_DB
Replicate_Do_DB
Replicate_Ignore_DB
Replicate_Do_Table
@@ -263,6 +262,7 @@ Slave_SQL_Running_State
Slave_DDL_Groups 0
Slave_Non_Transactional_Groups 0
Slave_Transactional_Groups 0
+Replicate_Rewrite_DB
reset slave 'slave1';
show all slaves status;
Connection_name slave1
@@ -279,7 +279,6 @@ Relay_Log_Pos <relay_log_pos>
Relay_Master_Log_File
Slave_IO_Running No
Slave_SQL_Running No
-Replicate_Rewrite_DB
Replicate_Do_DB
Replicate_Ignore_DB
Replicate_Do_Table
@@ -321,6 +320,7 @@ Slave_SQL_Running_State
Slave_DDL_Groups 0
Slave_Non_Transactional_Groups 0
Slave_Transactional_Groups 0
+Replicate_Rewrite_DB
Retried_transactions 0
Max_relay_log_size 1073741824
Executed_log_entries 7
@@ -341,7 +341,6 @@ Relay_Log_Pos <relay_log_pos>
Relay_Master_Log_File master-bin.000001
Slave_IO_Running Yes
Slave_SQL_Running Yes
-Replicate_Rewrite_DB
Replicate_Do_DB
Replicate_Ignore_DB
Replicate_Do_Table
@@ -383,6 +382,7 @@ Slave_SQL_Running_State Slave has read all relay log; waiting for more updates
Slave_DDL_Groups 0
Slave_Non_Transactional_Groups 0
Slave_Transactional_Groups 0
+Replicate_Rewrite_DB
Retried_transactions 0
Max_relay_log_size 1073741824
Executed_log_entries 7
@@ -405,7 +405,6 @@ Relay_Log_Pos <relay_log_pos>
Relay_Master_Log_File master-bin.000001
Slave_IO_Running Yes
Slave_SQL_Running Yes
-Replicate_Rewrite_DB
Replicate_Do_DB
Replicate_Ignore_DB
Replicate_Do_Table
@@ -447,6 +446,7 @@ Slave_SQL_Running_State Slave has read all relay log; waiting for more updates
Slave_DDL_Groups 0
Slave_Non_Transactional_Groups 0
Slave_Transactional_Groups 0
+Replicate_Rewrite_DB
Retried_transactions 0
Max_relay_log_size 1073741824
Executed_log_entries 7
@@ -471,7 +471,6 @@ Relay_Log_Pos <relay_log_pos>
Relay_Master_Log_File master-bin.000001
Slave_IO_Running No
Slave_SQL_Running No
-Replicate_Rewrite_DB
Replicate_Do_DB
Replicate_Ignore_DB
Replicate_Do_Table
@@ -513,6 +512,7 @@ Slave_SQL_Running_State
Slave_DDL_Groups 0
Slave_Non_Transactional_Groups 0
Slave_Transactional_Groups 0
+Replicate_Rewrite_DB
Retried_transactions 0
Max_relay_log_size 1073741824
Executed_log_entries 7
diff --git a/mysql-test/suite/multi_source/syntax.result b/mysql-test/suite/multi_source/syntax.result
index 3c7c91c3..6b214fe3 100644
--- a/mysql-test/suite/multi_source/syntax.result
+++ b/mysql-test/suite/multi_source/syntax.result
@@ -1,11 +1,11 @@
include/master-slave.inc
[connection master]
show slave status;
-Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Rewrite_DB Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Master_SSL_Crl Master_SSL_Crlpath Using_Gtid Gtid_IO_Pos Replicate_Do_Domain_Ids Replicate_Ignore_Domain_Ids Parallel_Mode SQL_Delay SQL_Remaining_Delay Slave_SQL_Running_State Slave_DDL_Groups Slave_Non_Transactional_Groups Slave_Transactional_Groups
+Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Master_SSL_Crl Master_SSL_Crlpath Using_Gtid Gtid_IO_Pos Replicate_Do_Domain_Ids Replicate_Ignore_Domain_Ids Parallel_Mode SQL_Delay SQL_Remaining_Delay Slave_SQL_Running_State Slave_DDL_Groups Slave_Non_Transactional_Groups Slave_Transactional_Groups Replicate_Rewrite_DB
show slave '' status;
-Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Rewrite_DB Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Master_SSL_Crl Master_SSL_Crlpath Using_Gtid Gtid_IO_Pos Replicate_Do_Domain_Ids Replicate_Ignore_Domain_Ids Parallel_Mode SQL_Delay SQL_Remaining_Delay Slave_SQL_Running_State Slave_DDL_Groups Slave_Non_Transactional_Groups Slave_Transactional_Groups
+Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Master_SSL_Crl Master_SSL_Crlpath Using_Gtid Gtid_IO_Pos Replicate_Do_Domain_Ids Replicate_Ignore_Domain_Ids Parallel_Mode SQL_Delay SQL_Remaining_Delay Slave_SQL_Running_State Slave_DDL_Groups Slave_Non_Transactional_Groups Slave_Transactional_Groups Replicate_Rewrite_DB
show all slaves status;
-Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Rewrite_DB Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Master_SSL_Crl Master_SSL_Crlpath Using_Gtid Gtid_IO_Pos Replicate_Do_Domain_Ids Replicate_Ignore_Domain_Ids Parallel_Mode SQL_Delay SQL_Remaining_Delay Slave_SQL_Running_State Slave_DDL_Groups Slave_Non_Transactional_Groups Slave_Transactional_Groups Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Slave_Pos
+Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Master_SSL_Crl Master_SSL_Crlpath Using_Gtid Gtid_IO_Pos Replicate_Do_Domain_Ids Replicate_Ignore_Domain_Ids Parallel_Mode SQL_Delay SQL_Remaining_Delay Slave_SQL_Running_State Slave_DDL_Groups Slave_Non_Transactional_Groups Slave_Transactional_Groups Replicate_Rewrite_DB Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Slave_Pos
#
# Check error handling
#
diff --git a/mysql-test/suite/parts/inc/partition_crash.inc b/mysql-test/suite/parts/inc/partition_crash.inc
index c657ba88..bd00f6ca 100644
--- a/mysql-test/suite/parts/inc/partition_crash.inc
+++ b/mysql-test/suite/parts/inc/partition_crash.inc
@@ -11,7 +11,7 @@
SHOW CREATE TABLE t1;
--sorted_result
SELECT * FROM t1;
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--disable_reconnect
# CR_SERVER_LOST
--error 2013
@@ -22,7 +22,7 @@ SELECT * FROM t1;
--replace_regex /sql-exchange.*\./sql-exchange./ /sql-shadow-[0-9a-f]*-/sql-shadow-/
--cat_file $DATADIR.files.txt
--remove_file $DATADIR.files.txt
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
--echo # State after crash recovery
diff --git a/mysql-test/suite/parts/r/alter_table.result b/mysql-test/suite/parts/r/alter_table.result
index fa458c97..8f633370 100644
--- a/mysql-test/suite/parts/r/alter_table.result
+++ b/mysql-test/suite/parts/r/alter_table.result
@@ -1,3 +1,6 @@
+#
+# MDEV-22649 SIGSEGV in ha_partition::create_partitioning_metadata on ALTER
+#
set @save_alter_algorithm= @@session.alter_algorithm;
SET SESSION alter_algorithm=4;
CREATE TABLE t1(a INT) engine=myisam PARTITION BY RANGE(a) SUBPARTITION BY KEY(a) (PARTITION p0 VALUES LESS THAN (10) (SUBPARTITION s0,SUBPARTITION s1), PARTITION p1 VALUES LESS THAN (20) (SUBPARTITION s2,SUBPARTITION s3));
@@ -18,9 +21,16 @@ ALTER TABLE t1 ADD COLUMN c INT;
ERROR 0A000: ALGORITHM=INSTANT is not supported for this operation. Try ALGORITHM=COPY
DROP table if exists t1;
set @@session.alter_algorithm= @save_alter_algorithm;
+#
+# MDEV-22804 SIGSEGV in ha_partition::create_partitioning_metadata |
+# ERROR 1507 (HY000): Error in list of partitions to DROP
+#
CREATE TABLE t1 (a INT) PARTITION BY RANGE(a) SUBPARTITION BY HASH(a) (PARTITION p VALUES LESS THAN (5) (SUBPARTITION sp, SUBPARTITION sp1), PARTITION p1 VALUES LESS THAN MAXVALUE (SUBPARTITION sp2, SUBPARTITION sp3));
ALTER TABLE t1 DROP PARTITION p;
DROP TABLE if exists t1;
+#
+# MDEV-23357 Server crashes in Sql_cmd_alter_table_exchange_partition::exchange_partition
+#
CREATE TABLE t1 (i INT);
CREATE VIEW v1 as SELECT * FROM t1;
CREATE TABLE t2 (i INT);
@@ -28,6 +38,7 @@ ALTER TABLE v1 EXCHANGE PARTITION p2 WITH TABLE t2 ;
ERROR 42000: Can't open table
DROP VIEW v1;
DROP TABLE t1, t2;
+# End of 10.5 tests
#
# MDEV-22165 CONVERT PARTITION: move in partition from existing table
#
@@ -358,3 +369,4 @@ disconnect con1;
connection default;
drop user u@localhost;
drop database db;
+# End of 10.11 tests
diff --git a/mysql-test/suite/parts/r/mdev_21007.result b/mysql-test/suite/parts/r/mdev_21007.result
new file mode 100644
index 00000000..fb2417ac
--- /dev/null
+++ b/mysql-test/suite/parts/r/mdev_21007.result
@@ -0,0 +1,5 @@
+CREATE TABLE t1 (a INT) PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (1), PARTITION p1 VALUES LESS THAN (MAXVALUE));
+INSERT INTO t1 VALUES (1),(2);
+ALTER TABLE t1 MODIFY a INT AUTO_INCREMENT PRIMARY KEY;
+UPDATE t1 PARTITION (p1) SET a=9 ORDER BY a LIMIT 1;
+DROP TABLE t1;
diff --git a/mysql-test/suite/parts/r/partition_alter4_innodb.result b/mysql-test/suite/parts/r/partition_alter4_innodb.result
index aab121f2..d4efb87a 100644
--- a/mysql-test/suite/parts/r/partition_alter4_innodb.result
+++ b/mysql-test/suite/parts/r/partition_alter4_innodb.result
@@ -60,7 +60,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -521,7 +520,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -993,7 +991,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -1466,7 +1463,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -1933,7 +1929,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -2406,7 +2401,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -2884,7 +2878,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -3360,7 +3353,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -3826,7 +3818,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1,part_2;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -4287,7 +4278,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1,part_2;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -4759,7 +4749,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1,part_2;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -5232,7 +5221,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1,part_2;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -5699,7 +5687,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1,part_2;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -6172,7 +6159,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1,part_2;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -6650,7 +6636,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1,part_2;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -7126,7 +7111,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1,part_2;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -15108,7 +15092,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -15569,7 +15552,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -16041,7 +16023,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -16514,7 +16495,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -16981,7 +16961,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -17454,7 +17433,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -17932,7 +17910,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -18408,7 +18385,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
diff --git a/mysql-test/suite/parts/r/partition_alter4_myisam.result b/mysql-test/suite/parts/r/partition_alter4_myisam.result
index c863d479..3c06585e 100644
--- a/mysql-test/suite/parts/r/partition_alter4_myisam.result
+++ b/mysql-test/suite/parts/r/partition_alter4_myisam.result
@@ -60,7 +60,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -530,7 +529,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -1017,7 +1015,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -1511,7 +1508,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -1995,7 +1991,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -2489,7 +2484,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -2988,7 +2982,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -3485,7 +3478,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -3974,7 +3966,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1,part_2;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -4444,7 +4435,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1,part_2;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -4931,7 +4921,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1,part_2;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -5425,7 +5414,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1,part_2;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -5909,7 +5897,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1,part_2;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -6403,7 +6390,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1,part_2;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -6902,7 +6888,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1,part_2;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -7399,7 +7384,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION part_1,part_2;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -15700,7 +15684,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -16170,7 +16153,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -16657,7 +16639,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -17151,7 +17132,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -17635,7 +17615,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -18129,7 +18108,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -18628,7 +18606,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
@@ -19125,7 +19102,6 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
diff --git a/mysql-test/suite/parts/r/partition_alter_myisam.result b/mysql-test/suite/parts/r/partition_alter_myisam.result
index ec6cbe92..c76c6aba 100644
--- a/mysql-test/suite/parts/r/partition_alter_myisam.result
+++ b/mysql-test/suite/parts/r/partition_alter_myisam.result
@@ -88,3 +88,25 @@ insert into t1 select rand()*1000, rand()*1000, repeat('b', 100) from t1;
alter online table t1 delay_key_write=0;
alter online table t1 delay_key_write=1;
drop table t1;
+#
+# MDEV-25102 UNIQUE USING HASH error after ALTER ... DISABLE KEYS
+#
+create table t1 (i1 int primary key, i2 int, d1 date, key(i2))
+partition by hash(i1) partitions 3;
+insert into t1 values(0, 1, '2010-10-10');
+select index_name, comment from information_schema.statistics where table_schema='test' and table_name='t1';
+index_name comment
+PRIMARY
+i2
+alter table t1 disable keys;
+select index_name, comment from information_schema.statistics where table_schema='test' and table_name='t1';
+index_name comment
+PRIMARY
+i2 disabled
+alter table t1 add partition (partition p4);
+select index_name, comment from information_schema.statistics where table_schema='test' and table_name='t1';
+index_name comment
+PRIMARY
+i2 disabled
+drop table t1;
+# End of 10.11 tests
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result b/mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result
index 88784224..28dcddd9 100644
--- a/mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result
+++ b/mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result
@@ -1020,7 +1020,6 @@ a b
2001 Second in MAX
ALTER TABLE t1 ANALYZE PARTITION MAX;
Table Op Msg_type Msg_text
-MySQL_Test_DB.t1 analyze status Engine-independent statistics collected
MySQL_Test_DB.t1 analyze status OK
# Truncate without FLUSH
ALTER TABLE t1 TRUNCATE PARTITION MAX;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc0_memory.result b/mysql-test/suite/parts/r/partition_mgm_lc0_memory.result
index 92457a21..204ef94d 100644
--- a/mysql-test/suite/parts/r/partition_mgm_lc0_memory.result
+++ b/mysql-test/suite/parts/r/partition_mgm_lc0_memory.result
@@ -1020,7 +1020,6 @@ a b
2001 Second in MAX
ALTER TABLE t1 ANALYZE PARTITION MAX;
Table Op Msg_type Msg_text
-MySQL_Test_DB.t1 analyze status Engine-independent statistics collected
MySQL_Test_DB.t1 analyze note The storage engine for the table doesn't support analyze
# Truncate without FLUSH
ALTER TABLE t1 TRUNCATE PARTITION MAX;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result b/mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result
index fea80a3f..10f8fbe1 100644
--- a/mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result
+++ b/mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result
@@ -1020,7 +1020,6 @@ a b
2001 Second in MAX
ALTER TABLE t1 ANALYZE PARTITION MAX;
Table Op Msg_type Msg_text
-MySQL_Test_DB.t1 analyze status Engine-independent statistics collected
MySQL_Test_DB.t1 analyze status OK
# Truncate without FLUSH
ALTER TABLE t1 TRUNCATE PARTITION MAX;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result b/mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result
index 418650eb..d9b677ac 100644
--- a/mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result
+++ b/mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result
@@ -987,7 +987,6 @@ a b
2001 Second in MAX
ALTER TABLE t1 ANALYZE PARTITION MAX;
Table Op Msg_type Msg_text
-mysql_test_db.t1 analyze status Engine-independent statistics collected
mysql_test_db.t1 analyze status OK
# Truncate without FLUSH
ALTER TABLE t1 TRUNCATE PARTITION MAX;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc1_memory.result b/mysql-test/suite/parts/r/partition_mgm_lc1_memory.result
index 96e72cbf..601f6cb7 100644
--- a/mysql-test/suite/parts/r/partition_mgm_lc1_memory.result
+++ b/mysql-test/suite/parts/r/partition_mgm_lc1_memory.result
@@ -987,7 +987,6 @@ a b
2001 Second in MAX
ALTER TABLE t1 ANALYZE PARTITION MAX;
Table Op Msg_type Msg_text
-mysql_test_db.t1 analyze status Engine-independent statistics collected
mysql_test_db.t1 analyze note The storage engine for the table doesn't support analyze
# Truncate without FLUSH
ALTER TABLE t1 TRUNCATE PARTITION MAX;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result b/mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result
index 0ab07cdc..936f972d 100644
--- a/mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result
+++ b/mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result
@@ -987,7 +987,6 @@ a b
2001 Second in MAX
ALTER TABLE t1 ANALYZE PARTITION MAX;
Table Op Msg_type Msg_text
-mysql_test_db.t1 analyze status Engine-independent statistics collected
mysql_test_db.t1 analyze status OK
# Truncate without FLUSH
ALTER TABLE t1 TRUNCATE PARTITION MAX;
diff --git a/mysql-test/suite/parts/r/partition_recover_myisam.result b/mysql-test/suite/parts/r/partition_recover_myisam.result
index 1eddf51b..129e84e5 100644
--- a/mysql-test/suite/parts/r/partition_recover_myisam.result
+++ b/mysql-test/suite/parts/r/partition_recover_myisam.result
@@ -1,3 +1,6 @@
+call mtr.add_suppression("..test.t1_will_crash");
+call mtr.add_suppression("Got an error from unknown thread");
+call mtr.add_suppression("Table 't1_will_crash' is marked as crashed and should be repaired");
CREATE TABLE t1_will_crash (a INT, KEY (a)) ENGINE=MyISAM;
INSERT INTO t1_will_crash VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11);
FLUSH TABLES;
diff --git a/mysql-test/suite/parts/t/alter_table.test b/mysql-test/suite/parts/t/alter_table.test
index 9b75add3..9c131c73 100644
--- a/mysql-test/suite/parts/t/alter_table.test
+++ b/mysql-test/suite/parts/t/alter_table.test
@@ -1,12 +1,18 @@
# Permissions don't work with embedded
--source include/not_embedded.inc
+
+#
+# General bugs with ALTER TABLE and partitions that doesn't have to be run
+# on all engines
+#
+
--source include/have_partition.inc
--source include/lcase_names.inc
--source suite/parts/inc/engines.inc
-#
-# MDEV-22649 SIGSEGV in ha_partition::create_partitioning_metadata on ALTER
-#
+--echo #
+--echo # MDEV-22649 SIGSEGV in ha_partition::create_partitioning_metadata on ALTER
+--echo #
set @save_alter_algorithm= @@session.alter_algorithm;
SET SESSION alter_algorithm=4;
@@ -18,18 +24,18 @@ DROP table if exists t1;
set @@session.alter_algorithm= @save_alter_algorithm;
-#
-# MDEV-22804 SIGSEGV in ha_partition::create_partitioning_metadata |
-# ERROR 1507 (HY000): Error in list of partitions to DROP
-#
+--echo #
+--echo # MDEV-22804 SIGSEGV in ha_partition::create_partitioning_metadata |
+--echo # ERROR 1507 (HY000): Error in list of partitions to DROP
+--echo #
CREATE TABLE t1 (a INT) PARTITION BY RANGE(a) SUBPARTITION BY HASH(a) (PARTITION p VALUES LESS THAN (5) (SUBPARTITION sp, SUBPARTITION sp1), PARTITION p1 VALUES LESS THAN MAXVALUE (SUBPARTITION sp2, SUBPARTITION sp3));
ALTER TABLE t1 DROP PARTITION p;
DROP TABLE if exists t1;
-#
-# MDEV-23357 Server crashes in Sql_cmd_alter_table_exchange_partition::exchange_partition
-#
+--echo #
+--echo # MDEV-23357 Server crashes in Sql_cmd_alter_table_exchange_partition::exchange_partition
+--echo #
CREATE TABLE t1 (i INT);
CREATE VIEW v1 as SELECT * FROM t1;
CREATE TABLE t2 (i INT);
@@ -38,6 +44,8 @@ ALTER TABLE v1 EXCHANGE PARTITION p2 WITH TABLE t2 ;
DROP VIEW v1;
DROP TABLE t1, t2;
+--echo # End of 10.5 tests
+
--echo #
--echo # MDEV-22165 CONVERT PARTITION: move in partition from existing table
--echo #
@@ -319,3 +327,5 @@ alter table t1 convert table tp to partition p2 values less than (1000);
--connection default
drop user u@localhost;
drop database db;
+
+--echo # End of 10.11 tests
diff --git a/mysql-test/suite/parts/t/mdev_21007.test b/mysql-test/suite/parts/t/mdev_21007.test
new file mode 100644
index 00000000..ec6fbe4d
--- /dev/null
+++ b/mysql-test/suite/parts/t/mdev_21007.test
@@ -0,0 +1,9 @@
+--source include/have_partition.inc
+
+CREATE TABLE t1 (a INT) PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (1), PARTITION p1 VALUES LESS THAN (MAXVALUE));
+INSERT INTO t1 VALUES (1),(2);
+ALTER TABLE t1 MODIFY a INT AUTO_INCREMENT PRIMARY KEY;
+UPDATE t1 PARTITION (p1) SET a=9 ORDER BY a LIMIT 1;
+
+# Cleanup
+DROP TABLE t1;
diff --git a/mysql-test/suite/parts/t/partition_alter_myisam.test b/mysql-test/suite/parts/t/partition_alter_myisam.test
index d3abb884..794c0779 100644
--- a/mysql-test/suite/parts/t/partition_alter_myisam.test
+++ b/mysql-test/suite/parts/t/partition_alter_myisam.test
@@ -22,3 +22,18 @@ insert into t1 select rand()*1000, rand()*1000, repeat('b', 100) from t1;
alter online table t1 delay_key_write=0;
alter online table t1 delay_key_write=1;
drop table t1;
+
+--echo #
+--echo # MDEV-25102 UNIQUE USING HASH error after ALTER ... DISABLE KEYS
+--echo #
+create table t1 (i1 int primary key, i2 int, d1 date, key(i2))
+partition by hash(i1) partitions 3;
+insert into t1 values(0, 1, '2010-10-10');
+select index_name, comment from information_schema.statistics where table_schema='test' and table_name='t1';
+alter table t1 disable keys;
+select index_name, comment from information_schema.statistics where table_schema='test' and table_name='t1';
+alter table t1 add partition (partition p4);
+select index_name, comment from information_schema.statistics where table_schema='test' and table_name='t1';
+drop table t1;
+
+--echo # End of 10.11 tests
diff --git a/mysql-test/suite/parts/t/partition_recover_myisam-master.opt b/mysql-test/suite/parts/t/partition_recover_myisam-master.opt
deleted file mode 100644
index ddbd7a0a..00000000
--- a/mysql-test/suite/parts/t/partition_recover_myisam-master.opt
+++ /dev/null
@@ -1 +0,0 @@
---myisam-recover-options
diff --git a/mysql-test/suite/parts/t/partition_recover_myisam.opt b/mysql-test/suite/parts/t/partition_recover_myisam.opt
new file mode 100644
index 00000000..ca3d0cdd
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_recover_myisam.opt
@@ -0,0 +1 @@
+--safe-mode
diff --git a/mysql-test/suite/parts/t/partition_recover_myisam.test b/mysql-test/suite/parts/t/partition_recover_myisam.test
index 91a14a51..3106407b 100644
--- a/mysql-test/suite/parts/t/partition_recover_myisam.test
+++ b/mysql-test/suite/parts/t/partition_recover_myisam.test
@@ -1,18 +1,10 @@
# test the auto-recover (--myisam-recover) of partitioned myisam tables
---disable_query_log
call mtr.add_suppression("..test.t1_will_crash");
call mtr.add_suppression("Got an error from unknown thread");
call mtr.add_suppression("Table 't1_will_crash' is marked as crashed and should be repaired");
---enable_query_log
--source include/have_partition.inc
---disable_warnings
---disable_query_log
-drop table if exists t1_will_crash;
---enable_query_log
---enable_warnings
-
CREATE TABLE t1_will_crash (a INT, KEY (a)) ENGINE=MyISAM;
INSERT INTO t1_will_crash VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11);
diff --git a/mysql-test/suite/perfschema/include/memory_aggregate_load.inc b/mysql-test/suite/perfschema/include/memory_aggregate_load.inc
index 7a54d252..c6e58d09 100644
--- a/mysql-test/suite/perfschema/include/memory_aggregate_load.inc
+++ b/mysql-test/suite/perfschema/include/memory_aggregate_load.inc
@@ -274,7 +274,6 @@ execute dump_users;
execute dump_hosts;
--disconnect con1
---disconnect con5
--connection default
@@ -283,6 +282,8 @@ let $wait_condition=
select count(*) = 0 from performance_schema.threads
where `TYPE`='FOREGROUND' and PROCESSLIST_USER= 'user1';
--source include/wait_condition.inc
+
+--disconnect con5
let $wait_condition=
select count(*) = 1 from performance_schema.threads
where `TYPE`='FOREGROUND' and PROCESSLIST_USER= 'user4';
diff --git a/mysql-test/suite/perfschema/include/program_execution.inc b/mysql-test/suite/perfschema/include/program_execution.inc
index 8c0bc691..f774a4d7 100644
--- a/mysql-test/suite/perfschema/include/program_execution.inc
+++ b/mysql-test/suite/perfschema/include/program_execution.inc
@@ -32,7 +32,7 @@ SET GLOBAL event_scheduler=ON;
CREATE TABLE table_t(a INT);
DELIMITER |;
-CREATE EVENT e1 ON SCHEDULE EVERY 2 SECOND DO
+CREATE EVENT e1 ON SCHEDULE EVERY 2 SECOND ON COMPLETION NOT PRESERVE DO
BEGIN
INSERT INTO table_t VALUES(1);
END|
diff --git a/mysql-test/suite/perfschema/include/stage_setup.inc b/mysql-test/suite/perfschema/include/stage_setup.inc
index 683c4561..ba97d909 100644
--- a/mysql-test/suite/perfschema/include/stage_setup.inc
+++ b/mysql-test/suite/perfschema/include/stage_setup.inc
@@ -121,12 +121,23 @@ begin
where thread_id = my_thread_id
and nesting_event_id = my_statement_id
order by event_id asc;
- # Ignore query cache as it may not be enabled
- select username, event_name, nesting_event_type
- from performance_schema.events_stages_history
- where thread_id = my_thread_id
- and nesting_event_id = my_statement_id and
- event_name not like "%query cache%"
+ # 1. Ignore query cache as it may not be enabled
+ # 2. MDL wait consists of short 1 second waits (this is not configurable)
+ # repeated until lock_wait_timeout is reached. The stage is changed
+ # to Waiting and back every second. To have predictable result here
+ # the query filters all sequences of X, "Waiting for MDL", X,
+ # leaving just X.
+ with h as (
+ select event_id, username, event_name, nesting_event_type,
+ lag(event_name) over (order by event_id) = lead(event_name) over (order by event_id)
+ and event_name = "stage/sql/Waiting for stored function metadata lock" as v1,
+ lag(event_name, 2) over (order by event_id) = event_name
+ and lag(event_name, 1) over (order by event_id) = "stage/sql/Waiting for stored function metadata lock" as v2
+ from performance_schema.events_stages_history
+ where thread_id = my_thread_id
+ and nesting_event_id = my_statement_id and
+ event_name not like "%query cache%"
+ ) select username, event_name, nesting_event_type from h where v1 is not true and v2 is not true
order by event_id asc;
end;
else
diff --git a/mysql-test/suite/perfschema/r/alter_table_progress.result b/mysql-test/suite/perfschema/r/alter_table_progress.result
index 08c2c3a6..caca7378 100644
--- a/mysql-test/suite/perfschema/r/alter_table_progress.result
+++ b/mysql-test/suite/perfschema/r/alter_table_progress.result
@@ -82,11 +82,10 @@ stage/sql/Unlocking tables NULL NULL
stage/sql/Rename result table NULL NULL
stage/sql/End of update loop NULL NULL
stage/sql/Query end NULL NULL
-stage/sql/Commit NULL NULL
stage/sql/closing tables NULL NULL
stage/sql/Unlocking tables NULL NULL
stage/sql/closing tables NULL NULL
-stage/sql/Commit implicit NULL NULL
+stage/sql/Query end NULL NULL
stage/sql/Starting cleanup NULL NULL
stage/sql/Freeing items NULL NULL
stage/sql/Reset for next command NULL NULL
diff --git a/mysql-test/suite/perfschema/r/event_aggregate.result b/mysql-test/suite/perfschema/r/event_aggregate.result
index 805378f5..abc3b205 100644
--- a/mysql-test/suite/perfschema/r/event_aggregate.result
+++ b/mysql-test/suite/perfschema/r/event_aggregate.result
@@ -251,35 +251,35 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 4
localhost stage/sql/closing tables 11
localhost stage/sql/init 3
localhost stage/sql/Opening tables 7
-localhost stage/sql/starting 6
+localhost stage/sql/starting 7
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -383,7 +383,7 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 0
user2 localhost stage/sql/closing tables 0
user2 localhost stage/sql/init 0
@@ -395,7 +395,7 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 0
user2 stage/sql/closing tables 0
user2 stage/sql/init 0
@@ -407,21 +407,21 @@ localhost stage/sql/checking permissions 4
localhost stage/sql/closing tables 11
localhost stage/sql/init 3
localhost stage/sql/Opening tables 7
-localhost stage/sql/starting 6
+localhost stage/sql/starting 7
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -551,45 +551,45 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 8
localhost stage/sql/closing tables 21
localhost stage/sql/init 6
localhost stage/sql/Opening tables 13
-localhost stage/sql/starting 12
+localhost stage/sql/starting 14
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -712,12 +712,12 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 0
user3 localhost stage/sql/closing tables 0
user3 localhost stage/sql/init 0
@@ -729,12 +729,12 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 0
user3 stage/sql/closing tables 0
user3 stage/sql/init 0
@@ -746,21 +746,21 @@ localhost stage/sql/checking permissions 8
localhost stage/sql/closing tables 21
localhost stage/sql/init 6
localhost stage/sql/Opening tables 13
-localhost stage/sql/starting 12
+localhost stage/sql/starting 14
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -909,55 +909,55 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 12
localhost stage/sql/closing tables 31
localhost stage/sql/init 9
localhost stage/sql/Opening tables 19
-localhost stage/sql/starting 18
+localhost stage/sql/starting 21
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1099,17 +1099,17 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
user4 localhost stage/sql/checking permissions 0
user4 localhost stage/sql/closing tables 0
user4 localhost stage/sql/init 0
@@ -1121,17 +1121,17 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
user4 stage/sql/checking permissions 0
user4 stage/sql/closing tables 0
user4 stage/sql/init 0
@@ -1143,21 +1143,21 @@ localhost stage/sql/checking permissions 12
localhost stage/sql/closing tables 31
localhost stage/sql/init 9
localhost stage/sql/Opening tables 19
-localhost stage/sql/starting 18
+localhost stage/sql/starting 21
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1325,65 +1325,65 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 6
+user4 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 6
+user4 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 24
+localhost stage/sql/starting 28
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 24
+stage/sql/starting 28
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 24
+stage/sql/starting 28
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1538,65 +1538,65 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 6
+user4 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 6
+user4 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 25
+localhost stage/sql/starting 29
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 25
+stage/sql/starting 29
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 25
+stage/sql/starting 29
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1751,65 +1751,65 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 6
+user4 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 6
+user4 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 26
+localhost stage/sql/starting 30
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 26
+stage/sql/starting 30
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 26
+stage/sql/starting 30
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1963,65 +1963,65 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 6
+user4 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 6
+user4 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 27
+localhost stage/sql/starting 31
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 27
+stage/sql/starting 31
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 27
+stage/sql/starting 31
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2174,65 +2174,65 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2386,65 +2386,65 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2597,65 +2597,65 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2808,65 +2808,65 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3019,65 +3019,65 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3230,65 +3230,65 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3441,65 +3441,65 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3674,43 +3674,43 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3907,21 +3907,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4125,14 +4125,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4343,7 +4343,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4554,7 +4554,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4765,7 +4765,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4976,7 +4976,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -5187,7 +5187,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -5398,7 +5398,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -5609,7 +5609,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -5820,7 +5820,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -6031,7 +6031,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -6242,7 +6242,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -6453,7 +6453,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -6636,7 +6636,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -6763,7 +6763,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -6862,7 +6862,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
diff --git a/mysql-test/suite/perfschema/r/event_aggregate_no_a.result b/mysql-test/suite/perfschema/r/event_aggregate_no_a.result
index 30948c2e..eb2ac32f 100644
--- a/mysql-test/suite/perfschema/r/event_aggregate_no_a.result
+++ b/mysql-test/suite/perfschema/r/event_aggregate_no_a.result
@@ -235,28 +235,28 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 4
localhost stage/sql/closing tables 11
localhost stage/sql/init 3
localhost stage/sql/Opening tables 7
-localhost stage/sql/starting 6
+localhost stage/sql/starting 7
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -350,7 +350,7 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 0
user2 stage/sql/closing tables 0
user2 stage/sql/init 0
@@ -362,21 +362,21 @@ localhost stage/sql/checking permissions 4
localhost stage/sql/closing tables 11
localhost stage/sql/init 3
localhost stage/sql/Opening tables 7
-localhost stage/sql/starting 6
+localhost stage/sql/starting 7
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -489,33 +489,33 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 8
localhost stage/sql/closing tables 21
localhost stage/sql/init 6
localhost stage/sql/Opening tables 13
-localhost stage/sql/starting 12
+localhost stage/sql/starting 14
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -619,12 +619,12 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 0
user3 stage/sql/closing tables 0
user3 stage/sql/init 0
@@ -636,21 +636,21 @@ localhost stage/sql/checking permissions 8
localhost stage/sql/closing tables 21
localhost stage/sql/init 6
localhost stage/sql/Opening tables 13
-localhost stage/sql/starting 12
+localhost stage/sql/starting 14
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -773,38 +773,38 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 12
localhost stage/sql/closing tables 31
localhost stage/sql/init 9
localhost stage/sql/Opening tables 19
-localhost stage/sql/starting 18
+localhost stage/sql/starting 21
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -918,17 +918,17 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
user4 stage/sql/checking permissions 0
user4 stage/sql/closing tables 0
user4 stage/sql/init 0
@@ -940,21 +940,21 @@ localhost stage/sql/checking permissions 12
localhost stage/sql/closing tables 31
localhost stage/sql/init 9
localhost stage/sql/Opening tables 19
-localhost stage/sql/starting 18
+localhost stage/sql/starting 21
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1087,43 +1087,43 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 6
+user4 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 24
+localhost stage/sql/starting 28
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 24
+stage/sql/starting 28
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 24
+stage/sql/starting 28
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1243,43 +1243,43 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 6
+user4 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 25
+localhost stage/sql/starting 29
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 25
+stage/sql/starting 29
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 25
+stage/sql/starting 29
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1399,43 +1399,43 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 6
+user4 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 26
+localhost stage/sql/starting 30
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 26
+stage/sql/starting 30
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 26
+stage/sql/starting 30
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1554,43 +1554,43 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 6
+user4 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 27
+localhost stage/sql/starting 31
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 27
+stage/sql/starting 31
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 27
+stage/sql/starting 31
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1708,43 +1708,43 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1863,43 +1863,43 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2017,43 +2017,43 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2171,43 +2171,43 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2325,43 +2325,43 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2479,43 +2479,43 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2633,43 +2633,43 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2787,43 +2787,43 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2963,21 +2963,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3124,14 +3124,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3285,7 +3285,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3439,7 +3439,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3593,7 +3593,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3747,7 +3747,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3901,7 +3901,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -4055,7 +4055,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -4209,7 +4209,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -4363,7 +4363,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -4517,7 +4517,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -4671,7 +4671,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -4825,7 +4825,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -4979,7 +4979,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -5105,7 +5105,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -5203,7 +5203,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
diff --git a/mysql-test/suite/perfschema/r/event_aggregate_no_a_no_h.result b/mysql-test/suite/perfschema/r/event_aggregate_no_a_no_h.result
index 956ea6c6..8dbe393e 100644
--- a/mysql-test/suite/perfschema/r/event_aggregate_no_a_no_h.result
+++ b/mysql-test/suite/perfschema/r/event_aggregate_no_a_no_h.result
@@ -205,7 +205,7 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -214,14 +214,14 @@ stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -306,7 +306,7 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 0
user2 stage/sql/closing tables 0
user2 stage/sql/init 0
@@ -320,14 +320,14 @@ stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -431,12 +431,12 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -445,14 +445,14 @@ stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -547,12 +547,12 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 0
user3 stage/sql/closing tables 0
user3 stage/sql/init 0
@@ -566,14 +566,14 @@ stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -687,17 +687,17 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -706,14 +706,14 @@ stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -818,17 +818,17 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
user4 stage/sql/checking permissions 0
user4 stage/sql/closing tables 0
user4 stage/sql/init 0
@@ -842,14 +842,14 @@ stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -973,22 +973,22 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 6
+user4 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -997,14 +997,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 24
+stage/sql/starting 28
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 24
+stage/sql/starting 28
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1115,22 +1115,22 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 6
+user4 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -1139,14 +1139,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 25
+stage/sql/starting 29
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 25
+stage/sql/starting 29
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1257,22 +1257,22 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 6
+user4 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -1281,14 +1281,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 26
+stage/sql/starting 30
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 26
+stage/sql/starting 30
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1398,22 +1398,22 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 6
+user4 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -1422,14 +1422,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 27
+stage/sql/starting 31
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 27
+stage/sql/starting 31
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1538,22 +1538,22 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -1562,14 +1562,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1679,22 +1679,22 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -1703,14 +1703,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1819,22 +1819,22 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -1843,14 +1843,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1959,22 +1959,22 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -1983,14 +1983,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2099,22 +2099,22 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -2123,14 +2123,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2239,22 +2239,22 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -2263,14 +2263,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2379,22 +2379,22 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -2403,14 +2403,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2519,22 +2519,22 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -2543,14 +2543,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2683,14 +2683,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2823,14 +2823,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2970,7 +2970,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3110,7 +3110,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3250,7 +3250,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3390,7 +3390,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3530,7 +3530,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3670,7 +3670,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3810,7 +3810,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3950,7 +3950,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -4090,7 +4090,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -4230,7 +4230,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -4370,7 +4370,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -4510,7 +4510,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -4622,7 +4622,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -4706,7 +4706,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
diff --git a/mysql-test/suite/perfschema/r/event_aggregate_no_a_no_u.result b/mysql-test/suite/perfschema/r/event_aggregate_no_a_no_u.result
index fbaa9a8d..f44c3bf9 100644
--- a/mysql-test/suite/perfschema/r/event_aggregate_no_a_no_u.result
+++ b/mysql-test/suite/perfschema/r/event_aggregate_no_a_no_u.result
@@ -219,21 +219,21 @@ localhost stage/sql/checking permissions 4
localhost stage/sql/closing tables 11
localhost stage/sql/init 3
localhost stage/sql/Opening tables 7
-localhost stage/sql/starting 6
+localhost stage/sql/starting 7
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -317,21 +317,21 @@ localhost stage/sql/checking permissions 4
localhost stage/sql/closing tables 11
localhost stage/sql/init 3
localhost stage/sql/Opening tables 7
-localhost stage/sql/starting 6
+localhost stage/sql/starting 7
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -427,21 +427,21 @@ localhost stage/sql/checking permissions 8
localhost stage/sql/closing tables 21
localhost stage/sql/init 6
localhost stage/sql/Opening tables 13
-localhost stage/sql/starting 12
+localhost stage/sql/starting 14
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -526,21 +526,21 @@ localhost stage/sql/checking permissions 8
localhost stage/sql/closing tables 21
localhost stage/sql/init 6
localhost stage/sql/Opening tables 13
-localhost stage/sql/starting 12
+localhost stage/sql/starting 14
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -637,21 +637,21 @@ localhost stage/sql/checking permissions 12
localhost stage/sql/closing tables 31
localhost stage/sql/init 9
localhost stage/sql/Opening tables 19
-localhost stage/sql/starting 18
+localhost stage/sql/starting 21
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -737,21 +737,21 @@ localhost stage/sql/checking permissions 12
localhost stage/sql/closing tables 31
localhost stage/sql/init 9
localhost stage/sql/Opening tables 19
-localhost stage/sql/starting 18
+localhost stage/sql/starting 21
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -849,21 +849,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 24
+localhost stage/sql/starting 28
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 24
+stage/sql/starting 28
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 24
+stage/sql/starting 28
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -948,21 +948,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 25
+localhost stage/sql/starting 29
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 25
+stage/sql/starting 29
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 25
+stage/sql/starting 29
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1047,21 +1047,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 26
+localhost stage/sql/starting 30
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 26
+stage/sql/starting 30
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 26
+stage/sql/starting 30
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1145,21 +1145,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 27
+localhost stage/sql/starting 31
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 27
+stage/sql/starting 31
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 27
+stage/sql/starting 31
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1242,21 +1242,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1340,21 +1340,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1437,21 +1437,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1534,21 +1534,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1631,21 +1631,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1728,21 +1728,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1825,21 +1825,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1922,21 +1922,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2019,21 +2019,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2123,14 +2123,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2227,7 +2227,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2324,7 +2324,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2421,7 +2421,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2518,7 +2518,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2615,7 +2615,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2712,7 +2712,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2809,7 +2809,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2906,7 +2906,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3003,7 +3003,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3100,7 +3100,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3197,7 +3197,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3294,7 +3294,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3391,7 +3391,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -3488,7 +3488,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
diff --git a/mysql-test/suite/perfschema/r/event_aggregate_no_a_no_u_no_h.result b/mysql-test/suite/perfschema/r/event_aggregate_no_a_no_u_no_h.result
index af535623..887c74d3 100644
--- a/mysql-test/suite/perfschema/r/event_aggregate_no_a_no_u_no_h.result
+++ b/mysql-test/suite/perfschema/r/event_aggregate_no_a_no_u_no_h.result
@@ -191,14 +191,14 @@ stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -275,14 +275,14 @@ stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -371,14 +371,14 @@ stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -456,14 +456,14 @@ stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -553,14 +553,14 @@ stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -639,14 +639,14 @@ stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -737,14 +737,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 24
+stage/sql/starting 28
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 24
+stage/sql/starting 28
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -822,14 +822,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 25
+stage/sql/starting 29
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 25
+stage/sql/starting 29
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -907,14 +907,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 26
+stage/sql/starting 30
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 26
+stage/sql/starting 30
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -991,14 +991,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 27
+stage/sql/starting 31
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 27
+stage/sql/starting 31
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1074,14 +1074,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1158,14 +1158,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1241,14 +1241,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1324,14 +1324,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1407,14 +1407,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1490,14 +1490,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1573,14 +1573,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1656,14 +1656,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1739,14 +1739,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1822,14 +1822,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1912,7 +1912,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -1995,7 +1995,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2078,7 +2078,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2161,7 +2161,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2244,7 +2244,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2327,7 +2327,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2410,7 +2410,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2493,7 +2493,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2576,7 +2576,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2659,7 +2659,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2742,7 +2742,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2825,7 +2825,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2908,7 +2908,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -2991,7 +2991,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
diff --git a/mysql-test/suite/perfschema/r/event_aggregate_no_h.result b/mysql-test/suite/perfschema/r/event_aggregate_no_h.result
index 1209d376..b9a885f6 100644
--- a/mysql-test/suite/perfschema/r/event_aggregate_no_h.result
+++ b/mysql-test/suite/perfschema/r/event_aggregate_no_h.result
@@ -221,14 +221,14 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -237,14 +237,14 @@ stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -339,7 +339,7 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 0
user2 localhost stage/sql/closing tables 0
user2 localhost stage/sql/init 0
@@ -351,7 +351,7 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 0
user2 stage/sql/closing tables 0
user2 stage/sql/init 0
@@ -365,14 +365,14 @@ stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -493,24 +493,24 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -519,14 +519,14 @@ stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -640,12 +640,12 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 0
user3 localhost stage/sql/closing tables 0
user3 localhost stage/sql/init 0
@@ -657,12 +657,12 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 0
user3 stage/sql/closing tables 0
user3 stage/sql/init 0
@@ -676,14 +676,14 @@ stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -823,34 +823,34 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -859,14 +859,14 @@ stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -999,17 +999,17 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
user4 localhost stage/sql/checking permissions 0
user4 localhost stage/sql/closing tables 0
user4 localhost stage/sql/init 0
@@ -1021,17 +1021,17 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
user4 stage/sql/checking permissions 0
user4 stage/sql/closing tables 0
user4 stage/sql/init 0
@@ -1045,14 +1045,14 @@ stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1211,44 +1211,44 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 6
+user4 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 6
+user1 stage/sql/starting 7
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 6
+user4 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -1257,14 +1257,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 24
+stage/sql/starting 28
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 24
+stage/sql/starting 28
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1410,44 +1410,44 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 6
+user4 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 6
+user2 stage/sql/starting 7
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 6
+user4 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -1456,14 +1456,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 25
+stage/sql/starting 29
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 25
+stage/sql/starting 29
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1609,44 +1609,44 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 6
+user4 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 6
+user3 stage/sql/starting 7
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 6
+user4 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -1655,14 +1655,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 26
+stage/sql/starting 30
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 26
+stage/sql/starting 30
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1807,44 +1807,44 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 6
+user4 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 6
+user4 stage/sql/starting 7
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -1853,14 +1853,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 27
+stage/sql/starting 31
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 27
+stage/sql/starting 31
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2004,44 +2004,44 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -2050,14 +2050,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2202,44 +2202,44 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -2248,14 +2248,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2399,44 +2399,44 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -2445,14 +2445,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2596,44 +2596,44 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -2642,14 +2642,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2793,44 +2793,44 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -2839,14 +2839,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2990,44 +2990,44 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -3036,14 +3036,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3187,44 +3187,44 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -3233,14 +3233,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3406,22 +3406,22 @@ user1 stage/sql/checking permissions 4
user1 stage/sql/closing tables 11
user1 stage/sql/init 3
user1 stage/sql/Opening tables 7
-user1 stage/sql/starting 7
+user1 stage/sql/starting 8
user2 stage/sql/checking permissions 4
user2 stage/sql/closing tables 10
user2 stage/sql/init 3
user2 stage/sql/Opening tables 6
-user2 stage/sql/starting 7
+user2 stage/sql/starting 8
user3 stage/sql/checking permissions 4
user3 stage/sql/closing tables 10
user3 stage/sql/init 3
user3 stage/sql/Opening tables 6
-user3 stage/sql/starting 7
+user3 stage/sql/starting 8
user4 stage/sql/checking permissions 4
user4 stage/sql/closing tables 10
user4 stage/sql/init 3
user4 stage/sql/Opening tables 6
-user4 stage/sql/starting 7
+user4 stage/sql/starting 8
execute dump_stages_host;
host event_name count_star
execute dump_stages_global;
@@ -3430,14 +3430,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3627,14 +3627,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3824,14 +3824,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4028,7 +4028,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4225,7 +4225,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4422,7 +4422,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4619,7 +4619,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4816,7 +4816,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -5013,7 +5013,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -5210,7 +5210,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -5407,7 +5407,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -5604,7 +5604,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -5801,7 +5801,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -5998,7 +5998,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -6167,7 +6167,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -6280,7 +6280,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -6365,7 +6365,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
diff --git a/mysql-test/suite/perfschema/r/event_aggregate_no_u.result b/mysql-test/suite/perfschema/r/event_aggregate_no_u.result
index 39da9783..da99aa54 100644
--- a/mysql-test/suite/perfschema/r/event_aggregate_no_u.result
+++ b/mysql-test/suite/perfschema/r/event_aggregate_no_u.result
@@ -233,7 +233,7 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -242,21 +242,21 @@ localhost stage/sql/checking permissions 4
localhost stage/sql/closing tables 11
localhost stage/sql/init 3
localhost stage/sql/Opening tables 7
-localhost stage/sql/starting 6
+localhost stage/sql/starting 7
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -348,7 +348,7 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 0
user2 localhost stage/sql/closing tables 0
user2 localhost stage/sql/init 0
@@ -362,21 +362,21 @@ localhost stage/sql/checking permissions 4
localhost stage/sql/closing tables 11
localhost stage/sql/init 3
localhost stage/sql/Opening tables 7
-localhost stage/sql/starting 6
+localhost stage/sql/starting 7
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -487,12 +487,12 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -501,21 +501,21 @@ localhost stage/sql/checking permissions 8
localhost stage/sql/closing tables 21
localhost stage/sql/init 6
localhost stage/sql/Opening tables 13
-localhost stage/sql/starting 12
+localhost stage/sql/starting 14
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -617,12 +617,12 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 0
user3 localhost stage/sql/closing tables 0
user3 localhost stage/sql/init 0
@@ -636,21 +636,21 @@ localhost stage/sql/checking permissions 8
localhost stage/sql/closing tables 21
localhost stage/sql/init 6
localhost stage/sql/Opening tables 13
-localhost stage/sql/starting 12
+localhost stage/sql/starting 14
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -771,17 +771,17 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -790,21 +790,21 @@ localhost stage/sql/checking permissions 12
localhost stage/sql/closing tables 31
localhost stage/sql/init 9
localhost stage/sql/Opening tables 19
-localhost stage/sql/starting 18
+localhost stage/sql/starting 21
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -916,17 +916,17 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
user4 localhost stage/sql/checking permissions 0
user4 localhost stage/sql/closing tables 0
user4 localhost stage/sql/init 0
@@ -940,21 +940,21 @@ localhost stage/sql/checking permissions 12
localhost stage/sql/closing tables 31
localhost stage/sql/init 9
localhost stage/sql/Opening tables 19
-localhost stage/sql/starting 18
+localhost stage/sql/starting 21
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1085,22 +1085,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 6
+user4 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -1109,21 +1109,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 24
+localhost stage/sql/starting 28
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 24
+stage/sql/starting 28
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 24
+stage/sql/starting 28
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1241,22 +1241,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 6
+user4 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -1265,21 +1265,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 25
+localhost stage/sql/starting 29
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 25
+stage/sql/starting 29
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 25
+stage/sql/starting 29
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1397,22 +1397,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 6
+user4 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -1421,21 +1421,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 26
+localhost stage/sql/starting 30
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 26
+stage/sql/starting 30
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 26
+stage/sql/starting 30
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1552,22 +1552,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 6
+user4 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -1576,21 +1576,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 27
+localhost stage/sql/starting 31
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 27
+stage/sql/starting 31
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 27
+stage/sql/starting 31
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1706,22 +1706,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -1730,21 +1730,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1861,22 +1861,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -1885,21 +1885,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2015,22 +2015,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -2039,21 +2039,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2169,22 +2169,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -2193,21 +2193,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2323,22 +2323,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -2347,21 +2347,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2477,22 +2477,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -2501,21 +2501,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2631,22 +2631,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -2655,21 +2655,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2809,21 +2809,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2963,21 +2963,21 @@ localhost stage/sql/checking permissions 16
localhost stage/sql/closing tables 41
localhost stage/sql/init 12
localhost stage/sql/Opening tables 25
-localhost stage/sql/starting 28
+localhost stage/sql/starting 32
execute dump_stages_global;
event_name count_star
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3124,14 +3124,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3285,7 +3285,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3439,7 +3439,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3593,7 +3593,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3747,7 +3747,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3901,7 +3901,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4055,7 +4055,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4209,7 +4209,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4363,7 +4363,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4517,7 +4517,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4671,7 +4671,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4825,7 +4825,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4951,7 +4951,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -5049,7 +5049,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -5147,7 +5147,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
diff --git a/mysql-test/suite/perfschema/r/event_aggregate_no_u_no_h.result b/mysql-test/suite/perfschema/r/event_aggregate_no_u_no_h.result
index 818c61e0..064b6e45 100644
--- a/mysql-test/suite/perfschema/r/event_aggregate_no_u_no_h.result
+++ b/mysql-test/suite/perfschema/r/event_aggregate_no_u_no_h.result
@@ -203,7 +203,7 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -214,14 +214,14 @@ stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -304,7 +304,7 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 0
user2 localhost stage/sql/closing tables 0
user2 localhost stage/sql/init 0
@@ -320,14 +320,14 @@ stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 4
stage/sql/closing tables 11
stage/sql/init 3
stage/sql/Opening tables 7
-stage/sql/starting 6
+stage/sql/starting 7
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -429,12 +429,12 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -445,14 +445,14 @@ stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -545,12 +545,12 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 0
user3 localhost stage/sql/closing tables 0
user3 localhost stage/sql/init 0
@@ -566,14 +566,14 @@ stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 8
stage/sql/closing tables 21
stage/sql/init 6
stage/sql/Opening tables 13
-stage/sql/starting 12
+stage/sql/starting 14
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -685,17 +685,17 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -706,14 +706,14 @@ stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -816,17 +816,17 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
user4 localhost stage/sql/checking permissions 0
user4 localhost stage/sql/closing tables 0
user4 localhost stage/sql/init 0
@@ -842,14 +842,14 @@ stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 12
stage/sql/closing tables 31
stage/sql/init 9
stage/sql/Opening tables 19
-stage/sql/starting 18
+stage/sql/starting 21
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -971,22 +971,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 6
+user1 localhost stage/sql/starting 7
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 6
+user4 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -997,14 +997,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 24
+stage/sql/starting 28
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 24
+stage/sql/starting 28
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1113,22 +1113,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 6
+user2 localhost stage/sql/starting 7
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 6
+user4 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -1139,14 +1139,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 25
+stage/sql/starting 29
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 25
+stage/sql/starting 29
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1255,22 +1255,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 6
+user3 localhost stage/sql/starting 7
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 6
+user4 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -1281,14 +1281,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 26
+stage/sql/starting 30
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 26
+stage/sql/starting 30
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1396,22 +1396,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 6
+user4 localhost stage/sql/starting 7
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -1422,14 +1422,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 27
+stage/sql/starting 31
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 27
+stage/sql/starting 31
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1536,22 +1536,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -1562,14 +1562,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1677,22 +1677,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -1703,14 +1703,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1817,22 +1817,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -1843,14 +1843,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -1957,22 +1957,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -1983,14 +1983,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2097,22 +2097,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -2123,14 +2123,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2237,22 +2237,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -2263,14 +2263,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2377,22 +2377,22 @@ user1 localhost stage/sql/checking permissions 4
user1 localhost stage/sql/closing tables 11
user1 localhost stage/sql/init 3
user1 localhost stage/sql/Opening tables 7
-user1 localhost stage/sql/starting 7
+user1 localhost stage/sql/starting 8
user2 localhost stage/sql/checking permissions 4
user2 localhost stage/sql/closing tables 10
user2 localhost stage/sql/init 3
user2 localhost stage/sql/Opening tables 6
-user2 localhost stage/sql/starting 7
+user2 localhost stage/sql/starting 8
user3 localhost stage/sql/checking permissions 4
user3 localhost stage/sql/closing tables 10
user3 localhost stage/sql/init 3
user3 localhost stage/sql/Opening tables 6
-user3 localhost stage/sql/starting 7
+user3 localhost stage/sql/starting 8
user4 localhost stage/sql/checking permissions 4
user4 localhost stage/sql/closing tables 10
user4 localhost stage/sql/init 3
user4 localhost stage/sql/Opening tables 6
-user4 localhost stage/sql/starting 7
+user4 localhost stage/sql/starting 8
execute dump_stages_user;
user event_name count_star
execute dump_stages_host;
@@ -2403,14 +2403,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2543,14 +2543,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2683,14 +2683,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2823,14 +2823,14 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_stages_history;
event_name count(event_name)
stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -2970,7 +2970,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3110,7 +3110,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3250,7 +3250,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3390,7 +3390,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3530,7 +3530,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3670,7 +3670,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3810,7 +3810,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -3950,7 +3950,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4090,7 +4090,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4230,7 +4230,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4370,7 +4370,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
user1 localhost statement/com/Error 0
@@ -4482,7 +4482,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -4566,7 +4566,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
@@ -4650,7 +4650,7 @@ stage/sql/checking permissions 16
stage/sql/closing tables 41
stage/sql/init 12
stage/sql/Opening tables 25
-stage/sql/starting 28
+stage/sql/starting 32
execute dump_statements_account;
user host event_name count_star
execute dump_statements_user;
diff --git a/mysql-test/suite/perfschema/r/max_program_zero.result b/mysql-test/suite/perfschema/r/max_program_zero.result
index 5435efb3..0e2928bd 100644
--- a/mysql-test/suite/perfschema/r/max_program_zero.result
+++ b/mysql-test/suite/perfschema/r/max_program_zero.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/memory_aggregate.result b/mysql-test/suite/perfschema/r/memory_aggregate.result
index 69eb033e..1d963dd8 100644
--- a/mysql-test/suite/perfschema/r/memory_aggregate.result
+++ b/mysql-test/suite/perfschema/r/memory_aggregate.result
@@ -2507,8 +2507,8 @@ execute dump_hosts;
HOST CURRENT_CONNECTIONS TOTAL_CONNECTIONS
localhost 6 6
disconnect con1;
-disconnect con5;
connection default;
+disconnect con5;
"================== con1/con5 disconnected =================="
"================== Step 10 =================="
call dump_thread();
diff --git a/mysql-test/suite/perfschema/r/memory_aggregate_32bit.result b/mysql-test/suite/perfschema/r/memory_aggregate_32bit.result
index 2b8ee675..387af11f 100644
--- a/mysql-test/suite/perfschema/r/memory_aggregate_32bit.result
+++ b/mysql-test/suite/perfschema/r/memory_aggregate_32bit.result
@@ -2507,8 +2507,8 @@ execute dump_hosts;
HOST CURRENT_CONNECTIONS TOTAL_CONNECTIONS
localhost 6 6
disconnect con1;
-disconnect con5;
connection default;
+disconnect con5;
"================== con1/con5 disconnected =================="
"================== Step 10 =================="
call dump_thread();
diff --git a/mysql-test/suite/perfschema/r/memory_aggregate_no_a.result b/mysql-test/suite/perfschema/r/memory_aggregate_no_a.result
index b5c8e1cd..abac503b 100644
--- a/mysql-test/suite/perfschema/r/memory_aggregate_no_a.result
+++ b/mysql-test/suite/perfschema/r/memory_aggregate_no_a.result
@@ -1903,8 +1903,8 @@ execute dump_hosts;
HOST CURRENT_CONNECTIONS TOTAL_CONNECTIONS
localhost 6 6
disconnect con1;
-disconnect con5;
connection default;
+disconnect con5;
"================== con1/con5 disconnected =================="
"================== Step 10 =================="
call dump_thread();
diff --git a/mysql-test/suite/perfschema/r/memory_aggregate_no_a_no_h.result b/mysql-test/suite/perfschema/r/memory_aggregate_no_a_no_h.result
index cc0e0c03..f63e6f1d 100644
--- a/mysql-test/suite/perfschema/r/memory_aggregate_no_a_no_h.result
+++ b/mysql-test/suite/perfschema/r/memory_aggregate_no_a_no_h.result
@@ -1653,8 +1653,8 @@ user4 2 2
execute dump_hosts;
HOST CURRENT_CONNECTIONS TOTAL_CONNECTIONS
disconnect con1;
-disconnect con5;
connection default;
+disconnect con5;
"================== con1/con5 disconnected =================="
"================== Step 10 =================="
call dump_thread();
diff --git a/mysql-test/suite/perfschema/r/memory_aggregate_no_a_no_u.result b/mysql-test/suite/perfschema/r/memory_aggregate_no_a_no_u.result
index 8b24b5b5..32785952 100644
--- a/mysql-test/suite/perfschema/r/memory_aggregate_no_a_no_u.result
+++ b/mysql-test/suite/perfschema/r/memory_aggregate_no_a_no_u.result
@@ -1343,8 +1343,8 @@ execute dump_hosts;
HOST CURRENT_CONNECTIONS TOTAL_CONNECTIONS
localhost 6 6
disconnect con1;
-disconnect con5;
connection default;
+disconnect con5;
"================== con1/con5 disconnected =================="
"================== Step 10 =================="
call dump_thread();
diff --git a/mysql-test/suite/perfschema/r/memory_aggregate_no_a_no_u_no_h.result b/mysql-test/suite/perfschema/r/memory_aggregate_no_a_no_u_no_h.result
index 45cbaf88..e68f0e1b 100644
--- a/mysql-test/suite/perfschema/r/memory_aggregate_no_a_no_u_no_h.result
+++ b/mysql-test/suite/perfschema/r/memory_aggregate_no_a_no_u_no_h.result
@@ -1093,8 +1093,8 @@ USER CURRENT_CONNECTIONS TOTAL_CONNECTIONS
execute dump_hosts;
HOST CURRENT_CONNECTIONS TOTAL_CONNECTIONS
disconnect con1;
-disconnect con5;
connection default;
+disconnect con5;
"================== con1/con5 disconnected =================="
"================== Step 10 =================="
call dump_thread();
diff --git a/mysql-test/suite/perfschema/r/memory_aggregate_no_h.result b/mysql-test/suite/perfschema/r/memory_aggregate_no_h.result
index 35d528bf..e3b7cd0f 100644
--- a/mysql-test/suite/perfschema/r/memory_aggregate_no_h.result
+++ b/mysql-test/suite/perfschema/r/memory_aggregate_no_h.result
@@ -2257,8 +2257,8 @@ user4 2 2
execute dump_hosts;
HOST CURRENT_CONNECTIONS TOTAL_CONNECTIONS
disconnect con1;
-disconnect con5;
connection default;
+disconnect con5;
"================== con1/con5 disconnected =================="
"================== Step 10 =================="
call dump_thread();
diff --git a/mysql-test/suite/perfschema/r/memory_aggregate_no_u.result b/mysql-test/suite/perfschema/r/memory_aggregate_no_u.result
index 1f800ce4..fd9f2c69 100644
--- a/mysql-test/suite/perfschema/r/memory_aggregate_no_u.result
+++ b/mysql-test/suite/perfschema/r/memory_aggregate_no_u.result
@@ -1947,8 +1947,8 @@ execute dump_hosts;
HOST CURRENT_CONNECTIONS TOTAL_CONNECTIONS
localhost 6 6
disconnect con1;
-disconnect con5;
connection default;
+disconnect con5;
"================== con1/con5 disconnected =================="
"================== Step 10 =================="
call dump_thread();
diff --git a/mysql-test/suite/perfschema/r/memory_aggregate_no_u_no_h.result b/mysql-test/suite/perfschema/r/memory_aggregate_no_u_no_h.result
index b1ac5f24..fdbd2d75 100644
--- a/mysql-test/suite/perfschema/r/memory_aggregate_no_u_no_h.result
+++ b/mysql-test/suite/perfschema/r/memory_aggregate_no_u_no_h.result
@@ -1697,8 +1697,8 @@ USER CURRENT_CONNECTIONS TOTAL_CONNECTIONS
execute dump_hosts;
HOST CURRENT_CONNECTIONS TOTAL_CONNECTIONS
disconnect con1;
-disconnect con5;
connection default;
+disconnect con5;
"================== con1/con5 disconnected =================="
"================== Step 10 =================="
call dump_thread();
diff --git a/mysql-test/suite/perfschema/r/misc.result b/mysql-test/suite/perfschema/r/misc.result
index 2258cbce..6bc0fa32 100644
--- a/mysql-test/suite/perfschema/r/misc.result
+++ b/mysql-test/suite/perfschema/r/misc.result
@@ -94,7 +94,7 @@ test t_60905 NULL 5 5 0 1
DROP TABLE t_60905;
show global variables like "performance_schema_max_thread_instances";
Variable_name Value
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
explain select * from performance_schema.threads;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE threads ALL NULL NULL NULL NULL 256
diff --git a/mysql-test/suite/perfschema/r/nesting.result b/mysql-test/suite/perfschema/r/nesting.result
index 9e18e5ac..f17a6462 100644
--- a/mysql-test/suite/perfschema/r/nesting.result
+++ b/mysql-test/suite/perfschema/r/nesting.result
@@ -127,10 +127,10 @@ relative_event_id relative_end_event_id event_name comment nesting_event_type re
10 10 stage/sql/Optimizing (stage) STATEMENT 0
11 11 stage/sql/Executing (stage) STATEMENT 0
12 12 stage/sql/End of update loop (stage) STATEMENT 0
-13 13 stage/sql/Query end (stage) STATEMENT 0
-14 15 stage/sql/Commit (stage) STATEMENT 0
-15 15 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 14
-16 16 stage/sql/closing tables (stage) STATEMENT 0
+13 14 stage/sql/Query end (stage) STATEMENT 0
+14 14 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 13
+15 15 stage/sql/closing tables (stage) STATEMENT 0
+16 16 stage/sql/Query end (stage) STATEMENT 0
17 17 stage/sql/Starting cleanup (stage) STATEMENT 0
18 18 stage/sql/Freeing items (stage) STATEMENT 0
19 19 wait/io/socket/sql/client_connection send STATEMENT 0
@@ -151,10 +151,10 @@ relative_event_id relative_end_event_id event_name comment nesting_event_type re
34 34 stage/sql/Optimizing (stage) STATEMENT 24
35 35 stage/sql/Executing (stage) STATEMENT 24
36 36 stage/sql/End of update loop (stage) STATEMENT 24
-37 37 stage/sql/Query end (stage) STATEMENT 24
-38 39 stage/sql/Commit (stage) STATEMENT 24
-39 39 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 38
-40 40 stage/sql/closing tables (stage) STATEMENT 24
+37 38 stage/sql/Query end (stage) STATEMENT 24
+38 38 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 37
+39 39 stage/sql/closing tables (stage) STATEMENT 24
+40 40 stage/sql/Query end (stage) STATEMENT 24
41 41 stage/sql/Starting cleanup (stage) STATEMENT 24
42 42 stage/sql/Freeing items (stage) STATEMENT 24
43 43 wait/io/socket/sql/client_connection send STATEMENT 24
@@ -175,10 +175,10 @@ relative_event_id relative_end_event_id event_name comment nesting_event_type re
58 58 stage/sql/Optimizing (stage) STATEMENT 48
59 59 stage/sql/Executing (stage) STATEMENT 48
60 60 stage/sql/End of update loop (stage) STATEMENT 48
-61 61 stage/sql/Query end (stage) STATEMENT 48
-62 63 stage/sql/Commit (stage) STATEMENT 48
-63 63 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 62
-64 64 stage/sql/closing tables (stage) STATEMENT 48
+61 62 stage/sql/Query end (stage) STATEMENT 48
+62 62 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 61
+63 63 stage/sql/closing tables (stage) STATEMENT 48
+64 64 stage/sql/Query end (stage) STATEMENT 48
65 65 stage/sql/Starting cleanup (stage) STATEMENT 48
66 66 stage/sql/Freeing items (stage) STATEMENT 48
67 67 wait/io/socket/sql/client_connection send STATEMENT 48
@@ -202,10 +202,10 @@ select "With a third part to make things complete" as payload NULL NULL
83 83 stage/sql/Optimizing (stage) STATEMENT 72
84 84 stage/sql/Executing (stage) STATEMENT 72
85 85 stage/sql/End of update loop (stage) STATEMENT 72
-86 86 stage/sql/Query end (stage) STATEMENT 72
-87 88 stage/sql/Commit (stage) STATEMENT 72
-88 88 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 87
-89 89 stage/sql/closing tables (stage) STATEMENT 72
+86 87 stage/sql/Query end (stage) STATEMENT 72
+87 87 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 86
+88 88 stage/sql/closing tables (stage) STATEMENT 72
+89 89 stage/sql/Query end (stage) STATEMENT 72
90 90 stage/sql/Starting cleanup (stage) STATEMENT 72
91 92 stage/sql/Freeing items (stage) STATEMENT 72
92 92 wait/io/socket/sql/client_connection send STAGE 91
@@ -221,10 +221,10 @@ select "With a third part to make things complete" as payload NULL NULL
101 101 stage/sql/Optimizing (stage) STATEMENT 93
102 102 stage/sql/Executing (stage) STATEMENT 93
103 103 stage/sql/End of update loop (stage) STATEMENT 93
-104 104 stage/sql/Query end (stage) STATEMENT 93
-105 106 stage/sql/Commit (stage) STATEMENT 93
-106 106 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 105
-107 107 stage/sql/closing tables (stage) STATEMENT 93
+104 105 stage/sql/Query end (stage) STATEMENT 93
+105 105 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 104
+106 106 stage/sql/closing tables (stage) STATEMENT 93
+107 107 stage/sql/Query end (stage) STATEMENT 93
108 108 stage/sql/Starting cleanup (stage) STATEMENT 93
109 110 stage/sql/Freeing items (stage) STATEMENT 93
110 110 wait/io/socket/sql/client_connection send STAGE 109
@@ -238,10 +238,10 @@ select "With a third part to make things complete" as payload NULL NULL
118 118 stage/sql/Optimizing (stage) STATEMENT 111
119 119 stage/sql/Executing (stage) STATEMENT 111
120 120 stage/sql/End of update loop (stage) STATEMENT 111
-121 121 stage/sql/Query end (stage) STATEMENT 111
-122 123 stage/sql/Commit (stage) STATEMENT 111
-123 123 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 122
-124 124 stage/sql/closing tables (stage) STATEMENT 111
+121 122 stage/sql/Query end (stage) STATEMENT 111
+122 122 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 121
+123 123 stage/sql/closing tables (stage) STATEMENT 111
+124 124 stage/sql/Query end (stage) STATEMENT 111
125 125 stage/sql/Starting cleanup (stage) STATEMENT 111
126 126 stage/sql/Freeing items (stage) STATEMENT 111
127 127 wait/io/socket/sql/client_connection send STATEMENT 111
@@ -262,10 +262,10 @@ select "With a third part to make things complete" as payload NULL NULL
142 142 stage/sql/Optimizing (stage) STATEMENT 132
143 143 stage/sql/Executing (stage) STATEMENT 132
144 144 stage/sql/End of update loop (stage) STATEMENT 132
-145 145 stage/sql/Query end (stage) STATEMENT 132
-146 147 stage/sql/Commit (stage) STATEMENT 132
-147 147 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 146
-148 148 stage/sql/closing tables (stage) STATEMENT 132
+145 146 stage/sql/Query end (stage) STATEMENT 132
+146 146 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 145
+147 147 stage/sql/closing tables (stage) STATEMENT 132
+148 148 stage/sql/Query end (stage) STATEMENT 132
149 149 stage/sql/Starting cleanup (stage) STATEMENT 132
150 150 stage/sql/Freeing items (stage) STATEMENT 132
151 151 wait/io/socket/sql/client_connection send STATEMENT 132
diff --git a/mysql-test/suite/perfschema/r/ortho_iter.result b/mysql-test/suite/perfschema/r/ortho_iter.result
index 9489c104..4eee0622 100644
--- a/mysql-test/suite/perfschema/r/ortho_iter.result
+++ b/mysql-test/suite/perfschema/r/ortho_iter.result
@@ -237,7 +237,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -261,7 +261,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/privilege_table_io.result b/mysql-test/suite/perfschema/r/privilege_table_io.result
index 8be4b958..9e5e0ad3 100644
--- a/mysql-test/suite/perfschema/r/privilege_table_io.result
+++ b/mysql-test/suite/perfschema/r/privilege_table_io.result
@@ -39,7 +39,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -63,7 +63,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/stage_mdl_global.result b/mysql-test/suite/perfschema/r/stage_mdl_global.result
index b9eda506..48aca9e5 100644
--- a/mysql-test/suite/perfschema/r/stage_mdl_global.result
+++ b/mysql-test/suite/perfschema/r/stage_mdl_global.result
@@ -10,10 +10,10 @@ username event_name nesting_event_type
username event_name nesting_event_type
user1 stage/sql/starting STATEMENT
user1 stage/sql/starting STATEMENT
+user1 stage/sql/starting STATEMENT
user1 stage/sql/Query end STATEMENT
-user1 stage/sql/Commit STATEMENT
user1 stage/sql/closing tables STATEMENT
-user1 stage/sql/Commit implicit STATEMENT
+user1 stage/sql/Query end STATEMENT
user1 stage/sql/Starting cleanup STATEMENT
user1 stage/sql/Freeing items STATEMENT
user1 stage/sql/Reset for next command STATEMENT
diff --git a/mysql-test/suite/perfschema/r/stage_mdl_table.result b/mysql-test/suite/perfschema/r/stage_mdl_table.result
index 5ba0ba04..b9b2dc12 100644
--- a/mysql-test/suite/perfschema/r/stage_mdl_table.result
+++ b/mysql-test/suite/perfschema/r/stage_mdl_table.result
@@ -19,10 +19,10 @@ username event_name nesting_event_type
user1 stage/sql/Sending data STATEMENT
user1 stage/sql/End of update loop STATEMENT
user1 stage/sql/Query end STATEMENT
-user1 stage/sql/Commit STATEMENT
user1 stage/sql/closing tables STATEMENT
user1 stage/sql/Unlocking tables STATEMENT
user1 stage/sql/closing tables STATEMENT
+user1 stage/sql/Query end STATEMENT
user1 stage/sql/Starting cleanup STATEMENT
user1 stage/sql/Freeing items STATEMENT
user1 stage/sql/Reset for next command STATEMENT
diff --git a/mysql-test/suite/perfschema/r/start_server_disable_idle.result b/mysql-test/suite/perfschema/r/start_server_disable_idle.result
index bfc49fd3..dcd8feb3 100644
--- a/mysql-test/suite/perfschema/r/start_server_disable_idle.result
+++ b/mysql-test/suite/perfschema/r/start_server_disable_idle.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_disable_stages.result b/mysql-test/suite/perfschema/r/start_server_disable_stages.result
index e9f20398..d2a1d3e2 100644
--- a/mysql-test/suite/perfschema/r/start_server_disable_stages.result
+++ b/mysql-test/suite/perfschema/r/start_server_disable_stages.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_disable_statements.result b/mysql-test/suite/perfschema/r/start_server_disable_statements.result
index ffb45f4f..fc50aecd 100644
--- a/mysql-test/suite/perfschema/r/start_server_disable_statements.result
+++ b/mysql-test/suite/perfschema/r/start_server_disable_statements.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_disable_transactions.result b/mysql-test/suite/perfschema/r/start_server_disable_transactions.result
index e271d5a1..4cd5aad2 100644
--- a/mysql-test/suite/perfschema/r/start_server_disable_transactions.result
+++ b/mysql-test/suite/perfschema/r/start_server_disable_transactions.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_disable_waits.result b/mysql-test/suite/perfschema/r/start_server_disable_waits.result
index 833da225..4665083f 100644
--- a/mysql-test/suite/perfschema/r/start_server_disable_waits.result
+++ b/mysql-test/suite/perfschema/r/start_server_disable_waits.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_innodb.result b/mysql-test/suite/perfschema/r/start_server_innodb.result
index e3ff0f51..0101b370 100644
--- a/mysql-test/suite/perfschema/r/start_server_innodb.result
+++ b/mysql-test/suite/perfschema/r/start_server_innodb.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_low_index.result b/mysql-test/suite/perfschema/r/start_server_low_index.result
index ffdf9d65..a8706c47 100644
--- a/mysql-test/suite/perfschema/r/start_server_low_index.result
+++ b/mysql-test/suite/perfschema/r/start_server_low_index.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_low_table_lock.result b/mysql-test/suite/perfschema/r/start_server_low_table_lock.result
index dbb404f6..37db1bb6 100644
--- a/mysql-test/suite/perfschema/r/start_server_low_table_lock.result
+++ b/mysql-test/suite/perfschema/r/start_server_low_table_lock.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 1
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_account.result b/mysql-test/suite/perfschema/r/start_server_no_account.result
index f92b0e6b..a05cb9c5 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_account.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_account.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_cond_class.result b/mysql-test/suite/perfschema/r/start_server_no_cond_class.result
index fefad55c..d2e2bc9d 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_cond_class.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_cond_class.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 0
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_cond_inst.result b/mysql-test/suite/perfschema/r/start_server_no_cond_inst.result
index 0c2f65f6..d2a84d67 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_cond_inst.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_cond_inst.result
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_file_class.result b/mysql-test/suite/perfschema/r/start_server_no_file_class.result
index c3f06b53..bf0e7bfc 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_file_class.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_file_class.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 0
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_file_inst.result b/mysql-test/suite/perfschema/r/start_server_no_file_inst.result
index fd39807d..b0c690ca 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_file_inst.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_file_inst.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_host.result b/mysql-test/suite/perfschema/r/start_server_no_host.result
index 43111c5e..10c882cc 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_host.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_host.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 0
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_index.result b/mysql-test/suite/perfschema/r/start_server_no_index.result
index 15d1184b..4ac8fbaf 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_index.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_index.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_mdl.result b/mysql-test/suite/perfschema/r/start_server_no_mdl.result
index b8de9045..25f9ea1d 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_mdl.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_mdl.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_memory_class.result b/mysql-test/suite/perfschema/r/start_server_no_memory_class.result
index 60066264..7283733d 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_memory_class.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_memory_class.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_mutex_class.result b/mysql-test/suite/perfschema/r/start_server_no_mutex_class.result
index 3353b46b..2904bc21 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_mutex_class.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_mutex_class.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result b/mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result
index d41da361..17acca63 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_prepared_stmts_instances.result b/mysql-test/suite/perfschema/r/start_server_no_prepared_stmts_instances.result
index 4919de6b..e559d72e 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_prepared_stmts_instances.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_prepared_stmts_instances.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result b/mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result
index 02a119bd..3c1da2a1 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result b/mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result
index ead01ce2..6da9ed12 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_setup_actors.result b/mysql-test/suite/perfschema/r/start_server_no_setup_actors.result
index a99f1c0f..20385607 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_setup_actors.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_setup_actors.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 0
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_setup_objects.result b/mysql-test/suite/perfschema/r/start_server_no_setup_objects.result
index 7c148889..ad9e2ebe 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_setup_objects.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_setup_objects.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 0
diff --git a/mysql-test/suite/perfschema/r/start_server_no_socket_class.result b/mysql-test/suite/perfschema/r/start_server_no_socket_class.result
index dec0680c..e7b1235e 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_socket_class.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_socket_class.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_socket_inst.result b/mysql-test/suite/perfschema/r/start_server_no_socket_inst.result
index 20adf1a9..0ca5fe86 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_socket_inst.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_socket_inst.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_stage_class.result b/mysql-test/suite/perfschema/r/start_server_no_stage_class.result
index 044f9475..75c9fb95 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_stage_class.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_stage_class.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_stages_history.result b/mysql-test/suite/perfschema/r/start_server_no_stages_history.result
index 350f2c66..160188e7 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_stages_history.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_stages_history.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_stages_history_long.result b/mysql-test/suite/perfschema/r/start_server_no_stages_history_long.result
index d2d7063c..07b31f49 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_stages_history_long.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_stages_history_long.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_statement_class.result b/mysql-test/suite/perfschema/r/start_server_no_statement_class.result
index ca7c49cd..61609361 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_statement_class.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_statement_class.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_statements_history.result b/mysql-test/suite/perfschema/r/start_server_no_statements_history.result
index 8bcb3c56..1eb8e625 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_statements_history.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_statements_history.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_statements_history_long.result b/mysql-test/suite/perfschema/r/start_server_no_statements_history_long.result
index 2a2bf5d3..94996587 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_statements_history_long.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_statements_history_long.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_table_hdl.result b/mysql-test/suite/perfschema/r/start_server_no_table_hdl.result
index ec6e40ac..17d0b2c0 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_table_hdl.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_table_hdl.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 0
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_table_inst.result b/mysql-test/suite/perfschema/r/start_server_no_table_inst.result
index b3f1e4cb..c72093c1 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_table_inst.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_table_inst.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 0
performance_schema_max_table_lock_stat 0
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_table_lock.result b/mysql-test/suite/perfschema/r/start_server_no_table_lock.result
index baf9f761..b093b796 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_table_lock.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_table_lock.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 0
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_thread_class.result b/mysql-test/suite/perfschema/r/start_server_no_thread_class.result
index cd204f3d..b13140ac 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_thread_class.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_thread_class.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 0
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_thread_inst.result b/mysql-test/suite/perfschema/r/start_server_no_thread_inst.result
index d083484c..a4d17b27 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_thread_inst.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_thread_inst.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
diff --git a/mysql-test/suite/perfschema/r/start_server_no_transactions_history.result b/mysql-test/suite/perfschema/r/start_server_no_transactions_history.result
index f5a12e54..ffe68605 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_transactions_history.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_transactions_history.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_transactions_history_long.result b/mysql-test/suite/perfschema/r/start_server_no_transactions_history_long.result
index 76ae9d5f..78570f98 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_transactions_history_long.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_transactions_history_long.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_user.result b/mysql-test/suite/perfschema/r/start_server_no_user.result
index 4bd472a2..7971e8dd 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_user.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_user.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_waits_history.result b/mysql-test/suite/perfschema/r/start_server_no_waits_history.result
index f59b156c..0fa5c751 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_waits_history.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_waits_history.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 0
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_no_waits_history_long.result b/mysql-test/suite/perfschema/r/start_server_no_waits_history_long.result
index cc70572c..cc90ffb4 100644
--- a/mysql-test/suite/perfschema/r/start_server_no_waits_history_long.result
+++ b/mysql-test/suite/perfschema/r/start_server_no_waits_history_long.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 0
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_off.result b/mysql-test/suite/perfschema/r/start_server_off.result
index a53d5919..b409d7ff 100644
--- a/mysql-test/suite/perfschema/r/start_server_off.result
+++ b/mysql-test/suite/perfschema/r/start_server_off.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_on.result b/mysql-test/suite/perfschema/r/start_server_on.result
index e3ff0f51..0101b370 100644
--- a/mysql-test/suite/perfschema/r/start_server_on.result
+++ b/mysql-test/suite/perfschema/r/start_server_on.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/start_server_variables.result b/mysql-test/suite/perfschema/r/start_server_variables.result
index 7d1d1e05..2adfc99b 100644
--- a/mysql-test/suite/perfschema/r/start_server_variables.result
+++ b/mysql-test/suite/perfschema/r/start_server_variables.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
@@ -165,7 +165,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -188,7 +188,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/statement_program_lost_inst.result b/mysql-test/suite/perfschema/r/statement_program_lost_inst.result
index 05ec7b0b..44ab0998 100644
--- a/mysql-test/suite/perfschema/r/statement_program_lost_inst.result
+++ b/mysql-test/suite/perfschema/r/statement_program_lost_inst.result
@@ -117,7 +117,7 @@ performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100
performance_schema_max_cond_classes 90
-performance_schema_max_cond_instances 1000
+performance_schema_max_cond_instances 1500
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 80
performance_schema_max_file_handles 32768
@@ -141,7 +141,7 @@ performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500
performance_schema_max_table_lock_stat 500
performance_schema_max_thread_classes 50
-performance_schema_max_thread_instances 200
+performance_schema_max_thread_instances 400
performance_schema_session_connect_attrs_size 2048
performance_schema_setup_actors_size 100
performance_schema_setup_objects_size 100
diff --git a/mysql-test/suite/perfschema/r/statement_program_nesting_event_check.result b/mysql-test/suite/perfschema/r/statement_program_nesting_event_check.result
index 5e376a12..1a973c94 100644
--- a/mysql-test/suite/perfschema/r/statement_program_nesting_event_check.result
+++ b/mysql-test/suite/perfschema/r/statement_program_nesting_event_check.result
@@ -145,7 +145,7 @@ Bollywood
# Event
SET GLOBAL event_scheduler=ON;
CREATE TABLE table_t(a INT);
-CREATE EVENT e1 ON SCHEDULE EVERY 2 SECOND DO
+CREATE EVENT e1 ON SCHEDULE EVERY 2 SECOND ON COMPLETION NOT PRESERVE DO
BEGIN
INSERT INTO table_t VALUES(1);
END|
@@ -165,7 +165,7 @@ statement/sql/call_procedure CALL SampleProc1(30,40,50) NULL NULL 0
statement/sql/call_procedure CALL SampleProc2("Jwalamukhi",34) NULL NULL 0
statement/sql/call_procedure CALL SampleProc3() NULL NULL 0
statement/sql/call_procedure CALL SampleProc4() NULL NULL 0
-statement/sql/create_event CREATE EVENT e1 ON SCHEDULE EVERY 2 SECOND DO
+statement/sql/create_event CREATE EVENT e1 ON SCHEDULE EVERY 2 SECOND ON COMPLETION NOT PRESERVE DO
BEGIN
INSERT INTO table_t VALUES(1);
END NULL NULL 0
diff --git a/mysql-test/suite/perfschema/r/statement_program_non_nested.result b/mysql-test/suite/perfschema/r/statement_program_non_nested.result
index af9807cb..1c75dac1 100644
--- a/mysql-test/suite/perfschema/r/statement_program_non_nested.result
+++ b/mysql-test/suite/perfschema/r/statement_program_non_nested.result
@@ -145,7 +145,7 @@ Bollywood
# Event
SET GLOBAL event_scheduler=ON;
CREATE TABLE table_t(a INT);
-CREATE EVENT e1 ON SCHEDULE EVERY 2 SECOND DO
+CREATE EVENT e1 ON SCHEDULE EVERY 2 SECOND ON COMPLETION NOT PRESERVE DO
BEGIN
INSERT INTO table_t VALUES(1);
END|
@@ -182,7 +182,7 @@ statement/sql/call_procedure CALL SampleProc1(30,40,50) stored_programs NULL NUL
statement/sql/call_procedure CALL SampleProc2("Jwalamukhi",34) stored_programs NULL NULL NULL NULL 0
statement/sql/call_procedure CALL SampleProc3() stored_programs NULL NULL NULL NULL 0
statement/sql/call_procedure CALL SampleProc4() stored_programs NULL NULL NULL NULL 0
-statement/sql/create_event CREATE EVENT e1 ON SCHEDULE EVERY 2 SECOND DO
+statement/sql/create_event CREATE EVENT e1 ON SCHEDULE EVERY 2 SECOND ON COMPLETION NOT PRESERVE DO
BEGIN
INSERT INTO table_t VALUES(1);
END stored_programs NULL NULL NULL NULL 0
@@ -553,7 +553,7 @@ Bollywood
# Event
SET GLOBAL event_scheduler=ON;
CREATE TABLE table_t(a INT);
-CREATE EVENT e1 ON SCHEDULE EVERY 2 SECOND DO
+CREATE EVENT e1 ON SCHEDULE EVERY 2 SECOND ON COMPLETION NOT PRESERVE DO
BEGIN
INSERT INTO table_t VALUES(1);
END|
diff --git a/mysql-test/suite/perfschema/r/threads_history.result b/mysql-test/suite/perfschema/r/threads_history.result
index aaf2cd09..d72ace62 100644
--- a/mysql-test/suite/perfschema/r/threads_history.result
+++ b/mysql-test/suite/perfschema/r/threads_history.result
@@ -24,27 +24,22 @@ events_waits_history_long YES
global_instrumentation YES
thread_instrumentation YES
statements_digest YES
-# Switch to (con1, localhost, user1, , )
connect con1, localhost, user1, , ;
update performance_schema.threads
set INSTRUMENTED='YES', HISTORY='YES'
where PROCESSLIST_ID = connection_id();
-# Switch to (con2, localhost, user2, , )
connect con2, localhost, user2, , ;
update performance_schema.threads
set INSTRUMENTED='YES', HISTORY='NO'
where PROCESSLIST_ID = connection_id();
-# Switch to (con3, localhost, user3, , )
connect con3, localhost, user3, , ;
update performance_schema.threads
set INSTRUMENTED='NO', HISTORY='YES'
where PROCESSLIST_ID = connection_id();
-# Switch to (con4, localhost, user4, , )
connect con4, localhost, user4, , ;
update performance_schema.threads
set INSTRUMENTED='NO', HISTORY='NO'
where PROCESSLIST_ID = connection_id();
-# Switch to connection default
connection default;
truncate table performance_schema.events_transactions_current;
truncate table performance_schema.events_transactions_history;
@@ -58,7 +53,6 @@ truncate table performance_schema.events_stages_history_long;
truncate table performance_schema.events_waits_current;
truncate table performance_schema.events_waits_history;
truncate table performance_schema.events_waits_history_long;
-# Switch to connection con1
connection con1;
XA START 'XA_CON1', 'XA_BQUAL', 12;
select "Hi from con1";
@@ -67,7 +61,6 @@ Hi from con1
XA END 'XA_CON1', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON1', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON1', 'XA_BQUAL', 12;
-# Switch to connection con2
connection con2;
XA START 'XA_CON2', 'XA_BQUAL', 12;
select "Hi from con2";
@@ -76,7 +69,6 @@ Hi from con2
XA END 'XA_CON2', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON2', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON2', 'XA_BQUAL', 12;
-# Switch to connection con3
connection con3;
XA START 'XA_CON3', 'XA_BQUAL', 12;
select "Hi from con3";
@@ -85,7 +77,6 @@ Hi from con3
XA END 'XA_CON3', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON3', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON3', 'XA_BQUAL', 12;
-# Switch to connection con4
connection con4;
XA START 'XA_CON4', 'XA_BQUAL', 12;
select "Hi from con4";
@@ -95,88 +86,142 @@ XA END 'XA_CON4', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON4', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON4', 'XA_BQUAL', 12;
connection default;
-"=========================== Transactions user 1"
+########################### Transactions user 1 - 1
+select /*1-1*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_current
+where THREAD_ID = $con1_thread_id;
XID_FORMAT_ID XID_GTRID XID_BQUAL
12 XA_CON1 XA_BQUAL
+select /*1-1*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_history
+where THREAD_ID = $con1_thread_id;
XID_FORMAT_ID XID_GTRID XID_BQUAL
12 XA_CON1 XA_BQUAL
+select /*1-1*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_history_long
+where THREAD_ID = $con1_thread_id;
XID_FORMAT_ID XID_GTRID XID_BQUAL
12 XA_CON1 XA_BQUAL
-"=========================== Transactions user 2"
+########################### Transactions user 2 - 1
+select /*2-1*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_current
+where THREAD_ID = $con2_thread_id;
XID_FORMAT_ID XID_GTRID XID_BQUAL
12 XA_CON2 XA_BQUAL
+select /*2-1*/ count(*) from performance_schema.events_transactions_history
+where THREAD_ID = $con2_thread_id;
count(*)
0
+select /*2-1*/ count(*) from performance_schema.events_transactions_history_long
+where THREAD_ID = $con2_thread_id;
count(*)
0
-"=========================== Transactions user 3"
+########################### Transactions user 3 - 1
+select /*3-1*/ count(*) from performance_schema.events_transactions_current
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-1*/ count(*) from performance_schema.events_transactions_history
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-1*/ count(*) from performance_schema.events_transactions_history_long
+where THREAD_ID = $con3_thread_id;
count(*)
0
-"=========================== Transactions user 4"
+########################### Transactions user 4 - 1
+select /*4-1*/ count(*) from performance_schema.events_transactions_current
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-1*/ count(*) from performance_schema.events_transactions_history
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-1*/ count(*) from performance_schema.events_transactions_history_long
+where THREAD_ID = $con4_thread_id;
count(*)
0
-"=========================== Statements user 1"
+########################### Statements user 1 - 1
+select /*1-1*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_current
+where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME SQL_TEXT
statement/sql/xa_commit XA COMMIT 'XA_CON1', 'XA_BQUAL', 12
+select /*1-1*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_history
+where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME SQL_TEXT
statement/sql/xa_start XA START 'XA_CON1', 'XA_BQUAL', 12
statement/sql/select select "Hi from con1"
statement/sql/xa_end XA END 'XA_CON1', 'XA_BQUAL', 12
statement/sql/xa_prepare XA PREPARE 'XA_CON1', 'XA_BQUAL', 12
statement/sql/xa_commit XA COMMIT 'XA_CON1', 'XA_BQUAL', 12
+select /*1-1*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_history_long
+where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME SQL_TEXT
statement/sql/xa_start XA START 'XA_CON1', 'XA_BQUAL', 12
statement/sql/select select "Hi from con1"
statement/sql/xa_end XA END 'XA_CON1', 'XA_BQUAL', 12
statement/sql/xa_prepare XA PREPARE 'XA_CON1', 'XA_BQUAL', 12
statement/sql/xa_commit XA COMMIT 'XA_CON1', 'XA_BQUAL', 12
-"=========================== Statements user 2"
+########################### Statements user 2 - 1
+select /*2-1*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_current
+where THREAD_ID = $con2_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME SQL_TEXT
statement/sql/xa_commit XA COMMIT 'XA_CON2', 'XA_BQUAL', 12
+select /*2-1*/ count(*) from performance_schema.events_statements_history
+where THREAD_ID = $con2_thread_id;
count(*)
0
+select /*2-1*/ count(*) from performance_schema.events_statements_history_long
+where THREAD_ID = $con2_thread_id;
count(*)
0
-"=========================== Statements user 3"
+########################### Statements user 3 - 1
+select /*3-1*/ count(*) from performance_schema.events_statements_current
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-1*/ count(*) from performance_schema.events_statements_history
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-1*/ count(*) from performance_schema.events_statements_history_long
+where THREAD_ID = $con3_thread_id;
count(*)
0
-"=========================== Statements user 4"
+########################### Statements user 4 - 1
+select /*4-1*/ count(*) from performance_schema.events_statements_current
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-1*/ count(*) from performance_schema.events_statements_history
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-1*/ count(*) from performance_schema.events_statements_history_long
+where THREAD_ID = $con4_thread_id;
count(*)
0
-"=========================== Stages user 1"
+########################### Stages user 1 - 1
+select /*1-1*/ EVENT_NAME from performance_schema.events_stages_current
+where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME
+select /*1-1*/ EVENT_NAME from performance_schema.events_stages_history
+where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME
stage/sql/Starting cleanup
stage/sql/Freeing items
stage/sql/Reset for next command
stage/sql/starting
stage/sql/Query end
-stage/sql/Commit
stage/sql/closing tables
+stage/sql/Query end
stage/sql/Starting cleanup
stage/sql/Freeing items
stage/sql/Reset for next command
+select /*1-1*/ EVENT_NAME from performance_schema.events_stages_history_long
+where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME
stage/sql/starting
stage/sql/Query end
-stage/sql/Commit
stage/sql/closing tables
+stage/sql/Query end
stage/sql/Starting cleanup
stage/sql/Freeing items
stage/sql/Reset for next command
@@ -189,81 +234,122 @@ stage/sql/Optimizing
stage/sql/Executing
stage/sql/End of update loop
stage/sql/Query end
-stage/sql/Commit
stage/sql/closing tables
+stage/sql/Query end
stage/sql/Starting cleanup
stage/sql/Freeing items
stage/sql/Reset for next command
stage/sql/starting
stage/sql/Query end
-stage/sql/Commit
stage/sql/closing tables
+stage/sql/Query end
stage/sql/Starting cleanup
stage/sql/Freeing items
stage/sql/Reset for next command
stage/sql/starting
stage/sql/Query end
-stage/sql/Commit
stage/sql/closing tables
+stage/sql/Query end
stage/sql/Starting cleanup
stage/sql/Freeing items
stage/sql/Reset for next command
stage/sql/starting
stage/sql/Query end
-stage/sql/Commit
stage/sql/closing tables
+stage/sql/Query end
stage/sql/Starting cleanup
stage/sql/Freeing items
stage/sql/Reset for next command
-"=========================== Stages user 2"
+########################### Stages user 2 - 1
+select /*2-1*/ EVENT_NAME from performance_schema.events_stages_current
+where THREAD_ID = $con2_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME
+select /*2-1*/ count(*) from performance_schema.events_stages_history
+where THREAD_ID = $con2_thread_id;
count(*)
0
+select /*2-1*/ count(*) from performance_schema.events_stages_history_long
+where THREAD_ID = $con2_thread_id;
count(*)
0
-"=========================== Stages user 3"
+########################### Stages user 3 - 1
+select /*3-1*/ count(*) from performance_schema.events_stages_current
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-1*/ count(*) from performance_schema.events_stages_history
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-1*/ count(*) from performance_schema.events_stages_history_long
+where THREAD_ID = $con3_thread_id;
count(*)
0
-"=========================== Stages user 4"
+########################### Stages user 4 - 1
+select /*4-1*/ count(*) from performance_schema.events_stages_current
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-1*/ count(*) from performance_schema.events_stages_history
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-1*/ count(*) from performance_schema.events_stages_history_long
+where THREAD_ID = $con4_thread_id;
count(*)
0
-"=========================== Waits user 1"
+########################### Waits user 1 - 1
+select /*1-1*/ EVENT_NAME from performance_schema.events_waits_current
+where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME
idle
+select /*1-1*/ (count(*) > 5) as has_waits from performance_schema.events_waits_history
+where THREAD_ID = $con1_thread_id;
has_waits
1
+select /*1-1*/ (count(*) > 15) as has_waits from performance_schema.events_waits_history_long
+where THREAD_ID = $con1_thread_id;
has_waits
1
-"=========================== Waits user 2"
+########################### Waits user 2 - 1
+select /*2-1*/ EVENT_NAME from performance_schema.events_waits_current
+where THREAD_ID = $con2_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME
idle
+select /*2-1*/ count(*) from performance_schema.events_waits_history
+where THREAD_ID = $con2_thread_id;
count(*)
0
+select /*2-1*/ count(*) from performance_schema.events_waits_history_long
+where THREAD_ID = $con2_thread_id;
count(*)
0
-"=========================== Waits user 3"
+########################### Waits user 3 - 1
+select /*3-1*/ count(*) from performance_schema.events_waits_current
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-1*/ count(*) from performance_schema.events_waits_history
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-1*/ count(*) from performance_schema.events_waits_history_long
+where THREAD_ID = $con3_thread_id;
count(*)
0
-"=========================== Waits user 4"
+########################### Waits user 4 - 1
+select /*4-1*/ count(*) from performance_schema.events_waits_current
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-1*/ count(*) from performance_schema.events_waits_history
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-1*/ count(*) from performance_schema.events_waits_history_long
+where THREAD_ID = $con4_thread_id;
count(*)
0
-# Switch to connection default, disable consumers
connection default;
update performance_schema.setup_consumers
set enabled='NO' where name like "%history%";
@@ -296,7 +382,6 @@ truncate table performance_schema.events_stages_history_long;
truncate table performance_schema.events_waits_current;
truncate table performance_schema.events_waits_history;
truncate table performance_schema.events_waits_history_long;
-# Switch to connection con1
connection con1;
XA START 'XA_CON1', 'XA_BQUAL', 12;
select "Hi from con1";
@@ -305,7 +390,6 @@ Hi from con1
XA END 'XA_CON1', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON1', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON1', 'XA_BQUAL', 12;
-# Switch to connection con2
connection con2;
XA START 'XA_CON2', 'XA_BQUAL', 12;
select "Hi from con2";
@@ -314,7 +398,6 @@ Hi from con2
XA END 'XA_CON2', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON2', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON2', 'XA_BQUAL', 12;
-# Switch to connection con3
connection con3;
XA START 'XA_CON3', 'XA_BQUAL', 12;
select "Hi from con3";
@@ -323,7 +406,6 @@ Hi from con3
XA END 'XA_CON3', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON3', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON3', 'XA_BQUAL', 12;
-# Switch to connection con4
connection con4;
XA START 'XA_CON4', 'XA_BQUAL', 12;
select "Hi from con4";
@@ -333,117 +415,212 @@ XA END 'XA_CON4', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON4', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON4', 'XA_BQUAL', 12;
connection default;
-"=========================== Transactions user 1"
+########################### Transactions user 1 - 2
+select /*1-2*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_current
+where THREAD_ID = $con1_thread_id;
XID_FORMAT_ID XID_GTRID XID_BQUAL
12 XA_CON1 XA_BQUAL
+select /*1-2*/ count(*) from performance_schema.events_transactions_history
+where THREAD_ID = $con1_thread_id;
count(*)
0
+select /*1-2*/ count(*) from performance_schema.events_transactions_history_long
+where THREAD_ID = $con1_thread_id;
count(*)
0
-"=========================== Transactions user 2"
+########################### Transactions user 2 - 2
+select /*2-2*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_current
+where THREAD_ID = $con2_thread_id;
XID_FORMAT_ID XID_GTRID XID_BQUAL
12 XA_CON2 XA_BQUAL
+select /*2-2*/ count(*) from performance_schema.events_transactions_history
+where THREAD_ID = $con2_thread_id;
count(*)
0
+select /*2-2*/ count(*) from performance_schema.events_transactions_history_long
+where THREAD_ID = $con2_thread_id;
count(*)
0
-"=========================== Transactions user 3"
+########################### Transactions user 3 - 2
+select /*3-2*/ count(*) from performance_schema.events_transactions_current
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-2*/ count(*) from performance_schema.events_transactions_history
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-2*/ count(*) from performance_schema.events_transactions_history_long
+where THREAD_ID = $con3_thread_id;
count(*)
0
-"=========================== Transactions user 4"
+########################### Transactions user 4 - 2
+select /*4-2*/ count(*) from performance_schema.events_transactions_current
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-2*/ count(*) from performance_schema.events_transactions_history
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-2*/ count(*) from performance_schema.events_transactions_history_long
+where THREAD_ID = $con4_thread_id;
count(*)
0
-"=========================== Statements user 1"
+########################### Statements user 1 - 2
+select /*1-2*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_current
+where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME SQL_TEXT
statement/sql/xa_commit XA COMMIT 'XA_CON1', 'XA_BQUAL', 12
+select /*1-2*/ count(*) from performance_schema.events_statements_history
+where THREAD_ID = $con1_thread_id;
count(*)
0
+select /*1-2*/ count(*) from performance_schema.events_statements_history_long
+where THREAD_ID = $con1_thread_id;
count(*)
0
-"=========================== Statements user 2"
+########################### Statements user 2 - 2
+select /*2-2*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_current
+where THREAD_ID = $con2_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME SQL_TEXT
statement/sql/xa_commit XA COMMIT 'XA_CON2', 'XA_BQUAL', 12
+select /*2-2*/ count(*) from performance_schema.events_statements_history
+where THREAD_ID = $con2_thread_id;
count(*)
0
+select /*2-2*/ count(*) from performance_schema.events_statements_history_long
+where THREAD_ID = $con2_thread_id;
count(*)
0
-"=========================== Statements user 3"
+########################### Statements user 3 - 2
+select /*3-2*/ count(*) from performance_schema.events_statements_current
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-2*/ count(*) from performance_schema.events_statements_history
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-2*/ count(*) from performance_schema.events_statements_history_long
+where THREAD_ID = $con3_thread_id;
count(*)
0
-"=========================== Statements user 4"
+########################### Statements user 4 - 2
+select /*4-2*/ count(*) from performance_schema.events_statements_current
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-2*/ count(*) from performance_schema.events_statements_history
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-2*/ count(*) from performance_schema.events_statements_history_long
+where THREAD_ID = $con4_thread_id;
count(*)
0
-"=========================== Stages user 1"
+########################### Stages user 1 - 2
+select /*1-2*/ EVENT_NAME from performance_schema.events_stages_current
+where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME
+select /*1-2*/ count(*) from performance_schema.events_stages_history
+where THREAD_ID = $con1_thread_id;
count(*)
0
+select /*1-2*/ count(*) from performance_schema.events_stages_history_long
+where THREAD_ID = $con1_thread_id;
count(*)
0
-"=========================== Stages user 2"
+########################### Stages user 2 - 2
+select /*2-2*/ EVENT_NAME from performance_schema.events_stages_current
+where THREAD_ID = $con2_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME
+select /*2-2*/ count(*) from performance_schema.events_stages_history
+where THREAD_ID = $con2_thread_id;
count(*)
0
+select /*2-2*/ count(*) from performance_schema.events_stages_history_long
+where THREAD_ID = $con2_thread_id;
count(*)
0
-"=========================== Stages user 3"
+########################### Stages user 3 - 2
+select /*3-2*/ count(*) from performance_schema.events_stages_current
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-2*/ count(*) from performance_schema.events_stages_history
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-2*/ count(*) from performance_schema.events_stages_history_long
+where THREAD_ID = $con3_thread_id;
count(*)
0
-"=========================== Stages user 4"
+########################### Stages user 4 - 2
+select /*4-2*/ count(*) from performance_schema.events_stages_current
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-2*/ count(*) from performance_schema.events_stages_history
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-2*/ count(*) from performance_schema.events_stages_history_long
+where THREAD_ID = $con4_thread_id;
count(*)
0
-"=========================== Waits user 1"
+########################### Waits user 1 - 2
+select /*1-2*/ EVENT_NAME from performance_schema.events_waits_current
+where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME
idle
+select /*1-2*/ count(*) as has_waits from performance_schema.events_waits_history
+where THREAD_ID = $con1_thread_id;
has_waits
0
+select /*1-2*/ count(*) as has_waits from performance_schema.events_waits_history_long
+where THREAD_ID = $con1_thread_id;
has_waits
0
-"=========================== Waits user 2"
+########################### Waits user 2 - 2
+select /*2-2*/ EVENT_NAME from performance_schema.events_waits_current
+where THREAD_ID = $con2_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME
idle
+select /*2-2*/ count(*) from performance_schema.events_waits_history
+where THREAD_ID = $con2_thread_id;
count(*)
0
+select /*2-2*/ count(*) from performance_schema.events_waits_history_long
+where THREAD_ID = $con2_thread_id;
count(*)
0
-"=========================== Waits user 3"
+########################### Waits user 3 - 2
+select /*3-2*/ count(*) from performance_schema.events_waits_current
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-2*/ count(*) from performance_schema.events_waits_history
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-2*/ count(*) from performance_schema.events_waits_history_long
+where THREAD_ID = $con3_thread_id;
count(*)
0
-"=========================== Waits user 4"
+########################### Waits user 4 - 2
+select /*4-2*/ count(*) from performance_schema.events_waits_current
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-2*/ count(*) from performance_schema.events_waits_history
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-2*/ count(*) from performance_schema.events_waits_history_long
+where THREAD_ID = $con4_thread_id;
count(*)
0
-# Switch to connection default, enable consumers
connection default;
update performance_schema.setup_consumers
set enabled='YES' where name like "%history%";
@@ -476,7 +653,6 @@ truncate table performance_schema.events_stages_history_long;
truncate table performance_schema.events_waits_current;
truncate table performance_schema.events_waits_history;
truncate table performance_schema.events_waits_history_long;
-# Switch to connection con1
connection con1;
XA START 'XA_CON1', 'XA_BQUAL', 12;
select "Hi from con1";
@@ -485,7 +661,6 @@ Hi from con1
XA END 'XA_CON1', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON1', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON1', 'XA_BQUAL', 12;
-# Switch to connection con2
connection con2;
XA START 'XA_CON2', 'XA_BQUAL', 12;
select "Hi from con2";
@@ -494,7 +669,6 @@ Hi from con2
XA END 'XA_CON2', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON2', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON2', 'XA_BQUAL', 12;
-# Switch to connection con3
connection con3;
XA START 'XA_CON3', 'XA_BQUAL', 12;
select "Hi from con3";
@@ -503,7 +677,6 @@ Hi from con3
XA END 'XA_CON3', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON3', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON3', 'XA_BQUAL', 12;
-# Switch to connection con4
connection con4;
XA START 'XA_CON4', 'XA_BQUAL', 12;
select "Hi from con4";
@@ -513,88 +686,142 @@ XA END 'XA_CON4', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON4', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON4', 'XA_BQUAL', 12;
connection default;
-"=========================== Transactions user 1"
+########################### Transactions user 1 - 3
+select /*1-3*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_current
+where THREAD_ID = $con1_thread_id;
XID_FORMAT_ID XID_GTRID XID_BQUAL
12 XA_CON1 XA_BQUAL
+select /*1-3*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_history
+where THREAD_ID = $con1_thread_id;
XID_FORMAT_ID XID_GTRID XID_BQUAL
12 XA_CON1 XA_BQUAL
+select /*1-3*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_history_long
+where THREAD_ID = $con1_thread_id;
XID_FORMAT_ID XID_GTRID XID_BQUAL
12 XA_CON1 XA_BQUAL
-"=========================== Transactions user 2"
+########################### Transactions user 2 - 3
+select /*2-3*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_current
+where THREAD_ID = $con2_thread_id;
XID_FORMAT_ID XID_GTRID XID_BQUAL
12 XA_CON2 XA_BQUAL
+select /*2-3*/ count(*) from performance_schema.events_transactions_history
+where THREAD_ID = $con2_thread_id;
count(*)
0
+select /*2-3*/ count(*) from performance_schema.events_transactions_history_long
+where THREAD_ID = $con2_thread_id;
count(*)
0
-"=========================== Transactions user 3"
+########################### Transactions user 3 - 3
+select /*3-3*/ count(*) from performance_schema.events_transactions_current
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-3*/ count(*) from performance_schema.events_transactions_history
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-3*/ count(*) from performance_schema.events_transactions_history_long
+where THREAD_ID = $con3_thread_id;
count(*)
0
-"=========================== Transactions user 4"
+########################### Transactions user 4 - 3
+select /*4-3*/ count(*) from performance_schema.events_transactions_current
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-3*/ count(*) from performance_schema.events_transactions_history
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-3*/ count(*) from performance_schema.events_transactions_history_long
+where THREAD_ID = $con4_thread_id;
count(*)
0
-"=========================== Statements user 1"
+########################### Statements user 1 - 3
+select /*1-3*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_current
+where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME SQL_TEXT
statement/sql/xa_commit XA COMMIT 'XA_CON1', 'XA_BQUAL', 12
+select /*1-3*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_history
+where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME SQL_TEXT
statement/sql/xa_start XA START 'XA_CON1', 'XA_BQUAL', 12
statement/sql/select select "Hi from con1"
statement/sql/xa_end XA END 'XA_CON1', 'XA_BQUAL', 12
statement/sql/xa_prepare XA PREPARE 'XA_CON1', 'XA_BQUAL', 12
statement/sql/xa_commit XA COMMIT 'XA_CON1', 'XA_BQUAL', 12
+select /*1-3*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_history_long
+where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME SQL_TEXT
statement/sql/xa_start XA START 'XA_CON1', 'XA_BQUAL', 12
statement/sql/select select "Hi from con1"
statement/sql/xa_end XA END 'XA_CON1', 'XA_BQUAL', 12
statement/sql/xa_prepare XA PREPARE 'XA_CON1', 'XA_BQUAL', 12
statement/sql/xa_commit XA COMMIT 'XA_CON1', 'XA_BQUAL', 12
-"=========================== Statements user 2"
+########################### Statements user 2 - 3
+select /*2-3*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_current
+where THREAD_ID = $con2_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME SQL_TEXT
statement/sql/xa_commit XA COMMIT 'XA_CON2', 'XA_BQUAL', 12
+select /*2-3*/ count(*) from performance_schema.events_statements_history
+where THREAD_ID = $con2_thread_id;
count(*)
0
+select /*2-3*/ count(*) from performance_schema.events_statements_history_long
+where THREAD_ID = $con2_thread_id;
count(*)
0
-"=========================== Statements user 3"
+########################### Statements user 3 - 3
+select /*3-3*/ count(*) from performance_schema.events_statements_current
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-3*/ count(*) from performance_schema.events_statements_history
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-3*/ count(*) from performance_schema.events_statements_history_long
+where THREAD_ID = $con3_thread_id;
count(*)
0
-"=========================== Statements user 4"
+########################### Statements user 4 - 3
+select /*4-3*/ count(*) from performance_schema.events_statements_current
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-3*/ count(*) from performance_schema.events_statements_history
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-3*/ count(*) from performance_schema.events_statements_history_long
+where THREAD_ID = $con4_thread_id;
count(*)
0
-"=========================== Stages user 1"
+########################### Stages user 1 - 3
+select /*1-3*/ EVENT_NAME from performance_schema.events_stages_current
+where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME
+select /*1-3*/ EVENT_NAME from performance_schema.events_stages_history
+where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME
stage/sql/Starting cleanup
stage/sql/Freeing items
stage/sql/Reset for next command
stage/sql/starting
stage/sql/Query end
-stage/sql/Commit
stage/sql/closing tables
+stage/sql/Query end
stage/sql/Starting cleanup
stage/sql/Freeing items
stage/sql/Reset for next command
+select /*1-3*/ EVENT_NAME from performance_schema.events_stages_history_long
+where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME
stage/sql/starting
stage/sql/Query end
-stage/sql/Commit
stage/sql/closing tables
+stage/sql/Query end
stage/sql/Starting cleanup
stage/sql/Freeing items
stage/sql/Reset for next command
@@ -607,81 +834,122 @@ stage/sql/Optimizing
stage/sql/Executing
stage/sql/End of update loop
stage/sql/Query end
-stage/sql/Commit
stage/sql/closing tables
+stage/sql/Query end
stage/sql/Starting cleanup
stage/sql/Freeing items
stage/sql/Reset for next command
stage/sql/starting
stage/sql/Query end
-stage/sql/Commit
stage/sql/closing tables
+stage/sql/Query end
stage/sql/Starting cleanup
stage/sql/Freeing items
stage/sql/Reset for next command
stage/sql/starting
stage/sql/Query end
-stage/sql/Commit
stage/sql/closing tables
+stage/sql/Query end
stage/sql/Starting cleanup
stage/sql/Freeing items
stage/sql/Reset for next command
stage/sql/starting
stage/sql/Query end
-stage/sql/Commit
stage/sql/closing tables
+stage/sql/Query end
stage/sql/Starting cleanup
stage/sql/Freeing items
stage/sql/Reset for next command
-"=========================== Stages user 2"
+########################### Stages user 2 - 3
+select /*2-3*/ EVENT_NAME from performance_schema.events_stages_current
+where THREAD_ID = $con2_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME
+select /*2-3*/ count(*) from performance_schema.events_stages_history
+where THREAD_ID = $con2_thread_id;
count(*)
0
+select /*2-3*/ count(*) from performance_schema.events_stages_history_long
+where THREAD_ID = $con2_thread_id;
count(*)
0
-"=========================== Stages user 3"
+########################### Stages user 3 - 3
+select /*3-3*/ count(*) from performance_schema.events_stages_current
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-3*/ count(*) from performance_schema.events_stages_history
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-3*/ count(*) from performance_schema.events_stages_history_long
+where THREAD_ID = $con3_thread_id;
count(*)
0
-"=========================== Stages user 4"
+########################### Stages user 4 - 3
+select /*4-3*/ count(*) from performance_schema.events_stages_current
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-3*/ count(*) from performance_schema.events_stages_history
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-3*/ count(*) from performance_schema.events_stages_history_long
+where THREAD_ID = $con4_thread_id;
count(*)
0
-"=========================== Waits user 1"
+########################### Waits user 1 - 3
+select /*1-3*/ EVENT_NAME from performance_schema.events_waits_current
+where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME
idle
+select /*1-3*/ (count(*) > 5) as has_waits from performance_schema.events_waits_history
+where THREAD_ID = $con1_thread_id;
has_waits
1
+select /*1-3*/ (count(*) > 15) as has_waits from performance_schema.events_waits_history_long
+where THREAD_ID = $con1_thread_id;
has_waits
1
-"=========================== Waits user 2"
+########################### Waits user 2 - 3
+select /*2-3*/ EVENT_NAME from performance_schema.events_waits_current
+where THREAD_ID = $con2_thread_id order by THREAD_ID, EVENT_ID;
EVENT_NAME
idle
+select /*2-3*/ count(*) from performance_schema.events_waits_history
+where THREAD_ID = $con2_thread_id;
count(*)
0
+select /*2-3*/ count(*) from performance_schema.events_waits_history_long
+where THREAD_ID = $con2_thread_id;
count(*)
0
-"=========================== Waits user 3"
+########################### Waits user 3 - 3
+select /*3-3*/ count(*) from performance_schema.events_waits_current
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-3*/ count(*) from performance_schema.events_waits_history
+where THREAD_ID = $con3_thread_id;
count(*)
0
+select /*3-3*/ count(*) from performance_schema.events_waits_history_long
+where THREAD_ID = $con3_thread_id;
count(*)
0
-"=========================== Waits user 4"
+########################### Waits user 4 - 3
+select /*4-3*/ count(*) from performance_schema.events_waits_current
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-3*/ count(*) from performance_schema.events_waits_history
+where THREAD_ID = $con4_thread_id;
count(*)
0
+select /*4-3*/ count(*) from performance_schema.events_waits_history_long
+where THREAD_ID = $con4_thread_id;
count(*)
0
-# Switch to connection default
connection default;
revoke all privileges, grant option from user1@localhost;
revoke all privileges, grant option from user2@localhost;
diff --git a/mysql-test/suite/perfschema/t/bad_option.test b/mysql-test/suite/perfschema/t/bad_option.test
index 4feb0468..3eee669b 100644
--- a/mysql-test/suite/perfschema/t/bad_option.test
+++ b/mysql-test/suite/perfschema/t/bad_option.test
@@ -14,7 +14,7 @@ let $error_log= $MYSQLTEST_VARDIR/log/my_restart.err;
let SEARCH_FILE= $error_log;
# Stop the server
let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
---exec echo "wait" > $restart_file
+--write_line wait $restart_file
--shutdown_server
--source include/wait_until_disconnected.inc
--error 7
@@ -62,7 +62,7 @@ let SEARCH_PATTERN= Can.t change dir to .*bad_option_h_param;
--remove_file $error_log
# Write file to make mysql-test-run.pl start up the server again
---exec echo "restart" > $restart_file
+--write_line restart $restart_file
# Turn on reconnect
--enable_reconnect
diff --git a/mysql-test/suite/perfschema/t/misc.test b/mysql-test/suite/perfschema/t/misc.test
index 79c23c65..e8b9691f 100644
--- a/mysql-test/suite/perfschema/t/misc.test
+++ b/mysql-test/suite/perfschema/t/misc.test
@@ -175,6 +175,7 @@ DROP TABLE t_60905;
#
show global variables like "performance_schema_max_thread_instances";
+replace_result 512 256;
explain select * from performance_schema.threads;
#
diff --git a/mysql-test/suite/perfschema/t/processlist_57.test b/mysql-test/suite/perfschema/t/processlist_57.test
index 748d8b74..fe8898ed 100644
--- a/mysql-test/suite/perfschema/t/processlist_57.test
+++ b/mysql-test/suite/perfschema/t/processlist_57.test
@@ -23,7 +23,7 @@ DROP TABLE performance_schema.processlist;
SHOW CREATE TABLE performance_schema.processlist;
let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
---exec echo "wait" > $restart_file
+--write_line wait $restart_file
--echo ##
--echo ## Server shutdown
--echo ##
@@ -93,7 +93,7 @@ SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
--error ER_BAD_FIELD_ERROR
SHOW PROCESSLIST;
---exec echo "wait" > $restart_file
+--write_line wait $restart_file
--echo ##
--echo ## Server shutdown
--echo ##
@@ -166,7 +166,7 @@ SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
# Works and returns no data, innodb table is empty.
SHOW PROCESSLIST;
---exec echo "wait" > $restart_file
+--write_line wait $restart_file
--echo ##
--echo ## Server shutdown
--echo ##
@@ -231,7 +231,7 @@ SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
# Works and returns no data, innodb table is empty.
SHOW PROCESSLIST;
---exec echo "wait" > $restart_file
+--write_line wait $restart_file
--echo ##
--echo ## Server shutdown
--echo ##
@@ -306,7 +306,7 @@ SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
--replace_column 3 [HOST:PORT] 6 [TIME]
SHOW PROCESSLIST;
---exec echo "wait" > $restart_file
+--write_line wait $restart_file
--echo ##
--echo ## Server shutdown
--echo ##
diff --git a/mysql-test/suite/perfschema/t/setup_instruments_defaults.test b/mysql-test/suite/perfschema/t/setup_instruments_defaults.test
index ea59cd4f..bd33c559 100644
--- a/mysql-test/suite/perfschema/t/setup_instruments_defaults.test
+++ b/mysql-test/suite/perfschema/t/setup_instruments_defaults.test
@@ -69,7 +69,7 @@ SELECT * FROM performance_schema.setup_instruments
WHERE name like "%wait/io/table/sql/handler%";
# Write file to make mysql-test-run.pl wait for the server to stop
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
# Restart the server
--echo #
@@ -79,7 +79,7 @@ WHERE name like "%wait/io/table/sql/handler%";
--echo # Restart server with wait/io/table/sql/handler disabled
---exec echo "restart:--loose-performance-schema-instrument=%wait/io/table/sql/%=off" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line "restart:--loose-performance-schema-instrument=%wait/io/table/sql/%=off" $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
# Turn on reconnect
--echo # Enable reconnect
diff --git a/mysql-test/suite/perfschema/t/statement_program_lost_inst.test b/mysql-test/suite/perfschema/t/statement_program_lost_inst.test
index 023180b9..0742043b 100644
--- a/mysql-test/suite/perfschema/t/statement_program_lost_inst.test
+++ b/mysql-test/suite/perfschema/t/statement_program_lost_inst.test
@@ -19,10 +19,10 @@
--source include/have_perfschema.inc
let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
---exec echo "wait" > $restart_file
+--write_line wait $restart_file
--shutdown_server
--source include/wait_until_disconnected.inc
---exec echo "restart:--performance_schema_max_program_instances=7 --performance_schema_max_statement_stack=2 --thread_stack=655360">$restart_file
+--write_line "restart:--performance_schema_max_program_instances=7 --performance_schema_max_statement_stack=2 --thread_stack=655360" $restart_file
--enable_reconnect
--source include/wait_until_connected_again.inc
diff --git a/mysql-test/suite/perfschema/t/threads_history.test b/mysql-test/suite/perfschema/t/threads_history.test
index f42dd6d0..aee98333 100644
--- a/mysql-test/suite/perfschema/t/threads_history.test
+++ b/mysql-test/suite/perfschema/t/threads_history.test
@@ -23,7 +23,6 @@ flush privileges;
select * from performance_schema.setup_consumers;
---echo # Switch to (con1, localhost, user1, , )
connect (con1, localhost, user1, , );
update performance_schema.threads
@@ -33,7 +32,6 @@ update performance_schema.threads
let $con1_thread_id= `select THREAD_ID from performance_schema.threads
where PROCESSLIST_ID = connection_id()`;
---echo # Switch to (con2, localhost, user2, , )
connect (con2, localhost, user2, , );
update performance_schema.threads
@@ -43,7 +41,6 @@ update performance_schema.threads
let $con2_thread_id= `select THREAD_ID from performance_schema.threads
where PROCESSLIST_ID = connection_id()`;
---echo # Switch to (con3, localhost, user3, , )
connect (con3, localhost, user3, , );
update performance_schema.threads
@@ -53,7 +50,6 @@ update performance_schema.threads
let $con3_thread_id= `select THREAD_ID from performance_schema.threads
where PROCESSLIST_ID = connection_id()`;
---echo # Switch to (con4, localhost, user4, , )
connect (con4, localhost, user4, , );
update performance_schema.threads
@@ -63,7 +59,6 @@ update performance_schema.threads
let $con4_thread_id= `select THREAD_ID from performance_schema.threads
where PROCESSLIST_ID = connection_id()`;
---echo # Switch to connection default
--connection default
truncate table performance_schema.events_transactions_current;
@@ -79,7 +74,6 @@ truncate table performance_schema.events_waits_current;
truncate table performance_schema.events_waits_history;
truncate table performance_schema.events_waits_history_long;
---echo # Switch to connection con1
--connection con1
XA START 'XA_CON1', 'XA_BQUAL', 12;
@@ -88,7 +82,6 @@ XA END 'XA_CON1', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON1', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON1', 'XA_BQUAL', 12;
---echo # Switch to connection con2
--connection con2
XA START 'XA_CON2', 'XA_BQUAL', 12;
@@ -97,7 +90,6 @@ XA END 'XA_CON2', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON2', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON2', 'XA_BQUAL', 12;
---echo # Switch to connection con3
--connection con3
XA START 'XA_CON3', 'XA_BQUAL', 12;
@@ -106,7 +98,6 @@ XA END 'XA_CON3', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON3', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON3', 'XA_BQUAL', 12;
---echo # Switch to connection con4
--connection con4
XA START 'XA_CON4', 'XA_BQUAL', 12;
@@ -117,165 +108,150 @@ XA COMMIT 'XA_CON4', 'XA_BQUAL', 12;
--connection default
---disable_query_log
+echo ########################### Transactions user 1 - 1;
-echo "=========================== Transactions user 1";
-
-eval select XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_current
+evalp select /*1-1*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_current
where THREAD_ID = $con1_thread_id;
-eval select XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_history
+evalp select /*1-1*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_history
where THREAD_ID = $con1_thread_id;
-eval select XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_history_long
+evalp select /*1-1*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_history_long
where THREAD_ID = $con1_thread_id;
-echo "=========================== Transactions user 2";
+echo ########################### Transactions user 2 - 1;
-eval select XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_current
+evalp select /*2-1*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_current
where THREAD_ID = $con2_thread_id;
-eval select count(*) from performance_schema.events_transactions_history
+evalp select /*2-1*/ count(*) from performance_schema.events_transactions_history
where THREAD_ID = $con2_thread_id;
-eval select count(*) from performance_schema.events_transactions_history_long
+evalp select /*2-1*/ count(*) from performance_schema.events_transactions_history_long
where THREAD_ID = $con2_thread_id;
-echo "=========================== Transactions user 3";
+echo ########################### Transactions user 3 - 1;
-eval select count(*) from performance_schema.events_transactions_current
+evalp select /*3-1*/ count(*) from performance_schema.events_transactions_current
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_transactions_history
+evalp select /*3-1*/ count(*) from performance_schema.events_transactions_history
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_transactions_history_long
+evalp select /*3-1*/ count(*) from performance_schema.events_transactions_history_long
where THREAD_ID = $con3_thread_id;
-echo "=========================== Transactions user 4";
+echo ########################### Transactions user 4 - 1;
-eval select count(*) from performance_schema.events_transactions_current
+evalp select /*4-1*/ count(*) from performance_schema.events_transactions_current
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_transactions_history
+evalp select /*4-1*/ count(*) from performance_schema.events_transactions_history
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_transactions_history_long
+evalp select /*4-1*/ count(*) from performance_schema.events_transactions_history_long
where THREAD_ID = $con4_thread_id;
-echo "=========================== Statements user 1";
+echo ########################### Statements user 1 - 1;
-eval select EVENT_NAME, SQL_TEXT from performance_schema.events_statements_current
- where THREAD_ID = $con1_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select EVENT_NAME, SQL_TEXT from performance_schema.events_statements_history
- where THREAD_ID = $con1_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select EVENT_NAME, SQL_TEXT from performance_schema.events_statements_history_long
- where THREAD_ID = $con1_thread_id
- order by THREAD_ID, EVENT_ID;
+evalp select /*1-1*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_current
+ where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*1-1*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_history
+ where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*1-1*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_history_long
+ where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
-echo "=========================== Statements user 2";
+echo ########################### Statements user 2 - 1;
-eval select EVENT_NAME, SQL_TEXT from performance_schema.events_statements_current
- where THREAD_ID = $con2_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select count(*) from performance_schema.events_statements_history
+evalp select /*2-1*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_current
+ where THREAD_ID = $con2_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*2-1*/ count(*) from performance_schema.events_statements_history
where THREAD_ID = $con2_thread_id;
-eval select count(*) from performance_schema.events_statements_history_long
+evalp select /*2-1*/ count(*) from performance_schema.events_statements_history_long
where THREAD_ID = $con2_thread_id;
-echo "=========================== Statements user 3";
+echo ########################### Statements user 3 - 1;
-eval select count(*) from performance_schema.events_statements_current
+evalp select /*3-1*/ count(*) from performance_schema.events_statements_current
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_statements_history
+evalp select /*3-1*/ count(*) from performance_schema.events_statements_history
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_statements_history_long
+evalp select /*3-1*/ count(*) from performance_schema.events_statements_history_long
where THREAD_ID = $con3_thread_id;
-echo "=========================== Statements user 4";
+echo ########################### Statements user 4 - 1;
-eval select count(*) from performance_schema.events_statements_current
+evalp select /*4-1*/ count(*) from performance_schema.events_statements_current
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_statements_history
+evalp select /*4-1*/ count(*) from performance_schema.events_statements_history
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_statements_history_long
+evalp select /*4-1*/ count(*) from performance_schema.events_statements_history_long
where THREAD_ID = $con4_thread_id;
-echo "=========================== Stages user 1";
+echo ########################### Stages user 1 - 1;
-eval select EVENT_NAME from performance_schema.events_stages_current
- where THREAD_ID = $con1_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select EVENT_NAME from performance_schema.events_stages_history
- where THREAD_ID = $con1_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select EVENT_NAME from performance_schema.events_stages_history_long
- where THREAD_ID = $con1_thread_id
- order by THREAD_ID, EVENT_ID;
+evalp select /*1-1*/ EVENT_NAME from performance_schema.events_stages_current
+ where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*1-1*/ EVENT_NAME from performance_schema.events_stages_history
+ where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*1-1*/ EVENT_NAME from performance_schema.events_stages_history_long
+ where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
-echo "=========================== Stages user 2";
+echo ########################### Stages user 2 - 1;
-eval select EVENT_NAME from performance_schema.events_stages_current
- where THREAD_ID = $con2_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select count(*) from performance_schema.events_stages_history
+evalp select /*2-1*/ EVENT_NAME from performance_schema.events_stages_current
+ where THREAD_ID = $con2_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*2-1*/ count(*) from performance_schema.events_stages_history
where THREAD_ID = $con2_thread_id;
-eval select count(*) from performance_schema.events_stages_history_long
+evalp select /*2-1*/ count(*) from performance_schema.events_stages_history_long
where THREAD_ID = $con2_thread_id;
-echo "=========================== Stages user 3";
+echo ########################### Stages user 3 - 1;
-eval select count(*) from performance_schema.events_stages_current
+evalp select /*3-1*/ count(*) from performance_schema.events_stages_current
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_stages_history
+evalp select /*3-1*/ count(*) from performance_schema.events_stages_history
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_stages_history_long
+evalp select /*3-1*/ count(*) from performance_schema.events_stages_history_long
where THREAD_ID = $con3_thread_id;
-echo "=========================== Stages user 4";
+echo ########################### Stages user 4 - 1;
-eval select count(*) from performance_schema.events_stages_current
+evalp select /*4-1*/ count(*) from performance_schema.events_stages_current
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_stages_history
+evalp select /*4-1*/ count(*) from performance_schema.events_stages_history
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_stages_history_long
+evalp select /*4-1*/ count(*) from performance_schema.events_stages_history_long
where THREAD_ID = $con4_thread_id;
-echo "=========================== Waits user 1";
+echo ########################### Waits user 1 - 1;
-eval select EVENT_NAME from performance_schema.events_waits_current
- where THREAD_ID = $con1_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select (count(*) > 5) as has_waits from performance_schema.events_waits_history
+evalp select /*1-1*/ EVENT_NAME from performance_schema.events_waits_current
+ where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*1-1*/ (count(*) > 5) as has_waits from performance_schema.events_waits_history
where THREAD_ID = $con1_thread_id;
-eval select (count(*) > 15) as has_waits from performance_schema.events_waits_history_long
+evalp select /*1-1*/ (count(*) > 15) as has_waits from performance_schema.events_waits_history_long
where THREAD_ID = $con1_thread_id;
-echo "=========================== Waits user 2";
+echo ########################### Waits user 2 - 1;
-eval select EVENT_NAME from performance_schema.events_waits_current
- where THREAD_ID = $con2_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select count(*) from performance_schema.events_waits_history
+evalp select /*2-1*/ EVENT_NAME from performance_schema.events_waits_current
+ where THREAD_ID = $con2_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*2-1*/ count(*) from performance_schema.events_waits_history
where THREAD_ID = $con2_thread_id;
-eval select count(*) from performance_schema.events_waits_history_long
+evalp select /*2-1*/ count(*) from performance_schema.events_waits_history_long
where THREAD_ID = $con2_thread_id;
-echo "=========================== Waits user 3";
+echo ########################### Waits user 3 - 1;
-eval select count(*) from performance_schema.events_waits_current
+evalp select /*3-1*/ count(*) from performance_schema.events_waits_current
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_waits_history
+evalp select /*3-1*/ count(*) from performance_schema.events_waits_history
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_waits_history_long
+evalp select /*3-1*/ count(*) from performance_schema.events_waits_history_long
where THREAD_ID = $con3_thread_id;
-echo "=========================== Waits user 4";
+echo ########################### Waits user 4 - 1;
-eval select count(*) from performance_schema.events_waits_current
+evalp select /*4-1*/ count(*) from performance_schema.events_waits_current
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_waits_history
+evalp select /*4-1*/ count(*) from performance_schema.events_waits_history
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_waits_history_long
+evalp select /*4-1*/ count(*) from performance_schema.events_waits_history_long
where THREAD_ID = $con4_thread_id;
---enable_query_log
-
---echo # Switch to connection default, disable consumers
--connection default
update performance_schema.setup_consumers
@@ -296,7 +272,6 @@ truncate table performance_schema.events_waits_current;
truncate table performance_schema.events_waits_history;
truncate table performance_schema.events_waits_history_long;
---echo # Switch to connection con1
--connection con1
XA START 'XA_CON1', 'XA_BQUAL', 12;
@@ -305,7 +280,6 @@ XA END 'XA_CON1', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON1', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON1', 'XA_BQUAL', 12;
---echo # Switch to connection con2
--connection con2
XA START 'XA_CON2', 'XA_BQUAL', 12;
@@ -314,7 +288,6 @@ XA END 'XA_CON2', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON2', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON2', 'XA_BQUAL', 12;
---echo # Switch to connection con3
--connection con3
XA START 'XA_CON3', 'XA_BQUAL', 12;
@@ -323,7 +296,6 @@ XA END 'XA_CON3', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON3', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON3', 'XA_BQUAL', 12;
---echo # Switch to connection con4
--connection con4
XA START 'XA_CON4', 'XA_BQUAL', 12;
@@ -334,161 +306,150 @@ XA COMMIT 'XA_CON4', 'XA_BQUAL', 12;
--connection default
---disable_query_log
-
-echo "=========================== Transactions user 1";
+echo ########################### Transactions user 1 - 2;
-eval select XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_current
+evalp select /*1-2*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_current
where THREAD_ID = $con1_thread_id;
-eval select count(*) from performance_schema.events_transactions_history
+evalp select /*1-2*/ count(*) from performance_schema.events_transactions_history
where THREAD_ID = $con1_thread_id;
-eval select count(*) from performance_schema.events_transactions_history_long
+evalp select /*1-2*/ count(*) from performance_schema.events_transactions_history_long
where THREAD_ID = $con1_thread_id;
-echo "=========================== Transactions user 2";
+echo ########################### Transactions user 2 - 2;
-eval select XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_current
+evalp select /*2-2*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_current
where THREAD_ID = $con2_thread_id;
-eval select count(*) from performance_schema.events_transactions_history
+evalp select /*2-2*/ count(*) from performance_schema.events_transactions_history
where THREAD_ID = $con2_thread_id;
-eval select count(*) from performance_schema.events_transactions_history_long
+evalp select /*2-2*/ count(*) from performance_schema.events_transactions_history_long
where THREAD_ID = $con2_thread_id;
-echo "=========================== Transactions user 3";
+echo ########################### Transactions user 3 - 2;
-eval select count(*) from performance_schema.events_transactions_current
+evalp select /*3-2*/ count(*) from performance_schema.events_transactions_current
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_transactions_history
+evalp select /*3-2*/ count(*) from performance_schema.events_transactions_history
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_transactions_history_long
+evalp select /*3-2*/ count(*) from performance_schema.events_transactions_history_long
where THREAD_ID = $con3_thread_id;
-echo "=========================== Transactions user 4";
+echo ########################### Transactions user 4 - 2;
-eval select count(*) from performance_schema.events_transactions_current
+evalp select /*4-2*/ count(*) from performance_schema.events_transactions_current
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_transactions_history
+evalp select /*4-2*/ count(*) from performance_schema.events_transactions_history
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_transactions_history_long
+evalp select /*4-2*/ count(*) from performance_schema.events_transactions_history_long
where THREAD_ID = $con4_thread_id;
-echo "=========================== Statements user 1";
+echo ########################### Statements user 1 - 2;
-eval select EVENT_NAME, SQL_TEXT from performance_schema.events_statements_current
- where THREAD_ID = $con1_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select count(*) from performance_schema.events_statements_history
+evalp select /*1-2*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_current
+ where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*1-2*/ count(*) from performance_schema.events_statements_history
where THREAD_ID = $con1_thread_id;
-eval select count(*) from performance_schema.events_statements_history_long
+evalp select /*1-2*/ count(*) from performance_schema.events_statements_history_long
where THREAD_ID = $con1_thread_id;
-echo "=========================== Statements user 2";
+echo ########################### Statements user 2 - 2;
-eval select EVENT_NAME, SQL_TEXT from performance_schema.events_statements_current
- where THREAD_ID = $con2_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select count(*) from performance_schema.events_statements_history
+evalp select /*2-2*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_current
+ where THREAD_ID = $con2_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*2-2*/ count(*) from performance_schema.events_statements_history
where THREAD_ID = $con2_thread_id;
-eval select count(*) from performance_schema.events_statements_history_long
+evalp select /*2-2*/ count(*) from performance_schema.events_statements_history_long
where THREAD_ID = $con2_thread_id;
-echo "=========================== Statements user 3";
+echo ########################### Statements user 3 - 2;
-eval select count(*) from performance_schema.events_statements_current
+evalp select /*3-2*/ count(*) from performance_schema.events_statements_current
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_statements_history
+evalp select /*3-2*/ count(*) from performance_schema.events_statements_history
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_statements_history_long
+evalp select /*3-2*/ count(*) from performance_schema.events_statements_history_long
where THREAD_ID = $con3_thread_id;
-echo "=========================== Statements user 4";
+echo ########################### Statements user 4 - 2;
-eval select count(*) from performance_schema.events_statements_current
+evalp select /*4-2*/ count(*) from performance_schema.events_statements_current
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_statements_history
+evalp select /*4-2*/ count(*) from performance_schema.events_statements_history
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_statements_history_long
+evalp select /*4-2*/ count(*) from performance_schema.events_statements_history_long
where THREAD_ID = $con4_thread_id;
-echo "=========================== Stages user 1";
+echo ########################### Stages user 1 - 2;
-eval select EVENT_NAME from performance_schema.events_stages_current
- where THREAD_ID = $con1_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select count(*) from performance_schema.events_stages_history
+evalp select /*1-2*/ EVENT_NAME from performance_schema.events_stages_current
+ where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*1-2*/ count(*) from performance_schema.events_stages_history
where THREAD_ID = $con1_thread_id;
-eval select count(*) from performance_schema.events_stages_history_long
+evalp select /*1-2*/ count(*) from performance_schema.events_stages_history_long
where THREAD_ID = $con1_thread_id;
-echo "=========================== Stages user 2";
+echo ########################### Stages user 2 - 2;
-eval select EVENT_NAME from performance_schema.events_stages_current
- where THREAD_ID = $con2_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select count(*) from performance_schema.events_stages_history
+evalp select /*2-2*/ EVENT_NAME from performance_schema.events_stages_current
+ where THREAD_ID = $con2_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*2-2*/ count(*) from performance_schema.events_stages_history
where THREAD_ID = $con2_thread_id;
-eval select count(*) from performance_schema.events_stages_history_long
+evalp select /*2-2*/ count(*) from performance_schema.events_stages_history_long
where THREAD_ID = $con2_thread_id;
-echo "=========================== Stages user 3";
+echo ########################### Stages user 3 - 2;
-eval select count(*) from performance_schema.events_stages_current
+evalp select /*3-2*/ count(*) from performance_schema.events_stages_current
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_stages_history
+evalp select /*3-2*/ count(*) from performance_schema.events_stages_history
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_stages_history_long
+evalp select /*3-2*/ count(*) from performance_schema.events_stages_history_long
where THREAD_ID = $con3_thread_id;
-echo "=========================== Stages user 4";
+echo ########################### Stages user 4 - 2;
-eval select count(*) from performance_schema.events_stages_current
+evalp select /*4-2*/ count(*) from performance_schema.events_stages_current
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_stages_history
+evalp select /*4-2*/ count(*) from performance_schema.events_stages_history
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_stages_history_long
+evalp select /*4-2*/ count(*) from performance_schema.events_stages_history_long
where THREAD_ID = $con4_thread_id;
-echo "=========================== Waits user 1";
+echo ########################### Waits user 1 - 2;
-eval select EVENT_NAME from performance_schema.events_waits_current
- where THREAD_ID = $con1_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select count(*) as has_waits from performance_schema.events_waits_history
+evalp select /*1-2*/ EVENT_NAME from performance_schema.events_waits_current
+ where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*1-2*/ count(*) as has_waits from performance_schema.events_waits_history
where THREAD_ID = $con1_thread_id;
-eval select count(*) as has_waits from performance_schema.events_waits_history_long
+evalp select /*1-2*/ count(*) as has_waits from performance_schema.events_waits_history_long
where THREAD_ID = $con1_thread_id;
-echo "=========================== Waits user 2";
+echo ########################### Waits user 2 - 2;
-eval select EVENT_NAME from performance_schema.events_waits_current
- where THREAD_ID = $con2_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select count(*) from performance_schema.events_waits_history
+evalp select /*2-2*/ EVENT_NAME from performance_schema.events_waits_current
+ where THREAD_ID = $con2_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*2-2*/ count(*) from performance_schema.events_waits_history
where THREAD_ID = $con2_thread_id;
-eval select count(*) from performance_schema.events_waits_history_long
+evalp select /*2-2*/ count(*) from performance_schema.events_waits_history_long
where THREAD_ID = $con2_thread_id;
-echo "=========================== Waits user 3";
+echo ########################### Waits user 3 - 2;
-eval select count(*) from performance_schema.events_waits_current
+evalp select /*3-2*/ count(*) from performance_schema.events_waits_current
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_waits_history
+evalp select /*3-2*/ count(*) from performance_schema.events_waits_history
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_waits_history_long
+evalp select /*3-2*/ count(*) from performance_schema.events_waits_history_long
where THREAD_ID = $con3_thread_id;
-echo "=========================== Waits user 4";
+echo ########################### Waits user 4 - 2;
-eval select count(*) from performance_schema.events_waits_current
+evalp select /*4-2*/ count(*) from performance_schema.events_waits_current
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_waits_history
+evalp select /*4-2*/ count(*) from performance_schema.events_waits_history
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_waits_history_long
+evalp select /*4-2*/ count(*) from performance_schema.events_waits_history_long
where THREAD_ID = $con4_thread_id;
---enable_query_log
-
---echo # Switch to connection default, enable consumers
--connection default
update performance_schema.setup_consumers
@@ -509,7 +470,6 @@ truncate table performance_schema.events_waits_current;
truncate table performance_schema.events_waits_history;
truncate table performance_schema.events_waits_history_long;
---echo # Switch to connection con1
--connection con1
XA START 'XA_CON1', 'XA_BQUAL', 12;
@@ -518,7 +478,6 @@ XA END 'XA_CON1', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON1', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON1', 'XA_BQUAL', 12;
---echo # Switch to connection con2
--connection con2
XA START 'XA_CON2', 'XA_BQUAL', 12;
@@ -527,7 +486,6 @@ XA END 'XA_CON2', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON2', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON2', 'XA_BQUAL', 12;
---echo # Switch to connection con3
--connection con3
XA START 'XA_CON3', 'XA_BQUAL', 12;
@@ -536,7 +494,6 @@ XA END 'XA_CON3', 'XA_BQUAL', 12;
XA PREPARE 'XA_CON3', 'XA_BQUAL', 12;
XA COMMIT 'XA_CON3', 'XA_BQUAL', 12;
---echo # Switch to connection con4
--connection con4
XA START 'XA_CON4', 'XA_BQUAL', 12;
@@ -547,165 +504,150 @@ XA COMMIT 'XA_CON4', 'XA_BQUAL', 12;
--connection default
---disable_query_log
-
-echo "=========================== Transactions user 1";
+echo ########################### Transactions user 1 - 3;
-eval select XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_current
+evalp select /*1-3*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_current
where THREAD_ID = $con1_thread_id;
-eval select XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_history
+evalp select /*1-3*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_history
where THREAD_ID = $con1_thread_id;
-eval select XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_history_long
+evalp select /*1-3*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_history_long
where THREAD_ID = $con1_thread_id;
-echo "=========================== Transactions user 2";
+echo ########################### Transactions user 2 - 3;
-eval select XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_current
+evalp select /*2-3*/ XID_FORMAT_ID, XID_GTRID, XID_BQUAL from performance_schema.events_transactions_current
where THREAD_ID = $con2_thread_id;
-eval select count(*) from performance_schema.events_transactions_history
+evalp select /*2-3*/ count(*) from performance_schema.events_transactions_history
where THREAD_ID = $con2_thread_id;
-eval select count(*) from performance_schema.events_transactions_history_long
+evalp select /*2-3*/ count(*) from performance_schema.events_transactions_history_long
where THREAD_ID = $con2_thread_id;
-echo "=========================== Transactions user 3";
+echo ########################### Transactions user 3 - 3;
-eval select count(*) from performance_schema.events_transactions_current
+evalp select /*3-3*/ count(*) from performance_schema.events_transactions_current
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_transactions_history
+evalp select /*3-3*/ count(*) from performance_schema.events_transactions_history
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_transactions_history_long
+evalp select /*3-3*/ count(*) from performance_schema.events_transactions_history_long
where THREAD_ID = $con3_thread_id;
-echo "=========================== Transactions user 4";
+echo ########################### Transactions user 4 - 3;
-eval select count(*) from performance_schema.events_transactions_current
+evalp select /*4-3*/ count(*) from performance_schema.events_transactions_current
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_transactions_history
+evalp select /*4-3*/ count(*) from performance_schema.events_transactions_history
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_transactions_history_long
+evalp select /*4-3*/ count(*) from performance_schema.events_transactions_history_long
where THREAD_ID = $con4_thread_id;
-echo "=========================== Statements user 1";
+echo ########################### Statements user 1 - 3;
-eval select EVENT_NAME, SQL_TEXT from performance_schema.events_statements_current
- where THREAD_ID = $con1_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select EVENT_NAME, SQL_TEXT from performance_schema.events_statements_history
- where THREAD_ID = $con1_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select EVENT_NAME, SQL_TEXT from performance_schema.events_statements_history_long
- where THREAD_ID = $con1_thread_id
- order by THREAD_ID, EVENT_ID;
+evalp select /*1-3*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_current
+ where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*1-3*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_history
+ where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*1-3*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_history_long
+ where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
-echo "=========================== Statements user 2";
+echo ########################### Statements user 2 - 3;
-eval select EVENT_NAME, SQL_TEXT from performance_schema.events_statements_current
- where THREAD_ID = $con2_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select count(*) from performance_schema.events_statements_history
+evalp select /*2-3*/ EVENT_NAME, SQL_TEXT from performance_schema.events_statements_current
+ where THREAD_ID = $con2_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*2-3*/ count(*) from performance_schema.events_statements_history
where THREAD_ID = $con2_thread_id;
-eval select count(*) from performance_schema.events_statements_history_long
+evalp select /*2-3*/ count(*) from performance_schema.events_statements_history_long
where THREAD_ID = $con2_thread_id;
-echo "=========================== Statements user 3";
+echo ########################### Statements user 3 - 3;
-eval select count(*) from performance_schema.events_statements_current
+evalp select /*3-3*/ count(*) from performance_schema.events_statements_current
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_statements_history
+evalp select /*3-3*/ count(*) from performance_schema.events_statements_history
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_statements_history_long
+evalp select /*3-3*/ count(*) from performance_schema.events_statements_history_long
where THREAD_ID = $con3_thread_id;
-echo "=========================== Statements user 4";
+echo ########################### Statements user 4 - 3;
-eval select count(*) from performance_schema.events_statements_current
+evalp select /*4-3*/ count(*) from performance_schema.events_statements_current
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_statements_history
+evalp select /*4-3*/ count(*) from performance_schema.events_statements_history
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_statements_history_long
+evalp select /*4-3*/ count(*) from performance_schema.events_statements_history_long
where THREAD_ID = $con4_thread_id;
-echo "=========================== Stages user 1";
+echo ########################### Stages user 1 - 3;
-eval select EVENT_NAME from performance_schema.events_stages_current
- where THREAD_ID = $con1_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select EVENT_NAME from performance_schema.events_stages_history
- where THREAD_ID = $con1_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select EVENT_NAME from performance_schema.events_stages_history_long
- where THREAD_ID = $con1_thread_id
- order by THREAD_ID, EVENT_ID;
+evalp select /*1-3*/ EVENT_NAME from performance_schema.events_stages_current
+ where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*1-3*/ EVENT_NAME from performance_schema.events_stages_history
+ where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*1-3*/ EVENT_NAME from performance_schema.events_stages_history_long
+ where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
-echo "=========================== Stages user 2";
+echo ########################### Stages user 2 - 3;
-eval select EVENT_NAME from performance_schema.events_stages_current
- where THREAD_ID = $con2_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select count(*) from performance_schema.events_stages_history
+evalp select /*2-3*/ EVENT_NAME from performance_schema.events_stages_current
+ where THREAD_ID = $con2_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*2-3*/ count(*) from performance_schema.events_stages_history
where THREAD_ID = $con2_thread_id;
-eval select count(*) from performance_schema.events_stages_history_long
+evalp select /*2-3*/ count(*) from performance_schema.events_stages_history_long
where THREAD_ID = $con2_thread_id;
-echo "=========================== Stages user 3";
+echo ########################### Stages user 3 - 3;
-eval select count(*) from performance_schema.events_stages_current
+evalp select /*3-3*/ count(*) from performance_schema.events_stages_current
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_stages_history
+evalp select /*3-3*/ count(*) from performance_schema.events_stages_history
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_stages_history_long
+evalp select /*3-3*/ count(*) from performance_schema.events_stages_history_long
where THREAD_ID = $con3_thread_id;
-echo "=========================== Stages user 4";
+echo ########################### Stages user 4 - 3;
-eval select count(*) from performance_schema.events_stages_current
+evalp select /*4-3*/ count(*) from performance_schema.events_stages_current
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_stages_history
+evalp select /*4-3*/ count(*) from performance_schema.events_stages_history
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_stages_history_long
+evalp select /*4-3*/ count(*) from performance_schema.events_stages_history_long
where THREAD_ID = $con4_thread_id;
-echo "=========================== Waits user 1";
+echo ########################### Waits user 1 - 3;
-eval select EVENT_NAME from performance_schema.events_waits_current
- where THREAD_ID = $con1_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select (count(*) > 5) as has_waits from performance_schema.events_waits_history
+evalp select /*1-3*/ EVENT_NAME from performance_schema.events_waits_current
+ where THREAD_ID = $con1_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*1-3*/ (count(*) > 5) as has_waits from performance_schema.events_waits_history
where THREAD_ID = $con1_thread_id;
-eval select (count(*) > 15) as has_waits from performance_schema.events_waits_history_long
+evalp select /*1-3*/ (count(*) > 15) as has_waits from performance_schema.events_waits_history_long
where THREAD_ID = $con1_thread_id;
-echo "=========================== Waits user 2";
+echo ########################### Waits user 2 - 3;
-eval select EVENT_NAME from performance_schema.events_waits_current
- where THREAD_ID = $con2_thread_id
- order by THREAD_ID, EVENT_ID;
-eval select count(*) from performance_schema.events_waits_history
+evalp select /*2-3*/ EVENT_NAME from performance_schema.events_waits_current
+ where THREAD_ID = $con2_thread_id order by THREAD_ID, EVENT_ID;
+evalp select /*2-3*/ count(*) from performance_schema.events_waits_history
where THREAD_ID = $con2_thread_id;
-eval select count(*) from performance_schema.events_waits_history_long
+evalp select /*2-3*/ count(*) from performance_schema.events_waits_history_long
where THREAD_ID = $con2_thread_id;
-echo "=========================== Waits user 3";
+echo ########################### Waits user 3 - 3;
-eval select count(*) from performance_schema.events_waits_current
+evalp select /*3-3*/ count(*) from performance_schema.events_waits_current
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_waits_history
+evalp select /*3-3*/ count(*) from performance_schema.events_waits_history
where THREAD_ID = $con3_thread_id;
-eval select count(*) from performance_schema.events_waits_history_long
+evalp select /*3-3*/ count(*) from performance_schema.events_waits_history_long
where THREAD_ID = $con3_thread_id;
-echo "=========================== Waits user 4";
+echo ########################### Waits user 4 - 3;
-eval select count(*) from performance_schema.events_waits_current
+evalp select /*4-3*/ count(*) from performance_schema.events_waits_current
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_waits_history
+evalp select /*4-3*/ count(*) from performance_schema.events_waits_history
where THREAD_ID = $con4_thread_id;
-eval select count(*) from performance_schema.events_waits_history_long
+evalp select /*4-3*/ count(*) from performance_schema.events_waits_history_long
where THREAD_ID = $con4_thread_id;
---enable_query_log
-
---echo # Switch to connection default
--connection default
revoke all privileges, grant option from user1@localhost;
diff --git a/mysql-test/suite/period/r/overlaps.result b/mysql-test/suite/period/r/overlaps.result
index 78b1ac18..36a9086f 100644
--- a/mysql-test/suite/period/r/overlaps.result
+++ b/mysql-test/suite/period/r/overlaps.result
@@ -449,3 +449,85 @@ VALUES
('2000-01-01 00:00:00.000000', '2001-01-01 00:00:00.000000', 'abc');
ERROR 23000: Duplicate entry 'abc-2001-01-01 00:00:00.000000-2000-01-01 00:00:00.000000' for key 'index_name'
DROP TABLE t1;
+# MDEV-25370 Update for portion changes autoincrement key in period table
+create or replace table cars(id int auto_increment,
+price int, s date, e date,
+period for p(s,e),
+primary key(id, p without overlaps));
+insert into cars(price, s, e) values (1000, '2018-01-01', '2020-01-01');
+select * from cars;
+id price s e
+1 1000 2018-01-01 2020-01-01
+update cars for portion of p from '2019-01-01' to '2019-12-01' set price= 1100;
+select * from cars;
+id price s e
+1 1000 2018-01-01 2019-01-01
+1 1000 2019-12-01 2020-01-01
+1 1100 2019-01-01 2019-12-01
+delete from cars for portion of p from '2019-12-10' to '2019-12-20';
+select * from cars;
+id price s e
+1 1000 2018-01-01 2019-01-01
+1 1000 2019-12-01 2019-12-10
+1 1000 2019-12-20 2020-01-01
+1 1100 2019-01-01 2019-12-01
+# AUTO_INCREMENT field is separate from WITHOUT OVERLAPS
+create or replace table cars(id int primary key auto_increment,
+car_id int,
+price int, s date, e date,
+period for p(s,e),
+unique(car_id, p without overlaps));
+insert cars(car_id, price, s, e) values (1, 1000, '2018-01-01', '2020-01-01');
+select * from cars;
+id car_id price s e
+1 1 1000 2018-01-01 2020-01-01
+update cars for portion of p from '2019-01-01' to '2019-12-01' set price= 1100;
+select * from cars;
+id car_id price s e
+1 1 1100 2019-01-01 2019-12-01
+2 1 1000 2018-01-01 2019-01-01
+3 1 1000 2019-12-01 2020-01-01
+delete from cars for portion of p from '2019-12-10' to '2019-12-20';
+select * from cars;
+id car_id price s e
+1 1 1100 2019-01-01 2019-12-01
+2 1 1000 2018-01-01 2019-01-01
+4 1 1000 2019-12-01 2019-12-10
+5 1 1000 2019-12-20 2020-01-01
+# AUTO_INCREMENT field is both standalone and in WITHOUT OVERLAPS
+create or replace table cars(id int primary key auto_increment,
+price int, s date, e date,
+period for p(s,e),
+unique(id, p without overlaps));
+insert cars(price, s, e) values (1000, '2018-01-01', '2020-01-01');
+insert cars(price, s, e) values (1000, '2021-01-01', '2022-01-01');
+update cars for portion of p from '2019-01-01' to '2019-12-01' set price= 1100;
+# autoincrement index is: id int primary key
+# id increments each time.
+select * from cars;
+id price s e
+1 1100 2019-01-01 2019-12-01
+2 1000 2021-01-01 2022-01-01
+3 1000 2018-01-01 2019-01-01
+4 1000 2019-12-01 2020-01-01
+truncate cars;
+insert cars(price, s, e) values (1000, '2018-01-01', '2020-01-01');
+delete from cars for portion of p from '2019-12-10' to '2019-12-20';
+select * from cars;
+id price s e
+2 1000 2018-01-01 2019-12-10
+3 1000 2019-12-20 2020-01-01
+create or replace table cars(id int unique auto_increment,
+price int, s date, e date,
+period for p(s,e),
+primary key (id, p without overlaps));
+insert cars(price, s, e) values (1000, '2018-01-01', '2020-01-01');
+# autoincrement index is: primary key (id, p without overlaps)
+# id is not incremented, hence duplication error
+update cars for portion of p from '2019-01-01' to '2019-12-01' set price= 1100;
+ERROR 23000: Duplicate entry '1' for key 'id'
+truncate cars;
+insert cars(price, s, e) values (1000, '2018-01-01', '2020-01-01');
+delete from cars for portion of p from '2019-12-10' to '2019-12-20';
+ERROR 23000: Duplicate entry '1' for key 'id'
+drop table cars;
diff --git a/mysql-test/suite/period/t/overlaps.test b/mysql-test/suite/period/t/overlaps.test
index 4e71d64d..b762743b 100644
--- a/mysql-test/suite/period/t/overlaps.test
+++ b/mysql-test/suite/period/t/overlaps.test
@@ -458,3 +458,80 @@ VALUES
('2000-01-01 00:00:00.000000', '2001-01-01 00:00:00.000000', 'abc '),
('2000-01-01 00:00:00.000000', '2001-01-01 00:00:00.000000', 'abc');
DROP TABLE t1;
+
+--echo # MDEV-25370 Update for portion changes autoincrement key in period table
+create or replace table cars(id int auto_increment,
+ price int, s date, e date,
+ period for p(s,e),
+ primary key(id, p without overlaps));
+
+insert into cars(price, s, e) values (1000, '2018-01-01', '2020-01-01');
+select * from cars;
+
+update cars for portion of p from '2019-01-01' to '2019-12-01' set price= 1100;
+--sorted_result
+select * from cars;
+
+delete from cars for portion of p from '2019-12-10' to '2019-12-20';
+--sorted_result
+select * from cars;
+
+--echo # AUTO_INCREMENT field is separate from WITHOUT OVERLAPS
+create or replace table cars(id int primary key auto_increment,
+ car_id int,
+ price int, s date, e date,
+ period for p(s,e),
+ unique(car_id, p without overlaps));
+
+insert cars(car_id, price, s, e) values (1, 1000, '2018-01-01', '2020-01-01');
+select * from cars;
+
+update cars for portion of p from '2019-01-01' to '2019-12-01' set price= 1100;
+--sorted_result
+select * from cars;
+
+delete from cars for portion of p from '2019-12-10' to '2019-12-20';
+--sorted_result
+select * from cars;
+
+
+--echo # AUTO_INCREMENT field is both standalone and in WITHOUT OVERLAPS
+create or replace table cars(id int primary key auto_increment,
+ price int, s date, e date,
+ period for p(s,e),
+ unique(id, p without overlaps));
+
+insert cars(price, s, e) values (1000, '2018-01-01', '2020-01-01');
+insert cars(price, s, e) values (1000, '2021-01-01', '2022-01-01');
+
+update cars for portion of p from '2019-01-01' to '2019-12-01' set price= 1100;
+--echo # autoincrement index is: id int primary key
+--echo # id increments each time.
+--sorted_result
+select * from cars;
+
+truncate cars;
+insert cars(price, s, e) values (1000, '2018-01-01', '2020-01-01');
+
+delete from cars for portion of p from '2019-12-10' to '2019-12-20';
+--sorted_result
+select * from cars;
+
+create or replace table cars(id int unique auto_increment,
+ price int, s date, e date,
+ period for p(s,e),
+ primary key (id, p without overlaps));
+
+insert cars(price, s, e) values (1000, '2018-01-01', '2020-01-01');
+--echo # autoincrement index is: primary key (id, p without overlaps)
+--echo # id is not incremented, hence duplication error
+--error ER_DUP_ENTRY
+update cars for portion of p from '2019-01-01' to '2019-12-01' set price= 1100;
+
+truncate cars;
+insert cars(price, s, e) values (1000, '2018-01-01', '2020-01-01');
+
+--error ER_DUP_ENTRY
+delete from cars for portion of p from '2019-12-10' to '2019-12-20';
+
+drop table cars;
diff --git a/mysql-test/suite/plugins/r/compression,innodb-lz4.rdiff b/mysql-test/suite/plugins/r/compression,innodb-lz4.rdiff
index 791aecda..00abc196 100644
--- a/mysql-test/suite/plugins/r/compression,innodb-lz4.rdiff
+++ b/mysql-test/suite/plugins/r/compression,innodb-lz4.rdiff
@@ -18,11 +18,11 @@
-# restart: --disable-provider-bzip2
+# restart: --disable-provider-lz4
select a, left(b, 9), length(b) from t1;
- ERROR 42S02: Table 'test.t1' doesn't exist in engine
+ ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
show warnings;
Level Code Message
-Warning 4185 MariaDB tried to use the BZip2 compression, but its provider plugin is not loaded
+Warning 4185 MariaDB tried to use the LZ4 compression, but its provider plugin is not loaded
- Error 1932 Table 'test.t1' doesn't exist in engine
+ Error 1877 Table `test`.`t1` is corrupted. Please drop the table and recreate.
drop table t1;
# restart
diff --git a/mysql-test/suite/plugins/r/compression,innodb-lzma.rdiff b/mysql-test/suite/plugins/r/compression,innodb-lzma.rdiff
index 13c42f82..0119adc7 100644
--- a/mysql-test/suite/plugins/r/compression,innodb-lzma.rdiff
+++ b/mysql-test/suite/plugins/r/compression,innodb-lzma.rdiff
@@ -18,11 +18,11 @@
-# restart: --disable-provider-bzip2
+# restart: --disable-provider-lzma
select a, left(b, 9), length(b) from t1;
- ERROR 42S02: Table 'test.t1' doesn't exist in engine
+ ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
show warnings;
Level Code Message
-Warning 4185 MariaDB tried to use the BZip2 compression, but its provider plugin is not loaded
+Warning 4185 MariaDB tried to use the LZMA compression, but its provider plugin is not loaded
- Error 1932 Table 'test.t1' doesn't exist in engine
+ Error 1877 Table `test`.`t1` is corrupted. Please drop the table and recreate.
drop table t1;
# restart
diff --git a/mysql-test/suite/plugins/r/compression,innodb-lzo.rdiff b/mysql-test/suite/plugins/r/compression,innodb-lzo.rdiff
index cc7783cc..52a794a9 100644
--- a/mysql-test/suite/plugins/r/compression,innodb-lzo.rdiff
+++ b/mysql-test/suite/plugins/r/compression,innodb-lzo.rdiff
@@ -18,11 +18,11 @@
-# restart: --disable-provider-bzip2
+# restart: --disable-provider-lzo
select a, left(b, 9), length(b) from t1;
- ERROR 42S02: Table 'test.t1' doesn't exist in engine
+ ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
show warnings;
Level Code Message
-Warning 4185 MariaDB tried to use the BZip2 compression, but its provider plugin is not loaded
+Warning 4185 MariaDB tried to use the LZO compression, but its provider plugin is not loaded
- Error 1932 Table 'test.t1' doesn't exist in engine
+ Error 1877 Table `test`.`t1` is corrupted. Please drop the table and recreate.
drop table t1;
# restart
diff --git a/mysql-test/suite/plugins/r/compression,innodb-snappy.rdiff b/mysql-test/suite/plugins/r/compression,innodb-snappy.rdiff
index 98c4427a..cbbd754a 100644
--- a/mysql-test/suite/plugins/r/compression,innodb-snappy.rdiff
+++ b/mysql-test/suite/plugins/r/compression,innodb-snappy.rdiff
@@ -18,11 +18,11 @@
-# restart: --disable-provider-bzip2
+# restart: --disable-provider-snappy
select a, left(b, 9), length(b) from t1;
- ERROR 42S02: Table 'test.t1' doesn't exist in engine
+ ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
show warnings;
Level Code Message
-Warning 4185 MariaDB tried to use the BZip2 compression, but its provider plugin is not loaded
+Warning 4185 MariaDB tried to use the Snappy compression, but its provider plugin is not loaded
- Error 1932 Table 'test.t1' doesn't exist in engine
+ Error 1877 Table `test`.`t1` is corrupted. Please drop the table and recreate.
drop table t1;
# restart
diff --git a/mysql-test/suite/plugins/r/compression,mroonga-lz4.rdiff b/mysql-test/suite/plugins/r/compression,mroonga-lz4.rdiff
index ac186d3c..3f449220 100644
--- a/mysql-test/suite/plugins/r/compression,mroonga-lz4.rdiff
+++ b/mysql-test/suite/plugins/r/compression,mroonga-lz4.rdiff
@@ -23,11 +23,11 @@
-# restart: --disable-provider-bzip2
+# restart: --disable-provider-lz4
select a, left(b, 9), length(b) from t1;
--ERROR 42S02: Table 'test.t1' doesn't exist in engine
+-ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
-show warnings;
-Level Code Message
-Warning 4185 MariaDB tried to use the BZip2 compression, but its provider plugin is not loaded
--Error 1932 Table 'test.t1' doesn't exist in engine
+-Error 1877 Table `test`.`t1` is corrupted. Please drop the table and recreate.
+a left(b, 9) length(b)
+0 0
+1 0
diff --git a/mysql-test/suite/plugins/r/compression.result b/mysql-test/suite/plugins/r/compression.result
index d7c11abc..07bfbc0b 100644
--- a/mysql-test/suite/plugins/r/compression.result
+++ b/mysql-test/suite/plugins/r/compression.result
@@ -18,10 +18,10 @@ a left(b, 9) length(b)
2 ghighighi 30000
# restart: --disable-provider-bzip2
select a, left(b, 9), length(b) from t1;
-ERROR 42S02: Table 'test.t1' doesn't exist in engine
+ERROR HY000: Table `test`.`t1` is corrupted. Please drop the table and recreate.
show warnings;
Level Code Message
Warning 4185 MariaDB tried to use the BZip2 compression, but its provider plugin is not loaded
-Error 1932 Table 'test.t1' doesn't exist in engine
+Error 1877 Table `test`.`t1` is corrupted. Please drop the table and recreate.
drop table t1;
# restart
diff --git a/mysql-test/suite/plugins/t/compression.test b/mysql-test/suite/plugins/t/compression.test
index df892acf..95ae2df9 100644
--- a/mysql-test/suite/plugins/t/compression.test
+++ b/mysql-test/suite/plugins/t/compression.test
@@ -40,7 +40,7 @@ let $restart_parameters = --disable-provider-$alg;
source include/restart_mysqld.inc;
if ($engine == "innodb") {
- error ER_NO_SUCH_TABLE_IN_ENGINE;
+ error ER_TABLE_CORRUPT;
select a, left(b, 9), length(b) from t1;
show warnings;
}
diff --git a/mysql-test/suite/roles/definer.result b/mysql-test/suite/roles/definer.result
index 091ba255..38242c81 100644
--- a/mysql-test/suite/roles/definer.result
+++ b/mysql-test/suite/roles/definer.result
@@ -279,6 +279,7 @@ a b c
111 4 0
2 20 200
delete from t1 where a=111;
+/*!999999\- enable the sandbox mode */
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */;
diff --git a/mysql-test/suite/rpl/include/rpl_extra_col_master.test b/mysql-test/suite/rpl/include/rpl_extra_col_master.test
index a7abe69d..3fef3cc1 100644
--- a/mysql-test/suite/rpl/include/rpl_extra_col_master.test
+++ b/mysql-test/suite/rpl/include/rpl_extra_col_master.test
@@ -59,6 +59,10 @@
#VARCHAR(M)
#
+--disable_query_log
+call mtr.add_suppression("Could not read packet:.* errno: 11");
+--enable_query_log
+
--let $_saved_conn= $CURRENT_CONNECTION
let $binformat = `SHOW VARIABLES LIKE '%binlog_format%'`;
diff --git a/mysql-test/suite/rpl/r/parallel_backup.result b/mysql-test/suite/rpl/r/parallel_backup.result
index 83c7a916..36183892 100644
--- a/mysql-test/suite/rpl/r/parallel_backup.result
+++ b/mysql-test/suite/rpl/r/parallel_backup.result
@@ -125,7 +125,7 @@ include/save_master_gtid.inc
connection slave;
SET @sav_innodb_lock_wait_timeout = @@global.innodb_lock_wait_timeout;
SET @sav_slave_transaction_retries = @@global.slave_transaction_retries;
-SET @@global.innodb_lock_wait_timeout =1;
+SET @@global.innodb_lock_wait_timeout =5;
SET @@global.slave_transaction_retries=0;
include/start_slave.inc
connection aux_slave;
@@ -168,7 +168,7 @@ include/save_master_gtid.inc
connection slave;
SET @sav_innodb_lock_wait_timeout = @@global.innodb_lock_wait_timeout;
SET @sav_slave_transaction_retries = @@global.slave_transaction_retries;
-SET @@global.innodb_lock_wait_timeout =1;
+SET @@global.innodb_lock_wait_timeout =5;
SET @@global.slave_transaction_retries=0;
include/start_slave.inc
connection aux_slave;
diff --git a/mysql-test/suite/rpl/r/parallel_backup_lsu_off.result b/mysql-test/suite/rpl/r/parallel_backup_lsu_off.result
index e1fd7701..08955a77 100644
--- a/mysql-test/suite/rpl/r/parallel_backup_lsu_off.result
+++ b/mysql-test/suite/rpl/r/parallel_backup_lsu_off.result
@@ -128,7 +128,7 @@ include/save_master_gtid.inc
connection slave;
SET @sav_innodb_lock_wait_timeout = @@global.innodb_lock_wait_timeout;
SET @sav_slave_transaction_retries = @@global.slave_transaction_retries;
-SET @@global.innodb_lock_wait_timeout =1;
+SET @@global.innodb_lock_wait_timeout =5;
SET @@global.slave_transaction_retries=0;
include/start_slave.inc
connection aux_slave;
@@ -171,7 +171,7 @@ include/save_master_gtid.inc
connection slave;
SET @sav_innodb_lock_wait_timeout = @@global.innodb_lock_wait_timeout;
SET @sav_slave_transaction_retries = @@global.slave_transaction_retries;
-SET @@global.innodb_lock_wait_timeout =1;
+SET @@global.innodb_lock_wait_timeout =5;
SET @@global.slave_transaction_retries=0;
include/start_slave.inc
connection aux_slave;
diff --git a/mysql-test/suite/rpl/r/parallel_backup_slave_binlog_off.result b/mysql-test/suite/rpl/r/parallel_backup_slave_binlog_off.result
index 9e29e5a3..bb00bf9c 100644
--- a/mysql-test/suite/rpl/r/parallel_backup_slave_binlog_off.result
+++ b/mysql-test/suite/rpl/r/parallel_backup_slave_binlog_off.result
@@ -128,7 +128,7 @@ include/save_master_gtid.inc
connection slave;
SET @sav_innodb_lock_wait_timeout = @@global.innodb_lock_wait_timeout;
SET @sav_slave_transaction_retries = @@global.slave_transaction_retries;
-SET @@global.innodb_lock_wait_timeout =1;
+SET @@global.innodb_lock_wait_timeout =5;
SET @@global.slave_transaction_retries=0;
include/start_slave.inc
connection aux_slave;
@@ -171,7 +171,7 @@ include/save_master_gtid.inc
connection slave;
SET @sav_innodb_lock_wait_timeout = @@global.innodb_lock_wait_timeout;
SET @sav_slave_transaction_retries = @@global.slave_transaction_retries;
-SET @@global.innodb_lock_wait_timeout =1;
+SET @@global.innodb_lock_wait_timeout =5;
SET @@global.slave_transaction_retries=0;
include/start_slave.inc
connection aux_slave;
diff --git a/mysql-test/suite/rpl/r/rpl_auditing.result b/mysql-test/suite/rpl/r/rpl_auditing.result
new file mode 100644
index 00000000..1861beb4
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_auditing.result
@@ -0,0 +1,64 @@
+include/master-slave.inc
+[connection master]
+drop table if exists t1;
+connection slave;
+reset master;
+CREATE TABLE IF NOT EXISTS mysql.server_audit_filters (
+filtername char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
+rule longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT 'true' CHECK (json_valid(rule)),
+CONSTRAINT c_filtername UNIQUE (filtername)
+) ENGINE=Aria;
+CREATE TABLE IF NOT EXISTS mysql.server_audit_users (host char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
+user char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
+filtername char(80) NOT NULL DEFAULT '',
+CONSTRAINT c_host_user UNIQUE (host, user)
+) ENGINE=Aria;
+INSERT INTO mysql.server_audit_filters VALUES ('ignore_sys', '{"ignore_tables" : "mysql.*"}');
+INSERT INTO mysql.server_audit_users VALUES ('%','<replication_slave>','ignore_sys');
+INSERT INTO mysql.server_audit_users VALUES ('%','root','ignore_sys');
+install plugin server_audit soname 'server_audit2';
+set global server_audit_logging=on;
+connection master;
+create table t1 (a int);
+insert into t1 values (1);
+truncate t1;
+drop table t1;
+connection slave;
+set global server_audit_logging=off;
+truncate mysql.server_audit_filters;
+truncate mysql.server_audit_users;
+INSERT INTO mysql.server_audit_filters VALUES ('no_logging','false');
+INSERT INTO mysql.server_audit_users VALUES ('%','<replication_slave>','no_logging');
+set global server_audit_logging=on;
+connection master;
+create table t1 (a int);
+insert into t1 values (1);
+truncate t1;
+drop table t1;
+connection slave;
+set global server_audit_logging=off;
+uninstall plugin server_audit;
+Warnings:
+Warning 1620 Plugin is busy and will be uninstalled on shutdown
+truncate mysql.server_audit_filters;
+truncate mysql.server_audit_users;
+TIME,HOSTNAME,,,0,0,AUDIT_CONFIG,,file_path=server_audit.log,0
+TIME,HOSTNAME,,,0,0,AUDIT_CONFIG,,rotate_size=1000000,0
+TIME,HOSTNAME,,,0,0,AUDIT_CONFIG,,file_rotations=9,0
+TIME,HOSTNAME,root,localhost,ID,0,AUDIT_CONFIG,test,logging=ON,0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_logging=on',0
+TIME,HOSTNAME,<replication_slave>,,ID,ID,CREATE,test,t1,
+TIME,HOSTNAME,<replication_slave>,,ID,ID,WRITE,test,t1,
+TIME,HOSTNAME,<replication_slave>,,ID,ID,CREATE,test,t1,
+TIME,HOSTNAME,<replication_slave>,,ID,ID,DROP,test,t1,
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'select master_pos_wait(\'master-bin.#', POS, 300, \'\')',0
+TIME,HOSTNAME,root,localhost,ID,0,AUDIT_CONFIG,test,logging=OFF,0
+TIME,HOSTNAME,,,0,0,AUDIT_CONFIG,,file_path=server_audit.log,0
+TIME,HOSTNAME,,,0,0,AUDIT_CONFIG,,rotate_size=1000000,0
+TIME,HOSTNAME,,,0,0,AUDIT_CONFIG,,file_rotations=9,0
+TIME,HOSTNAME,root,localhost,ID,0,AUDIT_CONFIG,test,logging=ON,0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_logging=on',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'select master_pos_wait(\'master-bin.#', POS, 300, \'\')',0
+TIME,HOSTNAME,root,localhost,ID,0,AUDIT_CONFIG,test,logging=OFF,0
+connection master;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_binlog_dump_slave_gtid_state_info.result b/mysql-test/suite/rpl/r/rpl_binlog_dump_slave_gtid_state_info.result
index af79b482..20dd9076 100644
--- a/mysql-test/suite/rpl/r/rpl_binlog_dump_slave_gtid_state_info.result
+++ b/mysql-test/suite/rpl/r/rpl_binlog_dump_slave_gtid_state_info.result
@@ -1,6 +1,7 @@
include/master-slave.inc
[connection master]
connection master;
+SET @org_log_warnings=@@GLOBAL.LOG_WARNINGS;
SET GLOBAL LOG_WARNINGS=2;
connection slave;
include/stop_slave.inc
@@ -41,11 +42,11 @@ connection master;
include/wait_for_pattern_in_file.inc
FOUND 1 /using_gtid\(1\), gtid\(\'0-1-2,10-1-1\'\).*/ in mysqld.1.err
"===== Clean up ====="
+SET GLOBAL LOG_WARNINGS=@org_log_warnings;
connection slave;
include/stop_slave.inc
CHANGE MASTER TO MASTER_USE_GTID=no;
include/start_slave.inc
connection master;
DROP TABLE t;
-SET GLOBAL LOG_WARNINGS=default;
include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_change_master.result b/mysql-test/suite/rpl/r/rpl_change_master.result
index 88801b07..48cec72d 100644
--- a/mysql-test/suite/rpl/r/rpl_change_master.result
+++ b/mysql-test/suite/rpl/r/rpl_change_master.result
@@ -26,9 +26,4 @@ connection master;
CHANGE MASTER TO MASTER_USER='root', MASTER_SSL=0, MASTER_SSL_CA='', MASTER_SSL_CERT='',
MASTER_SSL_KEY='', MASTER_SSL_CRL='', MASTER_SSL_CRLPATH='';
CHANGE MASTER TO MASTER_USER='root', MASTER_PASSWORD='', MASTER_SSL=0;
-"Usage of CURRENT_POS in CHANGE MASTER MASTER_USE_GTID is dreprecated.
-CHANGE MASTER TO MASTER_USE_GTID=CURRENT_POS;
-Warnings:
-Warning 1681 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
-CHANGE MASTER TO MASTER_USE_GTID=SLAVE_POS;
include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_change_master_demote.result b/mysql-test/suite/rpl/r/rpl_change_master_demote.result
index 70d141ef..2114ac4a 100644
--- a/mysql-test/suite/rpl/r/rpl_change_master_demote.result
+++ b/mysql-test/suite/rpl/r/rpl_change_master_demote.result
@@ -683,6 +683,23 @@ connection master;
CHANGE MASTER TO master_host='127.0.0.1', master_port=SLAVE_PORT, master_user='root', master_use_gtid=Slave_Pos, master_demote_to_slave=invalid;
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 'invalid' at line 1
#
+# MDEV-31768
+# Ensure MASTER_DEMOTE_TO_REPLICA aliases MASTER_DEMOTE_TO_SLAVE
+#
+connection slave;
+RESET MASTER;
+include/reset_slave.inc
+CREATE TABLE t_mdev_31768 (a int);
+CHANGE MASTER TO master_use_gtid=Replica_Pos, master_demote_to_replica=1;
+# Validating alias MASTER_DEMOTE_TO_REPLICA provides intended behavior..
+# ..success
+DROP TABLE t_mdev_31768;
+RESET MASTER;
+include/reset_slave.inc
+# Clear primary binlog state to match replica
+connection master;
+RESET MASTER;
+#
# Cleanup
#
connection master;
diff --git a/mysql-test/suite/rpl/r/rpl_domain_id_filter_io_crash.result b/mysql-test/suite/rpl/r/rpl_domain_id_filter_io_crash.result
index 5250c4bb..9d3b2ccd 100644
--- a/mysql-test/suite/rpl/r/rpl_domain_id_filter_io_crash.result
+++ b/mysql-test/suite/rpl/r/rpl_domain_id_filter_io_crash.result
@@ -11,6 +11,7 @@ SELECT * FROM t1;
i
1
connection slave;
+include/save_master_gtid.inc
connection slave;
call mtr.add_suppression("Slave I/O: Relay log write failure: could not queue event from master.*");
# Case 0 : Start slave with IGNORE_DOMAIN_IDS=(), then restart
@@ -24,6 +25,7 @@ DO_DOMAIN_IDS (BEFORE) :
IGNORE_DOMAIN_IDS (BEFORE) :
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(), MASTER_USE_GTID=slave_pos;
include/start_slave.inc
+include/sync_with_master_gtid.inc
DO_DOMAIN_IDS (AFTER) :
IGNORE_DOMAIN_IDS (AFTER) :
SET @saved_dbug = @@GLOBAL.debug_dbug;
@@ -33,6 +35,7 @@ START TRANSACTION;
INSERT INTO t1 VALUES(2);
INSERT INTO t1 VALUES(3);
COMMIT;
+include/save_master_gtid.inc
SELECT * FROM t1;
i
1
@@ -46,6 +49,7 @@ i
SET @@global.debug_dbug=@saved_dbug;
START SLAVE io_thread;
include/wait_for_slave_io_to_start.inc
+include/sync_with_master_gtid.inc
SELECT * FROM t1;
i
1
@@ -59,6 +63,7 @@ DO_DOMAIN_IDS (BEFORE) :
IGNORE_DOMAIN_IDS (BEFORE) :
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(1), MASTER_USE_GTID=slave_pos;
include/start_slave.inc
+include/sync_with_master_gtid.inc
DO_DOMAIN_IDS (AFTER) :
IGNORE_DOMAIN_IDS (AFTER) : 1
SET @@global.debug_dbug="d,kill_slave_io_before_commit";
@@ -67,6 +72,7 @@ START TRANSACTION;
INSERT INTO t1 VALUES(4);
INSERT INTO t1 VALUES(5);
COMMIT;
+include/save_master_gtid.inc
SELECT * FROM t1;
i
1
@@ -84,6 +90,7 @@ i
SET @@global.debug_dbug=@saved_dbug;
START SLAVE io_thread;
include/wait_for_slave_io_to_start.inc
+include/sync_with_master_gtid.inc
SELECT * FROM t1;
i
1
@@ -97,6 +104,7 @@ DO_DOMAIN_IDS (BEFORE) :
IGNORE_DOMAIN_IDS (BEFORE) : 1
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(), MASTER_USE_GTID=slave_pos;
include/start_slave.inc
+include/sync_with_master_gtid.inc
DO_DOMAIN_IDS (AFTER) :
IGNORE_DOMAIN_IDS (AFTER) :
SET @@global.debug_dbug="d,kill_slave_io_before_commit";
@@ -114,6 +122,7 @@ START TRANSACTION;
INSERT INTO t1 VALUES(10);
INSERT INTO t1 VALUES(11);
COMMIT;
+include/save_master_gtid.inc
SELECT * FROM t1;
i
1
@@ -140,6 +149,7 @@ DO_DOMAIN_IDS (BEFORE) :
IGNORE_DOMAIN_IDS (BEFORE) :
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(1), MASTER_USE_GTID=slave_pos;
include/start_slave.inc
+include/sync_with_master_gtid.inc
DO_DOMAIN_IDS (AFTER) :
IGNORE_DOMAIN_IDS (AFTER) : 1
SELECT * FROM t1;
@@ -157,6 +167,7 @@ DO_DOMAIN_IDS (BEFORE) :
IGNORE_DOMAIN_IDS (BEFORE) : 1
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(1), MASTER_USE_GTID=slave_pos;
include/start_slave.inc
+include/sync_with_master_gtid.inc
DO_DOMAIN_IDS (AFTER) :
IGNORE_DOMAIN_IDS (AFTER) : 1
SET @@global.debug_dbug="d,kill_slave_io_before_commit";
@@ -166,6 +177,7 @@ START TRANSACTION;
INSERT INTO t1 VALUES(12);
INSERT INTO t1 VALUES(13);
COMMIT;
+include/save_master_gtid.inc
START TRANSACTION;
INSERT INTO t1 VALUES(14);
INSERT INTO t1 VALUES(15);
@@ -204,11 +216,16 @@ i
10
11
SET @@global.debug_dbug=@saved_dbug;
+include/sync_with_master_gtid.inc
include/stop_slave_sql.inc
DO_DOMAIN_IDS (BEFORE) :
IGNORE_DOMAIN_IDS (BEFORE) : 1
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(), MASTER_USE_GTID=slave_pos;
+connection master;
+include/save_master_gtid.inc
+connection slave;
include/start_slave.inc
+include/sync_with_master_gtid.inc
DO_DOMAIN_IDS (AFTER) :
IGNORE_DOMAIN_IDS (AFTER) :
SELECT * FROM t1;
@@ -230,6 +247,7 @@ DO_DOMAIN_IDS (BEFORE) :
IGNORE_DOMAIN_IDS (BEFORE) :
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(1), MASTER_USE_GTID=slave_pos;
include/start_slave.inc
+include/sync_with_master_gtid.inc
DO_DOMAIN_IDS (AFTER) :
IGNORE_DOMAIN_IDS (AFTER) : 1
SET @@global.debug_dbug="d,kill_slave_io_after_2_events";
@@ -239,6 +257,7 @@ START TRANSACTION;
INSERT INTO t1 VALUES(18);
INSERT INTO t1 VALUES(19);
COMMIT;
+include/save_master_gtid.inc
START TRANSACTION;
INSERT INTO t1 VALUES(20);
INSERT INTO t1 VALUES(21);
@@ -287,11 +306,16 @@ i
16
17
SET @@global.debug_dbug=@saved_dbug;
+include/sync_with_master_gtid.inc
include/stop_slave_sql.inc
DO_DOMAIN_IDS (BEFORE) :
IGNORE_DOMAIN_IDS (BEFORE) : 1
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(), MASTER_USE_GTID=slave_pos;
+connection master;
+include/save_master_gtid.inc
+connection slave;
include/start_slave.inc
+include/sync_with_master_gtid.inc
DO_DOMAIN_IDS (AFTER) :
IGNORE_DOMAIN_IDS (AFTER) :
SELECT * FROM t1;
@@ -317,6 +341,7 @@ DO_DOMAIN_IDS (BEFORE) :
IGNORE_DOMAIN_IDS (BEFORE) :
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(), MASTER_USE_GTID=slave_pos;
include/start_slave.inc
+include/sync_with_master_gtid.inc
DO_DOMAIN_IDS (AFTER) :
IGNORE_DOMAIN_IDS (AFTER) :
SET @@global.debug_dbug="d,kill_slave_io_after_2_events";
@@ -335,6 +360,7 @@ START TRANSACTION;
INSERT INTO t1 VALUES(28);
INSERT INTO t1 VALUES(29);
COMMIT;
+include/save_master_gtid.inc
SELECT * FROM t1;
i
1
@@ -389,6 +415,7 @@ DO_DOMAIN_IDS (BEFORE) :
IGNORE_DOMAIN_IDS (BEFORE) :
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(1), MASTER_USE_GTID=slave_pos;
include/start_slave.inc
+include/sync_with_master_gtid.inc
DO_DOMAIN_IDS (AFTER) :
IGNORE_DOMAIN_IDS (AFTER) : 1
SELECT * FROM t1;
diff --git a/mysql-test/suite/rpl/r/rpl_domain_id_filter_master_crash.result b/mysql-test/suite/rpl/r/rpl_domain_id_filter_master_crash.result
index a54ff99b..cd13590b 100644
--- a/mysql-test/suite/rpl/r/rpl_domain_id_filter_master_crash.result
+++ b/mysql-test/suite/rpl/r/rpl_domain_id_filter_master_crash.result
@@ -1,9 +1,6 @@
include/master-slave.inc
[connection master]
connection master;
-call mtr.add_suppression("mysqld: Table '.*gtid_slave_pos' is marked as crashed and should be repaired");
-call mtr.add_suppression("Checking table: './mysql/gtid_slave_pos'");
-call mtr.add_suppression("mysql.gtid_slave_pos: 1 client is using or hasn't closed the table properly");
SET @@session.gtid_domain_id= 0;
create table ti (a int auto_increment primary key) engine=innodb;
create table tm (a int auto_increment primary key) engine=myisam;
diff --git a/mysql-test/suite/rpl/r/rpl_domain_id_filter_restart.result b/mysql-test/suite/rpl/r/rpl_domain_id_filter_restart.result
index f6eff3f9..948b4f48 100644
--- a/mysql-test/suite/rpl/r/rpl_domain_id_filter_restart.result
+++ b/mysql-test/suite/rpl/r/rpl_domain_id_filter_restart.result
@@ -21,8 +21,9 @@ INSERT INTO t2 VALUES(1);
SELECT * FROM t2;
i
1
+include/save_master_gtid.inc
connection slave;
-connection slave;
+include/sync_with_master_gtid.inc
SELECT * FROM t1;
i
1
diff --git a/mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result b/mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result
index be98b7e3..145b269a 100644
--- a/mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result
+++ b/mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result
@@ -657,7 +657,7 @@ START SLAVE;
STOP SLAVE;
include/reset_slave.inc
Warnings:
-Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-103. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
+Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-104. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
CREATE TABLE t15 (c1 INT PRIMARY KEY, c4 BLOB, c5 CHAR(5)
) ENGINE='InnoDB';
@@ -697,7 +697,7 @@ Last_SQL_Error = 'Error 'Unknown column 'c7' in 't15'' on query. Default databas
STOP SLAVE;
include/reset_slave.inc
Warnings:
-Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-104. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
+Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-105. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
*** Drop t15 ***
DROP TABLE t15;
@@ -716,7 +716,7 @@ START SLAVE;
STOP SLAVE;
include/reset_slave.inc
Warnings:
-Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-105. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
+Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-106. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
CREATE TABLE t16 (c1 INT PRIMARY KEY, c4 BLOB, c5 CHAR(5)
) ENGINE='InnoDB';
@@ -756,7 +756,7 @@ Last_SQL_Error = 'Error 'Key column 'c6' doesn't exist in table' on query. Defau
STOP SLAVE;
include/reset_slave.inc
Warnings:
-Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-106. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
+Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-107. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
*** Drop t16 ***
DROP TABLE t16;
@@ -775,7 +775,7 @@ START SLAVE;
STOP SLAVE;
include/reset_slave.inc
Warnings:
-Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-107. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
+Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-108. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
CREATE TABLE t17 (c1 INT PRIMARY KEY, c4 BLOB, c5 CHAR(5)
) ENGINE='InnoDB';
diff --git a/mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result b/mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result
index 53b20b18..dae497d5 100644
--- a/mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result
+++ b/mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result
@@ -657,7 +657,7 @@ START SLAVE;
STOP SLAVE;
include/reset_slave.inc
Warnings:
-Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-103. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
+Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-104. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
CREATE TABLE t15 (c1 INT PRIMARY KEY, c4 BLOB, c5 CHAR(5)
) ENGINE='MyISAM';
@@ -697,7 +697,7 @@ Last_SQL_Error = 'Error 'Unknown column 'c7' in 't15'' on query. Default databas
STOP SLAVE;
include/reset_slave.inc
Warnings:
-Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-104. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
+Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-105. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
*** Drop t15 ***
DROP TABLE t15;
@@ -716,7 +716,7 @@ START SLAVE;
STOP SLAVE;
include/reset_slave.inc
Warnings:
-Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-105. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
+Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-106. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
CREATE TABLE t16 (c1 INT PRIMARY KEY, c4 BLOB, c5 CHAR(5)
) ENGINE='MyISAM';
@@ -756,7 +756,7 @@ Last_SQL_Error = 'Error 'Key column 'c6' doesn't exist in table' on query. Defau
STOP SLAVE;
include/reset_slave.inc
Warnings:
-Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-106. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
+Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-107. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
*** Drop t16 ***
DROP TABLE t16;
@@ -775,7 +775,7 @@ START SLAVE;
STOP SLAVE;
include/reset_slave.inc
Warnings:
-Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-107. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
+Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-108. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
CREATE TABLE t17 (c1 INT PRIMARY KEY, c4 BLOB, c5 CHAR(5)
) ENGINE='MyISAM';
diff --git a/mysql-test/suite/rpl/r/rpl_get_lock.result b/mysql-test/suite/rpl/r/rpl_get_lock.result
index b852546e..cbb02a32 100644
--- a/mysql-test/suite/rpl/r/rpl_get_lock.result
+++ b/mysql-test/suite/rpl/r/rpl_get_lock.result
@@ -1,6 +1,6 @@
include/master-slave.inc
[connection master]
-CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
+SET GLOBAL LOG_WARNINGS=4;
create table t1(n int);
insert into t1 values(get_lock("lock",2));
disconnect master;
@@ -35,4 +35,5 @@ NULL
connection master1;
drop table t1;
connection slave;
+connection default;
include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_gtid_basic.result b/mysql-test/suite/rpl/r/rpl_gtid_basic.result
index a7da7010..afc700a7 100644
--- a/mysql-test/suite/rpl/r/rpl_gtid_basic.result
+++ b/mysql-test/suite/rpl/r/rpl_gtid_basic.result
@@ -69,8 +69,6 @@ INSERT INTO t2 VALUES (5, "i1a");
connection server_4;
CHANGE MASTER TO master_host = '127.0.0.1', master_port = MASTER_PORT,
MASTER_USE_GTID=CURRENT_POS;
-Warnings:
-Warning 1681 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
include/start_slave.inc
SELECT * FROM t1 ORDER BY a;
a b
@@ -91,8 +89,6 @@ connection server_2;
include/stop_slave.inc
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_4,
MASTER_USE_GTID=CURRENT_POS;
-Warnings:
-Warning 1681 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
include/start_slave.inc
connection server_4;
UPDATE t2 SET b="j1a" WHERE a=5;
@@ -121,8 +117,6 @@ include/save_master_gtid.inc
connection server_3;
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_4,
MASTER_USE_GTID=CURRENT_POS;
-Warnings:
-Warning 1681 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
include/start_slave.inc
include/sync_with_master_gtid.inc
SELECT * FROM t2 ORDER BY a;
diff --git a/mysql-test/suite/rpl/r/rpl_gtid_crash.result b/mysql-test/suite/rpl/r/rpl_gtid_crash.result
index 179461ad..c47beacf 100644
--- a/mysql-test/suite/rpl/r/rpl_gtid_crash.result
+++ b/mysql-test/suite/rpl/r/rpl_gtid_crash.result
@@ -4,6 +4,7 @@ connection server_1;
call mtr.add_suppression("Checking table:");
call mtr.add_suppression("client is using or hasn't closed the table properly");
call mtr.add_suppression("Table .* is marked as crashed and should be repaired");
+call mtr.add_suppression("Could not read packet:.* errno: 11");
flush tables;
ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
diff --git a/mysql-test/suite/rpl/r/rpl_gtid_errorhandling.result b/mysql-test/suite/rpl/r/rpl_gtid_errorhandling.result
index a7cb710c..4c35d42d 100644
--- a/mysql-test/suite/rpl/r/rpl_gtid_errorhandling.result
+++ b/mysql-test/suite/rpl/r/rpl_gtid_errorhandling.result
@@ -75,8 +75,6 @@ INSERT INTO t1 VALUES (2);
SET sql_log_bin = 1;
INSERT INTO t1 VALUES (3);
CHANGE MASTER TO master_use_gtid=current_pos;
-Warnings:
-Warning 1681 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
BEGIN;
SET GLOBAL gtid_slave_pos = "100-100-100";
ERROR 25000: You are not allowed to execute this command in a transaction
diff --git a/mysql-test/suite/rpl/r/rpl_gtid_grouping.result b/mysql-test/suite/rpl/r/rpl_gtid_grouping.result
index ad7d6116..1b4d86dd 100644
--- a/mysql-test/suite/rpl/r/rpl_gtid_grouping.result
+++ b/mysql-test/suite/rpl/r/rpl_gtid_grouping.result
@@ -50,5 +50,4 @@ CHANGE MASTER TO MASTER_USE_GTID=no;
include/start_slave.inc
connection master;
DROP TABLE t;
-SET GLOBAL LOG_WARNINGS=default;
include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_gtid_header_valid.result b/mysql-test/suite/rpl/r/rpl_gtid_header_valid.result
new file mode 100644
index 00000000..6731abc2
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_gtid_header_valid.result
@@ -0,0 +1,146 @@
+include/master-slave.inc
+[connection master]
+#
+# Initialize test data
+connection master;
+create table t1 (a int) engine=innodb;
+include/save_master_gtid.inc
+set @@SESSION.debug_dbug= "+d,binlog_force_commit_id";
+connection slave;
+set SQL_LOG_BIN= 0;
+call mtr.add_suppression('Found invalid event in binary log');
+call mtr.add_suppression('Slave SQL.*Relay log read failure: Could not parse relay log event entry.* 1594');
+set SQL_LOG_BIN= 1;
+include/sync_with_master_gtid.inc
+include/stop_slave.inc
+include/start_slave.inc
+#
+# Test FL_PREPARED_XA
+connection master;
+set @@SESSION.debug_dbug= "+d,negate_xid_from_gtid";
+set @commit_id= 100;
+XA START 'x1';
+insert into t1 values (1);
+XA END 'x1';
+XA PREPARE 'x1';
+set @@SESSION.debug_dbug= "-d,negate_xid_from_gtid";
+XA COMMIT 'x1';
+include/save_master_gtid.inc
+# Waiting for slave to find invalid event..
+connection slave;
+include/wait_for_slave_sql_error.inc [errno=1594]
+STOP SLAVE IO_THREAD;
+# Reset master binlogs (as there is an invalid event) and slave state
+connection master;
+RESET MASTER;
+connection slave;
+RESET MASTER;
+RESET SLAVE;
+set @@global.gtid_slave_pos="";
+include/start_slave.inc
+#
+# Test FL_COMPLETED_XA
+connection master;
+set @commit_id= 101;
+XA START 'x1';
+insert into t1 values (2);
+XA END 'x1';
+XA PREPARE 'x1';
+set @@SESSION.debug_dbug= "+d,negate_xid_from_gtid";
+XA COMMIT 'x1';
+set @@SESSION.debug_dbug= "-d,negate_xid_from_gtid";
+include/save_master_gtid.inc
+# Waiting for slave to find invalid event..
+connection slave;
+include/wait_for_slave_sql_error.inc [errno=1594]
+STOP SLAVE IO_THREAD;
+# Cleanup hanging XA PREPARE on slave
+set statement SQL_LOG_BIN=0 for XA COMMIT 'x1';
+# Reset master binlogs (as there is an invalid event) and slave state
+connection master;
+RESET MASTER;
+connection slave;
+RESET MASTER;
+RESET SLAVE;
+set @@global.gtid_slave_pos="";
+include/start_slave.inc
+#
+# Test Missing xid.data (but has format id and length description parts)
+connection master;
+set @commit_id= 101;
+XA START 'x1';
+insert into t1 values (1);
+XA END 'x1';
+XA PREPARE 'x1';
+set @@SESSION.debug_dbug= "+d,negate_xid_data_from_gtid";
+XA COMMIT 'x1';
+set @@SESSION.debug_dbug= "-d,negate_xid_data_from_gtid";
+include/save_master_gtid.inc
+# Waiting for slave to find invalid event..
+connection slave;
+include/wait_for_slave_sql_error.inc [errno=1594]
+STOP SLAVE IO_THREAD;
+# Cleanup hanging XA PREPARE on slave
+set statement SQL_LOG_BIN=0 for XA COMMIT 'x1';
+# Reset master binlogs (as there is an invalid event) and slave state
+connection master;
+RESET MASTER;
+connection slave;
+RESET MASTER;
+RESET SLAVE;
+set @@global.gtid_slave_pos="";
+include/start_slave.inc
+#
+# Test FL_EXTRA_MULTI_ENGINE
+connection master;
+set @old_dbug= @@SESSION.debug_dbug;
+set @@SESSION.debug_dbug= "+d,inject_fl_extra_multi_engine_into_gtid";
+set @commit_id= 102;
+insert into t1 values (3);
+include/save_master_gtid.inc
+set @@SESSION.debug_dbug=@old_dbug;
+connection slave;
+# Waiting for slave to find invalid event..
+include/wait_for_slave_sql_error.inc [errno=1594]
+STOP SLAVE IO_THREAD;
+# Reset master binlogs (as there is an invalid event) and slave state
+connection master;
+RESET MASTER;
+connection slave;
+RESET SLAVE;
+RESET MASTER;
+set @@global.gtid_slave_pos="";
+include/start_slave.inc
+#
+# Test FL_COMMIT_ALTER
+connection master;
+set @old_dbug= @@SESSION.debug_dbug;
+set @@SESSION.debug_dbug= "+d,negate_alter_fl_from_gtid";
+set @old_alter_tp= @@SESSION.binlog_alter_two_phase;
+set @@SESSION.binlog_alter_two_phase= 1;
+alter table t1 add column (nc int);
+include/save_master_gtid.inc
+set @@SESSION.debug_dbug=@old_dbug;
+set @@SESSION.binlog_alter_two_phase=@old_alter_tp;
+connection slave;
+# Waiting for slave to find invalid event..
+include/wait_for_slave_sql_error.inc [errno=1594]
+STOP SLAVE IO_THREAD;
+# Reset master binlogs (as there is an invalid event) and slave state
+connection master;
+RESET MASTER;
+connection slave;
+SET STATEMENT sql_log_bin=0 FOR alter table t1 add column (nc int);
+RESET SLAVE;
+RESET MASTER;
+set @@global.gtid_slave_pos="";
+include/start_slave.inc
+#
+# Cleanup
+connection master;
+drop table t1;
+include/save_master_gtid.inc
+connection slave;
+include/sync_with_master_gtid.inc
+include/rpl_end.inc
+# End of rpl_gtid_header_valid.test
diff --git a/mysql-test/suite/rpl/r/rpl_gtid_mdev4820.result b/mysql-test/suite/rpl/r/rpl_gtid_mdev4820.result
index cea5aaae..665fc536 100644
--- a/mysql-test/suite/rpl/r/rpl_gtid_mdev4820.result
+++ b/mysql-test/suite/rpl/r/rpl_gtid_mdev4820.result
@@ -45,8 +45,6 @@ SET GLOBAL gtid_slave_pos= '0-2-10';
connection server_1;
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_2,
master_user= 'root', master_use_gtid=CURRENT_POS;
-Warnings:
-Warning 1681 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
START SLAVE;
connection server_2;
INSERT INTO t1 VALUES (11);
@@ -76,8 +74,6 @@ connection server_2;
INSERT INTO t1 VALUES (22);
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_1,
master_user= 'root', master_use_gtid=CURRENT_POS;
-Warnings:
-Warning 1681 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
START SLAVE;
SET sql_log_bin= 0;
CALL mtr.add_suppression("which is not in the master's binlog. Since the master's binlog contains GTIDs with higher sequence numbers, it probably means that the slave has diverged");
diff --git a/mysql-test/suite/rpl/r/rpl_gtid_stop_start.result b/mysql-test/suite/rpl/r/rpl_gtid_stop_start.result
index ae0050c3..e8633cd4 100644
--- a/mysql-test/suite/rpl/r/rpl_gtid_stop_start.result
+++ b/mysql-test/suite/rpl/r/rpl_gtid_stop_start.result
@@ -111,6 +111,10 @@ a
6
7
*** MDEV-4486: Allow to start old-style replication even if mysql.gtid_slave_pos is unavailable
+connection server_1;
+INSERT INTO t1 VALUES (8);
+DELETE FROM t1 WHERE a=8;
+connection server_2;
connection server_2;
include/stop_slave.inc
CHANGE MASTER TO master_use_gtid= no;
diff --git a/mysql-test/suite/rpl/r/rpl_heartbeat.result b/mysql-test/suite/rpl/r/rpl_heartbeat.result
index 2a578245..c9baf960 100644
--- a/mysql-test/suite/rpl/r/rpl_heartbeat.result
+++ b/mysql-test/suite/rpl/r/rpl_heartbeat.result
@@ -1,8 +1,9 @@
-connect master,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK;
-connect slave,localhost,root,,test,$SLAVE_MYPORT,$SLAVE_MYSOCK;
+include/master-slave.inc
+[connection master]
connection master;
reset master;
connection slave;
+include/stop_slave.inc
set @restore_slave_net_timeout= @@global.slave_net_timeout;
set @@global.slave_net_timeout= 10;
change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root';
@@ -68,5 +69,5 @@ connection master;
drop table t1;
connection slave;
set @@global.slave_net_timeout= @restore_slave_net_timeout;
-include/stop_slave.inc
+include/rpl_end.inc
End of tests
diff --git a/mysql-test/suite/rpl/r/rpl_heartbeat_debug.result b/mysql-test/suite/rpl/r/rpl_heartbeat_debug.result
index dc45c0b9..a89010cd 100644
--- a/mysql-test/suite/rpl/r/rpl_heartbeat_debug.result
+++ b/mysql-test/suite/rpl/r/rpl_heartbeat_debug.result
@@ -9,8 +9,6 @@ Variable_name Slave_heartbeat_period
Value 60.000
SET @saved_dbug= @@GLOBAL.debug_dbug;
SET GLOBAL debug_dbug="+d,simulate_slave_heartbeat_network_error";
-CALL mtr.add_suppression('SET @master_heartbeat_period to master failed with error');
-CALL mtr.add_suppression('Master command COM_REGISTER_SLAVE failed: failed registering on master, reconnecting to try again');
include/start_slave.inc
connection master;
drop table if exists t1;
diff --git a/mysql-test/suite/rpl/r/rpl_mark_optimize_tbl_ddl.result b/mysql-test/suite/rpl/r/rpl_mark_optimize_tbl_ddl.result
index 9aa31a73..09edd288 100644
--- a/mysql-test/suite/rpl/r/rpl_mark_optimize_tbl_ddl.result
+++ b/mysql-test/suite/rpl/r/rpl_mark_optimize_tbl_ddl.result
@@ -55,7 +55,6 @@ PARTITION pmax VALUES LESS THAN (MAXVALUE));
INSERT INTO t1 VALUES (1), (10), (100), (1000);
ALTER TABLE t1 ANALYZE PARTITION p0;
Table Op Msg_type Msg_text
-test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
ALTER TABLE t1 OPTIMIZE PARTITION p0;
Table Op Msg_type Msg_text
diff --git a/mysql-test/suite/rpl/r/rpl_mdev33798.result b/mysql-test/suite/rpl/r/rpl_mdev33798.result
new file mode 100644
index 00000000..8796e948
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_mdev33798.result
@@ -0,0 +1,143 @@
+include/rpl_init.inc [topology=1->2,1->3]
+connect server_2b,127.0.0.1,root,,,$SERVER_MYPORT_2;
+connection server_2;
+SET @old_parallel_threads=@@GLOBAL.slave_parallel_threads;
+SET @old_parallel_mode= @@GLOBAL.slave_parallel_mode;
+SET @old_timeout= @@GLOBAL.lock_wait_timeout;
+SET @old_innodb_timeout= @@GLOBAL.innodb_lock_wait_timeout;
+include/stop_slave.inc
+SET GLOBAL slave_parallel_threads=5;
+set global slave_parallel_mode= aggressive;
+SET GLOBAL lock_wait_timeout= 86400;
+SET GLOBAL innodb_lock_wait_timeout= 86400;
+SET STATEMENT sql_log_bin=0 FOR ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
+include/start_slave.inc
+connection server_1;
+CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1, 0), (2, 0), (3, 0), (4, 0), (5, 0), (6, 0), (7, 0), (8, 0);
+connection server_2;
+include/stop_slave.inc
+connection server_2b;
+BEGIN;
+SELECT * FROM t1 WHERE a=1 FOR UPDATE;
+a b
+1 0
+SELECT * FROM t1 WHERE a=5 FOR UPDATE;
+a b
+5 0
+connection server_1;
+SET SESSION gtid_domain_id= 1;
+BEGIN;
+UPDATE t1 SET b=1 WHERE a=1;
+UPDATE t1 SET b=1 WHERE a=7;
+COMMIT;
+UPDATE t1 SET b=2 WHERE a=3;
+SET SESSION gtid_domain_id=2;
+BEGIN;
+UPDATE t1 SET b=3 WHERE a=5;
+UPDATE t1 SET b=3 WHERE a=3;
+COMMIT;
+UPDATE t1 SET b=4 WHERE a=7;
+SET SESSION gtid_domain_id= 0;
+include/save_master_gtid.inc
+connection server_2;
+include/start_slave.inc
+connection server_2b;
+ROLLBACK;
+connection server_2;
+include/sync_with_master_gtid.inc
+SELECT a, (
+(a=1 AND b=1) OR
+(a=3 AND (b=2 OR b=3)) OR
+(a=5 AND b=3) OR
+(a=7 AND (b=1 OR b=4)) OR
+((a MOD 2)=0 AND b=0)) AS `ok`
+ FROM t1
+ORDER BY a;
+a ok
+1 1
+2 1
+3 1
+4 1
+5 1
+6 1
+7 1
+8 1
+connection server_3;
+include/sync_with_master_gtid.inc
+include/stop_slave.inc
+connection server_2;
+include/stop_slave.inc
+CHANGE MASTER 'm2' to master_port=MYPORT_3 , master_host='127.0.0.1', master_user='root', master_use_gtid=slave_pos;
+connection server_1;
+SET SESSION gtid_domain_id= 1;
+BEGIN;
+UPDATE t1 SET b=11 WHERE a=1;
+UPDATE t1 SET b=11 WHERE a=7;
+COMMIT;
+UPDATE t1 SET b=12 WHERE a=3;
+SET SESSION gtid_domain_id= 1;
+connection server_3;
+SET SESSION gtid_domain_id=3;
+BEGIN;
+UPDATE t1 SET b=13 WHERE a=5;
+UPDATE t1 SET b=13 WHERE a=3;
+COMMIT;
+UPDATE t1 SET b=14 WHERE a=7;
+include/save_master_gtid.inc
+connection server_2b;
+BEGIN;
+SELECT * FROM t1 WHERE a=1 FOR UPDATE;
+a b
+1 1
+SELECT * FROM t1 WHERE a=5 FOR UPDATE;
+a b
+5 3
+START ALL SLAVES;
+Warnings:
+Note 1937 SLAVE 'm2' started
+Note 1937 SLAVE '' started
+connection server_2b;
+ROLLBACK;
+connection server_1;
+include/save_master_gtid.inc
+connection server_2;
+include/sync_with_master_gtid.inc
+connection server_3;
+include/save_master_gtid.inc
+connection server_2;
+include/sync_with_master_gtid.inc
+SELECT a, (
+(a=1 AND b=11) OR
+(a=3 AND (b=12 OR b=13)) OR
+(a=5 AND b=13) OR
+(a=7 AND (b=11 OR b=14)) OR
+((a MOD 2)=0 AND b=0)) AS `ok`
+ FROM t1
+ORDER BY a;
+a ok
+1 1
+2 1
+3 1
+4 1
+5 1
+6 1
+7 1
+8 1
+SET default_master_connection = 'm2';
+include/stop_slave.inc
+RESET SLAVE 'm2' ALL;
+SET default_master_connection = '';
+connection server_3;
+include/start_slave.inc
+disconnect server_2b;
+connection server_1;
+DROP TABLE t1;
+connection server_2;
+include/stop_slave.inc
+SET GLOBAL slave_parallel_threads=@old_parallel_threads;
+set global slave_parallel_mode= @old_parallel_mode;
+SET GLOBAL lock_wait_timeout= @old_timeout;
+SET GLOBAL innodb_lock_wait_timeout= @old_innodb_timeout;
+include/start_slave.inc
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_mysql_manager_race_condition.result b/mysql-test/suite/rpl/r/rpl_mysql_manager_race_condition.result
index 1172d8e3..740d1ddf 100644
--- a/mysql-test/suite/rpl/r/rpl_mysql_manager_race_condition.result
+++ b/mysql-test/suite/rpl/r/rpl_mysql_manager_race_condition.result
@@ -17,6 +17,36 @@ include/sync_with_master_gtid.inc
include/rpl_restart_server.inc [server_number=2 parameters: --debug_dbug="+d,delay_start_handle_manager"]
include/start_slave.inc
#
+# MDEV-33799
+# Ensure that when the binary log is used for recovery (as tc log), that
+# the recovery process cannot start the binlog background thread before
+# the mysql handle manager has started.
+connection slave;
+# Add test suppresssions so crash recovery messages don't fail the test
+set session sql_log_bin=0;
+call mtr.add_suppression("mariadbd: Got error '145.*");
+call mtr.add_suppression("Checking table:.*");
+call mtr.add_suppression("mysql.gtid_slave_pos:.*hasn't closed the table properly");
+call mtr.add_suppression("Can't init tc log");
+call mtr.add_suppression("Aborting");
+set session sql_log_bin=1;
+# Create slave-side only table
+create table t2 (a int) engine=innodb;
+# Crash mariadbd when binlogging transaction to corrupt database state
+connection slave1;
+set @@session.debug_dbug="+d,crash_before_writing_xid";
+insert into t2 values (1);
+connection slave;
+connection slave1;
+Got one of the listed errors
+# Restart mariadbd in recovery mode. Note --tc-heuristic-recover
+# forces mysqld to exit with error, so we run mariadbd via CLI
+# MYSQLD_LAST_CMD --debug_dbug="+d,delay_start_handle_manager" --tc-heuristic-recover=COMMIT
+connection server_2;
+connection slave1;
+connection slave;
+include/start_slave.inc
+#
# Cleanup
#
connection master;
@@ -24,4 +54,5 @@ drop table t1;
include/save_master_gtid.inc
connection slave;
include/sync_with_master_gtid.inc
+drop table t2;
include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_packet.result b/mysql-test/suite/rpl/r/rpl_packet.result
index 4a2a5d70..bb626960 100644
--- a/mysql-test/suite/rpl/r/rpl_packet.result
+++ b/mysql-test/suite/rpl/r/rpl_packet.result
@@ -2,6 +2,8 @@ include/master-slave.inc
[connection master]
call mtr.add_suppression("Slave I/O: Got a packet bigger than 'slave_max_allowed_packet' bytes, .*error.* 1153");
call mtr.add_suppression("Log entry on master is longer than slave_max_allowed_packet");
+call mtr.add_suppression("Could not write packet:");
+call mtr.add_suppression("Got a packet bigger than 'max_allowed_packet' bytes");
drop database if exists DB_NAME_OF_MAX_LENGTH_AKA_NAME_LEN_64_BYTES_____________________;
create database DB_NAME_OF_MAX_LENGTH_AKA_NAME_LEN_64_BYTES_____________________;
connection master;
diff --git a/mysql-test/suite/rpl/r/rpl_parallel_multi_domain_xa.result b/mysql-test/suite/rpl/r/rpl_parallel_multi_domain_xa.result
new file mode 100644
index 00000000..1993d098
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_parallel_multi_domain_xa.result
@@ -0,0 +1,58 @@
+include/master-slave.inc
+[connection master]
+call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction");
+call mtr.add_suppression("WSREP: handlerton rollback failed");
+connection master;
+ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
+connection slave;
+include/stop_slave.inc
+SET @old_transaction_retries = @@GLOBAL.slave_transaction_retries;
+SET @@global.slave_transaction_retries = 1000;
+SET @old_parallel_threads = @@GLOBAL.slave_parallel_threads;
+SET @old_slave_domain_parallel_threads = @@GLOBAL.slave_domain_parallel_threads;
+SET @@global.slave_parallel_threads = 5;
+SET @@global.slave_domain_parallel_threads = 3;
+SET @old_parallel_mode = @@GLOBAL.slave_parallel_mode;
+CHANGE MASTER TO master_use_gtid=slave_pos;
+connection master;
+CREATE TABLE t1 (a int PRIMARY KEY, b INT) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1, 0);
+include/save_master_gtid.inc
+connection slave;
+include/start_slave.inc
+include/sync_with_master_gtid.inc
+include/stop_slave.inc
+SET @@global.slave_parallel_mode ='optimistic';
+connection master;
+include/save_master_gtid.inc
+connection slave;
+include/start_slave.inc
+include/sync_with_master_gtid.inc
+include/stop_slave.inc
+connection master;
+include/save_master_gtid.inc
+connection slave;
+SET @@global.slave_parallel_mode ='conservative';
+include/start_slave.inc
+include/sync_with_master_gtid.inc
+include/stop_slave.inc
+include/save_master_gtid.inc
+connection slave;
+SET @@global.slave_parallel_mode = 'optimistic';
+include/start_slave.inc
+include/sync_with_master_gtid.inc
+include/diff_tables.inc [master:t1, slave:t1]
+connection slave;
+include/stop_slave.inc
+SET @@global.slave_parallel_mode = @old_parallel_mode;
+SET @@global.slave_parallel_threads = @old_parallel_threads;
+SET @@global.slave_domain_parallel_threads = @old_slave_domain_parallel_threads;
+SET @@global.slave_transaction_retries = @old_transaction_retries;
+include/start_slave.inc
+connection master;
+DROP TABLE t1;
+include/save_master_gtid.inc
+connection slave;
+include/sync_with_master_gtid.inc
+connection master;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_parallel_optimistic.result b/mysql-test/suite/rpl/r/rpl_parallel_optimistic.result
index eff93951..0b317c46 100644
--- a/mysql-test/suite/rpl/r/rpl_parallel_optimistic.result
+++ b/mysql-test/suite/rpl/r/rpl_parallel_optimistic.result
@@ -626,6 +626,7 @@ include/save_master_gtid.inc
connection server_2;
include/sync_with_master_gtid.inc
connection server_2;
+SET @org_log_warnings=@@GLOBAL.LOG_WARNINGS;
set global log_warnings=2;
BEGIN;
INSERT INTO t1 SET a=1;
@@ -651,7 +652,7 @@ connection server_2;
include/sync_with_master_gtid.inc
connection server_2;
include/stop_slave.inc
-set global log_warnings=default;
+set global log_warnings=@org_log_warnings;
SET GLOBAL slave_parallel_mode=@old_parallel_mode;
SET GLOBAL slave_parallel_threads=@old_parallel_threads;
include/start_slave.inc
diff --git a/mysql-test/suite/rpl/r/rpl_parallel_optimistic_xa.result b/mysql-test/suite/rpl/r/rpl_parallel_optimistic_xa.result
index 4136f188..90c3e5db 100644
--- a/mysql-test/suite/rpl/r/rpl_parallel_optimistic_xa.result
+++ b/mysql-test/suite/rpl/r/rpl_parallel_optimistic_xa.result
@@ -32,7 +32,6 @@ include/diff_tables.inc [master:t0, slave:t0]
include/diff_tables.inc [master:t1, slave:t1]
connection slave;
include/stop_slave.inc
-set global log_warnings=default;
SET GLOBAL slave_parallel_mode=@old_parallel_mode;
SET GLOBAL slave_parallel_threads=@old_parallel_threads;
include/start_slave.inc
diff --git a/mysql-test/suite/rpl/r/rpl_parallel_optimistic_xa_lsu_off.result b/mysql-test/suite/rpl/r/rpl_parallel_optimistic_xa_lsu_off.result
index 4136f188..90c3e5db 100644
--- a/mysql-test/suite/rpl/r/rpl_parallel_optimistic_xa_lsu_off.result
+++ b/mysql-test/suite/rpl/r/rpl_parallel_optimistic_xa_lsu_off.result
@@ -32,7 +32,6 @@ include/diff_tables.inc [master:t0, slave:t0]
include/diff_tables.inc [master:t1, slave:t1]
connection slave;
include/stop_slave.inc
-set global log_warnings=default;
SET GLOBAL slave_parallel_mode=@old_parallel_mode;
SET GLOBAL slave_parallel_threads=@old_parallel_threads;
include/start_slave.inc
diff --git a/mysql-test/suite/rpl/r/rpl_parallel_retry.result b/mysql-test/suite/rpl/r/rpl_parallel_retry.result
index 2cc4044a..4c7effd7 100644
--- a/mysql-test/suite/rpl/r/rpl_parallel_retry.result
+++ b/mysql-test/suite/rpl/r/rpl_parallel_retry.result
@@ -339,6 +339,28 @@ connection server_1;
DROP TABLE t1, t2, t3, t4;
DROP function foo;
connection server_2;
+connection server_2;
+include/stop_slave.inc
+SET @old_parallel_threads=@@GLOBAL.slave_parallel_threads;
+SET GLOBAL slave_parallel_threads=4;
+connection server_1;
+CREATE TABLE t1 (a INT, b VARCHAR(123)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES(1, 'asdf');
+UPDATE t1 SET b='zxf1' WHERE a=1;
+UPDATE t1 SET b='\n' WHERE a=1;
+connection server_2;
+SET @old_dbug=@@GLOBAL.debug_dbug;
+SET GLOBAL debug_dbug="+d,write_row_inject_sleep_before_ha_write_row";
+include/start_slave.inc
+connection server_1;
+connection server_2;
+connection server_1;
+DROP TABLE t1;
+connection server_2;
+include/stop_slave.inc
+SET GLOBAL debug_dbug=@old_dbug;
+SET GLOBAL slave_parallel_threads=@old_parallel_threads;
+include/start_slave.inc
connection server_1;
CREATE TABLE t1 (a int PRIMARY KEY, b INT) ENGINE=InnoDB;
INSERT INTO t1 VALUES(100, 100);
diff --git a/mysql-test/suite/rpl/r/rpl_parallel_sbm.result b/mysql-test/suite/rpl/r/rpl_parallel_sbm.result
index 7990a663..75012c93 100644
--- a/mysql-test/suite/rpl/r/rpl_parallel_sbm.result
+++ b/mysql-test/suite/rpl/r/rpl_parallel_sbm.result
@@ -27,12 +27,19 @@ connection slave;
# delaying a transaction; then when the reciprocal START SLAVE occurs,
# if the event is still to be delayed, SBM should resume accordingly
include/stop_slave.inc
+# Lock t1 on slave to ensure the event can't finish (and thereby update
+# Seconds_Behind_Master) so slow running servers don't accidentally
+# catch up to the master before checking SBM.
+connection server_2;
+LOCK TABLES t1 WRITE;
include/start_slave.inc
connection slave;
-# Waiting for replica to resume the delay for the transaction
+# Waiting for replica to get blocked by the table lock
# Sleeping 1s to increment SBM
# Ensuring Seconds_Behind_Master increases after sleeping..
# ..done
+connection server_2;
+UNLOCK TABLES;
include/sync_with_master_gtid.inc
#
# Pt 2) If the worker threads have not entered an idle state, ensure
diff --git a/mysql-test/suite/rpl/r/rpl_parallel_seq.result b/mysql-test/suite/rpl/r/rpl_parallel_seq.result
index 8f55f52e..02287d54 100644
--- a/mysql-test/suite/rpl/r/rpl_parallel_seq.result
+++ b/mysql-test/suite/rpl/r/rpl_parallel_seq.result
@@ -127,4 +127,14 @@ CREATE SEQUENCE s4;
DROP SEQUENCE s2,s3,s4;
DROP TABLE ti;
connection slave;
+connection master;
+CREATE SEQUENCE s;
+SELECT NEXTVAL(s);
+NEXTVAL(s)
+1
+flush binary logs;
+DROP SEQUENCE s;
+DROP SEQUENCE s;
+connection slave;
+connection master;
include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_parallel_slave_bgc_kill.result b/mysql-test/suite/rpl/r/rpl_parallel_slave_bgc_kill.result
index ba131ea0..6b75dbf6 100644
--- a/mysql-test/suite/rpl/r/rpl_parallel_slave_bgc_kill.result
+++ b/mysql-test/suite/rpl/r/rpl_parallel_slave_bgc_kill.result
@@ -206,10 +206,12 @@ RETURN x;
END
||
SET sql_log_bin=1;
+include/stop_slave_io.inc
connection server_1;
INSERT INTO t3 VALUES (49,0);
connection server_2;
-START SLAVE SQL_THREAD;
+CHANGE MASTER TO master_use_gtid=no;
+include/start_slave.inc
SELECT * FROM t3 WHERE a >= 40 ORDER BY a;
a b
41 41
@@ -239,10 +241,6 @@ SET GLOBAL slave_parallel_threads=0;
SET GLOBAL slave_parallel_threads=10;
include/start_slave.inc
*** 3. Same as (2), but not using gtid mode ***
-connection server_2;
-include/stop_slave.inc
-CHANGE MASTER TO master_use_gtid=no;
-include/start_slave.inc
connection server_1;
connection con_temp3;
SET debug_sync='commit_after_release_LOCK_prepare_ordered SIGNAL master_queued1 WAIT_FOR master_cont1';
diff --git a/mysql-test/suite/rpl/r/rpl_parallel_stop_slave.result b/mysql-test/suite/rpl/r/rpl_parallel_stop_slave.result
index 0c810d2a..b0a4fa59 100644
--- a/mysql-test/suite/rpl/r/rpl_parallel_stop_slave.result
+++ b/mysql-test/suite/rpl/r/rpl_parallel_stop_slave.result
@@ -37,7 +37,9 @@ connection con_temp1;
BEGIN;
INSERT INTO t2 VALUES (21);
connection server_2;
-START SLAVE;
+START SLAVE IO_THREAD;
+include/wait_for_slave_param.inc [Read_Master_Log_Pos]
+START SLAVE SQL_THREAD;
connection con_temp2;
SET @old_dbug= @@GLOBAL.debug_dbug;
SET GLOBAL debug_dbug="+d,rpl_parallel_wait_for_done_trigger";
diff --git a/mysql-test/suite/rpl/r/rpl_parallel_temptable.result b/mysql-test/suite/rpl/r/rpl_parallel_temptable.result
index e9bff03b..0f7af253 100644
--- a/mysql-test/suite/rpl/r/rpl_parallel_temptable.result
+++ b/mysql-test/suite/rpl/r/rpl_parallel_temptable.result
@@ -202,6 +202,24 @@ a b
include/stop_slave.inc
SET GLOBAL slave_parallel_mode=@old_mode;
include/start_slave.inc
+*** MDEV33426: Memory allocation accounting incorrect for replicated temptable
+connection server_1;
+CREATE TEMPORARY TABLE t5 (a int) ENGINE=Aria;
+CREATE TEMPORARY TABLE t6 (a int) ENGINE=Heap;
+INSERT INTO t5 VALUES (1);
+INSERT INTO t6 VALUES (2);
+connection server_2;
+include/stop_slave.inc
+connection server_1;
+INSERT INTO t1 SELECT a+40, 5 FROM t5;
+INSERT INTO t1 SELECT a+40, 6 FROM t6;
+DROP TABLE t5, t6;
+connection server_2;
+include/start_slave.inc
+SELECT * FROM t1 WHERE a>=40 ORDER BY a;
+a b
+41 5
+42 6
connection server_2;
include/stop_slave.inc
SET GLOBAL slave_parallel_threads=@old_parallel_threads;
diff --git a/mysql-test/suite/rpl/r/rpl_perfschema_connect_config.result b/mysql-test/suite/rpl/r/rpl_perfschema_connect_config.result
index 27cb29d3..4ace84ff 100644
--- a/mysql-test/suite/rpl/r/rpl_perfschema_connect_config.result
+++ b/mysql-test/suite/rpl/r/rpl_perfschema_connect_config.result
@@ -87,8 +87,6 @@ include/assert.inc [Value returned by SSS and PS table for Using_Gtid should be
change master to
master_user = 'root',
master_use_gtid= CURRENT_POS;
-Warnings:
-Warning #### 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
include/assert.inc [Value returned by SSS and PS table for Using_Gtid should be same.]
# 3) Test for Auto_position= SLAVE_POS
diff --git a/mysql-test/suite/rpl/r/rpl_rewrite_db_sys_vars.result b/mysql-test/suite/rpl/r/rpl_rewrite_db_sys_vars.result
index 5720f647..1734b200 100644
--- a/mysql-test/suite/rpl/r/rpl_rewrite_db_sys_vars.result
+++ b/mysql-test/suite/rpl/r/rpl_rewrite_db_sys_vars.result
@@ -12,11 +12,9 @@ select @@session.server_id;
create database replica_db1;
create database y;
create database test_replica;
-SELECT @@GLOBAL.replicate_rewrite_db;
-@@GLOBAL.replicate_rewrite_db
-primary_db1->replica_db1,x->y
-# Ensuring SHOW SLAVE STATUS produces correct value for Replicate_Rewrite_DB...
-# ...success
+SELECT @@GLOBAL.replicate_rewrite_db, 'primary_db1->replica_db1,x->y' as 'Replicate_Rewrite_DB from SHOW SLAVE STATUS';
+@@GLOBAL.replicate_rewrite_db Replicate_Rewrite_DB from SHOW SLAVE STATUS
+primary_db1->replica_db1,x->y primary_db1->replica_db1,x->y
# Create DBs and tables on primary
connection master;
create database primary_db1;
@@ -60,15 +58,13 @@ SELECT @@GLOBAL.replicate_rewrite_db;
@@GLOBAL.replicate_rewrite_db
primary_db1->replica_db1,x->y
SET @@GLOBAL.replicate_rewrite_db="test_master->test_replica";
-SELECT @@GLOBAL.replicate_rewrite_db;
-@@GLOBAL.replicate_rewrite_db
-test_master->test_replica
SHOW DATABASES like 'test_replica';
Database (test_replica)
test_replica
include/start_slave.inc
-# Ensuring SHOW SLAVE STATUS produces correct value for Replicate_Rewrite_DB...
-# ...success
+SELECT @@GLOBAL.replicate_rewrite_db, 'test_master->test_replica' as 'Replicate_Rewrite_DB from SHOW SLAVE STATUS';
+@@GLOBAL.replicate_rewrite_db Replicate_Rewrite_DB from SHOW SLAVE STATUS
+test_master->test_replica test_master->test_replica
# Create DB and tables on primary
connection master;
create database test_master;
@@ -94,6 +90,8 @@ t
3
include/diff_tables.inc [master:test_master.my_table,slave:test_replica.my_table]
# Update of values on primary for DB not set in replication_rewrite_db
+include/stop_slave.inc
+include/reset_slave.inc
connection master;
use x;
insert into my_table values (314);
@@ -104,8 +102,6 @@ t
314
include/save_master_gtid.inc
connection slave;
-include/stop_slave.inc
-include/reset_slave.inc
include/start_slave.inc
SELECT @@GLOBAL.replicate_rewrite_db;
@@GLOBAL.replicate_rewrite_db
diff --git a/mysql-test/suite/rpl/r/rpl_row_find_row_debug.result b/mysql-test/suite/rpl/r/rpl_row_find_row_debug.result
index f1a0059a..c2bb256a 100644
--- a/mysql-test/suite/rpl/r/rpl_row_find_row_debug.result
+++ b/mysql-test/suite/rpl/r/rpl_row_find_row_debug.result
@@ -20,6 +20,5 @@ FOUND 1 /The slave is applying a ROW event on behalf of an UPDATE statement on t
FOUND 1 /The slave is applying a ROW event on behalf of a DELETE statement on table t1 and is currently taking a considerable amount/ in mysqld.2.err
include/stop_slave.inc
SET @@GLOBAL.debug_dbug = @saved_dbug;
-SET GLOBAL log_warnings = 2;
include/start_slave.inc
include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_semi_sync_cond_var_per_thd.result b/mysql-test/suite/rpl/r/rpl_semi_sync_cond_var_per_thd.result
new file mode 100644
index 00000000..08f60144
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_semi_sync_cond_var_per_thd.result
@@ -0,0 +1,32 @@
+include/master-slave.inc
+[connection master]
+connection master;
+call mtr.add_suppression("Got an error reading communication packets");
+set @save_bgc_count= @@global.binlog_commit_wait_count;
+set @save_bgc_usec= @@global.binlog_commit_wait_usec;
+set @save_debug_dbug= @@global.debug_dbug;
+set @@global.binlog_commit_wait_count=3;
+set @@global.binlog_commit_wait_usec=10000000;
+set @@global.debug_dbug="+d,testing_cond_var_per_thd";
+# Ensure semi-sync is on
+connection slave;
+connection master;
+# Create three transactions to binlog group commit together
+connection master;
+create table t1 (a int);
+connection server_1;
+create table t2 (a int);
+connection default;
+create table t3 (a int);
+connection master;
+connection server_1;
+connection default;
+include/assert_grep.inc [Check that there is no 'Thread awaiting semi-sync ACK was awoken before its ACK' warning in error log.]
+#
+# Cleanup
+connection master;
+set @@global.binlog_commit_wait_count=@save_bgc_count;
+set @@global.binlog_commit_wait_usec=@save_bgc_usec;
+set @@global.debug_dbug=@save_debug_dbug;
+drop table t1, t2, t3;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_semi_sync_fail_over.result b/mysql-test/suite/rpl/r/rpl_semi_sync_fail_over.result
index 1c94c239..49fdb485 100644
--- a/mysql-test/suite/rpl/r/rpl_semi_sync_fail_over.result
+++ b/mysql-test/suite/rpl/r/rpl_semi_sync_fail_over.result
@@ -44,13 +44,19 @@ SET DEBUG_SYNC= "now WAIT_FOR con1_ready";
connection server_2;
include/wait_for_slave_param.inc [Slave_SQL_Running_State]
include/stop_slave.inc
-include/assert.inc [Table t1 should have 2 rows.]
+select count(*) 'on slave must be 2' from t1;
+on slave must be 2
+2
SELECT @@GLOBAL.gtid_current_pos;
@@GLOBAL.gtid_current_pos
0-1-4
# restart: --skip-slave-start=1 --rpl-semi-sync-slave-enabled=1
connection server_1;
-include/assert.inc [Table t1 should have 1 rows.]
+# Ensuring variable rpl_semi_sync_slave_enabled is ON..
+# Ensuring status rpl_semi_sync_slave_status is OFF..
+select count(*) 'on master must be 1' from t1;
+on master must be 1
+1
FOUND 1 /truncated binlog file:.*master.*000001/ in mysqld.1.err
disconnect conn_client;
connection server_2;
@@ -77,9 +83,9 @@ SHOW VARIABLES LIKE 'gtid_slave_pos';
Variable_name Value
gtid_slave_pos 0-1-4
connection server_1;
-SELECT COUNT(*) = 3 as 'true' FROM t1;
-true
-1
+SELECT COUNT(*) 'must be 3' FROM t1;
+must be 3
+3
# ... the gtid states on the slave:
SHOW VARIABLES LIKE 'gtid_slave_pos';
Variable_name Value
@@ -111,24 +117,32 @@ connection server_2;
#=================================================================
connect conn_client,127.0.0.1,root,,test,$SERVER_MYPORT_2,;
SET DEBUG_SYNC= "commit_before_get_LOCK_commit_ordered SIGNAL con1_ready WAIT_FOR con1_go";
+SET DEBUG_SYNC= "commit_after_release_LOCK_after_binlog_sync WAIT_FOR con1_go1";
SET STATEMENT server_id=1 FOR INSERT INTO t1 VALUES (4, REPEAT("x", 4100));
connect conn_client_2,127.0.0.1,root,,test,$SERVER_MYPORT_2,;
SET DEBUG_SYNC= "now WAIT_FOR con1_ready";
-SET GLOBAL debug_dbug="d,Notify_binlog_EOF";
+SET DEBUG_SYNC= "commit_before_get_LOCK_after_binlog_sync SIGNAL con1_go";
+SET DEBUG_SYNC= "commit_before_get_LOCK_commit_ordered SIGNAL con2_ready";
INSERT INTO t1 VALUES (5, REPEAT("x", 4100));
connection server_2;
-SET DEBUG_SYNC= "now WAIT_FOR eof_reached";
+SET DEBUG_SYNC= "now WAIT_FOR con2_ready";
# Kill the server
connection server_1;
include/wait_for_slave_param.inc [Slave_SQL_Running_State]
include/stop_slave.inc
-include/assert.inc [Table t1 should have 5 rows.]
+select count(*) 'on slave must be 5' from t1;
+on slave must be 5
+5
SELECT @@GLOBAL.gtid_current_pos;
@@GLOBAL.gtid_current_pos
0-2-7
# restart: --skip-slave-start=1 --rpl-semi-sync-slave-enabled=1
connection server_2;
-include/assert.inc [Table t1 should have 3 rows.]
+# Ensuring variable rpl_semi_sync_slave_enabled is ON..
+# Ensuring status rpl_semi_sync_slave_status is OFF..
+select count(*) 'on master must be 3' from t1;
+on master must be 3
+3
FOUND 1 /truncated binlog file:.*slave.*000002.* to remove transactions starting from GTID 0-1-6/ in mysqld.2.err
disconnect conn_client;
connection server_1;
@@ -155,9 +169,9 @@ SHOW VARIABLES LIKE 'gtid_slave_pos';
Variable_name Value
gtid_slave_pos 0-2-7
connection server_2;
-SELECT COUNT(*) = 6 as 'true' FROM t1;
-true
-1
+SELECT COUNT(*) 'must be 6 as' FROM t1;
+must be 6 as
+6
# ... the gtid states on the slave:
SHOW VARIABLES LIKE 'gtid_slave_pos';
Variable_name Value
@@ -201,13 +215,19 @@ SET DEBUG_SYNC= "now WAIT_FOR con3_ready";
connection server_2;
include/wait_for_slave_param.inc [Slave_SQL_Running_State]
include/stop_slave.inc
-include/assert.inc [Table t1 should have 7 rows.]
+select count(*) 'on slave must be 7' from t1;
+on slave must be 7
+7
SELECT @@GLOBAL.gtid_current_pos;
@@GLOBAL.gtid_current_pos
0-1-9
# restart: --skip-slave-start=1 --rpl-semi-sync-slave-enabled=1
connection server_1;
-include/assert.inc [Table t1 should have 6 rows.]
+# Ensuring variable rpl_semi_sync_slave_enabled is ON..
+# Ensuring status rpl_semi_sync_slave_status is OFF..
+select count(*) 'on master must be 6' from t1;
+on master must be 6
+6
FOUND 1 /truncated binlog file:.*master.*000002.* to remove transactions starting from GTID 0-1-9/ in mysqld.1.err
disconnect conn_client;
connection server_2;
@@ -236,9 +256,9 @@ Variable_name Value
gtid_slave_pos 0-1-9
connection server_1;
include/sync_with_master_gtid.inc
-SELECT COUNT(*) = 8 as 'true' FROM t1;
-true
-1
+SELECT COUNT(*) 'must be 8' FROM t1;
+must be 8
+8
# ... the gtid states on the slave:
SHOW VARIABLES LIKE 'gtid_slave_pos';
Variable_name Value
diff --git a/mysql-test/suite/rpl/r/rpl_semi_sync_master_shutdown.result b/mysql-test/suite/rpl/r/rpl_semi_sync_master_shutdown.result
index 6124ba01..8803b4c3 100644
--- a/mysql-test/suite/rpl/r/rpl_semi_sync_master_shutdown.result
+++ b/mysql-test/suite/rpl/r/rpl_semi_sync_master_shutdown.result
@@ -4,7 +4,7 @@ connection master;
SET @@GLOBAL.rpl_semi_sync_master_enabled = 1;
connection slave;
include/stop_slave.inc
-SET @@GLOBAL. rpl_semi_sync_slave_enabled = 1;
+SET @@GLOBAL.rpl_semi_sync_slave_enabled = 1;
include/start_slave.inc
connection master;
CREATE TABLE t1 (a INT);
@@ -21,7 +21,6 @@ connection slave;
include/wait_for_slave_sql_to_start.inc
include/wait_for_slave_io_to_start.inc
connection master;
-SET @@GLOBAL.debug_dbug="";
SET @@GLOBAL. rpl_semi_sync_master_enabled = 0;
connection master;
DROP TABLE t1;
diff --git a/mysql-test/suite/rpl/r/rpl_semi_sync_shutdown_await_ack.result b/mysql-test/suite/rpl/r/rpl_semi_sync_shutdown_await_ack.result
index 394a7aca..3048b6b5 100644
--- a/mysql-test/suite/rpl/r/rpl_semi_sync_shutdown_await_ack.result
+++ b/mysql-test/suite/rpl/r/rpl_semi_sync_shutdown_await_ack.result
@@ -15,13 +15,17 @@ call mtr.add_suppression("reply failed");
call mtr.add_suppression("Replication event checksum verification");
call mtr.add_suppression("Relay log write failure");
call mtr.add_suppression("Failed to kill the active semi-sync connection");
+set @sav_enabled_server_2= @@GLOBAL.rpl_semi_sync_slave_enabled;
+set @sav_server_2_dbug= @@GLOBAL.debug_dbug;
connection server_3;
call mtr.add_suppression("reply failed");
call mtr.add_suppression("Replication event checksum verification");
call mtr.add_suppression("Relay log write failure");
call mtr.add_suppression("Failed to kill the active semi-sync connection");
+set @sav_enabled_server_3= @@GLOBAL.rpl_semi_sync_slave_enabled;
+set @sav_server_3_dbug= @@GLOBAL.debug_dbug;
connection server_1;
-CREATE TABLE t1 (a int);
+CREATE TABLE t1 (a int) engine=innodb;
connection server_2;
connection server_3;
connect server_1_con2, localhost, root,,;
@@ -30,8 +34,8 @@ connect server_1_con2, localhost, root,,;
#############################
#
# Test Case 1) If both replicas simulate a delay that is within the
-# allowed timeout, the primary should delay killing the suspended thread
-# until an ACK is received (Rpl_semi_sync_master_yes_tx should be 1).
+# allowed timeout, the primary should delay killing the Ack_thread
+# until an ACK is received.
#
connection server_1;
#--
@@ -40,15 +44,15 @@ connection server_1;
#-- Enable semi-sync on slaves
let slave_last= 3
connection server_2;
-set global rpl_semi_sync_slave_enabled = 1;
include/stop_slave.inc
+set global rpl_semi_sync_slave_enabled = 1;
include/start_slave.inc
show status like 'Rpl_semi_sync_slave_status';
Variable_name Value
Rpl_semi_sync_slave_status ON
connection server_3;
-set global rpl_semi_sync_slave_enabled = 1;
include/stop_slave.inc
+set global rpl_semi_sync_slave_enabled = 1;
include/start_slave.inc
show status like 'Rpl_semi_sync_slave_status';
Variable_name Value
@@ -67,35 +71,22 @@ show status like 'Rpl_semi_sync_master_clients';
Variable_name Value
Rpl_semi_sync_master_clients 2
#-- Prepare servers to simulate delay or error
-connection server_1;
-SET @@GLOBAL.debug_dbug= "";
connection server_2;
SET @@GLOBAL.debug_dbug= "+d,simulate_delay_semisync_slave_reply";
connection server_3;
SET @@GLOBAL.debug_dbug= "+d,simulate_delay_semisync_slave_reply";
#--
#-- Test begins
+connection server_1_con2;
connection server_1;
#-- Begin semi-sync transaction
INSERT INTO t1 VALUES (1);
connection server_1_con2;
#-- Wait until master recognizes a connection is awaiting semi-sync ACK
-show status like 'Rpl_semi_sync_master_wait_sessions';
-Variable_name Value
-Rpl_semi_sync_master_wait_sessions 1
-#-- Give enough time after timeout/ack received to query yes_tx/no_tx
-SET @@GLOBAL.debug_dbug= "+d,delay_shutdown_phase_2_after_semisync_wait";
#-- Begin master shutdown
SHUTDOWN WAIT FOR ALL SLAVES;
connection server_1;
-#-- Ensure either ACK was received (yes_tx=1) or timeout (no_tx=1)
-show status like 'Rpl_semi_sync_master_yes_tx';
-Variable_name Value
-Rpl_semi_sync_master_yes_tx 1
-show status like 'Rpl_semi_sync_master_no_tx';
-Variable_name Value
-Rpl_semi_sync_master_no_tx 0
-connection server_1_con2;
+ERROR HY000: Lost connection to server during query
# Check logs to ensure shutdown was delayed
FOUND 1 /Delaying shutdown to await semi-sync ACK/ in mysqld.1.err
# Validate slave data is in correct state
@@ -111,22 +102,19 @@ count(*)=1
#-- Re-synchronize slaves with master and disable semi-sync
#-- Stop slaves
connection server_2;
-SET @@GLOBAL.debug_dbug= "";
-SET @@GLOBAL.rpl_semi_sync_slave_enabled= 0;
-include/stop_slave.inc
+include/stop_slave_io.inc
+include/stop_slave_sql.inc
+SET @@GLOBAL.debug_dbug= @sav_server_2_dbug;
+SET @@GLOBAL.rpl_semi_sync_slave_enabled= @sav_enabled_server_2;
connection server_3;
-SET @@GLOBAL.debug_dbug= "";
-SET @@GLOBAL.rpl_semi_sync_slave_enabled= 0;
-include/stop_slave.inc
+include/stop_slave_io.inc
+include/stop_slave_sql.inc
+SET @@GLOBAL.debug_dbug= @sav_server_3_dbug;
+SET @@GLOBAL.rpl_semi_sync_slave_enabled= @sav_enabled_server_3;
#-- Bring the master back up
connection server_1_con2;
connection default;
connection server_1;
-SET @@GLOBAL.debug_dbug= "";
-SET @@GLOBAL.rpl_semi_sync_master_enabled = 0;
-show status like 'Rpl_semi_sync_master_status';
-Variable_name Value
-Rpl_semi_sync_master_status OFF
TRUNCATE TABLE t1;
#-- Bring slaves back up
connection server_2;
@@ -147,8 +135,8 @@ COUNT(*)=0
1
#
# Test Case 2) If both replicas simulate an error before sending an ACK,
-# the primary should delay killing the suspended thread until the
-# timeout is reached (Rpl_semi_sync_master_no_tx should be 1).
+# the primary should delay killing the Ack_thread until the
+# timeout is reached.
#
connection server_1;
#--
@@ -157,15 +145,15 @@ connection server_1;
#-- Enable semi-sync on slaves
let slave_last= 3
connection server_2;
-set global rpl_semi_sync_slave_enabled = 1;
include/stop_slave.inc
+set global rpl_semi_sync_slave_enabled = 1;
include/start_slave.inc
show status like 'Rpl_semi_sync_slave_status';
Variable_name Value
Rpl_semi_sync_slave_status ON
connection server_3;
-set global rpl_semi_sync_slave_enabled = 1;
include/stop_slave.inc
+set global rpl_semi_sync_slave_enabled = 1;
include/start_slave.inc
show status like 'Rpl_semi_sync_slave_status';
Variable_name Value
@@ -184,35 +172,22 @@ show status like 'Rpl_semi_sync_master_clients';
Variable_name Value
Rpl_semi_sync_master_clients 2
#-- Prepare servers to simulate delay or error
-connection server_1;
-SET @@GLOBAL.debug_dbug= "+d,mysqld_delay_kill_threads_phase_1";
connection server_2;
-SET @@GLOBAL.debug_dbug= "+d,corrupt_queue_event";
+SET @@GLOBAL.debug_dbug= "+d,corrupt_queue_event,delay_semisync_kill_connection_for_mdev_28141";
connection server_3;
-SET @@GLOBAL.debug_dbug= "+d,corrupt_queue_event";
+SET @@GLOBAL.debug_dbug= "+d,corrupt_queue_event,delay_semisync_kill_connection_for_mdev_28141";
#--
#-- Test begins
+connection server_1_con2;
connection server_1;
#-- Begin semi-sync transaction
INSERT INTO t1 VALUES (1);
connection server_1_con2;
#-- Wait until master recognizes a connection is awaiting semi-sync ACK
-show status like 'Rpl_semi_sync_master_wait_sessions';
-Variable_name Value
-Rpl_semi_sync_master_wait_sessions 1
-#-- Give enough time after timeout/ack received to query yes_tx/no_tx
-SET @@GLOBAL.debug_dbug= "+d,delay_shutdown_phase_2_after_semisync_wait";
#-- Begin master shutdown
SHUTDOWN WAIT FOR ALL SLAVES;
connection server_1;
-#-- Ensure either ACK was received (yes_tx=1) or timeout (no_tx=1)
-show status like 'Rpl_semi_sync_master_yes_tx';
-Variable_name Value
-Rpl_semi_sync_master_yes_tx 0
-show status like 'Rpl_semi_sync_master_no_tx';
-Variable_name Value
-Rpl_semi_sync_master_no_tx 1
-connection server_1_con2;
+ERROR HY000: Lost connection to server during query
# Check logs to ensure shutdown was delayed
FOUND 2 /Delaying shutdown to await semi-sync ACK/ in mysqld.1.err
# Validate slave data is in correct state
@@ -226,24 +201,33 @@ count(*)=0
1
#
#-- Re-synchronize slaves with master and disable semi-sync
+#-- FIXME: workaround for MDEV-28141, preventing errored replicas from
+# killing their semi-sync connections
+connection server_2;
+set debug_sync= "now wait_for at_semisync_kill_connection";
+set debug_sync= "now signal continue_semisync_kill_connection";
+# Wait for debug_sync signal to have been received before issuing RESET
+set debug_sync= "reset";
+connection server_3;
+set debug_sync= "now wait_for at_semisync_kill_connection";
+set debug_sync= "now signal continue_semisync_kill_connection";
+# Wait for debug_sync signal to have been received before issuing RESET
+set debug_sync= "reset";
#-- Stop slaves
connection server_2;
-SET @@GLOBAL.debug_dbug= "";
-SET @@GLOBAL.rpl_semi_sync_slave_enabled= 0;
-include/stop_slave.inc
+include/stop_slave_io.inc
+include/stop_slave_sql.inc
+SET @@GLOBAL.debug_dbug= @sav_server_2_dbug;
+SET @@GLOBAL.rpl_semi_sync_slave_enabled= @sav_enabled_server_2;
connection server_3;
-SET @@GLOBAL.debug_dbug= "";
-SET @@GLOBAL.rpl_semi_sync_slave_enabled= 0;
-include/stop_slave.inc
+include/stop_slave_io.inc
+include/stop_slave_sql.inc
+SET @@GLOBAL.debug_dbug= @sav_server_3_dbug;
+SET @@GLOBAL.rpl_semi_sync_slave_enabled= @sav_enabled_server_3;
#-- Bring the master back up
connection server_1_con2;
connection default;
connection server_1;
-SET @@GLOBAL.debug_dbug= "";
-SET @@GLOBAL.rpl_semi_sync_master_enabled = 0;
-show status like 'Rpl_semi_sync_master_status';
-Variable_name Value
-Rpl_semi_sync_master_status OFF
TRUNCATE TABLE t1;
#-- Bring slaves back up
connection server_2;
@@ -265,8 +249,8 @@ COUNT(*)=0
#
# Test Case 3) If one replica simulates a delay within the allowed
# timeout and the other simulates an error before sending an ACK, the
-# primary should delay killing the suspended thread until it receives an
-# ACK from the delayed slave (Rpl_semi_sync_master_yes_tx should be 1).
+# primary should delay killing the Ack_thread until it receives an
+# ACK from the delayed slave.
#
connection server_1;
#--
@@ -275,15 +259,15 @@ connection server_1;
#-- Enable semi-sync on slaves
let slave_last= 3
connection server_2;
-set global rpl_semi_sync_slave_enabled = 1;
include/stop_slave.inc
+set global rpl_semi_sync_slave_enabled = 1;
include/start_slave.inc
show status like 'Rpl_semi_sync_slave_status';
Variable_name Value
Rpl_semi_sync_slave_status ON
connection server_3;
-set global rpl_semi_sync_slave_enabled = 1;
include/stop_slave.inc
+set global rpl_semi_sync_slave_enabled = 1;
include/start_slave.inc
show status like 'Rpl_semi_sync_slave_status';
Variable_name Value
@@ -302,35 +286,22 @@ show status like 'Rpl_semi_sync_master_clients';
Variable_name Value
Rpl_semi_sync_master_clients 2
#-- Prepare servers to simulate delay or error
-connection server_1;
-SET @@GLOBAL.debug_dbug= "+d,mysqld_delay_kill_threads_phase_1";
connection server_2;
-SET @@GLOBAL.debug_dbug= "+d,corrupt_queue_event";
+SET @@GLOBAL.debug_dbug= "+d,corrupt_queue_event,delay_semisync_kill_connection_for_mdev_28141";
connection server_3;
SET @@GLOBAL.debug_dbug= "+d,simulate_delay_semisync_slave_reply";
#--
#-- Test begins
+connection server_1_con2;
connection server_1;
#-- Begin semi-sync transaction
INSERT INTO t1 VALUES (1);
connection server_1_con2;
#-- Wait until master recognizes a connection is awaiting semi-sync ACK
-show status like 'Rpl_semi_sync_master_wait_sessions';
-Variable_name Value
-Rpl_semi_sync_master_wait_sessions 1
-#-- Give enough time after timeout/ack received to query yes_tx/no_tx
-SET @@GLOBAL.debug_dbug= "+d,delay_shutdown_phase_2_after_semisync_wait";
#-- Begin master shutdown
SHUTDOWN WAIT FOR ALL SLAVES;
connection server_1;
-#-- Ensure either ACK was received (yes_tx=1) or timeout (no_tx=1)
-show status like 'Rpl_semi_sync_master_yes_tx';
-Variable_name Value
-Rpl_semi_sync_master_yes_tx 1
-show status like 'Rpl_semi_sync_master_no_tx';
-Variable_name Value
-Rpl_semi_sync_master_no_tx 0
-connection server_1_con2;
+ERROR HY000: Lost connection to server during query
# Check logs to ensure shutdown was delayed
FOUND 3 /Delaying shutdown to await semi-sync ACK/ in mysqld.1.err
# Validate slave data is in correct state
@@ -344,24 +315,28 @@ count(*)=1
1
#
#-- Re-synchronize slaves with master and disable semi-sync
+#-- FIXME: workaround for MDEV-28141, preventing errored replicas from
+# killing their semi-sync connections
+connection server_2;
+set debug_sync= "now wait_for at_semisync_kill_connection";
+set debug_sync= "now signal continue_semisync_kill_connection";
+# Wait for debug_sync signal to have been received before issuing RESET
+set debug_sync= "reset";
#-- Stop slaves
connection server_2;
-SET @@GLOBAL.debug_dbug= "";
-SET @@GLOBAL.rpl_semi_sync_slave_enabled= 0;
-include/stop_slave.inc
+include/stop_slave_io.inc
+include/stop_slave_sql.inc
+SET @@GLOBAL.debug_dbug= @sav_server_2_dbug;
+SET @@GLOBAL.rpl_semi_sync_slave_enabled= @sav_enabled_server_2;
connection server_3;
-SET @@GLOBAL.debug_dbug= "";
-SET @@GLOBAL.rpl_semi_sync_slave_enabled= 0;
-include/stop_slave.inc
+include/stop_slave_io.inc
+include/stop_slave_sql.inc
+SET @@GLOBAL.debug_dbug= @sav_server_3_dbug;
+SET @@GLOBAL.rpl_semi_sync_slave_enabled= @sav_enabled_server_3;
#-- Bring the master back up
connection server_1_con2;
connection default;
connection server_1;
-SET @@GLOBAL.debug_dbug= "";
-SET @@GLOBAL.rpl_semi_sync_master_enabled = 0;
-show status like 'Rpl_semi_sync_master_status';
-Variable_name Value
-Rpl_semi_sync_master_status OFF
TRUNCATE TABLE t1;
#-- Bring slaves back up
connection server_2;
@@ -389,8 +364,7 @@ COUNT(*)=0
# active semi-sync connection in-tact. The slave should notice this, and
# not issue a `QUIT` command to the primary, which would otherwise be
# sent to kill an active connection. This test case validates that the
-# slave does not send a `QUIT` in this case (Rpl_semi_sync_master_yes_tx
-# should be 1 because server_3 will send the ACK within a valid timeout).
+# slave does not send a `QUIT` in this case.
#
connection server_1;
#--
@@ -399,15 +373,15 @@ connection server_1;
#-- Enable semi-sync on slaves
let slave_last= 3
connection server_2;
-set global rpl_semi_sync_slave_enabled = 1;
include/stop_slave.inc
+set global rpl_semi_sync_slave_enabled = 1;
include/start_slave.inc
show status like 'Rpl_semi_sync_slave_status';
Variable_name Value
Rpl_semi_sync_slave_status ON
connection server_3;
-set global rpl_semi_sync_slave_enabled = 1;
include/stop_slave.inc
+set global rpl_semi_sync_slave_enabled = 1;
include/start_slave.inc
show status like 'Rpl_semi_sync_slave_status';
Variable_name Value
@@ -426,35 +400,22 @@ show status like 'Rpl_semi_sync_master_clients';
Variable_name Value
Rpl_semi_sync_master_clients 2
#-- Prepare servers to simulate delay or error
-connection server_1;
-SET @@GLOBAL.debug_dbug= "+d,mysqld_delay_kill_threads_phase_1";
connection server_2;
-SET @@GLOBAL.debug_dbug= "+d,corrupt_queue_event,slave_delay_killing_semisync_connection";
+SET @@GLOBAL.debug_dbug= "+d,corrupt_queue_event,delay_semisync_kill_connection_for_mdev_28141";
connection server_3;
SET @@GLOBAL.debug_dbug= "+d,simulate_delay_semisync_slave_reply";
#--
#-- Test begins
+connection server_1_con2;
connection server_1;
#-- Begin semi-sync transaction
INSERT INTO t1 VALUES (1);
connection server_1_con2;
#-- Wait until master recognizes a connection is awaiting semi-sync ACK
-show status like 'Rpl_semi_sync_master_wait_sessions';
-Variable_name Value
-Rpl_semi_sync_master_wait_sessions 1
-#-- Give enough time after timeout/ack received to query yes_tx/no_tx
-SET @@GLOBAL.debug_dbug= "+d,delay_shutdown_phase_2_after_semisync_wait";
#-- Begin master shutdown
SHUTDOWN WAIT FOR ALL SLAVES;
connection server_1;
-#-- Ensure either ACK was received (yes_tx=1) or timeout (no_tx=1)
-show status like 'Rpl_semi_sync_master_yes_tx';
-Variable_name Value
-Rpl_semi_sync_master_yes_tx 1
-show status like 'Rpl_semi_sync_master_no_tx';
-Variable_name Value
-Rpl_semi_sync_master_no_tx 0
-connection server_1_con2;
+ERROR HY000: Lost connection to server during query
# Check logs to ensure shutdown was delayed
FOUND 4 /Delaying shutdown to await semi-sync ACK/ in mysqld.1.err
# Validate slave data is in correct state
@@ -468,24 +429,28 @@ count(*)=1
1
#
#-- Re-synchronize slaves with master and disable semi-sync
+#-- FIXME: workaround for MDEV-28141, preventing errored replicas from
+# killing their semi-sync connections
+connection server_2;
+set debug_sync= "now wait_for at_semisync_kill_connection";
+set debug_sync= "now signal continue_semisync_kill_connection";
+# Wait for debug_sync signal to have been received before issuing RESET
+set debug_sync= "reset";
#-- Stop slaves
connection server_2;
-SET @@GLOBAL.debug_dbug= "";
-SET @@GLOBAL.rpl_semi_sync_slave_enabled= 0;
-include/stop_slave.inc
+include/stop_slave_io.inc
+include/stop_slave_sql.inc
+SET @@GLOBAL.debug_dbug= @sav_server_2_dbug;
+SET @@GLOBAL.rpl_semi_sync_slave_enabled= @sav_enabled_server_2;
connection server_3;
-SET @@GLOBAL.debug_dbug= "";
-SET @@GLOBAL.rpl_semi_sync_slave_enabled= 0;
-include/stop_slave.inc
+include/stop_slave_io.inc
+include/stop_slave_sql.inc
+SET @@GLOBAL.debug_dbug= @sav_server_3_dbug;
+SET @@GLOBAL.rpl_semi_sync_slave_enabled= @sav_enabled_server_3;
#-- Bring the master back up
connection server_1_con2;
connection default;
connection server_1;
-SET @@GLOBAL.debug_dbug= "";
-SET @@GLOBAL.rpl_semi_sync_master_enabled = 0;
-show status like 'Rpl_semi_sync_master_status';
-Variable_name Value
-Rpl_semi_sync_master_status OFF
TRUNCATE TABLE t1;
#-- Bring slaves back up
connection server_2;
@@ -504,14 +469,62 @@ Rpl_semi_sync_slave_status OFF
SELECT COUNT(*)=0 from t1;
COUNT(*)=0
1
+#
+# Test Case 5) If a waiting-for-ACK user thread is killed (disconnected)
+# during SHUTDOWN WAIT FOR ALL SLAVES, ensure the primary will still
+# await the ACK from the replica before killing the Ack_receiver thread
+#
+connection server_1;
+insert into t1 values (1);
+include/save_master_gtid.inc
+connection server_2;
+include/sync_with_master_gtid.inc
+include/stop_slave.inc
+SET GLOBAL rpl_semi_sync_slave_enabled= 1;
+include/start_slave.inc
+connection server_1;
+SET GLOBAL rpl_semi_sync_master_enabled= 1;
+SET GLOBAL rpl_semi_sync_master_timeout= 2000;
+show status like 'Rpl_semi_sync_master_status';
+Variable_name Value
+Rpl_semi_sync_master_status ON
+show status like 'Rpl_semi_sync_master_clients';
+Variable_name Value
+Rpl_semi_sync_master_clients 1
+connection server_2;
+SET @old_dbug= @@GLOBAL.debug_dbug;
+SET GLOBAL debug_dbug="+d,simulate_delay_semisync_slave_reply";
+connect con1, localhost, root,,;
+connect con2, localhost, root,,;
+connection con1;
+insert into t1 values (2);
+connection server_1;
+# Wait for thd to begin semi-sync wait..
+# ..done
+disconnect con1;
+connection default;
+connection con2;
+SHUTDOWN WAIT FOR ALL SLAVES;
+# Ensure the primary waited for the ACK of the killed thread
+FOUND 5 /Delaying shutdown to await semi-sync ACK/ in mysqld.1.err
+connection default;
+connection server_1;
+connection server_2;
+include/stop_slave.inc
+connection server_3;
+include/stop_slave.inc
+connection default;
+connection server_1;
#############################
# Cleanup
#############################
connection server_2;
-include/stop_slave.inc
+SET @@GLOBAL.rpl_semi_sync_slave_enabled = @sav_enabled_server_2;
+SET @@GLOBAL.debug_dbug= @sav_server_2_dbug;
include/start_slave.inc
connection server_3;
-include/stop_slave.inc
+SET @@GLOBAL.rpl_semi_sync_slave_enabled = @sav_enabled_server_3;
+SET @@GLOBAL.debug_dbug= @sav_server_3_dbug;
include/start_slave.inc
connection server_1;
drop table t1;
diff --git a/mysql-test/suite/rpl/r/rpl_semi_sync_slave_enabled_consistent.result b/mysql-test/suite/rpl/r/rpl_semi_sync_slave_enabled_consistent.result
index 99c31249..4195acb9 100644
--- a/mysql-test/suite/rpl/r/rpl_semi_sync_slave_enabled_consistent.result
+++ b/mysql-test/suite/rpl/r/rpl_semi_sync_slave_enabled_consistent.result
@@ -2,6 +2,9 @@ include/master-slave.inc
[connection master]
call mtr.add_suppression("Replication event checksum verification failed");
call mtr.add_suppression("could not queue event from master");
+call mtr.add_suppression("Semisync ack receiver.*error reading communication packets");
+call mtr.add_suppression("Semisync ack receiver got hangup");
+connection slave;
#
# Set up a semisync connection
connection master;
diff --git a/mysql-test/suite/rpl/r/rpl_show_slave_status.result b/mysql-test/suite/rpl/r/rpl_show_slave_status.result
new file mode 100644
index 00000000..e32b2f55
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_show_slave_status.result
@@ -0,0 +1,75 @@
+include/master-slave.inc
+[connection master]
+*
+* The purpose of this test is to prevent incorrect additions to SHOW
+* SLAVE STATUS, which has happened several times in the past.
+*
+* We must never, _ever_, add extra rows to this output of SHOW SLAVE
+* STATUS, except at the very end, as this breaks backwards compatibility
+* with applications or scripts that parse the output. This also means that
+* we cannot add _any_ new rows in a GA version if a different row was
+* already added in a later MariaDB version, as this would make it impossible
+* to merge the change up while preserving the order of rows.
+*
+connection slave;
+SHOW SLAVE STATUS;
+Slave_IO_State #
+Master_Host #
+Master_User #
+Master_Port #
+Connect_Retry #
+Master_Log_File #
+Read_Master_Log_Pos #
+Relay_Log_File #
+Relay_Log_Pos #
+Relay_Master_Log_File #
+Slave_IO_Running #
+Slave_SQL_Running #
+Replicate_Do_DB #
+Replicate_Ignore_DB #
+Replicate_Do_Table #
+Replicate_Ignore_Table #
+Replicate_Wild_Do_Table #
+Replicate_Wild_Ignore_Table #
+Last_Errno #
+Last_Error #
+Skip_Counter #
+Exec_Master_Log_Pos #
+Relay_Log_Space #
+Until_Condition #
+Until_Log_File #
+Until_Log_Pos #
+Master_SSL_Allowed #
+Master_SSL_CA_File #
+Master_SSL_CA_Path #
+Master_SSL_Cert #
+Master_SSL_Cipher #
+Master_SSL_Key #
+Seconds_Behind_Master #
+Master_SSL_Verify_Server_Cert #
+Last_IO_Errno #
+Last_IO_Error #
+Last_SQL_Errno #
+Last_SQL_Error #
+Replicate_Ignore_Server_Ids #
+Master_Server_Id #
+Master_SSL_Crl #
+Master_SSL_Crlpath #
+Using_Gtid #
+Gtid_IO_Pos #
+Replicate_Do_Domain_Ids #
+Replicate_Ignore_Domain_Ids #
+Parallel_Mode #
+SQL_Delay #
+SQL_Remaining_Delay #
+Slave_SQL_Running_State #
+Slave_DDL_Groups #
+Slave_Non_Transactional_Groups #
+Slave_Transactional_Groups #
+Replicate_Rewrite_DB #
+*
+* When modifying this test after adding a column to SHOW SLAVE STATUS,
+* _only_ additions at the end are allowed, the column number of existing
+* columns must _not_ change!
+*
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_shutdown_sighup.result b/mysql-test/suite/rpl/r/rpl_shutdown_sighup.result
new file mode 100644
index 00000000..01b35f1d
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_shutdown_sighup.result
@@ -0,0 +1,50 @@
+include/master-slave.inc
+[connection master]
+connection slave;
+set statement sql_log_bin=0 for call mtr.add_suppression("Signal handler thread did not exit in a timely manner");
+#
+# Main test
+connection master;
+create table t1 (a int);
+insert into t1 values (1);
+include/save_master_gtid.inc
+connection slave;
+include/sync_with_master_gtid.inc
+set @@global.debug_dbug= "+d,hold_sighup_log_refresh";
+# Waiting for sighup to reach reload_acl_and_cache..
+set debug_sync="now wait_for in_reload_acl_and_cache";
+# Signalling signal handler to proceed to sleep before REFRESH_HOSTS
+set debug_sync="now signal refresh_logs";
+# Starting shutdown (note this will take 3+ seconds due to DBUG my_sleep in reload_acl_and_cache)
+shutdown;
+connection server_2;
+connection slave;
+include/assert_grep.inc [Ensure Mariadbd did not segfault when shutting down]
+connection master;
+connection slave;
+#
+# Error testcase to ensure an error message is shown if the signal
+# takes longer than the timeout while processing the SIGHUP
+connection slave;
+set @@global.debug_dbug= "+d,force_sighup_processing_timeout";
+set @@global.debug_dbug= "+d,hold_sighup_log_refresh";
+connection master;
+insert into t1 values (1);
+include/save_master_gtid.inc
+connection slave;
+include/sync_with_master_gtid.inc
+# Waiting for sighup to reach reload_acl_and_cache..
+set debug_sync="now wait_for in_reload_acl_and_cache";
+# Signalling signal handler to proceed to sleep before REFRESH_HOSTS
+set debug_sync="now signal refresh_logs";
+# Starting shutdown (note this will take 3+ seconds due to DBUG my_sleep in reload_acl_and_cache)
+shutdown;
+connection server_2;
+connection slave;
+include/assert_grep.inc [Ensure warning is issued that signal handler thread is still processing]
+#
+# Cleanup
+connection master;
+drop table t1;
+include/rpl_end.inc
+# End of rpl_shutdown_sighup.test
diff --git a/mysql-test/suite/rpl/r/rpl_skip_error.result b/mysql-test/suite/rpl/r/rpl_skip_error.result
index eb6324ff..03fc8a78 100644
--- a/mysql-test/suite/rpl/r/rpl_skip_error.result
+++ b/mysql-test/suite/rpl/r/rpl_skip_error.result
@@ -122,6 +122,31 @@ connection slave;
# Slave_skipped_errros = 5
**** We cannot execute a select as there are differences in the
**** behavior between STMT and RBR.
+****
+**** Ensure transactions which are skipped due to encountering a
+**** non-deadlock error which is present in --slave-skip-errors result
+**** in partially committed transactions
+connection master;
+CREATE TABLE t3 (a INT UNIQUE) ENGINE=InnoDB;
+connection slave;
+connection slave;
+INSERT INTO t3 VALUES (3);
+connection master;
+BEGIN;
+INSERT INTO t3 VALUES (1);
+INSERT INTO t3 VALUES (2);
+INSERT INTO t3 VALUES (3);
+INSERT INTO t3 VALUES (4);
+COMMIT;
+connection slave;
+**** Master and slave tables should have the same data, due to the
+**** partially replicated transaction's data overlapping with the data
+**** that pre-existed on the slave. That is, despite the transaction
+**** consisting of 4 statements, the errored statement should be ignored
+**** and the other 3 should commit successfully.
+include/diff_tables.inc [master:t3,slave:t3]
+connection master;
+DROP TABLE t3;
==== Clean Up ====
connection master;
DROP TABLE t1;
diff --git a/mysql-test/suite/rpl/r/rpl_start_alter_options.result b/mysql-test/suite/rpl/r/rpl_start_alter_options.result
index 4c6135aa..c150c18a 100644
--- a/mysql-test/suite/rpl/r/rpl_start_alter_options.result
+++ b/mysql-test/suite/rpl/r/rpl_start_alter_options.result
@@ -3,8 +3,6 @@ include/master-slave.inc
connection slave;
stop slave;
change master to master_use_gtid= current_pos;
-Warnings:
-Warning 1681 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
SET GLOBAL slave_parallel_threads=4;
set global slave_parallel_mode=optimistic;
set global gtid_strict_mode=1;
@@ -96,8 +94,6 @@ include/start_slave.inc
connection slave;
stop slave;
change master to master_use_gtid= current_pos;
-Warnings:
-Warning 1681 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
SET GLOBAL slave_parallel_threads=4;
set global slave_parallel_mode=optimistic;
set global gtid_strict_mode=1;
@@ -189,8 +185,6 @@ include/start_slave.inc
connection slave;
stop slave;
change master to master_use_gtid= current_pos;
-Warnings:
-Warning 1681 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
SET GLOBAL slave_parallel_threads=4;
set global slave_parallel_mode=optimistic;
set global gtid_strict_mode=1;
@@ -321,8 +315,6 @@ include/start_slave.inc
connection slave;
stop slave;
change master to master_use_gtid= current_pos;
-Warnings:
-Warning 1681 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
SET GLOBAL slave_parallel_threads=4;
set global slave_parallel_mode=optimistic;
set global gtid_strict_mode=1;
@@ -377,8 +369,6 @@ connection master;
alter table t1 add column f varchar(100) after b,add column g varchar(100) first ,add column h char, force , algorithm=instant;
alter table t1 add index if not exists index_1(f), force , algorithm=instant;
alter table t1 disable keys, force , algorithm=copy;
-Warnings:
-Note 1031 Storage engine InnoDB of the table `test`.`t1` doesn't have this option
alter table t1 enable keys, force , algorithm=copy;
Warnings:
Note 1031 Storage engine InnoDB of the table `test`.`t1` doesn't have this option
@@ -414,8 +404,6 @@ include/start_slave.inc
connection slave;
stop slave;
change master to master_use_gtid= current_pos;
-Warnings:
-Warning 1681 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
SET GLOBAL slave_parallel_threads=4;
set global slave_parallel_mode=optimistic;
set global gtid_strict_mode=1;
@@ -470,8 +458,6 @@ connection master;
alter table t1 add column f varchar(100) after b,add column g varchar(100) first ,add column h char, force , algorithm=nocopy;
alter table t1 add index if not exists index_1(f), force , algorithm=nocopy;
alter table t1 disable keys, force , algorithm=copy;
-Warnings:
-Note 1031 Storage engine InnoDB of the table `test`.`t1` doesn't have this option
alter table t1 enable keys, force , algorithm=copy;
Warnings:
Note 1031 Storage engine InnoDB of the table `test`.`t1` doesn't have this option
diff --git a/mysql-test/suite/rpl/r/rpl_temporary_error2_skip_all.result b/mysql-test/suite/rpl/r/rpl_temporary_error2_skip_all.result
new file mode 100644
index 00000000..9819aafa
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_temporary_error2_skip_all.result
@@ -0,0 +1,64 @@
+include/master-slave.inc
+[connection master]
+call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction");
+*** Provoke a deadlock on the slave, check that transaction retry succeeds. ***
+connection master;
+CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
+CREATE TABLE t2 (a INT) ENGINE=InnoDB;
+INSERT INTO t1(a) VALUES (1), (2), (3), (4), (5);
+connection slave;
+SELECT * FROM t1 ORDER BY a;
+a b
+1 NULL
+2 NULL
+3 NULL
+4 NULL
+5 NULL
+SET sql_log_bin=0;
+ALTER TABLE t2 ENGINE=MyISAM;
+SET sql_log_bin=1;
+connect con_temp1,127.0.0.1,root,,test,$SERVER_MYPORT_2,;
+connection con_temp1;
+BEGIN;
+UPDATE t1 SET b=2 WHERE a=4;
+INSERT INTO t2 VALUES (2);
+DELETE FROM t2 WHERE a=2;
+connection master;
+BEGIN;
+UPDATE t1 SET b=1 WHERE a=2;
+INSERT INTO t2 VALUES (1);
+UPDATE t1 SET b=1 WHERE a=4;
+COMMIT;
+connection slave;
+connection con_temp1;
+UPDATE t1 SET b=2 WHERE a=2;
+SELECT * FROM t1 WHERE a<10 ORDER BY a;
+a b
+1 NULL
+2 2
+3 NULL
+4 2
+5 NULL
+ROLLBACK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+connection slave;
+SELECT * FROM t1 ORDER BY a;
+a b
+1 NULL
+2 NULL
+3 NULL
+4 NULL
+5 NULL
+* There will be one row in t2 because the ignored deadlock does not retry.
+SELECT * FROM t2 ORDER BY a;
+a
+1
+retries
+0
+Last_SQL_Errno = '0'
+Last_SQL_Error = ''
+connection master;
+DROP TABLE t1;
+DROP TABLE t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_using_gtid_default.result b/mysql-test/suite/rpl/r/rpl_using_gtid_default.result
index 3bdc9d47..24a316de 100644
--- a/mysql-test/suite/rpl/r/rpl_using_gtid_default.result
+++ b/mysql-test/suite/rpl/r/rpl_using_gtid_default.result
@@ -58,8 +58,6 @@ include/start_slave.inc
# to its default of Slave_Pos after RESET SLAVE.
include/stop_slave.inc
CHANGE MASTER TO MASTER_USE_GTID=Current_Pos;
-Warnings:
-Warning 1681 'master_use_gtid=current_pos' is deprecated and will be removed in a future release. Please use master_demote_to_slave=1 instead
include/start_slave.inc
include/stop_slave.inc
RESET SLAVE;
diff --git a/mysql-test/suite/rpl/r/show_status_stop_slave_race-7126.result b/mysql-test/suite/rpl/r/show_status_stop_slave_race-7126.result
index 999d9417..35cb3fcd 100644
--- a/mysql-test/suite/rpl/r/show_status_stop_slave_race-7126.result
+++ b/mysql-test/suite/rpl/r/show_status_stop_slave_race-7126.result
@@ -1,6 +1,5 @@
include/master-slave.inc
[connection master]
-call mtr.add_suppression("Master is configured to log replication events");
connection slave;
connection slave;
include/wait_for_slave_to_stop.inc
diff --git a/mysql-test/suite/rpl/t/parallel_backup_xa.inc b/mysql-test/suite/rpl/t/parallel_backup_xa.inc
index 83a6fb79..5f287aa0 100644
--- a/mysql-test/suite/rpl/t/parallel_backup_xa.inc
+++ b/mysql-test/suite/rpl/t/parallel_backup_xa.inc
@@ -41,7 +41,7 @@ if ($slave_ooo_error)
{
SET @sav_innodb_lock_wait_timeout = @@global.innodb_lock_wait_timeout;
SET @sav_slave_transaction_retries = @@global.slave_transaction_retries;
- SET @@global.innodb_lock_wait_timeout =1;
+ SET @@global.innodb_lock_wait_timeout =5;
SET @@global.slave_transaction_retries=0;
}
--source include/start_slave.inc
diff --git a/mysql-test/suite/rpl/t/rpl_auditing.test b/mysql-test/suite/rpl/t/rpl_auditing.test
new file mode 100644
index 00000000..3d3cee9a
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_auditing.test
@@ -0,0 +1,77 @@
+if (!$SERVER_AUDIT2_SO) {
+ skip No SERVER_AUDIT2 plugin;
+}
+
+source include/master-slave.inc;
+
+--disable_warnings
+drop table if exists t1;
+sync_slave_with_master;
+reset master;
+--enable_warnings
+
+--disable_warnings
+CREATE TABLE IF NOT EXISTS mysql.server_audit_filters (
+ filtername char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
+ rule longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT 'true' CHECK (json_valid(rule)),
+ CONSTRAINT c_filtername UNIQUE (filtername)
+) ENGINE=Aria;
+
+CREATE TABLE IF NOT EXISTS mysql.server_audit_users (host char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
+ user char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
+ filtername char(80) NOT NULL DEFAULT '',
+ CONSTRAINT c_host_user UNIQUE (host, user)
+) ENGINE=Aria;
+--enable_warnings
+
+INSERT INTO mysql.server_audit_filters VALUES ('ignore_sys', '{"ignore_tables" : "mysql.*"}');
+INSERT INTO mysql.server_audit_users VALUES ('%','<replication_slave>','ignore_sys');
+INSERT INTO mysql.server_audit_users VALUES ('%','root','ignore_sys');
+
+install plugin server_audit soname 'server_audit2';
+set global server_audit_logging=on;
+
+# this is done to make test deterministic
+# so the above 'set' command is always logged before the 'create table t1'
+-- disable_query_log
+-- disable_result_log
+select * from mysql.server_audit_filters;
+select * from mysql.server_audit_users;
+-- enable_result_log
+-- enable_query_log
+
+connection master;
+create table t1 (a int);
+insert into t1 values (1);
+truncate t1;
+drop table t1;
+sync_slave_with_master;
+
+set global server_audit_logging=off;
+
+truncate mysql.server_audit_filters;
+truncate mysql.server_audit_users;
+INSERT INTO mysql.server_audit_filters VALUES ('no_logging','false');
+INSERT INTO mysql.server_audit_users VALUES ('%','<replication_slave>','no_logging');
+
+set global server_audit_logging=on;
+
+connection master;
+create table t1 (a int);
+insert into t1 values (1);
+truncate t1;
+drop table t1;
+sync_slave_with_master;
+
+set global server_audit_logging=off;
+uninstall plugin server_audit;
+truncate mysql.server_audit_filters;
+truncate mysql.server_audit_users;
+let $MYSQLD_DATADIR= `SELECT @@datadir`;
+# replace the timestamp and the hostname with constant values
+--replace_regex /[0-9]* [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\,[^,]*\,/TIME,HOSTNAME,/ /\,[1-9][0-9]*\,/,1,/ /\,[1-9][0-9]*/,ID/ /000001\\', [0-9]*,/#', POS,/
+cat_file $MYSQLD_DATADIR/server_audit.log;
+remove_file $MYSQLD_DATADIR/server_audit.log;
+
+connection master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_binlog_dump_slave_gtid_state_info.test b/mysql-test/suite/rpl/t/rpl_binlog_dump_slave_gtid_state_info.test
index 02b31c06..4f0eafc4 100644
--- a/mysql-test/suite/rpl/t/rpl_binlog_dump_slave_gtid_state_info.test
+++ b/mysql-test/suite/rpl/t/rpl_binlog_dump_slave_gtid_state_info.test
@@ -39,6 +39,7 @@
--source include/master-slave.inc
--connection master
+SET @org_log_warnings=@@GLOBAL.LOG_WARNINGS;
SET GLOBAL LOG_WARNINGS=2;
--connection slave
@@ -110,6 +111,7 @@ CHANGE MASTER TO MASTER_USE_GTID=slave_pos;
--source include/wait_for_pattern_in_file.inc
--echo "===== Clean up ====="
+SET GLOBAL LOG_WARNINGS=@org_log_warnings;
--connection slave
--source include/stop_slave.inc
CHANGE MASTER TO MASTER_USE_GTID=no;
@@ -117,5 +119,4 @@ CHANGE MASTER TO MASTER_USE_GTID=no;
--connection master
DROP TABLE t;
-SET GLOBAL LOG_WARNINGS=default;
--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_change_master.test b/mysql-test/suite/rpl/t/rpl_change_master.test
index 2758f9d6..992e2390 100644
--- a/mysql-test/suite/rpl/t/rpl_change_master.test
+++ b/mysql-test/suite/rpl/t/rpl_change_master.test
@@ -109,9 +109,4 @@ CHANGE MASTER TO MASTER_USER='root', MASTER_SSL=0, MASTER_SSL_CA='', MASTER_SSL_
CHANGE MASTER TO MASTER_USER='root', MASTER_PASSWORD='', MASTER_SSL=0;
-# MDEV-20122: Deprecate MASTER_USE_GTID=Current_Pos to favor new MASTER_DEMOTE_TO_SLAVE option
---echo "Usage of CURRENT_POS in CHANGE MASTER MASTER_USE_GTID is dreprecated.
-CHANGE MASTER TO MASTER_USE_GTID=CURRENT_POS;
-CHANGE MASTER TO MASTER_USE_GTID=SLAVE_POS;
-
--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_change_master_demote.test b/mysql-test/suite/rpl/t/rpl_change_master_demote.test
index 15b55014..6304d352 100644
--- a/mysql-test/suite/rpl/t/rpl_change_master_demote.test
+++ b/mysql-test/suite/rpl/t/rpl_change_master_demote.test
@@ -73,6 +73,9 @@
# non-boolean value.
#
#
+# Additionally ensure MASTER_DEMOTE_TO_REPLICA aliases MASTER_DEMOTE_TO_SLAVE
+#
+#
# References:
# MDEV-19801: Change defaults for CHANGE MASTER TO so that GTID-based
# replication is used by default if master supports it
@@ -455,6 +458,37 @@ EOF
--echo #
+--echo # MDEV-31768
+--echo # Ensure MASTER_DEMOTE_TO_REPLICA aliases MASTER_DEMOTE_TO_SLAVE
+--echo #
+--connection slave
+RESET MASTER;
+--source include/reset_slave.inc
+CREATE TABLE t_mdev_31768 (a int);
+--let $gtid_binlog_pos= `SELECT @@GLOBAL.gtid_binlog_pos`
+CHANGE MASTER TO master_use_gtid=Replica_Pos, master_demote_to_replica=1;
+--let $gtid_slave_pos= `SELECT @@GLOBAL.gtid_slave_pos`
+
+--echo # Validating alias MASTER_DEMOTE_TO_REPLICA provides intended behavior..
+if (`SELECT strcmp("$gtid_binlog_pos","$gtid_slave_pos") != 0`)
+{
+ --echo # ..failed
+ --echo # Binlog pos: $gtid_binlog_pos
+ --echo # Replica pos: $gtid_slave_pos
+ die MASTER_DEMOTE_TO_REPLICA does not alias MASTER_DEMOTE_TO_SLAVE correctly;
+}
+--echo # ..success
+
+DROP TABLE t_mdev_31768;
+RESET MASTER;
+--source include/reset_slave.inc
+
+--echo # Clear primary binlog state to match replica
+--connection master
+RESET MASTER;
+
+
+--echo #
--echo # Cleanup
--echo #
--connection master
diff --git a/mysql-test/suite/rpl/t/rpl_domain_id_filter_io_crash.test b/mysql-test/suite/rpl/t/rpl_domain_id_filter_io_crash.test
index 95fac6c2..c7ef3a4e 100644
--- a/mysql-test/suite/rpl/t/rpl_domain_id_filter_io_crash.test
+++ b/mysql-test/suite/rpl/t/rpl_domain_id_filter_io_crash.test
@@ -9,6 +9,7 @@ CREATE TABLE t1(i INT) ENGINE=INNODB;
INSERT INTO t1 VALUES(1);
SELECT * FROM t1;
sync_slave_with_master;
+--source include/save_master_gtid.inc
connection slave;
@@ -28,7 +29,7 @@ let $ignore_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Igno
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(), MASTER_USE_GTID=slave_pos;
--source include/start_slave.inc
-sync_with_master;
+--source include/sync_with_master_gtid.inc
let $do_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
@@ -44,7 +45,7 @@ START TRANSACTION;
INSERT INTO t1 VALUES(2);
INSERT INTO t1 VALUES(3);
COMMIT;
-save_master_pos;
+--source include/save_master_gtid.inc
SELECT * FROM t1;
connection slave;
@@ -55,7 +56,7 @@ SET @@global.debug_dbug=@saved_dbug;
START SLAVE io_thread;
--source include/wait_for_slave_io_to_start.inc
-sync_with_master;
+--source include/sync_with_master_gtid.inc
SELECT * FROM t1;
--echo # Case 1 : Start slave with IGNORE_DOMAIN_IDS=(1), then restart
@@ -70,7 +71,7 @@ let $ignore_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Igno
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(1), MASTER_USE_GTID=slave_pos;
--source include/start_slave.inc
-sync_with_master;
+--source include/sync_with_master_gtid.inc
let $do_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
@@ -86,7 +87,7 @@ INSERT INTO t1 VALUES(4);
INSERT INTO t1 VALUES(5);
COMMIT;
-save_master_pos;
+--source include/save_master_gtid.inc
SELECT * FROM t1;
connection slave;
@@ -97,7 +98,7 @@ SET @@global.debug_dbug=@saved_dbug;
START SLAVE io_thread;
--source include/wait_for_slave_io_to_start.inc
-sync_with_master;
+--source include/sync_with_master_gtid.inc
SELECT * FROM t1;
--echo # Case 2 : Start slave with IGNORE_DOMAIN_IDS=(), then restart
@@ -112,7 +113,7 @@ let $ignore_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Igno
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(), MASTER_USE_GTID=slave_pos;
--source include/start_slave.inc
-sync_with_master;
+--source include/sync_with_master_gtid.inc
let $do_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
@@ -140,7 +141,7 @@ INSERT INTO t1 VALUES(10);
INSERT INTO t1 VALUES(11);
COMMIT;
-save_master_pos;
+--source include/save_master_gtid.inc
SELECT * FROM t1;
connection slave;
@@ -157,7 +158,7 @@ let $ignore_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Igno
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(1), MASTER_USE_GTID=slave_pos;
--source include/start_slave.inc
-sync_with_master;
+--source include/sync_with_master_gtid.inc
let $do_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
@@ -178,7 +179,7 @@ let $ignore_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Igno
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(1), MASTER_USE_GTID=slave_pos;
--source include/start_slave.inc
-sync_with_master;
+--source include/sync_with_master_gtid.inc
let $do_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
@@ -196,6 +197,15 @@ INSERT INTO t1 VALUES(12);
INSERT INTO t1 VALUES(13);
COMMIT; # IO thread gets killed here.
+# MDEV-14357
+# As the prior transaction will be ignored on slave because its domain id is
+# ignored, the replica's gtid_slave_pos will be updated to have seen it,
+# despite its eventual failure to queue the whole transaction to the relay log.
+# So for test consistency, we need to synchronize the SQL thread with this
+# position; otherwise, when restarting the server after resetting
+# IGNORE_DOMAIN_IDS, we will re-fetch this event and execute it.
+--source include/save_master_gtid.inc
+
START TRANSACTION;
INSERT INTO t1 VALUES(14);
INSERT INTO t1 VALUES(15);
@@ -207,7 +217,6 @@ INSERT INTO t1 VALUES(16);
INSERT INTO t1 VALUES(17);
COMMIT;
-save_master_pos;
SELECT * FROM t1;
connection slave;
@@ -217,6 +226,11 @@ SELECT * FROM t1;
SET @@global.debug_dbug=@saved_dbug;
+# MDEV-14357
+# Ensure the SQL thread is updated with the GTID of the ignored transaction
+# so we don't fetch it and execute it after restarting without any ignored
+# domain ids.
+--source include/sync_with_master_gtid.inc
--source include/stop_slave_sql.inc
let $do_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
let $ignore_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
@@ -224,8 +238,12 @@ let $ignore_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Igno
--echo IGNORE_DOMAIN_IDS (BEFORE) : $ignore_domain_ids_before
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(), MASTER_USE_GTID=slave_pos;
+
+--connection master
+--source include/save_master_gtid.inc
+--connection slave
--source include/start_slave.inc
-sync_with_master;
+--source include/sync_with_master_gtid.inc
let $do_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
@@ -246,7 +264,7 @@ let $ignore_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Igno
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(1), MASTER_USE_GTID=slave_pos;
--source include/start_slave.inc
-sync_with_master;
+--source include/sync_with_master_gtid.inc
let $do_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
@@ -264,6 +282,11 @@ INSERT INTO t1 VALUES(18);
INSERT INTO t1 VALUES(19); # IO thread gets killed here.
COMMIT;
+# MDEV-14357
+# Synchronize gtid_slave_pos with the ignored event. See prior comments about
+# MDEV-14357 for details.
+--source include/save_master_gtid.inc
+
START TRANSACTION;
INSERT INTO t1 VALUES(20);
INSERT INTO t1 VALUES(21);
@@ -275,7 +298,6 @@ INSERT INTO t1 VALUES(22);
INSERT INTO t1 VALUES(23);
COMMIT;
-save_master_pos;
SELECT * FROM t1;
connection slave;
@@ -285,6 +307,10 @@ SELECT * FROM t1;
SET @@global.debug_dbug=@saved_dbug;
+# MDEV-14357
+# Synchronize gtid_slave_pos with the ignored event. See prior comments about
+# MDEV-14357 for details.
+--source include/sync_with_master_gtid.inc
--source include/stop_slave_sql.inc
let $do_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
let $ignore_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
@@ -292,8 +318,12 @@ let $ignore_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Igno
--echo IGNORE_DOMAIN_IDS (BEFORE) : $ignore_domain_ids_before
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(), MASTER_USE_GTID=slave_pos;
+
+--connection master
+--source include/save_master_gtid.inc
+--connection slave
--source include/start_slave.inc
-sync_with_master;
+--source include/sync_with_master_gtid.inc
let $do_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
@@ -314,7 +344,7 @@ let $ignore_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Igno
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(), MASTER_USE_GTID=slave_pos;
--source include/start_slave.inc
-sync_with_master;
+--source include/sync_with_master_gtid.inc
let $do_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
@@ -343,7 +373,7 @@ INSERT INTO t1 VALUES(28);
INSERT INTO t1 VALUES(29);
COMMIT;
-save_master_pos;
+--source include/save_master_gtid.inc
SELECT * FROM t1;
connection slave;
@@ -361,7 +391,7 @@ let $ignore_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Igno
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(1), MASTER_USE_GTID=slave_pos;
--source include/start_slave.inc
-sync_with_master;
+--source include/sync_with_master_gtid.inc
let $do_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
diff --git a/mysql-test/suite/rpl/t/rpl_domain_id_filter_master_crash.test b/mysql-test/suite/rpl/t/rpl_domain_id_filter_master_crash.test
index cdfdc098..19074ce9 100644
--- a/mysql-test/suite/rpl/t/rpl_domain_id_filter_master_crash.test
+++ b/mysql-test/suite/rpl/t/rpl_domain_id_filter_master_crash.test
@@ -6,9 +6,12 @@
connection master;
+--disable_query_log
call mtr.add_suppression("mysqld: Table '.*gtid_slave_pos' is marked as crashed and should be repaired");
call mtr.add_suppression("Checking table: './mysql/gtid_slave_pos'");
call mtr.add_suppression("mysql.gtid_slave_pos: 1 client is using or hasn't closed the table properly");
+call mtr.add_suppression("Could not read packet:.* errno: 11");
+--enable_query_log
SET @@session.gtid_domain_id= 0;
create table ti (a int auto_increment primary key) engine=innodb;
@@ -39,7 +42,7 @@ insert into ti set a=null;
insert into tm set a=null;
set @@global.debug_dbug="+d,crash_before_send_xid";
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
connection slave;
let $do_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
@@ -61,7 +64,7 @@ connection master;
--enable_reconnect
--let $rpl_server_number=1
--source include/rpl_start_server.inc
-#--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+#--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--source include/wait_until_connected_again.inc
--echo # Master has restarted successfully
save_master_pos;
diff --git a/mysql-test/suite/rpl/t/rpl_domain_id_filter_restart.test b/mysql-test/suite/rpl/t/rpl_domain_id_filter_restart.test
index 8083b8f2..38cbbdec 100644
--- a/mysql-test/suite/rpl/t/rpl_domain_id_filter_restart.test
+++ b/mysql-test/suite/rpl/t/rpl_domain_id_filter_restart.test
@@ -35,9 +35,10 @@ SET @@session.gtid_domain_id= 1;
INSERT INTO t2 VALUES(1);
SELECT * FROM t2;
-sync_slave_with_master;
+source include/save_master_gtid.inc;
connection slave;
+source include/sync_with_master_gtid.inc;
SELECT * FROM t1;
SELECT * FROM t2;
diff --git a/mysql-test/suite/rpl/t/rpl_dump_request_retry_warning.test b/mysql-test/suite/rpl/t/rpl_dump_request_retry_warning.test
index 1ee04362..633071a8 100644
--- a/mysql-test/suite/rpl/t/rpl_dump_request_retry_warning.test
+++ b/mysql-test/suite/rpl/t/rpl_dump_request_retry_warning.test
@@ -30,6 +30,10 @@
--let $rpl_skip_start_slave=1
--source include/master-slave.inc
+--disable_query_log
+call mtr.add_suppression("Could not read packet:.* errno: 11");
+--enable_query_log
+
# Do an insert on master
CREATE TABLE t1(a int);
INSERT INTO t1 VALUES(1);
diff --git a/mysql-test/suite/rpl/t/rpl_get_lock.test b/mysql-test/suite/rpl/t/rpl_get_lock.test
index b5c08858..c6f2f6ec 100644
--- a/mysql-test/suite/rpl/t/rpl_get_lock.test
+++ b/mysql-test/suite/rpl/t/rpl_get_lock.test
@@ -1,6 +1,17 @@
source include/master-slave.inc;
+--disable_query_log
CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
+call mtr.add_suppression("Could not read packet:.* errno: 11 ");
+# The following one comes from calling dirty_close on client side
+call mtr.add_suppression("Could not read packet:.* errno: 2 ");
+call mtr.add_suppression("Could not read packet:.* errno: 35 ");
+--enable_query_log
+
+let $org_log_warnings=`select @@global.log_warnings`;
+
+# Test extended warnings
+SET GLOBAL LOG_WARNINGS=4;
create table t1(n int);
# Use of get_lock gives a warning for unsafeness if binlog_format=statement
@@ -41,6 +52,10 @@ connection master1;
drop table t1;
sync_slave_with_master;
+connection default;
+--disable_query_log
+--eval SET GLOBAL LOG_WARNINGS=$org_log_warnings;
+--enable_query_log
--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_gtid_crash-slave.opt b/mysql-test/suite/rpl/t/rpl_gtid_crash-slave.opt
index 69c1a64e..5b3fb44c 100644
--- a/mysql-test/suite/rpl/t/rpl_gtid_crash-slave.opt
+++ b/mysql-test/suite/rpl/t/rpl_gtid_crash-slave.opt
@@ -1 +1 @@
---master-retry-count=100
+--master-retry-count=100 --slave-net-timeout=10
diff --git a/mysql-test/suite/rpl/t/rpl_gtid_crash.test b/mysql-test/suite/rpl/t/rpl_gtid_crash.test
index 28329831..e1a57f4b 100644
--- a/mysql-test/suite/rpl/t/rpl_gtid_crash.test
+++ b/mysql-test/suite/rpl/t/rpl_gtid_crash.test
@@ -12,6 +12,7 @@
call mtr.add_suppression("Checking table:");
call mtr.add_suppression("client is using or hasn't closed the table properly");
call mtr.add_suppression("Table .* is marked as crashed and should be repaired");
+call mtr.add_suppression("Could not read packet:.* errno: 11");
flush tables;
ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
diff --git a/mysql-test/suite/rpl/t/rpl_gtid_crash_myisam.test b/mysql-test/suite/rpl/t/rpl_gtid_crash_myisam.test
index faf388f5..e113e17b 100644
--- a/mysql-test/suite/rpl/t/rpl_gtid_crash_myisam.test
+++ b/mysql-test/suite/rpl/t/rpl_gtid_crash_myisam.test
@@ -5,6 +5,10 @@
--let $rpl_topology=1->2
--source include/rpl_init.inc
+--disable_query_log
+call mtr.add_suppression("Could not read packet:.* errno: 11");
+--enable_query_log
+
--echo *** Test crashing master with InnoDB disabled, the binlog gtid state should still be correctly recovered. ***
--connection server_1
diff --git a/mysql-test/suite/rpl/t/rpl_gtid_grouping.test b/mysql-test/suite/rpl/t/rpl_gtid_grouping.test
index 66448c4f..bb1057a6 100644
--- a/mysql-test/suite/rpl/t/rpl_gtid_grouping.test
+++ b/mysql-test/suite/rpl/t/rpl_gtid_grouping.test
@@ -93,5 +93,4 @@ CHANGE MASTER TO MASTER_USE_GTID=no;
--connection master
DROP TABLE t;
-SET GLOBAL LOG_WARNINGS=default;
--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_gtid_header_valid.test b/mysql-test/suite/rpl/t/rpl_gtid_header_valid.test
new file mode 100644
index 00000000..d4d75ba8
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_gtid_header_valid.test
@@ -0,0 +1,213 @@
+#
+# This test ensures that, when a GTID event is constructed by reading its
+# content from a binlog file, the reader (e.g. replica, in this test) cannot
+# read beyond the length of the GTID event. That is, we ensure that the
+# structure indicated by its flags and extra_flags are consistent with the
+# actual content of the event.
+#
+# To spoof a broken GTID log event, we use the DEBUG_DBUG mechanism to inject
+# the master to write invalid GTID events for each flag. The transaction is
+# given a commit id to ensure the event is not shorter than GTID_HEADER_LEN,
+# which would result in zero padding up to GTID_HEADER_LEN.
+#
+#
+# References:
+# MDEV-33672: Gtid_log_event Construction from File Should Ensure Event
+# Length When Using Extra Flags
+#
+
+--source include/have_debug.inc
+
+# GTID event extra_flags are format independent
+--source include/have_binlog_format_row.inc
+--source include/have_innodb.inc
+--source include/master-slave.inc
+
+--echo #
+--echo # Initialize test data
+--connection master
+create table t1 (a int) engine=innodb;
+--source include/save_master_gtid.inc
+set @@SESSION.debug_dbug= "+d,binlog_force_commit_id";
+
+--connection slave
+set SQL_LOG_BIN= 0;
+call mtr.add_suppression('Found invalid event in binary log');
+call mtr.add_suppression('Slave SQL.*Relay log read failure: Could not parse relay log event entry.* 1594');
+set SQL_LOG_BIN= 1;
+--source include/sync_with_master_gtid.inc
+--source include/stop_slave.inc
+--source include/start_slave.inc
+--let $cid_ctr= 100
+
+
+--echo #
+--echo # Test FL_PREPARED_XA
+--connection master
+set @@SESSION.debug_dbug= "+d,negate_xid_from_gtid";
+--eval set @commit_id= $cid_ctr
+
+XA START 'x1';
+insert into t1 values (1);
+XA END 'x1';
+XA PREPARE 'x1';
+set @@SESSION.debug_dbug= "-d,negate_xid_from_gtid";
+XA COMMIT 'x1';
+--source include/save_master_gtid.inc
+
+--echo # Waiting for slave to find invalid event..
+--connection slave
+let $slave_sql_errno= 1594; # ER_SLAVE_RELAY_LOG_READ_FAILURE
+source include/wait_for_slave_sql_error.inc;
+STOP SLAVE IO_THREAD;
+
+--echo # Reset master binlogs (as there is an invalid event) and slave state
+--connection master
+RESET MASTER;
+--connection slave
+RESET MASTER;
+RESET SLAVE;
+set @@global.gtid_slave_pos="";
+--source include/start_slave.inc
+
+
+--echo #
+--echo # Test FL_COMPLETED_XA
+--connection master
+--inc $cid_ctr
+--eval set @commit_id= $cid_ctr
+XA START 'x1';
+--let $next_val = `SELECT max(a)+1 FROM t1`
+--eval insert into t1 values ($next_val)
+XA END 'x1';
+XA PREPARE 'x1';
+set @@SESSION.debug_dbug= "+d,negate_xid_from_gtid";
+XA COMMIT 'x1';
+set @@SESSION.debug_dbug= "-d,negate_xid_from_gtid";
+--source include/save_master_gtid.inc
+
+--echo # Waiting for slave to find invalid event..
+--connection slave
+let $slave_sql_errno= 1594; # ER_SLAVE_RELAY_LOG_READ_FAILURE
+source include/wait_for_slave_sql_error.inc;
+STOP SLAVE IO_THREAD;
+
+--echo # Cleanup hanging XA PREPARE on slave
+set statement SQL_LOG_BIN=0 for XA COMMIT 'x1';
+
+--echo # Reset master binlogs (as there is an invalid event) and slave state
+--connection master
+RESET MASTER;
+--connection slave
+RESET MASTER;
+RESET SLAVE;
+set @@global.gtid_slave_pos="";
+--source include/start_slave.inc
+
+
+--echo #
+--echo # Test Missing xid.data (but has format id and length description parts)
+
+--connection master
+--eval set @commit_id= $cid_ctr
+
+XA START 'x1';
+insert into t1 values (1);
+XA END 'x1';
+XA PREPARE 'x1';
+set @@SESSION.debug_dbug= "+d,negate_xid_data_from_gtid";
+XA COMMIT 'x1';
+set @@SESSION.debug_dbug= "-d,negate_xid_data_from_gtid";
+--source include/save_master_gtid.inc
+
+--echo # Waiting for slave to find invalid event..
+--connection slave
+let $slave_sql_errno= 1594; # ER_SLAVE_RELAY_LOG_READ_FAILURE
+source include/wait_for_slave_sql_error.inc;
+STOP SLAVE IO_THREAD;
+
+--echo # Cleanup hanging XA PREPARE on slave
+set statement SQL_LOG_BIN=0 for XA COMMIT 'x1';
+
+--echo # Reset master binlogs (as there is an invalid event) and slave state
+--connection master
+RESET MASTER;
+--connection slave
+RESET MASTER;
+RESET SLAVE;
+set @@global.gtid_slave_pos="";
+--source include/start_slave.inc
+
+
+--echo #
+--echo # Test FL_EXTRA_MULTI_ENGINE
+--connection master
+set @old_dbug= @@SESSION.debug_dbug;
+set @@SESSION.debug_dbug= "+d,inject_fl_extra_multi_engine_into_gtid";
+--inc $cid_ctr
+--eval set @commit_id= $cid_ctr
+--let $next_val = `SELECT max(a)+1 FROM t1`
+--eval insert into t1 values ($next_val)
+--source include/save_master_gtid.inc
+set @@SESSION.debug_dbug=@old_dbug;
+
+--connection slave
+--echo # Waiting for slave to find invalid event..
+let $slave_sql_errno= 1594; # ER_SLAVE_RELAY_LOG_READ_FAILURE
+source include/wait_for_slave_sql_error.inc;
+STOP SLAVE IO_THREAD;
+
+--echo # Reset master binlogs (as there is an invalid event) and slave state
+--connection master
+RESET MASTER;
+
+--connection slave
+RESET SLAVE;
+RESET MASTER;
+set @@global.gtid_slave_pos="";
+--source include/start_slave.inc
+
+
+--echo #
+--echo # Test FL_COMMIT_ALTER
+--connection master
+set @old_dbug= @@SESSION.debug_dbug;
+set @@SESSION.debug_dbug= "+d,negate_alter_fl_from_gtid";
+set @old_alter_tp= @@SESSION.binlog_alter_two_phase;
+set @@SESSION.binlog_alter_two_phase= 1;
+alter table t1 add column (nc int);
+--source include/save_master_gtid.inc
+set @@SESSION.debug_dbug=@old_dbug;
+set @@SESSION.binlog_alter_two_phase=@old_alter_tp;
+
+--connection slave
+--echo # Waiting for slave to find invalid event..
+let $slave_sql_errno= 1594; # ER_SLAVE_RELAY_LOG_READ_FAILURE
+source include/wait_for_slave_sql_error.inc;
+STOP SLAVE IO_THREAD;
+
+--echo # Reset master binlogs (as there is an invalid event) and slave state
+--connection master
+RESET MASTER;
+
+--connection slave
+# Just to keep tables consistent between master/slave
+SET STATEMENT sql_log_bin=0 FOR alter table t1 add column (nc int);
+RESET SLAVE;
+RESET MASTER;
+set @@global.gtid_slave_pos="";
+--source include/start_slave.inc
+
+
+--echo #
+--echo # Cleanup
+
+--connection master
+drop table t1;
+--source include/save_master_gtid.inc
+
+--connection slave
+--source include/sync_with_master_gtid.inc
+
+--source include/rpl_end.inc
+--echo # End of rpl_gtid_header_valid.test
diff --git a/mysql-test/suite/rpl/t/rpl_gtid_stop_start.test b/mysql-test/suite/rpl/t/rpl_gtid_stop_start.test
index b5ff2949..acce6651 100644
--- a/mysql-test/suite/rpl/t/rpl_gtid_stop_start.test
+++ b/mysql-test/suite/rpl/t/rpl_gtid_stop_start.test
@@ -173,6 +173,24 @@ SELECT * FROM t1 ORDER BY a;
--echo *** MDEV-4486: Allow to start old-style replication even if mysql.gtid_slave_pos is unavailable
+# In GTID mode, the old-style replication position is also updated. But during
+# GTID connect, the old-style position is not known until receiving the fake
+# GTID list event, which contains the required position value. If we happened
+# to stop the slave above before this fake GTID list event, the test could fail
+# with duplicate key errors due to switching to non-GTID mode at a wrong
+# position too far back in the binlog.
+#
+# Work-around this by injecting an extra dummt event and syncing the slave to
+# it, ensuring the old-style position will be updated.
+#
+# This work-around could be removed after MDEV-33996 is fixed.
+--connection server_1
+INSERT INTO t1 VALUES (8);
+DELETE FROM t1 WHERE a=8;
+--save_master_pos
+--connection server_2
+--sync_with_master
+
--connection server_2
--source include/stop_slave.inc
CHANGE MASTER TO master_use_gtid= no;
diff --git a/mysql-test/suite/rpl/t/rpl_heartbeat.test b/mysql-test/suite/rpl/t/rpl_heartbeat.test
index e4753b7b..8a852fd3 100644
--- a/mysql-test/suite/rpl/t/rpl_heartbeat.test
+++ b/mysql-test/suite/rpl/t/rpl_heartbeat.test
@@ -8,14 +8,13 @@
# - SHOW STATUS like 'Slave_heartbeat_period' report
-- source include/have_log_bin.inc
-
-connect (master,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
-connect (slave,localhost,root,,test,$SLAVE_MYPORT,$SLAVE_MYSOCK);
+-- source include/master-slave.inc
connection master;
reset master;
connection slave;
+-- source include/stop_slave.inc
set @restore_slave_net_timeout= @@global.slave_net_timeout;
--disable_warnings
set @@global.slave_net_timeout= 10;
@@ -170,6 +169,5 @@ set @@global.slave_net_timeout= @restore_slave_net_timeout;
--disable_prepare_warnings
---source include/stop_slave.inc
-
+--source include/rpl_end.inc
--echo End of tests
diff --git a/mysql-test/suite/rpl/t/rpl_heartbeat_debug.test b/mysql-test/suite/rpl/t/rpl_heartbeat_debug.test
index bd66a249..e5937866 100644
--- a/mysql-test/suite/rpl/t/rpl_heartbeat_debug.test
+++ b/mysql-test/suite/rpl/t/rpl_heartbeat_debug.test
@@ -3,6 +3,12 @@
--source include/have_debug.inc
--source include/master-slave.inc
+--disable_query_log
+CALL mtr.add_suppression('SET @master_heartbeat_period to master failed with error');
+CALL mtr.add_suppression('Master command COM_REGISTER_SLAVE failed: failed registering on master, reconnecting to try again');
+call mtr.add_suppression("Could not read packet:.* errno: 11");
+--enable_query_log
+
connection slave;
--source include/stop_slave.inc
set @restore_slave_net_timeout= @@global.slave_net_timeout;
@@ -14,14 +20,13 @@ set @@global.slave_net_timeout= 10;
### Checking the range
###
-#
+
# default period slave_net_timeout/2
#
--query_vertical show status like 'Slave_heartbeat_period';
SET @saved_dbug= @@GLOBAL.debug_dbug;
SET GLOBAL debug_dbug="+d,simulate_slave_heartbeat_network_error";
-CALL mtr.add_suppression('SET @master_heartbeat_period to master failed with error');
-CALL mtr.add_suppression('Master command COM_REGISTER_SLAVE failed: failed registering on master, reconnecting to try again');
+
--source include/start_slave.inc
diff --git a/mysql-test/suite/rpl/t/rpl_mdev33798.cnf b/mysql-test/suite/rpl/t/rpl_mdev33798.cnf
new file mode 100644
index 00000000..8e5125ea
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_mdev33798.cnf
@@ -0,0 +1,17 @@
+!include suite/rpl/my.cnf
+
+[mysqld.1]
+log-slave-updates
+loose-innodb
+
+[mysqld.2]
+log-slave-updates
+loose-innodb
+
+[mysqld.3]
+log-slave-updates
+loose-innodb
+
+[ENV]
+SERVER_MYPORT_3= @mysqld.3.port
+SERVER_MYSOCK_3= @mysqld.3.socket
diff --git a/mysql-test/suite/rpl/t/rpl_mdev33798.test b/mysql-test/suite/rpl/t/rpl_mdev33798.test
new file mode 100644
index 00000000..1448ed91
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_mdev33798.test
@@ -0,0 +1,182 @@
+--source include/have_innodb.inc
+--source include/have_log_bin.inc
+--let $rpl_topology=1->2,1->3
+--source include/rpl_init.inc
+--connect (server_2b,127.0.0.1,root,,,$SERVER_MYPORT_2)
+
+--connection server_2
+SET @old_parallel_threads=@@GLOBAL.slave_parallel_threads;
+SET @old_parallel_mode= @@GLOBAL.slave_parallel_mode;
+SET @old_timeout= @@GLOBAL.lock_wait_timeout;
+SET @old_innodb_timeout= @@GLOBAL.innodb_lock_wait_timeout;
+--source include/stop_slave.inc
+SET GLOBAL slave_parallel_threads=5;
+set global slave_parallel_mode= aggressive;
+# High timeout so we get replication sync error and test failure if the
+# conflict handling is insufficient and lock wait timeout occurs.
+SET GLOBAL lock_wait_timeout= 86400;
+SET GLOBAL innodb_lock_wait_timeout= 86400;
+SET STATEMENT sql_log_bin=0 FOR ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
+--source include/start_slave.inc
+
+--connection server_1
+CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1, 0), (2, 0), (3, 0), (4, 0), (5, 0), (6, 0), (7, 0), (8, 0);
+--save_master_pos
+
+--connection server_2
+--sync_with_master
+--source include/stop_slave.inc
+
+# Test the following scenario:
+#
+# Transactions T1, T2 in domain 1, U1, U2 in domain 2.
+# Wait cycle T1->U2->U1->T2->T1 as follows:
+# T1 row lock wait on U2
+# U2 wait_for_prior_commit on U1
+# U1 row lock wait on T2
+# T2 wait_for_prior_commit on T1
+#
+# Test that the wait cycle is broken correctly with deadlock kill.
+
+--connection server_2b
+# Temporarily block T1 and U1.
+BEGIN;
+SELECT * FROM t1 WHERE a=1 FOR UPDATE;
+SELECT * FROM t1 WHERE a=5 FOR UPDATE;
+
+--connection server_1
+
+SET SESSION gtid_domain_id= 1;
+# T1 in domain 1
+BEGIN;
+UPDATE t1 SET b=1 WHERE a=1;
+UPDATE t1 SET b=1 WHERE a=7;
+COMMIT;
+# T2 in domain 1
+UPDATE t1 SET b=2 WHERE a=3;
+
+SET SESSION gtid_domain_id=2;
+# U1 in domain 2
+BEGIN;
+UPDATE t1 SET b=3 WHERE a=5;
+UPDATE t1 SET b=3 WHERE a=3;
+COMMIT;
+# U2 in domain 2
+UPDATE t1 SET b=4 WHERE a=7;
+SET SESSION gtid_domain_id= 0;
+--source include/save_master_gtid.inc
+
+--connection server_2
+--source include/start_slave.inc
+# Wait until T2, U2 are holding the row locks.
+--let $wait_condition= SELECT COUNT(*)=2 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE state LIKE '%Waiting for prior transaction to commit%'
+--source include/wait_condition.inc
+
+# Then let T1, U1 continue to conflict on the row locks, and check that
+# replication correctly handles the conflict.
+--connection server_2b
+ROLLBACK;
+
+--connection server_2
+--source include/sync_with_master_gtid.inc
+
+# Allow either domain to "win" on the conflicting updates.
+SELECT a, (
+ (a=1 AND b=1) OR
+ (a=3 AND (b=2 OR b=3)) OR
+ (a=5 AND b=3) OR
+ (a=7 AND (b=1 OR b=4)) OR
+ ((a MOD 2)=0 AND b=0)) AS `ok`
+ FROM t1
+ ORDER BY a;
+
+# Now try the same thing with multi-source replication.
+
+# Make server_3 a second master
+--connection server_3
+--source include/sync_with_master_gtid.inc
+--source include/stop_slave.inc
+
+--connection server_2
+--source include/stop_slave.inc
+--replace_result $SERVER_MYPORT_3 MYPORT_3
+eval CHANGE MASTER 'm2' to master_port=$SERVER_MYPORT_3 , master_host='127.0.0.1', master_user='root', master_use_gtid=slave_pos;
+
+--connection server_1
+
+SET SESSION gtid_domain_id= 1;
+# T1 in domain 1
+BEGIN;
+UPDATE t1 SET b=11 WHERE a=1;
+UPDATE t1 SET b=11 WHERE a=7;
+COMMIT;
+# T2 in domain 1
+UPDATE t1 SET b=12 WHERE a=3;
+SET SESSION gtid_domain_id= 1;
+
+--connection server_3
+SET SESSION gtid_domain_id=3;
+# U1 in domain 3
+BEGIN;
+UPDATE t1 SET b=13 WHERE a=5;
+UPDATE t1 SET b=13 WHERE a=3;
+COMMIT;
+# U2 in domain 3
+UPDATE t1 SET b=14 WHERE a=7;
+--source include/save_master_gtid.inc
+
+--connection server_2b
+# Temporarily block T1 and U1.
+BEGIN;
+SELECT * FROM t1 WHERE a=1 FOR UPDATE;
+SELECT * FROM t1 WHERE a=5 FOR UPDATE;
+
+START ALL SLAVES;
+# Wait until T2, U2 are holding the row locks.
+--let $wait_condition= SELECT COUNT(*)=2 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE state LIKE '%Waiting for prior transaction to commit%'
+--source include/wait_condition.inc
+
+--connection server_2b
+ROLLBACK;
+
+--connection server_1
+--source include/save_master_gtid.inc
+--connection server_2
+--source include/sync_with_master_gtid.inc
+--connection server_3
+--source include/save_master_gtid.inc
+--connection server_2
+--source include/sync_with_master_gtid.inc
+
+SELECT a, (
+ (a=1 AND b=11) OR
+ (a=3 AND (b=12 OR b=13)) OR
+ (a=5 AND b=13) OR
+ (a=7 AND (b=11 OR b=14)) OR
+ ((a MOD 2)=0 AND b=0)) AS `ok`
+ FROM t1
+ ORDER BY a;
+
+SET default_master_connection = 'm2';
+--source include/stop_slave.inc
+RESET SLAVE 'm2' ALL;
+SET default_master_connection = '';
+
+--connection server_3
+--source include/start_slave.inc
+
+# Cleanup
+
+--disconnect server_2b
+--connection server_1
+DROP TABLE t1;
+--connection server_2
+--source include/stop_slave.inc
+SET GLOBAL slave_parallel_threads=@old_parallel_threads;
+set global slave_parallel_mode= @old_parallel_mode;
+SET GLOBAL lock_wait_timeout= @old_timeout;
+SET GLOBAL innodb_lock_wait_timeout= @old_innodb_timeout;
+--source include/start_slave.inc
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_mysql_manager_race_condition.test b/mysql-test/suite/rpl/t/rpl_mysql_manager_race_condition.test
index 751da315..dd4a0fbb 100644
--- a/mysql-test/suite/rpl/t/rpl_mysql_manager_race_condition.test
+++ b/mysql-test/suite/rpl/t/rpl_mysql_manager_race_condition.test
@@ -18,8 +18,14 @@
# associated with this test should enforce that the binlog background thread is
# not created before the handle manager is initialized.
#
+# Addendum 1) This test is extended for MDEV-33799, as the original fix
+# left out the possibility that the binlog background thread can be
+# started during recovery if the binary log is used as the transaction
+# coordinator. This resulted in similar segfaults as seen by MDEV-26473.
+#
# References:
# MDEV-26473 mysqld got exception 0xc0000005 (rpl_slave_state/rpl_load_gtid_slave_state)
+# MDEV-33799 mysql_manager_submit Segfault at Startup Still Possible During Recovery
#
--source include/have_debug.inc
@@ -54,6 +60,63 @@ create table t1 (a int);
--echo #
+--echo # MDEV-33799
+--echo # Ensure that when the binary log is used for recovery (as tc log), that
+--echo # the recovery process cannot start the binlog background thread before
+--echo # the mysql handle manager has started.
+--connection slave
+
+--echo # Add test suppresssions so crash recovery messages don't fail the test
+set session sql_log_bin=0;
+call mtr.add_suppression("mariadbd: Got error '145.*");
+call mtr.add_suppression("Checking table:.*");
+call mtr.add_suppression("mysql.gtid_slave_pos:.*hasn't closed the table properly");
+call mtr.add_suppression("Can't init tc log");
+call mtr.add_suppression("Aborting");
+set session sql_log_bin=1;
+
+--echo # Create slave-side only table
+create table t2 (a int) engine=innodb;
+
+--write_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
+wait
+EOF
+
+--echo # Crash mariadbd when binlogging transaction to corrupt database state
+--connection slave1
+set @@session.debug_dbug="+d,crash_before_writing_xid";
+--send insert into t2 values (1)
+
+--connection slave
+--source include/wait_until_disconnected.inc
+
+--connection slave1
+--error 2013,ER_CONNECTION_KILLED
+--reap
+
+--echo # Restart mariadbd in recovery mode. Note --tc-heuristic-recover
+--echo # forces mysqld to exit with error, so we run mariadbd via CLI
+--echo # MYSQLD_LAST_CMD --debug_dbug="+d,delay_start_handle_manager" --tc-heuristic-recover=COMMIT
+--error 1
+--exec $MYSQLD_LAST_CMD --debug_dbug="+d,delay_start_handle_manager" --tc-heuristic-recover=COMMIT
+
+--append_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
+restart
+EOF
+
+--connection server_2
+--enable_reconnect
+--source include/wait_until_connected_again.inc
+--connection slave1
+--enable_reconnect
+--source include/wait_until_connected_again.inc
+--connection slave
+--enable_reconnect
+--source include/wait_until_connected_again.inc
+--source include/start_slave.inc
+
+
+--echo #
--echo # Cleanup
--echo #
@@ -63,5 +126,6 @@ drop table t1;
--connection slave
--source include/sync_with_master_gtid.inc
+drop table t2;
--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_packet.test b/mysql-test/suite/rpl/t/rpl_packet.test
index cbde486b..f1814e61 100644
--- a/mysql-test/suite/rpl/t/rpl_packet.test
+++ b/mysql-test/suite/rpl/t/rpl_packet.test
@@ -20,6 +20,9 @@ source include/master-slave.inc;
call mtr.add_suppression("Slave I/O: Got a packet bigger than 'slave_max_allowed_packet' bytes, .*error.* 1153");
call mtr.add_suppression("Log entry on master is longer than slave_max_allowed_packet");
+call mtr.add_suppression("Could not write packet:");
+call mtr.add_suppression("Got a packet bigger than 'max_allowed_packet' bytes");
+
let $db= DB_NAME_OF_MAX_LENGTH_AKA_NAME_LEN_64_BYTES_____________________;
disable_warnings;
eval drop database if exists $db;
diff --git a/mysql-test/suite/rpl/t/rpl_parallel_gco_wait_kill.test b/mysql-test/suite/rpl/t/rpl_parallel_gco_wait_kill.test
index c5d2b85c..c34c4f20 100644
--- a/mysql-test/suite/rpl/t/rpl_parallel_gco_wait_kill.test
+++ b/mysql-test/suite/rpl/t/rpl_parallel_gco_wait_kill.test
@@ -300,7 +300,7 @@ SET GLOBAL slave_parallel_threads=10;
# Find the thread id of the driver SQL thread that we want to kill.
--let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE '%Slave has read all relay log%'
--source include/wait_condition.inc
---let $thd_id= `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE '%Slave has read all relay log%'`
+--let $thd_id= `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE '%relay log%'`
SET @old_max_queued= @@GLOBAL.slave_parallel_max_queued;
SET GLOBAL slave_parallel_max_queued=9000;
diff --git a/mysql-test/suite/rpl/t/rpl_parallel_multi_domain_xa.test b/mysql-test/suite/rpl/t/rpl_parallel_multi_domain_xa.test
new file mode 100644
index 00000000..f17634d4
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_parallel_multi_domain_xa.test
@@ -0,0 +1,181 @@
+# Similar to rpl_parallel_optimistic_xa to verify XA
+# parallel execution with multiple gtid domain.
+# References:
+# MDEV-33668 Adapt parallel slave's round-robin scheduling to XA events
+
+--source include/have_innodb.inc
+--source include/have_perfschema.inc
+--source include/master-slave.inc
+
+# Tests' global declarations
+--let $trx = _trx_
+--let $slave_timeout= -1
+
+call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction");
+call mtr.add_suppression("WSREP: handlerton rollback failed");
+
+--connection master
+ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
+--save_master_pos
+
+# Prepare to restart slave into optimistic parallel mode
+--connection slave
+--sync_with_master
+--source include/stop_slave.inc
+# This test runs huge number of transactions independently in parallel that
+# all conflict on a single row. This requires a large number of retries, as a
+# transaction can repeatedly conflict/deadlock with a large number of other
+# transactions (in a different domain) one by one.
+SET @old_transaction_retries = @@GLOBAL.slave_transaction_retries;
+SET @@global.slave_transaction_retries = 1000;
+SET @old_parallel_threads = @@GLOBAL.slave_parallel_threads;
+SET @old_slave_domain_parallel_threads = @@GLOBAL.slave_domain_parallel_threads;
+SET @@global.slave_parallel_threads = 5;
+SET @@global.slave_domain_parallel_threads = 3;
+SET @old_parallel_mode = @@GLOBAL.slave_parallel_mode;
+
+CHANGE MASTER TO master_use_gtid=slave_pos;
+
+--connection master
+CREATE TABLE t1 (a int PRIMARY KEY, b INT) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1, 0);
+--source include/save_master_gtid.inc
+
+--connection slave
+--source include/start_slave.inc
+--source include/sync_with_master_gtid.inc
+--source include/stop_slave.inc
+
+--let $mode = 2
+# mode = 2 is optimistic
+SET @@global.slave_parallel_mode ='optimistic';
+while ($mode)
+{
+ --connection master
+ #
+ # create XA events alternating gtid domains to run them in parallel on slave.
+ #
+ --let $domain_num = 3
+ --let $trx_num = 777
+ --let $i = $trx_num
+ --let $conn = master
+ --disable_query_log
+ while($i > 0)
+ {
+ --let $domain_id = `SELECT $i % $domain_num`
+ --eval set @@gtid_domain_id = $domain_id
+ # 'decision' to commit 0, or rollback 1
+ --let $decision = `SELECT $i % 2`
+ --eval XA START '$conn$trx$i'
+ --eval UPDATE t1 SET b = 1 - 2 * $decision WHERE a = 1
+ --eval XA END '$conn$trx$i'
+ --eval XA PREPARE '$conn$trx$i'
+ --let $term = COMMIT
+ if ($decision)
+ {
+ --let $term = ROLLBACK
+ }
+ --eval XA $term '$conn$trx$i'
+
+ --dec $i
+ }
+ --enable_query_log
+ --source include/save_master_gtid.inc
+
+ --connection slave
+ if (`select $mode = 1`)
+ {
+ SET @@global.slave_parallel_mode ='conservative';
+ }
+ --source include/start_slave.inc
+ --source include/sync_with_master_gtid.inc
+ --source include/stop_slave.inc
+
+ --dec $mode
+}
+
+
+# Generations test.
+# Create few ranges of XAP groups length of greater than
+# 3 * slave_parallel_threads + 1
+# terminated upon each range.
+--let $iter = 3
+--let $generation_len = @@global.slave_parallel_threads
+--let $domain_num = 3
+--disable_query_log
+--connection master
+while ($iter)
+{
+ --let $k = `select 3 * 3 * $generation_len`
+ --let $_k = $k
+ while ($k)
+ {
+ --source include/count_sessions.inc
+ --connect(con$k,localhost,root,,)
+ #
+ # create XA events alternating gtid domains to run them in parallel on slave.
+ #
+ --let $domain_id = `SELECT $k % $domain_num`
+ --eval set @@gtid_domain_id = $domain_id
+ --eval XA START '$trx$k'
+ --eval INSERT INTO t1 VALUES ($k + 1, $iter)
+ --eval XA END '$trx$k'
+ --eval XA PREPARE '$trx$k'
+
+ --disconnect con$k
+ --connection master
+ --source include/wait_until_count_sessions.inc
+
+ --dec $k
+ }
+
+ --connection master
+ --let $k = $_k
+ while ($k)
+ {
+ --let $term = COMMIT
+ --let $decision = `SELECT $k % 2`
+ if ($decision)
+ {
+ --let $term = ROLLBACK
+ }
+ --eval XA $term '$trx$k'
+ }
+ --dec $iter
+}
+--enable_query_log
+--source include/save_master_gtid.inc
+
+--connection slave
+SET @@global.slave_parallel_mode = 'optimistic';
+--source include/start_slave.inc
+--source include/sync_with_master_gtid.inc
+
+
+#
+# Overall consistency check
+#
+--let $diff_tables= master:t1, slave:t1
+--source include/diff_tables.inc
+
+
+#
+# Clean up.
+#
+--connection slave
+--source include/stop_slave.inc
+SET @@global.slave_parallel_mode = @old_parallel_mode;
+SET @@global.slave_parallel_threads = @old_parallel_threads;
+SET @@global.slave_domain_parallel_threads = @old_slave_domain_parallel_threads;
+SET @@global.slave_transaction_retries = @old_transaction_retries;
+--source include/start_slave.inc
+
+--connection master
+DROP TABLE t1;
+--source include/save_master_gtid.inc
+
+--connection slave
+--source include/sync_with_master_gtid.inc
+
+--connection master
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_parallel_optimistic.test b/mysql-test/suite/rpl/t/rpl_parallel_optimistic.test
index f5e48282..09da8c2d 100644
--- a/mysql-test/suite/rpl/t/rpl_parallel_optimistic.test
+++ b/mysql-test/suite/rpl/t/rpl_parallel_optimistic.test
@@ -508,6 +508,7 @@ DELETE FROM t2;
# The 1st of the following two trx:s a blocker on slave
--connection server_2
+SET @org_log_warnings=@@GLOBAL.LOG_WARNINGS;
set global log_warnings=2;
BEGIN;
INSERT INTO t1 SET a=1;
@@ -555,7 +556,7 @@ DELETE FROM t2;
#
--connection server_2
--source include/stop_slave.inc
-set global log_warnings=default;
+set global log_warnings=@org_log_warnings;
SET GLOBAL slave_parallel_mode=@old_parallel_mode;
SET GLOBAL slave_parallel_threads=@old_parallel_threads;
--source include/start_slave.inc
diff --git a/mysql-test/suite/rpl/t/rpl_parallel_optimistic_xa.test b/mysql-test/suite/rpl/t/rpl_parallel_optimistic_xa.test
index 35c22d1e..6e5cf436 100644
--- a/mysql-test/suite/rpl/t/rpl_parallel_optimistic_xa.test
+++ b/mysql-test/suite/rpl/t/rpl_parallel_optimistic_xa.test
@@ -206,7 +206,6 @@ while($i > 0)
#
--connection slave
--source include/stop_slave.inc
-set global log_warnings=default;
SET GLOBAL slave_parallel_mode=@old_parallel_mode;
SET GLOBAL slave_parallel_threads=@old_parallel_threads;
--source include/start_slave.inc
diff --git a/mysql-test/suite/rpl/t/rpl_parallel_retry.test b/mysql-test/suite/rpl/t/rpl_parallel_retry.test
index fe6f40d2..1e87c85c 100644
--- a/mysql-test/suite/rpl/t/rpl_parallel_retry.test
+++ b/mysql-test/suite/rpl/t/rpl_parallel_retry.test
@@ -411,6 +411,44 @@ DROP function foo;
--sync_slave_with_master server_2
#
+# MDEV-33303: slave_parallel_mode=optimistic should not report the mode's
+# specific temporary errors.
+#
+
+--connection server_2
+--source include/stop_slave.inc
+SET @old_parallel_threads=@@GLOBAL.slave_parallel_threads;
+SET GLOBAL slave_parallel_threads=4;
+
+--connection server_1
+# The problem occurred in the code path for row-based updates in tables
+# with no primary/unique key, where a scan is needed.
+CREATE TABLE t1 (a INT, b VARCHAR(123)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES(1, 'asdf');
+UPDATE t1 SET b='zxf1' WHERE a=1;
+UPDATE t1 SET b='\n' WHERE a=1;
+
+--connection server_2
+# Inject a small sleep in the code that makes the race easier to hit.
+SET @old_dbug=@@GLOBAL.debug_dbug;
+SET GLOBAL debug_dbug="+d,write_row_inject_sleep_before_ha_write_row";
+--source include/start_slave.inc
+
+--connection server_1
+# Here, we would get errors in the slave's error log:
+# [ERROR] mariadbd: Can't find record in 't1'
+--sync_slave_with_master server_2
+
+--connection server_1
+DROP TABLE t1;
+--sync_slave_with_master server_2
+--source include/stop_slave.inc
+SET GLOBAL debug_dbug=@old_dbug;
+SET GLOBAL slave_parallel_threads=@old_parallel_threads;
+--source include/start_slave.inc
+
+
+#
# MDEV-12746 rpl.rpl_parallel_optimistic_nobinlog fails committing out of order at retry
#
diff --git a/mysql-test/suite/rpl/t/rpl_parallel_sbm.test b/mysql-test/suite/rpl/t/rpl_parallel_sbm.test
index 58c0db15..90753caf 100644
--- a/mysql-test/suite/rpl/t/rpl_parallel_sbm.test
+++ b/mysql-test/suite/rpl/t/rpl_parallel_sbm.test
@@ -1,9 +1,9 @@
#
# Ensure that Seconds_Behind_Master works correctly on the parallel replica.
#
---source include/master-slave.inc
--source include/have_log_bin.inc
--source include/have_debug.inc
+--source include/master-slave.inc
--echo #
--echo # MDEV-29639: Seconds_Behind_Master is incorrect for Delayed, Parallel Replicas
@@ -67,11 +67,18 @@ if (`SELECT $sbm_trx1_arrive > ($seconds_since_idling + 1)`)
--echo # if the event is still to be delayed, SBM should resume accordingly
--source include/stop_slave.inc
+
+--echo # Lock t1 on slave to ensure the event can't finish (and thereby update
+--echo # Seconds_Behind_Master) so slow running servers don't accidentally
+--echo # catch up to the master before checking SBM.
+--connection server_2
+LOCK TABLES t1 WRITE;
+
--source include/start_slave.inc
--connection slave
---echo # Waiting for replica to resume the delay for the transaction
---let $wait_condition= SELECT count(*) FROM information_schema.processlist WHERE state LIKE 'Waiting until MASTER_DELAY seconds after master executed event';
+--echo # Waiting for replica to get blocked by the table lock
+--let $wait_condition= SELECT count(*) FROM information_schema.processlist WHERE state LIKE 'Waiting for table metadata lock';
--source include/wait_condition.inc
--echo # Sleeping 1s to increment SBM
@@ -86,6 +93,9 @@ if (`SELECT $sbm_trx1_after_1s_sleep <= $sbm_trx1_arrive`)
}
--echo # ..done
+--connection server_2
+UNLOCK TABLES;
+
--source include/sync_with_master_gtid.inc
--echo #
diff --git a/mysql-test/suite/rpl/t/rpl_parallel_seq.test b/mysql-test/suite/rpl/t/rpl_parallel_seq.test
index b1b15412..cc361a7b 100644
--- a/mysql-test/suite/rpl/t/rpl_parallel_seq.test
+++ b/mysql-test/suite/rpl/t/rpl_parallel_seq.test
@@ -195,4 +195,22 @@ DROP TABLE ti;
--sync_slave_with_master
+# MDEV-31779 server crash in Rows_log_event::update_sequence at replaying binlog
+--connection master
+--let $binlog_file = query_get_value(SHOW MASTER STATUS, File, 1)
+--let $binlog_start = query_get_value(SHOW MASTER STATUS, Position, 1)
+CREATE SEQUENCE s;
+--disable_ps2_protocol
+SELECT NEXTVAL(s);
+--enable_ps2_protocol
+flush binary logs;
+DROP SEQUENCE s;
+--exec $MYSQL_BINLOG $datadir/$binlog_file | $MYSQL test
+DROP SEQUENCE s;
+
+--sync_slave_with_master
+
+--connection master
+
+
--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_parallel_slave_bgc_kill.test b/mysql-test/suite/rpl/t/rpl_parallel_slave_bgc_kill.test
index efb998b0..94f19a6c 100644
--- a/mysql-test/suite/rpl/t/rpl_parallel_slave_bgc_kill.test
+++ b/mysql-test/suite/rpl/t/rpl_parallel_slave_bgc_kill.test
@@ -295,13 +295,14 @@ CREATE FUNCTION foo(x INT, d1 VARCHAR(500), d2 VARCHAR(500))
||
--delimiter ;
SET sql_log_bin=1;
-
+--source include/stop_slave_io.inc
--connection server_1
INSERT INTO t3 VALUES (49,0);
--save_master_pos
--connection server_2
-START SLAVE SQL_THREAD;
+CHANGE MASTER TO master_use_gtid=no;
+--source include/start_slave.inc
--sync_with_master
SELECT * FROM t3 WHERE a >= 40 ORDER BY a;
# Restore the foo() function.
@@ -334,11 +335,6 @@ SET GLOBAL slave_parallel_threads=10;
--echo *** 3. Same as (2), but not using gtid mode ***
---connection server_2
---source include/stop_slave.inc
-CHANGE MASTER TO master_use_gtid=no;
---source include/start_slave.inc
-
--connection server_1
# Set up three transactions on the master that will be group-committed
# together so they can be replicated in parallel on the slave.
diff --git a/mysql-test/suite/rpl/t/rpl_parallel_stop_slave.test b/mysql-test/suite/rpl/t/rpl_parallel_stop_slave.test
index 35879e98..1610292e 100644
--- a/mysql-test/suite/rpl/t/rpl_parallel_stop_slave.test
+++ b/mysql-test/suite/rpl/t/rpl_parallel_stop_slave.test
@@ -57,6 +57,7 @@ COMMIT;
INSERT INTO t3 VALUES(21, 21);
INSERT INTO t3 VALUES(22, 22);
--save_master_pos
+--let $master_pos= query_get_value(SHOW MASTER STATUS, Position, 1)
# Start a connection that will block the replicated transaction halfway.
--connection con_temp1
@@ -64,7 +65,27 @@ BEGIN;
INSERT INTO t2 VALUES (21);
--connection server_2
-START SLAVE;
+
+#
+# Parallel replication will complete any in-progress event group at STOP SLAVE,
+# but only if the event group is already queued up for the worker thread. If
+# the SQL driver thread is delayed in queueing up events, the parallel worker
+# thread can abort the event group, leaving the non-transactional update to the
+# MyISAM table that cannot be rolled back (MDEV-7432). If this happens the test
+# would fail with duplicate key error after slave restart.
+#
+# To avoid this, we here wait for the IO thread to read all master events, and
+# for the SQL driver thread to queue all the events for workers. This wait
+# should be removed if/when MDEV-7432 is fixed.
+#
+START SLAVE IO_THREAD;
+--let $slave_param= Read_Master_Log_Pos
+--let $slave_param_value= $master_pos
+--source include/wait_for_slave_param.inc
+START SLAVE SQL_THREAD;
+--let $wait_condition= SELECT COUNT(*)=1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE State LIKE '%Slave has read all relay log; waiting for more updates%'
+--source include/wait_condition.inc
+
# Wait for the MyISAM change to be visible, after which replication will wait
# for con_temp1 to roll back.
--let $wait_condition= SELECT COUNT(*) = 1 FROM t1 WHERE a=20
diff --git a/mysql-test/suite/rpl/t/rpl_parallel_temptable.test b/mysql-test/suite/rpl/t/rpl_parallel_temptable.test
index 3684763d..8bab4af2 100644
--- a/mysql-test/suite/rpl/t/rpl_parallel_temptable.test
+++ b/mysql-test/suite/rpl/t/rpl_parallel_temptable.test
@@ -264,6 +264,30 @@ SET GLOBAL slave_parallel_mode=@old_mode;
--source include/start_slave.inc
+--echo *** MDEV33426: Memory allocation accounting incorrect for replicated temptable
+--connection server_1
+CREATE TEMPORARY TABLE t5 (a int) ENGINE=Aria;
+CREATE TEMPORARY TABLE t6 (a int) ENGINE=Heap;
+INSERT INTO t5 VALUES (1);
+INSERT INTO t6 VALUES (2);
+--save_master_pos
+
+--connection server_2
+--sync_with_master
+--source include/stop_slave.inc
+
+--connection server_1
+INSERT INTO t1 SELECT a+40, 5 FROM t5;
+INSERT INTO t1 SELECT a+40, 6 FROM t6;
+DROP TABLE t5, t6;
+
+--save_master_pos
+
+--connection server_2
+--source include/start_slave.inc
+--sync_with_master
+SELECT * FROM t1 WHERE a>=40 ORDER BY a;
+
# Clean up.
--connection server_2
diff --git a/mysql-test/suite/rpl/t/rpl_relay_max_extension.test b/mysql-test/suite/rpl/t/rpl_relay_max_extension.test
index acca2f69..b6a8ccb5 100644
--- a/mysql-test/suite/rpl/t/rpl_relay_max_extension.test
+++ b/mysql-test/suite/rpl/t/rpl_relay_max_extension.test
@@ -47,7 +47,7 @@ RESET SLAVE;
--echo #
--let $datadir = `select @@datadir`
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
+--write_line wait $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
--shutdown_server 10
--source include/wait_until_disconnected.inc
@@ -64,7 +64,7 @@ RESET SLAVE;
--echo # Restart slave server
--echo #
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
SET @save_slave_parallel_threads= @@GLOBAL.slave_parallel_threads;
diff --git a/mysql-test/suite/rpl/t/rpl_rewrite_db_sys_vars.test b/mysql-test/suite/rpl/t/rpl_rewrite_db_sys_vars.test
index 27710063..fab78a92 100644
--- a/mysql-test/suite/rpl/t/rpl_rewrite_db_sys_vars.test
+++ b/mysql-test/suite/rpl/t/rpl_rewrite_db_sys_vars.test
@@ -19,15 +19,8 @@ create database replica_db1;
create database y;
# This DB will be rewrited from test case
create database test_replica;
-SELECT @@GLOBAL.replicate_rewrite_db;
let $rewrite_db_sss= query_get_value(SHOW SLAVE STATUS, Replicate_Rewrite_DB, 1);
---echo # Ensuring SHOW SLAVE STATUS produces correct value for Replicate_Rewrite_DB...
-if (`SELECT strcmp(@@global.replicate_rewrite_db, "$rewrite_db_sss") != 0`)
-{
- die SHOW SLAVE STATUS Replicate_Rewrite_DB value $rewrite_db_sss does not match variable @@GLOBAL.replicate_rewrite_db;
-}
---echo # ...success
-
+eval SELECT @@GLOBAL.replicate_rewrite_db, '$rewrite_db_sss' as 'Replicate_Rewrite_DB from SHOW SLAVE STATUS';
--echo # Create DBs and tables on primary
connection master;
@@ -63,16 +56,10 @@ source include/stop_slave.inc;
SET @save_replicate_rewrite_db = @@GLOBAL.replicate_rewrite_db;
SELECT @@GLOBAL.replicate_rewrite_db;
SET @@GLOBAL.replicate_rewrite_db="test_master->test_replica";
-SELECT @@GLOBAL.replicate_rewrite_db;
SHOW DATABASES like 'test_replica';
source include/start_slave.inc;
let $rewrite_db_sss= query_get_value(SHOW SLAVE STATUS, Replicate_Rewrite_DB, 1);
---echo # Ensuring SHOW SLAVE STATUS produces correct value for Replicate_Rewrite_DB...
-if (`SELECT strcmp(@@global.replicate_rewrite_db, "$rewrite_db_sss") != 0`)
-{
- die SHOW SLAVE STATUS Replicate_Rewrite_DB value $rewrite_db_sss does not match variable @@GLOBAL.replicate_rewrite_db;
-}
---echo # ...success
+eval SELECT @@GLOBAL.replicate_rewrite_db, '$rewrite_db_sss' as 'Replicate_Rewrite_DB from SHOW SLAVE STATUS';
--echo # Create DB and tables on primary
connection master;
@@ -101,6 +88,9 @@ select * from test_replica.my_table;
--source include/diff_tables.inc
--echo # Update of values on primary for DB not set in replication_rewrite_db
+--source include/stop_slave.inc
+--source include/reset_slave.inc
+
connection master;
use x;
insert into my_table values (314);
@@ -108,9 +98,6 @@ select * from my_table;
--source include/save_master_gtid.inc
connection slave;
---let $rpl_only_running_threads=1
---source include/stop_slave.inc
---source include/reset_slave.inc
--source include/start_slave.inc
SELECT @@GLOBAL.replicate_rewrite_db;
--source include/sync_with_master_gtid.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_find_row_debug.test b/mysql-test/suite/rpl/t/rpl_row_find_row_debug.test
index e3edabe2..f06b2982 100644
--- a/mysql-test/suite/rpl/t/rpl_row_find_row_debug.test
+++ b/mysql-test/suite/rpl/t/rpl_row_find_row_debug.test
@@ -51,7 +51,9 @@ DROP TABLE t1;
# cleanup
--source include/stop_slave.inc
SET @@GLOBAL.debug_dbug = @saved_dbug;
+--disable_query_log
--eval SET GLOBAL log_warnings = $log_warnings_save
+--enable_query_log
--source include/start_slave.inc
--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_semi_sync_cond_var_per_thd.cnf b/mysql-test/suite/rpl/t/rpl_semi_sync_cond_var_per_thd.cnf
new file mode 100644
index 00000000..e8e03e71
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_semi_sync_cond_var_per_thd.cnf
@@ -0,0 +1,10 @@
+!include ../my.cnf
+
+[mysqld.1]
+log-warnings=9
+rpl_semi_sync_master_enabled=1
+rpl_semi_sync_master_wait_point=AFTER_COMMIT
+
+[mysqld.2]
+log-warnings=9
+rpl_semi_sync_slave_enabled=1
diff --git a/mysql-test/suite/rpl/t/rpl_semi_sync_cond_var_per_thd.test b/mysql-test/suite/rpl/t/rpl_semi_sync_cond_var_per_thd.test
new file mode 100644
index 00000000..65b6e8b4
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_semi_sync_cond_var_per_thd.test
@@ -0,0 +1,77 @@
+#
+# This test ensures that, when using semi-sync with the wait_point
+# AFTER_COMMIT, each thread awaiting an ACK is only woken up when its ACK (or
+# an ACK for a later commit in binlog) has been received from the slave.
+#
+# Prior to MDEV-33551, all threads would be woken up for each ACK received,
+# leading to large slowdowns, as each thread would check if the ACK was for it
+# in mutual exclusion from the others.
+#
+# To ensure this, a debug-build-only log warning is added into
+# Repl_semi_sync_master::commit_trx() at wakeup time, which will complain if
+# the awoken thread's binlog wait coordinates are after the coordinate of the
+# last ACK coordinates. Then, we use binlog group commit to commit a series of
+# transactions, such that each will await an ACK concurrently. After all
+# transactions have been finished (i.e. ACKed and committed), we check the log
+# for the expected absence of the added debug warning message.
+#
+#
+# References:
+# MDEV-33551: Semi-sync Wait Point AFTER_COMMIT Slow on Workloads with Heavy
+# Concurrency
+#
+--source include/have_binlog_format_row.inc
+--source include/have_debug.inc
+--source include/master-slave.inc
+
+--connection master
+call mtr.add_suppression("Got an error reading communication packets");
+set @save_bgc_count= @@global.binlog_commit_wait_count;
+set @save_bgc_usec= @@global.binlog_commit_wait_usec;
+set @save_debug_dbug= @@global.debug_dbug;
+set @@global.binlog_commit_wait_count=3;
+set @@global.binlog_commit_wait_usec=10000000;
+set @@global.debug_dbug="+d,testing_cond_var_per_thd";
+
+--echo # Ensure semi-sync is on
+--connection slave
+let $status_var= rpl_semi_sync_slave_status;
+let $status_var_value= ON;
+source include/wait_for_status_var.inc;
+
+--connection master
+let $status_var= rpl_semi_sync_master_status;
+let $status_var_value= ON;
+source include/wait_for_status_var.inc;
+
+--echo # Create three transactions to binlog group commit together
+--connection master
+--send create table t1 (a int)
+--connection server_1
+--send create table t2 (a int)
+--connection default
+--send create table t3 (a int)
+
+--connection master
+--reap
+--connection server_1
+--reap
+--connection default
+--reap
+
+--let $assert_text= Check that there is no 'Thread awaiting semi-sync ACK was awoken before its ACK' warning in error log.
+--let $assert_select=Thread awaiting semi-sync ACK was awoken before its ACK
+--let $assert_file= $MYSQLTEST_VARDIR/log/mysqld.1.err
+--let $assert_count= 0
+--let $assert_only_after=CURRENT_TEST
+--source include/assert_grep.inc
+
+--echo #
+--echo # Cleanup
+--connection master
+set @@global.binlog_commit_wait_count=@save_bgc_count;
+set @@global.binlog_commit_wait_usec=@save_bgc_usec;
+set @@global.debug_dbug=@save_debug_dbug;
+drop table t1, t2, t3;
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_semi_sync_crash.inc b/mysql-test/suite/rpl/t/rpl_semi_sync_crash.inc
index 01b0d0e5..bb705d39 100644
--- a/mysql-test/suite/rpl/t/rpl_semi_sync_crash.inc
+++ b/mysql-test/suite/rpl/t/rpl_semi_sync_crash.inc
@@ -34,14 +34,16 @@ if ($case == 1)
if ($case == 2)
{
SET DEBUG_SYNC= "commit_before_get_LOCK_commit_ordered SIGNAL con1_ready WAIT_FOR con1_go";
+ SET DEBUG_SYNC= "commit_after_release_LOCK_after_binlog_sync WAIT_FOR con1_go1";
--send_eval $query_to_crash
--connect (conn_client_2,127.0.0.1,root,,test,$SERVER_MYPORT_2,)
# use the same signal with $query_to_crash
SET DEBUG_SYNC= "now WAIT_FOR con1_ready";
- SET GLOBAL debug_dbug="d,Notify_binlog_EOF";
+ SET DEBUG_SYNC= "commit_before_get_LOCK_after_binlog_sync SIGNAL con1_go";
+ SET DEBUG_SYNC= "commit_before_get_LOCK_commit_ordered SIGNAL con2_ready";
--send_eval $query2_to_crash
--connection server_$server_to_crash
- SET DEBUG_SYNC= "now WAIT_FOR eof_reached";
+ SET DEBUG_SYNC= "now WAIT_FOR con2_ready";
--source include/kill_mysqld.inc
}
@@ -68,9 +70,7 @@ source include/wait_for_slave_param.inc;
--error 2003
--source include/stop_slave.inc
---let $assert_cond= COUNT(*) = $expected_rows_on_slave FROM t1
---let $assert_text= Table t1 should have $expected_rows_on_slave rows.
---source include/assert.inc
+--eval select count(*) 'on slave must be $expected_rows_on_slave' from t1
SELECT @@GLOBAL.gtid_current_pos;
@@ -81,9 +81,21 @@ SELECT @@GLOBAL.gtid_current_pos;
--enable_reconnect
--source include/wait_until_connected_again.inc
---let $assert_cond= COUNT(*) = $expected_rows_on_master FROM t1
---let $assert_text= Table t1 should have $expected_rows_on_master rows.
---source include/assert.inc
+--let $slave_semi_sync_enabled= query_get_value(SHOW VARIABLES LIKE 'Rpl_semi_sync_slave_enabled', Value, 1)
+--echo # Ensuring variable rpl_semi_sync_slave_enabled is ON..
+if (`SELECT strcmp("ON", "$slave_semi_sync_enabled") != 0`)
+{
+ --die Slave started with rpl_semi_sync_slave_enabled=1 yet it is OFF in the variable output
+}
+
+--let $slave_semi_sync_status= query_get_value(SHOW STATUS LIKE 'Rpl_semi_sync_slave_status', Value, 1)
+--echo # Ensuring status rpl_semi_sync_slave_status is OFF..
+if (`SELECT strcmp("OFF", "$slave_semi_sync_status") != 0`)
+{
+ --die Slave started with skip-slave-start yet started with rpl_semi_sync_slave_status=ON
+}
+
+--eval select count(*) 'on master must be $expected_rows_on_master' from t1
# Check error log for correct messages.
let $log_error_ = $MYSQLTEST_VARDIR/log/mysqld.$server_to_crash.err;
diff --git a/mysql-test/suite/rpl/t/rpl_semi_sync_fail_over.test b/mysql-test/suite/rpl/t/rpl_semi_sync_fail_over.test
index 17d7b50d..e4d0bc0a 100644
--- a/mysql-test/suite/rpl/t/rpl_semi_sync_fail_over.test
+++ b/mysql-test/suite/rpl/t/rpl_semi_sync_fail_over.test
@@ -10,6 +10,11 @@
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
+--disable_query_log
+call mtr.add_suppression("Could not read packet:.* errno: 11");
+flush tables;
+--enable_query_log
+
# Initial slave
--connection server_2
--source include/stop_slave.inc
@@ -78,7 +83,7 @@ SHOW VARIABLES LIKE 'gtid_slave_pos';
--connection server_1
--sync_with_master
---eval SELECT COUNT(*) = $rows_so_far as 'true' FROM t1
+--eval SELECT COUNT(*) 'must be $rows_so_far' FROM t1
--echo # ... the gtid states on the slave:
SHOW VARIABLES LIKE 'gtid_slave_pos';
SHOW VARIABLES LIKE 'gtid_binlog_pos';
@@ -129,7 +134,7 @@ SHOW VARIABLES LIKE 'gtid_slave_pos';
--connection server_2
--sync_with_master
---eval SELECT COUNT(*) = $rows_so_far as 'true' FROM t1
+--eval SELECT COUNT(*) 'must be $rows_so_far as' FROM t1
--echo # ... the gtid states on the slave:
SHOW VARIABLES LIKE 'gtid_slave_pos';
SHOW VARIABLES LIKE 'gtid_binlog_pos';
@@ -180,7 +185,7 @@ SHOW VARIABLES LIKE 'gtid_slave_pos';
--connection server_1
--source include/sync_with_master_gtid.inc
---eval SELECT COUNT(*) = $rows_so_far as 'true' FROM t1
+--eval SELECT COUNT(*) 'must be $rows_so_far' FROM t1
--echo # ... the gtid states on the slave:
SHOW VARIABLES LIKE 'gtid_slave_pos';
SHOW VARIABLES LIKE 'gtid_binlog_pos';
diff --git a/mysql-test/suite/rpl/t/rpl_semi_sync_master_shutdown.test b/mysql-test/suite/rpl/t/rpl_semi_sync_master_shutdown.test
index 05e6fcca..d653d84c 100644
--- a/mysql-test/suite/rpl/t/rpl_semi_sync_master_shutdown.test
+++ b/mysql-test/suite/rpl/t/rpl_semi_sync_master_shutdown.test
@@ -4,19 +4,17 @@
# finishes off as specified in particular trying to connect even to a shut down
# master for a semisync firewell routine.
-source include/not_embedded.inc;
-source include/have_debug.inc;
source include/master-slave.inc;
--connection master
---let $sav_enabled_master=`SELECT @@GLOBAL.rpl_semi_sync_master_enabled `
+--let $sav_enabled_master=`SELECT @@GLOBAL.rpl_semi_sync_master_enabled`
SET @@GLOBAL.rpl_semi_sync_master_enabled = 1;
--connection slave
source include/stop_slave.inc;
---let $sav_enabled_slave=`SELECT @@GLOBAL.rpl_semi_sync_slave_enabled `
-SET @@GLOBAL. rpl_semi_sync_slave_enabled = 1;
+--let $sav_enabled_slave=`SELECT @@GLOBAL.rpl_semi_sync_slave_enabled`
+SET @@GLOBAL.rpl_semi_sync_slave_enabled = 1;
source include/start_slave.inc;
--connection master
@@ -52,7 +50,6 @@ source include/rpl_start_server.inc;
#--source include/start_slave.inc
--connection master
-SET @@GLOBAL.debug_dbug="";
--eval SET @@GLOBAL. rpl_semi_sync_master_enabled = $sav_enabled_master
--connection master
diff --git a/mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.cnf b/mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.cnf
index 2cf1b178..5f69b557 100644
--- a/mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.cnf
+++ b/mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.cnf
@@ -1,13 +1,13 @@
!include ../my.cnf
[mysqld.1]
-log_warnings=9
+log_warnings=3
[mysqld.2]
-log_warnings=9
+log_warnings=3
[mysqld.3]
-log_warnings=9
+log_warnings=3
[ENV]
SERVER_MYPORT_3= @mysqld.3.port
diff --git a/mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.inc b/mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.inc
index 252541ae..d20ef628 100644
--- a/mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.inc
+++ b/mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.inc
@@ -3,7 +3,6 @@
# replicas before shutting down.
#
# Parameters:
-# server_1_dbug (string) Debug setting for primary (server 1)
# server_2_dbug (string) Debug setting to simulate delay or error on
# the first replica (server 2)
# server_3_dbug (string) Debug setting to simulate delay or error on
@@ -32,8 +31,8 @@ while (`SELECT $i <= $slave_last`)
--connection server_$i
--sync_with_master
- set global rpl_semi_sync_slave_enabled = 1;
source include/stop_slave.inc;
+ set global rpl_semi_sync_slave_enabled = 1;
source include/start_slave.inc;
show status like 'Rpl_semi_sync_slave_status';
@@ -56,8 +55,6 @@ show status like 'Rpl_semi_sync_master_status';
show status like 'Rpl_semi_sync_master_clients';
--echo #-- Prepare servers to simulate delay or error
---connection server_1
---eval SET @@GLOBAL.debug_dbug= $server_1_dbug
--connection server_2
--eval SET @@GLOBAL.debug_dbug= $server_2_dbug
--connection server_3
@@ -66,6 +63,11 @@ show status like 'Rpl_semi_sync_master_clients';
--echo #--
--echo #-- Test begins
+--connection server_1_con2
+--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+wait
+EOF
+
--connection server_1
--echo #-- Begin semi-sync transaction
--send INSERT INTO t1 VALUES (1)
@@ -75,25 +77,13 @@ show status like 'Rpl_semi_sync_master_clients';
let $status_var= Rpl_semi_sync_master_wait_sessions;
let $status_var_value= 1;
source include/wait_for_status_var.inc;
-show status like 'Rpl_semi_sync_master_wait_sessions';
-
---write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
-wait
-EOF
-
---echo #-- Give enough time after timeout/ack received to query yes_tx/no_tx
-SET @@GLOBAL.debug_dbug= "+d,delay_shutdown_phase_2_after_semisync_wait";
--echo #-- Begin master shutdown
---send SHUTDOWN WAIT FOR ALL SLAVES
+SHUTDOWN WAIT FOR ALL SLAVES;
+--source include/wait_until_disconnected.inc
--connection server_1
---reap
---echo #-- Ensure either ACK was received (yes_tx=1) or timeout (no_tx=1)
-show status like 'Rpl_semi_sync_master_yes_tx';
-show status like 'Rpl_semi_sync_master_no_tx';
-
---connection server_1_con2
+--error 2013
--reap
--source include/wait_until_disconnected.inc
@@ -111,19 +101,72 @@ show status like 'Rpl_semi_sync_master_no_tx';
--echo #
--echo #-- Re-synchronize slaves with master and disable semi-sync
+if (`SELECT ($server_2_expect_row_count + $server_3_expect_row_count) < 2`)
+{
+--echo #-- FIXME: workaround for MDEV-28141, preventing errored replicas from
+--echo # killing their semi-sync connections
+# I.e. we can't create a new kill connection to the primary if we know that the
+# primary is shutting down for risk of Packets out of order error. So we wait
+# to hit a debug_sync point before the creation of the new kill_connection, and
+# don't progress until the primary has been shutdown, so no new connection can
+# be formed.
+# Note this is only needed in the error case (using corrupt_queue_event), as
+# the running io_thread will otherwise automatically detect that the primary
+# has shutdown before progressing to the cleanup of the io thread.
+}
+
+if (!$server_2_expect_row_count)
+{
+ --connection server_2
+ set debug_sync= "now wait_for at_semisync_kill_connection";
+ set debug_sync= "now signal continue_semisync_kill_connection";
+ --echo # Wait for debug_sync signal to have been received before issuing RESET
+ let $wait_condition= select count(*)=0 from information_schema.processlist where state like "debug sync point%";
+ source include/wait_condition.inc;
+ set debug_sync= "reset";
+}
+if (!$server_3_expect_row_count)
+{
+ --connection server_3
+ set debug_sync= "now wait_for at_semisync_kill_connection";
+ set debug_sync= "now signal continue_semisync_kill_connection";
+ --echo # Wait for debug_sync signal to have been received before issuing RESET
+ let $wait_condition= select count(*)=0 from information_schema.processlist where state like "debug sync point%";
+ source include/wait_condition.inc;
+ set debug_sync= "reset";
+}
+
--echo #-- Stop slaves
--connection server_2
---eval SET @@GLOBAL.debug_dbug= "$sav_server_2_dbug"
---eval SET @@GLOBAL.rpl_semi_sync_slave_enabled= 0
---let $rpl_only_running_threads= 1
-source include/stop_slave.inc;
+# If server_2_expect_row_count is 0, we are simulating an error on the replica
+# and the IO thread will end with errno 1595.
+# Otherwise, we still expect error, because the master has shutdown at this
+# point, and the IO thread may or may not have realized the shutdown, and
+# started to try to automatically reconnect. This may result in the IO thread
+# giving a 2003 error if the slave tries to reconnect to a shutdown master.
+# Additionally disable warnings because the slave may have stopped in err
+# automatically, and we don't want a sporadic "Slave is already stopped"
+# warning.
+--disable_warnings
+--let $rpl_allow_error= 1
+--source include/stop_slave_io.inc
+--enable_warnings
+--let $rpl_allow_error=
+--source include/stop_slave_sql.inc
+SET @@GLOBAL.debug_dbug= @sav_server_2_dbug;
+SET @@GLOBAL.rpl_semi_sync_slave_enabled= @sav_enabled_server_2;
--connection server_3
---eval SET @@GLOBAL.debug_dbug= "$sav_server_3_dbug"
---eval SET @@GLOBAL.rpl_semi_sync_slave_enabled= 0
---let $rpl_only_running_threads= 1
-source include/stop_slave.inc;
+# Expect error for IO thread, see above comment for stopping server_2
+--disable_warnings
+--let $rpl_allow_error= 1
+--source include/stop_slave_io.inc
+--enable_warnings
+--let $rpl_allow_error=
+--source include/stop_slave_sql.inc
+SET @@GLOBAL.debug_dbug= @sav_server_3_dbug;
+SET @@GLOBAL.rpl_semi_sync_slave_enabled= @sav_enabled_server_3;
--echo #-- Bring the master back up
--connection server_1_con2
@@ -142,13 +185,6 @@ EOF
--enable_reconnect
--source include/wait_until_connected_again.inc
---eval SET @@GLOBAL.debug_dbug= "$sav_master_dbug"
-let $status_var= Rpl_semi_sync_master_clients;
-let $status_var_value= 0;
-source include/wait_for_status_var.inc;
---eval SET @@GLOBAL.rpl_semi_sync_master_enabled = 0
-show status like 'Rpl_semi_sync_master_status';
-
TRUNCATE TABLE t1;
--save_master_pos
diff --git a/mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.test b/mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.test
index 6c088c57..4ed9ca0a 100644
--- a/mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.test
+++ b/mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.test
@@ -5,7 +5,7 @@
# This test validates that data is consistent between a primary and replica
# in semi-sync mode when the primary is issued `SHUTDOWN WAIT FOR SLAVES`
# during an active communication. More specifically, the primary should not
-# kill the connection until it is sure a replica has received all binlog
+# kill the Ack_thread until it is sure a replica has received all binlog
# data, i.e. once the primary receives the ACK. If a primary is issued a
# shutdown before receiving an ACK, it should wait until either 1) the ACK is
# received, or 2) the configured timeout (rpl_semi_sync_master_timeout) is
@@ -15,23 +15,18 @@
# Using a topology consisting of one primary with two replicas, all in
# semi-sync mode, we use DEBUG_DBUG to simulate an error or delay on the
# replicas during an active communication while the primary is issued
-# `SHUTDOWN WAIT FOR SLAVES`. We create four test cases to ensure the primary
-# will correctly wait for the communication to finish, and use the semi-sync
-# status variables Rpl_semi_sync_master_yes_tx and Rpl_semi_sync_master_no_tx
-# to ensure the connection was not prematurely killed due to the shutdown.
+# `SHUTDOWN WAIT FOR SLAVES`. We create four test cases to ensure the
+# Ack_thread is not prematurely killed due to the shutdown.
# Test Case 1) If both replicas simulate a delay that is within the allowed
-# timeout, the primary should delay killing the suspended thread
-# until an ACK is received (Rpl_semi_sync_master_yes_tx should
-# be 1).
+# timeout, the primary should delay killing the Ack_thread
+# until an ACK is received.
# Test Case 2) If both replicas simulate an error before sending an ACK, the
-# primary should delay killing the suspended thread until the
-# the timeout is reached (Rpl_semi_sync_master_no_tx should be
-# 1).
+# primary should delay killing the Ack_thread until the
+# the timeout is reached.
# Test Case 3) If one replica simulates a delay within the allowed timeout
# and the other simulates an error before sending an ACK, the
-# primary should delay killing the suspended thread until it
-# receives an ACK from the delayed slave
-# (Rpl_semi_sync_master_yes_tx should be 1).
+# primary should delay killing the Ack_thread until it
+# receives an ACK from the delayed slave.
# Test Case 4) If a replica errors before sending an ACK, it will cause the
# IO thread to stop and handle the error. During error handling,
# if semi-sync is active, the replica will form a new connection
@@ -41,9 +36,11 @@
# slave should notice this, and not issue a `QUIT` command to
# the primary, which would otherwise be sent to kill an active
# connection. This test case validates that the slave does not
-# send a `QUIT` in this case (Rpl_semi_sync_master_yes_tx should
-# be 1 because server_3 will send the ACK within a valid
-# timeout).
+# send a `QUIT` in this case.
+# Test Case 5) If a waiting-for-ACK user thread is killed (disconnected)
+# during SHUTDOWN WAIT FOR ALL SLAVES, ensure the primary will
+# still await the ACK from the replica before killing the
+# Ack_thread.
#
# References:
# MDEV-11853: semisync thread can be killed after sync binlog but before ACK
@@ -58,6 +55,7 @@
--echo # Note: Simulated slave delay is hardcoded to 800 milliseconds
--echo # Note: Simulated master shutdown delay is hardcoded to 500 milliseconds
+--source include/have_innodb.inc
--source include/have_debug.inc
--let $rpl_topology=1->2, 1->3
--source include/rpl_init.inc
@@ -69,9 +67,8 @@ call mtr.add_suppression("Timeout waiting");
call mtr.add_suppression("did not exit");
call mtr.add_suppression("Got an error reading communication packets");
---let $sav_master_timeout= `SELECT @@global.rpl_semi_sync_master_timeout`
+--let $sav_master_timeout= `SELECT @@GLOBAL.rpl_semi_sync_master_timeout`
--let $sav_enabled_master= `SELECT @@GLOBAL.rpl_semi_sync_master_enabled`
---let $sav_master_dbug= `SELECT @@GLOBAL.debug_dbug`
--echo # Suppress slave errors related to the simulated error
--connection server_2
@@ -79,19 +76,19 @@ call mtr.add_suppression("reply failed");
call mtr.add_suppression("Replication event checksum verification");
call mtr.add_suppression("Relay log write failure");
call mtr.add_suppression("Failed to kill the active semi-sync connection");
---let $sav_enabled_server_2=`SELECT @@GLOBAL.rpl_semi_sync_slave_enabled`
---let $sav_server_2_dbug= `SELECT @@GLOBAL.debug_dbug`
+set @sav_enabled_server_2= @@GLOBAL.rpl_semi_sync_slave_enabled;
+set @sav_server_2_dbug= @@GLOBAL.debug_dbug;
--connection server_3
call mtr.add_suppression("reply failed");
call mtr.add_suppression("Replication event checksum verification");
call mtr.add_suppression("Relay log write failure");
call mtr.add_suppression("Failed to kill the active semi-sync connection");
---let $sav_enabled_server_3=`SELECT @@GLOBAL.rpl_semi_sync_slave_enabled`
---let $sav_server_3_dbug= `SELECT @@GLOBAL.debug_dbug`
+set @sav_enabled_server_3= @@GLOBAL.rpl_semi_sync_slave_enabled;
+set @sav_server_3_dbug= @@GLOBAL.debug_dbug;
--connection server_1
-CREATE TABLE t1 (a int);
+CREATE TABLE t1 (a int) engine=innodb;
--save_master_pos
--let i= 2
@@ -113,10 +110,9 @@ while (`SELECT $i <= $slave_last`)
--echo #
--echo # Test Case 1) If both replicas simulate a delay that is within the
---echo # allowed timeout, the primary should delay killing the suspended thread
---echo # until an ACK is received (Rpl_semi_sync_master_yes_tx should be 1).
+--echo # allowed timeout, the primary should delay killing the Ack_thread
+--echo # until an ACK is received.
--echo #
---let server_1_dbug= ""
--let server_2_dbug= "+d,simulate_delay_semisync_slave_reply"
--let server_3_dbug= "+d,simulate_delay_semisync_slave_reply"
--let semisync_timeout= 1600
@@ -126,12 +122,11 @@ while (`SELECT $i <= $slave_last`)
--echo #
--echo # Test Case 2) If both replicas simulate an error before sending an ACK,
---echo # the primary should delay killing the suspended thread until the
---echo # timeout is reached (Rpl_semi_sync_master_no_tx should be 1).
+--echo # the primary should delay killing the Ack_thread until the
+--echo # timeout is reached.
--echo #
---let server_1_dbug= "+d,mysqld_delay_kill_threads_phase_1"
---let server_2_dbug= "+d,corrupt_queue_event"
---let server_3_dbug= "+d,corrupt_queue_event"
+--let server_2_dbug= "+d,corrupt_queue_event,delay_semisync_kill_connection_for_mdev_28141"
+--let server_3_dbug= "+d,corrupt_queue_event,delay_semisync_kill_connection_for_mdev_28141"
--let semisync_timeout= 500
--let server_2_expect_row_count= 0
--let server_3_expect_row_count= 0
@@ -140,11 +135,10 @@ while (`SELECT $i <= $slave_last`)
--echo #
--echo # Test Case 3) If one replica simulates a delay within the allowed
--echo # timeout and the other simulates an error before sending an ACK, the
---echo # primary should delay killing the suspended thread until it receives an
---echo # ACK from the delayed slave (Rpl_semi_sync_master_yes_tx should be 1).
+--echo # primary should delay killing the Ack_thread until it receives an
+--echo # ACK from the delayed slave.
--echo #
---let server_1_dbug= "+d,mysqld_delay_kill_threads_phase_1"
---let server_2_dbug= "+d,corrupt_queue_event"
+--let server_2_dbug= "+d,corrupt_queue_event,delay_semisync_kill_connection_for_mdev_28141"
--let server_3_dbug= "+d,simulate_delay_semisync_slave_reply"
--let semisync_timeout= 1600
--let server_2_expect_row_count= 0
@@ -160,56 +154,123 @@ while (`SELECT $i <= $slave_last`)
--echo # active semi-sync connection in-tact. The slave should notice this, and
--echo # not issue a `QUIT` command to the primary, which would otherwise be
--echo # sent to kill an active connection. This test case validates that the
---echo # slave does not send a `QUIT` in this case (Rpl_semi_sync_master_yes_tx
---echo # should be 1 because server_3 will send the ACK within a valid timeout).
+--echo # slave does not send a `QUIT` in this case.
--echo #
-
-# mysqld_delay_kill_threads_phase1 ensures that server_2 will have enough time
-# to start a new connection that has the intent to kill the active semi-sync
-# connection
---let server_1_dbug= "+d,mysqld_delay_kill_threads_phase_1"
-
-# slave_delay_killing_semisync_connection ensures that the primary has force
-# killed its current connection before it is able to issue `KILL`
---let server_2_dbug= "+d,corrupt_queue_event,slave_delay_killing_semisync_connection"
+--let server_2_dbug= "+d,corrupt_queue_event,delay_semisync_kill_connection_for_mdev_28141"
--let server_3_dbug= "+d,simulate_delay_semisync_slave_reply"
--let semisync_timeout= 1600
--let server_2_expect_row_count= 0
--let server_3_expect_row_count= 1
--source rpl_semi_sync_shutdown_await_ack.inc
+#
+# Added with MDEV-33551
+#
+--echo #
+--echo # Test Case 5) If a waiting-for-ACK user thread is killed (disconnected)
+--echo # during SHUTDOWN WAIT FOR ALL SLAVES, ensure the primary will still
+--echo # await the ACK from the replica before killing the Ack_receiver thread
+--echo #
+--connection server_1
+insert into t1 values (1);
+--source include/save_master_gtid.inc
+
+--connection server_2
+--source include/sync_with_master_gtid.inc
+--source include/stop_slave.inc
+SET GLOBAL rpl_semi_sync_slave_enabled= 1;
+--source include/start_slave.inc
+
+--connection server_1
+SET GLOBAL rpl_semi_sync_master_enabled= 1;
+SET GLOBAL rpl_semi_sync_master_timeout= 2000;
+
+--let $status_var= Rpl_semi_sync_master_clients
+--let $status_var_value= 1
+source include/wait_for_status_var.inc;
+
+show status like 'Rpl_semi_sync_master_status';
+show status like 'Rpl_semi_sync_master_clients';
+
+--connection server_2
+SET @old_dbug= @@GLOBAL.debug_dbug;
+SET GLOBAL debug_dbug="+d,simulate_delay_semisync_slave_reply";
+
+--connect(con1, localhost, root,,)
+--connect(con2, localhost, root,,)
+
+--connection con1
+--send insert into t1 values (2)
+
+--connection server_1
+--echo # Wait for thd to begin semi-sync wait..
+--let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist WHERE state = 'Waiting for semi-sync ACK from slave'
+--source include/wait_condition.inc
+--echo # ..done
+
+--disconnect con1
+
+--connection default
+--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+wait
+EOF
+
+--connection con2
+SHUTDOWN WAIT FOR ALL SLAVES;
+--source include/wait_until_disconnected.inc
+
+--echo # Ensure the primary waited for the ACK of the killed thread
+--let $SEARCH_PATTERN= Delaying shutdown to await semi-sync ACK
+--let $SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err
+--source include/search_pattern_in_file.inc
+
+--connection default
+--source include/wait_until_disconnected.inc
+
+--connection server_1
+--source include/wait_until_disconnected.inc
+
+--connection server_2
+--let $rpl_allow_error= 1
+source include/stop_slave.inc;
+--connection server_3
+source include/stop_slave.inc;
+--let $rpl_allow_error=
+
+--connection default
+--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+restart
+EOF
+--enable_reconnect
+--source include/wait_until_connected_again.inc
+
+--connection server_1
+--enable_reconnect
+--source include/wait_until_connected_again.inc
+
+
--echo #############################
--echo # Cleanup
--echo #############################
--connection server_2
-source include/stop_slave.inc;
+SET @@GLOBAL.rpl_semi_sync_slave_enabled = @sav_enabled_server_2;
+SET @@GLOBAL.debug_dbug= @sav_server_2_dbug;
source include/start_slave.inc;
---disable_query_log
---eval SET @@GLOBAL.rpl_semi_sync_slave_enabled = $sav_enabled_server_2
---eval SET @@GLOBAL.debug_dbug= "$sav_server_2_dbug"
---enable_query_log
-
--connection server_3
-source include/stop_slave.inc;
+SET @@GLOBAL.rpl_semi_sync_slave_enabled = @sav_enabled_server_3;
+SET @@GLOBAL.debug_dbug= @sav_server_3_dbug;
source include/start_slave.inc;
---disable_query_log
---eval SET @@GLOBAL.rpl_semi_sync_slave_enabled = $sav_enabled_server_3
---eval SET @@GLOBAL.debug_dbug= "$sav_server_3_dbug"
---enable_query_log
-
-
--connection server_1
let $status_var= Rpl_semi_sync_master_clients;
let $status_var_value= 0;
source include/wait_for_status_var.inc;
--disable_query_log
---eval SET @@GLOBAL.rpl_semi_sync_master_timeout= $sav_master_timeout
---eval SET @@GLOBAL.rpl_semi_sync_master_enabled= $sav_enabled_master
---eval SET @@GLOBAL.debug_dbug= "$sav_master_dbug"
+--eval SET @@GLOBAL.rpl_semi_sync_master_timeout= $sav_master_timeout;
+--eval SET @@GLOBAL.rpl_semi_sync_master_enabled= $sav_enabled_master;
--enable_query_log
drop table t1;
diff --git a/mysql-test/suite/rpl/t/rpl_semi_sync_slave_enabled_consistent.test b/mysql-test/suite/rpl/t/rpl_semi_sync_slave_enabled_consistent.test
index 9e388ab4..ca7e7887 100644
--- a/mysql-test/suite/rpl/t/rpl_semi_sync_slave_enabled_consistent.test
+++ b/mysql-test/suite/rpl/t/rpl_semi_sync_slave_enabled_consistent.test
@@ -14,6 +14,9 @@
call mtr.add_suppression("Replication event checksum verification failed");
call mtr.add_suppression("could not queue event from master");
+call mtr.add_suppression("Semisync ack receiver.*error reading communication packets");
+call mtr.add_suppression("Semisync ack receiver got hangup");
+--sync_slave_with_master
--echo #
--echo # Set up a semisync connection
diff --git a/mysql-test/suite/rpl/t/rpl_show_slave_status.test b/mysql-test/suite/rpl/t/rpl_show_slave_status.test
new file mode 100644
index 00000000..f4bbb5fa
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_show_slave_status.test
@@ -0,0 +1,27 @@
+--source include/have_binlog_format_mixed.inc
+--source include/master-slave.inc
+
+--echo *
+--echo * The purpose of this test is to prevent incorrect additions to SHOW
+--echo * SLAVE STATUS, which has happened several times in the past.
+--echo *
+--echo * We must never, _ever_, add extra rows to this output of SHOW SLAVE
+--echo * STATUS, except at the very end, as this breaks backwards compatibility
+--echo * with applications or scripts that parse the output. This also means that
+--echo * we cannot add _any_ new rows in a GA version if a different row was
+--echo * already added in a later MariaDB version, as this would make it impossible
+--echo * to merge the change up while preserving the order of rows.
+--echo *
+
+--connection slave
+--replace_column 1 # 2 # 3 # 4 # 5 # 6 # 7 # 8 # 9 # 10 # 11 # 12 # 13 # 14 # 15 # 16 # 17 # 18 # 19 # 20 # 21 # 22 # 23 # 24 # 25 # 26 # 27 # 28 # 29 # 30 # 31 # 32 # 33 # 34 # 35 # 36 # 37 # 38 # 39 # 40 # 41 # 42 # 43 # 44 # 45 # 46 # 47 # 48 # 49 # 50 # 51 # 52 # 53 # 54 #
+query_vertical
+SHOW SLAVE STATUS;
+
+--echo *
+--echo * When modifying this test after adding a column to SHOW SLAVE STATUS,
+--echo * _only_ additions at the end are allowed, the column number of existing
+--echo * columns must _not_ change!
+--echo *
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_shutdown_sighup.test b/mysql-test/suite/rpl/t/rpl_shutdown_sighup.test
new file mode 100644
index 00000000..d1940f81
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_shutdown_sighup.test
@@ -0,0 +1,154 @@
+#
+# The signal handler thread can use various different runtime resources when
+# processing a SIGHUP (e.g. master-info information), as the logic calls into
+# reload_acl_and_cache(). This test ensures that SIGHUP processing, when
+# concurrent with server shutdown, the shutdown logic must wait for the SIGHUP
+# processing to finish before cleaning up any resources.
+#
+# Additionally, the error case is tested such that the signal handler thread
+# takes too long processing a SIGHUP, and the main mysqld thread must skip its
+# wait and output a warning.
+#
+# Note the SIGHUP is sent via the command-line kill program via a perl script.
+#
+# References:
+# MDEV-30260: Slave crashed:reload_acl_and_cache during shutdown
+#
+
+--source include/not_windows.inc
+--source include/not_embedded.inc
+--source include/have_debug.inc
+--source include/have_debug_sync.inc
+
+# Binlog format doesn't matter
+--source include/have_binlog_format_statement.inc
+--source include/master-slave.inc
+
+# For error test case which forces timeout
+--connection slave
+set statement sql_log_bin=0 for call mtr.add_suppression("Signal handler thread did not exit in a timely manner");
+
+
+--echo #
+--echo # Main test
+--connection master
+create table t1 (a int);
+insert into t1 values (1);
+--source include/save_master_gtid.inc
+
+--connection slave
+--source include/sync_with_master_gtid.inc
+
+# Make signal handler handle SIGHUP..
+set @@global.debug_dbug= "+d,hold_sighup_log_refresh";
+--let KILL_NODE_PIDFILE = `SELECT @@pid_file`
+--perl
+ my $kill_sig = $ENV{'KILL_SIGNAL_VALUE'};
+ my $pid_filename = $ENV{'KILL_NODE_PIDFILE'};
+ my $mysqld_pid = `cat $pid_filename`;
+ chomp($mysqld_pid);
+ system("kill -HUP $mysqld_pid");
+ exit(0);
+EOF
+
+--echo # Waiting for sighup to reach reload_acl_and_cache..
+set debug_sync="now wait_for in_reload_acl_and_cache";
+--echo # Signalling signal handler to proceed to sleep before REFRESH_HOSTS
+set debug_sync="now signal refresh_logs";
+
+# ..while we are shutting down
+--write_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
+wait
+EOF
+--echo # Starting shutdown (note this will take 3+ seconds due to DBUG my_sleep in reload_acl_and_cache)
+shutdown;
+
+--source include/wait_until_disconnected.inc
+--append_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
+restart: --skip-slave-start=0
+EOF
+
+--connection server_2
+--enable_reconnect
+--source include/wait_until_connected_again.inc
+
+--connection slave
+--enable_reconnect
+--source include/wait_until_connected_again.inc
+
+--let $assert_text= Ensure Mariadbd did not segfault when shutting down
+--let $assert_select= got signal 11
+--let $assert_file= $MYSQLTEST_VARDIR/log/mysqld.2.err
+--let $assert_count= 0
+--let $assert_only_after = CURRENT_TEST: rpl.rpl_shutdown_sighup
+--source include/assert_grep.inc
+
+--connection master
+--sync_slave_with_master
+
+
+--echo #
+--echo # Error testcase to ensure an error message is shown if the signal
+--echo # takes longer than the timeout while processing the SIGHUP
+
+--connection slave
+set @@global.debug_dbug= "+d,force_sighup_processing_timeout";
+set @@global.debug_dbug= "+d,hold_sighup_log_refresh";
+
+--connection master
+insert into t1 values (1);
+--source include/save_master_gtid.inc
+
+--connection slave
+--source include/sync_with_master_gtid.inc
+
+# Make signal handler handle SIGHUP..
+--let KILL_NODE_PIDFILE = `SELECT @@pid_file`
+--perl
+ my $kill_sig = $ENV{'KILL_SIGNAL_VALUE'};
+ my $pid_filename = $ENV{'KILL_NODE_PIDFILE'};
+ my $mysqld_pid = `cat $pid_filename`;
+ chomp($mysqld_pid);
+ system("kill -HUP $mysqld_pid");
+ exit(0);
+EOF
+--echo # Waiting for sighup to reach reload_acl_and_cache..
+set debug_sync="now wait_for in_reload_acl_and_cache";
+--echo # Signalling signal handler to proceed to sleep before REFRESH_HOSTS
+set debug_sync="now signal refresh_logs";
+
+# ..while we are shutting down
+--write_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
+wait
+EOF
+--echo # Starting shutdown (note this will take 3+ seconds due to DBUG my_sleep in reload_acl_and_cache)
+shutdown;
+
+--source include/wait_until_disconnected.inc
+--append_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
+restart: --skip-slave-start=0
+EOF
+
+--connection server_2
+--enable_reconnect
+--source include/wait_until_connected_again.inc
+
+--connection slave
+--enable_reconnect
+--source include/wait_until_connected_again.inc
+
+--let $assert_text= Ensure warning is issued that signal handler thread is still processing
+--let $assert_select= Signal handler thread did not exit in a timely manner.
+--let $assert_file= $MYSQLTEST_VARDIR/log/mysqld.2.err
+--let $assert_count= 1
+--let $assert_only_after = CURRENT_TEST: rpl.rpl_shutdown_sighup
+--source include/assert_grep.inc
+
+
+--echo #
+--echo # Cleanup
+--connection master
+drop table t1;
+
+--source include/rpl_end.inc
+--echo # End of rpl_shutdown_sighup.test
diff --git a/mysql-test/suite/rpl/t/rpl_skip_error.test b/mysql-test/suite/rpl/t/rpl_skip_error.test
index d3ef834e..ee11ce5a 100644
--- a/mysql-test/suite/rpl/t/rpl_skip_error.test
+++ b/mysql-test/suite/rpl/t/rpl_skip_error.test
@@ -3,7 +3,11 @@
# Verify that --slave-skip-errors works correctly. The error messages
# specified by --slave-skip-errors on slave should be ignored. If
# such errors occur, they should not be reported and not cause the
-# slave to stop.
+# slave to stop. If a skipped-due-to-error statement is a part of a
+# larger transaction, and the error is not a deadlock error, the rest
+# of the transaction should still commit, with just the errored statement
+# ignored (note transactions which are skipped due to deadlocks are
+# rolled back fully, see rpl_temporary_error2_skip_all.test).
#
# ==== Method ====
#
@@ -164,6 +168,42 @@ let $current_skipped_error= query_get_value(show global status like "Slave_skipp
--echo **** We cannot execute a select as there are differences in the
--echo **** behavior between STMT and RBR.
+
+--echo ****
+--echo **** Ensure transactions which are skipped due to encountering a
+--echo **** non-deadlock error which is present in --slave-skip-errors result
+--echo **** in partially committed transactions
+# Slave will insert 3 first, and master will insert 3 within a larger trx
+--let $value_preexisting_on_slave= 3
+
+--connection master
+CREATE TABLE t3 (a INT UNIQUE) ENGINE=InnoDB;
+
+--sync_slave_with_master
+--connection slave
+--eval INSERT INTO t3 VALUES ($value_preexisting_on_slave)
+
+--connection master
+BEGIN;
+INSERT INTO t3 VALUES (1);
+INSERT INTO t3 VALUES (2);
+--eval INSERT INTO t3 VALUES ($value_preexisting_on_slave)
+INSERT INTO t3 VALUES (4);
+COMMIT;
+--sync_slave_with_master
+
+--echo **** Master and slave tables should have the same data, due to the
+--echo **** partially replicated transaction's data overlapping with the data
+--echo **** that pre-existed on the slave. That is, despite the transaction
+--echo **** consisting of 4 statements, the errored statement should be ignored
+--echo **** and the other 3 should commit successfully.
+let $diff_tables=master:t3,slave:t3;
+source include/diff_tables.inc;
+
+--connection master
+DROP TABLE t3;
+
+
--echo ==== Clean Up ====
connection master;
diff --git a/mysql-test/suite/rpl/t/rpl_sync.test b/mysql-test/suite/rpl/t/rpl_sync.test
index 1e2ec2ca..3dd99e73 100644
--- a/mysql-test/suite/rpl/t/rpl_sync.test
+++ b/mysql-test/suite/rpl/t/rpl_sync.test
@@ -82,7 +82,7 @@ print FILE "failure";
close ($file);
EOF
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
SET SESSION debug_dbug="d,crash_before_rotate_relaylog";
--error 2013
FLUSH LOGS;
@@ -130,7 +130,7 @@ print FILE @content;
close FILE;
EOF
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
+--write_line restart $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
SET SESSION debug_dbug="d,crash_before_rotate_relaylog";
--error 2013
FLUSH LOGS;
diff --git a/mysql-test/suite/rpl/t/rpl_temporary_error2.test b/mysql-test/suite/rpl/t/rpl_temporary_error2.test
index 49194c5d..3537499d 100644
--- a/mysql-test/suite/rpl/t/rpl_temporary_error2.test
+++ b/mysql-test/suite/rpl/t/rpl_temporary_error2.test
@@ -64,7 +64,14 @@ ROLLBACK;
--connection slave
--sync_with_master
SELECT * FROM t1 ORDER BY a;
---echo * There will be two rows in t2 due to the retry.
+if (!$ignored_db_deadlock)
+{
+ --echo * There will be two rows in t2 due to the retry.
+}
+if ($ignored_db_deadlock)
+{
+ --echo * There will be one row in t2 because the ignored deadlock does not retry.
+}
SELECT * FROM t2 ORDER BY a;
let $new_retry= query_get_value(SHOW STATUS LIKE 'Slave_retried_transactions', Value, 1);
--disable_query_log
diff --git a/mysql-test/suite/rpl/t/rpl_temporary_error2_skip_all-slave.opt b/mysql-test/suite/rpl/t/rpl_temporary_error2_skip_all-slave.opt
new file mode 100644
index 00000000..a9ddd735
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_temporary_error2_skip_all-slave.opt
@@ -0,0 +1 @@
+--slave-skip-errors=all
diff --git a/mysql-test/suite/rpl/t/rpl_temporary_error2_skip_all.test b/mysql-test/suite/rpl/t/rpl_temporary_error2_skip_all.test
new file mode 100644
index 00000000..6801bf18
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_temporary_error2_skip_all.test
@@ -0,0 +1,3 @@
+--source include/have_binlog_format_row.inc
+--let $ignored_db_deadlock= 1
+--source rpl_temporary_error2.test
diff --git a/mysql-test/suite/rpl/t/rpl_using_gtid_default.test b/mysql-test/suite/rpl/t/rpl_using_gtid_default.test
index c14695f9..1557fcdc 100644
--- a/mysql-test/suite/rpl/t/rpl_using_gtid_default.test
+++ b/mysql-test/suite/rpl/t/rpl_using_gtid_default.test
@@ -42,10 +42,9 @@
# replication is used by default if master supports it
#
--source include/have_debug.inc
---source include/master-slave.inc
-
# Format independent test so just use one
--source include/have_binlog_format_mixed.inc
+--source include/master-slave.inc
--echo #
--echo # Slave default configuration should be Slave_Pos
diff --git a/mysql-test/suite/rpl/t/show_status_stop_slave_race-7126.test b/mysql-test/suite/rpl/t/show_status_stop_slave_race-7126.test
index cd0f8aad..815b2537 100644
--- a/mysql-test/suite/rpl/t/show_status_stop_slave_race-7126.test
+++ b/mysql-test/suite/rpl/t/show_status_stop_slave_race-7126.test
@@ -3,7 +3,10 @@
#
--source include/master-slave.inc
+--disable_query_log
call mtr.add_suppression("Master is configured to log replication events");
+call mtr.add_suppression("Could not read packet:.* errno: 11");
+--enable_query_log
--connection slave
diff --git a/mysql-test/suite/s3/mysqldump.result b/mysql-test/suite/s3/mysqldump.result
index 3f4c2081..e0c0caf6 100644
--- a/mysql-test/suite/s3/mysqldump.result
+++ b/mysql-test/suite/s3/mysqldump.result
@@ -4,6 +4,7 @@ alter table t1 engine=S3;
#####
# mysqldump with --copy-s3-tables=0 (by default)
###
+/*!999999\- enable the sandbox mode */
#####
# mysqldump with --copy-s3-tables=0 (by default) XML
###
@@ -15,6 +16,7 @@ alter table t1 engine=S3;
#####
# mysqldump with --copy-s3-tables=1
###
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
diff --git a/mysql-test/suite/s3/partition.result b/mysql-test/suite/s3/partition.result
index 9face3ec..20530bd3 100644
--- a/mysql-test/suite/s3/partition.result
+++ b/mysql-test/suite/s3/partition.result
@@ -55,8 +55,6 @@ ERROR HY000: Table 't2' is read only
ALTER TABLE t2 ANALYZE PARTITION p3;
Table Op Msg_type Msg_text
s3.t2 analyze status Table 's3.t2' is read only
-s3.t2 analyze status Engine-independent statistics collected
-s3.t2 analyze status OK
SELECT count(*) FROM t2;
count(*)
6
diff --git a/mysql-test/suite/sql_sequence/mysqldump.result b/mysql-test/suite/sql_sequence/mysqldump.result
index 0199bb71..72828043 100644
--- a/mysql-test/suite/sql_sequence/mysqldump.result
+++ b/mysql-test/suite/sql_sequence/mysqldump.result
@@ -3,6 +3,7 @@ CREATE TABLE t1(a INT, KEY (a)) KEY_BLOCK_SIZE=1024;
insert into t1 values (1),(2);
CREATE SEQUENCE x1 engine=innodb;
# dump whole database
+/*!999999\- enable the sandbox mode */
CREATE SEQUENCE `a1` start with 1 minvalue 1 maxvalue 9223372036854775806 increment by 1 cache 1000 nocycle ENGINE=Aria;
SELECT SETVAL(`a1`, 1, 0);
CREATE SEQUENCE `x1` start with 1 minvalue 1 maxvalue 9223372036854775806 increment by 1 cache 1000 nocycle ENGINE=InnoDB;
@@ -18,6 +19,7 @@ INSERT INTO `t1` VALUES
(1),
(2);
# dump by tables order 1
+/*!999999\- enable the sandbox mode */
CREATE SEQUENCE `a1` start with 1 minvalue 1 maxvalue 9223372036854775806 increment by 1 cache 1000 nocycle ENGINE=Aria;
SELECT SETVAL(`a1`, 1, 0);
CREATE SEQUENCE `x1` start with 1 minvalue 1 maxvalue 9223372036854775806 increment by 1 cache 1000 nocycle ENGINE=InnoDB;
@@ -33,6 +35,7 @@ INSERT INTO `t1` VALUES
(1),
(2);
# dump by tables order 2
+/*!999999\- enable the sandbox mode */
CREATE SEQUENCE `a1` start with 1 minvalue 1 maxvalue 9223372036854775806 increment by 1 cache 1000 nocycle ENGINE=Aria;
SELECT SETVAL(`a1`, 1, 0);
CREATE SEQUENCE `x1` start with 1 minvalue 1 maxvalue 9223372036854775806 increment by 1 cache 1000 nocycle ENGINE=InnoDB;
@@ -48,6 +51,7 @@ INSERT INTO `t1` VALUES
(1),
(2);
# dump by tables only tables
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
@@ -59,6 +63,7 @@ INSERT INTO `t1` VALUES
(1),
(2);
# dump by tables only sequences
+/*!999999\- enable the sandbox mode */
CREATE SEQUENCE `a1` start with 1 minvalue 1 maxvalue 9223372036854775806 increment by 1 cache 1000 nocycle ENGINE=Aria;
SELECT SETVAL(`a1`, 1, 0);
CREATE SEQUENCE `x1` start with 1 minvalue 1 maxvalue 9223372036854775806 increment by 1 cache 1000 nocycle ENGINE=InnoDB;
diff --git a/mysql-test/suite/sys_vars/r/debug_dbug_utf16le.result b/mysql-test/suite/sys_vars/r/debug_dbug_utf16le.result
new file mode 100644
index 00000000..83b378f2
--- /dev/null
+++ b/mysql-test/suite/sys_vars/r/debug_dbug_utf16le.result
@@ -0,0 +1,31 @@
+#
+# Start of 10.5 tests
+#
+#
+# MDEV-28366 GLOBAL debug_dbug setting affected by collation_connection=utf16...
+#
+SET NAMES utf8;
+SET collation_connection=utf16le_general_ci;
+SET debug_dbug='d,any_random_string';
+SELECT @@debug_dbug;
+@@debug_dbug
+d,any_random_string
+SET debug_dbug=CONCAT('d,', _latin1 0xDF);
+SELECT @@debug_dbug;
+@@debug_dbug
+d,ß
+SELECT HEX(@@debug_dbug);
+HEX(@@debug_dbug)
+642CC39F
+SET @@debug_dbug=NULL;
+SELECT @@debug_dbug;
+@@debug_dbug
+
+SET @@debug_dbug=DEFAULT;
+SELECT @@debug_dbug;
+@@debug_dbug
+
+SET NAMES latin1;
+#
+# End of 10.5 tests
+#
diff --git a/mysql-test/suite/sys_vars/r/innodb_fil_make_page_dirty_debug_basic.result b/mysql-test/suite/sys_vars/r/innodb_fil_make_page_dirty_debug_basic.result
index 477eb7fc..db0de5e3 100644
--- a/mysql-test/suite/sys_vars/r/innodb_fil_make_page_dirty_debug_basic.result
+++ b/mysql-test/suite/sys_vars/r/innodb_fil_make_page_dirty_debug_basic.result
@@ -22,7 +22,4 @@ Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be
set global innodb_saved_page_number_debug = 0;
set global innodb_fil_make_page_dirty_debug = @space_id;
drop table t1;
-# Must always be 0.
-SELECT @@global.innodb_fil_make_page_dirty_debug;
-@@global.innodb_fil_make_page_dirty_debug
-0
+set global innodb_fil_make_page_dirty_debug = 0;
diff --git a/mysql-test/suite/sys_vars/r/innodb_saved_page_number_debug_basic.result b/mysql-test/suite/sys_vars/r/innodb_saved_page_number_debug_basic.result
index b306749d..2096e65f 100644
--- a/mysql-test/suite/sys_vars/r/innodb_saved_page_number_debug_basic.result
+++ b/mysql-test/suite/sys_vars/r/innodb_saved_page_number_debug_basic.result
@@ -23,6 +23,7 @@ set global innodb_saved_page_number_debug = 0;
set global innodb_fil_make_page_dirty_debug = @space_id;
drop table t1;
set global innodb_saved_page_number_debug = 0;
+set global innodb_fil_make_page_dirty_debug = 0;
SELECT @@global.innodb_saved_page_number_debug;
@@global.innodb_saved_page_number_debug
0
diff --git a/mysql-test/suite/sys_vars/r/replicate_rewrite_db.result b/mysql-test/suite/sys_vars/r/replicate_rewrite_db.result
index 2dfe3a65..7a15a270 100644
--- a/mysql-test/suite/sys_vars/r/replicate_rewrite_db.result
+++ b/mysql-test/suite/sys_vars/r/replicate_rewrite_db.result
@@ -85,15 +85,13 @@ SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='replicate
VARIABLE_NAME VARIABLE_VALUE
REPLICATE_REWRITE_DB db1->db2,db3->db4
# Check restart with appending the value
-# restart: --replicate_rewrite_db=X->Y
+# restart: --replicate_rewrite_db='X->Y'
SELECT @@GLOBAL.replicate_rewrite_db;
@@GLOBAL.replicate_rewrite_db
-test->rewrite,mysqltest1->test,a->b,X->Y
+test->rewrite,mysqltest1->test,a->b,'X->Y'
# Check restart with wrong value on CLI
[ERROR] Bad syntax in replicate-rewrite-db.Expected syntax is FROM->TO.
-# restart:
+# restart
SELECT @@GLOBAL.replicate_rewrite_db;
@@GLOBAL.replicate_rewrite_db
test->rewrite,mysqltest1->test,a->b
-# Cleanup.
-SET @@GLOBAL.replicate_rewrite_db = @save_replicate_rewrite_db;
diff --git a/mysql-test/suite/sys_vars/r/slave_transaction_retry_errors.result b/mysql-test/suite/sys_vars/r/slave_transaction_retry_errors.result
index 72b40415..43988a81 100644
--- a/mysql-test/suite/sys_vars/r/slave_transaction_retry_errors.result
+++ b/mysql-test/suite/sys_vars/r/slave_transaction_retry_errors.result
@@ -1,20 +1,20 @@
select @@global.slave_transaction_retry_errors;
@@global.slave_transaction_retry_errors
-1158,1159,1160,1161,1205,1213,1429,2013,12701,10,20,5000,400
+1158,1159,1160,1161,1205,1213,1020,1429,2013,12701,10,20,5000,400
select @@session.slave_transaction_retry_errors;
ERROR HY000: Variable 'slave_transaction_retry_errors' is a GLOBAL variable
show global variables like 'slave_transaction_retry_errors';
Variable_name Value
-slave_transaction_retry_errors 1158,1159,1160,1161,1205,1213,1429,2013,12701,10,20,5000,400
+slave_transaction_retry_errors 1158,1159,1160,1161,1205,1213,1020,1429,2013,12701,10,20,5000,400
show session variables like 'slave_transaction_retry_errors';
Variable_name Value
-slave_transaction_retry_errors 1158,1159,1160,1161,1205,1213,1429,2013,12701,10,20,5000,400
+slave_transaction_retry_errors 1158,1159,1160,1161,1205,1213,1020,1429,2013,12701,10,20,5000,400
select * from information_schema.global_variables where variable_name='slave_transaction_retry_errors';
VARIABLE_NAME VARIABLE_VALUE
-SLAVE_TRANSACTION_RETRY_ERRORS 1158,1159,1160,1161,1205,1213,1429,2013,12701,10,20,5000,400
+SLAVE_TRANSACTION_RETRY_ERRORS 1158,1159,1160,1161,1205,1213,1020,1429,2013,12701,10,20,5000,400
select * from information_schema.session_variables where variable_name='slave_transaction_retry_errors';
VARIABLE_NAME VARIABLE_VALUE
-SLAVE_TRANSACTION_RETRY_ERRORS 1158,1159,1160,1161,1205,1213,1429,2013,12701,10,20,5000,400
+SLAVE_TRANSACTION_RETRY_ERRORS 1158,1159,1160,1161,1205,1213,1020,1429,2013,12701,10,20,5000,400
set global slave_transaction_retry_errors=1;
ERROR HY000: Variable 'slave_transaction_retry_errors' is a read only variable
set session slave_transaction_retry_errors=1;
diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff b/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff
index 9ae5049b..81db8629 100644
--- a/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff
+++ b/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff
@@ -1,4 +1,6 @@
-@@ -49,7 +49,7 @@
+--- sysvars_innodb.result
++++ sysvars_innodb.result,32bit
+@@ -47,7 +47,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 8
VARIABLE_SCOPE GLOBAL
@@ -7,7 +9,7 @@
VARIABLE_COMMENT Number of InnoDB Adaptive Hash Index Partitions (default 8)
NUMERIC_MIN_VALUE 1
NUMERIC_MAX_VALUE 512
-@@ -73,7 +73,7 @@
+@@ -71,7 +71,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 1
VARIABLE_SCOPE GLOBAL
@@ -16,7 +18,7 @@
VARIABLE_COMMENT The AUTOINC lock modes supported by InnoDB: 0 => Old style AUTOINC locking (for backward compatibility); 1 => New style AUTOINC locking; 2 => No AUTOINC locking (unsafe for SBR)
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 2
-@@ -85,10 +85,10 @@
+@@ -83,10 +83,10 @@
SESSION_VALUE NULL
DEFAULT_VALUE 0
VARIABLE_SCOPE GLOBAL
@@ -29,7 +31,7 @@
NUMERIC_BLOCK_SIZE 1048576
ENUM_VALUE_LIST NULL
READ_ONLY YES
-@@ -121,7 +121,7 @@
+@@ -119,7 +119,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 25
VARIABLE_SCOPE GLOBAL
@@ -38,7 +40,7 @@
VARIABLE_COMMENT Dump only the hottest N% of each buffer pool, defaults to 25
NUMERIC_MIN_VALUE 1
NUMERIC_MAX_VALUE 100
-@@ -205,7 +205,7 @@
+@@ -203,7 +203,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 0
VARIABLE_SCOPE GLOBAL
@@ -47,7 +49,7 @@
VARIABLE_COMMENT A number between [0, 100] that tells how oftern buffer pool dump status in percentages should be printed. E.g. 10 means that buffer pool dump status is printed when every 10% of number of buffer pool pages are dumped. Default is 0 (only start and end status is printed).
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 100
-@@ -325,7 +325,7 @@
+@@ -323,7 +323,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 5
VARIABLE_SCOPE GLOBAL
@@ -56,7 +58,7 @@
VARIABLE_COMMENT If the compression failure rate of a table is greater than this number more padding is added to the pages to reduce the failures. A value of zero implies no padding
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 100
-@@ -349,7 +349,7 @@
+@@ -347,7 +347,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 50
VARIABLE_SCOPE GLOBAL
@@ -65,7 +67,7 @@
VARIABLE_COMMENT Percentage of empty space on a data page that can be reserved to make the page compressible.
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 75
-@@ -625,7 +625,7 @@
+@@ -623,7 +623,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 600
VARIABLE_SCOPE GLOBAL
@@ -74,7 +76,7 @@
VARIABLE_COMMENT Maximum number of seconds that semaphore times out in InnoDB.
NUMERIC_MIN_VALUE 1
NUMERIC_MAX_VALUE 4294967295
-@@ -673,7 +673,7 @@
+@@ -671,7 +671,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 30
VARIABLE_SCOPE GLOBAL
@@ -83,7 +85,7 @@
VARIABLE_COMMENT Number of iterations over which the background flushing is averaged.
NUMERIC_MIN_VALUE 1
NUMERIC_MAX_VALUE 1000
-@@ -697,7 +697,7 @@
+@@ -695,7 +695,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 1
VARIABLE_SCOPE GLOBAL
@@ -92,7 +94,7 @@
VARIABLE_COMMENT Controls the durability/speed trade-off for commits. Set to 0 (write and flush redo log to disk only once per second), 1 (flush to disk at each commit), 2 (write to log at commit but flush to disk only once per second) or 3 (flush to disk at prepare and at commit, slower and usually redundant). 1 and 3 guarantees that after a crash, committed transactions will not be lost and will be consistent with the binlog and other transactional engines. 2 can get inconsistent and lose transactions if there is a power failure or kernel crash but not if mysqld crashes. 0 has no guarantees in case of crash. 0 and 2 can be faster than 1 or 3.
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 3
-@@ -721,7 +721,7 @@
+@@ -719,7 +719,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 1
VARIABLE_SCOPE GLOBAL
@@ -101,7 +103,7 @@
VARIABLE_COMMENT Set to 0 (don't flush neighbors from buffer pool), 1 (flush contiguous neighbors from buffer pool) or 2 (flush neighbors from buffer pool), when flushing a block
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 2
-@@ -757,7 +757,7 @@
+@@ -755,7 +755,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 0
VARIABLE_SCOPE GLOBAL
@@ -110,7 +112,7 @@
VARIABLE_COMMENT Helps to save your data in case the disk image of the database becomes corrupt. Value 5 can return bogus data, and 6 can permanently corrupt data.
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 6
-@@ -781,10 +781,10 @@
+@@ -779,10 +779,10 @@
SESSION_VALUE NULL
DEFAULT_VALUE 8000000
VARIABLE_SCOPE GLOBAL
@@ -123,7 +125,7 @@
NUMERIC_BLOCK_SIZE 0
ENUM_VALUE_LIST NULL
READ_ONLY NO
-@@ -817,7 +817,7 @@
+@@ -815,7 +815,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 84
VARIABLE_SCOPE GLOBAL
@@ -132,7 +134,7 @@
VARIABLE_COMMENT InnoDB Fulltext search maximum token size in characters
NUMERIC_MIN_VALUE 10
NUMERIC_MAX_VALUE 84
-@@ -829,7 +829,7 @@
+@@ -827,7 +827,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 3
VARIABLE_SCOPE GLOBAL
@@ -141,7 +143,7 @@
VARIABLE_COMMENT InnoDB Fulltext search minimum token size in characters
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 16
-@@ -841,7 +841,7 @@
+@@ -839,7 +839,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 2000
VARIABLE_SCOPE GLOBAL
@@ -150,7 +152,7 @@
VARIABLE_COMMENT InnoDB Fulltext search number of words to optimize for each optimize table call
NUMERIC_MIN_VALUE 1000
NUMERIC_MAX_VALUE 10000
-@@ -853,10 +853,10 @@
+@@ -851,10 +851,10 @@
SESSION_VALUE NULL
DEFAULT_VALUE 2000000000
VARIABLE_SCOPE GLOBAL
@@ -163,7 +165,7 @@
NUMERIC_BLOCK_SIZE 0
ENUM_VALUE_LIST NULL
READ_ONLY NO
-@@ -877,7 +877,7 @@
+@@ -875,7 +875,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 2
VARIABLE_SCOPE GLOBAL
@@ -172,7 +174,7 @@
VARIABLE_COMMENT InnoDB Fulltext search parallel sort degree, will round up to nearest power of 2 number
NUMERIC_MIN_VALUE 1
NUMERIC_MAX_VALUE 16
-@@ -889,10 +889,10 @@
+@@ -887,10 +887,10 @@
SESSION_VALUE NULL
DEFAULT_VALUE 640000000
VARIABLE_SCOPE GLOBAL
@@ -185,7 +187,7 @@
NUMERIC_BLOCK_SIZE 0
ENUM_VALUE_LIST NULL
READ_ONLY NO
-@@ -937,22 +937,22 @@
+@@ -935,22 +935,22 @@
SESSION_VALUE NULL
DEFAULT_VALUE 200
VARIABLE_SCOPE GLOBAL
@@ -213,20 +215,7 @@
NUMERIC_BLOCK_SIZE 0
ENUM_VALUE_LIST NULL
READ_ONLY NO
-@@ -985,10 +985,10 @@
- SESSION_VALUE NULL
- DEFAULT_VALUE 16777216
- VARIABLE_SCOPE GLOBAL
--VARIABLE_TYPE BIGINT UNSIGNED
-+VARIABLE_TYPE INT UNSIGNED
- VARIABLE_COMMENT Redo log buffer size in bytes.
- NUMERIC_MIN_VALUE 2097152
--NUMERIC_MAX_VALUE 18446744073709551615
-+NUMERIC_MAX_VALUE 4294967295
- NUMERIC_BLOCK_SIZE 4096
- ENUM_VALUE_LIST NULL
- READ_ONLY YES
-@@ -1033,10 +1033,10 @@
+@@ -1043,10 +1043,10 @@
SESSION_VALUE NULL
DEFAULT_VALUE 32
VARIABLE_SCOPE GLOBAL
@@ -239,7 +228,7 @@
NUMERIC_BLOCK_SIZE 0
ENUM_VALUE_LIST NULL
READ_ONLY NO
-@@ -1045,10 +1045,10 @@
+@@ -1055,10 +1055,10 @@
SESSION_VALUE NULL
DEFAULT_VALUE 1536
VARIABLE_SCOPE GLOBAL
@@ -252,7 +241,7 @@
NUMERIC_BLOCK_SIZE 0
ENUM_VALUE_LIST NULL
READ_ONLY NO
-@@ -1081,10 +1081,10 @@
+@@ -1091,10 +1091,10 @@
SESSION_VALUE NULL
DEFAULT_VALUE 0
VARIABLE_SCOPE GLOBAL
@@ -265,7 +254,7 @@
NUMERIC_BLOCK_SIZE 0
ENUM_VALUE_LIST NULL
READ_ONLY NO
-@@ -1093,7 +1093,7 @@
+@@ -1103,7 +1103,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 0
VARIABLE_SCOPE GLOBAL
@@ -274,7 +263,7 @@
VARIABLE_COMMENT Maximum delay of user threads in micro-seconds
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 10000000
-@@ -1225,10 +1225,10 @@
+@@ -1235,10 +1235,10 @@
SESSION_VALUE NULL
DEFAULT_VALUE 0
VARIABLE_SCOPE GLOBAL
@@ -287,7 +276,7 @@
NUMERIC_BLOCK_SIZE 0
ENUM_VALUE_LIST NULL
READ_ONLY YES
-@@ -1249,7 +1249,7 @@
+@@ -1259,7 +1259,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 16384
VARIABLE_SCOPE GLOBAL
@@ -296,7 +285,7 @@
VARIABLE_COMMENT Page size to use for all InnoDB tablespaces.
NUMERIC_MIN_VALUE 4096
NUMERIC_MAX_VALUE 65536
-@@ -1285,7 +1285,7 @@
+@@ -1295,7 +1295,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 1000
VARIABLE_SCOPE GLOBAL
@@ -305,7 +294,7 @@
VARIABLE_COMMENT Number of UNDO log pages to purge in one batch from the history list.
NUMERIC_MIN_VALUE 1
NUMERIC_MAX_VALUE 5000
-@@ -1297,7 +1297,7 @@
+@@ -1307,7 +1307,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 128
VARIABLE_SCOPE GLOBAL
@@ -314,7 +303,7 @@
VARIABLE_COMMENT Deprecated parameter with no effect
NUMERIC_MIN_VALUE 1
NUMERIC_MAX_VALUE 128
-@@ -1333,7 +1333,7 @@
+@@ -1343,7 +1343,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 56
VARIABLE_SCOPE GLOBAL
@@ -323,7 +312,7 @@
VARIABLE_COMMENT Number of pages that must be accessed sequentially for InnoDB to trigger a readahead.
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 64
-@@ -1405,7 +1405,7 @@
+@@ -1427,7 +1427,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 1048576
VARIABLE_SCOPE GLOBAL
@@ -332,7 +321,7 @@
VARIABLE_COMMENT Memory buffer size for index creation
NUMERIC_MIN_VALUE 65536
NUMERIC_MAX_VALUE 67108864
-@@ -1573,10 +1573,10 @@
+@@ -1595,10 +1595,10 @@
SESSION_VALUE NULL
DEFAULT_VALUE 30
VARIABLE_SCOPE GLOBAL
diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb.result b/mysql-test/suite/sys_vars/r/sysvars_innodb.result
index e0ce1f69..6a7e184f 100644
--- a/mysql-test/suite/sys_vars/r/sysvars_innodb.result
+++ b/mysql-test/suite/sys_vars/r/sysvars_innodb.result
@@ -983,10 +983,10 @@ VARIABLE_NAME INNODB_LOG_BUFFER_SIZE
SESSION_VALUE NULL
DEFAULT_VALUE 16777216
VARIABLE_SCOPE GLOBAL
-VARIABLE_TYPE BIGINT UNSIGNED
+VARIABLE_TYPE INT UNSIGNED
VARIABLE_COMMENT Redo log buffer size in bytes.
NUMERIC_MIN_VALUE 2097152
-NUMERIC_MAX_VALUE 18446744073709551615
+NUMERIC_MAX_VALUE 2147479552
NUMERIC_BLOCK_SIZE 4096
ENUM_VALUE_LIST NULL
READ_ONLY YES
@@ -1027,6 +1027,18 @@ NUMERIC_BLOCK_SIZE NULL
ENUM_VALUE_LIST NULL
READ_ONLY YES
COMMAND_LINE_ARGUMENT REQUIRED
+VARIABLE_NAME INNODB_LOG_SPIN_WAIT_DELAY
+SESSION_VALUE NULL
+DEFAULT_VALUE 0
+VARIABLE_SCOPE GLOBAL
+VARIABLE_TYPE INT UNSIGNED
+VARIABLE_COMMENT Delay between log buffer spin lock polls (0 to use a blocking latch)
+NUMERIC_MIN_VALUE 0
+NUMERIC_MAX_VALUE 6000
+NUMERIC_BLOCK_SIZE 0
+ENUM_VALUE_LIST NULL
+READ_ONLY NO
+COMMAND_LINE_ARGUMENT OPTIONAL
VARIABLE_NAME INNODB_LRU_FLUSH_SIZE
SESSION_VALUE NULL
DEFAULT_VALUE 32
@@ -1399,6 +1411,18 @@ NUMERIC_BLOCK_SIZE 0
ENUM_VALUE_LIST NULL
READ_ONLY NO
COMMAND_LINE_ARGUMENT OPTIONAL
+VARIABLE_NAME INNODB_SNAPSHOT_ISOLATION
+SESSION_VALUE OFF
+DEFAULT_VALUE OFF
+VARIABLE_SCOPE SESSION
+VARIABLE_TYPE BOOLEAN
+VARIABLE_COMMENT Use snapshot isolation (write-write conflict detection).
+NUMERIC_MIN_VALUE NULL
+NUMERIC_MAX_VALUE NULL
+NUMERIC_BLOCK_SIZE NULL
+ENUM_VALUE_LIST OFF,ON
+READ_ONLY NO
+COMMAND_LINE_ARGUMENT OPTIONAL
VARIABLE_NAME INNODB_SORT_BUFFER_SIZE
SESSION_VALUE NULL
DEFAULT_VALUE 1048576
diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result
index 96e1c92c..b58d18fb 100644
--- a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result
+++ b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result
@@ -2324,12 +2324,12 @@ READ_ONLY YES
COMMAND_LINE_ARGUMENT REQUIRED
VARIABLE_NAME OPTIMIZER_ADJUST_SECONDARY_KEY_COSTS
VARIABLE_SCOPE SESSION
-VARIABLE_TYPE BIGINT UNSIGNED
-VARIABLE_COMMENT 0 = No changes. 1 = Update secondary key costs for ranges to be at least 5x of clustered primary key costs. 2 = Remove 'max_seek optimization' for secondary keys and slight adjustment of filter cost. This option will be deleted in MariaDB 11.0 as it is not needed with the new 11.0 optimizer.
-NUMERIC_MIN_VALUE 0
-NUMERIC_MAX_VALUE 2
-NUMERIC_BLOCK_SIZE 1
-ENUM_VALUE_LIST NULL
+VARIABLE_TYPE SET
+VARIABLE_COMMENT A bit field with the following values: adjust_secondary_key_cost = Update secondary key costs for ranges to be at least 5x of clustered primary key costs. disable_max_seek = Disable 'max_seek optimization' for secondary keys and slight adjustment of filter cost. disable_forced_index_in_group_by = Disable automatic forced index in GROUP BY. This variable will be deleted in MariaDB 11.0 as it is not needed with the new 11.0 optimizer.
+NUMERIC_MIN_VALUE NULL
+NUMERIC_MAX_VALUE NULL
+NUMERIC_BLOCK_SIZE NULL
+ENUM_VALUE_LIST adjust_secondary_key_cost,disable_max_seek,disable_forced_index_in_group_by
READ_ONLY NO
COMMAND_LINE_ARGUMENT REQUIRED
VARIABLE_NAME OPTIMIZER_EXTRA_PRUNING_DEPTH
diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result
index 4e79d858..2c31e5f5 100644
--- a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result
+++ b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result
@@ -2494,12 +2494,12 @@ READ_ONLY YES
COMMAND_LINE_ARGUMENT REQUIRED
VARIABLE_NAME OPTIMIZER_ADJUST_SECONDARY_KEY_COSTS
VARIABLE_SCOPE SESSION
-VARIABLE_TYPE BIGINT UNSIGNED
-VARIABLE_COMMENT 0 = No changes. 1 = Update secondary key costs for ranges to be at least 5x of clustered primary key costs. 2 = Remove 'max_seek optimization' for secondary keys and slight adjustment of filter cost. This option will be deleted in MariaDB 11.0 as it is not needed with the new 11.0 optimizer.
-NUMERIC_MIN_VALUE 0
-NUMERIC_MAX_VALUE 2
-NUMERIC_BLOCK_SIZE 1
-ENUM_VALUE_LIST NULL
+VARIABLE_TYPE SET
+VARIABLE_COMMENT A bit field with the following values: adjust_secondary_key_cost = Update secondary key costs for ranges to be at least 5x of clustered primary key costs. disable_max_seek = Disable 'max_seek optimization' for secondary keys and slight adjustment of filter cost. disable_forced_index_in_group_by = Disable automatic forced index in GROUP BY. This variable will be deleted in MariaDB 11.0 as it is not needed with the new 11.0 optimizer.
+NUMERIC_MIN_VALUE NULL
+NUMERIC_MAX_VALUE NULL
+NUMERIC_BLOCK_SIZE NULL
+ENUM_VALUE_LIST adjust_secondary_key_cost,disable_max_seek,disable_forced_index_in_group_by
READ_ONLY NO
COMMAND_LINE_ARGUMENT REQUIRED
VARIABLE_NAME OPTIMIZER_EXTRA_PRUNING_DEPTH
diff --git a/mysql-test/suite/sys_vars/t/allow_suspicious_udfs.test b/mysql-test/suite/sys_vars/t/allow_suspicious_udfs.test
index 9179cfbe..f5645e01 100644
--- a/mysql-test/suite/sys_vars/t/allow_suspicious_udfs.test
+++ b/mysql-test/suite/sys_vars/t/allow_suspicious_udfs.test
@@ -5,10 +5,10 @@
SELECT @@allow_suspicious_udfs AS EXPECT_0;
# Restart the server the server with "--allow-suspicious-udfs" option
---let $restart_parameters = "--allow-suspicious-udfs"
+--let $restart_parameters = --allow-suspicious-udfs
--source include/restart_mysqld.inc
SELECT @@allow_suspicious_udfs AS EXPECT_1;
# Disable "--allow-suspicious-udfs" to restore the original state
---let $restart_parameters = "--skip-allow-suspicious-udfs"
+--let $restart_parameters = --skip-allow-suspicious-udfs
--source include/restart_mysqld.inc
diff --git a/mysql-test/suite/sys_vars/t/debug_dbug_utf16le.test b/mysql-test/suite/sys_vars/t/debug_dbug_utf16le.test
new file mode 100644
index 00000000..0c4d8f92
--- /dev/null
+++ b/mysql-test/suite/sys_vars/t/debug_dbug_utf16le.test
@@ -0,0 +1,29 @@
+--source include/have_debug.inc
+--source include/have_utf16.inc
+
+--echo #
+--echo # Start of 10.5 tests
+--echo #
+
+--echo #
+--echo # MDEV-28366 GLOBAL debug_dbug setting affected by collation_connection=utf16...
+--echo #
+
+SET NAMES utf8;
+SET collation_connection=utf16le_general_ci;
+SET debug_dbug='d,any_random_string';
+SELECT @@debug_dbug;
+SET debug_dbug=CONCAT('d,', _latin1 0xDF);
+SELECT @@debug_dbug;
+SELECT HEX(@@debug_dbug);
+
+SET @@debug_dbug=NULL;
+SELECT @@debug_dbug;
+
+SET @@debug_dbug=DEFAULT;
+SELECT @@debug_dbug;
+SET NAMES latin1;
+
+--echo #
+--echo # End of 10.5 tests
+--echo #
diff --git a/mysql-test/suite/sys_vars/t/innodb_fil_make_page_dirty_debug_basic.test b/mysql-test/suite/sys_vars/t/innodb_fil_make_page_dirty_debug_basic.test
index 396d30c7..8bc7bd2d 100644
--- a/mysql-test/suite/sys_vars/t/innodb_fil_make_page_dirty_debug_basic.test
+++ b/mysql-test/suite/sys_vars/t/innodb_fil_make_page_dirty_debug_basic.test
@@ -31,6 +31,4 @@ set global innodb_saved_page_number_debug = 0;
set global innodb_fil_make_page_dirty_debug = @space_id;
drop table t1;
---echo # Must always be 0.
-SELECT @@global.innodb_fil_make_page_dirty_debug;
-
+set global innodb_fil_make_page_dirty_debug = 0;
diff --git a/mysql-test/suite/sys_vars/t/innodb_saved_page_number_debug_basic.test b/mysql-test/suite/sys_vars/t/innodb_saved_page_number_debug_basic.test
index d0996ae9..29b84518 100644
--- a/mysql-test/suite/sys_vars/t/innodb_saved_page_number_debug_basic.test
+++ b/mysql-test/suite/sys_vars/t/innodb_saved_page_number_debug_basic.test
@@ -32,6 +32,7 @@ set global innodb_fil_make_page_dirty_debug = @space_id;
drop table t1;
set global innodb_saved_page_number_debug = 0;
+set global innodb_fil_make_page_dirty_debug = 0;
SELECT @@global.innodb_saved_page_number_debug;
diff --git a/mysql-test/suite/sys_vars/t/replicate_rewrite_db.test b/mysql-test/suite/sys_vars/t/replicate_rewrite_db.test
index 7fbaab1f..5a9537f1 100644
--- a/mysql-test/suite/sys_vars/t/replicate_rewrite_db.test
+++ b/mysql-test/suite/sys_vars/t/replicate_rewrite_db.test
@@ -63,7 +63,7 @@ SELECT @@GLOBAL.replicate_rewrite_db;
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='replicate_rewrite_db';
--echo # Check restart with appending the value
---let $restart_parameters = "--replicate_rewrite_db='X->Y'"
+--let $restart_parameters = --replicate_rewrite_db='X->Y'
--source include/restart_mysqld.inc
SELECT @@GLOBAL.replicate_rewrite_db;
@@ -76,9 +76,6 @@ SELECT @@GLOBAL.replicate_rewrite_db;
--replace_regex /mysqld/mariadbd/ /\d\d\d\d-\d*-\d* *\d*:\d*:\d* \d* //
--cat_file $MYSQL_TMP_DIR/mysqld--replicate.err
# Restart the server with the default options
---let $restart_parameters = ""
+--let $restart_parameters =
--source include/start_mysqld.inc
SELECT @@GLOBAL.replicate_rewrite_db;
-
---echo # Cleanup.
-SET @@GLOBAL.replicate_rewrite_db = @save_replicate_rewrite_db;
diff --git a/mysql-test/suite/sysschema/t/fn_ps_thread_trx_info.test b/mysql-test/suite/sysschema/t/fn_ps_thread_trx_info.test
index ddf46247..19ea013f 100644
--- a/mysql-test/suite/sysschema/t/fn_ps_thread_trx_info.test
+++ b/mysql-test/suite/sysschema/t/fn_ps_thread_trx_info.test
@@ -78,7 +78,7 @@ SELECT JSON_CONTAINS(@json_doc, '"COMMIT"', '$[0].statements_executed[1].sql_tex
SET @sys.ps_thread_trx_info.max_length = 100;
# Should return an error JSON object
---replace_regex /Row 1[1-2] was/Row 1X was/
+--replace_regex /Row \d+ was/Row 1X was/
SELECT sys.ps_thread_trx_info(@ps_thread_id);
# Setting the user variable back to NULL should reset to 65535 from sys_config, and no truncation
diff --git a/mysql-test/suite/vcol/r/func_regexp.result b/mysql-test/suite/vcol/r/func_regexp.result
new file mode 100644
index 00000000..f7ae11f7
--- /dev/null
+++ b/mysql-test/suite/vcol/r/func_regexp.result
@@ -0,0 +1,24 @@
+#
+# Start of 10.5 tests
+#
+#
+# MDEV-21058 CREATE TABLE with generated column and RLIKE results in sigabrt
+#
+CREATE TABLE t1 (c0 INT AS(('' RLIKE '[')));
+ERROR 42000: Regex error 'missing terminating ] for character class at offset 1'
+CREATE TABLE t1 (c0 INT AS(REGEXP_INSTR('','[')));
+ERROR 42000: Regex error 'missing terminating ] for character class at offset 1'
+CREATE TABLE t1
+(
+c0 INT,
+c1 INT AS(('' RLIKE NULL)),
+c2 INT AS(REGEXP_INSTR('',NULL))
+);
+INSERT INTO t1 (c0) VALUES (0);
+SELECT * FROM t1;
+c0 c1 c2
+0 NULL NULL
+DROP TABLE t1;
+#
+# End of 10.5 tests
+#
diff --git a/mysql-test/suite/vcol/t/func_regexp.test b/mysql-test/suite/vcol/t/func_regexp.test
new file mode 100644
index 00000000..5e97009a
--- /dev/null
+++ b/mysql-test/suite/vcol/t/func_regexp.test
@@ -0,0 +1,30 @@
+--source inc/vcol_init_vars.pre
+--source inc/vcol_cleanup.inc
+
+--echo #
+--echo # Start of 10.5 tests
+--echo #
+
+--echo #
+--echo # MDEV-21058 CREATE TABLE with generated column and RLIKE results in sigabrt
+--echo #
+
+--error ER_REGEXP_ERROR
+CREATE TABLE t1 (c0 INT AS(('' RLIKE '[')));
+
+--error ER_REGEXP_ERROR
+CREATE TABLE t1 (c0 INT AS(REGEXP_INSTR('','[')));
+
+CREATE TABLE t1
+(
+ c0 INT,
+ c1 INT AS(('' RLIKE NULL)),
+ c2 INT AS(REGEXP_INSTR('',NULL))
+);
+INSERT INTO t1 (c0) VALUES (0);
+SELECT * FROM t1;
+DROP TABLE t1;
+
+--echo #
+--echo # End of 10.5 tests
+--echo #
diff --git a/mysql-test/suite/versioning/r/alter.result b/mysql-test/suite/versioning/r/alter.result
index b3c342fd..52c35f47 100644
--- a/mysql-test/suite/versioning/r/alter.result
+++ b/mysql-test/suite/versioning/r/alter.result
@@ -846,8 +846,17 @@ Note 1060 Duplicate column name 'v'
alter table `b` add column if not exists ( p bit );
drop table `b`;
#
-# End of 10.4 tests
+# MDEV-30528 Assertion !mbmaxlen || ... failed
+# in dtype_get_at_most_n_mbchars()
#
+CREATE TABLE t(f TEXT) WITH SYSTEM VERSIONING CHARACTER SET utf8 ENGINE=InnoDB;
+INSERT INTO t VALUES ('foo');
+DELETE FROM t;
+ALTER TABLE t ADD FULLTEXT (f);
+affected rows: 1
+info: Records: 1 Duplicates: 0 Warnings: 0
+DROP TABLE t;
+# End of 10.4 tests
#
# MDEV-21941 RENAME doesn't work for system time or period fields
#
@@ -871,6 +880,4 @@ t1 CREATE TABLE `t1` (
PERIOD FOR SYSTEM_TIME (`x`, `y`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci WITH SYSTEM VERSIONING
drop table t1;
-#
# End of 10.5 tests
-#
diff --git a/mysql-test/suite/versioning/r/data.result b/mysql-test/suite/versioning/r/data.result
index c7fe141c..08ab03ff 100644
--- a/mysql-test/suite/versioning/r/data.result
+++ b/mysql-test/suite/versioning/r/data.result
@@ -10,6 +10,7 @@ set timestamp=unix_timestamp('1991-01-02 00:00');
delete from t1 where x=2;
set timestamp=default;
#MYSQL_DUMP --compact test
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
@@ -19,6 +20,7 @@ CREATE TABLE `t1` (
INSERT INTO `t1` VALUES
(3);
#MYSQL_DUMP --compact --as-of="1990-01-02 00:00" test
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
@@ -30,6 +32,7 @@ INSERT INTO `t1` VALUES
(2),
(3);
#MYSQL_DUMP --compact --as-of="1990-08-02 00:00" --databases test
+/*!999999\- enable the sandbox mode */
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */;
@@ -45,6 +48,7 @@ INSERT INTO `t1` VALUES
(2),
(3);
#MYSQL_DUMP --compact --as-of="1990-08-04 00:00" test t1
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
@@ -87,6 +91,7 @@ select x, check_fields(x, row_start, row_end) from t2 for system_time all order
x check_fields(x, row_start, row_end)
1 [CORRECT]
2 [CORRECT]
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
@@ -194,6 +199,7 @@ insert t1 (x) values (2);
delete from t1 where x=1;
mariadb-dump: Cannot use --dump-history for table `t1` with transaction-precise history
mariadb-dump: Cannot use --dump-history for table `t1` with transaction-precise history
+/*!999999\- enable the sandbox mode */
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
diff --git a/mysql-test/suite/versioning/r/partition.result b/mysql-test/suite/versioning/r/partition.result
index 4c1486d0..02cecea6 100644
--- a/mysql-test/suite/versioning/r/partition.result
+++ b/mysql-test/suite/versioning/r/partition.result
@@ -3447,4 +3447,27 @@ ERROR HY000: Maybe missing parameters: no rotation condition for multiple HISTOR
#
# End of 10.5 tests
#
+#
+# MDEV-31903 Server crashes in _ma_reset_history upon UNLOCK table with auto-create history partitions
+#
+set timestamp= unix_timestamp('2000-01-01 00:00:00');
+create table t1 (x int) engine=aria with system versioning partition by system_time interval 1 hour auto partitions 3;
+insert into t1 values (1);
+create table t2 (x int) engine=aria;
+create trigger tr after insert on t2 for each row update t1 set x= x + 11;
+lock tables t1 write, t2 write;
+update t1 set x= x + 1;
+set timestamp= unix_timestamp('2000-01-01 13:00:00');
+insert into t2 values (5);
+unlock tables;
+drop table t1, t2;
+set timestamp= default;
+#
+# MDEV-29872 MSAN/Valgrind uninitialised value errors in TABLE::vers_switch_partition
+#
+create table t (a int) with system versioning partition by system_time limit 100 partitions 3;
+drop table t;
+#
+# End of 10.9 tests
+#
set global innodb_stats_persistent= @save_persistent;
diff --git a/mysql-test/suite/versioning/t/alter.test b/mysql-test/suite/versioning/t/alter.test
index 44f52ddf..85448d21 100644
--- a/mysql-test/suite/versioning/t/alter.test
+++ b/mysql-test/suite/versioning/t/alter.test
@@ -743,9 +743,20 @@ alter table `b` add column if not exists ( p bit );
drop table `b`;
--echo #
---echo # End of 10.4 tests
+--echo # MDEV-30528 Assertion !mbmaxlen || ... failed
+--echo # in dtype_get_at_most_n_mbchars()
--echo #
+CREATE TABLE t(f TEXT) WITH SYSTEM VERSIONING CHARACTER SET utf8 ENGINE=InnoDB;
+INSERT INTO t VALUES ('foo');
+DELETE FROM t;
+--enable_info
+ALTER TABLE t ADD FULLTEXT (f);
+--disable_info
+DROP TABLE t;
+
+--echo # End of 10.4 tests
+
--echo #
--echo # MDEV-21941 RENAME doesn't work for system time or period fields
--echo #
@@ -767,6 +778,4 @@ show create table t1;
# cleanup
drop table t1;
---echo #
--echo # End of 10.5 tests
---echo #
diff --git a/mysql-test/suite/versioning/t/partition.test b/mysql-test/suite/versioning/t/partition.test
index 3699ac28..5707746f 100644
--- a/mysql-test/suite/versioning/t/partition.test
+++ b/mysql-test/suite/versioning/t/partition.test
@@ -2673,5 +2673,43 @@ create table t (a int) with system versioning partition by system_time partition
--echo # End of 10.5 tests
--echo #
+--echo #
+--echo # MDEV-31903 Server crashes in _ma_reset_history upon UNLOCK table with auto-create history partitions
+--echo #
+set timestamp= unix_timestamp('2000-01-01 00:00:00');
+create table t1 (x int) engine=aria with system versioning partition by system_time interval 1 hour auto partitions 3;
+insert into t1 values (1);
+
+create table t2 (x int) engine=aria;
+create trigger tr after insert on t2 for each row update t1 set x= x + 11;
+lock tables t1 write, t2 write;
+update t1 set x= x + 1;
+set timestamp= unix_timestamp('2000-01-01 13:00:00');
+insert into t2 values (5);
+unlock tables;
+drop table t1, t2;
+set timestamp= default;
+
+--echo #
+--echo # MDEV-29872 MSAN/Valgrind uninitialised value errors in TABLE::vers_switch_partition
+--echo #
+create table t (a int) with system versioning partition by system_time limit 100 partitions 3;
+let $emb= `select if(version() like '%embedded%', 1, 0)`;
+if (!$emb)
+{
+ --disable_result_log
+ --disable_query_log
+ --error ER_DELAYED_NOT_SUPPORTED
+ insert delayed into t () values ();
+ --enable_query_log
+ --enable_result_log
+}
+# cleanup
+drop table t;
+
+--echo #
+--echo # End of 10.9 tests
+--echo #
+
set global innodb_stats_persistent= @save_persistent;
--source suite/versioning/common_finish.inc