|
|
|
@ -1075,11 +1075,14 @@ row_merge_cmp( |
|
|
|
record to be compared */ |
|
|
|
const ulint* offsets1, /*!< in: first record offsets */ |
|
|
|
const ulint* offsets2, /*!< in: second record offsets */ |
|
|
|
const dict_index_t* index) /*!< in: index */ |
|
|
|
const dict_index_t* index, /*!< in: index */ |
|
|
|
ibool* null_eq) /*!< out: set to TRUE if |
|
|
|
found matching null values */ |
|
|
|
{ |
|
|
|
int cmp; |
|
|
|
|
|
|
|
cmp = cmp_rec_rec_simple(mrec1, mrec2, offsets1, offsets2, index); |
|
|
|
cmp = cmp_rec_rec_simple(mrec1, mrec2, offsets1, offsets2, index, |
|
|
|
null_eq); |
|
|
|
|
|
|
|
#ifdef UNIV_DEBUG |
|
|
|
if (row_merge_print_cmp) { |
|
|
|
@ -1445,11 +1448,13 @@ corrupt: |
|
|
|
} |
|
|
|
|
|
|
|
while (mrec0 && mrec1) { |
|
|
|
ibool null_eq = FALSE; |
|
|
|
switch (row_merge_cmp(mrec0, mrec1, |
|
|
|
offsets0, offsets1, index)) { |
|
|
|
offsets0, offsets1, index, |
|
|
|
&null_eq)) { |
|
|
|
case 0: |
|
|
|
if (UNIV_UNLIKELY |
|
|
|
(dict_index_is_unique(index))) { |
|
|
|
(dict_index_is_unique(index) && !null_eq)) { |
|
|
|
innobase_rec_to_mysql(table, mrec0, |
|
|
|
index, offsets0); |
|
|
|
mem_heap_free(heap); |
|
|
|
|