List:Commits« Previous MessageNext Message »
From:Christopher Powers Date:November 21 2011 8:27pm
Subject:bzr push into mysql-trunk-wl5461 branch (chris.powers:3443 to 3445)
View as plain text  
 3445 Christopher Powers	2011-11-21 [merge]
      local merge

    added:
      mysql-test/suite/binlog/r/binlog_hexdump.result
      mysql-test/suite/binlog/std_data/bug11747887-bin.000003
      mysql-test/suite/binlog/t/binlog_hexdump.test
      mysql-test/suite/rpl/r/rpl_parallel_load_data.result
      mysql-test/suite/rpl/t/rpl_parallel_load_data-slave.opt
      mysql-test/suite/rpl/t/rpl_parallel_load_data.test
    modified:
      mysql-test/r/create-big.result
      mysql-test/suite/federated/federated.test
      mysql-test/suite/federated/federated_plugin.test
      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/t/innodb_fts_misc.test
      mysql-test/suite/innodb_fts/t/innodb_fts_misc_1.test
      mysql-test/suite/rpl/r/rpl_parallel_ddl.result
      mysql-test/suite/rpl/t/rpl_parallel_ddl.test
      mysql-test/t/create-big.test
      mysql-test/t/disabled.def
      sql/log_event.cc
      sql/log_event.h
      sql/rpl_rli.h
      sql/rpl_rli_pdb.cc
      sql/rpl_rli_pdb.h
      sql/sql_insert.cc
      sql/sql_table.cc
      storage/innobase/fts/fts0que.c
      storage/innobase/row/row0ftsort.c
      storage/innobase/row/row0merge.c
      storage/innobase/srv/srv0start.c
 3444 Christopher Powers	2011-11-21
      WL#5461 PERFORMANCE_SCHEMA MY.CNF Defaults Setup
      
      Disallow SELECT @@ of performance_schema_instrument and
      performance_schema_consumer option settings.

    modified:
      sql/set_var.cc
 3443 Marc Alff	2011-11-21 [merge]
      Merge mysql-trunk --> mysql-trunk-wl5461

    removed:
      mysql-test/suite/rpl/r/rpl_parallel_benchmark.result
    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/sys_vars/r/innodb_page_size_basic.result
      mysql-test/suite/sys_vars/t/innodb_page_size_basic.test
    modified:
      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
      extra/CMakeLists.txt
      extra/innochecksum.c
      mysql-test/collections/default.daily
      mysql-test/collections/default.experimental
      mysql-test/collections/default.push
      mysql-test/collections/default.weekly
      mysql-test/include/index_merge_ror_cpk.inc
      mysql-test/include/mix2.inc
      mysql-test/include/mrr_tests.inc
      mysql-test/r/auth_rpl.result
      mysql-test/r/derived.result
      mysql-test/r/func_misc.result
      mysql-test/r/func_str.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/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/metadata.result
      mysql-test/r/partition_innodb.result
      mysql-test/r/partition_innodb_plugin.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/type_newdecimal.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/innodb_fts/r/innodb_fts_misc_1.result
      mysql-test/suite/innodb_fts/t/fulltext.test
      mysql-test/suite/innodb_fts/t/fulltext_misc.test
      mysql-test/suite/innodb_fts/t/innodb_fts_misc_1.test
      mysql-test/suite/large_tests/r/rpl_slave_net_timeout.result
      mysql-test/suite/opt_trace/include/range.inc
      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_none.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/opt_trace/r/temp_table.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_connection.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_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/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/func_misc.test
      mysql-test/t/func_str.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/mysqlbinlog_row_innodb.test
      mysql-test/t/partition_innodb.test
      mysql-test/t/partition_innodb_plugin.test
      mysql-test/t/plugin_auth.test
      mysql-test/t/ps_1general.test
      mysql-test/t/sp.test
      mysql-test/t/type_newdecimal.test
      mysql-test/t/view_grant.test
      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_strfunc.cc
      sql/my_decimal.h
      sql/opt_range.cc
      sql/rpl_master.cc
      sql/share/errmsg-utf8.txt
      sql/sp_head.cc
      sql/sql_acl.cc
      sql/sql_bitmap.h
      sql/sql_cache.cc
      sql/sql_lex.cc
      sql/sql_parse.cc
      sql/sql_reload.cc
      sql/sql_select.cc
      sql/sql_union.cc
      sql/sql_view.cc
      sql/sql_yacc.yy
      sql/table.cc
      sql/table.h
      storage/innobase/btr/btr0cur.c
      storage/innobase/buf/buf0buddy.c
      storage/innobase/buf/buf0buf.c
      storage/innobase/buf/buf0checksum.c
      storage/innobase/dict/dict0dict.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/i_s.cc
      storage/innobase/ibuf/ibuf0ibuf.c
      storage/innobase/include/buf0buf.h
      storage/innobase/include/buf0checksum.h
      storage/innobase/include/buf0types.h
      storage/innobase/include/db0err.h
      storage/innobase/include/dict0dict.ic
      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/read0read.h
      storage/innobase/include/rem0rec.ic
      storage/innobase/include/row0merge.h
      storage/innobase/include/srv0mon.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/ut0rnd.h
      storage/innobase/include/ut0rnd.ic
      storage/innobase/include/ut0ut.h
      storage/innobase/lock/lock0lock.c
      storage/innobase/page/page0page.c
      storage/innobase/read/read0read.c
      storage/innobase/row/row0ins.c
      storage/innobase/row/row0mysql.c
      storage/innobase/row/row0sel.c
      storage/innobase/row/row0vers.c
      storage/innobase/srv/srv0mon.c
      storage/innobase/srv/srv0srv.c
      storage/innobase/srv/srv0start.c
      storage/innobase/trx/trx0i_s.c
      storage/innobase/trx/trx0roll.c
      storage/innobase/trx/trx0sys.c
      storage/innobase/trx/trx0trx.c
      storage/innobase/trx/trx0undo.c
      storage/innobase/ut/ut0ut.c
      strings/decimal.c
      tests/mysql_client_test.c
      unittest/gunit/my_decimal-t.cc
=== 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 <binlog_start>;
 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 <binlog_start>;
-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 <binlog_start>;
-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 <binlog_start>;
 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 */

=== added file 'mysql-test/suite/binlog/r/binlog_hexdump.result'
--- a/mysql-test/suite/binlog/r/binlog_hexdump.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/binlog/r/binlog_hexdump.result	2011-11-21 13:25:04 +0000
@@ -0,0 +1,121 @@
+/*!40019 SET @@session.max_insert_delayed_threads=0*/;
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+# at 4
+#111118 13:10:33 server id 1  end_log_pos 114 
+# Position  Timestamp   Type   Master ID        Size      Master Pos    Flags 
+#        4 19 2f c6 4e   0f   01 00 00 00   6e 00 00 00   72 00 00 00   00 00
+#       17 04 00 35 2e 36 2e 34 2d  6d 37 2d 64 65 62 75 67 |..5.6.4.m7.debug|
+#       27 2d 6c 6f 67 00 00 00 00  00 00 00 00 00 00 00 00 |.log............|
+#       37 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 |................|
+#       47 00 00 00 00 19 2f c6 4e  13 38 0d 00 08 00 12 00 |.......N.8......|
+#       57 04 04 04 04 12 00 00 56  00 04 1a 08 00 00 00 08 |.......V........|
+#       67 08 08 02 00 00 00 00 ba  38 4d f8                |........8M.|
+# 	Start: binlog v 4, server v 5.6.4-m7-debug-log created 111118 13:10:33 at startup
+ROLLBACK/*!*/;
+BINLOG '
+GS/GTg8BAAAAbgAAAHIAAAAAAAQANS42LjQtbTctZGVidWctbG9nAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAZL8ZOEzgNAAgAEgAEBAQEEgAAVgAEGggAAAAICAgCAAAAALo4Tfg=
+'/*!*/;
+# at 114
+#111118 13:11:28 server id 1  end_log_pos 245 
+# Position  Timestamp   Type   Master ID        Size      Master Pos    Flags 
+#       72 50 2f c6 4e   02   01 00 00 00   83 00 00 00   f5 00 00 00   00 00
+#       85 01 00 00 00 00 00 00 00  04 00 00 21 00 00 00 00 |................|
+#       95 00 00 01 00 00 00 00 00  00 00 00 06 03 73 74 64 |.............std|
+#       a5 04 21 00 21 00 08 00 0c  01 74 65 73 74 00 74 65 |.........test.te|
+#       b5 73 74 00 44 52 4f 50 20  54 41 42 4c 45 20 49 46 |st.DROP.TABLE.IF|
+#       c5 20 45 58 49 53 54 53 20  60 74 31 30 31 32 33 34 |.EXISTS..t101234|
+#       d5 35 36 37 38 39 60 20 2f  2a 20 67 65 6e 65 72 61 |56789.....genera|
+#       e5 74 65 64 20 62 79 20 73  65 72 76 65 72 20 2a 2f |ted.by.server...|
+# 	Query	thread_id=1	exec_time=0	error_code=0
+use test/*!*/;
+SET TIMESTAMP=1321611088/*!*/;
+SET @@session.pseudo_thread_id=1/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
+/*!\C utf8 *//*!*/;
+SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/;
+SET @@session.lc_time_names=0/*!*/;
+SET @@session.collation_database=DEFAULT/*!*/;
+DROP TABLE IF EXISTS `t10123456789` /* generated by server */
+/*!*/;
+# at 245
+#111118 13:11:48 server id 1  end_log_pos 347 
+# Position  Timestamp   Type   Master ID        Size      Master Pos    Flags 
+#       f5 64 2f c6 4e   02   01 00 00 00   66 00 00 00   5b 01 00 00   00 00
+#      108 01 00 00 00 00 00 00 00  04 00 00 21 00 00 00 00 |................|
+#      118 00 00 01 00 00 00 00 00  00 00 00 06 03 73 74 64 |.............std|
+#      128 04 21 00 21 00 08 00 0c  01 74 65 73 74 00 74 65 |.........test.te|
+#      138 73 74 00 63 72 65 61 74  65 20 74 61 62 6c 65 20 |st.create.table.|
+#      148 74 31 30 31 32 33 34 35  36 37 38 39 28 69 20 69 |t10123456789.i.i|
+#      158 6e 74 29                                         |nt.|
+# 	Query	thread_id=1	exec_time=0	error_code=0
+SET TIMESTAMP=1321611108/*!*/;
+create table t10123456789(i int)
+/*!*/;
+# at 347
+#111118 13:12:21 server id 1  end_log_pos 422 
+# Position  Timestamp   Type   Master ID        Size      Master Pos    Flags 
+#      15b 85 2f c6 4e   02   01 00 00 00   4b 00 00 00   a6 01 00 00   08 00
+#      16e 01 00 00 00 00 00 00 00  04 00 00 21 00 00 00 00 |................|
+#      17e 00 00 01 00 00 00 00 00  00 00 00 06 03 73 74 64 |.............std|
+#      18e 04 21 00 21 00 08 00 0c  01 74 65 73 74 00 74 65 |.........test.te|
+#      19e 73 74 00 42 45 47 49 4e                          |st.BEGIN|
+# 	Query	thread_id=1	exec_time=0	error_code=0
+SET TIMESTAMP=1321611141/*!*/;
+BEGIN
+/*!*/;
+# at 422
+#111118 13:12:21 server id 1  end_log_pos 447 
+# Position  Timestamp   Type   Master ID        Size      Master Pos    Flags 
+#      1a6 85 2f c6 4e   0e   01 00 00 00   19 00 00 00   bf 01 00 00   00 00
+#      1b9 01 00 00 00 32 01                                |....2.|
+# 	User_var
+SET @`2`:=NULL/*!*/;
+# at 447
+#111118 13:12:21 server id 1  end_log_pos 552 
+# Position  Timestamp   Type   Master ID        Size      Master Pos    Flags 
+#      1bf 85 2f c6 4e   02   01 00 00 00   69 00 00 00   28 02 00 00   00 00
+#      1d2 01 00 00 00 00 00 00 00  04 00 00 21 00 00 00 00 |................|
+#      1e2 00 00 01 00 00 00 00 00  00 00 00 06 03 73 74 64 |.............std|
+#      1f2 04 21 00 21 00 08 00 0c  01 74 65 73 74 00 74 65 |.........test.te|
+#      202 73 74 00 69 6e 73 65 72  74 20 69 6e 74 6f 20 74 |st.insert.into.t|
+#      212 31 30 31 32 33 34 35 36  37 38 39 20 76 61 6c 75 |10123456789.valu|
+#      222 65 73 28 40 32 29                                |es..2.|
+# 	Query	thread_id=1	exec_time=0	error_code=0
+SET TIMESTAMP=1321611141/*!*/;
+insert into t10123456789 values(@2)
+/*!*/;
+# at 552
+#111118 13:12:21 server id 1  end_log_pos 579 
+# Position  Timestamp   Type   Master ID        Size      Master Pos    Flags 
+#      228 85 2f c6 4e   10   01 00 00 00   1b 00 00 00   43 02 00 00   00 00
+#      23b 0a 00 00 00 00 00 00 00                          |........|
+# 	Xid = 10
+COMMIT/*!*/;
+# at 579
+#111118 13:12:33 server id 1  end_log_pos 710 
+# Position  Timestamp   Type   Master ID        Size      Master Pos    Flags 
+#      243 91 2f c6 4e   02   01 00 00 00   83 00 00 00   c6 02 00 00   00 00
+#      256 01 00 00 00 00 00 00 00  04 00 00 21 00 00 00 00 |................|
+#      266 00 00 01 00 00 00 00 00  00 00 00 06 03 73 74 64 |.............std|
+#      276 04 21 00 21 00 08 00 0c  01 74 65 73 74 00 74 65 |.........test.te|
+#      286 73 74 00 44 52 4f 50 20  54 41 42 4c 45 20 49 46 |st.DROP.TABLE.IF|
+#      296 20 45 58 49 53 54 53 20  60 74 31 30 31 32 33 34 |.EXISTS..t101234|
+#      2a6 35 36 37 38 39 60 20 2f  2a 20 67 65 6e 65 72 61 |56789.....genera|
+#      2b6 74 65 64 20 62 79 20 73  65 72 76 65 72 20 2a 2f |ted.by.server...|
+# 	Query	thread_id=1	exec_time=0	error_code=0
+SET TIMESTAMP=1321611153/*!*/;
+DROP TABLE IF EXISTS `t10123456789` /* generated by server */
+/*!*/;
+# at 710
+#111118 13:12:41 server id 1  end_log_pos 729 
+# Position  Timestamp   Type   Master ID        Size      Master Pos    Flags 
+#      2c6 99 2f c6 4e   03   01 00 00 00   13 00 00 00   d9 02 00 00   00 00
+# 	Stop
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

