Bug #14153 ARCHIVE engine doesn't support INSERT DELAYED
Submitted: 19 Oct 2005 21:36 Modified: 23 Oct 2005 2:19
Reporter: Gleb Paharenko Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:4.1.14/BK source OS:Linux (Linux)
Assigned to: Paul DuBois CPU Architecture:Any

[19 Oct 2005 21:36] Gleb Paharenko
Description:
Hi!

According to http://dev.mysql.com/doc/refman/4.1/en/insert-delayed.html

"INSERT DELAYED works only with ISAM, MyISAM, (beginning with MySQL 4.1) MEMORY, and ARCHIVE tables."

With ARCHIVE tables it works in 5.0.13, but not in 4.1.14. And I don't see any note about this difference

How to repeat:
[gleb@blend mysql-debug-4.1.14-pc-linux-gnu-i686]$ lmysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5 to server version: 4.1.14-debug-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create table ar(a int) engine=archive;
Query OK, 0 rows affected (0.32 sec)

mysql> insert delayed into ar set a=1;
ERROR 1031 (HY000): Table storage engine for 'ar' doesn't have this option
mysql>

You see it doesn't work in 4.1.14. And in 5.0.13 everything Ok:

[gleb@blend mysql-debug-5.0.13-rc-linux-i686-glibc23]$ lmysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10 to server version: 5.0.13-rc-debug-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create table ar(a int) engine=archive;
Query OK, 0 rows affected (0.02 sec)

mysql> insert delayed into ar set a=1;
Query OK, 1 row affected (0.01 sec)

Suggested fix:
Fix 4.1 branch or documentation.
[19 Oct 2005 21:54] MySQL Verification Team
miguel@hegel:~/dbs/4.1> bin/mysql -uroot test
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.16-debug-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create table ar(a int) engine=archive;
Query OK, 0 rows affected (0.10 sec)

mysql> show create table ar;
+-------+----------------------------------------------------------------------------------------+
| Table | Create Table                                                                           |
+-------+----------------------------------------------------------------------------------------+
| ar    | CREATE TABLE `ar` (
  `a` int(11) default NULL
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 |
+-------+----------------------------------------------------------------------------------------+
1 row in set (0.04 sec)

mysql> insert delayed into ar set a=1;
ERROR 1031 (HY000): Table storage engine for 'ar' doesn't have this option
mysql> 

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.15-debug

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> drop table ar;
Query OK, 0 rows affected (0.01 sec)

mysql> create table ar(a int) engine=archive;
Query OK, 0 rows affected (0.06 sec)

mysql> show create table ar;
+-------+----------------------------------------------------------------------------------------+
| Table | Create Table                                                                           |
+-------+----------------------------------------------------------------------------------------+
| ar    | CREATE TABLE `ar` (
  `a` int(11) default NULL
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 |
+-------+----------------------------------------------------------------------------------------+
1 row in set (0.03 sec)

mysql> insert delayed into ar set a=1;
Query OK, 1 row affected (0.00 sec)

mysql>
[21 Oct 2005 17:30] Brian Aker
Insert delayed was added for 5.0. We need to document this.
[23 Oct 2005 2:19] Paul DuBois
I removed ARCHIVE from the list of supported engines
for DELAYED in the 4.1 manual.