From: Date: June 3 2008 1:50pm Subject: bzr commit into mysql-6.0 branch (mattiasj:2664) Bug#31210 List-Archive: http://lists.mysql.com/commits/47358 X-Bug: 31210 Message-Id: <20080603115017.364CD952528@witty.localhost> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit #At file:///Users/mattiasj/clones/bzrroot/b31210-60-bugteam/ 2664 Mattias Jonsson 2008-06-03 [merge] Bug#31210: INSERT DELAYED crashes server when used on partitioned tables Manual merge from 5.1 modified: mysql-test/r/innodb-replace.result mysql-test/t/innodb-replace.test mysql-test/t/merge.test mysql-test/t/partition_hash.test sql/share/errmsg.txt sql/sql_insert.cc per-file messages: mysql-test/r/innodb-replace.result Bug#31210: INSERT DELAYED crashes server when used on partitioned tables Manual merge from 5.1 mysql-test/t/innodb-replace.test Bug#31210: INSERT DELAYED crashes server when used on partitioned tables Manual merge from 5.1 mysql-test/t/merge.test Bug#31210: INSERT DELAYED crashes server when used on partitioned tables Manual merge from 5.1 mysql-test/t/partition_hash.test Bug#31210: INSERT DELAYED crashes server when used on partitioned tables Manual merge from 5.1 sql/share/errmsg.txt Bug#31210: INSERT DELAYED crashes server when used on partitioned tables Manual merge from 5.1 sql/sql_insert.cc Bug#31210: INSERT DELAYED crashes server when used on partitioned tables Manual merge from 5.1 === modified file 'mysql-test/r/innodb-replace.result' --- a/mysql-test/r/innodb-replace.result 2007-02-15 14:39:03 +0000 +++ b/mysql-test/r/innodb-replace.result 2008-06-03 11:25:41 +0000 @@ -3,11 +3,11 @@ create table t1 (c1 char(5) unique not n select * from t1; c1 c2 stamp replace delayed into t1 (c1, c2) values ( "text1","11"); -ERROR HY000: Table storage engine for 't1' doesn't have this option +ERROR HY000: DELAYED option not supported for table 't1' select * from t1; c1 c2 stamp replace delayed into t1 (c1, c2) values ( "text1","12"); -ERROR HY000: Table storage engine for 't1' doesn't have this option +ERROR HY000: DELAYED option not supported for table 't1' select * from t1; c1 c2 stamp drop table t1; === modified file 'mysql-test/t/innodb-replace.test' --- a/mysql-test/t/innodb-replace.test 2007-02-15 14:39:03 +0000 +++ b/mysql-test/t/innodb-replace.test 2008-06-03 11:25:41 +0000 @@ -11,10 +11,10 @@ drop table if exists t1; # create table t1 (c1 char(5) unique not null, c2 int, stamp timestamp) engine=innodb; select * from t1; ---error 1031 +--error ER_DELAYED_NOT_SUPPORTED replace delayed into t1 (c1, c2) values ( "text1","11"); select * from t1; ---error 1031 +--error ER_DELAYED_NOT_SUPPORTED replace delayed into t1 (c1, c2) values ( "text1","12"); select * from t1; drop table t1; === modified file 'mysql-test/t/merge.test' --- a/mysql-test/t/merge.test 2008-05-01 09:34:54 +0000 +++ b/mysql-test/t/merge.test 2008-06-03 11:49:53 +0000 @@ -1201,7 +1201,7 @@ UNLOCK TABLES; # Succeeds in embedded server - is converted to normal insert # Fails in normal server, ps-protocol - not supported by engine # Fails in normal server, normal protocol - not a base table ---error 0, ER_ILLEGAL_HA, ER_WRONG_OBJECT +--error 0, ER_DELAYED_NOT_SUPPORTED, ER_WRONG_OBJECT INSERT DELAYED INTO t4 VALUES(44); # Get rid of row in embedded server DELETE FROM t4 WHERE c1 = 44; @@ -1214,9 +1214,9 @@ INSERT DELAYED INTO t3 VALUES(33); } SELECT * FROM t4 ORDER BY c1; LOCK TABLES t3 WRITE, t2 WRITE, t4 WRITE, t1 WRITE; ---error ER_DELAYED_INSERT_TABLE_LOCKED, ER_ILLEGAL_HA +--error ER_DELAYED_INSERT_TABLE_LOCKED, ER_DELAYED_NOT_SUPPORTED INSERT DELAYED INTO t4 VALUES(444); ---error ER_DELAYED_INSERT_TABLE_LOCKED, ER_ILLEGAL_HA +--error ER_DELAYED_INSERT_TABLE_LOCKED, ER_DELAYED_NOT_SUPPORTED INSERT DELAYED INTO t3 VALUES(333); SELECT * FROM t4 ORDER BY c1; UNLOCK TABLES; === modified file 'mysql-test/t/partition_hash.test' --- a/mysql-test/t/partition_hash.test 2007-11-20 10:21:00 +0000 +++ b/mysql-test/t/partition_hash.test 2008-06-03 11:25:41 +0000 @@ -165,8 +165,9 @@ drop table t1; # CREATE TABLE t1 (c1 INT) ENGINE=MyISAM PARTITION BY HASH(c1) PARTITIONS 1; # The test succeeds in an embedded server because normal insert is done. -# The test fails in a normal server with "engine doesn't have this option". ---error 0, ER_ILLEGAL_HA +# The test fails in a normal server with +# "DELAYED option not supported by table". +--error 0, ER_DELAYED_NOT_SUPPORTED INSERT DELAYED INTO t1 VALUES (1); DROP TABLE t1; === modified file 'sql/share/errmsg.txt' --- a/sql/share/errmsg.txt 2008-05-29 12:56:51 +0000 +++ b/sql/share/errmsg.txt 2008-06-03 11:49:53 +0000 @@ -6127,8 +6127,13 @@ ER_LOAD_DATA_INVALID_COLUMN ER_LOG_PURGE_NO_FILE eng "Being purged log %s was not found" + ER_NEED_REPREPARE eng "Prepared statement needs to be re-prepared" + +ER_DELAYED_NOT_SUPPORTED + eng "DELAYED option not supported for table '%-.192s'" + ER_WARN_AUTO_CONVERT_LOCK eng "Converted to non-transactional lock on '%-.64s'" ger "Umgewandelt zu nicht-transaktionalen Sperren auf '%-.64s'" === modified file 'sql/sql_insert.cc' --- a/sql/sql_insert.cc 2008-05-08 20:43:28 +0000 +++ b/sql/sql_insert.cc 2008-06-03 11:49:53 +0000 @@ -2308,7 +2308,7 @@ pthread_handler_t handle_delayed_insert( } if (!(di->table->file->ha_table_flags() & HA_CAN_INSERT_DELAYED)) { - my_error(ER_ILLEGAL_HA, MYF(ME_FATALERROR), di->table_list.table_name); + my_error(ER_DELAYED_NOT_SUPPORTED, MYF(ME_FATALERROR), di->table_list.table_name); goto err; } if (di->table->triggers)