1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-30653 : With wsrep_mode=REPLICATE_ARIA only part of mixed-engine transactions is replicated

Replication of non-transactional engines is experimental and
uses TOI. This naturally means that if there is open transaction
with transactional engine it's changes will be rolled back.

Fixed by adding error message if non-transactional engine
is part of multi-engine transaction with warning.

Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
This commit is contained in:
Jan Lindström
2024-06-21 13:07:35 +03:00
committed by Julius Goryavsky
parent b38edd09ff
commit b3be3c2157
6 changed files with 207 additions and 13 deletions

View File

@@ -895,6 +895,18 @@ void init_update_queries(void)
sql_command_flags[SQLCOM_DROP_TABLE]|= CF_WSREP_MAY_IGNORE_ERRORS;
sql_command_flags[SQLCOM_DROP_INDEX]|= CF_WSREP_MAY_IGNORE_ERRORS;
sql_command_flags[SQLCOM_ALTER_TABLE]|= CF_WSREP_MAY_IGNORE_ERRORS;
/*
Basic DML-statements that create writeset.
*/
sql_command_flags[SQLCOM_INSERT]|= CF_WSREP_BASIC_DML;
sql_command_flags[SQLCOM_INSERT_SELECT]|= CF_WSREP_BASIC_DML;
sql_command_flags[SQLCOM_REPLACE]|= CF_WSREP_BASIC_DML;
sql_command_flags[SQLCOM_REPLACE_SELECT]|= CF_WSREP_BASIC_DML;
sql_command_flags[SQLCOM_UPDATE]|= CF_WSREP_BASIC_DML;
sql_command_flags[SQLCOM_UPDATE_MULTI]|= CF_WSREP_BASIC_DML;
sql_command_flags[SQLCOM_LOAD]|= CF_WSREP_BASIC_DML;
sql_command_flags[SQLCOM_DELETE]|= CF_WSREP_BASIC_DML;
sql_command_flags[SQLCOM_DELETE_MULTI]|= CF_WSREP_BASIC_DML;
#endif /* WITH_WSREP */
}