mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
merge: 5.1-bt bug branch --> 5.1-bt latest
This commit is contained in:
30
mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result
Normal file
30
mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result
Normal file
@@ -0,0 +1,30 @@
|
||||
### NOT filtered database => assertion: warnings ARE shown
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (a int, b int, primary key (a));
|
||||
INSERT INTO t1 VALUES (1,2), (2,3);
|
||||
UPDATE t1 SET b='4' WHERE a=1 LIMIT 1;
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
UPDATE t1 SET b='5' WHERE a=2 ORDER BY a LIMIT 1;
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
DROP TABLE t1;
|
||||
### NOT filtered database => assertion: binlog disabled and warnings ARE NOT shown
|
||||
SET SQL_LOG_BIN= 0;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (a int, b int, primary key (a));
|
||||
INSERT INTO t1 VALUES (1,2), (2,3);
|
||||
UPDATE t1 SET b='4' WHERE a=1 LIMIT 1;
|
||||
UPDATE t1 SET b='5' WHERE a=2 ORDER BY a LIMIT 1;
|
||||
DROP TABLE t1;
|
||||
SET SQL_LOG_BIN= 1;
|
||||
### FILTERED database => assertion: warnings ARE NOT shown
|
||||
CREATE DATABASE b42851;
|
||||
USE b42851;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (a int, b int, primary key (a));
|
||||
INSERT INTO t1 VALUES (1,2), (2,3);
|
||||
UPDATE t1 SET b='4' WHERE a=1 LIMIT 1;
|
||||
UPDATE t1 SET b='5' WHERE a=2 ORDER BY a LIMIT 1;
|
||||
DROP TABLE t1;
|
||||
DROP DATABASE b42851;
|
||||
@@ -0,0 +1 @@
|
||||
--binlog-ignore-db=b42851
|
||||
73
mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test
Normal file
73
mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test
Normal file
@@ -0,0 +1,73 @@
|
||||
# BUG#42851: Spurious "Statement is not safe to log in statement
|
||||
# format." warnings
|
||||
#
|
||||
# WHY
|
||||
# ===
|
||||
#
|
||||
# This test aims at checking that the fix that removes spurious
|
||||
# entries in the error log when the statement is filtered out from
|
||||
# binlog, is working.
|
||||
#
|
||||
# HOW
|
||||
# ===
|
||||
#
|
||||
# The test case is split into three assertions when issuing statements
|
||||
# containing LIMIT and ORDER BY:
|
||||
#
|
||||
# i) issue statements in database that is not filtered => check
|
||||
# that warnings ARE shown;
|
||||
#
|
||||
# ii) issue statements in database that is not filtered, but with
|
||||
# binlog disabled => check that warnings ARE NOT shown;
|
||||
#
|
||||
# iii) issue statements in database that is filtered => check that
|
||||
# warnings ARE NOT shown.
|
||||
|
||||
-- source include/have_log_bin.inc
|
||||
-- source include/have_binlog_format_statement.inc
|
||||
|
||||
-- echo ### NOT filtered database => assertion: warnings ARE shown
|
||||
|
||||
-- disable_warnings
|
||||
DROP TABLE IF EXISTS t1;
|
||||
-- enable_warnings
|
||||
|
||||
CREATE TABLE t1 (a int, b int, primary key (a));
|
||||
INSERT INTO t1 VALUES (1,2), (2,3);
|
||||
UPDATE t1 SET b='4' WHERE a=1 LIMIT 1;
|
||||
UPDATE t1 SET b='5' WHERE a=2 ORDER BY a LIMIT 1;
|
||||
DROP TABLE t1;
|
||||
|
||||
-- echo ### NOT filtered database => assertion: binlog disabled and warnings ARE NOT shown
|
||||
|
||||
SET SQL_LOG_BIN= 0;
|
||||
|
||||
-- disable_warnings
|
||||
DROP TABLE IF EXISTS t1;
|
||||
-- enable_warnings
|
||||
|
||||
CREATE TABLE t1 (a int, b int, primary key (a));
|
||||
INSERT INTO t1 VALUES (1,2), (2,3);
|
||||
UPDATE t1 SET b='4' WHERE a=1 LIMIT 1;
|
||||
UPDATE t1 SET b='5' WHERE a=2 ORDER BY a LIMIT 1;
|
||||
DROP TABLE t1;
|
||||
|
||||
SET SQL_LOG_BIN= 1;
|
||||
|
||||
-- echo ### FILTERED database => assertion: warnings ARE NOT shown
|
||||
|
||||
CREATE DATABASE b42851;
|
||||
USE b42851;
|
||||
|
||||
-- disable_warnings
|
||||
DROP TABLE IF EXISTS t1;
|
||||
-- enable_warnings
|
||||
|
||||
CREATE TABLE t1 (a int, b int, primary key (a));
|
||||
INSERT INTO t1 VALUES (1,2), (2,3);
|
||||
UPDATE t1 SET b='4' WHERE a=1 LIMIT 1;
|
||||
UPDATE t1 SET b='5' WHERE a=2 ORDER BY a LIMIT 1;
|
||||
DROP TABLE t1;
|
||||
|
||||
# clean up
|
||||
DROP DATABASE b42851;
|
||||
Reference in New Issue
Block a user