diff options
author | Magne Mahre <magne.mahre@sun.com> | 2009-10-09 15:04:58 +0200 |
---|---|---|
committer | Magne Mahre <magne.mahre@sun.com> | 2009-10-09 15:04:58 +0200 |
commit | 5ca59914ce2ebf11700c5d47fbdf9cbb293ae489 (patch) | |
tree | 63a1e51662be6811255d4904cb113a3d11cbb53e /mysql-test/t/alter_table.test | |
parent | c9248c642453b827c6631c5b76340db72f2f7236 (diff) | |
download | mariadb-git-5ca59914ce2ebf11700c5d47fbdf9cbb293ae489.tar.gz |
Bug #31031 ALTER TABLE regression in 5.0
An ALTER TABLE statement which added a column and added
a non-partial index on it failed with:
"ERROR 1089 (HY000): Incorrect sub part key; the used
key part isn't a string, the used length is longer than
the key part, or the storage engine doesn't support unique
sub keys"
In a check introduced to fix an earlier bug (no. 26794),
to allow for indices on spatial type columns, the
test expression was flawed (a logical OR was used instead
of a logical AND), which led to this regression.
The code in question does a sanity check on the key, and
the flawed code mistakenly classified any index created
in the way specified above as a partial index. Since
many data types does not allow partial indices, the
statement would fail.
Diffstat (limited to 'mysql-test/t/alter_table.test')
-rw-r--r-- | mysql-test/t/alter_table.test | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/mysql-test/t/alter_table.test b/mysql-test/t/alter_table.test index ae48d5a8736..0c20fe523a4 100644 --- a/mysql-test/t/alter_table.test +++ b/mysql-test/t/alter_table.test @@ -1001,3 +1001,18 @@ SELECT * FROM t1; DROP TABLE t1; --echo End of 5.1 tests + +# +# Bug #31031 ALTER TABLE regression in 5.0 +# +# The ALTER TABLE operation failed with +# ERROR 1089 (HY000): Incorrect sub part key; ... +# +CREATE TABLE t1(c CHAR(10), + i INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY); +INSERT INTO t1 VALUES('a',2),('b',4),('c',6); +ALTER TABLE t1 + DROP i, + ADD i INT UNSIGNED NOT NULL AUTO_INCREMENT, + AUTO_INCREMENT = 1; +DROP TABLE t1; |