polardbxengine/mysql-test/t/binlog_partial_json_warning...

64 lines
3.0 KiB
Plaintext

# ==== Implementation ====
#
# This test checks if the correct warnings are issued when the following
# incompatible configurations regarding binlog_row_value_options=PARTIAL_JSON
# are attempted:
# 1) binlog_format=STATEMENT
# 2) binlog_row_image=FULL
# 3) log_bin_use_v1_row_events=1
# 4) the binlog is disabled
#
# ==== Related Worklog ====
#
# WL#2955 RBR replication of partial JSON updates
#
--source include/force_restart.inc
call mtr.add_suppression("When binlog_format=STATEMENT, the option binlog_row_value_options=PARTIAL_JSON");
call mtr.add_suppression("When binlog_row_image=FULL, the option binlog_row_value_options=PARTIAL_JSON");
call mtr.add_suppression("When binlog_row_value_options=PARTIAL_JSON, the option log_bin_use_v1_row_events=1");
call mtr.add_suppression("When the binary log is disabled, the option binlog_row_value_options=PARTIAL_JSON");
call mtr.add_suppression("You need to use --log-bin to make --binlog-format work.");
--echo # binlog-format=stmt is not compatible with partial json
--let $restart_parameters= "restart: --log-bin --binlog-format=statement --binlog-row-value-options=PARTIAL_JSON --binlog-row-image=MINIMAL"
--source include/restart_mysqld.inc
--let $assert_file= $MYSQLTEST_VARDIR/log/mysqld.1.err
--let $assert_only_after= CURRENT_TEST: main.binlog_partial_json_warnings
--let $assert_count= 1
--let $assert_select= When binlog_format=STATEMENT, the option binlog_row_value_options=PARTIAL_JSON
--let $assert_text= There shall be a warning when binlog_format=STATEMENT
--source include/assert_grep.inc
SET @@GLOBAL.BINLOG_ROW_VALUE_OPTIONS= PARTIAL_JSON;
--echo # binlog-row-image=full causes partial json to be used only in after image
--let $restart_parameters= "restart: --log-bin --binlog-format=row --binlog-row-value-options=PARTIAL_JSON --binlog-row-image=FULL"
--source include/restart_mysqld.inc
--let $assert_select= When binlog_row_image=FULL, the option binlog_row_value_options=PARTIAL_JSON
--let $assert_text= There shall be a warning when binlog_row_image=FULL
--source include/assert_grep.inc
--echo # log-bin-use-v1-row-events is not compatible with partial json
--let $restart_parameters= "restart: --log-bin --log-bin-use-v1-row-events=TRUE --binlog-row-value-options=PARTIAL_JSON --binlog-row-image=MINIMAL"
--source include/restart_mysqld.inc
--let $assert_select= When binlog_row_value_options=PARTIAL_JSON, the option log_bin_use_v1_row_events=1
--let $assert_text= There shall be a warning when log_bin_use_v1_row_events=1
--source include/assert_grep.inc
SET @@GLOBAL.BINLOG_ROW_VALUE_OPTIONS= PARTIAL_JSON;
--echo # the binlog is disabled
--let $restart_parameters= "restart: --binlog-row-value-options=PARTIAL_JSON --binlog-row-image=MINIMAL --skip-log-bin --skip-log-slave-updates"
--source include/restart_mysqld.inc
--let $assert_select= When the binary log is disabled, the option binlog_row_value_options=PARTIAL_JSON
--let $assert_text= There shall be a warning when when the binary log is disabled
--source include/assert_grep.inc
SET @@GLOBAL.BINLOG_ROW_VALUE_OPTIONS= PARTIAL_JSON;