403Webshell
Server IP : 88.99.149.37  /  Your IP : 216.73.216.141
Web Server : nginx/1.31.2
System : Linux server-88-99-149-37 6.12.0-124.56.5.el10_1.x86_64 #1 SMP PREEMPT_DYNAMIC Fri May 15 06:12:08 EDT 2026 x86_64
User : muralimurth ( 1015)
PHP Version : 8.4.23
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/local/mysql/mysql-test/main/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/local/mysql/mysql-test/main/reopen_temp_table.test
--source include/have_innodb.inc

#Temporary table is only available to the current session
#and  the view cannot be created based on the temporary table
--source include/no_view_protocol.inc

--echo #
--echo # MDEV-5535: Cannot reopen temporary table
--echo #

--disable_warnings
DROP DATABASE IF EXISTS temp_db;
--enable_warnings

CREATE DATABASE temp_db;
USE temp_db;

--echo #
--echo # Reopen temporary table
--echo #

CREATE TEMPORARY TABLE t1(i int)ENGINE=INNODB;
INSERT INTO t1 VALUES(1), (2);
SELECT * FROM t1 a, t1 b;
DROP TABLE t1;

--echo #
--echo # CREATE & Stored routines
--echo #

DELIMITER |;
CREATE FUNCTION f1() RETURNS INT
BEGIN
 DROP TEMPORARY TABLE t1;
 RETURN 1;
END|
DELIMITER ;|
--error ER_BAD_TABLE_ERROR
CREATE TEMPORARY TABLE t1 AS SELECT f1();
DROP FUNCTION f1;

DELIMITER |;
CREATE FUNCTION f2() RETURNS INT
BEGIN
 CREATE TEMPORARY TABLE t2(i INT);
 INSERT INTO t2 VALUES(1), (2);
 RETURN 1;
END|
DELIMITER ;|
--error ER_TABLE_EXISTS_ERROR
CREATE TEMPORARY TABLE t2 AS SELECT f2();
SELECT * FROM t2;
DROP TABLE t2;
DROP FUNCTION f2;

CREATE TEMPORARY TABLE t3 AS SELECT 1 AS a;
DELIMITER |;
CREATE PROCEDURE p1()
BEGIN
  DROP TEMPORARY TABLE t3;
end|
CREATE FUNCTION f3() RETURNS INT
BEGIN
  CALL p1();
  RETURN 1;
END|
DELIMITER ;|
PREPARE STMT FROM "SELECT f3() AS my_Column, a FROM t3";
--error ER_CANT_REOPEN_TABLE
EXECUTE STMT;
DROP TABLE t3;
DROP FUNCTION f3;
DROP PROCEDURE p1;

CREATE TEMPORARY TABLE t4 (i INT);
INSERT INTO t4 VALUES(1), (2);
DELIMITER |;
CREATE FUNCTION f4() RETURNS INT
BEGIN
  DROP TEMPORARY TABLE t4;
  RETURN 1;
END|
DELIMITER ;|
--error ER_CANT_REOPEN_TABLE
SELECT f4() FROM t4;
SELECT * FROM t4;
DROP TABLE t4;
DROP FUNCTION f4;

CREATE TEMPORARY TABLE t5 AS SELECT 1 AS a;
DELIMITER |;
CREATE PROCEDURE p2()
BEGIN
  DROP TEMPORARY TABLE t5;
END|
CREATE FUNCTION f5() RETURNS INT
BEGIN
  CALL p2();
  RETURN 1;
END|
DELIMITER ;|
--error ER_CANT_REOPEN_TABLE
SELECT f5() AS my_column, a FROM t5;
DROP TABLE t5;
DROP FUNCTION f5;
DROP PROCEDURE p2;

--echo #
--echo # CTAS
--echo #

CREATE TABLE t1(i INT);
INSERT INTO t1 VALUES(1), (2);
CREATE TEMPORARY TABLE t1
  SELECT temp_1.i a, temp_2.i b FROM t1 AS temp_1, t1 AS temp_2;
SELECT * FROM t1;
DROP TABLE t1;
SELECT * FROM t1;
DROP TABLE t1;

--echo #
--echo # HANDLER
--echo #

CREATE TABLE t1 (a INT, KEY a(a));
INSERT INTO t1 (a) VALUES (1), (2), (3), (4), (5);
CREATE TABLE t2 (a INT, KEY a (a)) SELECT * FROM t1;
CREATE TEMPORARY TABLE t3 (a INT, KEY a (a)) SELECT * FROM t2;
HANDLER t3 OPEN;
SELECT * FROM t1;
LOCK TABLE t1 READ;
--error ER_LOCK_OR_ACTIVE_TRANSACTION
HANDLER t3 OPEN;
UNLOCK TABLES;
--error ER_NONUNIQ_TABLE
HANDLER t3 OPEN;
HANDLER t3 READ NEXT;
HANDLER t3 OPEN AS t3_1;
HANDLER t3_1 READ NEXT;
HANDLER t3_1 READ NEXT;
HANDLER t3 CLOSE;
HANDLER t3_1 CLOSE;
DROP TEMPORARY TABLE t3;
DROP TABLE t1, t2;

--echo #
--echo # INSERT-SELECT
--echo #

CREATE TEMPORARY TABLE t4 (a INT) ENGINE=MYISAM;
INSERT INTO t4 VALUES(1), (2);
INSERT INTO t4 SELECT * FROM t4;
SELECT COUNT(*) FROM t4;
DROP TABLE t4;

CREATE TABLE t5 (a INT) ENGINE=INNODB;
CREATE TEMPORARY TABLE t6 (a INT) ENGINE=INNODB;
INSERT INTO t5 VALUES(1), (2);
INSERT INTO t6 SELECT * FROM t5;
INSERT INTO t6 SELECT * FROM t6;
INSERT INTO t5 SELECT * FROM t6;
SELECT COUNT(*)=6 FROM t5;
SELECT COUNT(*)=4 FROM t6;
DROP TABLE t5, t6;

--echo #
--echo # MDEV-10216: Assertion `strcmp(share->unique_file_name,filename) ||
--echo # share->last_version' failed in myisam/mi_open.c:67: test_if_reopen
--echo #
CREATE TEMPORARY TABLE t7 (i INT) ENGINE=MYISAM;
INSERT INTO t7 VALUES(1);
ALTER TABLE t7 RENAME TO t;
SELECT * FROM t a, t b;
DROP TABLE t;

CREATE TEMPORARY TABLE t7 (i INT) ENGINE=ARIA;
INSERT INTO t7 VALUES(1);
ALTER TABLE t7 RENAME TO t;
SELECT * FROM t a, t b;
DROP TABLE t;

CREATE TEMPORARY TABLE t8 (i INT) ENGINE=ARIA;
ALTER TABLE t8 rename to t;
SELECT (SELECT 1 FROM t a1, t a2 ) AS f1, ( SELECT 2 FROM t a3 ) AS f2 FROM DUAL;
DROP TABLE t;

--echo # Cleanup
DROP DATABASE temp_db;
USE test;

#
# MDEV-17070 Table corruption or Assertion `table->file->stats.records > 0 || error' or Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())' failed upon actions on temporary table
#
create temporary table t1 (f char(255), b int, index(b)) engine=MyISAM;
replace into t1 values (null,1),(null,2);
alter table t1 add fulltext key(f);
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t1 change if exists a b int, algorithm=inplace;
check table t1;
select * from t1;
drop table t1;

create temporary table t1 (f char(255), b int, index(b)) engine=aria transactional=1;
replace into t1 values (null,1),(null,2);
alter table t1 add fulltext key(f);
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t1 change if exists a b int, algorithm=inplace;
check table t1;
select * from t1;
drop table t1;

create temporary table t1 (f char(255), b int, index(b)) engine=aria transactional=0 row_format=page;
replace into t1 values (null,1),(null,2);
alter table t1 add fulltext key(f);
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t1 change if exists a b int, algorithm=inplace;
check table t1;
select * from t1;
drop table t1;

create temporary table t1 (f char(255), b int, index(b)) engine=aria transactional=0 row_format=dynamic;
replace into t1 values (null,1),(null,2);
alter table t1 add fulltext key(f);
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t1 change if exists a b int, algorithm=inplace;
check table t1;
select * from t1;
drop table t1;

Youez - 2016 - github.com/yon3zu
LinuXploit