Bug #36869 | adding hash index on myisam or innodb table | ||
---|---|---|---|
Submitted: | 22 May 2008 1:55 | Modified: | 18 Nov 2010 13:31 |
Reporter: | Jim Grill | Email Updates: | |
Status: | Verified | Impact on me: | |
Category: | MySQL Server: DDL | Severity: | S3 (Non-critical) |
Version: | 5.1.24-rc-log | OS: | Any (probably any OS) |
Assigned to: | CPU Architecture: | Any |
[22 May 2008 1:55]
Jim Grill
[22 May 2008 2:41]
Paul DuBois
http://dev.mysql.com/doc/refman/5.0/en/create-index.html says: " If you specify an index type that is not legal for a given storage engine, but there is another index type available that the engine can use without affecting query results, the engine uses the available type. " Same applies to index definitions for CREATE TABLE.
[22 May 2008 2:50]
Jim Grill
Albeit counterintuitive, IMHO, to invisibly choose a theoretically compatible index type, shouldn't show "create table" and "show indexes" reflect the same index type? Could that behavior still be a bug?
[22 May 2008 4:16]
Valeriy Kravchuk
Verified just as described: C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql -uroot test -P3310 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 Server version: 5.1.24-rc-community MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> drop table t1; Query OK, 0 rows affected (0.16 sec) mysql> create table t1 (a int, index(a) using hash) engine=InnoDB; Query OK, 0 rows affected (0.11 sec) mysql> show create table t1\G *************************** 1. row *************************** Table: t1 Create Table: CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, KEY `a` (`a`) USING HASH ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1 row in set (0.02 sec) mysql> show indexes from t1\G *************************** 1. row *************************** Table: t1 Non_unique: 1 Key_name: a Seq_in_index: 1 Column_name: a Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE Comment: 1 row in set (0.01 sec) Indeed, I'd consider different results a minor bug, because of inconsistency.
[7 Oct 2008 20:52]
Konstantin Osipov
This behavior is documented and relied upon in replication scenarios.
[9 Oct 2009 12:57]
Kristian Köhntopp
Could you please at least add a warning? MySQL does this for example for data truncation and many other silent changes. Here, nothing is changed AND the server lies to me in a SHOW CREATE TABLE. I consider this wrong and a warning is at least in order.
[9 Oct 2009 15:35]
Konstantin Osipov
I agree we need to start producing warnings for cases when some DDL clauses are ignored. Please re-triage as a feature request.
[18 Nov 2010 13:31]
Jim Grill
In addition to the warning, I think the differences between SHOW CREATE TABLE and SHOW INDEXES FROM should also be corrected.
[7 Dec 2011 8:49]
MySQL Verification Team
Regarding the lack of warnings for ignored syntax, feel free to make a comment on bug #47771