summaryrefslogtreecommitdiff
path: root/sql/log_event.cc
diff options
context:
space:
mode:
authorAleksey Midenkov <midenok@gmail.com>2019-05-11 17:27:23 +0300
committerAleksey Midenkov <midenok@gmail.com>2019-10-10 00:20:34 +0300
commita92f3146d22cb3b290228c0e66eb1ea6c7b7c373 (patch)
tree012598feb31ab78c15501db3a17f7919945131d4 /sql/log_event.cc
parent647a38818a44012c22128e0e1cad96739aa8a5c2 (diff)
downloadmariadb-git-a92f3146d22cb3b290228c0e66eb1ea6c7b7c373.tar.gz
MDEV-19406 Assertion on updating view of join with versioned table
TABLE::mark_columns_needed_for_update(): use_all_columns() assigns pointer of all_set into read_set and write_set, but this is not good since all_set is changed later by TABLE::mark_columns_used_by_index_no_reset(). Do column_bitmaps_signal() whenever we change read_set/write_set.
Diffstat (limited to 'sql/log_event.cc')
-rw-r--r--sql/log_event.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc
index dc7203fc94f..78111e86f20 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -13450,6 +13450,7 @@ Rows_log_event::write_row(rpl_group_info *rgi,
{
ulong sec_part;
bitmap_set_bit(table->read_set, table->vers_start_field()->field_index);
+ table->file->column_bitmaps_signal();
// Check whether a row came from unversioned table and fix vers fields.
if (table->vers_start_field()->get_timestamp(&sec_part) == 0 && sec_part == 0)
table->vers_update_fields();
@@ -14010,6 +14011,7 @@ int Rows_log_event::find_row(rpl_group_info *rgi)
table->vers_end_field()->set_max();
m_vers_from_plain= true;
}
+ table->file->column_bitmaps_signal();
}
DBUG_PRINT("info",("looking for the following record"));