From af57c658090cc52aa20e8cde7d24a563d73ff886 Mon Sep 17 00:00:00 2001 From: Aleksey Midenkov Date: Mon, 20 Jul 2020 18:28:07 +0300 Subject: MDEV-22061 InnoDB: Assertion of missing row in sec index row_start upon REPLACE on a system-versioned table make_versioned_helper() appended new update field unconditionally while it should check if this field already exists in update vector. Misc renames to conform versioning prefix. vers_update_fields() name conforms with sql layer TABLE::vers_update_fields(). --- storage/innobase/row/row0mysql.cc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'storage/innobase/row/row0mysql.cc') diff --git a/storage/innobase/row/row0mysql.cc b/storage/innobase/row/row0mysql.cc index b2256e9905d..d2fc63a5f38 100644 --- a/storage/innobase/row/row0mysql.cc +++ b/storage/innobase/row/row0mysql.cc @@ -1871,10 +1871,10 @@ row_update_for_mysql(row_prebuilt_t* prebuilt) if (prebuilt->versioned_write) { if (node->is_delete == VERSIONED_DELETE) { - node->make_versioned_delete(trx); - } else if (node->update->affects_versioned()) { - node->make_versioned_update(trx); - } + node->vers_make_delete(trx); + } else if (node->update->affects_versioned()) { + node->vers_make_update(trx); + } } for (;;) { @@ -2239,14 +2239,14 @@ row_update_cascade_for_mysql( if (table->versioned()) { if (node->is_delete == PLAIN_DELETE) { - node->make_versioned_delete(trx); - } else if (node->update->affects_versioned()) { + node->vers_make_delete(trx); + } else if (node->update->affects_versioned()) { dberr_t err = row_update_vers_insert(thr, node); if (err != DB_SUCCESS) { return err; } - node->make_versioned_update(trx); - } + node->vers_make_update(trx); + } } for (;;) { -- cgit v1.2.1