mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-17885 TRUNCATE on temporary table causes ER_GET_ERRNO
ha_innobase::truncate(): Because CREATE TEMPORARY TABLE allows invalid table options when innodb_file_per_table=1, do allow them also in TRUNCATE for temporary tables.
This commit is contained in:
@ -30,3 +30,12 @@ SELECT * FROM t1;
|
||||
a
|
||||
1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-17885 TRUNCATE on temporary table causes ER_GET_ERRNO
|
||||
#
|
||||
CREATE TEMPORARY TABLE t1 (a INT) ENCRYPTED=NO ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES(1);
|
||||
TRUNCATE t1;
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
DROP TEMPORARY TABLE t1;
|
||||
|
@ -41,3 +41,12 @@ CREATE TABLE t1 (a INT) ENGINE=InnoDB;
|
||||
--move_file $MYSQLD_DATADIR/test/hidden.frm $MYSQLD_DATADIR/test/t1.frm
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-17885 TRUNCATE on temporary table causes ER_GET_ERRNO
|
||||
--echo #
|
||||
CREATE TEMPORARY TABLE t1 (a INT) ENCRYPTED=NO ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES(1);
|
||||
TRUNCATE t1;
|
||||
SELECT * FROM t1;
|
||||
DROP TEMPORARY TABLE t1;
|
||||
|
@ -13531,7 +13531,8 @@ int ha_innobase::truncate()
|
||||
row_mysql_unlock_data_dictionary(trx);
|
||||
} else {
|
||||
err = create(name, table, &info,
|
||||
dict_table_is_file_per_table(ib_table), trx);
|
||||
ib_table->is_temporary()
|
||||
|| dict_table_is_file_per_table(ib_table), trx);
|
||||
}
|
||||
|
||||
trx_free_for_mysql(trx);
|
||||
|
Reference in New Issue
Block a user