diff options
author | Sachin <sachin.setiya@mariadb.com> | 2018-12-19 16:33:00 +0530 |
---|---|---|
committer | Sachin <sachin.setiya@mariadb.com> | 2018-12-19 19:23:25 +0530 |
commit | 7d7a422b58eae7cd473e99c4dbcdff22d1b306ca (patch) | |
tree | c8ae17e57fa3d88810d5593d9754d6e59ecdd956 /sql/sql_parse.cc | |
parent | 7e606a2d5ca59dbd901b7c8909214a0fc12fbadd (diff) | |
download | mariadb-git-bb-10.0-17720.tar.gz |
MDEV-17720 slave_ddl_exec_mode=IDEMPOTENT does not handle DROP DATABASEbb-10.0-17720
Relevant if exists flag are added for create database and drop database.
Diffstat (limited to 'sql/sql_parse.cc')
-rw-r--r-- | sql/sql_parse.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index a9849c7248d..5ca22f0dedc 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -3884,6 +3884,9 @@ end_with_restore_list: my_message(ER_SLAVE_IGNORED_TABLE, ER(ER_SLAVE_IGNORED_TABLE), MYF(0)); break; } + if (slave_ddl_exec_mode_options == SLAVE_EXEC_MODE_IDEMPOTENT && + !(lex->create_info.options & HA_LEX_CREATE_IF_NOT_EXISTS)) + create_info.options|= HA_LEX_CREATE_IF_NOT_EXISTS; } #endif if (check_access(thd, CREATE_ACL, lex->name.str, NULL, NULL, 1, 0)) @@ -3915,6 +3918,9 @@ end_with_restore_list: my_message(ER_SLAVE_IGNORED_TABLE, ER(ER_SLAVE_IGNORED_TABLE), MYF(0)); break; } + if (!thd->slave_expected_error && + slave_ddl_exec_mode_options == SLAVE_EXEC_MODE_IDEMPOTENT) + lex->check_exists= 1; } #endif if (check_access(thd, DROP_ACL, lex->name.str, NULL, NULL, 1, 0)) |