row0ins.c:
Allow equal key values in a unique secondary index if the key value contains an SQL NULL innobase/row/row0ins.c: Allow equal key values in a unique secondary index if the key value contains an SQL NULL
This commit is contained in:
parent
a1b810cc4a
commit
9d9e0a08d7
@ -319,6 +319,7 @@ row_ins_dupl_error_with_rec(
|
|||||||
ulint matched_fields;
|
ulint matched_fields;
|
||||||
ulint matched_bytes;
|
ulint matched_bytes;
|
||||||
ulint n_unique;
|
ulint n_unique;
|
||||||
|
ulint i;
|
||||||
|
|
||||||
n_unique = dict_index_get_n_unique(index);
|
n_unique = dict_index_get_n_unique(index);
|
||||||
|
|
||||||
@ -332,6 +333,20 @@ row_ins_dupl_error_with_rec(
|
|||||||
return(FALSE);
|
return(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* In a unique secondary index we allow equal key values if they
|
||||||
|
contain SQL NULLs */
|
||||||
|
|
||||||
|
if (!(index->type & DICT_CLUSTERED)) {
|
||||||
|
|
||||||
|
for (i = 0; i < n_unique; i++) {
|
||||||
|
if (UNIV_SQL_NULL == dfield_get_len(
|
||||||
|
dtuple_get_nth_field(entry, i))) {
|
||||||
|
|
||||||
|
return(FALSE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!rec_get_deleted_flag(rec)) {
|
if (!rec_get_deleted_flag(rec)) {
|
||||||
|
|
||||||
return(TRUE);
|
return(TRUE);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user