1drop table if exists t1,t2,t3;
2CREATE TABLE t2 (a int);
3INSERT INTO t2 VALUES(1),(2),(3);
4#
5# Check first syntax and wrong usage
6#
7CREATE OR REPLACE TABLE IF NOT EXISTS t1 (a int);
8ERROR HY000: Incorrect usage of OR REPLACE and IF NOT EXISTS
9create or replace table mysql.general_log (a int);
10ERROR HY000: You cannot 'CREATE OR REPLACE' a log table if logging is enabled
11create or replace table mysql.slow_log (a int);
12ERROR HY000: You cannot 'CREATE OR REPLACE' a log table if logging is enabled
13#
14# Usage when table doesn't exist
15#
16CREATE OR REPLACE TABLE t1 (a int);
17CREATE TABLE t1 (a int);
18ERROR 42S01: Table 't1' already exists
19DROP TABLE t1;
20CREATE OR REPLACE TEMPORARY TABLE t1 (a int);
21CREATE TEMPORARY TABLE t1 (a int, b int, c int);
22ERROR 42S01: Table 't1' already exists
23DROP TEMPORARY TABLE t1;
24#
25# Testing with temporary tables
26#
27CREATE OR REPLACE TABLE t1 (a int);
28CREATE OR REPLACE TEMPORARY TABLE t1 (a int);
29CREATE OR REPLACE TEMPORARY TABLE t1 (a int, b int);
30SHOW CREATE TABLE t1;
31Table	Create Table
32t1	CREATE TEMPORARY TABLE `t1` (
33  `a` int(11) DEFAULT NULL,
34  `b` int(11) DEFAULT NULL
35) ENGINE=MyISAM DEFAULT CHARSET=latin1
36DROP TEMPORARY TABLE t1;
37SHOW CREATE TABLE t1;
38Table	Create Table
39t1	CREATE TABLE `t1` (
40  `a` int(11) DEFAULT NULL
41) ENGINE=MyISAM DEFAULT CHARSET=latin1
42DROP TABLE t1;
43create temporary table t1 (i int) engine=InnoDB;
44create or replace temporary table t1 (a int, b int) engine=InnoDB;
45create or replace temporary table t1 (j int);
46show create table t1;
47Table	Create Table
48t1	CREATE TEMPORARY TABLE `t1` (
49  `j` int(11) DEFAULT NULL
50) ENGINE=MyISAM DEFAULT CHARSET=latin1
51drop table t1;
52CREATE OR REPLACE TABLE t1 (a int);
53LOCK TABLES t1 write;
54CREATE OR REPLACE TEMPORARY TABLE t1 (a int);
55CREATE OR REPLACE TEMPORARY TABLE t1 (a int, b int);
56CREATE OR REPLACE TEMPORARY TABLE t1 (a int, b int) engine= innodb;
57CREATE OR REPLACE TEMPORARY TABLE t1 (a int) engine= innodb;
58CREATE OR REPLACE TEMPORARY TABLE t1 (a int, b int) engine=myisam;
59SHOW CREATE TABLE t1;
60Table	Create Table
61t1	CREATE TEMPORARY TABLE `t1` (
62  `a` int(11) DEFAULT NULL,
63  `b` int(11) DEFAULT NULL
64) ENGINE=MyISAM DEFAULT CHARSET=latin1
65DROP TEMPORARY TABLE t1;
66SHOW CREATE TABLE t1;
67Table	Create Table
68t1	CREATE TABLE `t1` (
69  `a` int(11) DEFAULT NULL
70) ENGINE=MyISAM DEFAULT CHARSET=latin1
71CREATE OR REPLACE TABLE t2 (a int);
72ERROR HY000: Table 't2' was not locked with LOCK TABLES
73DROP TABLE t1;
74UNLOCK TABLES;
75CREATE OR REPLACE TEMPORARY TABLE t1 (a int) SELECT * from t2;
76SELECT * FROM t1;
77a
781
792
803
81CREATE OR REPLACE TEMPORARY TABLE t1 (b int) SELECT * from t2;
82SELECT * FROM t1;
83b	a
84NULL	1
85NULL	2
86NULL	3
87SHOW CREATE TABLE t1;
88Table	Create Table
89t1	CREATE TEMPORARY TABLE `t1` (
90  `b` int(11) DEFAULT NULL,
91  `a` int(11) DEFAULT NULL
92) ENGINE=MyISAM DEFAULT CHARSET=latin1
93DROP TABLE t1;
94CREATE TEMPORARY TABLE t1 AS SELECT a FROM t2;
95CREATE TEMPORARY TABLE IF NOT EXISTS t1(a int, b int) SELECT 1,2 FROM t2;
96Warnings:
97Note	1050	Table 't1' already exists
98DROP TABLE t1;
99CREATE TABLE t1 (a int);
100CREATE OR REPLACE TABLE t1 AS SELECT 1;
101SHOW CREATE TABLE t1;
102Table	Create Table
103t1	CREATE TABLE `t1` (
104  `1` int(1) NOT NULL
105) ENGINE=MyISAM DEFAULT CHARSET=latin1
106DROP TABLE t1;
107create table t1 (a int);
108create or replace table t1 as select * from t1;
109ERROR HY000: Table 't1' is specified twice, both as a target for 'CREATE' and as a separate source for data
110create or replace table t1 as select a from (select a from t1) as t3;
111ERROR HY000: Table 't1' is specified twice, both as a target for 'CREATE' and as a separate source for data
112create or replace table t1 as select a from t2 where t2.a in (select a from t1);
113ERROR HY000: Table 't1' is specified twice, both as a target for 'CREATE' and as a separate source for data
114drop table t1;
115#
116# Testing with normal tables
117#
118CREATE OR REPLACE TABLE t1 (a int);
119CREATE OR REPLACE TABLE t1 (a int, b int);
120SHOW CREATE TABLE t1;
121Table	Create Table
122t1	CREATE TABLE `t1` (
123  `a` int(11) DEFAULT NULL,
124  `b` int(11) DEFAULT NULL
125) ENGINE=MyISAM DEFAULT CHARSET=latin1
126DROP TABLE t1;
127CREATE TABLE t1 (a int) SELECT * from t2;
128SELECT * FROM t1;
129a
1301
1312
1323
133TRUNCATE TABLE t1;
134CREATE TABLE IF NOT EXISTS t1 (a int) SELECT * from t2;
135Warnings:
136Note	1050	Table 't1' already exists
137SELECT * FROM t1;
138a
139DROP TABLE t1;
140CREATE TABLE t1 (i int);
141CREATE OR REPLACE TABLE t1 AS SELECT 1;
142SHOW CREATE TABLE t1;
143Table	Create Table
144t1	CREATE TABLE `t1` (
145  `1` int(1) NOT NULL
146) ENGINE=MyISAM DEFAULT CHARSET=latin1
147DROP TABLE t1;
148CREATE OR REPLACE TABLE t1 (a int);
149LOCK TABLES t1 write,t2 write;
150CREATE OR REPLACE TABLE t1 (a int, b int);
151SELECT * FROM t1;
152a	b
153INSERT INTO t1 values(1,1);
154CREATE OR REPLACE TABLE t1 (a int, b int, c int);
155INSERT INTO t1 values(1,1,1);
156CREATE OR REPLACE TABLE t3 (a int);
157ERROR HY000: Table 't3' was not locked with LOCK TABLES
158UNLOCK TABLES;
159DROP TABLE t1;
160CREATE OR REPLACE TABLE t1 (a int);
161LOCK TABLES t1 write,t2 write;
162CREATE OR REPLACE TABLE t1 (a int, b int) select a,1 from t2;
163SELECT * FROM t2;
164a
1651
1662
1673
168SELECT * FROM t1;
169b	a	1
170NULL	1	1
171NULL	2	1
172NULL	3	1
173SELECT * FROM t1;
174b	a	1
175NULL	1	1
176NULL	2	1
177NULL	3	1
178INSERT INTO t1 values(1,1,1);
179CREATE OR REPLACE TABLE t1 (a int, b int, c int, d int);
180INSERT INTO t1 values(1,1,1,1);
181CREATE OR REPLACE TABLE t3 (a int);
182ERROR HY000: Table 't3' was not locked with LOCK TABLES
183UNLOCK TABLES;
184DROP TABLE t1;
185CREATE OR REPLACE TABLE t1 (a int);
186LOCK TABLES t1 write,t2 write, t1 as t1_read read;
187CREATE OR REPLACE TABLE t1 (a int, b int) select a,1 from t2;
188SELECT * FROM t1;
189b	a	1
190NULL	1	1
191NULL	2	1
192NULL	3	1
193SELECT * FROM t2;
194a
1951
1962
1973
198SELECT * FROM t1 as t1_read;
199ERROR HY000: Table 't1_read' was not locked with LOCK TABLES
200DROP TABLE t1;
201UNLOCK TABLES;
202CREATE OR REPLACE TABLE t1 (a int);
203LOCK TABLE t1 WRITE;
204CREATE OR REPLACE TABLE t1 AS SELECT 1;
205SELECT * from t1;
2061
2071
208SELECT * from t2;
209ERROR HY000: Table 't2' was not locked with LOCK TABLES
210DROP TABLE t1;
211#
212# Test also with InnoDB (transactional engine)
213#
214create table t1 (i int) engine=innodb;
215lock table t1 write;
216create or replace table t1 (j int);
217unlock tables;
218show create table t1;
219Table	Create Table
220t1	CREATE TABLE `t1` (
221  `j` int(11) DEFAULT NULL
222) ENGINE=MyISAM DEFAULT CHARSET=latin1
223drop table t1;
224create table t1 (i int) engine=InnoDB;
225lock table t1 write, t2 write;
226create or replace table t1 (j int) engine=innodb;
227unlock tables;
228drop table t1;
229create table t1 (i int) engine=InnoDB;
230create table t3 (i int) engine=InnoDB;
231insert into t3 values(1),(2),(3);
232create table t4 (i int) engine=InnoDB;
233insert into t4 values(1);
234lock table t1 write, t2 write, t3 write, t4 write;
235create or replace table t1 (a int, i int) engine=innodb select t2.a,t3.i from t2,t3;
236select * from t4;
237i
2381
239unlock tables;
240select * from t1 order by a,i;
241a	i
2421	1
2431	2
2441	3
2452	1
2462	2
2472	3
2483	1
2493	2
2503	3
251drop table t1,t3,t4;
252#
253# Test the meta data locks are freed properly
254#
255create database mysqltest2;
256drop table if exists test.t1,mysqltest2.t2;
257Warnings:
258Note	1051	Unknown table 'test.t1,mysqltest2.t2'
259create table test.t1 (i int) engine=myisam;
260create table mysqltest2.t2 like test.t1;
261lock table test.t1 write, mysqltest2.t2 write;
262select * from information_schema.metadata_lock_info;
263THREAD_ID	LOCK_MODE	LOCK_DURATION	LOCK_TYPE	TABLE_SCHEMA	TABLE_NAME
264#	MDL_BACKUP_DDL	NULL	Backup lock
265#	MDL_BACKUP_DML	NULL	Backup lock
266#	MDL_INTENTION_EXCLUSIVE	NULL	Schema metadata lock	mysqltest2
267#	MDL_INTENTION_EXCLUSIVE	NULL	Schema metadata lock	test
268#	MDL_SHARED_NO_READ_WRITE	NULL	Table metadata lock	mysqltest2	t2
269#	MDL_SHARED_NO_READ_WRITE	NULL	Table metadata lock	test	t1
270create or replace table test.t1;
271ERROR 42000: A table must have at least 1 column
272show tables;
273Tables_in_test
274t2
275select * from information_schema.metadata_lock_info;
276THREAD_ID	LOCK_MODE	LOCK_DURATION	LOCK_TYPE	TABLE_SCHEMA	TABLE_NAME
277#	MDL_BACKUP_DDL	NULL	Backup lock
278#	MDL_BACKUP_DML	NULL	Backup lock
279#	MDL_INTENTION_EXCLUSIVE	NULL	Schema metadata lock	mysqltest2
280#	MDL_INTENTION_EXCLUSIVE	NULL	Schema metadata lock	test
281#	MDL_SHARED_NO_READ_WRITE	NULL	Table metadata lock	mysqltest2	t2
282create or replace table mysqltest2.t2;
283ERROR 42000: A table must have at least 1 column
284select * from information_schema.metadata_lock_info;
285THREAD_ID	LOCK_MODE	LOCK_DURATION	LOCK_TYPE	TABLE_SCHEMA	TABLE_NAME
286create table t1 (i int);
287drop table t1;
288create table test.t1 (i int);
289create table mysqltest2.t2 like test.t1;
290lock table test.t1 write, mysqltest2.t2 write;
291select * from information_schema.metadata_lock_info;
292THREAD_ID	LOCK_MODE	LOCK_DURATION	LOCK_TYPE	TABLE_SCHEMA	TABLE_NAME
293#	MDL_BACKUP_DDL	NULL	Backup lock
294#	MDL_BACKUP_DML	NULL	Backup lock
295#	MDL_INTENTION_EXCLUSIVE	NULL	Schema metadata lock	mysqltest2
296#	MDL_INTENTION_EXCLUSIVE	NULL	Schema metadata lock	test
297#	MDL_SHARED_NO_READ_WRITE	NULL	Table metadata lock	mysqltest2	t2
298#	MDL_SHARED_NO_READ_WRITE	NULL	Table metadata lock	test	t1
299create or replace table test.t1 (a int) select 1 as 'a', 2 as 'a';
300ERROR 42S21: Duplicate column name 'a'
301show tables;
302Tables_in_test
303t2
304select * from information_schema.metadata_lock_info;
305THREAD_ID	LOCK_MODE	LOCK_DURATION	LOCK_TYPE	TABLE_SCHEMA	TABLE_NAME
306#	MDL_BACKUP_DDL	NULL	Backup lock
307#	MDL_BACKUP_DML	NULL	Backup lock
308#	MDL_INTENTION_EXCLUSIVE	NULL	Schema metadata lock	mysqltest2
309#	MDL_INTENTION_EXCLUSIVE	NULL	Schema metadata lock	test
310#	MDL_SHARED_NO_READ_WRITE	NULL	Table metadata lock	mysqltest2	t2
311create or replace table mysqltest2.t2 (a int) select 1 as 'a', 2 as 'a';
312ERROR 42S21: Duplicate column name 'a'
313select * from information_schema.metadata_lock_info;
314THREAD_ID	LOCK_MODE	LOCK_DURATION	LOCK_TYPE	TABLE_SCHEMA	TABLE_NAME
315create table t1 (i int);
316drop table t1;
317create table test.t1 (i int) engine=innodb;
318create table mysqltest2.t2 like test.t1;
319lock table test.t1 write, mysqltest2.t2 write;
320select * from information_schema.metadata_lock_info;
321THREAD_ID	LOCK_MODE	LOCK_DURATION	LOCK_TYPE	TABLE_SCHEMA	TABLE_NAME
322#	MDL_BACKUP_DDL	NULL	Backup lock
323#	MDL_INTENTION_EXCLUSIVE	NULL	Schema metadata lock	mysqltest2
324#	MDL_INTENTION_EXCLUSIVE	NULL	Schema metadata lock	test
325#	MDL_SHARED_NO_READ_WRITE	NULL	Table metadata lock	mysqltest2	t2
326#	MDL_SHARED_NO_READ_WRITE	NULL	Table metadata lock	test	t1
327unlock tables;
328drop table test.t1,mysqltest2.t2;
329create table test.t1 (i int) engine=aria transactional=1 checksum=1;
330create table mysqltest2.t2 like test.t1;
331lock table test.t1 write, mysqltest2.t2 write;
332select * from information_schema.metadata_lock_info;
333THREAD_ID	LOCK_MODE	LOCK_DURATION	LOCK_TYPE	TABLE_SCHEMA	TABLE_NAME
334#	MDL_BACKUP_DDL	NULL	Backup lock
335#	MDL_INTENTION_EXCLUSIVE	NULL	Schema metadata lock	mysqltest2
336#	MDL_INTENTION_EXCLUSIVE	NULL	Schema metadata lock	test
337#	MDL_SHARED_NO_READ_WRITE	NULL	Table metadata lock	mysqltest2	t2
338#	MDL_SHARED_NO_READ_WRITE	NULL	Table metadata lock	test	t1
339unlock tables;
340drop table t1;
341create table test.t1 (i int);
342drop database mysqltest2;
343drop table test.t1;
344#
345# MDEV-23391 Server crash in close_thread_table or assertion, upon CREATE OR REPLACE TABLE under lock
346#
347create table t1 (i int);
348lock table t1 write;
349select * from information_schema.metadata_lock_info;
350THREAD_ID	LOCK_MODE	LOCK_DURATION	LOCK_TYPE	TABLE_SCHEMA	TABLE_NAME
351#	MDL_BACKUP_DDL	NULL	Backup lock
352#	MDL_BACKUP_DML	NULL	Backup lock
353#	MDL_INTENTION_EXCLUSIVE	NULL	Schema metadata lock	test
354#	MDL_SHARED_NO_READ_WRITE	NULL	Table metadata lock	test	t1
355create or replace table t1 (a char(1)) engine=Innodb select 'foo' as a;
356ERROR 22001: Data too long for column 'a' at row 1
357show tables;
358Tables_in_test
359t2
360select * from information_schema.metadata_lock_info;
361THREAD_ID	LOCK_MODE	LOCK_DURATION	LOCK_TYPE	TABLE_SCHEMA	TABLE_NAME
362create table t1 (i int);
363drop table t1;
364#
365# Testing CREATE .. LIKE
366#
367create or replace table t1 like t2;
368create or replace table t1 like t2;
369show create table t1;
370Table	Create Table
371t1	CREATE TABLE `t1` (
372  `a` int(11) DEFAULT NULL
373) ENGINE=MyISAM DEFAULT CHARSET=latin1
374drop table t1;
375create table t1 (b int);
376lock tables t1 write, t2 read;
377create or replace table t1 like t2;
378SELECT * FROM t1;
379a
380INSERT INTO t1 values(1);
381CREATE OR REPLACE TABLE t1 like t2;
382INSERT INTO t1 values(2);
383unlock tables;
384show create table t1;
385Table	Create Table
386t1	CREATE TABLE `t1` (
387  `a` int(11) DEFAULT NULL
388) ENGINE=MyISAM DEFAULT CHARSET=latin1
389drop table t1;
390create or replace table t1 like t2;
391create or replace table t1 like t1;
392ERROR 42000: Not unique table/alias: 't1'
393drop table t1;
394CREATE TEMPORARY TABLE t1 like t2;
395CREATE OR REPLACE TABLE t1 like t1;
396ERROR 42000: Not unique table/alias: 't1'
397CREATE OR REPLACE TABLE t1 like t1;
398ERROR 42000: Not unique table/alias: 't1'
399drop table t1;
400CREATE TEMPORARY TABLE t1 like t2;
401CREATE OR REPLACE TEMPORARY TABLE t3 like t1;
402CREATE OR REPLACE TEMPORARY TABLE t3 like t3;
403ERROR 42000: Not unique table/alias: 't3'
404drop table t1,t3;
405#
406# Test with prepared statements
407#
408prepare stmt1 from 'create or replace table t1 select * from t2';
409execute stmt1;
410select * from t1;
411a
4121
4132
4143
415execute stmt1;
416select * from t1;
417a
4181
4192
4203
421drop table t1;
422execute stmt1;
423select * from t1;
424a
4251
4262
4273
428deallocate prepare stmt1;
429drop table t1;
430#
431# Test with views
432#
433create view t1 as select 1;
434create table if not exists t1 (a int);
435Warnings:
436Note	1050	Table 't1' already exists
437create or replace table t1 (a int);
438ERROR 42S02: 'test.t1' is a view
439drop table t1;
440ERROR 42S02: 'test.t1' is a view
441drop view t1;
442#
443# MDEV-5602 CREATE OR REPLACE obtains stricter locks than the
444# connection had before
445#
446create table t1 (a int);
447lock table t1 write, t2 read;
448select * from information_schema.metadata_lock_info;
449THREAD_ID	LOCK_MODE	LOCK_DURATION	LOCK_TYPE	TABLE_SCHEMA	TABLE_NAME
450#	MDL_BACKUP_DDL	NULL	Backup lock
451#	MDL_BACKUP_DML	NULL	Backup lock
452#	MDL_INTENTION_EXCLUSIVE	NULL	Schema metadata lock	test
453#	MDL_SHARED_NO_READ_WRITE	NULL	Table metadata lock	test	t1
454#	MDL_SHARED_READ	NULL	Table metadata lock	test	t2
455create or replace table t1 (i int);
456select * from information_schema.metadata_lock_info;
457THREAD_ID	LOCK_MODE	LOCK_DURATION	LOCK_TYPE	TABLE_SCHEMA	TABLE_NAME
458#	MDL_BACKUP_DDL	NULL	Backup lock
459#	MDL_BACKUP_DML	NULL	Backup lock
460#	MDL_INTENTION_EXCLUSIVE	NULL	Schema metadata lock	test
461#	MDL_SHARED_NO_READ_WRITE	NULL	Table metadata lock	test	t1
462#	MDL_SHARED_READ	NULL	Table metadata lock	test	t2
463create or replace table t1 like t2;
464select * from information_schema.metadata_lock_info;
465THREAD_ID	LOCK_MODE	LOCK_DURATION	LOCK_TYPE	TABLE_SCHEMA	TABLE_NAME
466#	MDL_BACKUP_DDL	NULL	Backup lock
467#	MDL_BACKUP_DML	NULL	Backup lock
468#	MDL_INTENTION_EXCLUSIVE	NULL	Schema metadata lock	test
469#	MDL_SHARED_NO_READ_WRITE	NULL	Table metadata lock	test	t1
470#	MDL_SHARED_READ	NULL	Table metadata lock	test	t2
471create or replace table t1 select 1 as f1;
472select * from information_schema.metadata_lock_info;
473THREAD_ID	LOCK_MODE	LOCK_DURATION	LOCK_TYPE	TABLE_SCHEMA	TABLE_NAME
474#	MDL_BACKUP_DDL	NULL	Backup lock
475#	MDL_BACKUP_DML	NULL	Backup lock
476#	MDL_INTENTION_EXCLUSIVE	NULL	Schema metadata lock	test
477#	MDL_SHARED_NO_READ_WRITE	NULL	Table metadata lock	test	t1
478#	MDL_SHARED_READ	NULL	Table metadata lock	test	t2
479drop table t1;
480unlock tables;
481#
482# MDEV-6560
483# Assertion `! is_set() ' failed in Diagnostics_area::set_ok_status
484#
485CREATE TABLE t1 (col_int_nokey INT)  ENGINE=InnoDB;
486CREATE OR REPLACE TEMPORARY TABLE tmp LIKE t1;
487LOCK TABLE t1 WRITE;
488connect  con1,localhost,root,,test;
489CREATE OR REPLACE TABLE t1 LIKE tmp;
490connection default;
491KILL QUERY con_id;
492connection con1;
493ERROR 70100: Query execution was interrupted
494CREATE OR REPLACE TABLE t1 (a int);
495connection default;
496KILL QUERY con_id;
497connection con1;
498ERROR 70100: Query execution was interrupted
499disconnect con1;
500connection default;
501drop table t1;
502DROP TABLE t2;
503#
504# MDEV-10824 - Crash in CREATE OR REPLACE TABLE t1 AS SELECT spfunc()
505#
506CREATE TABLE t1(a INT);
507CREATE FUNCTION f1() RETURNS VARCHAR(16383) RETURN 'test';
508CREATE OR REPLACE TABLE t1 AS SELECT f1();
509LOCK TABLE t1 WRITE;
510CREATE OR REPLACE TABLE t1 AS SELECT f1();
511UNLOCK TABLES;
512DROP FUNCTION f1;
513DROP TABLE t1;
514#
515# MDEV-11129
516# CREATE OR REPLACE TABLE t1 AS SELECT spfunc() crashes if spfunc()
517# references t1
518#
519CREATE OR REPLACE TABLE t1(a INT);
520CREATE FUNCTION f1() RETURNS VARCHAR(16383)
521BEGIN
522INSERT INTO t1 VALUES(1);
523RETURN 'test';
524END;
525$$
526CREATE OR REPLACE TABLE t1 AS SELECT f1();
527ERROR HY000: Table 't1' is specified twice, both as a target for 'CREATE' and as a separate source for data
528LOCK TABLE t1 WRITE;
529CREATE OR REPLACE TABLE t1 AS SELECT f1();
530ERROR HY000: Table 't1' was not locked with LOCK TABLES
531UNLOCK TABLES;
532DROP FUNCTION f1;
533DROP TABLE t1;
534#
535# MDEV-14410 - Assertion `table->pos_in_locked_tables == __null ||
536#              table->pos_in_locked_tables->table == table' failed in
537#              mark_used_tables_as_free_for_reuse
538#
539CREATE TABLE t1 (a INT);
540CREATE TABLE t2 (b INT);
541CREATE TABLE t3 (c INT);
542CREATE TRIGGER tr1 BEFORE INSERT ON t3 FOR EACH ROW INSERT INTO t1 VALUES ();
543CREATE TRIGGER tr2 BEFORE INSERT ON t2 FOR EACH ROW INSERT INTO t3 SELECT * FROM t1;
544LOCK TABLE t1 WRITE, t2 WRITE;
545CREATE OR REPLACE TABLE t1 (i INT);
546UNLOCK TABLES;
547INSERT INTO t2 VALUES (1);
548DROP TABLE t1, t2, t3;
549#
550# MDEV-11071 - Assertion `thd->transaction.stmt.is_empty()' failed in
551#              Locked_tables_list::unlock_locked_tables
552#
553CREATE TEMPORARY TABLE t1(a INT) ENGINE=InnoDB;
554CREATE TEMPORARY TABLE t2(a INT);
555CREATE TABLE t3(a INT);
556LOCK TABLE t2 WRITE;
557SELECT * FROM t2;
558a
559CREATE OR REPLACE TEMPORARY TABLE t1(c INT DEFAULT '');
560ERROR 42000: Invalid default value for 'c'
561SELECT * FROM t3;
562ERROR HY000: Table 't3' was not locked with LOCK TABLES
563CREATE OR REPLACE TEMPORARY TABLE t2(c INT DEFAULT '');
564ERROR 42000: Invalid default value for 'c'
565SELECT * FROM t3;
566ERROR HY000: Table 't3' was not locked with LOCK TABLES
567UNLOCK TABLES;
568DROP TABLE t3;
569# End of 10.4 tests
570