diff options
Diffstat (limited to 'storage/innobase/row/row0upd.cc')
| -rw-r--r-- | storage/innobase/row/row0upd.cc | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/storage/innobase/row/row0upd.cc b/storage/innobase/row/row0upd.cc index 88a0bce52a6..e1403eea93b 100644 --- a/storage/innobase/row/row0upd.cc +++ b/storage/innobase/row/row0upd.cc @@ -791,7 +791,7 @@ row_upd_index_write_log( mlog_catenate_string( mtr, - static_cast<byte*>( + static_cast<const byte*>( dfield_get_data(new_val)), len); @@ -988,8 +988,6 @@ row_upd_build_difference_binary( dberr_t* error) { upd_field_t* upd_field; - dfield_t* dfield; - const byte* data; ulint len; upd_t* update; ulint n_diff; @@ -1015,9 +1013,9 @@ row_upd_build_difference_binary( } for (i = 0; i < n_fld; i++) { - data = rec_get_nth_cfield(rec, index, offsets, i, &len); - - dfield = dtuple_get_nth_field(entry, i); + const byte* data = rec_get_nth_cfield(rec, index, offsets, i, + &len); + const dfield_t* dfield = dtuple_get_nth_field(entry, i); /* NOTE: we compare the fields as binary strings! (No collation) */ @@ -1078,8 +1076,6 @@ row_upd_build_difference_binary( index->table, NULL, NULL, &ext, heap); } - dfield = dtuple_get_nth_v_field(entry, i); - dfield_t* vfield = innobase_get_computed_value( update->old_vrow, col, index, &v_heap, heap, NULL, thd, mysql_table, record, @@ -1090,6 +1086,9 @@ row_upd_build_difference_binary( return(NULL); } + const dfield_t* dfield = dtuple_get_nth_v_field( + entry, i); + if (!dfield_data_is_binary_equal( dfield, vfield->len, static_cast<byte*>(vfield->data))) { @@ -1734,7 +1733,7 @@ row_upd_changes_ord_field_binary_func( double mbr2[SPDIMS * 2]; rtr_mbr_t* old_mbr; rtr_mbr_t* new_mbr; - uchar* dptr = NULL; + const uchar* dptr = NULL; ulint flen = 0; ulint dlen = 0; mem_heap_t* temp_heap = NULL; @@ -1753,7 +1752,7 @@ row_upd_changes_ord_field_binary_func( /* For off-page stored data, we need to read the whole field data. */ flen = dfield_get_len(dfield); - dptr = static_cast<byte*>( + dptr = static_cast<const byte*>( dfield_get_data(dfield)); temp_heap = mem_heap_create(1000); @@ -1763,7 +1762,7 @@ row_upd_changes_ord_field_binary_func( flen, temp_heap); } else { - dptr = static_cast<uchar*>(dfield->data); + dptr = static_cast<const uchar*>(dfield->data); dlen = dfield->len; } @@ -1806,13 +1805,13 @@ row_upd_changes_ord_field_binary_func( flen = BTR_EXTERN_FIELD_REF_SIZE; ut_ad(dfield_get_len(new_field) >= BTR_EXTERN_FIELD_REF_SIZE); - dptr = static_cast<byte*>( + dptr = static_cast<const byte*>( dfield_get_data(new_field)) + dfield_get_len(new_field) - BTR_EXTERN_FIELD_REF_SIZE; } else { flen = dfield_get_len(new_field); - dptr = static_cast<byte*>( + dptr = static_cast<const byte*>( dfield_get_data(new_field)); } @@ -1826,7 +1825,8 @@ row_upd_changes_ord_field_binary_func( flen, temp_heap); } else { - dptr = static_cast<uchar*>(upd_field->new_val.data); + dptr = static_cast<const byte*>( + upd_field->new_val.data); dlen = upd_field->new_val.len; } rtree_mbr_from_wkb(dptr + GEO_DATA_HEADER_SIZE, @@ -1884,7 +1884,7 @@ row_upd_changes_ord_field_binary_func( ut_a(dict_index_is_clust(index) || ind_field->prefix_len <= dfield_len); - buf = static_cast<byte*>(dfield_get_data(dfield)); + buf= static_cast<const byte*>(dfield_get_data(dfield)); copy_dfield: ut_a(dfield_len > 0); dfield_copy(&dfield_ext, dfield); |
