mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
MDEV-26433 assertion: table->get_ref_count() == 0 in dict0dict.cc line 1915
Close handlers in THD::drop_temporary_table.
This commit is contained in:
parent
fc456bc97e
commit
8494758e8e
3 changed files with 33 additions and 0 deletions
|
@ -43,3 +43,15 @@ INSERT IGNORE INTO t2 VALUES('abc', 2) ON DUPLICATE KEY UPDATE fld1= 'def';
|
|||
Warnings:
|
||||
Warning 1452 Cannot add or update a child row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `fk` FOREIGN KEY (`fld2`) REFERENCES `t1` (`fld1`))
|
||||
DROP TABLE t2, t1;
|
||||
#
|
||||
# MDEV-26433: assertion: table->get_ref_count() == 0 in dict0dict.cc
|
||||
# line 1915
|
||||
#
|
||||
CREATE TEMPORARY TABLE v0 ( v1 TEXT ( 15 ) CHAR SET BINARY NOT NULL NOT NULL UNIQUE CHECK ( v1 ) ) REPLACE SELECT NULL AS v3 , 74 AS v2 ;
|
||||
ERROR HY000: Field 'v1' doesn't have a default value
|
||||
CREATE TEMPORARY TABLE t1 (i TEXT(15) NOT NULL DEFAULT '' UNIQUE CHECK (i)) engine=innodb
|
||||
REPLACE SELECT NULL AS a;
|
||||
ERROR HY000: Field 'DB_ROW_HASH_1' doesn't have a default value
|
||||
#
|
||||
# End of 10.5 tests
|
||||
#
|
||||
|
|
|
@ -62,3 +62,20 @@ INSERT IGNORE INTO t2 VALUES('abc', 2) ON DUPLICATE KEY UPDATE fld1= 'def';
|
|||
--disable_warnings
|
||||
|
||||
DROP TABLE t2, t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-26433: assertion: table->get_ref_count() == 0 in dict0dict.cc
|
||||
--echo # line 1915
|
||||
--echo #
|
||||
|
||||
--error ER_NO_DEFAULT_FOR_FIELD
|
||||
CREATE TEMPORARY TABLE v0 ( v1 TEXT ( 15 ) CHAR SET BINARY NOT NULL NOT NULL UNIQUE CHECK ( v1 ) ) REPLACE SELECT NULL AS v3 , 74 AS v2 ;
|
||||
|
||||
--error ER_NO_DEFAULT_FOR_FIELD
|
||||
CREATE TEMPORARY TABLE t1 (i TEXT(15) NOT NULL DEFAULT '' UNIQUE CHECK (i)) engine=innodb
|
||||
REPLACE SELECT NULL AS a;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.5 tests
|
||||
--echo #
|
||||
|
|
|
@ -625,6 +625,10 @@ bool THD::drop_temporary_table(TABLE *table, bool *is_trans, bool delete_table)
|
|||
DBUG_PRINT("tmptable", ("Dropping table: '%s'.'%s'",
|
||||
table->s->db.str, table->s->table_name.str));
|
||||
|
||||
// close all handlers in case it is statement abort and some can be left
|
||||
if (is_error())
|
||||
table->file->ha_reset();
|
||||
|
||||
locked= lock_temporary_tables();
|
||||
|
||||
share= tmp_table_share(table);
|
||||
|
|
Loading…
Add table
Reference in a new issue