mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 12:56:14 +01:00 
			
		
		
		
	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.
 |