summaryrefslogtreecommitdiff
path: root/sql/table.cc
diff options
context:
space:
mode:
authorAleksey Midenkov <midenok@gmail.com>2019-12-02 12:51:53 +0300
committerAleksey Midenkov <midenok@gmail.com>2019-12-02 12:51:53 +0300
commit0b8b11b0b15f2d3d20dc801e50fa2beedc080dad (patch)
tree7a7b9f8ec419bff57b3b0258293d91f180908037 /sql/table.cc
parent1d46923a0f6508d52d7ce679a7dd8e7e0e957ae4 (diff)
parentdb32d9457edbcb23b45f433cfcdfc5d86232bbb0 (diff)
downloadmariadb-git-0b8b11b0b15f2d3d20dc801e50fa2beedc080dad.tar.gz
Merge 10.3 into 10.4
Diffstat (limited to 'sql/table.cc')
-rw-r--r--sql/table.cc17
1 files changed, 11 insertions, 6 deletions
diff --git a/sql/table.cc b/sql/table.cc
index 055f02ef267..1d5aaf7e574 100644
--- a/sql/table.cc
+++ b/sql/table.cc
@@ -5110,6 +5110,7 @@ void TABLE::init(THD *thd, TABLE_LIST *tl)
check_unique_buf= NULL;
vers_write= s->versioned;
quick_condition_rows=0;
+ no_cache= false;
initialize_quick_structures();
#ifdef HAVE_REPLICATION
/* used in RBR Triggers */
@@ -7027,12 +7028,8 @@ void TABLE::mark_columns_needed_for_update()
/*
For System Versioning we have to read all columns since we store
a copy of previous row with modified row_end back to a table.
-
- Without write_set versioning.rpl,row is unstable until MDEV-16370 is
- applied.
*/
bitmap_union(read_set, &s->all_set);
- bitmap_union(write_set, &s->all_set);
need_signal= true;
}
if (check_constraints)
@@ -7195,8 +7192,16 @@ void TABLE::mark_columns_per_binlog_row_image()
binary log will include all columns read anyway.
*/
mark_columns_used_by_index_no_reset(s->primary_key, read_set);
- /* Only write columns that have changed */
- rpl_write_set= write_set;
+ if (versioned())
+ {
+ // TODO: After MDEV-18432 we don't pass history rows, so remove this:
+ rpl_write_set= &s->all_set;
+ }
+ else
+ {
+ /* Only write columns that have changed */
+ rpl_write_set= write_set;
+ }
break;
default: