Commit 141e89a6 authored by Hemant Kumar's avatar Hemant Kumar

Bug#12872804 - 62155: BINLOG.BINLOG_STM_UNSAFE_WARNING FAILS WHEN RUN WITH --REPEAT=2

Fixed the testcase using timestamp logic while doing grep from the error file.
parents 44938d9e b03c1541
...@@ -54,13 +54,13 @@ USE test; ...@@ -54,13 +54,13 @@ USE test;
# #
SET @old_log_warnings = @@log_warnings; SET @old_log_warnings = @@log_warnings;
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(10)); CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(15));
SET GLOBAL LOG_WARNINGS = 0; SET GLOBAL LOG_WARNINGS = 0;
INSERT INTO t1 VALUES(UUID(), 'Bug#46265'); INSERT INTO t1 VALUES(UUID(), 'timestamp');
Warnings: Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave. Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
SET GLOBAL LOG_WARNINGS = 1; SET GLOBAL LOG_WARNINGS = 1;
INSERT INTO t1 VALUES(UUID(), 'Bug#46265'); INSERT INTO t1 VALUES(UUID(), 'timestamp');
Warnings: Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave. Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
DROP TABLE t1; DROP TABLE t1;
......
...@@ -101,16 +101,24 @@ eval USE $old_db; ...@@ -101,16 +101,24 @@ eval USE $old_db;
--echo # Bug#46265: Can not disable warning about unsafe statements for binary logging --echo # Bug#46265: Can not disable warning about unsafe statements for binary logging
--echo # --echo #
let BINLOG_COUNTER1= `select CONVERT(NOW(),UNSIGNED) as timestmap from dual`;
SET @old_log_warnings = @@log_warnings; SET @old_log_warnings = @@log_warnings;
--disable_warnings --disable_warnings
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
--enable_warnings --enable_warnings
CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(10)); CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(15));
SET GLOBAL LOG_WARNINGS = 0; SET GLOBAL LOG_WARNINGS = 0;
INSERT INTO t1 VALUES(UUID(), 'Bug#46265'); # Replacing the result file content here.
# Instead of writing $BINLOG_COUNTER1 value to result file,
# writing a fixed string timestamp to it.
--replace_result $BINLOG_COUNTER1 timestamp
eval INSERT INTO t1 VALUES(UUID(), '$BINLOG_COUNTER1');
SET GLOBAL LOG_WARNINGS = 1; SET GLOBAL LOG_WARNINGS = 1;
INSERT INTO t1 VALUES(UUID(), 'Bug#46265'); --replace_result $BINLOG_COUNTER1 timestamp
eval INSERT INTO t1 VALUES(UUID(), '$BINLOG_COUNTER1');
DROP TABLE t1; DROP TABLE t1;
SET GLOBAL log_warnings = @old_log_warnings; SET GLOBAL log_warnings = @old_log_warnings;
...@@ -132,13 +140,14 @@ perl; ...@@ -132,13 +140,14 @@ perl;
use strict; use strict;
my $log_error= $ENV{'LOG_ERROR'} or die "LOG_ERROR not set"; my $log_error= $ENV{'LOG_ERROR'} or die "LOG_ERROR not set";
open(FILE, "$log_error") or die("Unable to open $log_error: $!\n"); open(FILE, "$log_error") or die("Unable to open $log_error: $!\n");
my $count = () = grep(/Bug#46265/g,<FILE>); my $binlog_counter= $ENV{'BINLOG_COUNTER1'} or die "BINLOG_COUNTER1 not set";
my $count = () = grep(/$binlog_counter/g,<FILE>);
# Grep the timestamp value from the error file.
print "Occurrences: $count\n"; print "Occurrences: $count\n";
close(FILE); close(FILE);
EOF EOF
# bug#50192: diplaying the unsafe warning comes out to the user warning stack # bug#50192: diplaying the unsafe warning comes out to the user warning stack
-- disable_warnings -- disable_warnings
DROP TABLE IF EXISTS t1, t2; DROP TABLE IF EXISTS t1, t2;
-- enable_warnings -- enable_warnings
......
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