72 changed files with 958 additions and 116 deletions
-
2VERSION
-
3client/mysqlslap.c
-
17include/my_base.h
-
3include/violite.h
-
2libmysqld/lib_sql.cc
-
19mysql-test/extra/rpl_tests/rpl_row_basic.test
-
11mysql-test/r/blackhole.result
-
9mysql-test/r/cast.result
-
14mysql-test/r/errors.result
-
13mysql-test/r/gis.result
-
10mysql-test/r/mysqlslap.result
-
9mysql-test/r/subselect.result
-
60mysql-test/r/subselect_innodb.result
-
9mysql-test/r/subselect_no_mat.result
-
9mysql-test/r/subselect_no_opts.result
-
9mysql-test/r/subselect_no_scache.result
-
9mysql-test/r/subselect_no_semijoin.result
-
6mysql-test/r/user_var.result
-
7mysql-test/suite/binlog/r/binlog_unsafe.result
-
11mysql-test/suite/binlog/t/binlog_unsafe.test
-
45mysql-test/suite/innodb/r/innodb_bug13635833.result
-
69mysql-test/suite/innodb/t/innodb_bug13635833.test
-
2mysql-test/suite/rpl/r/rpl_known_bugs_detection.result
-
5mysql-test/suite/rpl/r/rpl_report_port.result
-
12mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result
-
4mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result
-
16mysql-test/suite/rpl/r/rpl_row_merge_engine.result
-
1mysql-test/suite/rpl/t/rpl_report_port-slave.opt
-
35mysql-test/suite/rpl/t/rpl_report_port.test
-
50mysql-test/suite/rpl/t/rpl_row_merge_engine.test
-
1mysql-test/t/alter_table.test
-
21mysql-test/t/blackhole.test
-
12mysql-test/t/cast.test
-
18mysql-test/t/errors.test
-
18mysql-test/t/gis.test
-
9mysql-test/t/mysqlslap.test
-
12mysql-test/t/subselect.test
-
56mysql-test/t/subselect_innodb.test
-
9mysql-test/t/user_var.test
-
8mysys/my_handler_errors.h
-
14sql/field.cc
-
8sql/field.h
-
9sql/field_conv.cc
-
12sql/handler.cc
-
1sql/handler.h
-
16sql/item.cc
-
1sql/item_subselect.cc
-
52sql/log_event.cc
-
12sql/log_event_old.cc
-
21sql/mysqld.cc
-
20sql/rpl_rli.cc
-
9sql/share/errmsg-utf8.txt
-
3sql/spatial.cc
-
26sql/sql_base.cc
-
43sql/sql_class.cc
-
1sql/sql_class.h
-
3sql/sql_lex.cc
-
6sql/sql_lex.h
-
26sql/sql_select.cc
-
33sql/sql_table.cc
-
1storage/blackhole/ha_blackhole.cc
-
1storage/example/ha_example.cc
-
10storage/innobase/dict/dict0dict.c
-
8storage/innobase/handler/ha_innodb.cc
-
2storage/innobase/include/buf0types.h
-
8storage/innobase/include/db0err.h
-
16storage/innobase/include/univ.i
-
5storage/innobase/row/row0ins.c
-
25storage/innobase/row/row0mysql.c
-
8storage/innobase/ut/ut0ut.c
-
1storage/myisam/ha_myisam.cc
-
38vio/viosocket.c
@ -1,4 +1,4 @@ |
|||
MYSQL_VERSION_MAJOR=5 |
|||
MYSQL_VERSION_MINOR=5 |
|||
MYSQL_VERSION_PATCH=23 |
|||
MYSQL_VERSION_PATCH=24 |
|||
MYSQL_VERSION_EXTRA= |
|||
@ -0,0 +1,11 @@ |
|||
# |
|||
# Bug #11880012: INDEX_SUBQUERY, BLACKHOLE, |
|||
# HANG IN PREPARING WITH 100% CPU USAGE |
|||
# |
|||
CREATE TABLE t1(a INT NOT NULL); |
|||
INSERT INTO t1 VALUES (1), (2), (3); |
|||
CREATE TABLE t2 (a INT UNSIGNED, b INT, UNIQUE KEY (a, b)) ENGINE=BLACKHOLE; |
|||
SELECT 1 FROM t1 WHERE a = ANY (SELECT a FROM t2); |
|||
1 |
|||
DROP TABLE t1, t2; |
|||
End of 5.5 tests |
|||
@ -0,0 +1,45 @@ |
|||
SET DEBUG_SYNC='reset'; |
|||
create table t1 (f1 integer, key k1 (f1)) engine=innodb; |
|||
create table t2 (f1 int, f2 int, key(f1), key(f2)) engine=innodb; |
|||
create table t3 (f2 int, key(f2)) engine=innodb; |
|||
insert into t1 values (10); |
|||
insert into t2 values (10, 20); |
|||
insert into t3 values (20); |
|||
alter table t2 add constraint c1 foreign key (f1) |
|||
references t1(f1) on update cascade; |
|||
show create table t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`f1` int(11) DEFAULT NULL, |
|||
KEY `k1` (`f1`) |
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
|||
show create table t2; |
|||
Table Create Table |
|||
t2 CREATE TABLE `t2` ( |
|||
`f1` int(11) DEFAULT NULL, |
|||
`f2` int(11) DEFAULT NULL, |
|||
KEY `f1` (`f1`), |
|||
KEY `f2` (`f2`), |
|||
CONSTRAINT `c1` FOREIGN KEY (`f1`) REFERENCES `t1` (`f1`) ON UPDATE CASCADE |
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
|||
show create table t3; |
|||
Table Create Table |
|||
t3 CREATE TABLE `t3` ( |
|||
`f2` int(11) DEFAULT NULL, |
|||
KEY `f2` (`f2`) |
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
|||
SET DEBUG_SYNC='innodb_rename_table_ready SIGNAL update_can_proceed |
|||
WAIT_FOR dict_unfreeze'; |
|||
alter table t2 add constraint z1 foreign key (f2) |
|||
references t3(f2) on update cascade; |
|||
SET DEBUG_SYNC='innodb_row_update_for_mysql_begin |
|||
WAIT_FOR update_can_proceed'; |
|||
SET DEBUG_SYNC='innodb_dml_cascade_dict_unfreeze SIGNAL dict_unfreeze |
|||
WAIT_FOR foreign_free_cache'; |
|||
update ignore t1 set f1 = 20; |
|||
ERROR HY000: Error on rename of './test/t2' to '#sql2-temporary' (errno: 181) |
|||
SET DEBUG_SYNC='now SIGNAL foreign_free_cache'; |
|||
drop table t2; |
|||
drop table t1; |
|||
drop table t3; |
|||
SET DEBUG_SYNC='reset'; |
|||
@ -0,0 +1,69 @@ |
|||
--source include/have_innodb.inc |
|||
--source include/have_debug_sync.inc |
|||
--source include/not_embedded.inc |
|||
|
|||
if (`select plugin_auth_version <= "1.1.8-24.1" from information_schema.plugins where plugin_name='innodb'`) |
|||
{ |
|||
--skip Not fixed in XtraDB 1.1.8-24.1 or earlier |
|||
} |
|||
|
|||
SET DEBUG_SYNC='reset'; |
|||
|
|||
# Save the initial number of concurrent sessions |
|||
--source include/count_sessions.inc |
|||
|
|||
create table t1 (f1 integer, key k1 (f1)) engine=innodb; |
|||
create table t2 (f1 int, f2 int, key(f1), key(f2)) engine=innodb; |
|||
create table t3 (f2 int, key(f2)) engine=innodb; |
|||
|
|||
insert into t1 values (10); |
|||
insert into t2 values (10, 20); |
|||
insert into t3 values (20); |
|||
|
|||
alter table t2 add constraint c1 foreign key (f1) |
|||
references t1(f1) on update cascade; |
|||
|
|||
show create table t1; |
|||
show create table t2; |
|||
show create table t3; |
|||
|
|||
SET DEBUG_SYNC='innodb_rename_table_ready SIGNAL update_can_proceed |
|||
WAIT_FOR dict_unfreeze'; |
|||
|
|||
--send |
|||
alter table t2 add constraint z1 foreign key (f2) |
|||
references t3(f2) on update cascade; |
|||
|
|||
connect (thr2,localhost,root,,); |
|||
connection thr2; |
|||
|
|||
SET DEBUG_SYNC='innodb_row_update_for_mysql_begin |
|||
WAIT_FOR update_can_proceed'; |
|||
SET DEBUG_SYNC='innodb_dml_cascade_dict_unfreeze SIGNAL dict_unfreeze |
|||
WAIT_FOR foreign_free_cache'; |
|||
|
|||
--send |
|||
update ignore t1 set f1 = 20; |
|||
|
|||
connection default; |
|||
--replace_regex /'[^']*test\/#sql2-[0-9a-f-]*'/'#sql2-temporary'/ |
|||
--error ER_ERROR_ON_RENAME |
|||
reap; |
|||
|
|||
SET DEBUG_SYNC='now SIGNAL foreign_free_cache'; |
|||
|
|||
connection thr2; |
|||
reap; |
|||
disconnect thr2; |
|||
--source include/wait_until_disconnected.inc |
|||
|
|||
connection default; |
|||
|
|||
drop table t2; |
|||
drop table t1; |
|||
drop table t3; |
|||
|
|||
# Wait till we reached the initial number of concurrent sessions |
|||
--source include/wait_until_count_sessions.inc |
|||
|
|||
SET DEBUG_SYNC='reset'; |
|||
@ -1,8 +1,11 @@ |
|||
include/master-slave.inc |
|||
[connection master] |
|||
include/assert.inc [The default value shown for the slave's port number is the actual port number of the slave.] |
|||
include/rpl_restart_server.inc [server_number=2 parameters: --report-port=9000] |
|||
include/start_slave.inc |
|||
[Slave restarted with the report-port set to some value] |
|||
include/assert.inc [The value shown for the slave's port number is 9000 which is the value set for report-port.] |
|||
include/rpl_restart_server.inc [server_number=2 parameters: --report-port=] |
|||
include/start_slave.inc |
|||
[Slave restarted with the report-port set to the value of slave's port number] |
|||
include/assert.inc [The default value shown for the slave's port number is the actual port number of the slave.] |
|||
include/rpl_end.inc |
|||
@ -0,0 +1,16 @@ |
|||
include/master-slave.inc |
|||
[connection master] |
|||
CREATE TABLE t1 (a int) ENGINE=MyISAM; |
|||
CREATE TABLE t2 (a int) ENGINE=MyISAM; |
|||
INSERT INTO t1 VALUES (1), (2), (3); |
|||
INSERT INTO t2 VALUES (4), (5), (6); |
|||
CREATE TABLE IF NOT EXISTS t1_merge LIKE t1; |
|||
ALTER TABLE t1_merge ENGINE=MERGE UNION (t2, t1); |
|||
include/diff_tables.inc [master:test.t1, slave:test.t1] |
|||
include/diff_tables.inc [master:test.t2, slave:test.t2] |
|||
UPDATE t1_merge SET a=10 WHERE a=1; |
|||
DELETE FROM t1_merge WHERE a=10; |
|||
include/diff_tables.inc [master:test.t1, slave:test.t1] |
|||
include/diff_tables.inc [master:test.t2, slave:test.t2] |
|||
DROP TABLE t1_merge, t1, t2; |
|||
include/rpl_end.inc |
|||
@ -1 +0,0 @@ |
|||
--report-port= |
|||
@ -0,0 +1,50 @@ |
|||
# |
|||
# BUG#47103 |
|||
# |
|||
# This test case checks whether the slave crashes or not when there is |
|||
# a merge table in use. |
|||
# |
|||
# Description |
|||
# =========== |
|||
# |
|||
# The test case creates two regular MyISAM tables on the master and |
|||
# one MERGE table. Then it populates the MyISAM tables, updates and |
|||
# deletes their contents through the merge table. Finally, the slave |
|||
# is synchronized with the master and (after the fix) it won't crash. |
|||
# |
|||
--source include/master-slave.inc |
|||
--source include/have_binlog_format_row.inc |
|||
--connection master |
|||
|
|||
CREATE TABLE t1 (a int) ENGINE=MyISAM; |
|||
CREATE TABLE t2 (a int) ENGINE=MyISAM; |
|||
INSERT INTO t1 VALUES (1), (2), (3); |
|||
INSERT INTO t2 VALUES (4), (5), (6); |
|||
CREATE TABLE IF NOT EXISTS t1_merge LIKE t1; |
|||
ALTER TABLE t1_merge ENGINE=MERGE UNION (t2, t1); |
|||
|
|||
--sync_slave_with_master |
|||
|
|||
--let diff_tables=master:test.t1, slave:test.t1 |
|||
--source include/diff_tables.inc |
|||
|
|||
--let diff_tables=master:test.t2, slave:test.t2 |
|||
--source include/diff_tables.inc |
|||
|
|||
--connection master |
|||
UPDATE t1_merge SET a=10 WHERE a=1; |
|||
DELETE FROM t1_merge WHERE a=10; |
|||
|
|||
--sync_slave_with_master |
|||
--connection master |
|||
|
|||
--let diff_tables=master:test.t1, slave:test.t1 |
|||
--source include/diff_tables.inc |
|||
|
|||
--let diff_tables=master:test.t2, slave:test.t2 |
|||
--source include/diff_tables.inc |
|||
|
|||
DROP TABLE t1_merge, t1, t2; |
|||
--sync_slave_with_master |
|||
|
|||
--source include/rpl_end.inc |
|||
@ -0,0 +1,21 @@ |
|||
# |
|||
# Tests for the BLACKHOLE storage engine |
|||
# |
|||
|
|||
--source include/have_blackhole.inc |
|||
|
|||
--echo # |
|||
--echo # Bug #11880012: INDEX_SUBQUERY, BLACKHOLE, |
|||
--echo # HANG IN PREPARING WITH 100% CPU USAGE |
|||
--echo # |
|||
|
|||
CREATE TABLE t1(a INT NOT NULL); |
|||
INSERT INTO t1 VALUES (1), (2), (3); |
|||
CREATE TABLE t2 (a INT UNSIGNED, b INT, UNIQUE KEY (a, b)) ENGINE=BLACKHOLE; |
|||
|
|||
SELECT 1 FROM t1 WHERE a = ANY (SELECT a FROM t2); |
|||
|
|||
DROP TABLE t1, t2; |
|||
|
|||
--echo End of 5.5 tests |
|||
|
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue