diff options
author | Nikita Malyavin <nikitamalyavin@gmail.com> | 2019-03-13 22:31:43 +1000 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2019-04-02 11:03:32 +0200 |
commit | 7e3e2d060b35c6c4f1cec05da79f571108af58d6 (patch) | |
tree | a597c7b87350ed6cd3d32576e5e0d2c47c432e92 /sql/sql_delete.cc | |
parent | 04055060b6fa29e72a7e851486085bd59e708614 (diff) | |
download | mariadb-git-7e3e2d060b35c6c4f1cec05da79f571108af58d6.tar.gz |
MDEV-18859 Server crashes in bitmap_bits_set / pack_row / THD::binlog_write_row upon DELETE .. FOR PORTION with binary logging
rpl_write_set is initialized in TABLE::mark_columns_per_binlog_row_image.
Since we just call use_all_columns for PORTION OF case, no need in
column marking logic here. Instead, initialize table->rpl_write_set in
place.
Diffstat (limited to 'sql/sql_delete.cc')
-rw-r--r-- | sql/sql_delete.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc index 42f96d876a9..d2e511b1d86 100644 --- a/sql/sql_delete.cc +++ b/sql/sql_delete.cc @@ -718,9 +718,14 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, goto got_error; if (table_list->has_period()) + { table->use_all_columns(); + table->rpl_write_set= table->write_set; + } else + { table->mark_columns_needed_for_delete(); + } if ((table->file->ha_table_flags() & HA_CAN_FORCE_BULK_DELETE) && !table->prepare_triggers_for_delete_stmt_or_event()) |