1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

MDEV-18800 Server crash in instant_alter_column_possible or Assertion...

`!pk->has_virtual()' failed in instant_alter_column_possible upon adding key

Hash key can't be primary key.
This commit is contained in:
sachin
2019-03-04 14:48:11 +05:30
committed by sachinsetia1001@gmail.com
parent ecf323620b
commit 62bfb2fe49
3 changed files with 27 additions and 0 deletions

View File

@ -112,3 +112,20 @@ ERROR 42000: Can't DROP COLUMN `x`; check that it exists
SELECT * FROM t1 WHERE f LIKE 'foo'; SELECT * FROM t1 WHERE f LIKE 'foo';
f f
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1 (pk INT, PRIMARY KEY USING HASH (pk)) ENGINE=InnoDB;
show keys from t1;;
Table t1
Non_unique 0
Key_name PRIMARY
Seq_in_index 1
Column_name pk
Collation A
Cardinality 0
Sub_part NULL
Packed NULL
Null
Index_type BTREE
Comment
Index_comment
ALTER TABLE t1 ADD INDEX (pk);
DROP TABLE t1;

View File

@ -141,3 +141,12 @@ CREATE TABLE t1 (f VARCHAR(4096), UNIQUE(f)) ENGINE=InnoDB;
ALTER TABLE t1 DROP x; ALTER TABLE t1 DROP x;
SELECT * FROM t1 WHERE f LIKE 'foo'; SELECT * FROM t1 WHERE f LIKE 'foo';
DROP TABLE t1; DROP TABLE t1;
#
# MDEV-18800 Server crash in instant_alter_column_possible or
# Assertion `!pk->has_virtual()' failed in instant_alter_column_possible upon adding key
#
CREATE TABLE t1 (pk INT, PRIMARY KEY USING HASH (pk)) ENGINE=InnoDB;
--query_vertical show keys from t1;
ALTER TABLE t1 ADD INDEX (pk);
DROP TABLE t1;

View File

@ -4179,6 +4179,7 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info,
} }
if (is_hash_field_needed || if (is_hash_field_needed ||
(key_info->algorithm == HA_KEY_ALG_HASH && (key_info->algorithm == HA_KEY_ALG_HASH &&
key->type != Key::PRIMARY &&
key_info->flags & HA_NOSAME && key_info->flags & HA_NOSAME &&
!(file->ha_table_flags() & HA_CAN_HASH_KEYS ) && !(file->ha_table_flags() & HA_CAN_HASH_KEYS ) &&
file->ha_table_flags() & HA_CAN_VIRTUAL_COLUMNS)) file->ha_table_flags() & HA_CAN_VIRTUAL_COLUMNS))