mirror of
https://github.com/MariaDB/server.git
synced 2025-09-11 05:52:26 +03:00
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.
This commit is contained in:
@@ -34,13 +34,13 @@ USE test;
|
||||
#
|
||||
SET @old_log_warnings = @@log_warnings;
|
||||
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;
|
||||
INSERT INTO t1 VALUES(UUID(), 'Bug#46265');
|
||||
INSERT INTO t1 VALUES(UUID(), 'timestamp');
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
SET GLOBAL LOG_WARNINGS = 1;
|
||||
INSERT INTO t1 VALUES(UUID(), 'Bug#46265');
|
||||
INSERT INTO t1 VALUES(UUID(), 'timestamp');
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
DROP TABLE t1;
|
||||
|
@@ -80,22 +80,33 @@ eval USE $old_db;
|
||||
--echo # Bug#46265: Can not disable warning about unsafe statements for binary logging
|
||||
--echo #
|
||||
|
||||
# Here introducing a sleep of one Second, just to make sure
|
||||
# that when this test executes with "--repeat" option,
|
||||
# the timestamp value is different and hence the Occcurrence count is one.
|
||||
--sleep 1
|
||||
|
||||
SET @old_log_warnings = @@log_warnings;
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--enable_warnings
|
||||
CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(10));
|
||||
let BINLOG_COUNTER1= `select CONVERT(NOW(),UNSIGNED) as timestmap from dual`;
|
||||
|
||||
CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(15));
|
||||
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;
|
||||
INSERT INTO t1 VALUES(UUID(), 'Bug#46265');
|
||||
--replace_result $BINLOG_COUNTER1 timestamp
|
||||
eval INSERT INTO t1 VALUES(UUID(), '$BINLOG_COUNTER1');
|
||||
DROP TABLE t1;
|
||||
|
||||
SET GLOBAL log_warnings = @old_log_warnings;
|
||||
|
||||
let $log_error_= `SELECT @@GLOBAL.log_error`;
|
||||
if(!`select LENGTH('$log_error_')`)
|
||||
if(!$log_error_)
|
||||
{
|
||||
# MySQL Server on windows is started with --console and thus
|
||||
# does not know the location of its .err log, use default location
|
||||
@@ -111,7 +122,9 @@ perl;
|
||||
use strict;
|
||||
my $log_error= $ENV{'LOG_ERROR'} or die "LOG_ERROR not set";
|
||||
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";
|
||||
close(FILE);
|
||||
EOF
|
||||
|
Reference in New Issue
Block a user