=== added file 'mysql-test/suite/binlog/std_data/bug11747887-bin.000003'
Files a/mysql-test/suite/binlog/std_data/bug11747887-bin.000003	1970-01-01 00:00:00 +0000 and b/mysql-test/suite/binlog/std_data/bug11747887-bin.000003	2011-11-21 13:25:04 +0000 differ

=== added file 'mysql-test/suite/binlog/t/binlog_hexdump.test'
--- a/mysql-test/suite/binlog/t/binlog_hexdump.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/binlog/t/binlog_hexdump.test	2011-11-21 13:25:04 +0000
@@ -0,0 +1,6 @@
+#
+# Bug#11747887 - 34386: MYSQLBINLOG --HEXDUMP PRINTS LAST ROW OF HEXDUMP
+# INCORRECTLY
+#
+
+--exec $MYSQL_BINLOG --hexdump suite/binlog/std_data/bug11747887-bin.000003

=== 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/suite/innodb_fts/r/innodb_fts_misc.result'
--- a/mysql-test/suite/innodb_fts/r/innodb_fts_misc.result	2011-11-16 16:48:12 +0000
+++ b/mysql-test/suite/innodb_fts/r/innodb_fts_misc.result	2011-11-21 17:09:08 +0000
@@ -22,90 +22,90 @@ INSERT INTO t1 (a,b) VALUES
 ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
 ('MySQL vs. YourSQL','In the following database comparison ...'),
 ('MySQL Security','When configured properly, MySQL ...');
-SELECT * FROM t1 WHERE MATCH (a,b)
+SELECT id FROM t1 WHERE MATCH (a,b)
 AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE);
-id	a	b
-1	MySQL Tutorial	DBMS stands for DataBase ...
-3	Optimizing MySQL	In this tutorial we will show ...
-select * from t1 where MATCH(a,b) AGAINST("+support +collections" IN BOOLEAN MODE);
-id	a	b
-select * from t1 where MATCH(a,b) AGAINST("+search" IN BOOLEAN MODE);
-id	a	b
-select * from t1 where MATCH(a,b) AGAINST("+search +(support vector)" IN BOOLEAN MODE);
-id	a	b
-select * from t1 where MATCH(a,b) AGAINST("+search -(support vector)" IN BOOLEAN MODE);
-id	a	b
-select *, MATCH(a,b) AGAINST("support collections" IN BOOLEAN MODE) as x from t1;
-id	a	b	x
-1	MySQL Tutorial	DBMS stands for DataBase ...	0
-2	How To Use MySQL Well	After you went through a ...	0
-3	Optimizing MySQL	In this tutorial we will show ...	0
-4	1001 MySQL Tricks	1. Never run mysqld as root. 2. ...	0
-5	MySQL vs. YourSQL	In the following database comparison ...	0
-6	MySQL Security	When configured properly, MySQL ...	0
-select *, MATCH(a,b) AGAINST("collections support" IN BOOLEAN MODE) as x from t1;
-id	a	b	x
-1	MySQL Tutorial	DBMS stands for DataBase ...	0
-2	How To Use MySQL Well	After you went through a ...	0
-3	Optimizing MySQL	In this tutorial we will show ...	0
-4	1001 MySQL Tricks	1. Never run mysqld as root. 2. ...	0
-5	MySQL vs. YourSQL	In the following database comparison ...	0
-6	MySQL Security	When configured properly, MySQL ...	0
-select * from t1 where MATCH a,b AGAINST ("+call* +coll*" IN BOOLEAN MODE);
-id	a	b
-select * from t1 where MATCH a,b AGAINST ('"support now"' IN BOOLEAN MODE);
-id	a	b
-select * from t1 where MATCH a,b AGAINST ('"Now sUPPort"' IN BOOLEAN MODE);
-id	a	b
-select * from t1 where MATCH(a,b) AGAINST ("collections" WITH QUERY EXPANSION);
-id	a	b
-select * from t1 where MATCH(a,b) AGAINST ("indexes" WITH QUERY EXPANSION);
-id	a	b
-select * from t1 where MATCH(a,b) AGAINST ("indexes collections" WITH QUERY EXPANSION);
-id	a	b
+id
+1
+3
+select id from t1 where MATCH(a,b) AGAINST("+support +collections" IN BOOLEAN MODE);
+id
+select id from t1 where MATCH(a,b) AGAINST("+search" IN BOOLEAN MODE);
+id
+select id from t1 where MATCH(a,b) AGAINST("+search +(support vector)" IN BOOLEAN MODE);
+id
+select id from t1 where MATCH(a,b) AGAINST("+search -(support vector)" IN BOOLEAN MODE);
+id
+select id, MATCH(a,b) AGAINST("support collections" IN BOOLEAN MODE) as x from t1;
+id	x
+1	0
+2	0
+3	0
+4	0
+5	0
+6	0
+select id, MATCH(a,b) AGAINST("collections support" IN BOOLEAN MODE) as x from t1;
+id	x
+1	0
+2	0
+3	0
+4	0
+5	0
+6	0
+select id from t1 where MATCH a,b AGAINST ("+call* +coll*" IN BOOLEAN MODE);
+id
+select id from t1 where MATCH a,b AGAINST ('"support now"' IN BOOLEAN MODE);
+id
+select id from t1 where MATCH a,b AGAINST ('"Now sUPPort"' IN BOOLEAN MODE);
+id
+select id from t1 where MATCH(a,b) AGAINST ("collections" WITH QUERY EXPANSION);
+id
+select id from t1 where MATCH(a,b) AGAINST ("indexes" WITH QUERY EXPANSION);
+id
+select id from t1 where MATCH(a,b) AGAINST ("indexes collections" WITH QUERY EXPANSION);
+id
 ALTER TABLE t1 DROP INDEX idx;
 CREATE FULLTEXT INDEX idx on t1 (a,b);
-SELECT * FROM t1 WHERE MATCH (a,b)
+SELECT id FROM t1 WHERE MATCH (a,b)
 AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE);
