mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
cd8b8bb964
int wsrep_thd_append_key(THD*, const wsrep_key*, int, Wsrep_service_key_type) CREATE TABLE [SELECT|REPLACE SELECT] is CTAS and idea was that we force ROW format. However, it was not correctly enforced and keys were appended before wsrep transaction was started. At THD::decide_logging_format we should force used stmt binlog format to ROW in CTAS case and produce a warning if used binlog format was not ROW. At ha_innodb::update_row we should not append keys similarly as in ha_innodb::write_row if sql_command is SQLCOM_CREATE_TABLE. Improved error logging on ::write_row, ::update_row and ::delete_row if wsrep key append fails. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
69 lines
2.8 KiB
Text
69 lines
2.8 KiB
Text
call mtr.add_suppression("WSREP: MariaDB Galera does not support binlog format");
|
|
call mtr.add_suppression("WSREP: Cannot get fake transaction ID from storage engine.");
|
|
#
|
|
# MDEV-4227: Galera server should stop crashing on setting binlog_format STATEMENT
|
|
#
|
|
SHOW VARIABLES LIKE 'binlog_format';
|
|
Variable_name Value
|
|
binlog_format ROW
|
|
SET binlog_format=STATEMENT;
|
|
Warnings:
|
|
Warning 1105 MariaDB Galera and flashback do not support binlog format: STATEMENT
|
|
SHOW WARNINGS;
|
|
Level Code Message
|
|
Warning 1105 MariaDB Galera and flashback do not support binlog format: STATEMENT
|
|
SHOW VARIABLES LIKE 'binlog_format';
|
|
Variable_name Value
|
|
binlog_format STATEMENT
|
|
CREATE TABLE IF NOT EXISTS test.t1 AS SELECT * FROM information_schema.routines WHERE 1 = 0;
|
|
Warnings:
|
|
Warning 1105 Galera does not support binlog_format = MIXED in CREATE TABLE [SELECT|REPLACE] forcing ROW
|
|
Warning 1105 Galera does not support binlog_format = MIXED in CREATE TABLE [SELECT|REPLACE] forcing ROW
|
|
SET binlog_format=MIXED;
|
|
Warnings:
|
|
Warning 1105 MariaDB Galera and flashback do not support binlog format: MIXED
|
|
SHOW WARNINGS;
|
|
Level Code Message
|
|
Warning 1105 MariaDB Galera and flashback do not support binlog format: MIXED
|
|
SHOW VARIABLES LIKE 'binlog_format';
|
|
Variable_name Value
|
|
binlog_format MIXED
|
|
CREATE TABLE IF NOT EXISTS test.t2 AS SELECT * FROM information_schema.routines WHERE 1 = 0;
|
|
Warnings:
|
|
Warning 1105 Galera does not support binlog_format = MIXED in CREATE TABLE [SELECT|REPLACE] forcing ROW
|
|
Warning 1105 Galera does not support binlog_format = MIXED in CREATE TABLE [SELECT|REPLACE] forcing ROW
|
|
SET binlog_format=ROW;
|
|
SHOW WARNINGS;
|
|
Level Code Message
|
|
Warning 1105 Galera does not support binlog_format = MIXED in CREATE TABLE [SELECT|REPLACE] forcing ROW
|
|
Warning 1105 Galera does not support binlog_format = MIXED in CREATE TABLE [SELECT|REPLACE] forcing ROW
|
|
SHOW VARIABLES LIKE 'binlog_format';
|
|
Variable_name Value
|
|
binlog_format ROW
|
|
CREATE TABLE IF NOT EXISTS test.t3 AS SELECT * FROM information_schema.routines WHERE 1 = 0;
|
|
DROP TABLE IF EXISTS test.t1;
|
|
DROP TABLE IF EXISTS test.t2;
|
|
DROP TABLE IF EXISTS test.t3;
|
|
#
|
|
# MDEV-7322: Option to allow setting the binlog_format with Galera
|
|
#
|
|
SET @@GLOBAL.binlog_format=STATEMENT;
|
|
ERROR 42000: Variable 'binlog_format' can't be set to the value of 'STATEMENT'
|
|
SHOW GLOBAL VARIABLES LIKE 'binlog_format';
|
|
Variable_name Value
|
|
binlog_format ROW
|
|
SET @@GLOBAL.binlog_format=MIXED;
|
|
ERROR 42000: Variable 'binlog_format' can't be set to the value of 'MIXED'
|
|
SHOW GLOBAL VARIABLES LIKE 'binlog_format';
|
|
Variable_name Value
|
|
binlog_format ROW
|
|
SET @@GLOBAL.binlog_format=DEFAULT;
|
|
ERROR 42000: Variable 'binlog_format' can't be set to the value of 'DEFAULT'
|
|
SHOW GLOBAL VARIABLES LIKE 'binlog_format';
|
|
Variable_name Value
|
|
binlog_format ROW
|
|
SET @@GLOBAL.binlog_format=ROW;
|
|
SHOW GLOBAL VARIABLES LIKE 'binlog_format';
|
|
Variable_name Value
|
|
binlog_format ROW
|
|
# End of test.
|