~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/temp_table.test

  • Committer: Mark Atwood
  • Date: 2008-10-03 01:39:40 UTC
  • mto: This revision was merged to the branch mainline in revision 437.
  • Revision ID: mark@fallenpegasus.com-20081003013940-mvefjo725dltz41h
rename logging_noop to logging_query

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#
2
 
# Test of temporary tables
3
 
#
4
 
 
5
 
--disable_warnings
6
 
drop table if exists t1,t2;
7
 
# we don't support views
8
 
#drop view if exists v1;
9
 
--enable_warnings
10
 
 
11
 
CREATE TABLE t1 (c int not null, d char (10) not null);
12
 
insert into t1 values(1,""),(2,"a"),(3,"b");
13
 
CREATE TEMPORARY TABLE t1 (a int not null, b char (10) not null);
14
 
insert into t1 values(4,"e"),(5,"f"),(6,"g");
15
 
alter table t1 rename t2;
16
 
select * from t1;
17
 
select * from t2;
18
 
CREATE TABLE t2 (x int not null, y int not null);
19
 
alter table t2 rename t1;
20
 
select * from t1;
21
 
create TEMPORARY TABLE t2 engine=MEMORY select * from t1;
22
 
create TEMPORARY TABLE IF NOT EXISTS t2 (a int) engine=MEMORY;
23
 
 
24
 
# This should give errors
25
 
--error ER_TABLE_EXISTS_ERROR
26
 
CREATE TEMPORARY TABLE t1 (a int not null, b char (10) not null);
27
 
--error ER_TABLE_EXISTS_ERROR
28
 
ALTER TABLE t1 RENAME t2;
29
 
 
30
 
select * from t2;
31
 
alter table t2 add primary key (a,b);
32
 
drop table t1,t2;
33
 
select * from t1;
34
 
drop table t2;
35
 
create temporary table t1 select *,2 as "e" from t1;
36
 
select * from t1;
37
 
drop table t1;
38
 
drop table t1;
39
 
 
40
 
#
41
 
# Test CONCAT_WS with temporary tables
42
 
#
43
 
 
44
 
CREATE TABLE t1 (pkCrash INTEGER PRIMARY KEY,strCrash VARCHAR(255));
45
 
INSERT INTO t1 ( pkCrash, strCrash ) VALUES ( 1, '1');
46
 
SELECT CONCAT_WS(pkCrash, strCrash) FROM t1;
47
 
drop table t1;
48
 
create temporary table t1 select 1 as 'x';
49
 
drop table t1;
50
 
CREATE TABLE t1 (x INT);
51
 
INSERT INTO t1 VALUES (1), (2), (3);
52
 
CREATE TEMPORARY TABLE tmp SELECT *, NULL FROM t1;
53
 
drop table t1;
54
 
 
55
 
#
56
 
# Problem with ELT
57
 
#
58
 
create temporary table t1 (id int not null unique);
59
 
create temporary table t2 (id int not null primary key, val int not null);
60
 
 
61
 
# put in some initial values
62
 
insert into t1 values (1),(2),(4);
63
 
insert into t2 values (1,1),(2,1),(3,1),(4,2);
64
 
 
65
 
# do a query using ELT, a join and an ORDER BY.
66
 
select one.id, two.val, elt(two.val,'one','two') from t1 one, t2 two where two.id=one.id order by one.id;
67
 
drop table t1,t2;
68
 
 
69
 
#
70
 
# Test of failed ALTER TABLE on temporary table
71
 
#
72
 
create temporary table t1 (a int not null);
73
 
insert into t1 values (1),(1);
74
 
alter table t1 add primary key (a);
75
 
drop table t1;
76
 
 
77
 
#
78
 
# In MySQL 4.0.4 doing a GROUP BY on a NULL column created a disk based
79
 
# temporary table when a memory based one would be good enough.
80
 
 
81
 
CREATE TEMPORARY TABLE t1 (
82
 
  d datetime default NULL
83
 
) ENGINE=MyISAM;
84
 
 
85
 
 
86
 
