CREATE TABLE t1 (a INT PRIMARY KEY)| BEGIN NOT ATOMIC INSERT INTO t1 VALUES (1); INSERT INTO t1 VALUES (2); INSERT INTO t1 VALUES (3); END| SELECT * FROM t1| a 1 2 3 PREPARE stmt FROM "BEGIN NOT ATOMIC INSERT INTO t1 VALUES (4); INSERT INTO t1 VALUES (5); INSERT INTO t1 VALUES (?); END"; SET @val = 6| reset master| EXECUTE stmt USING @val| SELECT * FROM t1| a 1 2 3 4 5 6 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (4) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (5) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (6) master-bin.000001 # Query # # COMMIT DROP TABLE t1| CREATE DATABASE mysqltest1| CREATE PROCEDURE mysqltest1.sp1() BEGIN PREPARE stmt FROM "BEGIN NOT ATOMIC CREATE TABLE t1 AS SELECT DATABASE(); END"; EXECUTE stmt; END| CALL mysqltest1.sp1()| SELECT * FROM mysqltest1.t1| DATABASE() mysqltest1 USE mysqltest1| DROP DATABASE mysqltest1| BEGIN NOT ATOMIC CREATE TABLE t1(a int); END| ERROR 3D000: No database selected BEGIN NOT ATOMIC SET @a=1; CREATE TABLE test.t1(a int); END| USE test| show tables| Tables_in_test t1 drop table t1| /**/ if (select count(*) from information_schema.tables where table_schema='test' and table_name='t1') = 0 then create table t1 (a int); end if| show tables| Tables_in_test t1 /**/ if (select count(*) from information_schema.tables where table_schema='test' and table_name='t1') = 0 then create table t1 (a int); end if| show tables| Tables_in_test t1 case (select table_name from information_schema.tables where table_schema='test') when 't1' then create table t2 (b int); when 't2' then create table t3 (b int); else signal sqlstate '42S02'; end case| show tables| Tables_in_test t1 t2 case when database() = 'test' then create table t3 (test text); when now() < date'2001-02-03' then create table oops (machine time); end case| show tables| Tables_in_test t1 t2 t3 loop create table t4 (a int); end loop| ERROR 42S01: Table 't4' already exists show tables| Tables_in_test t1 t2 t3 t4 set @a=0| repeat set @a = @a + 1; until @a > 5 end repeat| select @a| @a 6 /**/ while (select count(*) from information_schema.tables where table_schema='test') do select concat('drop table ', table_name) into @a from information_schema.tables where table_schema='test' order by table_name limit 1; select @a as 'executing:'; prepare dt from @a; execute dt; end while| executing: drop table t1 executing: drop table t2 executing: drop table t3 executing: drop table t4 create table t1 (x int)| create function fn(a int) returns int begin insert t1 values (a+7); return a+8; end| reset master| /**/ if fn(9) > 5 then select 1; end if| 1 1 prepare stmt from "if fn(?) > 6 then begin declare a int; set a=?*2; insert t1 values(a+?); end; end if"| set @a=1, @b=2, @c=3| execute stmt using @a, @b, @c| include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; SELECT `test`.`fn`(9) master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; SELECT `test`.`fn`(1) master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; insert t1 values( NAME_CONST('a',4)+3) master-bin.000001 # Query # # COMMIT drop function fn| drop table t1| set @@sql_mode="STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"| begin not atomic select @@sql_mode; end| @@sql_mode STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION create table t1 (a int)| select a from t1 having a > 1| a begin not atomic select a from t1 having a > 1; end| a drop table t1| # # MDEV-8615: Assertion `m_cpp_buf <= begin_ptr && # begin_ptr <= m_cpp_buf + m_buf_length' failed in # Lex_input_stream::body_utf8_start # b'| ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'b'' at line 1