diff options
Diffstat (limited to 'mysql-test/t/temp_table.test')
-rw-r--r-- | mysql-test/t/temp_table.test | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/mysql-test/t/temp_table.test b/mysql-test/t/temp_table.test new file mode 100644 index 00000000000..3cf18bae9fe --- /dev/null +++ b/mysql-test/t/temp_table.test @@ -0,0 +1,62 @@ +# +# Test of temporary tables +# + +drop table if exists t1,t2; +CREATE TABLE t1 (c int not null, d char (10) not null); +insert into t1 values(1,""),(2,"a"),(3,"b"); +CREATE TEMPORARY TABLE t1 (a int not null, b char (10) not null); +insert into t1 values(4,"e"),(5,"f"),(6,"g"); +alter table t1 rename t2; +select * from t1; +select * from t2; +CREATE TABLE t2 (x int not null, y int not null); +alter table t2 rename t1; +select * from t1; +create TEMPORARY TABLE t2 type=heap select * from t1; +create TEMPORARY TABLE IF NOT EXISTS t2 (a int) type=heap; + +# This should give errors +!$1050 CREATE TEMPORARY TABLE t1 (a int not null, b char (10) not null); +!$1050 ALTER TABLE t1 RENAME t2; + +select * from t2; +alter table t2 add primary key (a,b); +drop table t1,t2; +select * from t1; +drop table t2; +create temporary table t1 select *,2 as "e" from t1; +select * from t1; +drop table t1; +drop table t1; + +# +# Test CONCAT_WS with temporary tables +# + +drop table if exists t1; +CREATE TABLE t1 (pkCrash INTEGER PRIMARY KEY,strCrash VARCHAR(255)); +INSERT INTO t1 ( pkCrash, strCrash ) VALUES ( 1, '1'); +SELECT CONCAT_WS(pkCrash, strCrash) FROM t1; +drop table t1; +create temporary table t1 select 1 as 'x'; +drop table t1; +CREATE TABLE t1 (x INT); +INSERT INTO t1 VALUES (1), (2), (3); +CREATE TEMPORARY TABLE tmp SELECT *, NULL FROM t1; +drop table t1; + +# +# Problem with ELT +# +create temporary table t1 (id int(10) not null unique); +create temporary table t2 (id int(10) not null primary key, +val int(10) not null); + +# put in some initial values +insert into t1 values (1),(2),(4); +insert into t2 values (1,1),(2,1),(3,1),(4,2); + +# do a query using ELT, a join and an ORDER BY. +select one.id, two.val, elt(two.val,'one','two') from t1 one, t2 two where two.id=one.id order by one.id; +drop table t1,t2; |