From c0fe0cce4359b9bb46ecea37477c0e00280cf632 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 20 Oct 2022 14:10:04 +0200 Subject: [PATCH] MDEV-29830 Assertion `table->versioned()' in THD::vers_insert_history_fast don't set VERS_ROW_START or VERS_ROW_END flags on fields of a temporary table (as not versioned tables should not have ROW START/ROW END fields) --- sql/field.cc | 4 +--- sql/sql_class.h | 1 + 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/sql/field.cc b/sql/field.cc index 4a81ff09a29..862c40b847d 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -2569,9 +2569,7 @@ Field *Field::make_new_field(MEM_ROOT *root, TABLE *new_table, */ tmp->unireg_check= Field::NONE; tmp->flags&= (NOT_NULL_FLAG | BLOB_FLAG | UNSIGNED_FLAG | - ZEROFILL_FLAG | BINARY_FLAG | ENUM_FLAG | SET_FLAG | - VERS_ROW_START | VERS_ROW_END | - VERS_UPDATE_UNVERSIONED_FLAG); + ZEROFILL_FLAG | BINARY_FLAG | ENUM_FLAG | SET_FLAG); tmp->reset_fields(); tmp->invisible= VISIBLE; return tmp; diff --git a/sql/sql_class.h b/sql/sql_class.h index b7acea5ed3e..5085db8f837 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -5577,6 +5577,7 @@ public: bool vers_insert_history_fast(const TABLE *table) { + DBUG_ASSERT(table->versioned()); return table->versioned(VERS_TIMESTAMP) && (variables.option_bits & OPTION_INSERT_HISTORY) && lex->duplicates == DUP_ERROR;