diff --git a/mysql-test/suite/galera/disabled.def b/mysql-test/suite/galera/disabled.def index 9391f97732b..25f20e01521 100644 --- a/mysql-test/suite/galera/disabled.def +++ b/mysql-test/suite/galera/disabled.def @@ -20,7 +20,6 @@ galera_parallel_simple : Failing sporadically galera_bf_abort : Failing sporadically galera_log_output_csv : Failing sporadically galera_as_slave_preordered : wsrep-preordered is not available in MariaDB Galera cluster -galera_forced_binlog_format : TODO: investigate galera_gra_log : TODO: investigate galera_as_slave_replication_bundle : TODO: investigate galera_ssl_upgrade : TODO: investigate diff --git a/mysql-test/suite/galera/r/galera_forced_binlog_format.result b/mysql-test/suite/galera/r/galera_forced_binlog_format.result index 857e44d2dfc..a793f7f6d8b 100644 --- a/mysql-test/suite/galera/r/galera_forced_binlog_format.result +++ b/mysql-test/suite/galera/r/galera_forced_binlog_format.result @@ -1,18 +1,43 @@ RESET MASTER; SET SESSION binlog_format = 'STATEMENT'; +Warnings: +Warning 1105 MariaDB Galera does not support binlog format: STATEMENT CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); SET SESSION binlog_format = 'MIXED'; +Warnings: +Warning 1105 MariaDB Galera does not support binlog format: MIXED INSERT INTO t1 VALUES (2); -SHOW BINLOG EVENTS IN 'mysqld-bin.000001' FROM 120; +SHOW BINLOG EVENTS IN 'mysqld-bin.000001' FROM 248; Log_name Pos Event_type Server_id End_log_pos Info +mysqld-bin.000001 Gtid_list 1 [] +mysqld-bin.000001 Binlog_checkpoint 1 mysqld-bin.000001 +mysqld-bin.000001 Gtid 1 GTID 0-1-1 mysqld-bin.000001 Query 1 use `test`; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB -mysqld-bin.000001 Query 1 BEGIN +mysqld-bin.000001 Gtid 1 BEGIN GTID 0-1-2 mysqld-bin.000001 Table_map 1 table_id: ### (test.t1) -mysqld-bin.000001 Write_rows 1 table_id: ### flags: STMT_END_F +mysqld-bin.000001 Write_rows_v1 1 table_id: ### flags: STMT_END_F mysqld-bin.000001 Xid 1 COMMIT /* xid=### */ -mysqld-bin.000001 Query 1 BEGIN +mysqld-bin.000001 Gtid 1 BEGIN GTID 0-1-3 mysqld-bin.000001 Table_map 1 table_id: ### (test.t1) -mysqld-bin.000001 Write_rows 1 table_id: ### flags: STMT_END_F +mysqld-bin.000001 Write_rows_v1 1 table_id: ### flags: STMT_END_F mysqld-bin.000001 Xid 1 COMMIT /* xid=### */ DROP TABLE t1; +# +# MDEV-9401: wsrep_forced_binlog_format with binlog causes crash +# +SET SESSION binlog_format = 'ROW'; +CREATE DATABASE testdb_9401; +USE testdb_9401; +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; +CREATE USER dummy@localhost; +GRANT ALL PRIVILEGES ON testdb_9401.t1 TO dummy@localhost; +FLUSH PRIVILEGES; +SHOW GRANTS FOR dummy@localhost; +Grants for dummy@localhost +GRANT USAGE ON *.* TO 'dummy'@'localhost' +GRANT ALL PRIVILEGES ON `testdb_9401`.`t1` TO 'dummy'@'localhost' +REVOKE ALL PRIVILEGES, GRANT OPTION FROM dummy@localhost; +DROP USER dummy@localhost; +DROP DATABASE testdb_9401; +# End of tests diff --git a/mysql-test/suite/galera/t/galera_forced_binlog_format.test b/mysql-test/suite/galera/t/galera_forced_binlog_format.test index 934c15399e0..d621403f231 100644 --- a/mysql-test/suite/galera/t/galera_forced_binlog_format.test +++ b/mysql-test/suite/galera/t/galera_forced_binlog_format.test @@ -20,6 +20,26 @@ INSERT INTO t1 VALUES (2); --replace_regex /xid=[0-9]+/xid=###/ /table_id: [0-9]+/table_id: ###/ --replace_column 2 5 -SHOW BINLOG EVENTS IN 'mysqld-bin.000001' FROM 120; +SHOW BINLOG EVENTS IN 'mysqld-bin.000001' FROM 248; DROP TABLE t1; + +--echo # +--echo # MDEV-9401: wsrep_forced_binlog_format with binlog causes crash +--echo # +SET SESSION binlog_format = 'ROW'; +CREATE DATABASE testdb_9401; +USE testdb_9401; +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; +CREATE USER dummy@localhost; +GRANT ALL PRIVILEGES ON testdb_9401.t1 TO dummy@localhost; +FLUSH PRIVILEGES; +SHOW GRANTS FOR dummy@localhost; +# Cleanup +REVOKE ALL PRIVILEGES, GRANT OPTION FROM dummy@localhost; +DROP USER dummy@localhost; +DROP DATABASE testdb_9401; + +--source include/galera_end.inc +--echo # End of tests + diff --git a/sql/sql_class.h b/sql/sql_class.h index a2bbe0861d1..5c9847c5a68 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -2118,7 +2118,7 @@ public: int is_current_stmt_binlog_format_row() const { DBUG_ASSERT(current_stmt_binlog_format == BINLOG_FORMAT_STMT || current_stmt_binlog_format == BINLOG_FORMAT_ROW); - return (WSREP_FORMAT((ulong)current_stmt_binlog_format) == BINLOG_FORMAT_ROW); + return current_stmt_binlog_format == BINLOG_FORMAT_ROW; } enum binlog_filter_state