1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-24 11:21:21 +03:00

MDEV-8617: Multiple galera tests failures with --ps-protocol

In galera cluster, when myisam replication is enabled
(wsrep_replicate_myisam=ON), DML statements are replicated
in open_tables(). However, in case of prepared statements,
for an INSERT, open_tables() gets invoked twice. Once for
COM_STMT_PREPARE (to validate and prepare INSERT) and later
for COM_STMT_EXECUTE. As a result, the command gets replicated
twice. Same happens for REPLACE, UPDATE and DELETE commands.
Fixed by adding a check to not replicate during 'prepare'
phase. Also changed the order of conditions to make it more
efficient. Lastly, in order to support wsrep_dirty_reads, made
changes to allow COM_STMT_XXX commands to continue past initial
check even when wsrep is not ready.
This commit is contained in:
Nirbhay Choubey
2015-08-14 00:01:18 -04:00
parent e998dffde7
commit c18e0dab8a
3 changed files with 23 additions and 14 deletions

View File

@@ -862,6 +862,11 @@ bool do_command(THD *thd)
command != COM_SLEEP &&
command != COM_STATISTICS &&
command != COM_TIME &&
command != COM_STMT_PREPARE &&
command != COM_STMT_SEND_LONG_DATA &&
command != COM_STMT_EXECUTE &&
command != COM_STMT_RESET &&
command != COM_STMT_CLOSE &&
command != COM_END
) {
my_message(ER_UNKNOWN_COM_ERROR,