mirror of
https://github.com/MariaDB/server.git
synced 2025-01-24 07:44:22 +01:00
9d6811502e
'CREATE TABLE IF NOT EXISTS ... SELECT' behaviour BUG#55474, BUG#55499, BUG#55598, BUG#55616 and BUG#55777 are fixed in this patch too. This is the 5.1 part. It implements: - if the table exists, binlog two events: CREATE TABLE IF NOT EXISTS and INSERT ... SELECT - Insert nothing and binlog nothing on master if the existing object is a view. It only generates a warning that table already exists. mysql-test/r/trigger.result: Ather this patch, 'CREATE TABLE IF NOT EXISTS ... SELECT' will not insert anything if the creating table already exists and is a view. sql/sql_class.h: Declare virtual function write_to_binlog() for select_insert. It's used to binlog 'create select' sql/sql_insert.cc: Implement write_to_binlog(); Use write_to_binlog() instead of binlog_query() to binlog the statement. if the table exists, binlog two events: CREATE TABLE IF NOT EXISTS and INSERT ... SELECT sql/sql_lex.h: Declare create_select_start_with_brace and create_select_pos. They are helpful for binlogging 'create select' sql/sql_parse.cc: Do nothing on master if the existing object is a view. sql/sql_yacc.yy: Record the relative postion of 'SELECT' in the 'CREATE ...SELECT' statement. Record whether there is a '(' before the 'SELECT' clause. |
||
---|---|---|
.. | ||
rpl_auto_increment.test | ||
rpl_auto_increment_insert_view.test | ||
rpl_auto_increment_invoke_trigger.test | ||
rpl_autoinc_func_invokes_trigger.test | ||
rpl_blackhole.test | ||
rpl_charset.test | ||
rpl_commit_after_flush.test | ||
rpl_conflicts.test | ||
rpl_ddl.test | ||
rpl_deadlock.test | ||
rpl_delete_no_where.test | ||
rpl_EE_err.test | ||
rpl_extraMaster_Col.test | ||
rpl_extraSlave_Col.test | ||
rpl_failed_optimize.test | ||
rpl_flsh_tbls.test | ||
rpl_foreign_key.test | ||
rpl_get_master_version_and_clock.test | ||
rpl_insert_delayed.test | ||
rpl_insert_id.test | ||
rpl_insert_id_pk.test | ||
rpl_insert_ignore.test | ||
rpl_loaddata.test | ||
rpl_loadfile.test | ||
rpl_log.test | ||
rpl_max_relay_size.test | ||
rpl_mixing_engines.inc | ||
rpl_mixing_engines.test | ||
rpl_multi_query.test | ||
rpl_multi_update.test | ||
rpl_multi_update2.test | ||
rpl_multi_update3.test | ||
rpl_ndb_2multi_basic.test | ||
rpl_ndb_2multi_eng.test | ||
rpl_ndb_apply_status.test | ||
rpl_not_null.test | ||
rpl_partition.test | ||
rpl_record_compare.test | ||
rpl_relayrotate.test | ||
rpl_reset_slave.test | ||
rpl_row_001.test | ||
rpl_row_basic.test | ||
rpl_row_blob.test | ||
rpl_row_delayed_ins.test | ||
rpl_row_func003.test | ||
rpl_row_sp002.test | ||
rpl_row_sp003.test | ||
rpl_row_sp006.test | ||
rpl_row_sp007.test | ||
rpl_row_tabledefs.test | ||
rpl_row_UUID.test | ||
rpl_set_null.test | ||
rpl_stm_000001.test | ||
rpl_stm_create_if_not_exists.test | ||
rpl_stm_EE_err2.test | ||
rpl_sv_relay_space.test | ||
rpl_tmp_table_and_DDL.test | ||
rpl_trig004.test | ||
rpl_truncate.test | ||
rpl_truncate_helper.test |