mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merged recent changes from mysql-5.5 tree with
fix for bug @59888.
This commit is contained in:
@ -2,22 +2,24 @@
|
|||||||
|
|
||||||
#
|
#
|
||||||
# BUG#5551 "Failed OPTIMIZE TABLE is logged to binary log"
|
# BUG#5551 "Failed OPTIMIZE TABLE is logged to binary log"
|
||||||
# Replication should work when OPTIMIZE TABLE timeouts, and
|
# Replication should work when when OPTIMIZE TABLE is
|
||||||
# when OPTIMIZE TABLE is executed on a non-existing table
|
# executed on a non-existing table.
|
||||||
#
|
#
|
||||||
|
# Due to patch for BUG#989, checking that an OPTIMIZE
|
||||||
|
# that fails due to a lock wait timeout on an InnoDB table
|
||||||
|
# is not valid anymore, as an mdl lock is hit before,
|
||||||
|
# thence no timeout occurs, but instead a deadlock.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
eval CREATE TABLE t1 ( a int ) ENGINE=$engine_type;
|
eval CREATE TABLE t1 ( a int ) ENGINE=$engine_type;
|
||||||
BEGIN;
|
BEGIN;
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
|
|
||||||
connection master1;
|
connection master1;
|
||||||
OPTIMIZE TABLE t1;
|
|
||||||
|
|
||||||
OPTIMIZE TABLE non_existing;
|
OPTIMIZE TABLE non_existing;
|
||||||
sync_slave_with_master;
|
sync_slave_with_master;
|
||||||
|
|
||||||
# End of 4.1 tests
|
|
||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
commit;
|
commit;
|
||||||
|
@ -3,13 +3,6 @@ include/master-slave.inc
|
|||||||
CREATE TABLE t1 ( a int ) ENGINE=InnoDB;
|
CREATE TABLE t1 ( a int ) ENGINE=InnoDB;
|
||||||
BEGIN;
|
BEGIN;
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
OPTIMIZE TABLE t1;
|
|
||||||
Table Op Msg_type Msg_text
|
|
||||||
test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
|
|
||||||
test.t1 optimize error Lock wait timeout exceeded; try restarting transaction
|
|
||||||
test.t1 optimize status Operation failed
|
|
||||||
Warnings:
|
|
||||||
Error 1205 Lock wait timeout exceeded; try restarting transaction
|
|
||||||
OPTIMIZE TABLE non_existing;
|
OPTIMIZE TABLE non_existing;
|
||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
test.non_existing optimize Error Table 'test.non_existing' doesn't exist
|
test.non_existing optimize Error Table 'test.non_existing' doesn't exist
|
||||||
|
@ -27,15 +27,26 @@ a
|
|||||||
2001
|
2001
|
||||||
set global read_only=0;
|
set global read_only=0;
|
||||||
BEGIN;
|
BEGIN;
|
||||||
|
BEGIN;
|
||||||
|
select @@read_only;
|
||||||
|
@@read_only
|
||||||
|
0
|
||||||
|
set global read_only=1;
|
||||||
|
*** On SUPER USER connection ***
|
||||||
insert into t1 values(1002);
|
insert into t1 values(1002);
|
||||||
insert into t2 values(2002);
|
insert into t2 values(2002);
|
||||||
BEGIN;
|
*** On regular USER connection ***
|
||||||
insert into t1 values(1003);
|
insert into t1 values(1003);
|
||||||
insert into t2 values(2003);
|
|
||||||
set global read_only=1;
|
|
||||||
COMMIT;
|
|
||||||
COMMIT;
|
|
||||||
ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
|
ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
|
||||||
|
insert into t2 values(2003);
|
||||||
|
ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
|
||||||
|
*** SUPER USER COMMIT (must succeed) ***
|
||||||
|
COMMIT;
|
||||||
|
*** regular USER COMMIT (must succeed - nothing to commit) ***
|
||||||
|
COMMIT;
|
||||||
|
select @@read_only;
|
||||||
|
@@read_only
|
||||||
|
1
|
||||||
set global read_only=0;
|
set global read_only=0;
|
||||||
insert into t1 values(1004);
|
insert into t1 values(1004);
|
||||||
insert into t2 values(2004);
|
insert into t2 values(2004);
|
||||||
@ -48,7 +59,6 @@ select * from t2;
|
|||||||
a
|
a
|
||||||
2001
|
2001
|
||||||
2002
|
2002
|
||||||
2003
|
|
||||||
2004
|
2004
|
||||||
select * from t1;
|
select * from t1;
|
||||||
a
|
a
|
||||||
@ -59,7 +69,6 @@ select * from t2;
|
|||||||
a
|
a
|
||||||
2001
|
2001
|
||||||
2002
|
2002
|
||||||
2003
|
|
||||||
2004
|
2004
|
||||||
set global read_only=1;
|
set global read_only=1;
|
||||||
select @@read_only;
|
select @@read_only;
|
||||||
@ -87,7 +96,6 @@ select * from t2;
|
|||||||
a
|
a
|
||||||
2001
|
2001
|
||||||
2002
|
2002
|
||||||
2003
|
|
||||||
2004
|
2004
|
||||||
2005
|
2005
|
||||||
select * from t1;
|
select * from t1;
|
||||||
@ -100,7 +108,6 @@ select * from t2;
|
|||||||
a
|
a
|
||||||
2001
|
2001
|
||||||
2002
|
2002
|
||||||
2003
|
|
||||||
2004
|
2004
|
||||||
2005
|
2005
|
||||||
insert into t1 values(1006);
|
insert into t1 values(1006);
|
||||||
|
@ -10,8 +10,6 @@
|
|||||||
#
|
#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
rpl_failed_optimize : WL#4284: Can't optimize table used by a pending transaction (there is metadata lock on the table).
|
|
||||||
rpl_read_only : WL#4284: Setting Read only won't succeed until all metadata locks are released.
|
|
||||||
rpl_row_create_table : Bug#51574 2010-02-27 andrei failed different way than earlier with bug#45576
|
rpl_row_create_table : Bug#51574 2010-02-27 andrei failed different way than earlier with bug#45576
|
||||||
rpl_spec_variables : BUG#47661 2009-10-27 jasonh rpl_spec_variables fails on PB2 hpux
|
rpl_spec_variables : BUG#47661 2009-10-27 jasonh rpl_spec_variables fails on PB2 hpux
|
||||||
rpl_get_master_version_and_clock : Bug#59178 Jan 05 2011 joro Valgrind warnings rpl_get_master_version_and_clock
|
rpl_get_master_version_and_clock : Bug#59178 Jan 05 2011 joro Valgrind warnings rpl_get_master_version_and_clock
|
||||||
|
@ -1 +0,0 @@
|
|||||||
--loose-innodb-lock-wait-timeout=1
|
|
@ -41,30 +41,39 @@ set global read_only=0;
|
|||||||
|
|
||||||
connection master1;
|
connection master1;
|
||||||
BEGIN;
|
BEGIN;
|
||||||
|
|
||||||
|
connection master2;
|
||||||
|
BEGIN;
|
||||||
|
|
||||||
|
connection master;
|
||||||
|
select @@read_only;
|
||||||
|
set global read_only=1;
|
||||||
|
|
||||||
|
connection master1;
|
||||||
|
-- echo *** On SUPER USER connection ***
|
||||||
insert into t1 values(1002);
|
insert into t1 values(1002);
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
insert into t2 values(2002);
|
insert into t2 values(2002);
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
|
|
||||||
connection master2;
|
connection master2;
|
||||||
BEGIN;
|
-- echo *** On regular USER connection ***
|
||||||
|
--error ER_OPTION_PREVENTS_STATEMENT
|
||||||
insert into t1 values(1003);
|
insert into t1 values(1003);
|
||||||
--disable_warnings
|
--error ER_OPTION_PREVENTS_STATEMENT
|
||||||
insert into t2 values(2003);
|
insert into t2 values(2003);
|
||||||
--enable_warnings
|
|
||||||
|
|
||||||
connection master;
|
|
||||||
set global read_only=1;
|
|
||||||
|
|
||||||
connection master1;
|
connection master1;
|
||||||
## works even with read_only=1, because master1 is root
|
## works even with read_only=1, because master1 is root
|
||||||
|
-- echo *** SUPER USER COMMIT (must succeed) ***
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
connection master2;
|
connection master2;
|
||||||
--error ER_OPTION_PREVENTS_STATEMENT
|
-- echo *** regular USER COMMIT (must succeed - nothing to commit) ***
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
|
select @@read_only;
|
||||||
set global read_only=0;
|
set global read_only=0;
|
||||||
|
|
||||||
connection master1;
|
connection master1;
|
||||||
|
Reference in New Issue
Block a user