Loading mysql-test/r/ndb_index_unique.result +3 −0 Original line number Diff line number Diff line Loading @@ -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; mysql-test/t/ndb_index_unique.test +8 −0 Original line number Diff line number Diff line Loading @@ -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 sql/ha_ndbcluster.cc +2 −3 Original line number Diff line number Diff line Loading @@ -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"); Loading Loading @@ -5017,7 +5016,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: Loading sql/ha_ndbcluster.h +1 −1 Original line number Diff line number Diff line Loading @@ -808,7 +808,7 @@ static void set_tabname(const char *pathname, char *tabname); 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 sql/handler.cc +1 −0 Original line number Diff line number Diff line Loading @@ -2036,6 +2036,7 @@ void handler::print_keydup_error(uint key_nr, const char *msg) { /* Key is unknown */ str.length(0); str.append(STRING_WITH_LEN("")); key_nr= -1; my_printf_error(ER_DUP_ENTRY, msg, MYF(0), str.c_ptr(), "*UNKNOWN*"); Loading Loading
mysql-test/r/ndb_index_unique.result +3 −0 Original line number Diff line number Diff line Loading @@ -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;
mysql-test/t/ndb_index_unique.test +8 −0 Original line number Diff line number Diff line Loading @@ -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
sql/ha_ndbcluster.cc +2 −3 Original line number Diff line number Diff line Loading @@ -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"); Loading Loading @@ -5017,7 +5016,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: Loading
sql/ha_ndbcluster.h +1 −1 Original line number Diff line number Diff line Loading @@ -808,7 +808,7 @@ static void set_tabname(const char *pathname, char *tabname); 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
sql/handler.cc +1 −0 Original line number Diff line number Diff line Loading @@ -2036,6 +2036,7 @@ void handler::print_keydup_error(uint key_nr, const char *msg) { /* Key is unknown */ str.length(0); str.append(STRING_WITH_LEN("")); key_nr= -1; my_printf_error(ER_DUP_ENTRY, msg, MYF(0), str.c_ptr(), "*UNKNOWN*"); Loading