mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 18:41:56 +01:00
c2ec897745
rpl/rpl_mdev382 ; Wrong replace in show_binlog_events2.inc binlog/database ; Different error on Solaris if file exists mroonga/repair_table_no_index_file ; Different system error on Solaris partition_not_blackhole ; Different error on Solaris partition_myisam ; Different error on Solaris Some other failures in mroonga was because have_32bit.inc didn't correctly detect 64 bits on Solaris. Fixed using DEFAULT_MACHINE instead of MACHINE_TYPE for Sys_version_compile_machine.
94 lines
2.6 KiB
Text
94 lines
2.6 KiB
Text
source include/have_log_bin.inc;
|
|
source include/not_embedded.inc;
|
|
|
|
# Checking that the drop of a database does not replicate anything in
|
|
# addition to the drop of the database
|
|
|
|
reset master;
|
|
create database testing_1;
|
|
use testing_1;
|
|
create table t1 (a int);
|
|
create function sf1 (a int) returns int return a+1;
|
|
create trigger tr1 before insert on t1 for each row insert into t2 values (2*new.a);
|
|
create procedure sp1 (a int) insert into t1 values(a);
|
|
drop database testing_1;
|
|
source include/show_binlog_events.inc;
|
|
|
|
# BUG#38773: DROP DATABASE cause switch to stmt-mode when there are
|
|
# temporary tables open
|
|
|
|
use test;
|
|
reset master;
|
|
create temporary table tt1 (a int);
|
|
create table t1 (a int);
|
|
insert into t1 values (1);
|
|
disable_warnings;
|
|
drop database if exists mysqltest1;
|
|
enable_warnings;
|
|
insert into t1 values (1);
|
|
drop table tt1, t1;
|
|
source include/show_binlog_events.inc;
|
|
|
|
FLUSH STATUS;
|
|
|
|
--echo
|
|
--echo # 'DROP TABLE IF EXISTS <deleted tables>' is binlogged
|
|
--echo # when 'DROP DATABASE' fails and at least one table is deleted
|
|
--echo # from the database.
|
|
RESET MASTER;
|
|
CREATE DATABASE testing_1;
|
|
USE testing_1;
|
|
CREATE TABLE t1(c1 INT);
|
|
CREATE TABLE t2(c1 INT);
|
|
|
|
let $prefix= `SELECT UUID()`;
|
|
--echo # Create a file in the database directory
|
|
--replace_result $prefix FAKE_FILE
|
|
eval SELECT 'hello' INTO OUTFILE 'fake_file.$prefix';
|
|
|
|
--echo
|
|
--echo # 'DROP DATABASE' will fail if there is any other file in the the
|
|
--echo # database directory
|
|
|
|
# Use '/' instead of '\' in the error message. On windows platform, dir is
|
|
# formed with '\'.
|
|
--replace_regex /\\testing_1\\*/\/testing_1\// /66/39/ /17/39/ /File exists/Directory not empty/
|
|
--error 1010
|
|
DROP DATABASE testing_1;
|
|
let $wait_binlog_event= DROP TABLE IF EXIST;
|
|
source include/wait_for_binlog_event.inc;
|
|
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
|
|
|
--echo
|
|
--echo # Remove the fake file.
|
|
--remove_file $MYSQLD_DATADIR/testing_1/fake_file.$prefix
|
|
--echo # Now we can drop the database.
|
|
DROP DATABASE testing_1;
|
|
|
|
|
|
--echo #
|
|
--echo # Bug#11765416 58381: FAILED DROP DATABASE CAN BREAK STATEMENT
|
|
--echo # BASED REPLICATION
|
|
--echo #
|
|
|
|
USE test;
|
|
--disable_warnings
|
|
DROP DATABASE IF EXISTS db1;
|
|
DROP TABLE IF EXISTS t3;
|
|
--enable_warnings
|
|
|
|
CREATE DATABASE db1;
|
|
CREATE TABLE db1.t1 (a INT);
|
|
CREATE TABLE db1.t2 (b INT, KEY(b)) engine=innodb;
|
|
CREATE TABLE t3 (a INT, KEY (a), FOREIGN KEY(a) REFERENCES db1.t2(b))
|
|
engine=innodb;
|
|
RESET MASTER;
|
|
|
|
--error ER_ROW_IS_REFERENCED
|
|
DROP DATABASE db1; # Fails because of the fk
|
|
SHOW TABLES FROM db1; # t1 was dropped, t2 remains
|
|
--source include/show_binlog_events.inc # Check that the binlog drops t1
|
|
|
|
# Cleanup
|
|
DROP TABLE t3;
|
|
DROP DATABASE db1;
|