mirror of
https://github.com/MariaDB/server.git
synced 2026-05-06 15:15:34 +02:00
bug#21873 MySQLD Crash on ALTER...ADD..UNIQUE..USING HASH statement for NDB backed table: Use passed key_info to check for nullable fields
This commit is contained in:
parent
230607a06b
commit
2d0d9c979d
4 changed files with 14 additions and 4 deletions
|
|
@ -639,3 +639,6 @@ select a, sha1(b) from t1;
|
|||
a sha1(b)
|
||||
1 08f5d02c8b8bc244f275bdfc22c42c5cab0d9d7d
|
||||
drop table t1;
|
||||
create table t1(id int not null) engine = NDB;
|
||||
alter table t1 add constraint uk_test unique (id) using hash;
|
||||
drop table t1;
|
||||
|
|
|
|||
|
|
@ -329,4 +329,12 @@ select a, sha1(b) from t1;
|
|||
|
||||
drop table t1;
|
||||
|
||||
# bug#21873 MySQLD Crash on ALTER...ADD..UNIQUE..USING HASH statement for NDB backed table
|
||||
|
||||
create table t1(id int not null) engine = NDB;
|
||||
|
||||
alter table t1 add constraint uk_test unique (id) using hash;
|
||||
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
|
|
|||
|
|
@ -1399,9 +1399,8 @@ NDB_INDEX_TYPE ha_ndbcluster::get_index_type_from_key(uint inx,
|
|||
ORDERED_INDEX);
|
||||
}
|
||||
|
||||
int ha_ndbcluster::check_index_fields_not_null(uint inx)
|
||||
int ha_ndbcluster::check_index_fields_not_null(KEY* key_info)
|
||||
{
|
||||
KEY* key_info= table->key_info + inx;
|
||||
KEY_PART_INFO* key_part= key_info->key_part;
|
||||
KEY_PART_INFO* end= key_part+key_info->key_parts;
|
||||
DBUG_ENTER("ha_ndbcluster::check_index_fields_not_null");
|
||||
|
|
@ -5016,7 +5015,7 @@ int ha_ndbcluster::create_index(const char *name, KEY *key_info,
|
|||
error= create_unique_index(unique_name, key_info);
|
||||
break;
|
||||
case UNIQUE_INDEX:
|
||||
if (!(error= check_index_fields_not_null(idx_no)))
|
||||
if (!(error= check_index_fields_not_null(key_info)))
|
||||
error= create_unique_index(unique_name, key_info);
|
||||
break;
|
||||
case ORDERED_INDEX:
|
||||
|
|
|
|||
|
|
@ -808,7 +808,7 @@ private:
|
|||
NDB_INDEX_TYPE get_index_type_from_table(uint index_no) const;
|
||||
NDB_INDEX_TYPE get_index_type_from_key(uint index_no, KEY *key_info,
|
||||
bool primary) const;
|
||||
int check_index_fields_not_null(uint index_no);
|
||||
int check_index_fields_not_null(KEY *key_info);
|
||||
|
||||
uint set_up_partition_info(partition_info *part_info,
|
||||
TABLE *table,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue