Bug #29618 ERROR 1112 - Table x uses an extension that doesn't exist in this MySQL Version

Submitted: 7 Jul 2007 19:26 Modified: 24 Feb 2008 9:48
Reporter: Shane Bester (Platinum Quality Contributor) Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server: DDL Severity:S3 (Non-critical)
Version:5.0.42, 5.1.21 OS:Any
Assigned to: CPU Architecture:Any

[7 Jul 2007 19:26] Shane Bester
Description:
It's possible to create a table with 1024 key segments i.e. 64 indexes, and 16 columns per index.

But, MySQL cannot open this table.  The error message is this:

mysql> select count(*) from `t1`;
ERROR 1112 (42000): Table 't1' uses an extension that doesn't exist in this MySQL version

Of course, the table was created by this very version, so error should not occur.

How to repeat:
Will upload CREATE TABLE statement in a file.

Suggested fix:
The error is coming from this code in mi_open.cc:

if (share->base.max_key_length > MI_MAX_KEY_BUFF || keys > MI_MAX_KEY ||
	key_parts >= MI_MAX_KEY * MI_MAX_KEY_SEG)
    {
      DBUG_PRINT("error",("Wrong key info:  Max_key_length: %d  keys: %d  key_parts: %d", share->base.max_key_length, keys, key_parts));
      my_errno=HA_ERR_UNSUPPORTED;
      goto err;
    }

Perhaps somebody wrote >= instead of > ?

Anyway, MySQL shouldn't create a table it can't open.
[7 Jul 2007 19:27] Shane Bester
create table statement

Attachment: bug29618_create_Table.sql (application/octet-stream, text), 38.93 KiB.

[24 Feb 2008 9:40] Shane Bester
i cannot repeat this anymore on 5.0.56 or 5.1.23.

mysql> select count(*) from `t1`;
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)

mysql> select version();
+--------------------------+
| version()                |
+--------------------------+
| 5.0.56-enterprise-gpl-nt |
+--------------------------+
1 row in set (0.00 sec)
[24 Feb 2008 9:46] Shane Bester
seems this was fixed by the fix to bug #26642

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.040 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.