diff options
author | sachin <sachin.setiya@maridb.com> | 2018-06-05 15:14:19 +0530 |
---|---|---|
committer | sachin <sachin.setiya@mariadb.com> | 2018-07-12 10:37:22 +0530 |
commit | f1e9bf505e5b8577fddf4342d673c3e8606d4ffd (patch) | |
tree | c959fd0a233f3b6a392d83b5c223f0a676c98b2a /sql/key.cc | |
parent | 2fbf2277ffec86d69f793534da7043b6dd540780 (diff) | |
download | mariadb-git-bb-5.5-16166.tar.gz |
MDEV-16166 RBR breaks with HA_ERR_KEY_NOT_FOUND upon DELETE from table...bb-5.5-16166
with spatial index
So the issue is since it is spatial index , at the time of searching index
for key (Rows_log_event::find_row) we use wrong field image we use
Field::itRAW while we should be using Field::itMBR
Diffstat (limited to 'sql/key.cc')
-rw-r--r-- | sql/key.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sql/key.cc b/sql/key.cc index 700bf6a05a6..7e5a3309b10 100644 --- a/sql/key.cc +++ b/sql/key.cc @@ -145,7 +145,8 @@ void key_copy(uchar *to_key, uchar *from_record, KEY *key_info, { key_length-= HA_KEY_BLOB_LENGTH; length= min(key_length, key_part->length); - uint bytes= key_part->field->get_key_image(to_key, length, Field::itRAW); + uint bytes= key_part->field->get_key_image(to_key, length, + key_info->flags & HA_SPATIAL ? Field::itMBR : Field::itRAW); if (with_zerofill && bytes < length) bzero((char*) to_key + bytes, length - bytes); to_key+= HA_KEY_BLOB_LENGTH; |