Commit eb26e20d authored by mkaruza's avatar mkaruza Committed by Jan Lindström

MDEV-22421 Galera assertion !wsrep_has_changes(thd) || (thd->lex->sql_command...

MDEV-22421 Galera assertion !wsrep_has_changes(thd) || (thd->lex->sql_command == SQLCOM_CREATE_TABLE && !thd->is_current_stmt_binlog_format_row())

Updates to transaction registry table shouldn't be replicated in
cluster so there is no need to append wsrep keys.
Reviewed-by: default avatarJan Lindström <jan.lindstrom@mariadb.com>
parent e7855119
connection node_2;
connection node_1;
SET @@local.sql_mode='no_field_options';
CREATE TABLE t1 (f1 INT, ROW_START BIGINT UNSIGNED AS ROW START INVISIBLE, ROW_END BIGINT UNSIGNED AS ROW END INVISIBLE, PERIOD FOR SYSTEM_TIME(ROW_START, ROW_END)) WITH SYSTEM VERSIONING ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
UPDATE t1 SET f1 = 1 WHERE f1 = 1;
DROP TABLE t1;
#
# Tables with system versioning should not append keys to wsrep.
#
--source include/galera_cluster.inc
--source include/have_innodb.inc
SET @@local.sql_mode='no_field_options';
CREATE TABLE t1 (f1 INT, ROW_START BIGINT UNSIGNED AS ROW START INVISIBLE, ROW_END BIGINT UNSIGNED AS ROW END INVISIBLE, PERIOD FOR SYSTEM_TIME(ROW_START, ROW_END)) WITH SYSTEM VERSIONING ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
UPDATE t1 SET f1 = 1 WHERE f1 = 1;
DROP TABLE t1;
......@@ -1558,13 +1558,27 @@ int ha_commit_trans(THD *thd, bool all)
goto err;
}
DBUG_ASSERT(trx_start_id);
#ifdef WITH_WSREP
bool saved_wsrep_on= thd->variables.wsrep_on;
thd->variables.wsrep_on= false;
#endif
TR_table trt(thd, true);
if (trt.update(trx_start_id, trx_end_id))
#ifdef WITH_WSREP
{
thd->variables.wsrep_on= saved_wsrep_on;
#endif
goto err;
#ifdef WITH_WSREP
}
#endif
// Here, the call will not commit inside InnoDB. It is only working
// around closing thd->transaction.stmt open by TR_table::open().
if (all)
commit_one_phase_2(thd, false, &thd->transaction.stmt, false);
#ifdef WITH_WSREP
thd->variables.wsrep_on= saved_wsrep_on;
#endif
}
}
#endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment