summaryrefslogtreecommitdiff
path: root/mysql-test/suite/sys_vars/inc/explicit_defaults_for_timestamp.inc
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/sys_vars/inc/explicit_defaults_for_timestamp.inc')
-rw-r--r--mysql-test/suite/sys_vars/inc/explicit_defaults_for_timestamp.inc48
1 files changed, 35 insertions, 13 deletions
diff --git a/mysql-test/suite/sys_vars/inc/explicit_defaults_for_timestamp.inc b/mysql-test/suite/sys_vars/inc/explicit_defaults_for_timestamp.inc
index 1fea4ca5bb9..0cd8aa2c568 100644
--- a/mysql-test/suite/sys_vars/inc/explicit_defaults_for_timestamp.inc
+++ b/mysql-test/suite/sys_vars/inc/explicit_defaults_for_timestamp.inc
@@ -5,19 +5,10 @@ CREATE TABLE t1 (a TIMESTAMP NULL);
SHOW CREATE TABLE t1;
DROP TABLE t1;
-
-if (`SELECT @@explicit_defaults_for_timestamp=0`)
-{
- --error ER_INVALID_DEFAULT
- CREATE TABLE t1 (a TIMESTAMP DEFAULT NULL);
-}
-
-if (`SELECT @@explicit_defaults_for_timestamp=1`)
-{
- CREATE TABLE t1 (a TIMESTAMP DEFAULT NULL);
- SHOW CREATE TABLE t1;
- DROP TABLE t1;
-}
+CREATE TABLE t1 (a TIMESTAMP DEFAULT NULL);
+INSERT t1 () VALUES ();
+SHOW CREATE TABLE t1;
+DROP TABLE t1;
CREATE TABLE t1 (a TIMESTAMP DEFAULT '0000-00-00 00:00:00');
SHOW CREATE TABLE t1;
@@ -110,3 +101,34 @@ SELECT * FROM t1;
DROP TABLE t1;
SET sql_mode=DEFAULT;
SET timestamp=DEFAULT;
+
+--echo #
+--echo # MDEV-29075 Changing explicit_defaults_for_timestamp within stored procedure works inconsistently
+--echo #
+set statement explicit_defaults_for_timestamp=1-@@explicit_defaults_for_timestamp for create table t1 (ts timestamp);
+show create table t1;
+drop table t1;
+
+--delimiter $
+create procedure pr()
+begin
+ set explicit_defaults_for_timestamp= 1-@@explicit_defaults_for_timestamp;
+ create table t1 (ts timestamp);
+end $
+--delimiter ;
+
+call pr();
+show create table t1;
+drop procedure pr;
+drop table t1;
+
+prepare stmt from 'create or replace table t1 (a timestamp)';
+execute stmt;
+show create table t1;
+set explicit_defaults_for_timestamp=1-@@explicit_defaults_for_timestamp;
+execute stmt;
+show create table t1;
+set explicit_defaults_for_timestamp=1-@@explicit_defaults_for_timestamp;
+execute stmt;
+show create table t1;
+drop table t1;