BUG#27998 - mysqld crashed when executing INSERT DELAYED

            on a BLACKHOLE table

Using INSERT DELAYED on BLACKHOLE tables could lead to server
crash.

This happens because delayed thread wants to upgrade a lock,
but BLACKHOLE tables do not have locks at all.

This patch rejects attempts to use INSERT DELAYED on MERGE
tables.
parent f6989772
......@@ -123,3 +123,7 @@ master-bin.000001 # Query 1 # use `test`; create table t3 like t1
master-bin.000001 # Query 1 # use `test`; insert into t1 select * from t3
master-bin.000001 # Query 1 # use `test`; replace into t1 select * from t3
drop table t1,t2,t3;
CREATE TABLE t1(a INT) ENGINE=BLACKHOLE;
INSERT DELAYED INTO t1 VALUES(1);
ERROR HY000: Table storage engine for 't1' doesn't have this option
DROP TABLE t1;
......@@ -126,4 +126,13 @@ show binlog events;
drop table t1,t2,t3;
#
# BUG#27998 - mysqld crashed when executing INSERT DELAYED on a BLACKHOLE
# table
#
CREATE TABLE t1(a INT) ENGINE=BLACKHOLE;
--error 1031
INSERT DELAYED INTO t1 VALUES(1);
DROP TABLE t1;
# End of 4.1 tests
......@@ -46,8 +46,7 @@ class ha_blackhole: public handler
{
return(HA_NULL_IN_KEY | HA_CAN_FULLTEXT | HA_CAN_SQL_HANDLER |
HA_DUPP_POS | HA_CAN_INDEX_BLOBS | HA_AUTO_PART_KEY |
HA_FILE_BASED | HA_CAN_GEOMETRY | HA_READ_RND_SAME |
HA_CAN_INSERT_DELAYED);
HA_FILE_BASED | HA_CAN_GEOMETRY | HA_READ_RND_SAME);
}
ulong index_flags(uint inx, uint part, bool all_parts) const
{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment