mirror of
https://github.com/MariaDB/server.git
synced 2026-05-15 19:37:16 +02: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:
parent
1666da4b23
commit
595f116df0
2 changed files with 21 additions and 8 deletions
|
|
@ -34,13 +34,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 Statement may not be safe to log in statement format.
|
Note 1592 Statement may not be safe to log in statement format.
|
||||||
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 Statement may not be safe to log in statement format.
|
Note 1592 Statement may not be safe to log in statement format.
|
||||||
DROP TABLE t1;
|
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 # Bug#46265: Can not disable warning about unsafe statements for binary logging
|
||||||
--echo #
|
--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;
|
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));
|
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;
|
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;
|
||||||
|
|
||||||
let $log_error_= `SELECT @@GLOBAL.log_error`;
|
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
|
# MySQL Server on windows is started with --console and thus
|
||||||
# does not know the location of its .err log, use default location
|
# does not know the location of its .err log, use default location
|
||||||
|
|
@ -111,7 +122,9 @@ 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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue