From: Alexander Barkov Date: November 21 2011 12:03pm Subject: bzr push into mysql-trunk branch (alexander.barkov:3603 to 3604) List-Archive: http://lists.mysql.com/commits/142118 Message-Id: <201111211203.pALC3JNB015600@bar.myoffice.izhnet.ru> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3604 Alexander Barkov 2011-11-21 [merge] Merging mysql-trunk 0> mysql-trunk-wl5885 modified: mysql-test/r/create-big.result mysql-test/suite/federated/federated.test mysql-test/suite/federated/federated_plugin.test mysql-test/t/create-big.test mysql-test/t/disabled.def sql/sql_insert.cc sql/sql_table.cc 3603 Alexander Barkov 2011-11-21 [merge] Merging mysql-trunk -> mysql-trunk-wl5885 removed: mysql-test/extra/rpl_tests/rpl_parallel_benchmark_load.test mysql-test/r/disabled_partition.require mysql-test/r/not_partition.require mysql-test/suite/rpl/r/rpl_parallel_benchmark.result mysql-test/suite/rpl/t/rpl_parallel_benchmark-master.opt mysql-test/suite/rpl/t/rpl_parallel_benchmark-slave.opt mysql-test/suite/rpl/t/rpl_parallel_benchmark.test storage/innobase/include/srv0conc.h storage/innobase/srv/srv0conc.c added: mysql-test/include/have_innodb_16k.inc mysql-test/include/have_innodb_4k.inc mysql-test/include/have_innodb_8k.inc mysql-test/suite/innodb/r/innodb-ac-non-locking-select.result mysql-test/suite/innodb/r/innodb_16k.result mysql-test/suite/innodb/r/innodb_4k.result mysql-test/suite/innodb/r/innodb_8k.result mysql-test/suite/innodb/r/innodb_bug12661768.result mysql-test/suite/innodb/r/innodb_cmp_drop_table.result mysql-test/suite/innodb/r/innodb_index_large_prefix_4k.result mysql-test/suite/innodb/r/innodb_index_large_prefix_8k.result mysql-test/suite/innodb/r/innodb_misc1.result mysql-test/suite/innodb/t/innodb-ac-non-locking-select.test mysql-test/suite/innodb/t/innodb_16k.test mysql-test/suite/innodb/t/innodb_4k.test mysql-test/suite/innodb/t/innodb_8k.test mysql-test/suite/innodb/t/innodb_bug12661768.test mysql-test/suite/innodb/t/innodb_cmp_drop_table-master.opt mysql-test/suite/innodb/t/innodb_cmp_drop_table.test mysql-test/suite/innodb/t/innodb_index_large_prefix_4k.test mysql-test/suite/innodb/t/innodb_index_large_prefix_8k.test mysql-test/suite/innodb/t/innodb_misc1-master.opt mysql-test/suite/innodb/t/innodb_misc1.test mysql-test/suite/innodb_fts/ mysql-test/suite/innodb_fts/r/ mysql-test/suite/innodb_fts/r/fulltext.result mysql-test/suite/innodb_fts/r/fulltext2.result mysql-test/suite/innodb_fts/r/fulltext3.result mysql-test/suite/innodb_fts/r/fulltext_cache.result mysql-test/suite/innodb_fts/r/fulltext_distinct.result mysql-test/suite/innodb_fts/r/fulltext_left_join.result mysql-test/suite/innodb_fts/r/fulltext_misc.result mysql-test/suite/innodb_fts/r/fulltext_multi.result mysql-test/suite/innodb_fts/r/fulltext_order_by.result mysql-test/suite/innodb_fts/r/fulltext_update.result mysql-test/suite/innodb_fts/r/fulltext_var.result mysql-test/suite/innodb_fts/r/innodb-fts-basic.result mysql-test/suite/innodb_fts/r/innodb-fts-ddl.result mysql-test/suite/innodb_fts/r/innodb-fts-fic.result mysql-test/suite/innodb_fts/r/innodb-fts-stopword.result mysql-test/suite/innodb_fts/r/innodb_fts_large_records.result mysql-test/suite/innodb_fts/r/innodb_fts_misc.result mysql-test/suite/innodb_fts/r/innodb_fts_misc_1.result mysql-test/suite/innodb_fts/r/innodb_fts_mutiple_index.result mysql-test/suite/innodb_fts/r/innodb_fts_proximity.result mysql-test/suite/innodb_fts/r/innodb_fts_transaction.result mysql-test/suite/innodb_fts/t/ mysql-test/suite/innodb_fts/t/disabled.def mysql-test/suite/innodb_fts/t/fulltext.test mysql-test/suite/innodb_fts/t/fulltext2.test mysql-test/suite/innodb_fts/t/fulltext3.test mysql-test/suite/innodb_fts/t/fulltext_cache.test mysql-test/suite/innodb_fts/t/fulltext_distinct.test mysql-test/suite/innodb_fts/t/fulltext_left_join.test mysql-test/suite/innodb_fts/t/fulltext_misc.test mysql-test/suite/innodb_fts/t/fulltext_multi.test mysql-test/suite/innodb_fts/t/fulltext_order_by.test mysql-test/suite/innodb_fts/t/fulltext_plugin-master.opt mysql-test/suite/innodb_fts/t/fulltext_update.test mysql-test/suite/innodb_fts/t/fulltext_var.test mysql-test/suite/innodb_fts/t/innodb-fts-basic.test mysql-test/suite/innodb_fts/t/innodb-fts-ddl.test mysql-test/suite/innodb_fts/t/innodb-fts-fic.test mysql-test/suite/innodb_fts/t/innodb-fts-stopword.test mysql-test/suite/innodb_fts/t/innodb_fts_large_records.test mysql-test/suite/innodb_fts/t/innodb_fts_misc.test mysql-test/suite/innodb_fts/t/innodb_fts_misc_1.test mysql-test/suite/innodb_fts/t/innodb_fts_mutiple_index.test mysql-test/suite/innodb_fts/t/innodb_fts_proximity.test mysql-test/suite/innodb_fts/t/innodb_fts_transaction.test mysql-test/suite/opt_trace/r/temp_table.result mysql-test/suite/opt_trace/t/temp_table.test mysql-test/suite/rpl/r/rpl_master_connection.result mysql-test/suite/rpl/r/rpl_row_find_row_debug.result mysql-test/suite/rpl/t/rpl_master_connection-master.opt mysql-test/suite/rpl/t/rpl_master_connection-slave.opt mysql-test/suite/rpl/t/rpl_master_connection.test mysql-test/suite/rpl/t/rpl_row_find_row_debug.test mysql-test/suite/sys_vars/r/innodb_disable_sort_file_cache_basic.result mysql-test/suite/sys_vars/r/innodb_ft_aux_table_basic.result mysql-test/suite/sys_vars/r/innodb_ft_cache_size_basic.result mysql-test/suite/sys_vars/r/innodb_ft_enable_diag_print_basic.result mysql-test/suite/sys_vars/r/innodb_ft_enable_stopword_basic.result mysql-test/suite/sys_vars/r/innodb_ft_max_token_size_basic.result mysql-test/suite/sys_vars/r/innodb_ft_min_token_size_basic.result mysql-test/suite/sys_vars/r/innodb_ft_num_word_optimize_basic.result mysql-test/suite/sys_vars/r/innodb_ft_server_stopword_table_basic.result mysql-test/suite/sys_vars/r/innodb_ft_sort_pll_degree_basic.result mysql-test/suite/sys_vars/r/innodb_ft_user_stopword_table_basic.result mysql-test/suite/sys_vars/r/innodb_optimize_fulltext_only_basic.result mysql-test/suite/sys_vars/r/innodb_page_size_basic.result mysql-test/suite/sys_vars/r/innodb_sort_buf_size_basic.result mysql-test/suite/sys_vars/r/metadata_locks_cache_size_basic.result mysql-test/suite/sys_vars/t/innodb_disable_sort_file_cache_basic.test mysql-test/suite/sys_vars/t/innodb_ft_aux_table_basic.test mysql-test/suite/sys_vars/t/innodb_ft_cache_size_basic.test mysql-test/suite/sys_vars/t/innodb_ft_enable_diag_print_basic.test mysql-test/suite/sys_vars/t/innodb_ft_enable_stopword_basic.test mysql-test/suite/sys_vars/t/innodb_ft_max_token_size_basic.test mysql-test/suite/sys_vars/t/innodb_ft_min_token_size_basic.test mysql-test/suite/sys_vars/t/innodb_ft_num_word_optimize_basic.test mysql-test/suite/sys_vars/t/innodb_ft_server_stopword_table_basic.test mysql-test/suite/sys_vars/t/innodb_ft_sort_pll_degree_basic.test mysql-test/suite/sys_vars/t/innodb_ft_user_stopword_table_basic.test mysql-test/suite/sys_vars/t/innodb_optimize_fulltext_only_basic.test mysql-test/suite/sys_vars/t/innodb_page_size_basic.test mysql-test/suite/sys_vars/t/innodb_sort_buf_size_basic.test mysql-test/suite/sys_vars/t/metadata_locks_cache_size_basic-master.opt mysql-test/suite/sys_vars/t/metadata_locks_cache_size_basic.test storage/innobase/fts/ storage/innobase/fts/Makefile.query storage/innobase/fts/fts0ast.c storage/innobase/fts/fts0blex.c storage/innobase/fts/fts0blex.l storage/innobase/fts/fts0config.c storage/innobase/fts/fts0opt.c storage/innobase/fts/fts0pars.c storage/innobase/fts/fts0pars.y storage/innobase/fts/fts0que.c storage/innobase/fts/fts0sql.c storage/innobase/fts/fts0tlex.c storage/innobase/fts/fts0tlex.l storage/innobase/fts/make_parser.sh storage/innobase/fut/fut0fut.c storage/innobase/include/fts0ast.h storage/innobase/include/fts0blex.h storage/innobase/include/fts0fts.h storage/innobase/include/fts0opt.h storage/innobase/include/fts0pars.h storage/innobase/include/fts0priv.h storage/innobase/include/fts0tlex.h storage/innobase/include/fts0types.h storage/innobase/include/fts0types.ic storage/innobase/include/fts0vlc.ic storage/innobase/include/fts_uc_data.ic storage/innobase/include/row0ftsort.h storage/innobase/include/srv0conc.h storage/innobase/row/row0ftsort.c storage/innobase/srv/srv0conc.c unittest/gunit/cost_estimate-t.cc renamed: storage/innobase/fut/fut0fut.c => storage/innobase/fts/fts0fts.c modified: client/mysql_plugin.c client/mysql_upgrade.c cmd-line-utils/libedit/histedit.h cmd-line-utils/libedit/np/unvis.c cmd-line-utils/libedit/np/vis.c cmd-line-utils/libedit/read.c configure.cmake extra/CMakeLists.txt extra/innochecksum.c include/my_base.h libmysql/CMakeLists.txt mysql-test/collections/default.daily mysql-test/collections/default.experimental mysql-test/collections/default.push mysql-test/collections/default.weekly mysql-test/extra/rpl_tests/rpl_parallel_load.test mysql-test/include/index_merge_ror_cpk.inc mysql-test/include/mix2.inc mysql-test/include/mrr_tests.inc mysql-test/include/mtr_warnings.sql mysql-test/include/subquery_sj.inc mysql-test/mysql-test-run.pl mysql-test/r/auth_rpl.result mysql-test/r/derived.result mysql-test/r/distinct.result mysql-test/r/func_analyse.result mysql-test/r/func_misc.result mysql-test/r/func_str.result mysql-test/r/gis.result mysql-test/r/group_by.result mysql-test/r/group_min_max_innodb.result mysql-test/r/index_merge_innodb.result mysql-test/r/index_merge_myisam.result mysql-test/r/information_schema.result mysql-test/r/innodb_explain_non_select_all.result mysql-test/r/innodb_mrr.result mysql-test/r/innodb_mrr_cost.result mysql-test/r/innodb_mrr_cost_icp.result mysql-test/r/innodb_mrr_icp.result mysql-test/r/innodb_mrr_none.result mysql-test/r/innodb_mysql_lock.result mysql-test/r/myisam_explain_non_select_all.result mysql-test/r/mysql_upgrade.result mysql-test/r/mysqld--help-notwin.result mysql-test/r/mysqld--help-win.result mysql-test/r/mysqlshow.result mysql-test/r/not_partition.result mysql-test/r/partition_disabled.result mysql-test/r/partition_innodb.result mysql-test/r/partition_innodb_plugin.result mysql-test/r/partition_myisam.result mysql-test/r/plugin_auth.result mysql-test/r/ps_1general.result mysql-test/r/rpl_mysqldump_slave.result mysql-test/r/sp.result mysql-test/r/subquery_all.result mysql-test/r/subquery_all_bka.result mysql-test/r/subquery_mat_all.result mysql-test/r/subquery_sj_all.result mysql-test/r/subquery_sj_all_bka.result mysql-test/r/subquery_sj_all_bka_nixbnl.result mysql-test/r/subquery_sj_all_bkaunique.result mysql-test/r/subquery_sj_dupsweed.result mysql-test/r/subquery_sj_dupsweed_bka.result mysql-test/r/subquery_sj_dupsweed_bka_nixbnl.result mysql-test/r/subquery_sj_dupsweed_bkaunique.result mysql-test/r/subquery_sj_firstmatch.result mysql-test/r/subquery_sj_firstmatch_bka.result mysql-test/r/subquery_sj_firstmatch_bka_nixbnl.result mysql-test/r/subquery_sj_firstmatch_bkaunique.result mysql-test/r/subquery_sj_loosescan.result mysql-test/r/subquery_sj_loosescan_bka.result mysql-test/r/subquery_sj_loosescan_bka_nixbnl.result mysql-test/r/subquery_sj_loosescan_bkaunique.result mysql-test/r/subquery_sj_mat.result mysql-test/r/subquery_sj_mat_bka.result mysql-test/r/subquery_sj_mat_bka_nixbnl.result mysql-test/r/subquery_sj_mat_bkaunique.result mysql-test/r/subquery_sj_mat_nosj.result mysql-test/r/subquery_sj_none.result mysql-test/r/subquery_sj_none_bka.result mysql-test/r/subquery_sj_none_bka_nixbnl.result mysql-test/r/subquery_sj_none_bkaunique.result mysql-test/r/type_newdecimal.result mysql-test/r/view.result mysql-test/r/view_grant.result mysql-test/suite/binlog/r/binlog_rewrite.result mysql-test/suite/innodb/r/innodb-create-options.result mysql-test/suite/innodb/r/innodb-index.result mysql-test/suite/innodb/r/innodb-system-table-view.result mysql-test/suite/innodb/r/innodb-zip.result mysql-test/suite/innodb/r/innodb.result mysql-test/suite/innodb/r/innodb_buffer_pool_load.result mysql-test/suite/innodb/r/innodb_bug30423.result mysql-test/suite/innodb/r/innodb_bug53591.result mysql-test/suite/innodb/r/innodb_bug53592.result mysql-test/suite/innodb/r/innodb_index_large_prefix.result mysql-test/suite/innodb/r/innodb_information_schema.result mysql-test/suite/innodb/r/innodb_monitor.result mysql-test/suite/innodb/r/innodb_mysql.result mysql-test/suite/innodb/t/innodb-create-options.test mysql-test/suite/innodb/t/innodb-index.test mysql-test/suite/innodb/t/innodb-system-table-view.test mysql-test/suite/innodb/t/innodb-zip.test mysql-test/suite/innodb/t/innodb.test mysql-test/suite/innodb/t/innodb_buffer_pool_load.test mysql-test/suite/innodb/t/innodb_bug30423.test mysql-test/suite/innodb/t/innodb_bug34300.test mysql-test/suite/innodb/t/innodb_bug36172.test mysql-test/suite/innodb/t/innodb_bug53591.test mysql-test/suite/innodb/t/innodb_bug53592.test mysql-test/suite/innodb/t/innodb_bug60049.test mysql-test/suite/innodb/t/innodb_corrupt_bit.test mysql-test/suite/innodb/t/innodb_index_large_prefix.test mysql-test/suite/innodb/t/innodb_information_schema.test mysql-test/suite/innodb/t/innodb_mysql.test mysql-test/suite/innodb/t/innodb_prefix_index_liftedlimit.test mysql-test/suite/innodb/t/innodb_prefix_index_restart_server.test mysql-test/suite/innodb/t/innodb_trx_weight.test mysql-test/suite/large_tests/r/rpl_slave_net_timeout.result mysql-test/suite/opt_trace/include/general.inc mysql-test/suite/opt_trace/include/range.inc mysql-test/suite/opt_trace/include/subquery.inc mysql-test/suite/opt_trace/r/bugs_no_prot_all.result mysql-test/suite/opt_trace/r/bugs_ps_prot_all.result mysql-test/suite/opt_trace/r/charset.result mysql-test/suite/opt_trace/r/filesort_pq.result mysql-test/suite/opt_trace/r/general2_no_prot.result mysql-test/suite/opt_trace/r/general2_ps_prot.result mysql-test/suite/opt_trace/r/general_no_prot_all.result mysql-test/suite/opt_trace/r/general_no_prot_none.result mysql-test/suite/opt_trace/r/general_ps_prot_all.result mysql-test/suite/opt_trace/r/general_ps_prot_none.result mysql-test/suite/opt_trace/r/range_no_prot.result mysql-test/suite/opt_trace/r/range_ps_prot.result mysql-test/suite/opt_trace/r/security_no_prot.result mysql-test/suite/opt_trace/r/security_ps_prot.result mysql-test/suite/opt_trace/r/subquery_no_prot.result mysql-test/suite/opt_trace/r/subquery_ps_prot.result mysql-test/suite/parts/r/partition_debug_innodb.result mysql-test/suite/parts/r/rpl-partition-dml-1-1-innodb.result mysql-test/suite/parts/r/rpl-partition-dml-1-1-myisam.result mysql-test/suite/parts/r/rpl_partition.result mysql-test/suite/parts/t/partition_debug_innodb.test mysql-test/suite/perfschema/r/relaylog.result mysql-test/suite/rpl/r/rpl_000010.result mysql-test/suite/rpl/r/rpl_000011.result mysql-test/suite/rpl/r/rpl_000013.result mysql-test/suite/rpl/r/rpl_000017.result mysql-test/suite/rpl/r/rpl_DML_error.result mysql-test/suite/rpl/r/rpl_EE_err.result mysql-test/suite/rpl/r/rpl_LD_INFILE.result mysql-test/suite/rpl/r/rpl_alter.result mysql-test/suite/rpl/r/rpl_alter_db.result mysql-test/suite/rpl/r/rpl_alter_repository.result mysql-test/suite/rpl/r/rpl_auto_increment.result mysql-test/suite/rpl/r/rpl_auto_increment_11932.result mysql-test/suite/rpl/r/rpl_auto_increment_bug33029.result mysql-test/suite/rpl/r/rpl_auto_increment_update_failure.result mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result mysql-test/suite/rpl/r/rpl_binlog_corruption.result mysql-test/suite/rpl/r/rpl_binlog_errors.result mysql-test/suite/rpl/r/rpl_binlog_grant.result mysql-test/suite/rpl/r/rpl_bit.result mysql-test/suite/rpl/r/rpl_bit_npk.result mysql-test/suite/rpl/r/rpl_blackhole.result mysql-test/suite/rpl/r/rpl_bug26395.result mysql-test/suite/rpl/r/rpl_bug31076.result mysql-test/suite/rpl/r/rpl_bug33931.result mysql-test/suite/rpl/r/rpl_bug37426.result mysql-test/suite/rpl/r/rpl_bug38694.result mysql-test/suite/rpl/r/rpl_bug41902.result mysql-test/suite/rpl/r/rpl_change_master.result mysql-test/suite/rpl/r/rpl_change_master_crash_safe.result mysql-test/suite/rpl/r/rpl_change_master_dbug.result mysql-test/suite/rpl/r/rpl_charset.result mysql-test/suite/rpl/r/rpl_charset_sjis.result mysql-test/suite/rpl/r/rpl_checksum.result mysql-test/suite/rpl/r/rpl_checksum_cache.result mysql-test/suite/rpl/r/rpl_circular_for_4_hosts.result mysql-test/suite/rpl/r/rpl_colSize.result mysql-test/suite/rpl/r/rpl_commit_after_flush.result mysql-test/suite/rpl/r/rpl_concurrency_error.result mysql-test/suite/rpl/r/rpl_conditional_comments.result mysql-test/suite/rpl/r/rpl_corruption.result mysql-test/suite/rpl/r/rpl_crash_safe_master.result mysql-test/suite/rpl/r/rpl_create_database.result mysql-test/suite/rpl/r/rpl_create_if_not_exists.result mysql-test/suite/rpl/r/rpl_create_tmp_table_if_not_exists.result mysql-test/suite/rpl/r/rpl_cross_version.result mysql-test/suite/rpl/r/rpl_current_user.result mysql-test/suite/rpl/r/rpl_deadlock_innodb.result mysql-test/suite/rpl/r/rpl_delete_no_where.result mysql-test/suite/rpl/r/rpl_do_db_filter.result mysql-test/suite/rpl/r/rpl_do_grant.result mysql-test/suite/rpl/r/rpl_do_table_filter_insensitive.result mysql-test/suite/rpl/r/rpl_do_table_filter_sensitive.result mysql-test/suite/rpl/r/rpl_drop.result mysql-test/suite/rpl/r/rpl_drop_db.result mysql-test/suite/rpl/r/rpl_drop_temp.result mysql-test/suite/rpl/r/rpl_drop_view.result mysql-test/suite/rpl/r/rpl_dual_pos_advance.result mysql-test/suite/rpl/r/rpl_empty_master_host.result mysql-test/suite/rpl/r/rpl_err_ignoredtable.result mysql-test/suite/rpl/r/rpl_events.result mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result mysql-test/suite/rpl/r/rpl_extra_col_slave_innodb.result mysql-test/suite/rpl/r/rpl_extra_col_slave_myisam.result mysql-test/suite/rpl/r/rpl_failed_optimize.result mysql-test/suite/rpl/r/rpl_filter_database.result mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result mysql-test/suite/rpl/r/rpl_flush_logs.result mysql-test/suite/rpl/r/rpl_flushlog_loop.result mysql-test/suite/rpl/r/rpl_foreign_key_innodb.result mysql-test/suite/rpl/r/rpl_free_items.result mysql-test/suite/rpl/r/rpl_general_log.result mysql-test/suite/rpl/r/rpl_geometry.result mysql-test/suite/rpl/r/rpl_get_lock.result mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result mysql-test/suite/rpl/r/rpl_grant.result mysql-test/suite/rpl/r/rpl_grant_plugin.result mysql-test/suite/rpl/r/rpl_heartbeat.result mysql-test/suite/rpl/r/rpl_heartbeat_2slaves.result mysql-test/suite/rpl/r/rpl_heartbeat_basic.result mysql-test/suite/rpl/r/rpl_heartbeat_ssl.result mysql-test/suite/rpl/r/rpl_idempotency.result mysql-test/suite/rpl/r/rpl_ignore_db_filter.result mysql-test/suite/rpl/r/rpl_ignore_grant.result mysql-test/suite/rpl/r/rpl_ignore_revoke.result mysql-test/suite/rpl/r/rpl_ignore_table.result mysql-test/suite/rpl/r/rpl_ignore_table_filter_insensitive.result mysql-test/suite/rpl/r/rpl_ignore_table_filter_sensitive.result mysql-test/suite/rpl/r/rpl_ignore_table_update.result mysql-test/suite/rpl/r/rpl_incident.result mysql-test/suite/rpl/r/rpl_init_slave.result mysql-test/suite/rpl/r/rpl_init_slave_errors.result mysql-test/suite/rpl/r/rpl_innodb_bug28430.result mysql-test/suite/rpl/r/rpl_innodb_bug30888.result mysql-test/suite/rpl/r/rpl_innodb_mixed_ddl.result mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result mysql-test/suite/rpl/r/rpl_insert.result mysql-test/suite/rpl/r/rpl_insert_id.result mysql-test/suite/rpl/r/rpl_insert_id_pk.result mysql-test/suite/rpl/r/rpl_insert_ignore.result mysql-test/suite/rpl/r/rpl_invoked_features.result mysql-test/suite/rpl/r/rpl_ip_mix.result mysql-test/suite/rpl/r/rpl_ip_mix2.result mysql-test/suite/rpl/r/rpl_ipv4_as_ipv6.result mysql-test/suite/rpl/r/rpl_ipv6.result mysql-test/suite/rpl/r/rpl_killed_ddl.result mysql-test/suite/rpl/r/rpl_known_bugs_detection.result mysql-test/suite/rpl/r/rpl_lcase_tblnames_rewrite_db.result mysql-test/suite/rpl/r/rpl_loaddata.result mysql-test/suite/rpl/r/rpl_loaddata_charset.result mysql-test/suite/rpl/r/rpl_loaddata_fatal.result mysql-test/suite/rpl/r/rpl_loaddata_m.result mysql-test/suite/rpl/r/rpl_loaddata_map.result mysql-test/suite/rpl/r/rpl_loaddata_s.result mysql-test/suite/rpl/r/rpl_loaddata_simple.result mysql-test/suite/rpl/r/rpl_loaddata_symlink.result mysql-test/suite/rpl/r/rpl_loaddatalocal.result mysql-test/suite/rpl/r/rpl_loadfile.result mysql-test/suite/rpl/r/rpl_locale.result mysql-test/suite/rpl/r/rpl_log_pos.result mysql-test/suite/rpl/r/rpl_manual_change_index_file.result mysql-test/suite/rpl/r/rpl_many_optimize.result mysql-test/suite/rpl/r/rpl_master_pos_wait.result mysql-test/suite/rpl/r/rpl_migration_crash_safe.result mysql-test/suite/rpl/r/rpl_misc_functions.result mysql-test/suite/rpl/r/rpl_mix_found_rows.result mysql-test/suite/rpl/r/rpl_mix_insert_delayed.result mysql-test/suite/rpl/r/rpl_mixed_binlog_max_cache_size.result mysql-test/suite/rpl/r/rpl_mixed_bit_pk.result mysql-test/suite/rpl/r/rpl_mixed_ddl_dml.result mysql-test/suite/rpl/r/rpl_mixed_drop_create_temp_table.result mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result mysql-test/suite/rpl/r/rpl_mixed_mixing_engines.result mysql-test/suite/rpl/r/rpl_mixed_mts_crash_safe.result mysql-test/suite/rpl/r/rpl_mixed_mts_rec_crash_safe.result mysql-test/suite/rpl/r/rpl_mixed_mts_rec_crash_safe_checksum.result mysql-test/suite/rpl/r/rpl_mts_check_concurrency.result mysql-test/suite/rpl/r/rpl_multi_delete.result mysql-test/suite/rpl/r/rpl_multi_delete2.result mysql-test/suite/rpl/r/rpl_multi_engine.result mysql-test/suite/rpl/r/rpl_multi_update.result mysql-test/suite/rpl/r/rpl_multi_update2.result mysql-test/suite/rpl/r/rpl_multi_update3.result mysql-test/suite/rpl/r/rpl_multi_update4.result mysql-test/suite/rpl/r/rpl_mysql_upgrade.result mysql-test/suite/rpl/r/rpl_name_const.result mysql-test/suite/rpl/r/rpl_non_direct_mixed_mixing_engines.result mysql-test/suite/rpl/r/rpl_non_direct_row_mixing_engines.result mysql-test/suite/rpl/r/rpl_non_direct_stm_mixing_engines.result mysql-test/suite/rpl/r/rpl_nondeterministic_functions.result mysql-test/suite/rpl/r/rpl_not_null_innodb.result mysql-test/suite/rpl/r/rpl_not_null_myisam.result mysql-test/suite/rpl/r/rpl_optimize.result mysql-test/suite/rpl/r/rpl_packet.result mysql-test/suite/rpl/r/rpl_parallel.result mysql-test/suite/rpl/r/rpl_parallel_conf_limits.result mysql-test/suite/rpl/r/rpl_parallel_conflicts.result mysql-test/suite/rpl/r/rpl_parallel_ddl.result mysql-test/suite/rpl/r/rpl_parallel_innodb.result mysql-test/suite/rpl/r/rpl_parallel_multi_db.result mysql-test/suite/rpl/r/rpl_parallel_seconds_behind_master.result mysql-test/suite/rpl/r/rpl_parallel_start_stop.result mysql-test/suite/rpl/r/rpl_parallel_switch_sequential.result mysql-test/suite/rpl/r/rpl_parallel_temp_query.result mysql-test/suite/rpl/r/rpl_partition_archive.result mysql-test/suite/rpl/r/rpl_partition_innodb.result mysql-test/suite/rpl/r/rpl_partition_memory.result mysql-test/suite/rpl/r/rpl_partition_myisam.result mysql-test/suite/rpl/r/rpl_plugin_load.result mysql-test/suite/rpl/r/rpl_ps.result mysql-test/suite/rpl/r/rpl_rbr_to_sbr.result mysql-test/suite/rpl/r/rpl_read_old_relay_log_info.result mysql-test/suite/rpl/r/rpl_read_only.result mysql-test/suite/rpl/r/rpl_relay_space_innodb.result mysql-test/suite/rpl/r/rpl_relay_space_myisam.result mysql-test/suite/rpl/r/rpl_relayrotate.result mysql-test/suite/rpl/r/rpl_relayspace.result mysql-test/suite/rpl/r/rpl_replicate_do.result mysql-test/suite/rpl/r/rpl_replicate_ignore_db.result mysql-test/suite/rpl/r/rpl_report.result mysql-test/suite/rpl/r/rpl_rewrite_db_filter.result mysql-test/suite/rpl/r/rpl_rewrt_db.result mysql-test/suite/rpl/r/rpl_rotate_logs.result mysql-test/suite/rpl/r/rpl_rotate_purge_deadlock.result mysql-test/suite/rpl/r/rpl_row_001.result mysql-test/suite/rpl/r/rpl_row_4_bytes.result mysql-test/suite/rpl/r/rpl_row_NOW.result mysql-test/suite/rpl/r/rpl_row_USER.result mysql-test/suite/rpl/r/rpl_row_UUID.result mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result mysql-test/suite/rpl/r/rpl_row_basic_8partition.result mysql-test/suite/rpl/r/rpl_row_binlog_max_cache_size.result mysql-test/suite/rpl/r/rpl_row_blob_innodb.result mysql-test/suite/rpl/r/rpl_row_blob_myisam.result mysql-test/suite/rpl/r/rpl_row_colSize.result mysql-test/suite/rpl/r/rpl_row_conflicts.result mysql-test/suite/rpl/r/rpl_row_corruption.result mysql-test/suite/rpl/r/rpl_row_crash_safe.result mysql-test/suite/rpl/r/rpl_row_delayed_ins.result mysql-test/suite/rpl/r/rpl_row_drop.result mysql-test/suite/rpl/r/rpl_row_drop_create_temp_table.result mysql-test/suite/rpl/r/rpl_row_event_max_size.result mysql-test/suite/rpl/r/rpl_row_find_row.result mysql-test/suite/rpl/r/rpl_row_flsh_tbls.result mysql-test/suite/rpl/r/rpl_row_func001.result mysql-test/suite/rpl/r/rpl_row_func002.result mysql-test/suite/rpl/r/rpl_row_func003.result mysql-test/suite/rpl/r/rpl_row_idempotency.result mysql-test/suite/rpl/r/rpl_row_ignorable_event.result mysql-test/suite/rpl/r/rpl_row_img_blobs.result mysql-test/suite/rpl/r/rpl_row_img_eng_full.result mysql-test/suite/rpl/r/rpl_row_img_eng_min.result mysql-test/suite/rpl/r/rpl_row_img_eng_noblob.result mysql-test/suite/rpl/r/rpl_row_img_idx_full.result mysql-test/suite/rpl/r/rpl_row_img_idx_min.result mysql-test/suite/rpl/r/rpl_row_img_idx_noblob.result mysql-test/suite/rpl/r/rpl_row_img_misc.result mysql-test/suite/rpl/r/rpl_row_img_sanity.result mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result mysql-test/suite/rpl/r/rpl_row_inexist_tbl.result mysql-test/suite/rpl/r/rpl_row_insert_delayed.result mysql-test/suite/rpl/r/rpl_row_lcase_tblnames.result mysql-test/suite/rpl/r/rpl_row_log.result mysql-test/suite/rpl/r/rpl_row_log_innodb.result mysql-test/suite/rpl/r/rpl_row_max_relay_size.result mysql-test/suite/rpl/r/rpl_row_mixing_engines.result mysql-test/suite/rpl/r/rpl_row_mts_crash_safe.result mysql-test/suite/rpl/r/rpl_row_mts_rec_crash_safe.result mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result mysql-test/suite/rpl/r/rpl_row_rec_comp_innodb.result mysql-test/suite/rpl/r/rpl_row_rec_comp_myisam.result mysql-test/suite/rpl/r/rpl_row_record_find_myisam.result mysql-test/suite/rpl/r/rpl_row_reset_slave.result mysql-test/suite/rpl/r/rpl_row_show_relaylog_events.result mysql-test/suite/rpl/r/rpl_row_sp001.result mysql-test/suite/rpl/r/rpl_row_sp002_innodb.result mysql-test/suite/rpl/r/rpl_row_sp003.result mysql-test/suite/rpl/r/rpl_row_sp005.result mysql-test/suite/rpl/r/rpl_row_sp006_InnoDB.result mysql-test/suite/rpl/r/rpl_row_sp007_innodb.result mysql-test/suite/rpl/r/rpl_row_sp008.result mysql-test/suite/rpl/r/rpl_row_sp009.result mysql-test/suite/rpl/r/rpl_row_sp010.result mysql-test/suite/rpl/r/rpl_row_sp011.result mysql-test/suite/rpl/r/rpl_row_sp012.result mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result mysql-test/suite/rpl/r/rpl_row_tbl_metadata.result mysql-test/suite/rpl/r/rpl_row_trig001.result mysql-test/suite/rpl/r/rpl_row_trig002.result mysql-test/suite/rpl/r/rpl_row_trig003.result mysql-test/suite/rpl/r/rpl_row_trig004.result mysql-test/suite/rpl/r/rpl_row_trunc_temp.result mysql-test/suite/rpl/r/rpl_row_unsafe_funcs.result mysql-test/suite/rpl/r/rpl_row_utf16.result mysql-test/suite/rpl/r/rpl_row_utf32.result mysql-test/suite/rpl/r/rpl_row_view01.result mysql-test/suite/rpl/r/rpl_row_wide_table.result mysql-test/suite/rpl/r/rpl_savepoint.result mysql-test/suite/rpl/r/rpl_seconds_behind_master.result mysql-test/suite/rpl/r/rpl_semi_sync.result mysql-test/suite/rpl/r/rpl_semi_sync_event.result mysql-test/suite/rpl/r/rpl_sequential.result mysql-test/suite/rpl/r/rpl_server_id1.result mysql-test/suite/rpl/r/rpl_server_id2.result mysql-test/suite/rpl/r/rpl_server_id_ignore.result mysql-test/suite/rpl/r/rpl_server_uuid.result mysql-test/suite/rpl/r/rpl_session_var.result mysql-test/suite/rpl/r/rpl_set_charset.result mysql-test/suite/rpl/r/rpl_set_null_innodb.result mysql-test/suite/rpl/r/rpl_set_null_myisam.result mysql-test/suite/rpl/r/rpl_show_errors.result mysql-test/suite/rpl/r/rpl_show_master_info_file.result mysql-test/suite/rpl/r/rpl_show_slave_hosts.result mysql-test/suite/rpl/r/rpl_show_slave_running.result mysql-test/suite/rpl/r/rpl_skip_error.result mysql-test/suite/rpl/r/rpl_skip_incident.result mysql-test/suite/rpl/r/rpl_slave_grp_exec.result mysql-test/suite/rpl/r/rpl_slave_load_in.result mysql-test/suite/rpl/r/rpl_slave_load_remove_tmpfile.result mysql-test/suite/rpl/r/rpl_slave_load_tmpdir_not_exist.result mysql-test/suite/rpl/r/rpl_slave_skip.result mysql-test/suite/rpl/r/rpl_slave_start.result mysql-test/suite/rpl/r/rpl_slave_status.result mysql-test/suite/rpl/r/rpl_slow_query_log.result mysql-test/suite/rpl/r/rpl_sp.result mysql-test/suite/rpl/r/rpl_sp004.result mysql-test/suite/rpl/r/rpl_sp_effects.result mysql-test/suite/rpl/r/rpl_spec_variables.result mysql-test/suite/rpl/r/rpl_sporadic_master.result mysql-test/suite/rpl/r/rpl_ssl.result mysql-test/suite/rpl/r/rpl_ssl1.result mysql-test/suite/rpl/r/rpl_stm_000001.result mysql-test/suite/rpl/r/rpl_stm_EE_err2.result mysql-test/suite/rpl/r/rpl_stm_auto_increment_bug33029.result mysql-test/suite/rpl/r/rpl_stm_binlog_max_cache_size.result mysql-test/suite/rpl/r/rpl_stm_conflicts.result mysql-test/suite/rpl/r/rpl_stm_drop_create_temp_table.result mysql-test/suite/rpl/r/rpl_stm_flsh_tbls.result mysql-test/suite/rpl/r/rpl_stm_found_rows.result mysql-test/suite/rpl/r/rpl_stm_implicit_commit_binlog.result mysql-test/suite/rpl/r/rpl_stm_innodb.result mysql-test/suite/rpl/r/rpl_stm_insert_delayed.result mysql-test/suite/rpl/r/rpl_stm_lcase_tblnames.result mysql-test/suite/rpl/r/rpl_stm_loaddata_concurrent.result mysql-test/suite/rpl/r/rpl_stm_loadfile.result mysql-test/suite/rpl/r/rpl_stm_log.result mysql-test/suite/rpl/r/rpl_stm_max_relay_size.result mysql-test/suite/rpl/r/rpl_stm_mix_show_relaylog_events.result mysql-test/suite/rpl/r/rpl_stm_mixed_crash_safe.result mysql-test/suite/rpl/r/rpl_stm_mixing_engines.result mysql-test/suite/rpl/r/rpl_stm_mts_crash_safe.result mysql-test/suite/rpl/r/rpl_stm_mts_rec_crash_safe.result mysql-test/suite/rpl/r/rpl_stm_multi_query.result mysql-test/suite/rpl/r/rpl_stm_no_op.result mysql-test/suite/rpl/r/rpl_stm_reset_slave.result mysql-test/suite/rpl/r/rpl_stm_sql_mode.result mysql-test/suite/rpl/r/rpl_stm_start_stop_slave.result mysql-test/suite/rpl/r/rpl_stm_stop_middle_group.result mysql-test/suite/rpl/r/rpl_stm_user_variables.result mysql-test/suite/rpl/r/rpl_stop_slave.result mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result mysql-test/suite/rpl/r/rpl_sync.result mysql-test/suite/rpl/r/rpl_temp_table.result mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result mysql-test/suite/rpl/r/rpl_temporal_fractional.result mysql-test/suite/rpl/r/rpl_temporary.result mysql-test/suite/rpl/r/rpl_temporary_errors.result mysql-test/suite/rpl/r/rpl_test_framework.result mysql-test/suite/rpl/r/rpl_timezone.result mysql-test/suite/rpl/r/rpl_tmp_table_and_DDL.result mysql-test/suite/rpl/r/rpl_trigger.result mysql-test/suite/rpl/r/rpl_trunc_temp.result mysql-test/suite/rpl/r/rpl_truncate_2myisam.result mysql-test/suite/rpl/r/rpl_truncate_3innodb.result mysql-test/suite/rpl/r/rpl_typeconv.result mysql-test/suite/rpl/r/rpl_typeconv_innodb.result mysql-test/suite/rpl/r/rpl_udf.result mysql-test/suite/rpl/r/rpl_user.result mysql-test/suite/rpl/r/rpl_user_variables.result mysql-test/suite/rpl/r/rpl_variables.result mysql-test/suite/rpl/r/rpl_variables_stm.result mysql-test/suite/rpl/r/rpl_view.result mysql-test/suite/rpl/r/rpl_view_multi.result mysql-test/suite/sys_vars/inc/delayed_queue_size_basic.inc mysql-test/suite/sys_vars/inc/query_cache_size_basic.inc mysql-test/suite/sys_vars/r/innodb_monitor_disable_basic.result mysql-test/suite/sys_vars/r/innodb_monitor_enable_basic.result mysql-test/suite/sys_vars/r/innodb_monitor_reset_all_basic.result mysql-test/suite/sys_vars/r/innodb_monitor_reset_basic.result mysql-test/suite/sys_vars/r/log_warnings_basic_32.result mysql-test/suite/sys_vars/r/query_cache_size_basic_32.result mysql-test/suite/sys_vars/r/query_cache_size_basic_64.result mysql-test/suite/sys_vars/r/relay_log_basename_basic.result mysql-test/suite/sys_vars/r/relay_log_index_basic.result mysql-test/suite/sys_vars/r/rpl_init_slave_func.result mysql-test/suite/sys_vars/t/delayed_insert_timeout_basic.test mysql-test/suite/sys_vars/t/disabled.def mysql-test/suite/sys_vars/t/innodb_buffer_pool_load_at_startup_basic.test mysql-test/t/ctype_utf8mb4_innodb.test mysql-test/t/derived.test mysql-test/t/distinct.test mysql-test/t/func_analyse.test mysql-test/t/func_misc.test mysql-test/t/func_str.test mysql-test/t/gis.test mysql-test/t/group_by.test mysql-test/t/group_min_max_innodb.test mysql-test/t/innodb_mysql_lock.test mysql-test/t/mysql_plugin.test mysql-test/t/mysql_upgrade.test mysql-test/t/mysqlbinlog_row_innodb.test mysql-test/t/not_partition.test mysql-test/t/partition_disabled.test mysql-test/t/partition_innodb.test mysql-test/t/partition_innodb_plugin.test mysql-test/t/partition_myisam.test mysql-test/t/plugin_auth.test mysql-test/t/ps_1general.test mysql-test/t/rewrite_general_log.test mysql-test/t/sp.test mysql-test/t/type_newdecimal.test mysql-test/t/view.test mysql-test/t/view_grant.test mysql-test/valgrind.supp mysys/my_handler_errors.h scripts/mysql_config.sh scripts/mysqld_safe.sh sql/CMakeLists.txt sql/filesort.cc sql/ha_partition.cc sql/handler.cc sql/handler.h sql/item.cc sql/item.h sql/item_func.cc sql/item_geofunc.cc sql/item_strfunc.cc sql/lex.h sql/log_event.cc sql/log_event.h sql/mdl.cc sql/mdl.h sql/my_decimal.h sql/mysqld.cc sql/mysqld.h sql/opt_explain.cc sql/opt_range.cc sql/rpl_handler.cc sql/rpl_master.cc sql/rpl_mi.cc sql/rpl_mi.h sql/rpl_rli.cc sql/rpl_rli.h sql/rpl_slave.cc sql/share/errmsg-utf8.txt sql/sp_head.cc sql/sql_acl.cc sql/sql_bitmap.h sql/sql_cache.cc sql/sql_class.h sql/sql_const.h sql/sql_derived.cc sql/sql_lex.cc sql/sql_lex.h sql/sql_parse.cc sql/sql_partition.cc sql/sql_plist.h sql/sql_reload.cc sql/sql_select.cc sql/sql_select.h sql/sql_table.cc sql/sql_union.cc sql/sql_view.cc sql/sql_yacc.yy sql/sys_vars.cc sql/table.cc sql/table.h storage/innobase/CMakeLists.txt storage/innobase/btr/btr0btr.c storage/innobase/btr/btr0cur.c storage/innobase/buf/buf0buddy.c storage/innobase/buf/buf0buf.c storage/innobase/buf/buf0checksum.c storage/innobase/buf/buf0flu.c storage/innobase/dict/dict0crea.c storage/innobase/dict/dict0dict.c storage/innobase/dict/dict0load.c storage/innobase/dict/dict0mem.c storage/innobase/dict/dict0stats.c storage/innobase/eval/eval0eval.c storage/innobase/fil/fil0fil.c storage/innobase/fsp/fsp0fsp.c storage/innobase/handler/ha_innodb.cc storage/innobase/handler/ha_innodb.h storage/innobase/handler/handler0alter.cc storage/innobase/handler/i_s.cc storage/innobase/handler/i_s.h storage/innobase/ibuf/ibuf0ibuf.c storage/innobase/include/btr0cur.h storage/innobase/include/buf0buf.h storage/innobase/include/buf0buf.ic storage/innobase/include/buf0checksum.h storage/innobase/include/buf0types.h storage/innobase/include/data0type.h storage/innobase/include/data0type.ic storage/innobase/include/db0err.h storage/innobase/include/dict0dict.h storage/innobase/include/dict0dict.ic storage/innobase/include/dict0mem.h storage/innobase/include/fil0fil.h storage/innobase/include/fsp0fsp.h storage/innobase/include/fsp0fsp.ic storage/innobase/include/fsp0types.h storage/innobase/include/ha_prototypes.h storage/innobase/include/lock0types.h storage/innobase/include/mach0data.h storage/innobase/include/mach0data.ic storage/innobase/include/os0sync.h storage/innobase/include/pars0grm.h storage/innobase/include/pars0pars.h storage/innobase/include/pars0sym.h storage/innobase/include/que0que.h storage/innobase/include/que0que.ic storage/innobase/include/read0read.h storage/innobase/include/rem0cmp.h storage/innobase/include/rem0cmp.ic storage/innobase/include/rem0rec.h storage/innobase/include/rem0rec.ic storage/innobase/include/row0merge.h storage/innobase/include/row0mysql.h storage/innobase/include/row0sel.h storage/innobase/include/row0upd.h storage/innobase/include/row0upd.ic storage/innobase/include/srv0mon.h storage/innobase/include/srv0srv.h storage/innobase/include/srv0start.h storage/innobase/include/sync0rw.h storage/innobase/include/sync0sync.h storage/innobase/include/trx0i_s.h storage/innobase/include/trx0sys.h storage/innobase/include/trx0sys.ic storage/innobase/include/trx0trx.h storage/innobase/include/trx0trx.ic storage/innobase/include/trx0undo.h storage/innobase/include/univ.i storage/innobase/include/ut0dbg.h storage/innobase/include/ut0list.h storage/innobase/include/ut0list.ic storage/innobase/include/ut0mem.h storage/innobase/include/ut0rbt.h storage/innobase/include/ut0rnd.h storage/innobase/include/ut0rnd.ic storage/innobase/include/ut0ut.h storage/innobase/include/ut0vec.h storage/innobase/include/ut0vec.ic storage/innobase/include/ut0wqueue.h storage/innobase/lock/lock0lock.c storage/innobase/log/log0recv.c storage/innobase/os/os0file.c storage/innobase/os/os0sync.c storage/innobase/page/page0page.c storage/innobase/pars/lexyy.c storage/innobase/pars/pars0grm.c storage/innobase/pars/pars0grm.y storage/innobase/pars/pars0lex.l storage/innobase/pars/pars0opt.c storage/innobase/pars/pars0pars.c storage/innobase/pars/pars0sym.c storage/innobase/read/read0read.c storage/innobase/rem/rem0cmp.c storage/innobase/rem/rem0rec.c storage/innobase/row/row0ins.c storage/innobase/row/row0merge.c storage/innobase/row/row0mysql.c storage/innobase/row/row0purge.c storage/innobase/row/row0sel.c storage/innobase/row/row0uins.c storage/innobase/row/row0umod.c storage/innobase/row/row0upd.c storage/innobase/row/row0vers.c storage/innobase/srv/srv0mon.c storage/innobase/srv/srv0srv.c storage/innobase/srv/srv0start.c storage/innobase/sync/sync0sync.c storage/innobase/trx/trx0i_s.c storage/innobase/trx/trx0purge.c storage/innobase/trx/trx0roll.c storage/innobase/trx/trx0sys.c storage/innobase/trx/trx0trx.c storage/innobase/trx/trx0undo.c storage/innobase/ut/ut0list.c storage/innobase/ut/ut0mem.c storage/innobase/ut/ut0rbt.c storage/innobase/ut/ut0ut.c storage/innobase/ut/ut0vec.c storage/innobase/ut/ut0wqueue.c storage/myisam/ha_myisam.cc storage/myisam/ha_myisam.h strings/decimal.c support-files/mysql.spec.sh tests/mysql_client_test.c unittest/gunit/CMakeLists.txt unittest/gunit/my_decimal-t.cc storage/innobase/fts/fts0fts.c === modified file 'mysql-test/r/create-big.result' --- a/mysql-test/r/create-big.result 2010-05-24 13:54:08 +0000 +++ b/mysql-test/r/create-big.result 2011-11-21 11:28:32 +0000 @@ -1,7 +1,10 @@ drop table if exists t1,t2,t3,t4,t5; -set session debug="+d,sleep_create_select_before_create"; +set debug_sync='RESET'; +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; -create table t1 (j char(5)); +set debug_sync='now WAIT_FOR parked'; +create table t1 (j char(5));; +set debug_sync='now SIGNAL go'; ERROR 42S01: Table 't1' already exists show create table t1; Table Create Table @@ -9,8 +12,11 @@ t1 CREATE TABLE `t1` ( `i` int(1) NOT NULL DEFAULT '0' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; -create table t1 select "Test" as j; +set debug_sync='now WAIT_FOR parked'; +create table t1 select 'Test' as j;; +set debug_sync='now SIGNAL go'; ERROR 42S01: Table 't1' already exists show create table t1; Table Create Table @@ -19,8 +25,11 @@ t1 CREATE TABLE `t1` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t3 (j char(5)); +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; -create table t1 like t3; +set debug_sync='now WAIT_FOR parked'; +create table t1 like t3;; +set debug_sync='now SIGNAL go'; ERROR 42S01: Table 't1' already exists show create table t1; Table Create Table @@ -28,8 +37,11 @@ t1 CREATE TABLE `t1` ( `i` int(1) NOT NULL DEFAULT '0' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; -rename table t3 to t1; +set debug_sync='now WAIT_FOR parked'; +rename table t3 to t1;; +set debug_sync='now SIGNAL go'; ERROR 42S01: Table 't1' already exists show create table t1; Table Create Table @@ -37,82 +49,117 @@ t1 CREATE TABLE `t1` ( `i` int(1) NOT NULL DEFAULT '0' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; +set debug_sync='now WAIT_FOR parked'; alter table t3 rename to t1; ERROR 42S01: Table 't1' already exists +set debug_sync='now SIGNAL go'; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `i` int(1) NOT NULL DEFAULT '0' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; +set debug_sync='now WAIT_FOR parked'; alter table t3 rename to t1, add k int; ERROR 42S01: Table 't1' already exists +set debug_sync='now SIGNAL go'; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `i` int(1) NOT NULL DEFAULT '0' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -drop table t1, t3; -set session debug="-d,sleep_create_select_before_create:+d,sleep_create_select_before_open"; +drop table t1,t3; +set debug_sync='create_table_select_before_open SIGNAL parked WAIT_FOR go'; +set debug_sync='create_table_select_before_open SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; -drop table t1; +set debug_sync='now WAIT_FOR parked'; +drop table t1;; +set debug_sync='now SIGNAL go'; +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; -rename table t1 to t2; +set debug_sync='now WAIT_FOR parked'; +rename table t1 to t2;; +set debug_sync='now SIGNAL go'; drop table t2; +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; -select * from t1; +set debug_sync='now WAIT_FOR parked'; +select * from t1;; +set debug_sync='now SIGNAL go'; i 1 drop table t1; +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; -insert into t1 values (2); +set debug_sync='now WAIT_FOR parked'; +insert into t1 values (2);; +set debug_sync='now SIGNAL go'; select * from t1; i 1 2 drop table t1; set @a:=0; +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; -create trigger t1_bi before insert on t1 for each row set @a:=1; +set debug_sync='now WAIT_FOR parked'; +create trigger t1_bi before insert on t1 for each row set @a:=1;; +set debug_sync='now SIGNAL go'; select @a; @a 0 drop table t1; -set session debug="-d,sleep_create_select_before_open:+d,sleep_create_select_before_lock"; -create table t1 select 1 as i;; -drop table t1; +set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; -rename table t1 to t2; -drop table t2; -create table t1 select 1 as i;; -select * from t1; +set debug_sync='now WAIT_FOR parked'; +drop table t1;; +set debug_sync='now SIGNAL go'; +set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go'; +create table t1 select 1 as i;; +set debug_sync='now WAIT_FOR parked'; +rename table t1 to t2;; +set debug_sync='now SIGNAL go'; +drop table t2; +set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go'; +create table t1 select 1 as i;; +set debug_sync='now WAIT_FOR parked'; +select * from t1;; +set debug_sync='now SIGNAL go'; i 1 drop table t1; +set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; -insert into t1 values (2); +set debug_sync='now WAIT_FOR parked'; +insert into t1 values (2);; +set debug_sync='now SIGNAL go'; select * from t1; i 1 2 drop table t1; set @a:=0; +set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; -create trigger t1_bi before insert on t1 for each row set @a:=1; +set debug_sync='now WAIT_FOR parked'; +create trigger t1_bi before insert on t1 for each row set @a:=1;; +set debug_sync='now SIGNAL go'; select @a; @a 0 drop table t1; -set session debug="-d,sleep_create_select_before_lock:+d,sleep_create_select_before_check_if_exists"; -create table t1 (i int); +set debug_sync='create_table_select_before_check_if_exists SIGNAL parked WAIT_FOR go'; create table if not exists t1 select 1 as i;; -drop table t1; -Warnings: -Note 1050 Table 't1' already exists +set debug_sync='now WAIT_FOR parked'; +drop table t1;; +set debug_sync='now SIGNAL go'; create table t1 (i int); set @a:=0; +set debug_sync='create_table_select_before_check_if_exists SIGNAL parked WAIT_FOR go'; create table if not exists t1 select 1 as i;; create trigger t1_bi before insert on t1 for each row set @a:=1; Warnings: @@ -122,53 +169,17 @@ select @a; 0 select * from t1; i -1 drop table t1; -set session debug="-d,sleep_create_select_before_check_if_exists"; -create table t2 (a int); -create table t4 (b int); -lock table t4 write; -select 1; -1 -1 -create table t3 as select * from t4;; -create table t1 select * from t2, t3;; -unlock tables; -select * from t1; -a b -show create table t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `a` int(11) DEFAULT NULL, - `b` int(11) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -drop table t1, t3; -lock table t4 read; -select 1; -1 -1 -rename table t4 to t3;; -create table if not exists t1 select 1 as i from t2, t3;; -create table t5 (j int); -rename table t5 to t1; -unlock tables; -Warnings: -Note 1050 Table 't1' already exists -select * from t1; -j -show create table t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `j` int(11) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -drop table t1, t2, t3; drop table if exists t1,t2; +set debug_sync='RESET'; create table t1 (i int); -set session debug="+d,sleep_create_like_before_check_if_exists"; +set debug_sync='create_table_like_after_open SIGNAL parked WAIT_FOR go'; reset master; create table t2 like t1;; +set debug_sync='now WAIT_FOR parked'; insert into t1 values (1); -drop table t1; +drop table t1;; +set debug_sync='now SIGNAL go'; show create table t2; Table Create Table t2 CREATE TABLE `t2` ( @@ -177,71 +188,41 @@ t2 CREATE TABLE `t2` ( drop table t2; show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Query # # BEGIN master-bin.000001 # Query # # use `test`; insert into t1 values (1) +master-bin.000001 # Query # # COMMIT master-bin.000001 # Query # # use `test`; create table t2 like t1 -master-bin.000001 # Query # # use `test`; drop table t1 -master-bin.000001 # Query # # use `test`; drop table t2 +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */ create table t1 (i int); -set session debug="-d,sleep_create_like_before_check_if_exists:+d,sleep_create_like_before_copy"; -create table t2 like t1;; -create table if not exists t2 (j int); -Warnings: -Note 1050 Table 't2' already exists -show create table t2; -Table Create Table -t2 CREATE TABLE `t2` ( - `i` int(11) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -drop table t2; +set debug_sync='create_table_like_before_binlog SIGNAL parked WAIT_FOR go'; reset master; create table t2 like t1;; -drop table t1; -drop table t2; -show binlog events from ; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query # # use `test`; create table t2 like t1 -master-bin.000001 # Query # # use `test`; drop table t1 -master-bin.000001 # Query # # use `test`; drop table t2 -create table t1 (i int); -set session debug="-d,sleep_create_like_before_copy:+d,sleep_create_like_before_ha_create"; -reset master; -create table t2 like t1;; -insert into t2 values (1); -drop table t2; -create table t2 like t1;; -drop table t2; -create table t2 like t1;; -drop table t1; -drop table t2; -show binlog events from ; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query # # use `test`; create table t2 like t1 -master-bin.000001 # Query # # use `test`; insert into t2 values (1) -master-bin.000001 # Query # # use `test`; drop table t2 -master-bin.000001 # Query # # use `test`; create table t2 like t1 -master-bin.000001 # Query # # use `test`; drop table t2 -master-bin.000001 # Query # # use `test`; create table t2 like t1 -master-bin.000001 # Query # # use `test`; drop table t1 -master-bin.000001 # Query # # use `test`; drop table t2 -create table t1 (i int); -set session debug="-d,sleep_create_like_before_ha_create:+d,sleep_create_like_before_binlogging"; -reset master; -create table t2 like t1;; -insert into t2 values (1); -drop table t2; -create table t2 like t1;; -drop table t2; -create table t2 like t1;; -drop table t1; +set debug_sync='now WAIT_FOR parked'; +insert into t2 values (1);; +set debug_sync='now SIGNAL go'; +drop table t2; +set debug_sync='create_table_like_before_binlog SIGNAL parked WAIT_FOR go'; +create table t2 like t1;; +set debug_sync='now WAIT_FOR parked'; +drop table t2;; +set debug_sync='now SIGNAL go'; +set debug_sync='create_table_like_before_binlog SIGNAL parked WAIT_FOR go'; +create table t2 like t1;; +set debug_sync='now WAIT_FOR parked'; +drop table t1;; +set debug_sync='now SIGNAL go'; drop table t2; +set debug_sync='RESET'; show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Query # # use `test`; create table t2 like t1 +master-bin.000001 # Query # # BEGIN master-bin.000001 # Query # # use `test`; insert into t2 values (1) -master-bin.000001 # Query # # use `test`; drop table t2 +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */ master-bin.000001 # Query # # use `test`; create table t2 like t1 -master-bin.000001 # Query # # use `test`; drop table t2 +master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */ master-bin.000001 # Query # # use `test`; create table t2 like t1 -master-bin.000001 # Query # # use `test`; drop table t1 -master-bin.000001 # Query # # use `test`; drop table t2 -set session debug="-d,sleep_create_like_before_binlogging"; +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */ === modified file 'mysql-test/suite/federated/federated.test' --- a/mysql-test/suite/federated/federated.test 2010-03-05 10:51:37 +0000 +++ b/mysql-test/suite/federated/federated.test 2011-11-21 11:28:35 +0000 @@ -4,8 +4,6 @@ # -# should work with embedded server after mysqltest is fixed ---source include/not_embedded.inc --source federated.inc connection default; === modified file 'mysql-test/suite/federated/federated_plugin.test' --- a/mysql-test/suite/federated/federated_plugin.test 2011-09-15 11:09:24 +0000 +++ b/mysql-test/suite/federated/federated_plugin.test 2011-11-21 11:28:35 +0000 @@ -1,3 +1,4 @@ +--source include/not_embedded.inc --source include/have_federated_plugin.inc # Uninstall will not uninstall if ps has been used === modified file 'mysql-test/t/create-big.test' --- a/mysql-test/t/create-big.test 2010-05-24 13:54:08 +0000 +++ b/mysql-test/t/create-big.test 2011-11-21 11:28:32 +0000 @@ -7,11 +7,13 @@ # # This test takes rather long time so let us run it only in --big-test mode --source include/big_test.inc -# We are using some debug-only features in this test ---source include/have_debug.inc +# We need the Debug Sync Facility. +--source include/have_debug_sync.inc # Some of tests below also use binlog to check that statements are # executed and logged in correct order --source include/have_binlog_format_mixed_or_statement.inc +# Save the initial number of concurrent sessions. +--source include/count_sessions.inc # Create auxilliary connections connect (addconroot1, localhost, root,,); @@ -22,7 +24,7 @@ connection default; --disable_warnings drop table if exists t1,t2,t3,t4,t5; --enable_warnings - +set debug_sync='RESET'; # # Tests for concurrency problems in CREATE TABLE ... SELECT @@ -34,244 +36,378 @@ drop table if exists t1,t2,t3,t4,t5; # What happens in situation when other statement messes with # table to be created before it is created ? # Concurrent CREATE TABLE -set session debug="+d,sleep_create_select_before_create"; +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; --send create table t1 select 1 as i; connection addconroot1; ---sleep 2 ---error ER_TABLE_EXISTS_ERROR -create table t1 (j char(5)); +set debug_sync='now WAIT_FOR parked'; +--send create table t1 (j char(5)); +connection addconroot2; +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "create table t1 (j char(5))"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap +connection addconroot1; +--error ER_TABLE_EXISTS_ERROR +--reap +connection default; show create table t1; drop table t1; + # Concurrent CREATE TABLE ... SELECT +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; --send create table t1 select 1 as i; connection addconroot1; ---sleep 2 ---error ER_TABLE_EXISTS_ERROR -create table t1 select "Test" as j; +set debug_sync='now WAIT_FOR parked'; +--send create table t1 select 'Test' as j; +connection addconroot2; +# Wait until the above CREATE TABLE t1 is blocked due to CREATE +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "create table t1 select 'Test' as j"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap +connection addconroot1; +--error ER_TABLE_EXISTS_ERROR +--reap +connection default; show create table t1; drop table t1; + # Concurrent CREATE TABLE LIKE create table t3 (j char(5)); +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; --send create table t1 select 1 as i; connection addconroot1; ---sleep 2 ---error ER_TABLE_EXISTS_ERROR -create table t1 like t3; +set debug_sync='now WAIT_FOR parked'; +--send create table t1 like t3; +connection addconroot2; +# Wait until the above CREATE TABLE t1 is blocked due to CREATE +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "create table t1 like t3"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap +connection addconroot1; +--error ER_TABLE_EXISTS_ERROR +--reap +connection default; show create table t1; drop table t1; + # Concurrent RENAME TABLE +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; --send create table t1 select 1 as i; connection addconroot1; ---sleep 2 ---error ER_TABLE_EXISTS_ERROR -rename table t3 to t1; +set debug_sync='now WAIT_FOR parked'; +--send rename table t3 to t1; +connection addconroot2; +# Wait until the above RENAME TABLE is blocked due to CREATE +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "rename table t3 to t1"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap +connection addconroot1; +--error ER_TABLE_EXISTS_ERROR +--reap +connection default; show create table t1; drop table t1; + # Concurrent ALTER TABLE RENAME +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; --send create table t1 select 1 as i; connection addconroot1; ---sleep 2 +set debug_sync='now WAIT_FOR parked'; --error ER_TABLE_EXISTS_ERROR alter table t3 rename to t1; +set debug_sync='now SIGNAL go'; connection default; --reap +connection default; show create table t1; drop table t1; + # Concurrent ALTER TABLE RENAME which also adds column +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; --send create table t1 select 1 as i; connection addconroot1; ---sleep 2 +set debug_sync='now WAIT_FOR parked'; --error ER_TABLE_EXISTS_ERROR alter table t3 rename to t1, add k int; +set debug_sync='now SIGNAL go'; connection default; --reap show create table t1; -drop table t1, t3; +drop table t1,t3; + # What happens if other statement sneaks in after the table # creation but before its opening ? -set session debug="-d,sleep_create_select_before_create:+d,sleep_create_select_before_open"; +set debug_sync='create_table_select_before_open SIGNAL parked WAIT_FOR go'; +connection default; + # Concurrent DROP TABLE +set debug_sync='create_table_select_before_open SIGNAL parked WAIT_FOR go'; --send create table t1 select 1 as i; connection addconroot1; ---sleep 2 -drop table t1; +set debug_sync='now WAIT_FOR parked'; +--send drop table t1; +connection addconroot2; +# Wait until the above DROP TABLE is blocked due to CREATE +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "drop table t1"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap +connection addconroot1; +--reap +connection default; + # Concurrent RENAME TABLE +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; --send create table t1 select 1 as i; connection addconroot1; ---sleep 2 -rename table t1 to t2; +set debug_sync='now WAIT_FOR parked'; +--send rename table t1 to t2; +connection addconroot2; +# Wait until the above RENAME TABLE is blocked due to CREATE +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "rename table t1 to t2"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap +connection addconroot1; +--reap +connection default; drop table t2; + # Concurrent SELECT +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; --send create table t1 select 1 as i; connection addconroot1; ---sleep 2 -select * from t1; +set debug_sync='now WAIT_FOR parked'; +--send select * from t1; +connection addconroot2; +# Wait until the above SELECT is blocked due to CREATE +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "select * from t1"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap +connection addconroot1; +--reap +connection default; drop table t1; + # Concurrent INSERT +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; --send create table t1 select 1 as i; connection addconroot1; ---sleep 2 -insert into t1 values (2); +set debug_sync='now WAIT_FOR parked'; +--send insert into t1 values (2); +connection addconroot2; +# Wait until the above INSERT is blocked due to CREATE +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "insert into t1 values (2)"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap +connection addconroot1; +--reap +connection default; select * from t1; drop table t1; + # Concurrent CREATE TRIGGER set @a:=0; +set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; --send create table t1 select 1 as i; connection addconroot1; ---sleep 2 -create trigger t1_bi before insert on t1 for each row set @a:=1; +set debug_sync='now WAIT_FOR parked'; +--send create trigger t1_bi before insert on t1 for each row set @a:=1; +connection addconroot2; +# Wait until the above CREATE TRIGGER is blocked due to CREATE TABLE +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "create trigger t1_bi before insert on t1 for each row set @a:=1"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap +connection addconroot1; +--reap +connection default; select @a; drop table t1; + # Okay, now the same tests for the potential gap between open and lock -set session debug="-d,sleep_create_select_before_open:+d,sleep_create_select_before_lock"; +set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go'; + # Concurrent DROP TABLE --send create table t1 select 1 as i; connection addconroot1; ---sleep 2 -drop table t1; +set debug_sync='now WAIT_FOR parked'; +--send drop table t1; +connection addconroot2; +# Wait until the above DROP TABLE is blocked due to CREATE TABLE +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "drop table t1"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap +connection addconroot1; +--reap +connection default; + # Concurrent RENAME TABLE +set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go'; --send create table t1 select 1 as i; connection addconroot1; ---sleep 2 -rename table t1 to t2; +set debug_sync='now WAIT_FOR parked'; +--send rename table t1 to t2; +connection addconroot2; +# Wait until the above RENAME TABLE is blocked due to CREATE TABLE +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "rename table t1 to t2"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap +connection addconroot1; +--reap +connection default; drop table t2; + # Concurrent SELECT +set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go'; --send create table t1 select 1 as i; connection addconroot1; ---sleep 2 -select * from t1; +set debug_sync='now WAIT_FOR parked'; +--send select * from t1; +connection addconroot2; +# Wait until the above SELECT is blocked due to CREATE TABLE +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "select * from t1"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap +connection addconroot1; +--reap +connection default; drop table t1; + # Concurrent INSERT +set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go'; --send create table t1 select 1 as i; connection addconroot1; ---sleep 2 -insert into t1 values (2); +set debug_sync='now WAIT_FOR parked'; +--send insert into t1 values (2); +connection addconroot2; +# Wait until the above INSERT INTO t1 is blocked due to CREATE TABLE +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "insert into t1 values (2)"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap +connection addconroot1; +--reap +connection default; select * from t1; drop table t1; + # Concurrent CREATE TRIGGER set @a:=0; +set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go'; --send create table t1 select 1 as i; connection addconroot1; ---sleep 2 -create trigger t1_bi before insert on t1 for each row set @a:=1; +set debug_sync='now WAIT_FOR parked'; +--send create trigger t1_bi before insert on t1 for each row set @a:=1; +connection addconroot2; +# Wait until the above CREATE TRIGGER is blocked due to CREATE TABLE +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "create trigger t1_bi before insert on t1 for each row set @a:=1"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap +connection addconroot1; +--reap +connection default; select @a; drop table t1; -# Some tests for case with existing table -set session debug="-d,sleep_create_select_before_lock:+d,sleep_create_select_before_check_if_exists"; -create table t1 (i int); + # Concurrent DROP TABLE +set debug_sync='create_table_select_before_check_if_exists SIGNAL parked WAIT_FOR go'; --send create table if not exists t1 select 1 as i; connection addconroot1; ---sleep 2 -drop table t1; +set debug_sync='now WAIT_FOR parked'; +--send drop table t1; +connection addconroot2; +# Wait until the above DROP TABLE is blocked due to CREATE TABLE +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "drop table t1"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap -# Concurrent CREATE TRIGGER +connection addconroot1; +--reap +connection default; + +# Concurrent CREATE TRIGGER create table t1 (i int); set @a:=0; +set debug_sync='create_table_select_before_check_if_exists SIGNAL parked WAIT_FOR go'; --send create table if not exists t1 select 1 as i; connection addconroot1; ---sleep 2 create trigger t1_bi before insert on t1 for each row set @a:=1; connection default; --reap +connection default; select @a; select * from t1; drop table t1; -set session debug="-d,sleep_create_select_before_check_if_exists"; - - -# Test for some details of CREATE TABLE ... SELECT implementation. -# -# We check that create placeholder is handled properly if we have -# to reopen tables in open_tables(). -# This test heavily relies on current implementation of name-locking/ -# table cache so it may stop working if it changes. OTOH it such problem -# will serve as warning that such changes should not be done lightly. -create table t2 (a int); -create table t4 (b int); -connection addconroot2; -lock table t4 write; -select 1; -connection addconroot1; -# Create placeholder/name-lock for t3 ---send create table t3 as select * from t4; ---sleep 2 -connection default; -# This statement creates placeholder for t1, then opens t2, -# then meets name-lock for t3 and then reopens all tables ---send create table t1 select * from t2, t3; ---sleep 2 -connection addconroot2; -unlock tables; -connection addconroot1; ---reap -connection default; ---reap -select * from t1; -show create table t1; -drop table t1, t3; -# Now similar test which proves that we really temporarily -# remove placeholder when we reopen tables. -connection addconroot2; -lock table t4 read; -select 1; -connection addconroot1; -# Create name-lock for t3 ---send rename table t4 to t3; ---sleep 2 -connection default; -# This statement creates placeholder for t1, then opens t2, -# then meets name-lock for t3 and then reopens all tables ---send create table if not exists t1 select 1 as i from t2, t3; ---sleep 2 -connection addconroot3; -# We should be able to take name-lock on table t1 as we should not have -# open placeholder for it at this point (otherwise it is possible to -# come-up with situation which will lead to deadlock, e.g. think of -# concurrent CREATE TABLE t1 SELECT * FROM t2 and RENAME TABLE t2 TO t1) -create table t5 (j int); -# This statement takes name-lock on t1 and therefore proves -# that there is no active open placeholder for it. -rename table t5 to t1; -connection addconroot2; -unlock tables; -connection addconroot1; ---reap -connection default; ---reap -select * from t1; -show create table t1; -drop table t1, t2, t3; - # Tests for possible concurrency issues with CREATE TABLE ... LIKE # @@ -286,103 +422,101 @@ drop table t1, t2, t3; --disable_warnings drop table if exists t1,t2; --enable_warnings +set debug_sync='RESET'; # What happens if some statements sneak in right after we have -# opened source table ? +# acquired locks and opened source table ? create table t1 (i int); -set session debug="+d,sleep_create_like_before_check_if_exists"; +set debug_sync='create_table_like_after_open SIGNAL parked WAIT_FOR go'; # Reset binlog to have clear start reset master; --send create table t2 like t1; connection addconroot1; ---sleep 2 +set debug_sync='now WAIT_FOR parked'; # DML on source table should be allowed to run concurrently insert into t1 values (1); # And DDL should wait -drop table t1; +--send drop table t1; +connection addconroot2; +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "drop table t1"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap +connection addconroot1; +--reap +connection default; show create table t2; drop table t2; # Let us check that statements were executed/binlogged in correct order source include/show_binlog_events.inc; -# Now let us check the gap between check for target table -# existance and copying of .frm file. +# Now check the gap between table creation and binlogging create table t1 (i int); -set session debug="-d,sleep_create_like_before_check_if_exists:+d,sleep_create_like_before_copy"; -# It should be impossible to create target table concurrently ---send create table t2 like t1; -connection addconroot1; ---sleep 2 -create table if not exists t2 (j int); -connection default; ---reap -show create table t2; -drop table t2; -# And concurrent DDL on the source table should be still disallowed +set debug_sync='create_table_like_before_binlog SIGNAL parked WAIT_FOR go'; reset master; --send create table t2 like t1; connection addconroot1; ---sleep 2 -drop table t1; +set debug_sync='now WAIT_FOR parked'; +--send insert into t2 values (1); +connection addconroot2; +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "insert into t2 values (1)"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap -drop table t2; -source include/show_binlog_events.inc; -# And now he gap between copying of .frm file and ha_create_table() call. -create table t1 (i int); -set session debug="-d,sleep_create_like_before_copy:+d,sleep_create_like_before_ha_create"; -# Both DML and DDL on target table should wait till operation completes -reset master; ---send create table t2 like t1; connection addconroot1; ---sleep 2 -insert into t2 values (1); -connection default; --reap +connection default; drop table t2; +set debug_sync='create_table_like_before_binlog SIGNAL parked WAIT_FOR go'; --send create table t2 like t1; connection addconroot1; ---sleep 2 -drop table t2; +set debug_sync='now WAIT_FOR parked'; +--send drop table t2; +connection addconroot2; +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "drop table t2"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap -# Concurrent DDL on the source table still waits ---send create table t2 like t1; connection addconroot1; ---sleep 2 -drop table t1; -connection default; --reap -drop table t2; -source include/show_binlog_events.inc; - -# Finally we check the gap between ha_create_table() and binlogging -create table t1 (i int); -set session debug="-d,sleep_create_like_before_ha_create:+d,sleep_create_like_before_binlogging"; -reset master; ---send create table t2 like t1; -connection addconroot1; ---sleep 2 -insert into t2 values (1); connection default; ---reap -drop table t2; +set debug_sync='create_table_like_before_binlog SIGNAL parked WAIT_FOR go'; --send create table t2 like t1; connection addconroot1; ---sleep 2 -drop table t2; +set debug_sync='now WAIT_FOR parked'; +--send drop table t1; +connection addconroot2; +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info = "drop table t1"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap ---send create table t2 like t1; connection addconroot1; ---sleep 2 -drop table t1; -connection default; --reap +connection default; drop table t2; -source include/show_binlog_events.inc; +disconnect addconroot1; +disconnect addconroot2; +disconnect addconroot3; -set session debug="-d,sleep_create_like_before_binlogging"; +set debug_sync='RESET'; +source include/show_binlog_events.inc; +# Check that all connections opened by test cases in this file are really +# gone so execution of other tests won't be affected by their presence. +--source include/wait_until_count_sessions.inc === modified file 'mysql-test/t/disabled.def' --- a/mysql-test/t/disabled.def 2011-11-10 11:59:23 +0000 +++ b/mysql-test/t/disabled.def 2011-11-21 11:37:49 +0000 @@ -12,7 +12,6 @@ lowercase_table3 : Bug#11762269 2010-06-30 alik main.lowercase_table3 on Mac OSX read_many_rows_innodb : Bug#11748886 2010-11-15 mattiasj report already exists sum_distinct-big : Bug#11764126 2010-11-15 mattiasj was not tested -create-big : Bug#11748731 2010-11-15 mattiasj was not tested archive-big : Bug#11817185 2011-03-10 Anitha Disabled since this leads to timeout on Solaris Sparc log_tables-big : Bug#11756699 2010-11-15 mattiasj report already exists mysql_embedded : Bug#12561297 2011-11-08 Mayank Innodb behavior causes this test case to fail. === modified file 'sql/sql_insert.cc' --- a/sql/sql_insert.cc 2011-11-17 13:41:28 +0000 +++ b/sql/sql_insert.cc 2011-11-21 12:02:21 +0000 @@ -3769,7 +3769,7 @@ static TABLE *create_table_from_items(TH alter_info->create_list.push_back(cr_field); } - DBUG_EXECUTE_IF("sleep_create_select_before_create", my_sleep(6000000);); + DEBUG_SYNC(thd,"create_table_select_before_create"); /* Create and lock table. @@ -3793,7 +3793,7 @@ static TABLE *create_table_from_items(TH create_info, alter_info, 0, select_field_count, NULL)) { - DBUG_EXECUTE_IF("sleep_create_select_before_open", my_sleep(6000000);); + DEBUG_SYNC(thd,"create_table_select_before_open"); if (!(create_info->options & HA_LEX_CREATE_TMP_TABLE)) { @@ -3832,7 +3832,7 @@ static TABLE *create_table_from_items(TH DBUG_RETURN(0); } - DBUG_EXECUTE_IF("sleep_create_select_before_lock", my_sleep(6000000);); + DEBUG_SYNC(thd,"create_table_select_before_lock"); table->reginfo.lock_type=TL_WRITE; hooks->prelock(&table, 1); // Call prelock hooks @@ -3927,7 +3927,7 @@ select_create::prepare(List &value unit= u; DBUG_ASSERT(create_table->table == NULL); - DBUG_EXECUTE_IF("sleep_create_select_before_check_if_exists", my_sleep(6000000);); + DEBUG_SYNC(thd,"create_table_select_before_check_if_exists"); if (!(table= create_table_from_items(thd, create_info, create_table, alter_info, &values, === modified file 'sql/sql_table.cc' --- a/sql/sql_table.cc 2011-11-21 11:58:25 +0000 +++ b/sql/sql_table.cc 2011-11-21 12:02:21 +0000 @@ -4765,6 +4765,8 @@ bool mysql_create_like_table(THD* thd, T goto err; src_table->table->use_all_columns(); + DEBUG_SYNC(thd, "create_table_like_after_open"); + /* Fill HA_CREATE_INFO and Alter_info with description of source table. */ memset(&local_create_info, 0, sizeof(local_create_info)); local_create_info.db_type= src_table->table->s->db_type(); @@ -4813,6 +4815,9 @@ bool mysql_create_like_table(THD* thd, T thd->mdl_context.is_lock_owner(MDL_key::TABLE, table->db, table->table_name, MDL_EXCLUSIVE)); + + DEBUG_SYNC(thd, "create_table_like_before_binlog"); + /* CREATE TEMPORARY TABLE doesn't terminate a transaction. Calling stmt.mark_created_temp_table() guarantees the transaction can be binlogged No bundle (reason: useless for push emails).