-id	a	b
-1	MySQL Tutorial	DBMS stands for DataBase ...
-3	Optimizing MySQL	In this tutorial we will show ...
-select * from t1 where MATCH(a,b) AGAINST("+support +collections" IN BOOLEAN MODE);
-id	a	b
-select * from t1 where MATCH(a,b) AGAINST("+search" IN BOOLEAN MODE);
-id	a	b
-select * from t1 where MATCH(a,b) AGAINST("+search +(support vector)" IN BOOLEAN MODE);
-id	a	b
-select * from t1 where MATCH(a,b) AGAINST("+search -(support vector)" IN BOOLEAN MODE);
-id	a	b
-select *, MATCH(a,b) AGAINST("support collections" IN BOOLEAN MODE) as x from t1;
-id	a	b	x
-1	MySQL Tutorial	DBMS stands for DataBase ...	0
-2	How To Use MySQL Well	After you went through a ...	0
-3	Optimizing MySQL	In this tutorial we will show ...	0
-4	1001 MySQL Tricks	1. Never run mysqld as root. 2. ...	0
-5	MySQL vs. YourSQL	In the following database comparison ...	0
-6	MySQL Security	When configured properly, MySQL ...	0
-select *, MATCH(a,b) AGAINST("collections support" IN BOOLEAN MODE) as x from t1;
-id	a	b	x
-1	MySQL Tutorial	DBMS stands for DataBase ...	0
-2	How To Use MySQL Well	After you went through a ...	0
-3	Optimizing MySQL	In this tutorial we will show ...	0
-4	1001 MySQL Tricks	1. Never run mysqld as root. 2. ...	0
-5	MySQL vs. YourSQL	In the following database comparison ...	0
-6	MySQL Security	When configured properly, MySQL ...	0
-select * from t1 where MATCH a,b AGAINST ("+call* +coll*" IN BOOLEAN MODE);
-id	a	b
-select * from t1 where MATCH a,b AGAINST ('"support now"' IN BOOLEAN MODE);
-id	a	b
-select * from t1 where MATCH a,b AGAINST ('"Now sUPPort"' IN BOOLEAN MODE);
-id	a	b
-select * from t1 where MATCH(a,b) AGAINST ("collections" WITH QUERY EXPANSION);
-id	a	b
-select * from t1 where MATCH(a,b) AGAINST ("indexes" WITH QUERY EXPANSION);
-id	a	b
-select * from t1 where MATCH(a,b) AGAINST ("indexes collections" WITH QUERY EXPANSION);
-id	a	b
+id
+1
+3
+select id from t1 where MATCH(a,b) AGAINST("+support +collections" IN BOOLEAN MODE);
+id
+select id from t1 where MATCH(a,b) AGAINST("+search" IN BOOLEAN MODE);
+id
+select id from t1 where MATCH(a,b) AGAINST("+search +(support vector)" IN BOOLEAN MODE);
+id
+select id from t1 where MATCH(a,b) AGAINST("+search -(support vector)" IN BOOLEAN MODE);
+id
+select id, MATCH(a,b) AGAINST("support collections" IN BOOLEAN MODE) as x from t1;
+id	x
+1	0
+2	0
+3	0
+4	0
+5	0
+6	0
+select id, MATCH(a,b) AGAINST("collections support" IN BOOLEAN MODE) as x from t1;
+id	x
+1	0
+2	0
+3	0
+4	0
+5	0
+6	0
+select id from t1 where MATCH a,b AGAINST ("+call* +coll*" IN BOOLEAN MODE);
+id
+select id from t1 where MATCH a,b AGAINST ('"support now"' IN BOOLEAN MODE);
+id
+select id from t1 where MATCH a,b AGAINST ('"Now sUPPort"' IN BOOLEAN MODE);
+id
+select id from t1 where MATCH(a,b) AGAINST ("collections" WITH QUERY EXPANSION);
+id
+select id from t1 where MATCH(a,b) AGAINST ("indexes" WITH QUERY EXPANSION);
+id
+select id from t1 where MATCH(a,b) AGAINST ("indexes collections" WITH QUERY EXPANSION);
+id
 INSERT INTO t1 (a,b) VALUES ('test query expansion','for database ...');
 INSERT INTO t1 (a,b) VALUES
 ('test proximity search, test, proximity and phrase',
@@ -116,41 +116,41 @@ INSERT INTO t1 (a,b) VALUES
 INSERT INTO t1 (a,b) VALUES
 ('test more proximity fts search, test, more proximity and phrase',
 'search, with proximity innodb');
-SELECT * FROM t1
+SELECT id FROM t1
 WHERE MATCH (a,b)
 AGAINST ('"proximity search"@10' IN BOOLEAN MODE);
-id	a	b
-8	test proximity search, test, proximity and phrase	search, with proximity innodb
-SELECT * FROM t1
+id
+8
+SELECT id FROM t1
 WHERE MATCH (a,b)
 AGAINST ('"proximity search"@9' IN BOOLEAN MODE);
-id	a	b
-SELECT * FROM t1
+id
+SELECT id FROM t1
 WHERE MATCH (a,b)
 AGAINST ('"proximity search"@14' IN BOOLEAN MODE);
-id	a	b
-8	test proximity search, test, proximity and phrase	search, with proximity innodb
-9	test proximity fts search, test, proximity and phrase	search, with proximity innodb
-10	test more proximity fts search, test, more proximity and phrase	search, with proximity innodb
-SELECT * FROM t1
+id
+8
+9
+10
+SELECT id FROM t1
 WHERE MATCH (a,b)
 AGAINST ('"test proximity"@5' IN BOOLEAN MODE);
-id	a	b
-8	test proximity search, test, proximity and phrase	search, with proximity innodb
-9	test proximity fts search, test, proximity and phrase	search, with proximity innodb
-SELECT * FROM t1
+id
+8
+9
+SELECT id FROM t1
 WHERE MATCH (a,b)
 AGAINST ('"more test proximity"@10' IN BOOLEAN MODE);
-id	a	b
-10	test more proximity fts search, test, more proximity and phrase	search, with proximity innodb
-SELECT * FROM t1
+id
+10
+SELECT id FROM t1
 WHERE MATCH (a,b)
 AGAINST ('"more test proximity"@9' IN BOOLEAN MODE);
-id	a	b
-SELECT * FROM t1
+id
+SELECT id FROM t1
 WHERE MATCH (a,b)
 AGAINST ('"more fts proximity"@09' IN BOOLEAN MODE);
-id	a	b
+id
 DROP TABLE t1;
 CREATE TABLE t1 (
 id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
@@ -166,64 +166,64 @@ INSERT INTO t1 (a,b) VALUES
 ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
 ('MySQL vs. YourSQL','In the following database comparison ...'),
 ('MySQL Security','When configured properly, MySQL ...');
-SELECT * FROM t1 WHERE MATCH (a,b)
+SELECT id FROM t1 WHERE MATCH (a,b)
 AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE);
-id	a	b
-1	MySQL Tutorial	DBMS stands for DataBase ...
-3	Optimizing MySQL	In this tutorial we will show ...
-SELECT * FROM t1 WHERE id = (SELECT MAX(id) FROM t1 WHERE MATCH (a,b)
+id
+1
+3
+SELECT id FROM t1 WHERE id = (SELECT MAX(id) FROM t1 WHERE MATCH (a,b)
 AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE));
-id	a	b
-3	Optimizing MySQL	In this tutorial we will show ...
-SELECT * FROM t1 WHERE id = (SELECT MIN(id) FROM t1 WHERE MATCH (a,b)
+id
+3
+SELECT id FROM t1 WHERE id = (SELECT MIN(id) FROM t1 WHERE MATCH (a,b)
 AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE));
-id	a	b
-1	MySQL Tutorial	DBMS stands for DataBase ...
-SELECT * FROM t1 WHERE id = (SELECT MIN(id) FROM t1 WHERE MATCH (a,b)
+id
+1
+SELECT id FROM t1 WHERE id = (SELECT MIN(id) FROM t1 WHERE MATCH (a,b)
 AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE)) OR id = 3 ;
-id	a	b
-1	MySQL Tutorial	DBMS stands for DataBase ...
-3	Optimizing MySQL	In this tutorial we will show ...
-SELECT * FROM t1 WHERE CONCAT(t1.a,t1.b) IN (
+id
+1
+3
+SELECT id FROM t1 WHERE CONCAT(t1.a,t1.b) IN (
 SELECT CONCAT(a,b) FROM t1 AS t2 WHERE 
 MATCH (t2.a,t2.b) AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE)
 ) OR t1.id = 3 ;
-id	a	b
-1	MySQL Tutorial	DBMS stands for DataBase ...
-3	Optimizing MySQL	In this tutorial we will show ...
-SELECT * FROM t1 WHERE CONCAT(t1.a,t1.b) IN (
+id
+1
+3
+SELECT id FROM t1 WHERE CONCAT(t1.a,t1.b) IN (
 SELECT CONCAT(a,b) FROM t1 AS t2 
 WHERE MATCH (t2.a,t2.b) AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE) 
 AND t2.id != 3) ;
-id	a	b
-1	MySQL Tutorial	DBMS stands for DataBase ...
-SELECT * FROM t1 WHERE id IN (SELECT MIN(id) FROM t1 WHERE 
+id
+1
+SELECT id FROM t1 WHERE id IN (SELECT MIN(id) FROM t1 WHERE 
 MATCH (a,b) AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE)) OR id = 3 ;
-id	a	b
-1	MySQL Tutorial	DBMS stands for DataBase ...
-3	Optimizing MySQL	In this tutorial we will show ...
-SELECT * FROM t1 WHERE id NOT IN (SELECT MIN(id) FROM t1 
+id
+1
+3
+SELECT id FROM t1 WHERE id NOT IN (SELECT MIN(id) FROM t1 
 WHERE MATCH (a,b) AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE)) ;
-id	a	b
-2	How To Use MySQL Well	After you went through a ...
-3	Optimizing MySQL	In this tutorial we will show ...
-4	1001 MySQL Tricks	1. Never run mysqld as root. 2. ...
-5	MySQL vs. YourSQL	In the following database comparison ...
-6	MySQL Security	When configured properly, MySQL ...
-SELECT * FROM t1 WHERE EXISTS (SELECT t2.id FROM t1 AS t2 WHERE 
+id
+2
+3
+4
+5
+6
+SELECT id FROM t1 WHERE EXISTS (SELECT t2.id FROM t1 AS t2 WHERE 
 MATCH (t2.a,t2.b) AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE) 
 AND t1.id = t2.id) ;
-id	a	b
-1	MySQL Tutorial	DBMS stands for DataBase ...
-3	Optimizing MySQL	In this tutorial we will show ...
-SELECT * FROM t1 WHERE NOT EXISTS (SELECT t2.id FROM t1 AS t2 WHERE 
+id
+1
+3
+SELECT id FROM t1 WHERE NOT EXISTS (SELECT t2.id FROM t1 AS t2 WHERE 
 MATCH (t2.a,t2.b) AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE) 
 AND t1.id = t2.id) ;
-id	a	b
-2	How To Use MySQL Well	After you went through a ...
-4	1001 MySQL Tricks	1. Never run mysqld as root. 2. ...
-5	MySQL vs. YourSQL	In the following database comparison ...
-6	MySQL Security	When configured properly, MySQL ...
+id
+2
+4
+5
+6
 DROP TABLE t1;
 CREATE TABLE t1 (
 id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
@@ -236,25 +236,25 @@ INSERT INTO t1(a,b) VALUES('MySQL has no
 ('Only MyISAM tables','support collections'),
 ('Function MATCH ... AGAINST()','is used to do a search'),
 ('Full-text search in MySQL', 'implements vector space model');
-SELECT * FROM t1 WHERE t1.id = (SELECT MAX(t2.id) FROM t1 AS t2 WHERE 
+SELECT id FROM t1 WHERE t1.id = (SELECT MAX(t2.id) FROM t1 AS t2 WHERE 
 MATCH(t2.a,t2.b) AGAINST("+support +collections" IN BOOLEAN MODE));
-id	a	b
-3	Only MyISAM tables	support collections
-SELECT * FROM t1 WHERE t1.id != (SELECT MIN(t2.id) FROM t1 AS t2 WHERE 
+id
+3
+SELECT id FROM t1 WHERE t1.id != (SELECT MIN(t2.id) FROM t1 AS t2 WHERE 
 MATCH(t2.a,t2.b) AGAINST("+search" IN BOOLEAN MODE));
-id	a	b
-2	Full-text indexes	are called collections
-3	Only MyISAM tables	support collections
-4	Function MATCH ... AGAINST()	is used to do a search
-5	Full-text search in MySQL	implements vector space model
-SELECT * FROM t1 WHERE t1.id IN (SELECT t2.id FROM t1 AS t2 WHERE 
+id
+2
+3
+4
+5
+SELECT id FROM t1 WHERE t1.id IN (SELECT t2.id FROM t1 AS t2 WHERE 
 MATCH (t2.a,t2.b) AGAINST ("+call* +coll*" IN BOOLEAN MODE));
-id	a	b
-2	Full-text indexes	are called collections
-SELECT * FROM t1 WHERE EXISTS (SELECT * FROM t1 AS t2 WHERE 
+id
+2
+SELECT id FROM t1 WHERE EXISTS (SELECT id FROM t1 AS t2 WHERE 
 MATCH t2.a,t2.b AGAINST ('"Now sUPPort"' IN BOOLEAN MODE) AND t2.id=t1.id);
-id	a	b
-1	MySQL has now support	for full-text search
+id
+1
 INSERT INTO t1 (a,b) VALUES ('test query expansion','for database ...');
 INSERT INTO t1 (a,b) VALUES
 ('test proximity search, test, proximity and phrase',
@@ -265,72 +265,66 @@ INSERT INTO t1 (a,b) VALUES
 INSERT INTO t1 (a,b) VALUES
 ('test more proximity fts search, test, more proximity and phrase',
 'search, with proximity innodb');
-SELECT * FROM t1 WHERE t1.id = (SELECT MAX(t2.id) FROM t1 AS t2 WHERE
+SELECT id FROM t1 WHERE t1.id = (SELECT MAX(t2.id) FROM t1 AS t2 WHERE
 MATCH(t2.a,t2.b) AGAINST ('"proximity search"@10' IN BOOLEAN MODE));
-id	a	b
-7	test proximity search, test, proximity and phrase	search, with proximity innodb
-SELECT * FROM t1 WHERE t1.id > (SELECT MIN(t2.id) FROM t1 AS t2 WHERE
+id
+7
+SELECT id FROM t1 WHERE t1.id > (SELECT MIN(t2.id) FROM t1 AS t2 WHERE
 MATCH(t2.a,t2.b) AGAINST ('"proximity search"@10' IN BOOLEAN MODE));
-id	a	b
-8	test proximity fts search, test, proximity and phrase	search, with proximity innodb
-9	test more proximity fts search, test, more proximity and phrase	search, with proximity innodb
-SELECT * FROM t1 WHERE t1.id IN (SELECT t2.id FROM t1 AS t2 WHERE
+id
+8
+9
+SELECT id FROM t1 WHERE t1.id IN (SELECT t2.id FROM t1 AS t2 WHERE
 MATCH (t2.a,t2.b) AGAINST ('"proximity search"@10' IN BOOLEAN MODE));
-id	a	b
-7	test proximity search, test, proximity and phrase	search, with proximity innodb
-SELECT * FROM t1 WHERE EXISTS (SELECT * FROM t1 AS t2 WHERE
+id
+7
+SELECT id FROM t1 WHERE EXISTS (SELECT id FROM t1 AS t2 WHERE
 MATCH t2.a,t2.b AGAINST ('"proximity search"@10' IN BOOLEAN MODE) 
 AND t2.id=t1.id);
-id	a	b
-7	test proximity search, test, proximity and phrase	search, with proximity innodb
-SELECT * FROM t1 WHERE EXISTS (SELECT * FROM t1 AS t2 WHERE
+id
+7
+SELECT id FROM t1 WHERE EXISTS (SELECT id FROM t1 AS t2 WHERE
 MATCH t2.a,t2.b AGAINST ('"more test proximity"@10' IN BOOLEAN MODE) 
 AND t2.id=t1.id);
-id	a	b
-9	test more proximity fts search, test, more proximity and phrase	search, with proximity innodb
-SELECT * FROM t1 WHERE EXISTS (SELECT * FROM t1 AS t2 WHERE
+id
+9
+SELECT id FROM t1 WHERE EXISTS (SELECT id FROM t1 AS t2 WHERE
 MATCH t2.a,t2.b AGAINST ('"more test proximity"@5' IN BOOLEAN MODE) 
 AND t2.id=t1.id);
-id	a	b
-CREATE TABLE t2 ENGINE = InnoDB AS SELECT * FROM t1 WHERE
+id
+CREATE TABLE t2 ENGINE = InnoDB AS SELECT id FROM t1 WHERE
 MATCH a,b AGAINST ('support') ;
 SHOW CREATE TABLE t2;
 Table	Create Table
 t2	CREATE TABLE `t2` (
-  `id` int(10) unsigned NOT NULL DEFAULT '0',
-  `a` varchar(200) DEFAULT NULL,
-  `b` text
+  `id` int(10) unsigned NOT NULL DEFAULT '0'
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1
-SELECT * FROM t2;
-id	a	b
-1	MySQL has now support	for full-text search
-3	Only MyISAM tables	support collections
+SELECT id FROM t2;
+id
+1
+3
 DROP TABLE t2;
-CREATE TABLE t2 ENGINE = InnoDB AS SELECT * FROM t1 WHERE
+CREATE TABLE t2 ENGINE = InnoDB AS SELECT id FROM t1 WHERE
 MATCH a,b AGAINST("+support +collections" IN BOOLEAN MODE);
 SHOW CREATE TABLE t2;
 Table	Create Table
 t2	CREATE TABLE `t2` (
-  `id` int(10) unsigned NOT NULL DEFAULT '0',
-  `a` varchar(200) DEFAULT NULL,
-  `b` text
+  `id` int(10) unsigned NOT NULL DEFAULT '0'
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1
-SELECT * FROM t2;
-id	a	b
-3	Only MyISAM tables	support collections
+SELECT id FROM t2;
+id
+3
 DROP TABLE t2;
-CREATE TABLE t2 ENGINE = InnoDB AS SELECT * FROM t1 WHERE
+CREATE TABLE t2 ENGINE = InnoDB AS SELECT id FROM t1 WHERE
 MATCH a,b AGAINST ('"proximity search"@10' IN BOOLEAN MODE);
 SHOW CREATE TABLE t2;
 Table	Create Table
 t2	CREATE TABLE `t2` (
-  `id` int(10) unsigned NOT NULL DEFAULT '0',
-  `a` varchar(200) DEFAULT NULL,
-  `b` text
+  `id` int(10) unsigned NOT NULL DEFAULT '0'
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1
-SELECT * FROM t2;
-id	a	b
-7	test proximity search, test, proximity and phrase	search, with proximity innodb
+SELECT id FROM t2;
+id
+7
 DROP TABLE t2;
 DROP TABLE t1;
 CREATE TABLE t1 (
@@ -358,59 +352,59 @@ COUNT(*)
 SELECT COUNT(*) FROM t1 WHERE b IS NOT NULL;
 COUNT(*)
 6
-SELECT * FROM t1
+SELECT id FROM t1
 WHERE MATCH (a,b)
 AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE);
-id	a	b
-1	MySQL from Tutorial	DBMS stands for DataBase ...
-103	where will Optimizing MySQL	what In this tutorial we will show ...
-SELECT * FROM t1
+id
+1
+103
+SELECT id FROM t1
 WHERE MATCH (a,b)
 AGAINST (NULL IN NATURAL LANGUAGE MODE);
-id	a	b
-SELECT * FROM t1
+id
+SELECT id FROM t1
 WHERE MATCH (a,b)
 AGAINST (NULL WITH QUERY EXPANSION);
-id	a	b
-SELECT * FROM t1
+id
+SELECT id FROM t1
 WHERE MATCH (a,b)
 AGAINST ('null' IN NATURAL LANGUAGE MODE);
-id	a	b
-106	MySQL Security	When configured properly, MySQL null...
-SELECT * FROM t1 WHERE MATCH (a,b)
+id
+106
+SELECT id FROM t1 WHERE MATCH (a,b)
 AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE);
-id	a	b
-106	MySQL Security	When configured properly, MySQL null...
-1	MySQL from Tutorial	DBMS stands for DataBase ...
-52	when To Use MySQL Well	After that you went through a ...
-103	where will Optimizing MySQL	what In this tutorial we will show ...
-104	1001 MySQL Tricks	1. Never run mysqld as root. 2. ...
-SELECT * FROM t1 WHERE MATCH (a,b)
+id
+106
+1
+52
+103
+104
+SELECT id FROM t1 WHERE MATCH (a,b)
 AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE) AND (a IS NOT NULL OR b IS NOT NULL);
-id	a	b
-106	MySQL Security	When configured properly, MySQL null...
-1	MySQL from Tutorial	DBMS stands for DataBase ...
-52	when To Use MySQL Well	After that you went through a ...
-103	where will Optimizing MySQL	what In this tutorial we will show ...
-104	1001 MySQL Tricks	1. Never run mysqld as root. 2. ...
-SELECT * FROM t1 WHERE MATCH (a,b)
+id
+106
+1
+52
+103
+104
+SELECT id FROM t1 WHERE MATCH (a,b)
 AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE) AND (a IS NULL AND b IS NOT NULL);
-id	a	b
-SELECT * FROM t1 WHERE MATCH (a,b)
+id
+SELECT id FROM t1 WHERE MATCH (a,b)
 AGAINST ('DBMS Security' IN BOOLEAN MODE);
-id	a	b
-1	MySQL from Tutorial	DBMS stands for DataBase ...
-106	MySQL Security	When configured properly, MySQL null...
+id
+1
+106
 SELECT COUNT(*) FROM t1
 WHERE MATCH (a,b)
 AGAINST ('database' WITH QUERY EXPANSION);
 COUNT(*)
 6
-SELECT * FROM t1
+SELECT id FROM t1
 WHERE MATCH (a,b)
 AGAINST ('"following database"@10' IN BOOLEAN MODE);
-id	a	b
-105	MySQL vs. YourSQL	In the following database comparison ...
+id
+105
 DROP TABLE t1;
 drop table if exists t50;
 set names utf8;

=== modified file 'mysql-test/suite/innodb_fts/r/innodb_fts_misc_1.result'
--- a/mysql-test/suite/innodb_fts/r/innodb_fts_misc_1.result	2011-11-20 21:00:25 +0000
+++ b/mysql-test/suite/innodb_fts/r/innodb_fts_misc_1.result	2011-11-21 17:09:08 +0000
@@ -34,50 +34,50 @@ INSERT INTO t2 (a2,b2) VALUES
 ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`a2`) REFERENCES `t1` (`a1`) ON UPDATE CASCADE)
 DELETE FROM t1;
 ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`a2`) REFERENCES `t1` (`a1`) ON UPDATE CASCADE)
-SELECT * FROM t1 WHERE MATCH (a1,b1) AGAINST ('tutorial') ;
-id1	a1	b1
-1	MySQL Tutorial	DBMS stands for DataBase VÐƷWİ...
-3	Optimizing MySQL	In this tutorial we will show ...
-SELECT * FROM t2 WHERE MATCH (a2,b2) AGAINST ('tutorial') ;
-id2	a2	b2
-1	MySQL Tutorial	DBMS stands for DataBase VÐƷWİ...
-3	Optimizing MySQL	In this tutorial we will show ...
-SELECT * FROM t1 WHERE MATCH (a1,b1) AGAINST ('tutorial (+mysql -VÐƷWİ)' IN BOOLEAN MODE) ;
-id1	a1	b1
-3	Optimizing MySQL	In this tutorial we will show ...
-6	MySQL Security	When configured properly, MySQL ...
-2	How To Use MySQL Well	After you went through a ...
-4	1001 MySQL Tricks	1. Never run mysqld as root. 2. ...
-5	MySQL vs. YourSQL	In the following database comparison ...
-SELECT * FROM t2 WHERE MATCH (a2,b2) AGAINST ('tutorial (+mysql -VÐƷWİ)' IN BOOLEAN MODE) ;
-id2	a2	b2
-3	Optimizing MySQL	In this tutorial we will show ...
-6	MySQL Security	When configured properly, MySQL ...
-2	How To Use MySQL Well	After you went through a ...
-4	1001 MySQL Tricks	1. Never run mysqld as root. 2. ...
-5	MySQL vs. YourSQL	In the following database comparison ...
-SELECT * FROM t1 WHERE MATCH (a1,b1) AGAINST ('tutorial' WITH QUERY EXPANSION) ;
-id1	a1	b1
-1	MySQL Tutorial	DBMS stands for DataBase VÐƷWİ...
-3	Optimizing MySQL	In this tutorial we will show ...
-5	MySQL vs. YourSQL	In the following database comparison ...
-6	MySQL Security	When configured properly, MySQL ...
-2	How To Use MySQL Well	After you went through a ...
-4	1001 MySQL Tricks	1. Never run mysqld as root. 2. ...
-SELECT * FROM t2 WHERE MATCH (a2,b2) AGAINST ('tutorial' WITH QUERY EXPANSION) ;
-id2	a2	b2
-1	MySQL Tutorial	DBMS stands for DataBase VÐƷWİ...
-3	Optimizing MySQL	In this tutorial we will show ...
-5	MySQL vs. YourSQL	In the following database comparison ...
-6	MySQL Security	When configured properly, MySQL ...
-2	How To Use MySQL Well	After you went through a ...
-4	1001 MySQL Tricks	1. Never run mysqld as root. 2. ...
-SELECT * FROM t1 WHERE MATCH (a1,b1) AGAINST ('"dbms database"@16' IN BOOLEAN MODE) ;
-id1	a1	b1
-1	MySQL Tutorial	DBMS stands for DataBase VÐƷWİ...
-SELECT * FROM t2 WHERE MATCH (a2,b2) AGAINST ('"dbms database"@16' IN BOOLEAN MODE) ;
-id2	a2	b2
-1	MySQL Tutorial	DBMS stands for DataBase VÐƷWİ...
+SELECT id1 FROM t1 WHERE MATCH (a1,b1) AGAINST ('tutorial') ;
+id1
+1
+3
+SELECT id2 FROM t2 WHERE MATCH (a2,b2) AGAINST ('tutorial') ;
+id2
+1
+3
+SELECT id1 FROM t1 WHERE MATCH (a1,b1) AGAINST ('tutorial (+mysql -VÐƷWİ)' IN BOOLEAN MODE) ;
+id1
+3
+6
+2
+4
+5
+SELECT id2 FROM t2 WHERE MATCH (a2,b2) AGAINST ('tutorial (+mysql -VÐƷWİ)' IN BOOLEAN MODE) ;
+id2
+3
+6
+2
+4
+5
+SELECT id1 FROM t1 WHERE MATCH (a1,b1) AGAINST ('tutorial' WITH QUERY EXPANSION) ;
+id1
+1
+3
+5
+6
+2
+4
+SELECT id2 FROM t2 WHERE MATCH (a2,b2) AGAINST ('tutorial' WITH QUERY EXPANSION) ;
+id2
+1
+3
+5
+6
+2
+4
+SELECT id1 FROM t1 WHERE MATCH (a1,b1) AGAINST ('"dbms database"@16' IN BOOLEAN MODE) ;
+id1
+1
+SELECT id2 FROM t2 WHERE MATCH (a2,b2) AGAINST ('"dbms database"@16' IN BOOLEAN MODE) ;
+id2
+1
 set global innodb_optimize_fulltext_only=1;
 optimize table t1;
 Table	Op	Msg_type	Msg_text
@@ -85,32 +85,32 @@ test.t1	optimize	status	OK
 set global innodb_optimize_fulltext_only=0;
 UPDATE t1 SET a1 = "changing column - on update cascade" , b1 = "to check foreign constraint" WHERE
 MATCH (a1,b1) AGAINST ('tutorial (+mysql -VÐƷWİ)' IN BOOLEAN MODE) ;
-SELECT * FROM t1 WHERE MATCH (a1,b1) AGAINST ('tutorial (+mysql -VÐƷWİ)' IN BOOLEAN MODE) ;
-id1	a1	b1
-SELECT * FROM t2 WHERE MATCH (a2,b2) AGAINST ('tutorial (+mysql -VÐƷWİ)' IN BOOLEAN MODE) ;
-id2	a2	b2
-6	changing column - on update cascade	When configured properly, MySQL ...
-SELECT * FROM t1 WHERE MATCH (a1,b1) AGAINST ('+update +cascade' IN BOOLEAN MODE) ;
-id1	a1	b1
-4	changing column - on update cascade	to check foreign constraint
-2	changing column - on update cascade	to check foreign constraint
-6	changing column - on update cascade	to check foreign constraint
-5	changing column - on update cascade	to check foreign constraint
-3	changing column - on update cascade	to check foreign constraint
-SELECT * FROM t2 WHERE MATCH (a2,b2) AGAINST ('+update +cascade' IN BOOLEAN MODE) ;
-id2	a2	b2
-4	changing column - on update cascade	1. Never run mysqld as root. 2. ...
-2	changing column - on update cascade	After you went through a ...
-6	changing column - on update cascade	When configured properly, MySQL ...
-5	changing column - on update cascade	In the following database comparison ...
-3	changing column - on update cascade	In this tutorial we will show ...
-SELECT * FROM t2 WHERE a2 LIKE '%UPDATE CASCADE%';
-id2	a2	b2
-2	changing column - on update cascade	After you went through a ...
-3	changing column - on update cascade	In this tutorial we will show ...
-4	changing column - on update cascade	1. Never run mysqld as root. 2. ...
-5	changing column - on update cascade	In the following database comparison ...
-6	changing column - on update cascade	When configured properly, MySQL ...
+SELECT id1 FROM t1 WHERE MATCH (a1,b1) AGAINST ('tutorial (+mysql -VÐƷWİ)' IN BOOLEAN MODE) ;
+id1
+SELECT id2 FROM t2 WHERE MATCH (a2,b2) AGAINST ('tutorial (+mysql -VÐƷWİ)' IN BOOLEAN MODE) ;
+id2
+6
+SELECT id1 FROM t1 WHERE MATCH (a1,b1) AGAINST ('+update +cascade' IN BOOLEAN MODE) ;
+id1
+4
+2
+6
+5
+3
+SELECT id2 FROM t2 WHERE MATCH (a2,b2) AGAINST ('+update +cascade' IN BOOLEAN MODE) ;
+id2
+4
+2
+6
+5
+3
+SELECT id2 FROM t2 WHERE a2 LIKE '%UPDATE CASCADE%';
+id2
+2
+3
+4
+5
+6
 DROP TABLE t2 , t1;
 create table t1 (s1 int, s2 varchar(200), primary key (s1,s2)) ENGINE = InnoDB;
 create table t2 (s1 int, s2 varchar(200),

=== modified file 'mysql-test/suite/innodb_fts/t/innodb_fts_misc.test'
--- a/mysql-test/suite/innodb_fts/t/innodb_fts_misc.test	2011-11-16 16:48:12 +0000
+++ b/mysql-test/suite/innodb_fts/t/innodb_fts_misc.test	2011-11-21 17:09:08 +0000
@@ -1,4 +1,4 @@
-
+--source include/not_windows.inc
 #------------------------------------------------------------------------------
 # Test With alter/create/drop index
 #------------------------------------------------------------------------------
@@ -30,24 +30,24 @@ INSERT INTO t1 (a,b) VALUES
         ('MySQL Security','When configured properly, MySQL ...');
 
 # Select word "tutorial" in the table
-SELECT * FROM t1 WHERE MATCH (a,b)
+SELECT id FROM t1 WHERE MATCH (a,b)
         AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE);
 
 # boolean mode
-select * from t1 where MATCH(a,b) AGAINST("+support +collections" IN BOOLEAN MODE);
-select * from t1 where MATCH(a,b) AGAINST("+search" IN BOOLEAN MODE);
-select * from t1 where MATCH(a,b) AGAINST("+search +(support vector)" IN BOOLEAN MODE);
-select * from t1 where MATCH(a,b) AGAINST("+search -(support vector)" IN BOOLEAN MODE);
-select *, MATCH(a,b) AGAINST("support collections" IN BOOLEAN MODE) as x from t1;
-select *, MATCH(a,b) AGAINST("collections support" IN BOOLEAN MODE) as x from t1;
-select * from t1 where MATCH a,b AGAINST ("+call* +coll*" IN BOOLEAN MODE);
-select * from t1 where MATCH a,b AGAINST ('"support now"' IN BOOLEAN MODE);
-select * from t1 where MATCH a,b AGAINST ('"Now sUPPort"' IN BOOLEAN MODE);
+select id from t1 where MATCH(a,b) AGAINST("+support +collections" IN BOOLEAN MODE);
+select id from t1 where MATCH(a,b) AGAINST("+search" IN BOOLEAN MODE);
+select id from t1 where MATCH(a,b) AGAINST("+search +(support vector)" IN BOOLEAN MODE);
+select id from t1 where MATCH(a,b) AGAINST("+search -(support vector)" IN BOOLEAN MODE);
+select id, MATCH(a,b) AGAINST("support collections" IN BOOLEAN MODE) as x from t1;
+select id, MATCH(a,b) AGAINST("collections support" IN BOOLEAN MODE) as x from t1;
+select id from t1 where MATCH a,b AGAINST ("+call* +coll*" IN BOOLEAN MODE);
+select id from t1 where MATCH a,b AGAINST ('"support now"' IN BOOLEAN MODE);
+select id from t1 where MATCH a,b AGAINST ('"Now sUPPort"' IN BOOLEAN MODE);
 
 # query expansion
-select * from t1 where MATCH(a,b) AGAINST ("collections" WITH QUERY EXPANSION);
-select * from t1 where MATCH(a,b) AGAINST ("indexes" WITH QUERY EXPANSION);
-select * from t1 where MATCH(a,b) AGAINST ("indexes collections" WITH QUERY EXPANSION);
+select id from t1 where MATCH(a,b) AGAINST ("collections" WITH QUERY EXPANSION);
+select id from t1 where MATCH(a,b) AGAINST ("indexes" WITH QUERY EXPANSION);
+select id from t1 where MATCH(a,b) AGAINST ("indexes collections" WITH QUERY EXPANSION);
 
 # Drop index 
 ALTER TABLE t1 DROP INDEX idx;
@@ -56,24 +56,24 @@ ALTER TABLE t1 DROP INDEX idx;
 CREATE FULLTEXT INDEX idx on t1 (a,b);
 
 # Select word "tutorial" in the table
-SELECT * FROM t1 WHERE MATCH (a,b)
+SELECT id FROM t1 WHERE MATCH (a,b)
         AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE);
 
 # boolean mode
-select * from t1 where MATCH(a,b) AGAINST("+support +collections" IN BOOLEAN MODE);
-select * from t1 where MATCH(a,b) AGAINST("+search" IN BOOLEAN MODE);
-select * from t1 where MATCH(a,b) AGAINST("+search +(support vector)" IN BOOLEAN MODE);
-select * from t1 where MATCH(a,b) AGAINST("+search -(support vector)" IN BOOLEAN MODE);
-select *, MATCH(a,b) AGAINST("support collections" IN BOOLEAN MODE) as x from t1;
-select *, MATCH(a,b) AGAINST("collections support" IN BOOLEAN MODE) as x from t1;
-select * from t1 where MATCH a,b AGAINST ("+call* +coll*" IN BOOLEAN MODE);
-select * from t1 where MATCH a,b AGAINST ('"support now"' IN BOOLEAN MODE);
-select * from t1 where MATCH a,b AGAINST ('"Now sUPPort"' IN BOOLEAN MODE);
+select id from t1 where MATCH(a,b) AGAINST("+support +collections" IN BOOLEAN MODE);
+select id from t1 where MATCH(a,b) AGAINST("+search" IN BOOLEAN MODE);
+select id from t1 where MATCH(a,b) AGAINST("+search +(support vector)" IN BOOLEAN MODE);
+select id from t1 where MATCH(a,b) AGAINST("+search -(support vector)" IN BOOLEAN MODE);
+select id, MATCH(a,b) AGAINST("support collections" IN BOOLEAN MODE) as x from t1;
+select id, MATCH(a,b) AGAINST("collections support" IN BOOLEAN MODE) as x from t1;
+select id from t1 where MATCH a,b AGAINST ("+call* +coll*" IN BOOLEAN MODE);
+select id from t1 where MATCH a,b AGAINST ('"support now"' IN BOOLEAN MODE);
+select id from t1 where MATCH a,b AGAINST ('"Now sUPPort"' IN BOOLEAN MODE);
 
 # query expansion
-select * from t1 where MATCH(a,b) AGAINST ("collections" WITH QUERY EXPANSION);
-select * from t1 where MATCH(a,b) AGAINST ("indexes" WITH QUERY EXPANSION);
-select * from t1 where MATCH(a,b) AGAINST ("indexes collections" WITH QUERY EXPANSION);
+select id from t1 where MATCH(a,b) AGAINST ("collections" WITH QUERY EXPANSION);
+select id from t1 where MATCH(a,b) AGAINST ("indexes" WITH QUERY EXPANSION);
+select id from t1 where MATCH(a,b) AGAINST ("indexes collections" WITH QUERY EXPANSION);
 
 # insert for proximity search 
 INSERT INTO t1 (a,b) VALUES ('test query expansion','for database ...');
@@ -91,37 +91,37 @@ INSERT INTO t1 (a,b) VALUES
          'search, with proximity innodb');
 
 # This should only return the first document
-SELECT * FROM t1
+SELECT id FROM t1
         WHERE MATCH (a,b)
         AGAINST ('"proximity search"@10' IN BOOLEAN MODE);
 
 # This would return no document
-SELECT * FROM t1
+SELECT id FROM t1
         WHERE MATCH (a,b)
         AGAINST ('"proximity search"@9' IN BOOLEAN MODE);
 
 # This give you all three documents
-SELECT * FROM t1
+SELECT id FROM t1
         WHERE MATCH (a,b)
         AGAINST ('"proximity search"@14' IN BOOLEAN MODE);
 
 # Similar boundary testing for the words
-SELECT * FROM t1
+SELECT id FROM t1
         WHERE MATCH (a,b)
         AGAINST ('"test proximity"@5' IN BOOLEAN MODE);
 
 # Test with more word The last document will return, please notice there
 # is no ordering requirement for proximity search.
-SELECT * FROM t1
+SELECT id FROM t1
         WHERE MATCH (a,b)
         AGAINST ('"more test proximity"@10' IN BOOLEAN MODE);
 
-SELECT * FROM t1
+SELECT id FROM t1
         WHERE MATCH (a,b)
         AGAINST ('"more test proximity"@9' IN BOOLEAN MODE);
 
 # The phrase search will not require exact word ordering
-SELECT * FROM t1
+SELECT id FROM t1
         WHERE MATCH (a,b)
         AGAINST ('"more fts proximity"@09' IN BOOLEAN MODE);
 
@@ -157,52 +157,52 @@ INSERT INTO t1 (a,b) VALUES
 
 
 # Select word "tutorial" in the table
-SELECT * FROM t1 WHERE MATCH (a,b)
+SELECT id FROM t1 WHERE MATCH (a,b)
 AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE);
 
 # Select word "tutorial" in the table
-SELECT * FROM t1 WHERE id = (SELECT MAX(id) FROM t1 WHERE MATCH (a,b)
+SELECT id FROM t1 WHERE id = (SELECT MAX(id) FROM t1 WHERE MATCH (a,b)
 AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE));
 
 # Select word "tutorial" in the table
-SELECT * FROM t1 WHERE id = (SELECT MIN(id) FROM t1 WHERE MATCH (a,b)
+SELECT id FROM t1 WHERE id = (SELECT MIN(id) FROM t1 WHERE MATCH (a,b)
 AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE));
 
 # Select word "tutorial" in the table
-SELECT * FROM t1 WHERE id = (SELECT MIN(id) FROM t1 WHERE MATCH (a,b)
+SELECT id FROM t1 WHERE id = (SELECT MIN(id) FROM t1 WHERE MATCH (a,b)
 AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE)) OR id = 3 ;
 
 
 # Select word "tutorial" in the table - innodb crash
-SELECT * FROM t1 WHERE CONCAT(t1.a,t1.b) IN (
+SELECT id FROM t1 WHERE CONCAT(t1.a,t1.b) IN (
 SELECT CONCAT(a,b) FROM t1 AS t2 WHERE 
 MATCH (t2.a,t2.b) AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE)
 ) OR t1.id = 3 ;
 
 
 # Select word "tutorial" in the table  - innodb crash
-SELECT * FROM t1 WHERE CONCAT(t1.a,t1.b) IN (
+SELECT id FROM t1 WHERE CONCAT(t1.a,t1.b) IN (
 SELECT CONCAT(a,b) FROM t1 AS t2 
 WHERE MATCH (t2.a,t2.b) AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE) 
 AND t2.id != 3) ;
 
 # Select word "tutorial" in the table
-SELECT * FROM t1 WHERE id IN (SELECT MIN(id) FROM t1 WHERE 
+SELECT id FROM t1 WHERE id IN (SELECT MIN(id) FROM t1 WHERE 
 MATCH (a,b) AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE)) OR id = 3 ;
 
 # Select word except  "tutorial" in the table
-SELECT * FROM t1 WHERE id NOT IN (SELECT MIN(id) FROM t1 
+SELECT id FROM t1 WHERE id NOT IN (SELECT MIN(id) FROM t1 
 WHERE MATCH (a,b) AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE)) ;
 
 
 # Select word "tutorial" in the table
-SELECT * FROM t1 WHERE EXISTS (SELECT t2.id FROM t1 AS t2 WHERE 
+SELECT id FROM t1 WHERE EXISTS (SELECT t2.id FROM t1 AS t2 WHERE 
 MATCH (t2.a,t2.b) AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE) 
 AND t1.id = t2.id) ;
 
 
 # Select not word like "tutorial" using subquery
-SELECT * FROM t1 WHERE NOT EXISTS (SELECT t2.id FROM t1 AS t2 WHERE 
+SELECT id FROM t1 WHERE NOT EXISTS (SELECT t2.id FROM t1 AS t2 WHERE 
 MATCH (t2.a,t2.b) AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE) 
 AND t1.id = t2.id) ;
 
@@ -223,25 +223,25 @@ INSERT INTO t1(a,b) VALUES('MySQL has no
 ('Full-text search in MySQL', 'implements vector space model');
 
 # Select word "tutorial" in the table
-SELECT * FROM t1 WHERE t1.id = (SELECT MAX(t2.id) FROM t1 AS t2 WHERE 
+SELECT id FROM t1 WHERE t1.id = (SELECT MAX(t2.id) FROM t1 AS t2 WHERE 
         MATCH(t2.a,t2.b) AGAINST("+support +collections" IN BOOLEAN MODE));
-SELECT * FROM t1 WHERE t1.id != (SELECT MIN(t2.id) FROM t1 AS t2 WHERE 
+SELECT id FROM t1 WHERE t1.id != (SELECT MIN(t2.id) FROM t1 AS t2 WHERE 
         MATCH(t2.a,t2.b) AGAINST("+search" IN BOOLEAN MODE));
 
-SELECT * FROM t1 WHERE t1.id IN (SELECT t2.id FROM t1 AS t2 WHERE 
+SELECT id FROM t1 WHERE t1.id IN (SELECT t2.id FROM t1 AS t2 WHERE 
 MATCH (t2.a,t2.b) AGAINST ("+call* +coll*" IN BOOLEAN MODE));
 
-SELECT * FROM t1 WHERE EXISTS (SELECT * FROM t1 AS t2 WHERE 
+SELECT id FROM t1 WHERE EXISTS (SELECT id FROM t1 AS t2 WHERE 
 MATCH t2.a,t2.b AGAINST ('"Now sUPPort"' IN BOOLEAN MODE) AND t2.id=t1.id);
 
 
 #query expansion search
 # result differ for query expansion search even wo subquery
-#SELECT * FROM t1 WHERE t1.id = ( SELECT  MAX(t2.id) FROM t1 AS t2 WHERE 
+#SELECT id FROM t1 WHERE t1.id = ( SELECT  MAX(t2.id) FROM t1 AS t2 WHERE 
 #MATCH(a,b) AGAINST ("collections" WITH QUERY EXPANSION));
-#SELECT * FROM t1 WHERE t1.id IN ( SELECT t2.id FROM t1 AS t2 WHERE
+#SELECT id FROM t1 WHERE t1.id IN ( SELECT t2.id FROM t1 AS t2 WHERE
 #MATCH(a,b) AGAINST ("indexes" WITH QUERY EXPANSION));
-#SELECT * FROM t1 WHERE ( SELECT COUNT(*) FROM t1 AS t2 WHERE
+#SELECT id FROM t1 WHERE ( SELECT COUNT(*) FROM t1 AS t2 WHERE
 #MATCH(t2.a,t2.b) AGAINST ("indexes collections" WITH QUERY EXPANSION)) >= 1 
 #AND t1.id <=3 ;
 
@@ -262,23 +262,23 @@ INSERT INTO t1 (a,b) VALUES
          'search, with proximity innodb');
 
 
-SELECT * FROM t1 WHERE t1.id = (SELECT MAX(t2.id) FROM t1 AS t2 WHERE
+SELECT id FROM t1 WHERE t1.id = (SELECT MAX(t2.id) FROM t1 AS t2 WHERE
 MATCH(t2.a,t2.b) AGAINST ('"proximity search"@10' IN BOOLEAN MODE));
-SELECT * FROM t1 WHERE t1.id > (SELECT MIN(t2.id) FROM t1 AS t2 WHERE
+SELECT id FROM t1 WHERE t1.id > (SELECT MIN(t2.id) FROM t1 AS t2 WHERE
 MATCH(t2.a,t2.b) AGAINST ('"proximity search"@10' IN BOOLEAN MODE));
 
-SELECT * FROM t1 WHERE t1.id IN (SELECT t2.id FROM t1 AS t2 WHERE
+SELECT id FROM t1 WHERE t1.id IN (SELECT t2.id FROM t1 AS t2 WHERE
 MATCH (t2.a,t2.b) AGAINST ('"proximity search"@10' IN BOOLEAN MODE));
 
-SELECT * FROM t1 WHERE EXISTS (SELECT * FROM t1 AS t2 WHERE
+SELECT id FROM t1 WHERE EXISTS (SELECT id FROM t1 AS t2 WHERE
 MATCH t2.a,t2.b AGAINST ('"proximity search"@10' IN BOOLEAN MODE) 
 AND t2.id=t1.id);
 
-SELECT * FROM t1 WHERE EXISTS (SELECT * FROM t1 AS t2 WHERE
+SELECT id FROM t1 WHERE EXISTS (SELECT id FROM t1 AS t2 WHERE
 MATCH t2.a,t2.b AGAINST ('"more test proximity"@10' IN BOOLEAN MODE) 
 AND t2.id=t1.id);
 
-SELECT * FROM t1 WHERE EXISTS (SELECT * FROM t1 AS t2 WHERE
+SELECT id FROM t1 WHERE EXISTS (SELECT id FROM t1 AS t2 WHERE
 MATCH t2.a,t2.b AGAINST ('"more test proximity"@5' IN BOOLEAN MODE) 
 AND t2.id=t1.id);
 
@@ -286,22 +286,22 @@ AND t2.id=t1.id);
 #------------------------------------------------------------------------------
 # create table AS SELECT from fts indexed table
 #------------------------------------------------------------------------------
-CREATE TABLE t2 ENGINE = InnoDB AS SELECT * FROM t1 WHERE
+CREATE TABLE t2 ENGINE = InnoDB AS SELECT id FROM t1 WHERE
 MATCH a,b AGAINST ('support') ;
 SHOW CREATE TABLE t2;
-SELECT * FROM t2;
+SELECT id FROM t2;
 DROP TABLE t2;
 
-CREATE TABLE t2 ENGINE = InnoDB AS SELECT * FROM t1 WHERE
+CREATE TABLE t2 ENGINE = InnoDB AS SELECT id FROM t1 WHERE
 MATCH a,b AGAINST("+support +collections" IN BOOLEAN MODE);
 SHOW CREATE TABLE t2;
-SELECT * FROM t2;
+SELECT id FROM t2;
 DROP TABLE t2;
 
-CREATE TABLE t2 ENGINE = InnoDB AS SELECT * FROM t1 WHERE
+CREATE TABLE t2 ENGINE = InnoDB AS SELECT id FROM t1 WHERE
 MATCH a,b AGAINST ('"proximity search"@10' IN BOOLEAN MODE);
 SHOW CREATE TABLE t2;
-SELECT * FROM t2;
+SELECT id FROM t2;
 DROP TABLE t2;
 
 DROP TABLE t1;
@@ -354,30 +354,30 @@ SELECT COUNT(*) FROM t1;
 SELECT COUNT(*) FROM t1 WHERE a IS NULL;
 SELECT COUNT(*) FROM t1 WHERE b IS NOT NULL;
 
-SELECT * FROM t1
+SELECT id FROM t1
      WHERE MATCH (a,b)
      AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE);
 
-SELECT * FROM t1
+SELECT id FROM t1
      WHERE MATCH (a,b)
      AGAINST (NULL IN NATURAL LANGUAGE MODE);
-SELECT * FROM t1
+SELECT id FROM t1
      WHERE MATCH (a,b)
      AGAINST (NULL WITH QUERY EXPANSION);
-SELECT * FROM t1
+SELECT id FROM t1
      WHERE MATCH (a,b)
      AGAINST ('null' IN NATURAL LANGUAGE MODE);
 # Boolean search
 # Select rows contain "MySQL" but not "YourSQL"
-SELECT * FROM t1 WHERE MATCH (a,b)
+SELECT id FROM t1 WHERE MATCH (a,b)
 AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE);
-SELECT * FROM t1 WHERE MATCH (a,b)
+SELECT id FROM t1 WHERE MATCH (a,b)
 AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE) AND (a IS NOT NULL OR b IS NOT NULL);
-SELECT * FROM t1 WHERE MATCH (a,b)
+SELECT id FROM t1 WHERE MATCH (a,b)
 AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE) AND (a IS NULL AND b IS NOT NULL);
 
 # Select rows contain at least one of the two words
-SELECT * FROM t1 WHERE MATCH (a,b)
+SELECT id FROM t1 WHERE MATCH (a,b)
 AGAINST ('DBMS Security' IN BOOLEAN MODE);
 
 # Test query expansion
@@ -386,7 +386,7 @@ WHERE MATCH (a,b)
 AGAINST ('database' WITH QUERY EXPANSION);
 
 # proximity
-SELECT * FROM t1
+SELECT id FROM t1
 WHERE MATCH (a,b)
 AGAINST ('"following database"@10' IN BOOLEAN MODE);
 

=== modified file 'mysql-test/suite/innodb_fts/t/innodb_fts_misc_1.test'
--- a/mysql-test/suite/innodb_fts/t/innodb_fts_misc_1.test	2011-11-20 21:00:25 +0000
+++ b/mysql-test/suite/innodb_fts/t/innodb_fts_misc_1.test	2011-11-21 17:09:08 +0000
@@ -1,3 +1,4 @@
+--source include/not_windows.inc
 #------------------------------------------------------------------------------
 # FTS with FK and update casecade
 #-------------------------------------------------------------------------------
@@ -56,18 +57,18 @@ INSERT INTO t2 (a2,b2) VALUES
 --error 1451
 DELETE FROM t1;
 
-SELECT * FROM t1 WHERE MATCH (a1,b1) AGAINST ('tutorial') ;
-SELECT * FROM t2 WHERE MATCH (a2,b2) AGAINST ('tutorial') ;
+SELECT id1 FROM t1 WHERE MATCH (a1,b1) AGAINST ('tutorial') ;
+SELECT id2 FROM t2 WHERE MATCH (a2,b2) AGAINST ('tutorial') ;
 
-SELECT * FROM t1 WHERE MATCH (a1,b1) AGAINST ('tutorial (+mysql -VÐƷWİ)' IN BOOLEAN MODE) ;
-SELECT * FROM t2 WHERE MATCH (a2,b2) AGAINST ('tutorial (+mysql -VÐƷWİ)' IN BOOLEAN MODE) ;
+SELECT id1 FROM t1 WHERE MATCH (a1,b1) AGAINST ('tutorial (+mysql -VÐƷWİ)' IN BOOLEAN MODE) ;
+SELECT id2 FROM t2 WHERE MATCH (a2,b2) AGAINST ('tutorial (+mysql -VÐ (a1,b1) AGAINST ('tutorial' WITH QUERY EXPANSION) ;
-SELECT * FROM t2 WHERE MATCH (a2,b2) AGAINST ('tutorial' WITH QUERY EXPANSION) ;
+SELECT id1 FROM t1 WHERE MATCH (a1,b1) AGAINST ('tutorial' WITH QUERY EXPANSION) ;
+SELECT id2 FROM t2 WHERE MATCH (a2,b2) AGAINST ('tutorial' WITH QUERY EXPANSION) ;
 
 
-SELECT * FROM t1 WHERE MATCH (a1,b1) AGAINST ('"dbms database"@16' IN BOOLEAN MODE) ;
-SELECT * FROM t2 WHERE MATCH (a2,b2) AGAINST ('"dbms database"@16' IN BOOLEAN MODE) ;
+SELECT id1 FROM t1 WHERE MATCH (a1,b1) AGAINST ('"dbms database"@16' IN BOOLEAN MODE) ;
+SELECT id2 FROM t2 WHERE MATCH (a2,b2) AGAINST ('"dbms database"@16' IN BOOLEAN MODE) ;
 
 set global innodb_optimize_fulltext_only=1;
 optimize table t1;
@@ -77,15 +78,15 @@ UPDATE t1 SET a1 = "changing column - on
 MATCH (a1,b1) AGAINST ('tutorial (+mysql -VÐƷWİ)' IN BOOLEAN MODE) ;
 
 # no records expected
-SELECT * FROM t1 WHERE MATCH (a1,b1) AGAINST ('tutorial (+mysql -VÐƷWİ)' IN BOOLEAN MODE) ;
+SELECT id1 FROM t1 WHERE MATCH (a1,b1) AGAINST ('tutorial (+mysql -VÐƷWİ)' IN BOOLEAN MODE) ;
 # InnoDB:Error child table shows records which is incorrect - UPADTE on Fix
-SELECT * FROM t2 WHERE MATCH (a2,b2) AGAINST ('tutorial (+mysql -VÐƷWİ)' IN BOOLEAN MODE) ;
+SELECT id2 FROM t2 WHERE MATCH (a2,b2) AGAINST ('tutorial (+mysql -VÐƷWİ)' IN BOOLEAN MODE) ;
 
 # it shows updated record
-SELECT * FROM t1 WHERE MATCH (a1,b1) AGAINST ('+update +cascade' IN BOOLEAN MODE) ;
+SELECT id1 FROM t1 WHERE MATCH (a1,b1) AGAINST ('+update +cascade' IN BOOLEAN MODE) ;
 # InnoDB:Error child table does not show the expected record
-SELECT * FROM t2 WHERE MATCH (a2,b2) AGAINST ('+update +cascade' IN BOOLEAN MODE) ;
-SELECT * FROM t2 WHERE a2 LIKE '%UPDATE CASCADE%';
+SELECT id2 FROM t2 WHERE MATCH (a2,b2) AGAINST ('+update +cascade' IN BOOLEAN MODE) ;
+SELECT id2 FROM t2 WHERE a2 LIKE '%UPDATE CASCADE%';
 
 DROP TABLE t2 , t1;
 

=== modified file 'mysql-test/suite/rpl/r/rpl_parallel_ddl.result'
--- a/mysql-test/suite/rpl/r/rpl_parallel_ddl.result	2011-11-19 08:08:03 +0000
+++ b/mysql-test/suite/rpl/r/rpl_parallel_ddl.result	2011-11-21 19:50:04 +0000
@@ -1005,747 +1005,5 @@ t7.frm
 t8.MYD
 t8.MYI
 t8.frm
-"database d32:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d31:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t4.MYD
-t4.MYI
-t4.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d30:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d29:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d28:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d27:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d26:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d25:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d24:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d23:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d22:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d21:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d20:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d19:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d18:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d17:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d16:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d15:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d14:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d13:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d12:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d11:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d10:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d9:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d8:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d7:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d6:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d5:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d4:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d3:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d2:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
-"database d1:"
-db.opt
-t1.MYD
-t1.MYI
-t1.frm
-t2.MYD
-t2.MYI
-t2.frm
-t3.MYD
-t3.MYI
-t3.frm
-t4.MYD
-t4.MYI
-t4.frm
-t5.MYD
-t5.MYI
-t5.frm
-t6.MYD
-t6.MYI
-t6.frm
-t7.MYD
-t7.MYI
-t7.frm
-t8.MYD
-t8.MYI
-t8.frm
 set @@global.slave_parallel_workers= @save.slave_parallel_workers;
 include/rpl_end.inc

=== added file 'mysql-test/suite/rpl/r/rpl_parallel_load_data.result'
--- a/mysql-test/suite/rpl/r/rpl_parallel_load_data.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/r/rpl_parallel_load_data.result	2011-11-21 17:46:02 +0000
@@ -0,0 +1,22 @@
+include/master-slave.inc
+[connection master]
+include/stop_slave.inc
+SET @save_slave_parallel_workers= @@slave_parallel_workers;
+SET @@global.slave_parallel_workers=4;
+include/start_slave.inc
+DROP DATABASE IF EXISTS db1;
+DROP DATABASE IF EXISTS db2;
+CREATE DATABASE db1;
+CREATE DATABASE db2;
+CREATE TABLE db1.tb1 (f1 int) ENGINE=MyISAM;
+CREATE TABLE db2.tb2 (f1 int) ENGINE=InnoDB;
+CREATE TRIGGER db1.tr AFTER INSERT ON tb1 FOR EACH ROW INSERT INTO db2.tb2
+(f1) VALUES (new.f1);
+LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/load_bug12982188.txt' INTO TABLE db1.tb1;
+SELECT COUNT(*) FROM db2.tb2;
+COUNT(*)
+10
+DROP DATABASE db1;
+DROP DATABASE db2;
+include/stop_slave.inc
+SET @@global.slave_parallel_workers= @save_slave_parallel_workers;

=== modified file 'mysql-test/suite/rpl/t/rpl_parallel_ddl.test'
--- a/mysql-test/suite/rpl/t/rpl_parallel_ddl.test	2011-10-13 12:12:19 +0000
+++ b/mysql-test/suite/rpl/t/rpl_parallel_ddl.test	2011-11-21 19:50:04 +0000
@@ -252,25 +252,74 @@ while ($n)
 
 connection master;
 
+let $n= $dbs;
 --disable_query_log
 
-let $n= $dbs;
+# Hunting after bug#13033076: to drop db:s on master concurrently as
+# well through 4 connections.
+
+--connect(con1, localhost, root,,)
+--connect(con2, localhost, root,,)
+--connect(con3, localhost, root,,)
+--connect(con4, localhost, root,,)
+
+let $reap_not_done= 0;
+
 while ($n)
 {
-  # DEBUG (to remove) bug#13033076
-  --connection slave
-  --echo "database d$n:"
-  --list_files $MYSQLD_DATADIR/d$n
-
-  --connection master
-  eval drop database d$n;
-  sync_slave_with_master;
+  --connection con1
+  if ($reap_not_done)
+  {
+    --reap
+  }
+  --send_eval drop database d$n;
+  dec $n;
+
+  --connection con2
+  if ($reap_not_done)
+  {
+    --reap
+  }
+  --send_eval drop database d$n;
   dec $n;
+
+  --connection con3
+  if ($reap_not_done)
+  {
+    --reap
+  }
+  --send_eval drop database d$n;
+  dec $n;
+
+  --connection con4
+  if ($reap_not_done)
+  {
+    --reap
+  }
+  --send_eval drop database d$n;
+  dec $n;
+  let $reap_not_done= 1;
 }
 
 --enable_query_log
 
---connection master
+  --connection con1
+  --reap
+  --disconnect con1
+ 
+  --connection con2
+  --reap
+  --disconnect con2
+  
+  --connection con3
+  --reap
+  --disconnect con3
+  
+  --connection con4
+  --reap
+  --disconnect con4
+
+connection master;
 sync_slave_with_master;
 
 set @@global.slave_parallel_workers= @save.slave_parallel_workers;

=== added file 'mysql-test/suite/rpl/t/rpl_parallel_load_data-slave.opt'
--- a/mysql-test/suite/rpl/t/rpl_parallel_load_data-slave.opt	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_parallel_load_data-slave.opt	2011-11-21 17:46:02 +0000
@@ -0,0 +1 @@
+--slave-transaction-retries=0

=== added file 'mysql-test/suite/rpl/t/rpl_parallel_load_data.test'
--- a/mysql-test/suite/rpl/t/rpl_parallel_load_data.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_parallel_load_data.test	2011-11-21 17:46:02 +0000
@@ -0,0 +1,53 @@
+#
+# Bug#12982188 MTS: SBR ABORTS WITH ERROR 1742 ON LOAD DATA WITH TRIGGER MYISAM TO INNODB
+#
+
+--source include/master-slave.inc
+--source include/have_binlog_format_statement.inc
+
+let $max_workers= 4;
+
+--write_file $MYSQLTEST_VARDIR/load_bug12982188.txt
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+EOF
+
+--connection slave
+--source include/stop_slave.inc
+SET @save_slave_parallel_workers= @@slave_parallel_workers;
+eval SET @@global.slave_parallel_workers=$max_workers;
+--source include/start_slave.inc
+
+--connection master
+--disable_warnings
+DROP DATABASE IF EXISTS db1;
+DROP DATABASE IF EXISTS db2;
+--enable_warnings
+CREATE DATABASE db1;
+CREATE DATABASE db2;
+CREATE TABLE db1.tb1 (f1 int) ENGINE=MyISAM;
+CREATE TABLE db2.tb2 (f1 int) ENGINE=InnoDB;
+CREATE TRIGGER db1.tr AFTER INSERT ON tb1 FOR EACH ROW INSERT INTO db2.tb2
+(f1) VALUES (new.f1);
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval LOAD DATA LOCAL INFILE '$MYSQLTEST_VARDIR/load_bug12982188.txt' INTO TABLE db1.tb1;
+--sync_slave_with_master
+SELECT COUNT(*) FROM db2.tb2;
+
+# cleanup
+--connection master
+DROP DATABASE db1;
+DROP DATABASE db2;
+--remove_file $MYSQLTEST_VARDIR/load_bug12982188.txt
+
+--sync_slave_with_master
+--source include/stop_slave.inc
+SET @@global.slave_parallel_workers= @save_slave_parallel_workers;

=== 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/log_event.cc'
--- a/sql/log_event.cc	2011-11-15 14:40:04 +0000
+++ b/sql/log_event.cc	2011-11-21 17:46:02 +0000
@@ -1620,7 +1620,7 @@ void Log_event::print_header(IO_CACHE* f
     my_off_t i;
 
     /* Header len * 4 >= header len * (2 chars + space + extra space) */
-    char *h, hex_string[LOG_EVENT_MINIMAL_HEADER_LEN*4]= {0};
+    char *h, hex_string[49]= {0};
     char *c, char_string[16+1]= {0};
 
     /* Pretty-print event common header if header is exactly 19 bytes */
@@ -1649,7 +1649,7 @@ void Log_event::print_header(IO_CACHE* f
 	 i < size;
 	 i++, ptr++)
     {
-      my_snprintf(h, 4, "%02x ", *ptr);
+      my_snprintf(h, 4, (i % 16 <= 7) ? "%02x " : " %02x", *ptr);
       h += 3;
 
       *c++= my_isalnum(&my_charset_bin, *ptr) ? *ptr : '.';
@@ -1675,13 +1675,15 @@ void Log_event::print_header(IO_CACHE* f
 	c= char_string;
 	h= hex_string;
       }
-      else if (i % 8 == 7) *h++ = ' ';
     }
     *c= '\0';
-
+    DBUG_ASSERT(hex_string[48] == 0);
+    
     if (hex_string[0])
     {
       char emit_buf[256];
+      // Right-pad hex_string with spaces, up to 48 characters.
+      memset(h, ' ', (sizeof(hex_string) -1) - (h - hex_string));
       size_t const bytes_written=
         my_snprintf(emit_buf, sizeof(emit_buf),
                     "# %8.8lx %-48.48s |%s|\n",
@@ -2365,12 +2367,48 @@ Log_event::continue_group(Relay_log_info
   return Log_event::do_shall_skip(rli);
 }
 
-
-bool Log_event::contains_partition_info()
+/**
+   @param end_group_sets_max_dbs  when true the group terminal event 
+                          can carry partition info, see a note below.
+   @return true  in cases the current event
+                 carries partition data,
+           false otherwise
+
+   @note Some events combination may force to adjust partition info.
+         In particular BEGIN, BEGIN_LOAD_QUERY_EVENT, COMMIT
+         where none of the events holds partitioning data
+         causes the sequential applying of the group through
+         assigning OVER_MAX_DBS_IN_EVENT_MTS to mts_accessed_dbs
+         of COMMIT query event.
+*/
+bool Log_event::contains_partition_info(bool end_group_sets_max_dbs)
 {
-  return (get_type_code() == TABLE_MAP_EVENT) ||
-    (get_type_code() == QUERY_EVENT && !ends_group() && !starts_group()) ||
-    (get_type_code() == EXECUTE_LOAD_QUERY_EVENT);
+  bool res;
+
+  switch (get_type_code()) {
+  case TABLE_MAP_EVENT:
+  case EXECUTE_LOAD_QUERY_EVENT:
+    res= true;
+
+    break;
+    
+  case QUERY_EVENT:
+    if (ends_group() && end_group_sets_max_dbs)
+    {
+      res= true;
+      static_cast<Query_log_event*>(this)->mts_accessed_dbs=
+        OVER_MAX_DBS_IN_EVENT_MTS;
+    }
+    else
+      res= (!ends_group() && !starts_group()) ? true : false;
+
+    break;
+
+  default:
+    res= false;
+  }
+
+  return res;
 }
 
 /**
@@ -2457,27 +2495,44 @@ Slave_worker *Log_event::get_slave_worke
     {
       Log_event *ptr_curr_ev= this;
       // B-event is appended to the Deferred Array associated with GCAP
-      insert_dynamic(&rli->curr_group_da,
-                     (uchar*) &ptr_curr_ev);
+      insert_dynamic(&rli->curr_group_da, (uchar*) &ptr_curr_ev);
 
       DBUG_ASSERT(rli->curr_group_da.elements == 1);
 
       // mark the current group as started with explicit B-event
       rli->curr_group_seen_begin= TRUE;
-
+      // pessimistic preparation of no db:s will be found in events
+      rli->mts_end_group_sets_max_dbs= true;
       return ret_worker;
     } 
   }
 
   // mini-group representative
 
-  if (contains_partition_info())
+  if (contains_partition_info(rli->mts_end_group_sets_max_dbs))
   {
     int i= 0;
     num_dbs= mts_number_dbs();
     List_iterator<char> it(*get_mts_dbs(&rli->mts_coor_mem_root));
     it++;
 
+    /*
+      Bug 12982188 - MTS: SBR ABORTS WITH ERROR 1742 ON LOAD DATA
+      Logging on master can create a group with no events holding
+      the partition info.
+      The following assert proves there's the only reason
+      for such group.
+    */
+    DBUG_ASSERT(!ends_group() ||
+                (rli->mts_end_group_sets_max_dbs &&
+                 rli->curr_group_da.elements == 2 &&
+                 ((*(Log_event **)
+                   dynamic_array_ptr(&rli->curr_group_da,
+                                     rli->curr_group_da.elements - 1))-> 
+                  get_type_code() == BEGIN_LOAD_QUERY_EVENT)));
+
+    // partioning info is found which drops the flag
+    rli->mts_end_group_sets_max_dbs= false;
     ret_worker= rli->last_assigned_worker;
     if (num_dbs == OVER_MAX_DBS_IN_EVENT_MTS)
     {
@@ -2780,7 +2835,16 @@ int Log_event::apply_event(Relay_log_inf
 
   DBUG_ASSERT(actual_exec_mode == EVENT_EXEC_PARALLEL);
   DBUG_ASSERT(!(rli->curr_group_seen_begin && ends_group()) ||
-              rli->last_assigned_worker);
+              rli->last_assigned_worker ||
+              /*
+                Begin_load_query can be logged w/o db info and within
+                Begin/Commit. That's a pattern forcing sequential
+                applying of LOAD-DATA.
+              */
+              (*(Log_event **)
+               dynamic_array_ptr(&rli->curr_group_da,
+                                 rli->curr_group_da.elements - 1))-> 
+              get_type_code() == BEGIN_LOAD_QUERY_EVENT);
 
   worker= NULL;
   rli->mts_group_status= Relay_log_info::MTS_IN_GROUP;
@@ -3985,10 +4049,10 @@ void Query_log_event::print(FILE* file,
 */
 void Query_log_event::attach_temp_tables_worker(THD *thd)
 {
-  if (!is_mts_worker(thd) || !contains_partition_info())
+  if (!is_mts_worker(thd) || (ends_group() || starts_group()))
     return;
   
-  // in over max-db:s case just one special parttion is locked
+  // in over max-db:s case just one special partition is locked
   int parts= ((mts_accessed_dbs == OVER_MAX_DBS_IN_EVENT_MTS) ?
               1 : mts_accessed_dbs);
 

=== modified file 'sql/log_event.h'
--- a/sql/log_event.h	2011-11-15 13:04:11 +0000
+++ b/sql/log_event.h	2011-11-21 17:46:02 +0000
@@ -1405,7 +1405,7 @@ public:
   /**
      @return TRUE  if events carries partitioning data (database names).
   */
-  bool contains_partition_info();
+  bool contains_partition_info(bool);
 
   /*
     @return  the number of updated by the event databases.

=== modified file 'sql/rpl_rli.h'
--- a/sql/rpl_rli.h	2011-11-15 13:04:11 +0000
+++ b/sql/rpl_rli.h	2011-11-21 17:46:02 +0000
@@ -448,6 +448,7 @@ public:
   DYNAMIC_ARRAY curr_group_da;  // deferred array to hold partition-info-free events
   bool curr_group_seen_begin;   // current group started with B-event or not
   bool curr_group_isolated;     // current group requires execution in isolation
+  bool mts_end_group_sets_max_dbs; // flag indicates if partitioning info is discovered
   volatile ulong mts_wq_underrun_w_id;  // Id of a Worker whose queue is getting empty
   /* 
      Ongoing excessive overrun counter to correspond to number of events that

=== modified file 'sql/rpl_rli_pdb.cc'
--- a/sql/rpl_rli_pdb.cc	2011-11-10 06:53:27 +0000
+++ b/sql/rpl_rli_pdb.cc	2011-11-21 17:46:02 +0000
@@ -129,6 +129,7 @@ int Slave_worker::init_worker(Relay_log_
   workers= c_rli->workers; // shallow copying is sufficient
   wq_size_waits_cnt= groups_done= events_done= curr_jobs= 0;
   usage_partition= 0;
+  end_group_sets_max_dbs= false;
   last_group_done_index= c_rli->gaq->size; // out of range
 
   jobs.avail= 0;
@@ -1686,11 +1687,13 @@ int slave_worker_exec_job(Slave_worker *
 
   if (ev->starts_group())
   {
+    worker->end_group_sets_max_dbs= true;
     worker->curr_group_seen_begin= TRUE; // The current group is started with B-event
   } 
   else
   {
-    if ((part_event= ev->contains_partition_info()))
+    if ((part_event=
+         ev->contains_partition_info(worker->end_group_sets_max_dbs)))
     {
       uint num_dbs=  ev->mts_number_dbs();
       DYNAMIC_ARRAY *ep= &worker->curr_group_exec_parts;
@@ -1720,6 +1723,7 @@ int slave_worker_exec_job(Slave_worker *
           insert_dynamic(ep, (uchar*) &ev->mts_assigned_partitions[k]);
         }
       }
+      worker->end_group_sets_max_dbs= false;
     }
   }
   worker->set_future_event_relay_log_pos(ev->future_event_relay_log_pos);

=== modified file 'sql/rpl_rli_pdb.h'
--- a/sql/rpl_rli_pdb.h	2011-08-19 13:04:28 +0000
+++ b/sql/rpl_rli_pdb.h	2011-11-21 17:46:02 +0000
@@ -312,6 +312,8 @@ public:
   volatile int curr_jobs; // number of active  assignments
   // number of partitions allocated to the worker at point in time
   long usage_partition;
+  // symmetric to rli->mts_end_group_sets_max_dbs
+  bool end_group_sets_max_dbs;
 
   volatile bool relay_log_change_notified; // Coord sets and resets, W can read
   volatile bool checkpoint_notified; // Coord sets and resets, W can read

=== modified file 'sql/set_var.cc'
--- a/sql/set_var.cc	2011-11-09 01:38:37 +0000
+++ b/sql/set_var.cc	2011-11-21 20:15:58 +0000
@@ -530,6 +530,11 @@ sys_var *intern_find_sys_var(const char
   */
   var= (sys_var*) my_hash_search(&system_variable_hash,
                               (uchar*) str, length ? length : strlen(str));
+
+  /* Don't show non-visible variables. */
+  if (var->not_visible())
+    return NULL;
+
   return var;
 }
 

=== modified file 'sql/sql_insert.cc'
--- a/sql/sql_insert.cc	2011-11-10 11:28:09 +0000
+++ b/sql/sql_insert.cc	2011-11-21 11:37:49 +0000
@@ -3766,7 +3766,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.
@@ -3790,7 +3790,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))
       {
@@ -3829,7 +3829,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
@@ -3924,7 +3924,7 @@ select_create::prepare(List<Item> &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-11 09:25:18 +0000
+++ b/sql/sql_table.cc	2011-11-21 17:09:08 +0000
@@ -4762,6 +4762,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();
@@ -4810,6 +4812,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
@@ -6567,6 +6572,15 @@ bool mysql_alter_table(THD *thd,char *ne
           needed_inplace_flags|= HA_INPLACE_ADD_UNIQUE_INDEX_NO_READ_WRITE;
         }
       }
+      else if (key->flags & HA_FULLTEXT)
+      {
+        /*
+          Fulltext keys should be treated as primary keys as InnoDB might
+          need to rebuild the primary index.
+        */
+        needed_inplace_with_read_flags|= HA_INPLACE_ADD_PK_INDEX_NO_WRITE;
+        needed_inplace_flags|= HA_INPLACE_ADD_PK_INDEX_NO_READ_WRITE;
+      }
       else
       {
         /* Non-unique key. */

=== modified file 'storage/innobase/fts/fts0que.c'
--- a/storage/innobase/fts/fts0que.c	2011-11-17 14:26:59 +0000
+++ b/storage/innobase/fts/fts0que.c	2011-11-21 17:09:08 +0000
@@ -2917,7 +2917,7 @@ fts_query_calculate_idf(
 			}
 		}
 
-		printf("'%s' -> %lu/%lu %6.5lf\n",
+		fprintf(stderr,"'%s' -> %lu/%lu %6.5lf\n",
 		       word_freq->word,
 		       query->total_docs, word_freq->doc_count,
 		       word_freq->idf);

=== modified file 'storage/innobase/row/row0ftsort.c'
--- a/storage/innobase/row/row0ftsort.c	2011-11-17 14:26:59 +0000
+++ b/storage/innobase/row/row0ftsort.c	2011-11-21 17:09:08 +0000
@@ -540,6 +540,7 @@ fts_parallel_tokenization(
 	dtype_t			word_dtype;
 	dict_field_t*		idx_field;
 	fts_tokenize_ctx_t	t_ctx;
+	ulint			retried = 0;
 	ut_ad(psort_info);
 
 	ut_ad(psort_info);
@@ -574,9 +575,13 @@ fts_parallel_tokenization(
 	processed = TRUE;
 loop:
 	while (doc_item) {
+		dfield_t*	dfield = doc_item->field;
+
 		last_doc_id = doc_item->doc_id;
 
-		if (!(doc_item->field->data)) {
+		if (!(dfield->data)
+		    || dfield_get_len(dfield) == UNIV_SQL_NULL) {
+			num_doc_processed++;
 			doc_item = UT_LIST_GET_NEXT(doc_list, doc_item);
 
 			/* Always remember the last doc_item we processed */
@@ -590,10 +595,10 @@ loop:
 		strings in the doc_item, otherwise continue processing last
 		item */
 		if (processed) {
-			dfield_t*	dfield = doc_item->field;
 			byte*		data;
 			ulint		data_len;
 
+			dfield = doc_item->field;
 			data = dfield_get_data(dfield);
 			data_len = dfield_get_len(dfield);
 
@@ -625,6 +630,7 @@ loop:
 		/* Current sort buffer full, need to recycle */
 		if (!processed) {
 			ut_ad(t_ctx.processed_len < doc.text.f_len);
+			ut_ad(t_ctx.rows_added[t_ctx.buf_used]);
 			break;
 		}
 
@@ -680,9 +686,21 @@ loop:
 	}
 
 	/* Parent done scanning, and if finish processing all the docs, exit */
-	if (psort_info->state == FTS_PARENT_COMPLETE
-	    && num_doc_processed >= UT_LIST_GET_LEN(psort_info->fts_doc_list)) {
-		goto exit;
+	if (psort_info->state == FTS_PARENT_COMPLETE) {
+	    	if (num_doc_processed >= UT_LIST_GET_LEN(
+			psort_info->fts_doc_list)) {
+			goto exit;
+		} else if (retried > 10000) {
+			ut_ad(!doc_item);
+			/* retied too many times and cannot get new record */
+			fprintf(stderr, "InnoDB: FTS parallel sort processed "
+					"%lu records, the sort queue has "
+					"%lu records. But sort cannot get "
+					"the next records", num_doc_processed,
+					UT_LIST_GET_LEN(
+						psort_info->fts_doc_list));
+			goto exit;
+		}
 	}
 
 	if (doc_item) {
@@ -697,6 +715,9 @@ loop:
 
 	if (doc_item) {
 		 prev_doc_item = doc_item;
+		retried = 0;
+	} else if (psort_info->state == FTS_PARENT_COMPLETE) {
+		retried++;
 	}
 
 	goto loop;

=== modified file 'storage/innobase/row/row0merge.c'
--- a/storage/innobase/row/row0merge.c	2011-11-17 14:26:59 +0000
+++ b/storage/innobase/row/row0merge.c	2011-11-21 17:09:08 +0000
@@ -1508,7 +1508,7 @@ func_exit:
 		}
 wait_again:
 		os_event_wait_time_low(fts_parallel_sort_event,
-				       60000000, sig_count);
+				       10000000, sig_count);
 
 		for (i = 0; i < fts_sort_pll_degree; i++) {
 			if (psort_info[i].child_status != FTS_CHILD_COMPLETE) {

=== modified file 'storage/innobase/srv/srv0start.c'
--- a/storage/innobase/srv/srv0start.c	2011-11-20 21:00:25 +0000
+++ b/storage/innobase/srv/srv0start.c	2011-11-21 17:51:51 +0000
@@ -610,7 +610,7 @@ open_or_create_log_file(
 		ut_print_timestamp(stderr);
 
 		fprintf(stderr,
-			"  InnoDB: Log file %s did not exist:"
+			" InnoDB: Log file %s did not exist:"
 			" new to be created\n",
 			name);
 		if (log_file_has_been_opened) {
@@ -927,7 +927,7 @@ skip_size_check:
 			if (i > 0) {
 				ut_print_timestamp(stderr);
 				fprintf(stderr,
-					"  InnoDB: Data file %s did not"
+					" InnoDB: Data file %s did not"
 					" exist: new to be created\n",
 					name);
 			} else {
@@ -941,7 +941,7 @@ skip_size_check:
 
 			ut_print_timestamp(stderr);
 			fprintf(stderr,
-				"  InnoDB: Setting file %s size to %lu MB\n",
+				" InnoDB: Setting file %s size to %lu MB\n",
 				name,
 				(ulong) (srv_data_file_sizes[i]
 					 >> (20 - UNIV_PAGE_SIZE_SHIFT)));
@@ -1020,22 +1020,22 @@ srv_undo_tablespace_create(
 		/* We created the data file and now write it full of zeros */
 
 		ut_print_timestamp(stderr);
-		fprintf(stderr, "  InnoDB: Data file %s did not"
+		fprintf(stderr, " InnoDB: Data file %s did not"
 				" exist: new to be created\n", name);
 
 		ut_print_timestamp(stderr);
-		fprintf(stderr, "  InnoDB: Setting file %s size to %lu MB\n",
+		fprintf(stderr, " InnoDB: Setting file %s size to %lu MB\n",
 				name, size >> (20 - UNIV_PAGE_SIZE_SHIFT));
 
 		ut_print_timestamp(stderr);
-		fprintf(stderr, "  InnoDB: Database physically writes the"
+		fprintf(stderr, " InnoDB: Database physically writes the"
 				" file full: wait...\n");
 
 		ret = os_file_set_size(name, fh, size << UNIV_PAGE_SIZE_SHIFT);
 
 		if (!ret) {
 			ut_print_timestamp(stderr);
-			fprintf(stderr, "  InnoDB: Error in creating %s:"
+			fprintf(stderr, " InnoDB: Error in creating %s:"
 					" probably out of disk space\n", name);
 
 			err = DB_ERROR;
@@ -2231,7 +2231,7 @@ innobase_start_or_create_for_mysql(void)
 			== ULINT_UNDEFINED)) {
 
 			ut_print_timestamp(stderr);
-			fprintf(stderr, "  InnoDB: "
+			fprintf(stderr, " InnoDB: "
 				"Waiting for the background threads to "
 				"start\n");
 			os_thread_sleep(1000000);
@@ -2500,7 +2500,7 @@ innobase_shutdown_for_mysql(void)
 		if (srv_is_being_started) {
 			ut_print_timestamp(stderr);
 			fprintf(stderr,
-				"  InnoDB: Warning: shutting down"
+				" InnoDB: Warning: shutting down"
 				" a not properly started\n"
 				"InnoDB: or created database!\n");
 		}
@@ -2668,7 +2668,7 @@ innobase_shutdown_for_mysql(void)
 	if (srv_print_verbose_log) {
 		ut_print_timestamp(stderr);
 		fprintf(stderr,
-			"  InnoDB: Shutdown completed;"
+			" InnoDB: Shutdown completed;"
 			" log sequence number " LSN_PF "\n",
 			srv_shutdown_lsn);
 	}

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk-wl5461 branch (chris.powers:3443 to 3445) Christopher Powers22 Nov