INSERT INTO t1 VALUES ('2002-10-24 14:50:32'),('2002-10-24 14:50:33'),('2002-10-24 14:50:34'),('2002-10-24 14:50:34'),('2002-10-24 14:50:34'),('2002-10-24 14:50:35'),('2002-10-24 14:50:35'),('2002-10-24 14:50:35'),('2002-10-24 14:50:35'),('2002-10-24 14:50:36'),('2002-10-24 14:50:36'),('2002-10-24 14:50:36'),('2002-10-24 14:50:36'),('2002-10-24 14:50:37'),('2002-10-24 14:50:37'),('2002-10-24 14:50:37'),('2002-10-24 14:50:37'),('2002-10-24 14:50:38'),('2002-10-24 14:50:38'),('2002-10-24 14:50:38'),('2002-10-24 14:50:39'),('2002-10-24 14:50:39'),('2002-10-24 14:50:39'),('2002-10-24 14:50:39'),('2002-10-24 14:50:40'),('2002-10-24 14:50:40'),('2002-10-24 14:50:40');
87
 
 
88
 
flush status;
89
 
select * from t1 group by d;
90
 
--replace_column 2 #
91
 
show status like "created_tmp%tables";
92
 
drop table t1;
93
 
 
94
 
# Fix for BUG#8921: Check that temporary table is ingored by view commands.
95
 
# Commenting this out since we don't support views
96
 
#create temporary table v1 as select 'This is temp. table' A;
97
 
#create view v1 as select 'This is view' A;
98
 
#select * from v1;
99
 
#show create table v1;
100
 
#show create view v1;
101
 
#drop view v1;
102
 
#select * from v1;
103
 
#create view v1 as select 'This is view again' A;
104
 
#select * from v1;
105
 
#drop table v1;
106
 
#select * from v1;
107
 
#drop view v1;
108
 
 
109
 
# Bug #8497: tmpdir with extra slashes would cause failures
110
 
#
111
 
create table t1 (a int, b int, index(a), index(b));
112
 
create table t2 (c int auto_increment, d varchar(255), primary key (c));
113
 
insert into t1 values (3,1),(3,2);
114
 
insert into t2 values (NULL, 'foo'), (NULL, 'bar');
115
 
select d, c from t1 left join t2 on b = c where a = 3 order by d;
116
 
drop table t1, t2;
117
 
 
118
 
 
119
 
#
120
 
# Check that it's not possible to drop a base table with
121
 
# DROP TEMPORARY statement.
122
 
#
123
 
CREATE TABLE t1 (i INT);
124
 
CREATE TEMPORARY TABLE t2 (i INT);
125
 
 
126
 
--error ER_BAD_TABLE_ERROR
127
 
DROP TEMPORARY TABLE t2, t1;
128
 
 
129
 
# Table t2 should have been dropped.
130
 
--error ER_TABLE_UNKNOWN
131
 
SELECT * FROM t2;
132
 
# But table t1 should still be there.
133
 
SELECT * FROM t1;
134
 
 
135
 
DROP TABLE t1;
136
 
 
137
 
 
138
 
--echo End of 4.1 tests.
139
 
 
140
 
#
141
 
# Bug #24791: Union with AVG-groups generates wrong results
142
 
#
143
 
CREATE TABLE t1 ( c FLOAT( 20, 14 ) );
144
 
INSERT INTO t1 VALUES( 12139 );
145
 
 
146
 
CREATE TABLE t2 ( c FLOAT(30,18) );
147
 
INSERT INTO t2 VALUES( 123456 );
148
 
 
149
 
SELECT AVG( c ) FROM t1 UNION SELECT 1;
150
 
SELECT 1 UNION SELECT AVG( c ) FROM t1;
151
 
SELECT 1 UNION SELECT * FROM t2 UNION SELECT 1;
152
 
SELECT c/1 FROM t1 UNION SELECT 1;
153
 
 
154
 
DROP TABLE t1, t2;
155
 
 
156
 
#
157
 
# Test truncate with temporary tables
158
 
#
159
 
 
160
 
create temporary table t1 (a int);
161
 
insert into t1 values (4711);
162
 
select * from t1;
163
 
truncate t1;
164
 
insert into t1 values (42);
165
 
select * from t1;
166
 
drop table t1;
167
 
 
168
 
#
169
 
# Bug #35392: Delete all statement does not execute properly after 
170
 
# few delete statements
171
 
#
172
 
CREATE TEMPORARY TABLE t1(a INT, b VARCHAR(20));
173
 
INSERT INTO t1 VALUES(1, 'val1'), (2, 'val2'), (3, 'val3');
174
 
DELETE FROM t1 WHERE a=1;
175
 
SELECT count(*) FROM t1;
176
 
DELETE FROM t1;
177
 
SELECT * FROM t1;
178
 
DROP TABLE t1;
179
 
 
180
 
--echo End of 5.1 tests