From 8ba06032aea45c9a7d587b60d3a783f265726bd7 Mon Sep 17 00:00:00 2001 From: Eugene Kosov Date: Tue, 19 Dec 2017 15:12:11 +0300 Subject: MDEV-14684 Assertion `table' failed in mysql_delete SQL: disable TRUNCATE table_name TO statement for VIEWs --- sql/sql_delete.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'sql/sql_delete.cc') diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc index 9c535e2124a..fcd5708863a 100644 --- a/sql/sql_delete.cc +++ b/sql/sql_delete.cc @@ -312,6 +312,12 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, bool truncate_history= table_list->vers_conditions; if (truncate_history) { + if (table_list->is_view_or_derived()) + { + my_error(ER_VERS_TRUNCATE_TO_VIEW, MYF(0)); + DBUG_RETURN(true); + } + TABLE *table= table_list->table; DBUG_ASSERT(table); @@ -328,7 +334,8 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, DBUG_RETURN(TRUE); // trx_sees() in InnoDB reads sys_trx_start - if (!table->versioned(VERS_TIMESTAMP)) { + if (!table->versioned(VERS_TIMESTAMP)) + { DBUG_ASSERT(table_list->vers_conditions.type == SYSTEM_TIME_BEFORE); bitmap_set_bit(table->read_set, table->vers_end_field()->field_index); } -- cgit v1.2.1