mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
MDEV-12466 : Assertion `thd->transaction.stmt.is_empty() || thd->in_sub_stmt || ...
When "FLUSH TABLE ... FOR EXPORT" fails, the SQL layer should rollback the statement. Otherwise we hit an assert when we try to close the tables while having a non-empty list of statement transaction participants.
This commit is contained in:
@ -30,6 +30,7 @@
|
|||||||
#include "sql_show.h"
|
#include "sql_show.h"
|
||||||
#include "debug_sync.h"
|
#include "debug_sync.h"
|
||||||
#include "des_key_file.h"
|
#include "des_key_file.h"
|
||||||
|
#include "transaction.h"
|
||||||
|
|
||||||
static void disable_checkpoints(THD *thd);
|
static void disable_checkpoints(THD *thd);
|
||||||
|
|
||||||
@ -593,6 +594,7 @@ bool flush_tables_with_read_lock(THD *thd, TABLE_LIST *all_tables)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
error_reset_bits:
|
error_reset_bits:
|
||||||
|
trans_rollback_stmt(thd);
|
||||||
close_thread_tables(thd);
|
close_thread_tables(thd);
|
||||||
thd->variables.option_bits&= ~OPTION_TABLE_LOCK;
|
thd->variables.option_bits&= ~OPTION_TABLE_LOCK;
|
||||||
error:
|
error:
|
||||||
|
@ -81,3 +81,10 @@ ROCKSDB_DDL Gamma
|
|||||||
ROCKSDB_INDEX_FILE_MAP Gamma
|
ROCKSDB_INDEX_FILE_MAP Gamma
|
||||||
ROCKSDB_LOCKS Gamma
|
ROCKSDB_LOCKS Gamma
|
||||||
ROCKSDB_TRX Gamma
|
ROCKSDB_TRX Gamma
|
||||||
|
#
|
||||||
|
# MDEV-12466 : Assertion `thd->transaction.stmt.is_empty() || thd->in_sub_stmt || ...
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (i INT) ENGINE=RocksDB;
|
||||||
|
FLUSH TABLE t1 FOR EXPORT;
|
||||||
|
ERROR HY000: Storage engine ROCKSDB of the table `test`.`t1` doesn't have this option
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -73,3 +73,13 @@ set global rocksdb_strict_collation_check=@tmp_rscc;
|
|||||||
--echo #
|
--echo #
|
||||||
select plugin_name, plugin_maturity from information_schema.plugins where plugin_name like '%rocksdb%';
|
select plugin_name, plugin_maturity from information_schema.plugins where plugin_name like '%rocksdb%';
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-12466 : Assertion `thd->transaction.stmt.is_empty() || thd->in_sub_stmt || ...
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (i INT) ENGINE=RocksDB;
|
||||||
|
--error ER_ILLEGAL_HA
|
||||||
|
FLUSH TABLE t1 FOR EXPORT;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user