List:Commits« Previous MessageNext Message »
From:Mattias Jonsson Date:June 3 2008 11:25am
Subject:bzr commit into mysql-5.1 branch (mattiasj:2659) Bug#31210
View as plain text  
#At file:///Users/mattiasj/clones/bzrroot/b31210-51-bugteam/

 2659 Mattias Jonsson	2008-06-03
      Bug#31210: INSERT DELAYED crashes server when used on partitioned tables
        
      Problem was an unclear error message since it could suggest that
      MyISAM did not support INSERT DELAYED.
      Changed the error message to say that DELAYED is not supported by the
      table, instead of the table's storage engine.
      The confusion is that a partitioned table is in somewhat sense using
      the partitioning storage engine, which in turn uses the ordinary
      storage engine. By saying that the table does not support DELAYED we
      do not give any extra informantion about the storage engine or if it
      is partitioned.
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
    
    changed error message
  mysql-test/t/innodb-replace.test
    Bug#31210: INSERT DELAYED crashes server when used on partitioned tables
    
    changed error message
  mysql-test/t/merge.test
    Bug#31210: INSERT DELAYED crashes server when used on partitioned tables
    
    changed error message
  mysql-test/t/partition_hash.test
    Bug#31210: INSERT DELAYED crashes server when used on partitioned tables
    
    changed error message
  sql/share/errmsg.txt
    Bug#31210: INSERT DELAYED crashes server when used on partitioned tables
    
    added error message for tables not supporting DELAYED
  sql/sql_insert.cc
    Bug#31210: INSERT DELAYED crashes server when used on partitioned tables
    
    changed error message
=== 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-04-25 21:45:58 +0000
+++ b/mysql-test/t/merge.test	2008-06-03 11:25:41 +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-20 16:36:26 +0000
+++ b/sql/share/errmsg.txt	2008-06-03 11:25:41 +0000
@@ -6130,3 +6130,6 @@ ER_LOG_PURGE_NO_FILE  
 
 ER_NEED_REPREPARE
   eng "Prepared statement needs to be re-prepared"
+
+ER_DELAYED_NOT_SUPPORTED  
+  eng "DELAYED option not supported for table '%-.192s'"

=== modified file 'sql/sql_insert.cc'
--- a/sql/sql_insert.cc	2008-04-08 07:43:00 +0000
+++ b/sql/sql_insert.cc	2008-06-03 11:25:41 +0000
@@ -2305,7 +2305,7 @@ pthread_handler_t handle_delayed_insert(
   if (!(di->table->file->ha_table_flags() & HA_CAN_INSERT_DELAYED))
   {
     thd->fatal_error();
-    my_error(ER_ILLEGAL_HA, MYF(0), di->table_list.table_name);
+    my_error(ER_DELAYED_NOT_SUPPORTED, MYF(0), di->table_list.table_name);
     goto err;
   }
   if (di->table->triggers)

Thread
bzr commit into mysql-5.1 branch (mattiasj:2659) Bug#31210Mattias Jonsson3 Jun