summaryrefslogtreecommitdiff
path: root/mysql-test/r/function_defaults.result
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/r/function_defaults.result')
-rw-r--r--mysql-test/r/function_defaults.result3095
1 files changed, 0 insertions, 3095 deletions
diff --git a/mysql-test/r/function_defaults.result b/mysql-test/r/function_defaults.result
deleted file mode 100644
index 62422752e17..00000000000
--- a/mysql-test/r/function_defaults.result
+++ /dev/null
@@ -1,3095 +0,0 @@
-#
-# Test of function defaults for any server, including embedded.
-#
-#
-# Function defaults run 1. No microsecond precision.
-#
-SET TIME_ZONE = "+00:00";
-#
-# Test of errors for column data types that dont support function
-# defaults.
-#
-CREATE OR REPLACE TABLE t1( a BIT DEFAULT CURRENT_TIMESTAMP );
-CREATE OR REPLACE TABLE t1( a TINYINT DEFAULT CURRENT_TIMESTAMP );
-CREATE OR REPLACE TABLE t1( a SMALLINT DEFAULT CURRENT_TIMESTAMP );
-CREATE OR REPLACE TABLE t1( a MEDIUMINT DEFAULT CURRENT_TIMESTAMP );
-CREATE OR REPLACE TABLE t1( a INT DEFAULT CURRENT_TIMESTAMP );
-CREATE OR REPLACE TABLE t1( a BIGINT DEFAULT CURRENT_TIMESTAMP );
-CREATE OR REPLACE TABLE t1( a FLOAT DEFAULT CURRENT_TIMESTAMP );
-CREATE OR REPLACE TABLE t1( a DECIMAL DEFAULT CURRENT_TIMESTAMP );
-CREATE OR REPLACE TABLE t1( a DATE DEFAULT CURRENT_TIMESTAMP );
-CREATE OR REPLACE TABLE t1( a TIME DEFAULT CURRENT_TIMESTAMP );
-CREATE OR REPLACE TABLE t1( a YEAR DEFAULT CURRENT_TIMESTAMP );
-CREATE OR REPLACE TABLE t1( a BIT ON UPDATE CURRENT_TIMESTAMP );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a TINYINT ON UPDATE CURRENT_TIMESTAMP );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a SMALLINT ON UPDATE CURRENT_TIMESTAMP );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a MEDIUMINT ON UPDATE CURRENT_TIMESTAMP );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a INT ON UPDATE CURRENT_TIMESTAMP );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a BIGINT ON UPDATE CURRENT_TIMESTAMP );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a FLOAT ON UPDATE CURRENT_TIMESTAMP );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a DECIMAL ON UPDATE CURRENT_TIMESTAMP );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a DATE ON UPDATE CURRENT_TIMESTAMP );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a TIME ON UPDATE CURRENT_TIMESTAMP );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a YEAR ON UPDATE CURRENT_TIMESTAMP );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-drop table if exists t1;
-#
-# Test that the default clause behaves like NOW() regarding time zones.
-#
-CREATE TABLE t1 (
-a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-c TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
-d TIMESTAMP NULL,
-e DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-f DATETIME DEFAULT CURRENT_TIMESTAMP,
-g DATETIME ON UPDATE CURRENT_TIMESTAMP,
-h DATETIME
-);
-# 2011-09-27 14:11:08 UTC
-SET TIMESTAMP = 1317132668.654321;
-SET @old_time_zone = @@TIME_ZONE;
-SET TIME_ZONE = "+05:00";
-INSERT INTO t1( d, h ) VALUES ( NOW(), NOW() );
-SELECT * FROM t1;
-a b c d e f g h
-2011-09-27 19:11:08 2011-09-27 19:11:08 0000-00-00 00:00:00 2011-09-27 19:11:08 2011-09-27 19:11:08 2011-09-27 19:11:08 NULL 2011-09-27 19:11:08
-# 1989-05-13 01:02:03
-SET TIMESTAMP = 611017323.543212;
-UPDATE t1 SET d = NOW(), h = NOW();
-SELECT * FROM t1;
-a b c d e f g h
-1989-05-13 04:02:03 2011-09-27 19:11:08 1989-05-13 04:02:03 1989-05-13 04:02:03 1989-05-13 04:02:03 2011-09-27 19:11:08 1989-05-13 04:02:03 1989-05-13 04:02:03
-SET TIME_ZONE = @old_time_zone;
-DROP TABLE t1;
-#
-# Test of several TIMESTAMP columns with different function defaults.
-#
-CREATE TABLE t1 (
-a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-c TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-d TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
-e TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
-f INT
-);
-# 2011-04-19 07:22:02 UTC
-SET TIMESTAMP = 1303197722.534231;
-INSERT INTO t1 ( f ) VALUES (1);
-SELECT * FROM t1;
-a b c d e f
-2011-04-19 07:22:02 2011-04-19 07:22:02 2011-04-19 07:22:02 0000-00-00 00:00:00 0000-00-00 00:00:00 1
-# 2011-04-19 07:23:18 UTC
-SET TIMESTAMP = 1303197798.132435;
-UPDATE t1 SET f = 2;
-SELECT * FROM t1;
-a b c d e f
-2011-04-19 07:23:18 2011-04-19 07:23:18 2011-04-19 07:22:02 2011-04-19 07:23:18 2011-04-19 07:23:18 2
-DROP TABLE t1;
-#
-# Test of inserted values out of order.
-#
-CREATE TABLE t1 (
-a INT,
-b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-c TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-d TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
-e TIMESTAMP NULL,
-f DATETIME,
-g DATETIME DEFAULT CURRENT_TIMESTAMP,
-h DATETIME ON UPDATE CURRENT_TIMESTAMP,
-i DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-j INT
-);
-# 2011-04-19 07:22:02 UTC
-SET TIMESTAMP = 1303197722.534231;
-INSERT INTO t1 ( j, a ) VALUES ( 1, 1 );
-SELECT * FROM t1;
-a b c d e f g h i j
-1 2011-04-19 07:22:02 2011-04-19 07:22:02 0000-00-00 00:00:00 NULL NULL 2011-04-19 07:22:02 NULL 2011-04-19 07:22:02 1
-DROP TABLE t1;
-#
-# Test of ON DUPLICATE KEY UPDATE
-#
-CREATE TABLE t1 (
-a INT PRIMARY KEY,
-b INT,
-c TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-d TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-e TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
-f TIMESTAMP NOT NULL DEFAULT '1986-09-27 03:00:00.098765',
-g TIMESTAMP NULL,
-h DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-i DATETIME DEFAULT CURRENT_TIMESTAMP,
-j DATETIME ON UPDATE CURRENT_TIMESTAMP,
-k DATETIME NULL,
-l DATETIME DEFAULT '1986-09-27 03:00:00.098765'
-);
-# 1977-12-21 23:00:00 UTC
-SET TIMESTAMP = 251593200.192837;
-INSERT INTO t1(a) VALUES (1) ON DUPLICATE KEY UPDATE b = 2;
-SELECT * FROM t1;
-a b c d e f g h i j k l
-1 NULL 1977-12-21 23:00:00 1977-12-21 23:00:00 0000-00-00 00:00:00 1986-09-27 03:00:00 NULL 1977-12-21 23:00:00 1977-12-21 23:00:00 NULL NULL 1986-09-27 03:00:00
-# 1975-05-21 23:00:00 UTC
-SET TIMESTAMP = 169945200.918273;
-INSERT INTO t1(a) VALUES (1) ON DUPLICATE KEY UPDATE b = 2;
-SELECT * FROM t1;
-a b c d e f g h i j k l
-1 2 1975-05-21 23:00:00 1977-12-21 23:00:00 1975-05-21 23:00:00 1986-09-27 03:00:00 NULL 1975-05-21 23:00:00 1977-12-21 23:00:00 1975-05-21 23:00:00 NULL 1986-09-27 03:00:00
-# 1973-08-14 09:11:22 UTC
-SET TIMESTAMP = 114167482.534231;
-INSERT INTO t1(a) VALUES (2) ON DUPLICATE KEY UPDATE b = 2;
-SELECT * FROM t1;
-a b c d e f g h i j k l
-1 2 1975-05-21 23:00:00 1977-12-21 23:00:00 1975-05-21 23:00:00 1986-09-27 03:00:00 NULL 1975-05-21 23:00:00 1977-12-21 23:00:00 1975-05-21 23:00:00 NULL 1986-09-27 03:00:00
-2 NULL 1973-08-14 09:11:22 1973-08-14 09:11:22 0000-00-00 00:00:00 1986-09-27 03:00:00 NULL 1973-08-14 09:11:22 1973-08-14 09:11:22 NULL NULL 1986-09-27 03:00:00
-DROP TABLE t1;
-CREATE TABLE t1 ( a INT PRIMARY KEY, b INT, c TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
-# 2011-04-19 07:23:18 UTC
-SET TIMESTAMP = 1303197798.945156;
-INSERT INTO t1 VALUES
-(1, 0, '2001-01-01 01:01:01.111111'),
-(2, 0, '2002-02-02 02:02:02.222222'),
-(3, 0, '2003-03-03 03:03:03.333333');
-SELECT * FROM t1;
-a b c
-1 0 2001-01-01 01:01:01
-2 0 2002-02-02 02:02:02
-3 0 2003-03-03 03:03:03
-UPDATE t1 SET b = 2, c = c WHERE a = 2;
-SELECT * FROM t1;
-a b c
-1 0 2001-01-01 01:01:01
-2 2 2002-02-02 02:02:02
-3 0 2003-03-03 03:03:03
-INSERT INTO t1 (a) VALUES (4);
-SELECT * FROM t1;
-a b c
-1 0 2001-01-01 01:01:01
-2 2 2002-02-02 02:02:02
-3 0 2003-03-03 03:03:03
-4 NULL 2011-04-19 07:23:18
-UPDATE t1 SET c = '2004-04-04 04:04:04.444444' WHERE a = 4;
-SELECT * FROM t1;
-a b c
-1 0 2001-01-01 01:01:01
-2 2 2002-02-02 02:02:02
-3 0 2003-03-03 03:03:03
-4 NULL 2004-04-04 04:04:04
-INSERT INTO t1 ( a ) VALUES ( 3 ), ( 5 ) ON DUPLICATE KEY UPDATE b = 3, c = c;
-SELECT * FROM t1;
-a b c
-1 0 2001-01-01 01:01:01
-2 2 2002-02-02 02:02:02
-3 3 2003-03-03 03:03:03
-4 NULL 2004-04-04 04:04:04
-5 NULL 2011-04-19 07:23:18
-INSERT INTO t1 (a, c) VALUES
-(4, '2004-04-04 00:00:00.444444'),
-(6, '2006-06-06 06:06:06.666666')
-ON DUPLICATE KEY UPDATE b = 4;
-SELECT * FROM t1;
-a b c
-1 0 2001-01-01 01:01:01
-2 2 2002-02-02 02:02:02
-3 3 2003-03-03 03:03:03
-4 4 2011-04-19 07:23:18
-5 NULL 2011-04-19 07:23:18
-6 NULL 2006-06-06 06:06:06
-DROP TABLE t1;
-#
-# Test of REPLACE INTO executed as UPDATE.
-#
-CREATE TABLE t1 (
-a INT PRIMARY KEY,
-b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-c DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-d TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-e DATETIME DEFAULT CURRENT_TIMESTAMP,
-f TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
-g DATETIME ON UPDATE CURRENT_TIMESTAMP,
-h TIMESTAMP NULL,
-i DATETIME
-);
-# 1970-09-21 09:11:12 UTC
-SET TIMESTAMP = 22756272.163584;
-REPLACE INTO t1 ( a ) VALUES ( 1 );
-SELECT * FROM t1;
-a b c d e f g h i
-1 1970-09-21 09:11:12 1970-09-21 09:11:12 1970-09-21 09:11:12 1970-09-21 09:11:12 0000-00-00 00:00:00 NULL NULL NULL
-# 1970-11-10 14:16:17 UTC
-SET TIMESTAMP = 27094577.852954;
-REPLACE INTO t1 ( a ) VALUES ( 1 );
-SELECT * FROM t1;
-a b c d e f g h i
-1 1970-11-10 14:16:17 1970-11-10 14:16:17 1970-11-10 14:16:17 1970-11-10 14:16:17 0000-00-00 00:00:00 NULL NULL NULL
-DROP TABLE t1;
-#
-# Test of insertion of NULL, DEFAULT and an empty row for DEFAULT
-# CURRENT_TIMESTAMP.
-#
-CREATE TABLE t1 (
-a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-b DATETIME DEFAULT CURRENT_TIMESTAMP,
-c INT
-);
-# 2011-04-20 09:53:41 UTC
-SET TIMESTAMP = 1303293221.163578;
-INSERT INTO t1 VALUES (NULL, NULL, 1), (DEFAULT, DEFAULT, 2);
-INSERT INTO t1 ( a, b, c ) VALUES (NULL, NULL, 3), (DEFAULT, DEFAULT, 4);
-SELECT * FROM t1;
-a b c
-2011-04-20 09:53:41 NULL 1
-2011-04-20 09:53:41 2011-04-20 09:53:41 2
-2011-04-20 09:53:41 NULL 3
-2011-04-20 09:53:41 2011-04-20 09:53:41 4
-SET TIME_ZONE = "+03:00";
-SELECT * FROM t1;
-a b c
-2011-04-20 12:53:41 NULL 1
-2011-04-20 12:53:41 2011-04-20 09:53:41 2
-2011-04-20 12:53:41 NULL 3
-2011-04-20 12:53:41 2011-04-20 09:53:41 4
-SET TIME_ZONE = "+00:00";
-DROP TABLE t1;
-# 2011-04-20 07:05:39 UTC
-SET TIMESTAMP = 1303283139.195624;
-CREATE TABLE t1 (
-a TIMESTAMP NOT NULL DEFAULT '2010-10-11 12:34:56' ON UPDATE CURRENT_TIMESTAMP,
-b DATETIME DEFAULT '2010-10-11 12:34:56'
-);
-INSERT INTO t1 VALUES (NULL, NULL), (DEFAULT, DEFAULT);
-INSERT INTO t1 ( a, b ) VALUES (NULL, NULL), (DEFAULT, DEFAULT);
-SELECT * FROM t1;
-a b
-2011-04-20 07:05:39 NULL
-2010-10-11 12:34:56 2010-10-11 12:34:56
-2011-04-20 07:05:39 NULL
-2010-10-11 12:34:56 2010-10-11 12:34:56
-DROP TABLE t1;
-# 2011-04-20 09:53:41 UTC
-SET TIMESTAMP = 1303293221.136952;
-CREATE TABLE t1 (
-a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-c TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
-d TIMESTAMP NOT NULL DEFAULT '1986-09-27 03:00:00.098765',
-e TIMESTAMP NULL,
-f DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-g DATETIME DEFAULT CURRENT_TIMESTAMP,
-h DATETIME ON UPDATE CURRENT_TIMESTAMP,
-i DATETIME NULL,
-j DATETIME DEFAULT '1986-09-27 03:00:00.098765'
-);
-INSERT INTO t1 VALUES ();
-INSERT INTO t1 SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL;
-SELECT * FROM t1;
-a b c d e f g h i j
-2011-04-20 09:53:41 2011-04-20 09:53:41 0000-00-00 00:00:00 1986-09-27 03:00:00 NULL 2011-04-20 09:53:41 2011-04-20 09:53:41 NULL NULL 1986-09-27 03:00:00
-2011-04-20 09:53:41 2011-04-20 09:53:41 2011-04-20 09:53:41 2011-04-20 09:53:41 NULL NULL NULL NULL NULL NULL
-DROP TABLE t1;
-#
-# Test of multiple-table UPDATE for DEFAULT CURRENT_TIMESTAMP
-#
-CREATE TABLE t1 (
-a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-b DATETIME DEFAULT CURRENT_TIMESTAMP,
-c INT
-);
-INSERT INTO t1 ( c ) VALUES (1);
-SELECT * FROM t1;
-a b c
-2011-04-20 09:53:41 2011-04-20 09:53:41 1
-# 2011-04-20 17:06:13 UTC
-SET TIMESTAMP = 1303311973.163587;
-UPDATE t1 t11, t1 t12 SET t11.c = 1;
-SELECT * FROM t1;
-a b c
-2011-04-20 09:53:41 2011-04-20 09:53:41 1
-UPDATE t1 t11, t1 t12 SET t11.c = 2;
-SELECT * FROM t1;
-a b c
-2011-04-20 15:06:13 2011-04-20 09:53:41 2
-DROP TABLE t1;
-CREATE TABLE t1 (
-a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-b TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
-c DATETIME DEFAULT CURRENT_TIMESTAMP,
-d DATETIME ON UPDATE CURRENT_TIMESTAMP,
-e INT
-);
-CREATE TABLE t2 (
-f INT,
-g DATETIME ON UPDATE CURRENT_TIMESTAMP,
-h DATETIME DEFAULT CURRENT_TIMESTAMP,
-i TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
-j TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
-);
-# 1995-03-11 00:02:03 UTC
-SET TIMESTAMP = 794880123.195676;
-INSERT INTO t1 ( e ) VALUES ( 1 ), ( 2 );
-INSERT INTO t2 ( f ) VALUES ( 1 ), ( 2 );
-SELECT * FROM t1;
-a b c d e
-1995-03-11 00:02:03 0000-00-00 00:00:00 1995-03-11 00:02:03 NULL 1
-1995-03-11 00:02:03 0000-00-00 00:00:00 1995-03-11 00:02:03 NULL 2
-SELECT * FROM t2;
-f g h i j
-1 NULL 1995-03-11 00:02:03 0000-00-00 00:00:00 1995-03-11 00:02:03
-2 NULL 1995-03-11 00:02:03 0000-00-00 00:00:00 1995-03-11 00:02:03
-# 1980-12-13 02:02:01 UTC
-SET TIMESTAMP = 345520921.196755;
-UPDATE t1, t2 SET t1.e = 3, t2.f = 4;
-SELECT * FROM t1;
-a b c d e
-1995-03-11 00:02:03 1980-12-13 02:02:01 1995-03-11 00:02:03 1980-12-13 02:02:01 3
-1995-03-11 00:02:03 1980-12-13 02:02:01 1995-03-11 00:02:03 1980-12-13 02:02:01 3
-SELECT * FROM t2;
-f g h i j
-4 1980-12-13 02:02:01 1995-03-11 00:02:03 1980-12-13 02:02:01 1995-03-11 00:02:03
-4 1980-12-13 02:02:01 1995-03-11 00:02:03 1980-12-13 02:02:01 1995-03-11 00:02:03
-DROP TABLE t1, t2;
-#
-# Test of multiple table update with temporary table and on the fly.
-#
-CREATE TABLE t1 (
-a TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
-b DATETIME ON UPDATE CURRENT_TIMESTAMP,
-c INT,
-d INT
-);
-CREATE TABLE t2 (
-a TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
-b DATETIME ON UPDATE CURRENT_TIMESTAMP,
-c INT KEY,
-d INT
-);
-INSERT INTO t1 ( c ) VALUES (1), (2);
-INSERT INTO t2 ( c ) VALUES (1), (2);
-# Test of multiple table update done on the fly
-# 2011-04-20 15:06:13 UTC
-SET TIMESTAMP = 1303311973.194685;
-UPDATE t1 JOIN t2 USING ( c ) SET t2.d = 1;
-SELECT * FROM t1;
-a b c d
-0000-00-00 00:00:00 NULL 1 NULL
-0000-00-00 00:00:00 NULL 2 NULL
-SELECT * FROM t2;
-a b c d
-2011-04-20 15:06:13 2011-04-20 15:06:13 1 1
-2011-04-20 15:06:13 2011-04-20 15:06:13 2 1
-# Test of multiple table update done with temporary table.
-# 1979-01-15 03:02:01
-SET TIMESTAMP = 285213721.134679;
-UPDATE t1 JOIN t2 USING ( c ) SET t1.d = 1;
-SELECT * FROM t1;
-a b c d
-1979-01-15 02:02:01 1979-01-15 02:02:01 1 1
-1979-01-15 02:02:01 1979-01-15 02:02:01 2 1
-SELECT * FROM t2;
-a b c d
-2011-04-20 15:06:13 2011-04-20 15:06:13 1 1
-2011-04-20 15:06:13 2011-04-20 15:06:13 2 1
-DROP TABLE t1, t2;
-#
-# Test of ON UPDATE CURRENT_TIMESTAMP.
-#
-CREATE TABLE t1 (
-a TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
-b DATETIME ON UPDATE CURRENT_TIMESTAMP,
-c INT
-);
-# 2011-04-20 09:53:41 UTC
-SET TIMESTAMP = 1303293221.794613;
-INSERT INTO t1 ( c ) VALUES ( 1 );
-SELECT * FROM t1;
-a b c
-0000-00-00 00:00:00 NULL 1
-UPDATE t1 SET c = 1;
-SELECT * FROM t1;
-a b c
-0000-00-00 00:00:00 NULL 1
-UPDATE t1 SET c = 2;
-SELECT * FROM t1;
-a b c
-2011-04-20 09:53:41 2011-04-20 09:53:41 2
-#
-# Test that ON UPDATE CURRENT_TIMESTAMP works after non-changing UPDATE.
-#
-# 2011-04-20 09:54:13 UTC
-SET TIMESTAMP = 1303293253.794613;
-UPDATE t1 SET c = 2, b = '2011-04-20 09:53:41.794613';
-SELECT * FROM t1;
-a b c
-2011-04-20 09:53:41 2011-04-20 09:53:41 2
-UPDATE t1 SET c = 3;
-SELECT * FROM t1;
-a b c
-2011-04-20 09:54:13 2011-04-20 09:54:13 3
-#
-# Test of multiple-table UPDATE for ON UPDATE CURRENT_TIMESTAMP
-#
-# 2011-04-20 15:06:13 UTC
-SET TIMESTAMP = 1303311973.534231;
-UPDATE t1 t11, t1 t12 SET t11.c = 3;
-SELECT * FROM t1;
-a b c
-2011-04-20 09:54:13 2011-04-20 09:54:13 3
-UPDATE t1 t11, t1 t12 SET t11.c = 2;
-SELECT * FROM t1;
-a b c
-2011-04-20 15:06:13 2011-04-20 15:06:13 2
-DROP TABLE t1;
-#
-# Test of a multiple-table update where only one table is updated and
-# the updated table has a primary key.
-#
-CREATE TABLE t1 ( a INT, b INT, PRIMARY KEY (a) );
-INSERT INTO t1 VALUES (1, 1),(2, 2),(3, 3),(4, 4);
-CREATE TABLE t2 ( a INT, b INT );
-INSERT INTO t2 VALUES (1, 1),(2, 2),(3, 3),(4, 4),(5, 5);
-UPDATE t1, t2 SET t1.b = 100 WHERE t1.a = t2.a;
-SELECT * FROM t1;
-a b
-1 100
-2 100
-3 100
-4 100
-SELECT * FROM t2;
-a b
-1 1
-2 2
-3 3
-4 4
-5 5
-DROP TABLE t1, t2;
-#
-# Test of ALTER TABLE, reordering columns.
-#
-CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b INT );
-ALTER TABLE t1 MODIFY a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER b;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `b` int(11) DEFAULT NULL,
- `a` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-CREATE TABLE t1 ( a INT, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, c TIMESTAMP NULL );
-ALTER TABLE t1 MODIFY b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP FIRST;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `b` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `a` int(11) DEFAULT NULL,
- `c` timestamp NULL DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-CREATE TABLE t1 ( a INT, b TIMESTAMP NULL );
-ALTER TABLE t1 MODIFY b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP FIRST;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `b` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `a` int(11) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP NULL );
-ALTER TABLE t1 MODIFY a TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER b;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `b` timestamp NULL DEFAULT NULL,
- `a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP NULL );
-ALTER TABLE t1 MODIFY a TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER b;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `b` timestamp NULL DEFAULT NULL,
- `a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE NOW(), b INT, c TIMESTAMP NULL );
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE current_timestamp(),
- `b` int(11) DEFAULT NULL,
- `c` timestamp NULL DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-ALTER TABLE t1 MODIFY a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER b;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `b` int(11) DEFAULT NULL,
- `a` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `c` timestamp NULL DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE NOW(), b INT, c TIMESTAMP NULL );
-ALTER TABLE t1 MODIFY c TIMESTAMP NULL FIRST;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `c` timestamp NULL DEFAULT NULL,
- `a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE current_timestamp(),
- `b` int(11) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT NOW() ON UPDATE CURRENT_TIMESTAMP, b INT, c TIMESTAMP NULL );
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `a` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `b` int(11) DEFAULT NULL,
- `c` timestamp NULL DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-ALTER TABLE t1 MODIFY a TIMESTAMP NOT NULL DEFAULT NOW() ON UPDATE CURRENT_TIMESTAMP AFTER b;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `b` int(11) DEFAULT NULL,
- `a` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `c` timestamp NULL DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT NOW() ON UPDATE CURRENT_TIMESTAMP, b INT, c TIMESTAMP NULL );
-ALTER TABLE t1 MODIFY c TIMESTAMP NULL FIRST;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `c` timestamp NULL DEFAULT NULL,
- `a` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `b` int(11) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-#
-# Test of ALTER TABLE, adding columns.
-#
-CREATE TABLE t1 ( a INT );
-ALTER TABLE t1 ADD COLUMN b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `a` int(11) DEFAULT NULL,
- `b` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-#
-# Test of INSERT SELECT.
-#
-CREATE TABLE t1 (
-a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-c DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-d DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
-);
-CREATE TABLE t2 (
-placeholder1 INT,
-placeholder2 INT,
-placeholder3 INT,
-placeholder4 INT,
-a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-b TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
-c DATETIME,
-d DATETIME
-);
-# 1977-08-16 15:30:01 UTC
-SET TIMESTAMP = 240589801.654312;
-INSERT INTO t2 (a, b, c, d) VALUES (
-'1977-08-16 15:30:01.123456',
-'1977-08-16 15:30:01.234567',
-'1977-08-16 15:30:01.345678',
-'1977-08-16 15:30:01.456789'
-);
-# 1986-09-27 01:00:00 UTC
-SET TIMESTAMP = 528166800.132435;
-INSERT INTO t1 ( a, c ) SELECT a, c FROM t2;
-SELECT * FROM t1;
-a b c d
-1977-08-16 15:30:01 1986-09-27 01:00:00 1977-08-16 15:30:01 1986-09-27 01:00:00
-DROP TABLE t1, t2;
-#
-# Test of CREATE TABLE SELECT.
-#
-# We test that the columns of the source table are not used to determine
-# function defaults for the receiving table.
-#
-# 1970-04-11 20:13:57 UTC
-SET TIMESTAMP = 8712837.657898;
-CREATE TABLE t1 (
-a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-c TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
-d TIMESTAMP NOT NULL DEFAULT '1986-09-27 03:00:00.098765',
-e TIMESTAMP NULL,
-f DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-g DATETIME DEFAULT CURRENT_TIMESTAMP,
-h DATETIME ON UPDATE CURRENT_TIMESTAMP,
-i DATETIME NULL,
-j DATETIME DEFAULT '1986-09-27 03:00:00.098765'
-);
-INSERT INTO t1 VALUES ();
-# 1971-01-31 21:13:57 UTC
-SET TIMESTAMP = 34200837.164937;
-CREATE TABLE t2 SELECT a FROM t1;
-SHOW CREATE TABLE t2;
-Table Create Table
-t2 CREATE TABLE `t2` (
- `a` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t2;
-a
-1970-04-11 20:13:57
-CREATE TABLE t3 SELECT b FROM t1;
-SHOW CREATE TABLE t3;
-Table Create Table
-t3 CREATE TABLE `t3` (
- `b` timestamp NOT NULL DEFAULT current_timestamp()
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t3;
-b
-1970-04-11 20:13:57
-CREATE TABLE t4 SELECT c FROM t1;
-SHOW CREATE TABLE t4;
-Table Create Table
-t4 CREATE TABLE `t4` (
- `c` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE current_timestamp()
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t4;
-c
-0000-00-00 00:00:00
-CREATE TABLE t5 SELECT d FROM t1;
-SHOW CREATE TABLE t5;
-Table Create Table
-t5 CREATE TABLE `t5` (
- `d` timestamp NOT NULL DEFAULT '1986-09-27 03:00:00'
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t5;
-d
-1986-09-27 03:00:00
-CREATE TABLE t6 SELECT e FROM t1;
-SHOW CREATE TABLE t6;
-Table Create Table
-t6 CREATE TABLE `t6` (
- `e` timestamp NULL DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t6;
-e
-NULL
-CREATE TABLE t7 SELECT f FROM t1;
-SHOW CREATE TABLE t7;
-Table Create Table
-t7 CREATE TABLE `t7` (
- `f` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp()
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t7;
-f
-1970-04-11 20:13:57
-CREATE TABLE t8 SELECT g FROM t1;
-SHOW CREATE TABLE t8;
-Table Create Table
-t8 CREATE TABLE `t8` (
- `g` datetime DEFAULT current_timestamp()
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t8;
-g
-1970-04-11 20:13:57
-CREATE TABLE t9 SELECT h FROM t1;
-SHOW CREATE TABLE t9;
-Table Create Table
-t9 CREATE TABLE `t9` (
- `h` datetime DEFAULT NULL ON UPDATE current_timestamp()
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t9;
-h
-NULL
-CREATE TABLE t10 SELECT i FROM t1;
-SHOW CREATE TABLE t10;
-Table Create Table
-t10 CREATE TABLE `t10` (
- `i` datetime DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t10;
-i
-NULL
-CREATE TABLE t11 SELECT j FROM t1;
-SHOW CREATE TABLE t11;
-Table Create Table
-t11 CREATE TABLE `t11` (
- `j` datetime DEFAULT '1986-09-27 03:00:00'
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t11;
-j
-1986-09-27 03:00:00
-CREATE TABLE t12 (
-k TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-l TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-m TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-n TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
-o TIMESTAMP NOT NULL DEFAULT '1986-09-27 03:00:00.098765',
-p TIMESTAMP NULL,
-q DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-r DATETIME DEFAULT CURRENT_TIMESTAMP,
-s DATETIME ON UPDATE CURRENT_TIMESTAMP,
-t DATETIME NULL,
-u DATETIME DEFAULT '1986-09-27 03:00:00.098765'
-)
-SELECT * FROM t1;
-SHOW CREATE TABLE t12;
-Table Create Table
-t12 CREATE TABLE `t12` (
- `k` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `l` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `m` timestamp NOT NULL DEFAULT current_timestamp(),
- `n` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE current_timestamp(),
- `o` timestamp NOT NULL DEFAULT '1986-09-27 03:00:00',
- `p` timestamp NULL DEFAULT NULL,
- `q` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `r` datetime DEFAULT current_timestamp(),
- `s` datetime DEFAULT NULL ON UPDATE current_timestamp(),
- `t` datetime DEFAULT NULL,
- `u` datetime DEFAULT '1986-09-27 03:00:00',
- `a` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `b` timestamp NOT NULL DEFAULT current_timestamp(),
- `c` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE current_timestamp(),
- `d` timestamp NOT NULL DEFAULT '1986-09-27 03:00:00',
- `e` timestamp NULL DEFAULT NULL,
- `f` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `g` datetime DEFAULT current_timestamp(),
- `h` datetime DEFAULT NULL ON UPDATE current_timestamp(),
- `i` datetime DEFAULT NULL,
- `j` datetime DEFAULT '1986-09-27 03:00:00'
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12;
-# 1970-04-11 20:13:57 UTC
-SET TIMESTAMP = 8712837.164953;
-CREATE TABLE t1 (
-a DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-b DATETIME DEFAULT CURRENT_TIMESTAMP,
-c DATETIME ON UPDATE CURRENT_TIMESTAMP,
-d DATETIME NULL,
-e DATETIME DEFAULT '1986-09-27 03:00:00.098765'
-);
-INSERT INTO t1 VALUES ();
-# 1971-01-31 20:13:57 UTC
-SET TIMESTAMP = 34200837.915736;
-CREATE TABLE t2 SELECT a FROM t1;
-SHOW CREATE TABLE t2;
-Table Create Table
-t2 CREATE TABLE `t2` (
- `a` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp()
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t2;
-a
-1970-04-11 20:13:57
-CREATE TABLE t3 SELECT b FROM t1;
-SHOW CREATE TABLE t3;
-Table Create Table
-t3 CREATE TABLE `t3` (
- `b` datetime DEFAULT current_timestamp()
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t3;
-b
-1970-04-11 20:13:57
-CREATE TABLE t4 SELECT c FROM t1;
-SHOW CREATE TABLE t4;
-Table Create Table
-t4 CREATE TABLE `t4` (
- `c` datetime DEFAULT NULL ON UPDATE current_timestamp()
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t4;
-c
-NULL
-CREATE TABLE t5 SELECT d FROM t1;
-SHOW CREATE TABLE t5;
-Table Create Table
-t5 CREATE TABLE `t5` (
- `d` datetime DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t5;
-d
-NULL
-CREATE TABLE t6 SELECT e FROM t1;
-SHOW CREATE TABLE t6;
-Table Create Table
-t6 CREATE TABLE `t6` (
- `e` datetime DEFAULT '1986-09-27 03:00:00'
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t6;
-e
-1986-09-27 03:00:00
-DROP TABLE t1, t2, t3, t4, t5, t6;
-#
-# Test of a CREATE TABLE SELECT that also declared columns. In this case
-# the function default should be de-activated during the execution of the
-# CREATE TABLE statement.
-#
-# 1970-01-01 03:16:40
-SET TIMESTAMP = 1000.987654;
-CREATE TABLE t1 ( a INT );
-INSERT INTO t1 VALUES ( 1 ), ( 2 );
-CREATE TABLE t2 ( b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) SELECT a FROM t1;
-SHOW CREATE TABLE t2;
-Table Create Table
-t2 CREATE TABLE `t2` (
- `b` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `a` int(11) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SET TIMESTAMP = 2000.876543;
-INSERT INTO t2( a ) VALUES ( 3 );
-SELECT * FROM t2;
-b a
-1970-01-01 00:16:40 1
-1970-01-01 00:16:40 2
-1970-01-01 00:33:20 3
-DROP TABLE t1, t2;
-#
-# Test of updating a view.
-#
-CREATE TABLE t1 ( a INT, b DATETIME DEFAULT CURRENT_TIMESTAMP );
-CREATE TABLE t2 ( a INT, b DATETIME ON UPDATE CURRENT_TIMESTAMP );
-CREATE VIEW v1 AS SELECT * FROM t1;
-SHOW CREATE VIEW v1;
-View Create View character_set_client collation_connection
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` latin1 latin1_swedish_ci
-CREATE VIEW v2 AS SELECT * FROM t2;
-SHOW CREATE VIEW v2;
-View Create View character_set_client collation_connection
-v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t2`.`a` AS `a`,`t2`.`b` AS `b` from `t2` latin1 latin1_swedish_ci
-# 1971-01-31 21:13:57 UTC
-SET TIMESTAMP = 34200837.348564;
-INSERT INTO v1 ( a ) VALUES ( 1 );
-INSERT INTO v2 ( a ) VALUES ( 1 );
-SELECT * FROM t1;
-a b
-1 1971-01-31 20:13:57
-SELECT * FROM v1;
-a b
-1 1971-01-31 20:13:57
-SELECT * FROM t2;
-a b
-1 NULL
-SELECT * FROM v2;
-a b
-1 NULL
-# 1970-04-11 20:13:57 UTC
-SET TIMESTAMP = 8712837.567332;
-UPDATE v1 SET a = 2;
-UPDATE v2 SET a = 2;
-SELECT * FROM t1;
-a b
-2 1971-01-31 20:13:57
-SELECT * FROM v1;
-a b
-2 1971-01-31 20:13:57
-SELECT * FROM t2;
-a b
-2 1970-04-11 20:13:57
-SELECT * FROM v2;
-a b
-2 1970-04-11 20:13:57
-DROP VIEW v1, v2;
-DROP TABLE t1, t2;
-#
-# Test with stored procedures.
-#
-CREATE TABLE t1 (
-a INT,
-b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-c TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-d TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
-e TIMESTAMP NULL,
-f DATETIME DEFAULT CURRENT_TIMESTAMP,
-g DATETIME ON UPDATE CURRENT_TIMESTAMP
-);
-CREATE PROCEDURE p1() INSERT INTO test.t1( a ) VALUES ( 1 );
-CREATE PROCEDURE p2() UPDATE t1 SET a = 2 WHERE a = 1;
-# 1971-01-31 20:13:57 UTC
-SET TIMESTAMP = 34200837.876544;
-CALL p1();
-SELECT * FROM t1;
-a b c d e f g
-1 1971-01-31 20:13:57 1971-01-31 20:13:57 0000-00-00 00:00:00 NULL 1971-01-31 20:13:57 NULL
-# 1970-04-11 21:13:57 UTC
-SET TIMESTAMP = 8712837.143546;
-CALL p2();
-SELECT * FROM t1;
-a b c d e f g
-2 1970-04-11 20:13:57 1971-01-31 20:13:57 1970-04-11 20:13:57 NULL 1971-01-31 20:13:57 1970-04-11 20:13:57
-DROP PROCEDURE p1;
-DROP PROCEDURE p2;
-DROP TABLE t1;
-#
-# Test with triggers.
-#
-CREATE TABLE t1 (
-a INT,
-b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-c TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-d TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
-e TIMESTAMP NULL,
-f DATETIME,
-g DATETIME DEFAULT CURRENT_TIMESTAMP,
-h DATETIME ON UPDATE CURRENT_TIMESTAMP,
-i DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
-);
-CREATE TABLE t2 ( a INT );
-CREATE TRIGGER t2_trg BEFORE INSERT ON t2 FOR EACH ROW
-BEGIN
-INSERT INTO t1 ( a ) VALUES ( 1 );
-END|
-# 1971-01-31 21:13:57 UTC
-SET TIMESTAMP = 34200837.978675;
-INSERT INTO t2 ( a ) VALUES ( 1 );
-SELECT * FROM t1;
-a b c d e f g h i
-1 1971-01-31 20:13:57 1971-01-31 20:13:57 0000-00-00 00:00:00 NULL NULL 1971-01-31 20:13:57 NULL 1971-01-31 20:13:57
-DROP TRIGGER t2_trg;
-CREATE TRIGGER t2_trg BEFORE INSERT ON t2 FOR EACH ROW
-BEGIN
-UPDATE t1 SET a = 2;
-END|
-# 1970-04-11 21:13:57 UTC
-SET TIMESTAMP = 8712837.456789;
-INSERT INTO t2 ( a ) VALUES ( 1 );
-SELECT * FROM t1;
-a b c d e f g h i
-2 1970-04-11 20:13:57 1971-01-31 20:13:57 1970-04-11 20:13:57 NULL NULL 1971-01-31 20:13:57 1970-04-11 20:13:57 1970-04-11 20:13:57
-DROP TABLE t1, t2;
-#
-# Test where the assignment target is not a column.
-#
-CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
-CREATE TABLE t2 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
-CREATE TABLE t3 ( a TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP );
-CREATE TABLE t4 ( a TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP );
-CREATE VIEW v1 AS SELECT a COLLATE latin1_german1_ci AS b FROM t1;
-CREATE VIEW v2 ( b ) AS SELECT a COLLATE latin1_german1_ci FROM t2;
-CREATE VIEW v3 AS SELECT a COLLATE latin1_german1_ci AS b FROM t3;
-CREATE VIEW v4 ( b ) AS SELECT a COLLATE latin1_german1_ci FROM t4;
-INSERT INTO v1 ( b ) VALUES ( '2007-10-24 00:03:34.010203' );
-SELECT a FROM t1;
-a
-2007-10-24 00:03:34
-INSERT INTO v2 ( b ) VALUES ( '2007-10-24 00:03:34.010203' );
-SELECT a FROM t2;
-a
-2007-10-24 00:03:34
-INSERT INTO t3 VALUES ();
-UPDATE v3 SET b = '2007-10-24 00:03:34.010203';
-SELECT a FROM t3;
-a
-2007-10-24 00:03:34
-INSERT INTO t4 VALUES ();
-UPDATE v4 SET b = '2007-10-24 00:03:34.010203';
-SELECT a FROM t4;
-a
-2007-10-24 00:03:34
-DROP VIEW v1, v2, v3, v4;
-DROP TABLE t1, t2, t3, t4;
-#
-# Test of LOAD DATA/XML INFILE
-# This tests behavior of function defaults for TIMESTAMP and DATETIME
-# columns. during LOAD ... INFILE.
-# As can be seen here, a TIMESTAMP column with only ON UPDATE
-# CURRENT_TIMESTAMP will still have CURRENT_TIMESTAMP inserted on LOAD
-# ... INFILE if the value is missing. For DATETIME columns a NULL value
-# is inserted instead.
-#
-CREATE TABLE t1 (
-a INT,
-b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-c TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-d TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
-e TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-f DATETIME,
-g DATETIME DEFAULT CURRENT_TIMESTAMP,
-h DATETIME ON UPDATE CURRENT_TIMESTAMP,
-i DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
-);
-CREATE TABLE t2 (
-a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-c TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
-d TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-e DATETIME NOT NULL,
-f DATETIME NOT NULL DEFAULT '1977-01-02 12:13:14',
-g DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
-h DATETIME ON UPDATE CURRENT_TIMESTAMP NOT NULL,
-i DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL
-);
-SELECT 1 INTO OUTFILE 't3.dat' FROM dual;
-SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
-INTO OUTFILE 't4.dat'
-FROM dual;
-SELECT 1, 2 INTO OUTFILE 't5.dat' FROM dual;
-# Mon Aug 1 15:11:19 2011 UTC
-SET TIMESTAMP = 1312211479.918273;
-LOAD DATA INFILE 't3.dat' IGNORE INTO TABLE t1;
-Warnings:
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-SELECT * FROM t1;
-a 1
-b 2011-08-01 15:11:19
-c 2011-08-01 15:11:19
-d 2011-08-01 15:11:19
-e 2011-08-01 15:11:19
-f NULL
-g NULL
-h NULL
-i NULL
-LOAD DATA INFILE 't4.dat' IGNORE INTO TABLE t2;
-Warnings:
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'e' at row 1
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'f' at row 1
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'g' at row 1
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'h' at row 1
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'i' at row 1
-SELECT a FROM t2;
-a
-2011-08-01 15:11:19
-SELECT b FROM t2;
-b
-2011-08-01 15:11:19
-SELECT c FROM t2;
-c
-2011-08-01 15:11:19
-SELECT d FROM t2;
-d
-2011-08-01 15:11:19
-# As shown here, supplying a NULL value to a non-nullable
-# column with no default value results in the zero date.
-SELECT e FROM t2;
-e
-0000-00-00 00:00:00
-# As shown here, supplying a NULL value to a non-nullable column with a
-# default value results in the zero date.
-SELECT f FROM t2;
-f
-0000-00-00 00:00:00
-# As shown here, supplying a NULL value to a non-nullable column with a
-# default function results in the zero date.
-SELECT g FROM t2;
-g
-0000-00-00 00:00:00
-# As shown here, supplying a NULL value to a non-nullable DATETIME ON
-# UPDATE CURRENT_TIMESTAMP column with no default value results in the
-# zero date.
-SELECT h FROM t2;
-h
-0000-00-00 00:00:00
-SELECT i FROM t2;
-i
-0000-00-00 00:00:00
-DELETE FROM t1;
-DELETE FROM t2;
-# Read t3 file into t1
-# The syntax will cause a different code path to be taken
-# (read_fixed_length()) than under the LOAD ... INTO TABLE t1 command
-# above. The code in this path is copy-pasted code from the path taken
-# under the syntax used in the previous LOAD command.
-LOAD DATA INFILE 't3.dat' IGNORE INTO TABLE t1
-FIELDS TERMINATED BY '' ENCLOSED BY '';
-Warnings:
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-SELECT b FROM t1;
-b
-2011-08-01 15:11:19
-SELECT c FROM t1;
-c
-2011-08-01 15:11:19
-SELECT d FROM t1;
-d
-2011-08-01 15:11:19
-SELECT e FROM t1;
-e
-2011-08-01 15:11:19
-# Yes, a missing field cannot be NULL using this syntax, so it will
-# zero date instead. Says a comment in read_fixed_length() : "No fields
-# specified in fields_vars list can be NULL in this format."
-# It appears to be by design. This is inconsistent with LOAD DATA INFILE
-# syntax in previous test.
-SELECT f FROM t1;
-f
-0000-00-00 00:00:00
-SELECT g FROM t1;
-g
-0000-00-00 00:00:00
-# See comment above "SELECT f FROM f1".
-SELECT h FROM t1;
-h
-0000-00-00 00:00:00
-SELECT i FROM t1;
-i
-0000-00-00 00:00:00
-DELETE FROM t1;
-LOAD DATA INFILE 't5.dat' INTO TABLE t1 ( a, @dummy );
-SELECT * FROM t1;
-a b c d e f g h i
-1 2011-08-01 15:11:19 2011-08-01 15:11:19 0000-00-00 00:00:00 2011-08-01 15:11:19 NULL 2011-08-01 15:11:19 NULL 2011-08-01 15:11:19
-SELECT @dummy;
-@dummy
-2
-DELETE FROM t1;
-LOAD DATA INFILE 't3.dat' INTO TABLE t1 ( a ) SET c = '2005-06-06 08:09:10';
-SELECT * FROM t1;
-a b c d e f g h i
-1 2011-08-01 15:11:19 2005-06-06 08:09:10 0000-00-00 00:00:00 2011-08-01 15:11:19 NULL 2011-08-01 15:11:19 NULL 2011-08-01 15:11:19
-DELETE FROM t1;
-LOAD DATA INFILE 't3.dat' INTO TABLE t1 ( a ) SET g = '2005-06-06 08:09:10';
-SELECT * FROM t1;
-a b c d e f g h i
-1 2011-08-01 15:11:19 2011-08-01 15:11:19 0000-00-00 00:00:00 2011-08-01 15:11:19 NULL 2005-06-06 08:09:10 NULL 2011-08-01 15:11:19
-DELETE FROM t1;
-# Load a static XML file
-LOAD XML INFILE '../../std_data/onerow.xml' INTO TABLE t1
-ROWS IDENTIFIED BY '<row>';
-Missing tags are treated as NULL
-SELECT * FROM t1;
-a 1
-b 2011-08-01 15:11:19
-c 2011-08-01 15:11:19
-d 2011-08-01 15:11:19
-e 2011-08-01 15:11:19
-f NULL
-g NULL
-h NULL
-i NULL
-DROP TABLE t1, t2;
-#
-# Similar LOAD DATA tests in another form
-#
-# All of this test portion has been run on a pre-WL5874 trunk
-# (except that like_b and like_c didn't exist) and all result
-# differences are a bug.
-# Regarding like_b its definition is the same as b's except
-# that the constant default is replaced with a function
-# default. Our expectation is that like_b would behave
-# like b: if b is set to NULL, or set to 0000-00-00, or set to
-# its default, then the same should apply to like_b. Same for
-# like_c vs c.
-# Mon Aug 1 15:11:19 2011 UTC
-SET TIMESTAMP = 1312211479.089786;
-SELECT 1 INTO OUTFILE "file1.dat" FROM dual;
-SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
-INTO OUTFILE "file2.dat" FROM dual;
-# Too short row
-CREATE TABLE t1 (
-dummy INT,
-a DATETIME NULL DEFAULT NULL,
-b DATETIME NULL DEFAULT "2011-11-18",
-like_b DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
-c DATETIME NOT NULL DEFAULT "2011-11-18",
-like_c DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
-d TIMESTAMP NULL DEFAULT "2011-05-03" ON UPDATE CURRENT_TIMESTAMP,
-e TIMESTAMP NOT NULL DEFAULT "2011-05-03",
-f TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-g TIMESTAMP NULL DEFAULT NULL,
-h INT NULL,
-i INT NOT NULL DEFAULT 42
-);
-# There is no promotion
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `dummy` int(11) DEFAULT NULL,
- `a` datetime DEFAULT NULL,
- `b` datetime DEFAULT '2011-11-18 00:00:00',
- `like_b` datetime DEFAULT current_timestamp(),
- `c` datetime NOT NULL DEFAULT '2011-11-18 00:00:00',
- `like_c` datetime NOT NULL DEFAULT current_timestamp(),
- `d` timestamp NULL DEFAULT '2011-05-03 00:00:00' ON UPDATE current_timestamp(),
- `e` timestamp NOT NULL DEFAULT '2011-05-03 00:00:00',
- `f` timestamp NOT NULL DEFAULT current_timestamp(),
- `g` timestamp NULL DEFAULT NULL,
- `h` int(11) DEFAULT NULL,
- `i` int(11) NOT NULL DEFAULT 42
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-LOAD DATA INFILE "file1.dat" IGNORE INTO table t1;
-Warnings:
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-# It is strange that "like_b" gets NULL when "b" gets 0. But
-# this is consistent with how "a" gets NULL when "b" gets 0,
-# with how "g" gets NULL when "d" gets 0, and with how "h" gets
-# NULL when "i" gets 0. Looks like "DEFAULT
-# <non-NULL-constant>" is changed to 0, whereas DEFAULT NULL
-# and DEFAULT NOW are changed to NULL.
-SELECT * FROM t1;
-dummy 1
-a NULL
-b 0000-00-00 00:00:00
-like_b NULL
-c 0000-00-00 00:00:00
-like_c 0000-00-00 00:00:00
-d 0000-00-00 00:00:00
-e 2011-08-01 15:11:19
-f 2011-08-01 15:11:19
-g NULL
-h NULL
-i 0
-delete from t1;
-alter table t1
-modify f TIMESTAMP NULL default CURRENT_TIMESTAMP;
-# There is no promotion
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `dummy` int(11) DEFAULT NULL,
- `a` datetime DEFAULT NULL,
- `b` datetime DEFAULT '2011-11-18 00:00:00',
- `like_b` datetime DEFAULT current_timestamp(),
- `c` datetime NOT NULL DEFAULT '2011-11-18 00:00:00',
- `like_c` datetime NOT NULL DEFAULT current_timestamp(),
- `d` timestamp NULL DEFAULT '2011-05-03 00:00:00' ON UPDATE current_timestamp(),
- `e` timestamp NOT NULL DEFAULT '2011-05-03 00:00:00',
- `f` timestamp NULL DEFAULT current_timestamp(),
- `g` timestamp NULL DEFAULT NULL,
- `h` int(11) DEFAULT NULL,
- `i` int(11) NOT NULL DEFAULT 42
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-LOAD DATA INFILE "file1.dat" IGNORE INTO table t1;
-Warnings:
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-SELECT * FROM t1;
-dummy 1
-a NULL
-b 0000-00-00 00:00:00
-like_b NULL
-c 0000-00-00 00:00:00
-like_c 0000-00-00 00:00:00
-d 0000-00-00 00:00:00
-e 2011-08-01 15:11:19
-f NULL
-g NULL
-h NULL
-i 0
-delete from t1;
-drop table t1;
-# Conclusion derived from trunk's results:
-# DATETIME DEFAULT <non-NULL-constant> (b,c) gets 0000-00-00,
-# DATETIME DEFAULT NULL (a) gets NULL,
-# TIMESTAMP NULL DEFAULT <non-NULL-constant> (d) gets 0000-00-00,
-# TIMESTAMP NULL DEFAULT NULL (g) gets NULL,
-# TIMESTAMP NULL DEFAULT NOW (f after ALTER) gets NULL,
-# TIMESTAMP NOT NULL (f before ALTER, e) gets NOW.
-### Loading NULL ###
-CREATE TABLE t1 (
-dummy INT,
-a DATETIME NULL DEFAULT NULL,
-b DATETIME NULL DEFAULT "2011-11-18",
-like_b DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
-c DATETIME NOT NULL DEFAULT "2011-11-18",
-like_c DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
-d TIMESTAMP NULL DEFAULT "2011-05-03" ON UPDATE CURRENT_TIMESTAMP,
-e TIMESTAMP NOT NULL DEFAULT "2011-05-03",
-f TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-g TIMESTAMP NULL DEFAULT NULL,
-h INT NULL,
-i INT NOT NULL DEFAULT 42
-);
-# There is no promotion
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `dummy` int(11) DEFAULT NULL,
- `a` datetime DEFAULT NULL,
- `b` datetime DEFAULT '2011-11-18 00:00:00',
- `like_b` datetime DEFAULT current_timestamp(),
- `c` datetime NOT NULL DEFAULT '2011-11-18 00:00:00',
- `like_c` datetime NOT NULL DEFAULT current_timestamp(),
- `d` timestamp NULL DEFAULT '2011-05-03 00:00:00' ON UPDATE current_timestamp(),
- `e` timestamp NOT NULL DEFAULT '2011-05-03 00:00:00',
- `f` timestamp NOT NULL DEFAULT current_timestamp(),
- `g` timestamp NULL DEFAULT NULL,
- `h` int(11) DEFAULT NULL,
- `i` int(11) NOT NULL DEFAULT 42
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-LOAD DATA INFILE "file2.dat" IGNORE INTO table t1;
-Warnings:
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 1
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'like_c' at row 1
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'i' at row 1
-SELECT * FROM t1;
-dummy NULL
-a NULL
-b NULL
-like_b NULL
-c 0000-00-00 00:00:00
-like_c 0000-00-00 00:00:00
-d NULL
-e 2011-08-01 15:11:19
-f 2011-08-01 15:11:19
-g NULL
-h NULL
-i 0
-delete from t1;
-alter table t1
-modify f TIMESTAMP NULL default CURRENT_TIMESTAMP;
-# There is no promotion
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `dummy` int(11) DEFAULT NULL,
- `a` datetime DEFAULT NULL,
- `b` datetime DEFAULT '2011-11-18 00:00:00',
- `like_b` datetime DEFAULT current_timestamp(),
- `c` datetime NOT NULL DEFAULT '2011-11-18 00:00:00',
- `like_c` datetime NOT NULL DEFAULT current_timestamp(),
- `d` timestamp NULL DEFAULT '2011-05-03 00:00:00' ON UPDATE current_timestamp(),
- `e` timestamp NOT NULL DEFAULT '2011-05-03 00:00:00',
- `f` timestamp NULL DEFAULT current_timestamp(),
- `g` timestamp NULL DEFAULT NULL,
- `h` int(11) DEFAULT NULL,
- `i` int(11) NOT NULL DEFAULT 42
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-LOAD DATA INFILE "file2.dat" IGNORE INTO table t1;
-Warnings:
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 1
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'like_c' at row 1
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'i' at row 1
-SELECT * FROM t1;
-dummy NULL
-a NULL
-b NULL
-like_b NULL
-c 0000-00-00 00:00:00
-like_c 0000-00-00 00:00:00
-d NULL
-e 2011-08-01 15:11:19
-f NULL
-g NULL
-h NULL
-i 0
-delete from t1;
-# Conclusion derived from trunk's results:
-# DATETIME NULL (a,b) gets NULL,
-# DATETIME NOT NULL (c) gets 0000-00-00,
-# TIMESTAMP NULL (d,f,g) gets NULL,
-# TIMESTAMP NOT NULL (e) gets NOW.
-drop table t1;
-#
-# Test of updatable views with check options. The option can be violated
-# using ON UPDATE updates which is very strange as this offers a loophole
-# in this integrity check.
-#
-SET TIME_ZONE = "+03:00";
-# 1970-01-01 03:16:40
-SET TIMESTAMP = 1000.123456;
-CREATE TABLE t1 ( a INT, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `a` int(11) DEFAULT NULL,
- `b` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-INSERT INTO t1 ( a ) VALUES ( 1 );
-SELECT * FROM t1;
-a b
-1 1970-01-01 03:16:40
-CREATE VIEW v1 AS SELECT * FROM t1 WHERE b <= '1970-01-01 03:16:40.123456'
-WITH CHECK OPTION;
-SELECT * FROM v1;
-a b
-1 1970-01-01 03:16:40
-# 1970-01-01 03:33:20
-SET TIMESTAMP = 2000.000234;
-UPDATE v1 SET a = 2;
-ERROR 44000: CHECK OPTION failed `test`.`v1`
-SELECT * FROM t1;
-a b
-1 1970-01-01 03:16:40
-DROP VIEW v1;
-DROP TABLE t1;
-CREATE TABLE t1 (
-a TIMESTAMP NOT NULL DEFAULT '1973-08-14 09:11:22.089786' ON UPDATE CURRENT_TIMESTAMP,
-c INT KEY
-);
-# 1973-08-14 09:11:22 UTC
-SET TIMESTAMP = 114167482.534231;
-INSERT INTO t1 ( c ) VALUES ( 1 );
-CREATE VIEW v1 AS
-SELECT *
-FROM t1
-WHERE a >= '1973-08-14 09:11:22'
-WITH LOCAL CHECK OPTION;
-SELECT * FROM v1;
-a c
-1973-08-14 09:11:22 1
-SET TIMESTAMP = 1.126789;
-INSERT INTO v1 ( c ) VALUES ( 1 ) ON DUPLICATE KEY UPDATE c = 2;
-ERROR 44000: CHECK OPTION failed `test`.`v1`
-SELECT * FROM v1;
-a c
-1973-08-14 09:11:22 1
-DROP VIEW v1;
-DROP TABLE t1;
-#
-# Bug 13095459 - MULTI-TABLE UPDATE MODIFIES A ROW TWICE
-#
-CREATE TABLE t1 (
-a INT,
-b INT,
-ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-PRIMARY KEY ( a, ts )
-);
-INSERT INTO t1( a, b, ts ) VALUES ( 1, 0, '2000-09-28 17:44:34' );
-CREATE TABLE t2 ( a INT );
-INSERT INTO t2 VALUES ( 1 );
-UPDATE t1 STRAIGHT_JOIN t2
-SET t1.b = t1.b + 1
-WHERE t1.a = 1 AND t1.ts >= '2000-09-28 00:00:00';
-SELECT b FROM t1;
-b
-1
-DROP TABLE t1, t2;
-#
-# Bug#11745578: 17392: ALTER TABLE ADD COLUMN TIMESTAMP DEFAULT
-# CURRENT_TIMESTAMP INSERTS ZERO
-#
-SET timestamp = 1000;
-CREATE TABLE t1 ( b INT );
-INSERT INTO t1 VALUES (1);
-ALTER TABLE t1 ADD COLUMN a6 DATETIME DEFAULT NOW() ON UPDATE NOW() FIRST;
-ALTER TABLE t1 ADD COLUMN a5 DATETIME DEFAULT NOW() FIRST;
-ALTER TABLE t1 ADD COLUMN a4 DATETIME ON UPDATE NOW() FIRST;
-ALTER TABLE t1 ADD COLUMN a3 TIMESTAMP NOT NULL DEFAULT NOW() ON UPDATE NOW() FIRST;
-ALTER TABLE t1 ADD COLUMN a2 TIMESTAMP NOT NULL DEFAULT NOW() FIRST;
-ALTER TABLE t1 ADD COLUMN a1 TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE NOW() FIRST;
-ALTER TABLE t1 ADD COLUMN c1 TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE NOW() AFTER b;
-ALTER TABLE t1 ADD COLUMN c2 TIMESTAMP NOT NULL DEFAULT NOW() AFTER c1;
-ALTER TABLE t1 ADD COLUMN c3 TIMESTAMP NOT NULL DEFAULT NOW() ON UPDATE NOW() AFTER c2;
-ALTER TABLE t1 ADD COLUMN c4 DATETIME ON UPDATE NOW() AFTER c3;
-ALTER TABLE t1 ADD COLUMN c5 DATETIME DEFAULT NOW() AFTER c4;
-ALTER TABLE t1 ADD COLUMN c6 DATETIME DEFAULT NOW() ON UPDATE NOW() AFTER c5;
-SELECT * FROM t1;
-a1 0000-00-00 00:00:00
-a2 1970-01-01 03:16:40
-a3 1970-01-01 03:16:40
-a4 NULL
-a5 1970-01-01 03:16:40
-a6 1970-01-01 03:16:40
-b 1
-c1 0000-00-00 00:00:00
-c2 1970-01-01 03:16:40
-c3 1970-01-01 03:16:40
-c4 NULL
-c5 1970-01-01 03:16:40
-c6 1970-01-01 03:16:40
-DROP TABLE t1;
-CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT NOW() ON UPDATE CURRENT_TIMESTAMP, b DATETIME DEFAULT NOW() );
-INSERT INTO t1 VALUES ();
-SET timestamp = 1000000000;
-ALTER TABLE t1 MODIFY COLUMN a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP(3);
-ALTER TABLE t1 MODIFY COLUMN b DATETIME(3) DEFAULT CURRENT_TIMESTAMP(3);
-SELECT * FROM t1;
-a b
-1970-01-01 03:16:40.000 1970-01-01 03:16:40.000
-DROP TABLE t1;
-CREATE TABLE t1 (
-a TIMESTAMP NOT NULL DEFAULT '1999-12-01 11:22:33' ON UPDATE CURRENT_TIMESTAMP,
-b DATETIME DEFAULT '1999-12-01 11:22:33'
-);
-INSERT INTO t1 VALUES ();
-ALTER TABLE t1 MODIFY COLUMN a TIMESTAMP DEFAULT NOW();
-ALTER TABLE t1 MODIFY COLUMN b DATETIME DEFAULT NOW();
-INSERT INTO t1 VALUES ();
-SELECT * FROM t1;
-a b
-1999-12-01 11:22:33 1999-12-01 11:22:33
-2001-09-09 04:46:40 2001-09-09 04:46:40
-DROP TABLE t1;
-#
-# Function defaults run 2. Six digits scale on seconds precision.
-#
-SET TIME_ZONE = "+00:00";
-#
-# Test of errors for column data types that dont support function
-# defaults.
-#
-CREATE OR REPLACE TABLE t1( a BIT DEFAULT CURRENT_TIMESTAMP(6) );
-CREATE OR REPLACE TABLE t1( a TINYINT DEFAULT CURRENT_TIMESTAMP(6) );
-CREATE OR REPLACE TABLE t1( a SMALLINT DEFAULT CURRENT_TIMESTAMP(6) );
-CREATE OR REPLACE TABLE t1( a MEDIUMINT DEFAULT CURRENT_TIMESTAMP(6) );
-CREATE OR REPLACE TABLE t1( a INT DEFAULT CURRENT_TIMESTAMP(6) );
-CREATE OR REPLACE TABLE t1( a BIGINT DEFAULT CURRENT_TIMESTAMP(6) );
-CREATE OR REPLACE TABLE t1( a FLOAT DEFAULT CURRENT_TIMESTAMP(6) );
-CREATE OR REPLACE TABLE t1( a DECIMAL DEFAULT CURRENT_TIMESTAMP(6) );
-CREATE OR REPLACE TABLE t1( a DATE DEFAULT CURRENT_TIMESTAMP(6) );
-CREATE OR REPLACE TABLE t1( a TIME DEFAULT CURRENT_TIMESTAMP(6) );
-CREATE OR REPLACE TABLE t1( a YEAR DEFAULT CURRENT_TIMESTAMP(6) );
-CREATE OR REPLACE TABLE t1( a BIT ON UPDATE CURRENT_TIMESTAMP(6) );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a TINYINT ON UPDATE CURRENT_TIMESTAMP(6) );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a SMALLINT ON UPDATE CURRENT_TIMESTAMP(6) );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a MEDIUMINT ON UPDATE CURRENT_TIMESTAMP(6) );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a INT ON UPDATE CURRENT_TIMESTAMP(6) );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a BIGINT ON UPDATE CURRENT_TIMESTAMP(6) );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a FLOAT ON UPDATE CURRENT_TIMESTAMP(6) );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a DECIMAL ON UPDATE CURRENT_TIMESTAMP(6) );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a DATE ON UPDATE CURRENT_TIMESTAMP(6) );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a TIME ON UPDATE CURRENT_TIMESTAMP(6) );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-CREATE OR REPLACE TABLE t1( a YEAR ON UPDATE CURRENT_TIMESTAMP(6) );
-ERROR HY000: Invalid ON UPDATE clause for 'a' column
-drop table if exists t1;
-#
-# Test that the default clause behaves like NOW() regarding time zones.
-#
-CREATE TABLE t1 (
-a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
-c TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6),
-d TIMESTAMP(6) NULL,
-e DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-f DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6),
-g DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6),
-h DATETIME(6)
-);
-# 2011-09-27 14:11:08 UTC
-SET TIMESTAMP = 1317132668.654321;
-SET @old_time_zone = @@TIME_ZONE;
-SET TIME_ZONE = "+05:00";
-INSERT INTO t1( d, h ) VALUES ( NOW(6), NOW(6) );
-SELECT * FROM t1;
-a b c d e f g h
-2011-09-27 19:11:08.654321 2011-09-27 19:11:08.654321 0000-00-00 00:00:00.000000 2011-09-27 19:11:08.654321 2011-09-27 19:11:08.654321 2011-09-27 19:11:08.654321 NULL 2011-09-27 19:11:08.654321
-# 1989-05-13 01:02:03
-SET TIMESTAMP = 611017323.543212;
-UPDATE t1 SET d = NOW(6), h = NOW(6);
-SELECT * FROM t1;
-a b c d e f g h
-1989-05-13 04:02:03.543212 2011-09-27 19:11:08.654321 1989-05-13 04:02:03.543212 1989-05-13 04:02:03.543212 1989-05-13 04:02:03.543212 2011-09-27 19:11:08.654321 1989-05-13 04:02:03.543212 1989-05-13 04:02:03.543212
-SET TIME_ZONE = @old_time_zone;
-DROP TABLE t1;
-#
-# Test of several TIMESTAMP columns with different function defaults.
-#
-CREATE TABLE t1 (
-a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-c TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
-d TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6),
-e TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6),
-f INT
-);
-# 2011-04-19 07:22:02 UTC
-SET TIMESTAMP = 1303197722.534231;
-INSERT INTO t1 ( f ) VALUES (1);
-SELECT * FROM t1;
-a b c d e f
-2011-04-19 07:22:02.534231 2011-04-19 07:22:02.534231 2011-04-19 07:22:02.534231 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 1
-# 2011-04-19 07:23:18 UTC
-SET TIMESTAMP = 1303197798.132435;
-UPDATE t1 SET f = 2;
-SELECT * FROM t1;
-a b c d e f
-2011-04-19 07:23:18.132435 2011-04-19 07:23:18.132435 2011-04-19 07:22:02.534231 2011-04-19 07:23:18.132435 2011-04-19 07:23:18.132435 2
-DROP TABLE t1;
-#
-# Test of inserted values out of order.
-#
-CREATE TABLE t1 (
-a INT,
-b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-c TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
-d TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6),
-e TIMESTAMP(6) NULL,
-f DATETIME(6),
-g DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6),
-h DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6),
-i DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-j INT
-);
-# 2011-04-19 07:22:02 UTC
-SET TIMESTAMP = 1303197722.534231;
-INSERT INTO t1 ( j, a ) VALUES ( 1, 1 );
-SELECT * FROM t1;
-a b c d e f g h i j
-1 2011-04-19 07:22:02.534231 2011-04-19 07:22:02.534231 0000-00-00 00:00:00.000000 NULL NULL 2011-04-19 07:22:02.534231 NULL 2011-04-19 07:22:02.534231 1
-DROP TABLE t1;
-#
-# Test of ON DUPLICATE KEY UPDATE
-#
-CREATE TABLE t1 (
-a INT PRIMARY KEY,
-b INT,
-c TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-d TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
-e TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6),
-f TIMESTAMP(6) NOT NULL DEFAULT '1986-09-27 03:00:00.098765',
-g TIMESTAMP(6) NULL,
-h DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-i DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6),
-j DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6),
-k DATETIME(6) NULL,
-l DATETIME(6) DEFAULT '1986-09-27 03:00:00.098765'
-);
-# 1977-12-21 23:00:00 UTC
-SET TIMESTAMP = 251593200.192837;
-INSERT INTO t1(a) VALUES (1) ON DUPLICATE KEY UPDATE b = 2;
-SELECT * FROM t1;
-a b c d e f g h i j k l
-1 NULL 1977-12-21 23:00:00.192837 1977-12-21 23:00:00.192837 0000-00-00 00:00:00.000000 1986-09-27 03:00:00.098765 NULL 1977-12-21 23:00:00.192837 1977-12-21 23:00:00.192837 NULL NULL 1986-09-27 03:00:00.098765
-# 1975-05-21 23:00:00 UTC
-SET TIMESTAMP = 169945200.918273;
-INSERT INTO t1(a) VALUES (1) ON DUPLICATE KEY UPDATE b = 2;
-SELECT * FROM t1;
-a b c d e f g h i j k l
-1 2 1975-05-21 23:00:00.918273 1977-12-21 23:00:00.192837 1975-05-21 23:00:00.918273 1986-09-27 03:00:00.098765 NULL 1975-05-21 23:00:00.918273 1977-12-21 23:00:00.192837 1975-05-21 23:00:00.918273 NULL 1986-09-27 03:00:00.098765
-# 1973-08-14 09:11:22 UTC
-SET TIMESTAMP = 114167482.534231;
-INSERT INTO t1(a) VALUES (2) ON DUPLICATE KEY UPDATE b = 2;
-SELECT * FROM t1;
-a b c d e f g h i j k l
-1 2 1975-05-21 23:00:00.918273 1977-12-21 23:00:00.192837 1975-05-21 23:00:00.918273 1986-09-27 03:00:00.098765 NULL 1975-05-21 23:00:00.918273 1977-12-21 23:00:00.192837 1975-05-21 23:00:00.918273 NULL 1986-09-27 03:00:00.098765
-2 NULL 1973-08-14 09:11:22.534231 1973-08-14 09:11:22.534231 0000-00-00 00:00:00.000000 1986-09-27 03:00:00.098765 NULL 1973-08-14 09:11:22.534231 1973-08-14 09:11:22.534231 NULL NULL 1986-09-27 03:00:00.098765
-DROP TABLE t1;
-CREATE TABLE t1 ( a INT PRIMARY KEY, b INT, c TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) );
-# 2011-04-19 07:23:18 UTC
-SET TIMESTAMP = 1303197798.945156;
-INSERT INTO t1 VALUES
-(1, 0, '2001-01-01 01:01:01.111111'),
-(2, 0, '2002-02-02 02:02:02.222222'),
-(3, 0, '2003-03-03 03:03:03.333333');
-SELECT * FROM t1;
-a b c
-1 0 2001-01-01 01:01:01.111111
-2 0 2002-02-02 02:02:02.222222
-3 0 2003-03-03 03:03:03.333333
-UPDATE t1 SET b = 2, c = c WHERE a = 2;
-SELECT * FROM t1;
-a b c
-1 0 2001-01-01 01:01:01.111111
-2 2 2002-02-02 02:02:02.222222
-3 0 2003-03-03 03:03:03.333333
-INSERT INTO t1 (a) VALUES (4);
-SELECT * FROM t1;
-a b c
-1 0 2001-01-01 01:01:01.111111
-2 2 2002-02-02 02:02:02.222222
-3 0 2003-03-03 03:03:03.333333
-4 NULL 2011-04-19 07:23:18.945156
-UPDATE t1 SET c = '2004-04-04 04:04:04.444444' WHERE a = 4;
-SELECT * FROM t1;
-a b c
-1 0 2001-01-01 01:01:01.111111
-2 2 2002-02-02 02:02:02.222222
-3 0 2003-03-03 03:03:03.333333
-4 NULL 2004-04-04 04:04:04.444444
-INSERT INTO t1 ( a ) VALUES ( 3 ), ( 5 ) ON DUPLICATE KEY UPDATE b = 3, c = c;
-SELECT * FROM t1;
-a b c
-1 0 2001-01-01 01:01:01.111111
-2 2 2002-02-02 02:02:02.222222
-3 3 2003-03-03 03:03:03.333333
-4 NULL 2004-04-04 04:04:04.444444
-5 NULL 2011-04-19 07:23:18.945156
-INSERT INTO t1 (a, c) VALUES
-(4, '2004-04-04 00:00:00.444444'),
-(6, '2006-06-06 06:06:06.666666')
-ON DUPLICATE KEY UPDATE b = 4;
-SELECT * FROM t1;
-a b c
-1 0 2001-01-01 01:01:01.111111
-2 2 2002-02-02 02:02:02.222222
-3 3 2003-03-03 03:03:03.333333
-4 4 2011-04-19 07:23:18.945156
-5 NULL 2011-04-19 07:23:18.945156
-6 NULL 2006-06-06 06:06:06.666666
-DROP TABLE t1;
-#
-# Test of REPLACE INTO executed as UPDATE.
-#
-CREATE TABLE t1 (
-a INT PRIMARY KEY,
-b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-c DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-d TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
-e DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6),
-f TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6),
-g DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6),
-h TIMESTAMP(6) NULL,
-i DATETIME(6)
-);
-# 1970-09-21 09:11:12 UTC
-SET TIMESTAMP = 22756272.163584;
-REPLACE INTO t1 ( a ) VALUES ( 1 );
-SELECT * FROM t1;
-a b c d e f g h i
-1 1970-09-21 09:11:12.163584 1970-09-21 09:11:12.163584 1970-09-21 09:11:12.163584 1970-09-21 09:11:12.163584 0000-00-00 00:00:00.000000 NULL NULL NULL
-# 1970-11-10 14:16:17 UTC
-SET TIMESTAMP = 27094577.852954;
-REPLACE INTO t1 ( a ) VALUES ( 1 );
-SELECT * FROM t1;
-a b c d e f g h i
-1 1970-11-10 14:16:17.852954 1970-11-10 14:16:17.852954 1970-11-10 14:16:17.852954 1970-11-10 14:16:17.852954 0000-00-00 00:00:00.000000 NULL NULL NULL
-DROP TABLE t1;
-#
-# Test of insertion of NULL, DEFAULT and an empty row for DEFAULT
-# CURRENT_TIMESTAMP.
-#
-CREATE TABLE t1 (
-a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-b DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6),
-c INT
-);
-# 2011-04-20 09:53:41 UTC
-SET TIMESTAMP = 1303293221.163578;
-INSERT INTO t1 VALUES (NULL, NULL, 1), (DEFAULT, DEFAULT, 2);
-INSERT INTO t1 ( a, b, c ) VALUES (NULL, NULL, 3), (DEFAULT, DEFAULT, 4);
-SELECT * FROM t1;
-a b c
-2011-04-20 09:53:41.163578 NULL 1
-2011-04-20 09:53:41.163578 2011-04-20 09:53:41.163578 2
-2011-04-20 09:53:41.163578 NULL 3
-2011-04-20 09:53:41.163578 2011-04-20 09:53:41.163578 4
-SET TIME_ZONE = "+03:00";
-SELECT * FROM t1;
-a b c
-2011-04-20 12:53:41.163578 NULL 1
-2011-04-20 12:53:41.163578 2011-04-20 09:53:41.163578 2
-2011-04-20 12:53:41.163578 NULL 3
-2011-04-20 12:53:41.163578 2011-04-20 09:53:41.163578 4
-SET TIME_ZONE = "+00:00";
-DROP TABLE t1;
-# 2011-04-20 07:05:39 UTC
-SET TIMESTAMP = 1303283139.195624;
-CREATE TABLE t1 (
-a TIMESTAMP(6) NOT NULL DEFAULT '2010-10-11 12:34:56' ON UPDATE CURRENT_TIMESTAMP(6),
-b DATETIME(6) DEFAULT '2010-10-11 12:34:56'
-);
-INSERT INTO t1 VALUES (NULL, NULL), (DEFAULT, DEFAULT);
-INSERT INTO t1 ( a, b ) VALUES (NULL, NULL), (DEFAULT, DEFAULT);
-SELECT * FROM t1;
-a b
-2011-04-20 07:05:39.195624 NULL
-2010-10-11 12:34:56.000000 2010-10-11 12:34:56.000000
-2011-04-20 07:05:39.195624 NULL
-2010-10-11 12:34:56.000000 2010-10-11 12:34:56.000000
-DROP TABLE t1;
-# 2011-04-20 09:53:41 UTC
-SET TIMESTAMP = 1303293221.136952;
-CREATE TABLE t1 (
-a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
-c TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6),
-d TIMESTAMP(6) NOT NULL DEFAULT '1986-09-27 03:00:00.098765',
-e TIMESTAMP(6) NULL,
-f DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-g DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6),
-h DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6),
-i DATETIME(6) NULL,
-j DATETIME(6) DEFAULT '1986-09-27 03:00:00.098765'
-);
-INSERT INTO t1 VALUES ();
-INSERT INTO t1 SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL;
-SELECT * FROM t1;
-a b c d e f g h i j
-2011-04-20 09:53:41.136952 2011-04-20 09:53:41.136952 0000-00-00 00:00:00.000000 1986-09-27 03:00:00.098765 NULL 2011-04-20 09:53:41.136952 2011-04-20 09:53:41.136952 NULL NULL 1986-09-27 03:00:00.098765
-2011-04-20 09:53:41.136952 2011-04-20 09:53:41.136952 2011-04-20 09:53:41.136952 2011-04-20 09:53:41.136952 NULL NULL NULL NULL NULL NULL
-DROP TABLE t1;
-#
-# Test of multiple-table UPDATE for DEFAULT CURRENT_TIMESTAMP
-#
-CREATE TABLE t1 (
-a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-b DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6),
-c INT
-);
-INSERT INTO t1 ( c ) VALUES (1);
-SELECT * FROM t1;
-a b c
-2011-04-20 09:53:41.136952 2011-04-20 09:53:41.136952 1
-# 2011-04-20 17:06:13 UTC
-SET TIMESTAMP = 1303311973.163587;
-UPDATE t1 t11, t1 t12 SET t11.c = 1;
-SELECT * FROM t1;
-a b c
-2011-04-20 09:53:41.136952 2011-04-20 09:53:41.136952 1
-UPDATE t1 t11, t1 t12 SET t11.c = 2;
-SELECT * FROM t1;
-a b c
-2011-04-20 15:06:13.163587 2011-04-20 09:53:41.136952 2
-DROP TABLE t1;
-CREATE TABLE t1 (
-a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
-b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6),
-c DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6),
-d DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6),
-e INT
-);
-CREATE TABLE t2 (
-f INT,
-g DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6),
-h DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6),
-i TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6),
-j TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)
-);
-# 1995-03-11 00:02:03 UTC
-SET TIMESTAMP = 794880123.195676;
-INSERT INTO t1 ( e ) VALUES ( 1 ), ( 2 );
-INSERT INTO t2 ( f ) VALUES ( 1 ), ( 2 );
-SELECT * FROM t1;
-a b c d e
-1995-03-11 00:02:03.195676 0000-00-00 00:00:00.000000 1995-03-11 00:02:03.195676 NULL 1
-1995-03-11 00:02:03.195676 0000-00-00 00:00:00.000000 1995-03-11 00:02:03.195676 NULL 2
-SELECT * FROM t2;
-f g h i j
-1 NULL 1995-03-11 00:02:03.195676 0000-00-00 00:00:00.000000 1995-03-11 00:02:03.195676
-2 NULL 1995-03-11 00:02:03.195676 0000-00-00 00:00:00.000000 1995-03-11 00:02:03.195676
-# 1980-12-13 02:02:01 UTC
-SET TIMESTAMP = 345520921.196755;
-UPDATE t1, t2 SET t1.e = 3, t2.f = 4;
-SELECT * FROM t1;
-a b c d e
-1995-03-11 00:02:03.195676 1980-12-13 02:02:01.196755 1995-03-11 00:02:03.195676 1980-12-13 02:02:01.196755 3
-1995-03-11 00:02:03.195676 1980-12-13 02:02:01.196755 1995-03-11 00:02:03.195676 1980-12-13 02:02:01.196755 3
-SELECT * FROM t2;
-f g h i j
-4 1980-12-13 02:02:01.196755 1995-03-11 00:02:03.195676 1980-12-13 02:02:01.196755 1995-03-11 00:02:03.195676
-4 1980-12-13 02:02:01.196755 1995-03-11 00:02:03.195676 1980-12-13 02:02:01.196755 1995-03-11 00:02:03.195676
-DROP TABLE t1, t2;
-#
-# Test of multiple table update with temporary table and on the fly.
-#
-CREATE TABLE t1 (
-a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6),
-b DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6),
-c INT,
-d INT
-);
-CREATE TABLE t2 (
-a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6),
-b DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6),
-c INT KEY,
-d INT
-);
-INSERT INTO t1 ( c ) VALUES (1), (2);
-INSERT INTO t2 ( c ) VALUES (1), (2);
-# Test of multiple table update done on the fly
-# 2011-04-20 15:06:13 UTC
-SET TIMESTAMP = 1303311973.194685;
-UPDATE t1 JOIN t2 USING ( c ) SET t2.d = 1;
-SELECT * FROM t1;
-a b c d
-0000-00-00 00:00:00.000000 NULL 1 NULL
-0000-00-00 00:00:00.000000 NULL 2 NULL
-SELECT * FROM t2;
-a b c d
-2011-04-20 15:06:13.194685 2011-04-20 15:06:13.194685 1 1
-2011-04-20 15:06:13.194685 2011-04-20 15:06:13.194685 2 1
-# Test of multiple table update done with temporary table.
-# 1979-01-15 03:02:01
-SET TIMESTAMP = 285213721.134679;
-UPDATE t1 JOIN t2 USING ( c ) SET t1.d = 1;
-SELECT * FROM t1;
-a b c d
-1979-01-15 02:02:01.134679 1979-01-15 02:02:01.134679 1 1
-1979-01-15 02:02:01.134679 1979-01-15 02:02:01.134679 2 1
-SELECT * FROM t2;
-a b c d
-2011-04-20 15:06:13.194685 2011-04-20 15:06:13.194685 1 1
-2011-04-20 15:06:13.194685 2011-04-20 15:06:13.194685 2 1
-DROP TABLE t1, t2;
-#
-# Test of ON UPDATE CURRENT_TIMESTAMP.
-#
-CREATE TABLE t1 (
-a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6),
-b DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6),
-c INT
-);
-# 2011-04-20 09:53:41 UTC
-SET TIMESTAMP = 1303293221.794613;
-INSERT INTO t1 ( c ) VALUES ( 1 );
-SELECT * FROM t1;
-a b c
-0000-00-00 00:00:00.000000 NULL 1
-UPDATE t1 SET c = 1;
-SELECT * FROM t1;
-a b c
-0000-00-00 00:00:00.000000 NULL 1
-UPDATE t1 SET c = 2;
-SELECT * FROM t1;
-a b c
-2011-04-20 09:53:41.794613 2011-04-20 09:53:41.794613 2
-#
-# Test that ON UPDATE CURRENT_TIMESTAMP works after non-changing UPDATE.
-#
-# 2011-04-20 09:54:13 UTC
-SET TIMESTAMP = 1303293253.794613;
-UPDATE t1 SET c = 2, b = '2011-04-20 09:53:41.794613';
-SELECT * FROM t1;
-a b c
-2011-04-20 09:53:41.794613 2011-04-20 09:53:41.794613 2
-UPDATE t1 SET c = 3;
-SELECT * FROM t1;
-a b c
-2011-04-20 09:54:13.794613 2011-04-20 09:54:13.794613 3
-#
-# Test of multiple-table UPDATE for ON UPDATE CURRENT_TIMESTAMP
-#
-# 2011-04-20 15:06:13 UTC
-SET TIMESTAMP = 1303311973.534231;
-UPDATE t1 t11, t1 t12 SET t11.c = 3;
-SELECT * FROM t1;
-a b c
-2011-04-20 09:54:13.794613 2011-04-20 09:54:13.794613 3
-UPDATE t1 t11, t1 t12 SET t11.c = 2;
-SELECT * FROM t1;
-a b c
-2011-04-20 15:06:13.534231 2011-04-20 15:06:13.534231 2
-DROP TABLE t1;
-#
-# Test of a multiple-table update where only one table is updated and
-# the updated table has a primary key.
-#
-CREATE TABLE t1 ( a INT, b INT, PRIMARY KEY (a) );
-INSERT INTO t1 VALUES (1, 1),(2, 2),(3, 3),(4, 4);
-CREATE TABLE t2 ( a INT, b INT );
-INSERT INTO t2 VALUES (1, 1),(2, 2),(3, 3),(4, 4),(5, 5);
-UPDATE t1, t2 SET t1.b = 100 WHERE t1.a = t2.a;
-SELECT * FROM t1;
-a b
-1 100
-2 100
-3 100
-4 100
-SELECT * FROM t2;
-a b
-1 1
-2 2
-3 3
-4 4
-5 5
-DROP TABLE t1, t2;
-#
-# Test of ALTER TABLE, reordering columns.
-#
-CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b INT );
-ALTER TABLE t1 MODIFY a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) AFTER b;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `b` int(11) DEFAULT NULL,
- `a` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-CREATE TABLE t1 ( a INT, b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), c TIMESTAMP(6) NULL );
-ALTER TABLE t1 MODIFY b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) FIRST;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `b` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),
- `a` int(11) DEFAULT NULL,
- `c` timestamp(6) NULL DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-CREATE TABLE t1 ( a INT, b TIMESTAMP(6) NULL );
-ALTER TABLE t1 MODIFY b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) FIRST;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `b` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),
- `a` int(11) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NULL );
-ALTER TABLE t1 MODIFY a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER b;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `b` timestamp(6) NULL DEFAULT NULL,
- `a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000'
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NULL );
-ALTER TABLE t1 MODIFY a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER b;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `b` timestamp(6) NULL DEFAULT NULL,
- `a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000'
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE NOW(6), b INT, c TIMESTAMP(6) NULL );
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ON UPDATE current_timestamp(6),
- `b` int(11) DEFAULT NULL,
- `c` timestamp(6) NULL DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-ALTER TABLE t1 MODIFY a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) AFTER b;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `b` int(11) DEFAULT NULL,
- `a` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),
- `c` timestamp(6) NULL DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE NOW(6), b INT, c TIMESTAMP(6) NULL );
-ALTER TABLE t1 MODIFY c TIMESTAMP(6) NULL FIRST;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `c` timestamp(6) NULL DEFAULT NULL,
- `a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ON UPDATE current_timestamp(6),
- `b` int(11) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT NOW(6) ON UPDATE CURRENT_TIMESTAMP(6), b INT, c TIMESTAMP(6) NULL );
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `a` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),
- `b` int(11) DEFAULT NULL,
- `c` timestamp(6) NULL DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-ALTER TABLE t1 MODIFY a TIMESTAMP(6) NOT NULL DEFAULT NOW(6) ON UPDATE CURRENT_TIMESTAMP(6) AFTER b;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `b` int(11) DEFAULT NULL,
- `a` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),
- `c` timestamp(6) NULL DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT NOW(6) ON UPDATE CURRENT_TIMESTAMP(6), b INT, c TIMESTAMP(6) NULL );
-ALTER TABLE t1 MODIFY c TIMESTAMP(6) NULL FIRST;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `c` timestamp(6) NULL DEFAULT NULL,
- `a` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),
- `b` int(11) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-#
-# Test of ALTER TABLE, adding columns.
-#
-CREATE TABLE t1 ( a INT );
-ALTER TABLE t1 ADD COLUMN b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6);
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `a` int(11) DEFAULT NULL,
- `b` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
-#
-# Test of INSERT SELECT.
-#
-CREATE TABLE t1 (
-a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-c DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-d DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)
-);
-CREATE TABLE t2 (
-placeholder1 INT,
-placeholder2 INT,
-placeholder3 INT,
-placeholder4 INT,
-a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00',
-c DATETIME(6),
-d DATETIME(6)
-);
-# 1977-08-16 15:30:01 UTC
-SET TIMESTAMP = 240589801.654312;
-INSERT INTO t2 (a, b, c, d) VALUES (
-'1977-08-16 15:30:01.123456',
-'1977-08-16 15:30:01.234567',
-'1977-08-16 15:30:01.345678',
-'1977-08-16 15:30:01.456789'
-);
-# 1986-09-27 01:00:00 UTC
-SET TIMESTAMP = 528166800.132435;
-INSERT INTO t1 ( a, c ) SELECT a, c FROM t2;
-SELECT * FROM t1;
-a b c d
-1977-08-16 15:30:01.123456 1986-09-27 01:00:00.132435 1977-08-16 15:30:01.345678 1986-09-27 01:00:00.132435
-DROP TABLE t1, t2;
-#
-# Test of CREATE TABLE SELECT.
-#
-# We test that the columns of the source table are not used to determine
-# function defaults for the receiving table.
-#
-# 1970-04-11 20:13:57 UTC
-SET TIMESTAMP = 8712837.657898;
-CREATE TABLE t1 (
-a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
-c TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6),
-d TIMESTAMP(6) NOT NULL DEFAULT '1986-09-27 03:00:00.098765',
-e TIMESTAMP(6) NULL,
-f DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-g DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6),
-h DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6),
-i DATETIME(6) NULL,
-j DATETIME(6) DEFAULT '1986-09-27 03:00:00.098765'
-);
-INSERT INTO t1 VALUES ();
-# 1971-01-31 21:13:57 UTC
-SET TIMESTAMP = 34200837.164937;
-CREATE TABLE t2 SELECT a FROM t1;
-SHOW CREATE TABLE t2;
-Table Create Table
-t2 CREATE TABLE `t2` (
- `a` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t2;
-a
-1970-04-11 20:13:57.657897
-CREATE TABLE t3 SELECT b FROM t1;
-SHOW CREATE TABLE t3;
-Table Create Table
-t3 CREATE TABLE `t3` (
- `b` timestamp(6) NOT NULL DEFAULT current_timestamp(6)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t3;
-b
-1970-04-11 20:13:57.657897
-CREATE TABLE t4 SELECT c FROM t1;
-SHOW CREATE TABLE t4;
-Table Create Table
-t4 CREATE TABLE `t4` (
- `c` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ON UPDATE current_timestamp(6)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t4;
-c
-0000-00-00 00:00:00.000000
-CREATE TABLE t5 SELECT d FROM t1;
-SHOW CREATE TABLE t5;
-Table Create Table
-t5 CREATE TABLE `t5` (
- `d` timestamp(6) NOT NULL DEFAULT '1986-09-27 03:00:00.098765'
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t5;
-d
-1986-09-27 03:00:00.098765
-CREATE TABLE t6 SELECT e FROM t1;
-SHOW CREATE TABLE t6;
-Table Create Table
-t6 CREATE TABLE `t6` (
- `e` timestamp(6) NULL DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t6;
-e
-NULL
-CREATE TABLE t7 SELECT f FROM t1;
-SHOW CREATE TABLE t7;
-Table Create Table
-t7 CREATE TABLE `t7` (
- `f` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t7;
-f
-1970-04-11 20:13:57.657897
-CREATE TABLE t8 SELECT g FROM t1;
-SHOW CREATE TABLE t8;
-Table Create Table
-t8 CREATE TABLE `t8` (
- `g` datetime(6) DEFAULT current_timestamp(6)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t8;
-g
-1970-04-11 20:13:57.657897
-CREATE TABLE t9 SELECT h FROM t1;
-SHOW CREATE TABLE t9;
-Table Create Table
-t9 CREATE TABLE `t9` (
- `h` datetime(6) DEFAULT NULL ON UPDATE current_timestamp(6)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t9;
-h
-NULL
-CREATE TABLE t10 SELECT i FROM t1;
-SHOW CREATE TABLE t10;
-Table Create Table
-t10 CREATE TABLE `t10` (
- `i` datetime(6) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t10;
-i
-NULL
-CREATE TABLE t11 SELECT j FROM t1;
-SHOW CREATE TABLE t11;
-Table Create Table
-t11 CREATE TABLE `t11` (
- `j` datetime(6) DEFAULT '1986-09-27 03:00:00.098765'
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t11;
-j
-1986-09-27 03:00:00.098765
-CREATE TABLE t12 (
-k TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-l TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-m TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
-n TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6),
-o TIMESTAMP(6) NOT NULL DEFAULT '1986-09-27 03:00:00.098765',
-p TIMESTAMP(6) NULL,
-q DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-r DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6),
-s DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6),
-t DATETIME(6) NULL,
-u DATETIME(6) DEFAULT '1986-09-27 03:00:00.098765'
-)
-SELECT * FROM t1;
-SHOW CREATE TABLE t12;
-Table Create Table
-t12 CREATE TABLE `t12` (
- `k` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),
- `l` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),
- `m` timestamp(6) NOT NULL DEFAULT current_timestamp(6),
- `n` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ON UPDATE current_timestamp(6),
- `o` timestamp(6) NOT NULL DEFAULT '1986-09-27 03:00:00.098765',
- `p` timestamp(6) NULL DEFAULT NULL,
- `q` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),
- `r` datetime(6) DEFAULT current_timestamp(6),
- `s` datetime(6) DEFAULT NULL ON UPDATE current_timestamp(6),
- `t` datetime(6) DEFAULT NULL,
- `u` datetime(6) DEFAULT '1986-09-27 03:00:00.098765',
- `a` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),
- `b` timestamp(6) NOT NULL DEFAULT current_timestamp(6),
- `c` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ON UPDATE current_timestamp(6),
- `d` timestamp(6) NOT NULL DEFAULT '1986-09-27 03:00:00.098765',
- `e` timestamp(6) NULL DEFAULT NULL,
- `f` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),
- `g` datetime(6) DEFAULT current_timestamp(6),
- `h` datetime(6) DEFAULT NULL ON UPDATE current_timestamp(6),
- `i` datetime(6) DEFAULT NULL,
- `j` datetime(6) DEFAULT '1986-09-27 03:00:00.098765'
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12;
-# 1970-04-11 20:13:57 UTC
-SET TIMESTAMP = 8712837.164953;
-CREATE TABLE t1 (
-a DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-b DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6),
-c DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6),
-d DATETIME(6) NULL,
-e DATETIME(6) DEFAULT '1986-09-27 03:00:00.098765'
-);
-INSERT INTO t1 VALUES ();
-# 1971-01-31 20:13:57 UTC
-SET TIMESTAMP = 34200837.915736;
-CREATE TABLE t2 SELECT a FROM t1;
-SHOW CREATE TABLE t2;
-Table Create Table
-t2 CREATE TABLE `t2` (
- `a` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t2;
-a
-1970-04-11 20:13:57.164953
-CREATE TABLE t3 SELECT b FROM t1;
-SHOW CREATE TABLE t3;
-Table Create Table
-t3 CREATE TABLE `t3` (
- `b` datetime(6) DEFAULT current_timestamp(6)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t3;
-b
-1970-04-11 20:13:57.164953
-CREATE TABLE t4 SELECT c FROM t1;
-SHOW CREATE TABLE t4;
-Table Create Table
-t4 CREATE TABLE `t4` (
- `c` datetime(6) DEFAULT NULL ON UPDATE current_timestamp(6)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t4;
-c
-NULL
-CREATE TABLE t5 SELECT d FROM t1;
-SHOW CREATE TABLE t5;
-Table Create Table
-t5 CREATE TABLE `t5` (
- `d` datetime(6) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t5;
-d
-NULL
-CREATE TABLE t6 SELECT e FROM t1;
-SHOW CREATE TABLE t6;
-Table Create Table
-t6 CREATE TABLE `t6` (
- `e` datetime(6) DEFAULT '1986-09-27 03:00:00.098765'
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SELECT * FROM t6;
-e
-1986-09-27 03:00:00.098765
-DROP TABLE t1, t2, t3, t4, t5, t6;
-#
-# Test of a CREATE TABLE SELECT that also declared columns. In this case
-# the function default should be de-activated during the execution of the
-# CREATE TABLE statement.
-#
-# 1970-01-01 03:16:40
-SET TIMESTAMP = 1000.987654;
-CREATE TABLE t1 ( a INT );
-INSERT INTO t1 VALUES ( 1 ), ( 2 );
-CREATE TABLE t2 ( b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)) SELECT a FROM t1;
-SHOW CREATE TABLE t2;
-Table Create Table
-t2 CREATE TABLE `t2` (
- `b` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),
- `a` int(11) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SET TIMESTAMP = 2000.876543;
-INSERT INTO t2( a ) VALUES ( 3 );
-SELECT * FROM t2;
-b a
-1970-01-01 00:16:40.987654 1
-1970-01-01 00:16:40.987654 2
-1970-01-01 00:33:20.876543 3
-DROP TABLE t1, t2;
-#
-# Test of updating a view.
-#
-CREATE TABLE t1 ( a INT, b DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) );
-CREATE TABLE t2 ( a INT, b DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6) );
-CREATE VIEW v1 AS SELECT * FROM t1;
-SHOW CREATE VIEW v1;
-View Create View character_set_client collation_connection
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` latin1 latin1_swedish_ci
-CREATE VIEW v2 AS SELECT * FROM t2;
-SHOW CREATE VIEW v2;
-View Create View character_set_client collation_connection
-v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t2`.`a` AS `a`,`t2`.`b` AS `b` from `t2` latin1 latin1_swedish_ci
-# 1971-01-31 21:13:57 UTC
-SET TIMESTAMP = 34200837.348564;
-INSERT INTO v1 ( a ) VALUES ( 1 );
-INSERT INTO v2 ( a ) VALUES ( 1 );
-SELECT * FROM t1;
-a b
-1 1971-01-31 20:13:57.348564
-SELECT * FROM v1;
-a b
-1 1971-01-31 20:13:57.348564
-SELECT * FROM t2;
-a b
-1 NULL
-SELECT * FROM v2;
-a b
-1 NULL
-# 1970-04-11 20:13:57 UTC
-SET TIMESTAMP = 8712837.567332;
-UPDATE v1 SET a = 2;
-UPDATE v2 SET a = 2;
-SELECT * FROM t1;
-a b
-2 1971-01-31 20:13:57.348564
-SELECT * FROM v1;
-a b
-2 1971-01-31 20:13:57.348564
-SELECT * FROM t2;
-a b
-2 1970-04-11 20:13:57.567332
-SELECT * FROM v2;
-a b
-2 1970-04-11 20:13:57.567332
-DROP VIEW v1, v2;
-DROP TABLE t1, t2;
-#
-# Test with stored procedures.
-#
-CREATE TABLE t1 (
-a INT,
-b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-c TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
-d TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6),
-e TIMESTAMP(6) NULL,
-f DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6),
-g DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6)
-);
-CREATE PROCEDURE p1() INSERT INTO test.t1( a ) VALUES ( 1 );
-CREATE PROCEDURE p2() UPDATE t1 SET a = 2 WHERE a = 1;
-# 1971-01-31 20:13:57 UTC
-SET TIMESTAMP = 34200837.876544;
-CALL p1();
-SELECT * FROM t1;
-a b c d e f g
-1 1971-01-31 20:13:57.876544 1971-01-31 20:13:57.876544 0000-00-00 00:00:00.000000 NULL 1971-01-31 20:13:57.876544 NULL
-# 1970-04-11 21:13:57 UTC
-SET TIMESTAMP = 8712837.143546;
-CALL p2();
-SELECT * FROM t1;
-a b c d e f g
-2 1970-04-11 20:13:57.143546 1971-01-31 20:13:57.876544 1970-04-11 20:13:57.143546 NULL 1971-01-31 20:13:57.876544 1970-04-11 20:13:57.143546
-DROP PROCEDURE p1;
-DROP PROCEDURE p2;
-DROP TABLE t1;
-#
-# Test with triggers.
-#
-CREATE TABLE t1 (
-a INT,
-b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-c TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
-d TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6),
-e TIMESTAMP(6) NULL,
-f DATETIME(6),
-g DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6),
-h DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6),
-i DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)
-);
-CREATE TABLE t2 ( a INT );
-CREATE TRIGGER t2_trg BEFORE INSERT ON t2 FOR EACH ROW
-BEGIN
-INSERT INTO t1 ( a ) VALUES ( 1 );
-END|
-# 1971-01-31 21:13:57 UTC
-SET TIMESTAMP = 34200837.978675;
-INSERT INTO t2 ( a ) VALUES ( 1 );
-SELECT * FROM t1;
-a b c d e f g h i
-1 1971-01-31 20:13:57.978675 1971-01-31 20:13:57.978675 0000-00-00 00:00:00.000000 NULL NULL 1971-01-31 20:13:57.978675 NULL 1971-01-31 20:13:57.978675
-DROP TRIGGER t2_trg;
-CREATE TRIGGER t2_trg BEFORE INSERT ON t2 FOR EACH ROW
-BEGIN
-UPDATE t1 SET a = 2;
-END|
-# 1970-04-11 21:13:57 UTC
-SET TIMESTAMP = 8712837.456789;
-INSERT INTO t2 ( a ) VALUES ( 1 );
-SELECT * FROM t1;
-a b c d e f g h i
-2 1970-04-11 20:13:57.456789 1971-01-31 20:13:57.978675 1970-04-11 20:13:57.456789 NULL NULL 1971-01-31 20:13:57.978675 1970-04-11 20:13:57.456789 1970-04-11 20:13:57.456789
-DROP TABLE t1, t2;
-#
-# Test where the assignment target is not a column.
-#
-CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) );
-CREATE TABLE t2 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) );
-CREATE TABLE t3 ( a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6) );
-CREATE TABLE t4 ( a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6) );
-CREATE VIEW v1 AS SELECT a COLLATE latin1_german1_ci AS b FROM t1;
-CREATE VIEW v2 ( b ) AS SELECT a COLLATE latin1_german1_ci FROM t2;
-CREATE VIEW v3 AS SELECT a COLLATE latin1_german1_ci AS b FROM t3;
-CREATE VIEW v4 ( b ) AS SELECT a COLLATE latin1_german1_ci FROM t4;
-INSERT INTO v1 ( b ) VALUES ( '2007-10-24 00:03:34.010203' );
-SELECT a FROM t1;
-a
-2007-10-24 00:03:34.010203
-INSERT INTO v2 ( b ) VALUES ( '2007-10-24 00:03:34.010203' );
-SELECT a FROM t2;
-a
-2007-10-24 00:03:34.010203
-INSERT INTO t3 VALUES ();
-UPDATE v3 SET b = '2007-10-24 00:03:34.010203';
-SELECT a FROM t3;
-a
-2007-10-24 00:03:34.010203
-INSERT INTO t4 VALUES ();
-UPDATE v4 SET b = '2007-10-24 00:03:34.010203';
-SELECT a FROM t4;
-a
-2007-10-24 00:03:34.010203
-DROP VIEW v1, v2, v3, v4;
-DROP TABLE t1, t2, t3, t4;
-#
-# Test of LOAD DATA/XML INFILE
-# This tests behavior of function defaults for TIMESTAMP and DATETIME
-# columns. during LOAD ... INFILE.
-# As can be seen here, a TIMESTAMP column with only ON UPDATE
-# CURRENT_TIMESTAMP will still have CURRENT_TIMESTAMP inserted on LOAD
-# ... INFILE if the value is missing. For DATETIME columns a NULL value
-# is inserted instead.
-#
-CREATE TABLE t1 (
-a INT,
-b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-c TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
-d TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6),
-e TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-f DATETIME(6),
-g DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6),
-h DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6),
-i DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)
-);
-CREATE TABLE t2 (
-a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
-c TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6),
-d TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-e DATETIME(6) NOT NULL,
-f DATETIME(6) NOT NULL DEFAULT '1977-01-02 12:13:14',
-g DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) NOT NULL,
-h DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6) NOT NULL,
-i DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) NOT NULL
-);
-SELECT 1 INTO OUTFILE 't3.dat' FROM dual;
-SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
-INTO OUTFILE 't4.dat'
-FROM dual;
-SELECT 1, 2 INTO OUTFILE 't5.dat' FROM dual;
-# Mon Aug 1 15:11:19 2011 UTC
-SET TIMESTAMP = 1312211479.918273;
-LOAD DATA INFILE 't3.dat' IGNORE INTO TABLE t1;
-Warnings:
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-SELECT * FROM t1;
-a 1
-b 2011-08-01 15:11:19.918273
-c 2011-08-01 15:11:19.918273
-d 2011-08-01 15:11:19.918273
-e 2011-08-01 15:11:19.918273
-f NULL
-g NULL
-h NULL
-i NULL
-LOAD DATA INFILE 't4.dat' IGNORE INTO TABLE t2;
-Warnings:
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'e' at row 1
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'f' at row 1
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'g' at row 1
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'h' at row 1
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'i' at row 1
-SELECT a FROM t2;
-a
-2011-08-01 15:11:19.918273
-SELECT b FROM t2;
-b
-2011-08-01 15:11:19.918273
-SELECT c FROM t2;
-c
-2011-08-01 15:11:19.918273
-SELECT d FROM t2;
-d
-2011-08-01 15:11:19.918273
-# As shown here, supplying a NULL value to a non-nullable
-# column with no default value results in the zero date.
-SELECT e FROM t2;
-e
-0000-00-00 00:00:00.000000
-# As shown here, supplying a NULL value to a non-nullable column with a
-# default value results in the zero date.
-SELECT f FROM t2;
-f
-0000-00-00 00:00:00.000000
-# As shown here, supplying a NULL value to a non-nullable column with a
-# default function results in the zero date.
-SELECT g FROM t2;
-g
-0000-00-00 00:00:00.000000
-# As shown here, supplying a NULL value to a non-nullable DATETIME ON
-# UPDATE CURRENT_TIMESTAMP column with no default value results in the
-# zero date.
-SELECT h FROM t2;
-h
-0000-00-00 00:00:00.000000
-SELECT i FROM t2;
-i
-0000-00-00 00:00:00.000000
-DELETE FROM t1;
-DELETE FROM t2;
-# Read t3 file into t1
-# The syntax will cause a different code path to be taken
-# (read_fixed_length()) than under the LOAD ... INTO TABLE t1 command
-# above. The code in this path is copy-pasted code from the path taken
-# under the syntax used in the previous LOAD command.
-LOAD DATA INFILE 't3.dat' IGNORE INTO TABLE t1
-FIELDS TERMINATED BY '' ENCLOSED BY '';
-Warnings:
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-SELECT b FROM t1;
-b
-2011-08-01 15:11:19.918273
-SELECT c FROM t1;
-c
-2011-08-01 15:11:19.918273
-SELECT d FROM t1;
-d
-2011-08-01 15:11:19.918273
-SELECT e FROM t1;
-e
-2011-08-01 15:11:19.918273
-# Yes, a missing field cannot be NULL using this syntax, so it will
-# zero date instead. Says a comment in read_fixed_length() : "No fields
-# specified in fields_vars list can be NULL in this format."
-# It appears to be by design. This is inconsistent with LOAD DATA INFILE
-# syntax in previous test.
-SELECT f FROM t1;
-f
-0000-00-00 00:00:00.000000
-SELECT g FROM t1;
-g
-0000-00-00 00:00:00.000000
-# See comment above "SELECT f FROM f1".
-SELECT h FROM t1;
-h
-0000-00-00 00:00:00.000000
-SELECT i FROM t1;
-i
-0000-00-00 00:00:00.000000
-DELETE FROM t1;
-LOAD DATA INFILE 't5.dat' INTO TABLE t1 ( a, @dummy );
-SELECT * FROM t1;
-a b c d e f g h i
-1 2011-08-01 15:11:19.918273 2011-08-01 15:11:19.918273 0000-00-00 00:00:00.000000 2011-08-01 15:11:19.918273 NULL 2011-08-01 15:11:19.918273 NULL 2011-08-01 15:11:19.918273
-SELECT @dummy;
-@dummy
-2
-DELETE FROM t1;
-LOAD DATA INFILE 't3.dat' INTO TABLE t1 ( a ) SET c = '2005-06-06 08:09:10';
-SELECT * FROM t1;
-a b c d e f g h i
-1 2011-08-01 15:11:19.918273 2005-06-06 08:09:10.000000 0000-00-00 00:00:00.000000 2011-08-01 15:11:19.918273 NULL 2011-08-01 15:11:19.918273 NULL 2011-08-01 15:11:19.918273
-DELETE FROM t1;
-LOAD DATA INFILE 't3.dat' INTO TABLE t1 ( a ) SET g = '2005-06-06 08:09:10';
-SELECT * FROM t1;
-a b c d e f g h i
-1 2011-08-01 15:11:19.918273 2011-08-01 15:11:19.918273 0000-00-00 00:00:00.000000 2011-08-01 15:11:19.918273 NULL 2005-06-06 08:09:10.000000 NULL 2011-08-01 15:11:19.918273
-DELETE FROM t1;
-# Load a static XML file
-LOAD XML INFILE '../../std_data/onerow.xml' INTO TABLE t1
-ROWS IDENTIFIED BY '<row>';
-Missing tags are treated as NULL
-SELECT * FROM t1;
-a 1
-b 2011-08-01 15:11:19.918273
-c 2011-08-01 15:11:19.918273
-d 2011-08-01 15:11:19.918273
-e 2011-08-01 15:11:19.918273
-f NULL
-g NULL
-h NULL
-i NULL
-DROP TABLE t1, t2;
-#
-# Similar LOAD DATA tests in another form
-#
-# All of this test portion has been run on a pre-WL5874 trunk
-# (except that like_b and like_c didn't exist) and all result
-# differences are a bug.
-# Regarding like_b its definition is the same as b's except
-# that the constant default is replaced with a function
-# default. Our expectation is that like_b would behave
-# like b: if b is set to NULL, or set to 0000-00-00, or set to
-# its default, then the same should apply to like_b. Same for
-# like_c vs c.
-# Mon Aug 1 15:11:19 2011 UTC
-SET TIMESTAMP = 1312211479.089786;
-SELECT 1 INTO OUTFILE "file1.dat" FROM dual;
-SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
-INTO OUTFILE "file2.dat" FROM dual;
-# Too short row
-CREATE TABLE t1 (
-dummy INT,
-a DATETIME(6) NULL DEFAULT NULL,
-b DATETIME(6) NULL DEFAULT "2011-11-18",
-like_b DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6),
-c DATETIME(6) NOT NULL DEFAULT "2011-11-18",
-like_c DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
-d TIMESTAMP(6) NULL DEFAULT "2011-05-03" ON UPDATE CURRENT_TIMESTAMP(6),
-e TIMESTAMP(6) NOT NULL DEFAULT "2011-05-03",
-f TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
-g TIMESTAMP(6) NULL DEFAULT NULL,
-h INT NULL,
-i INT NOT NULL DEFAULT 42
-);
-# There is no promotion
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `dummy` int(11) DEFAULT NULL,
- `a` datetime(6) DEFAULT NULL,
- `b` datetime(6) DEFAULT '2011-11-18 00:00:00.000000',
- `like_b` datetime(6) DEFAULT current_timestamp(6),
- `c` datetime(6) NOT NULL DEFAULT '2011-11-18 00:00:00.000000',
- `like_c` datetime(6) NOT NULL DEFAULT current_timestamp(6),
- `d` timestamp(6) NULL DEFAULT '2011-05-03 00:00:00.000000' ON UPDATE current_timestamp(6),
- `e` timestamp(6) NOT NULL DEFAULT '2011-05-03 00:00:00.000000',
- `f` timestamp(6) NOT NULL DEFAULT current_timestamp(6),
- `g` timestamp(6) NULL DEFAULT NULL,
- `h` int(11) DEFAULT NULL,
- `i` int(11) NOT NULL DEFAULT 42
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-LOAD DATA INFILE "file1.dat" IGNORE INTO table t1;
-Warnings:
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-# It is strange that "like_b" gets NULL when "b" gets 0. But
-# this is consistent with how "a" gets NULL when "b" gets 0,
-# with how "g" gets NULL when "d" gets 0, and with how "h" gets
-# NULL when "i" gets 0. Looks like "DEFAULT
-# <non-NULL-constant>" is changed to 0, whereas DEFAULT NULL
-# and DEFAULT NOW are changed to NULL.
-SELECT * FROM t1;
-dummy 1
-a NULL
-b 0000-00-00 00:00:00.000000
-like_b NULL
-c 0000-00-00 00:00:00.000000
-like_c 0000-00-00 00:00:00.000000
-d 0000-00-00 00:00:00.000000
-e 2011-08-01 15:11:19.089786
-f 2011-08-01 15:11:19.089786
-g NULL
-h NULL
-i 0
-delete from t1;
-alter table t1
-modify f TIMESTAMP NULL default CURRENT_TIMESTAMP;
-# There is no promotion
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `dummy` int(11) DEFAULT NULL,
- `a` datetime(6) DEFAULT NULL,
- `b` datetime(6) DEFAULT '2011-11-18 00:00:00.000000',
- `like_b` datetime(6) DEFAULT current_timestamp(6),
- `c` datetime(6) NOT NULL DEFAULT '2011-11-18 00:00:00.000000',
- `like_c` datetime(6) NOT NULL DEFAULT current_timestamp(6),
- `d` timestamp(6) NULL DEFAULT '2011-05-03 00:00:00.000000' ON UPDATE current_timestamp(6),
- `e` timestamp(6) NOT NULL DEFAULT '2011-05-03 00:00:00.000000',
- `f` timestamp NULL DEFAULT current_timestamp(),
- `g` timestamp(6) NULL DEFAULT NULL,
- `h` int(11) DEFAULT NULL,
- `i` int(11) NOT NULL DEFAULT 42
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-LOAD DATA INFILE "file1.dat" IGNORE INTO table t1;
-Warnings:
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-Warning 1261 Row 1 doesn't contain data for all columns
-SELECT * FROM t1;
-dummy 1
-a NULL
-b 0000-00-00 00:00:00.000000
-like_b NULL
-c 0000-00-00 00:00:00.000000
-like_c 0000-00-00 00:00:00.000000
-d 0000-00-00 00:00:00.000000
-e 2011-08-01 15:11:19.089786
-f NULL
-g NULL
-h NULL
-i 0
-delete from t1;
-drop table t1;
-# Conclusion derived from trunk's results:
-# DATETIME DEFAULT <non-NULL-constant> (b,c) gets 0000-00-00,
-# DATETIME DEFAULT NULL (a) gets NULL,
-# TIMESTAMP NULL DEFAULT <non-NULL-constant> (d) gets 0000-00-00,
-# TIMESTAMP NULL DEFAULT NULL (g) gets NULL,
-# TIMESTAMP NULL DEFAULT NOW (f after ALTER) gets NULL,
-# TIMESTAMP NOT NULL (f before ALTER, e) gets NOW.
-### Loading NULL ###
-CREATE TABLE t1 (
-dummy INT,
-a DATETIME(6) NULL DEFAULT NULL,
-b DATETIME(6) NULL DEFAULT "2011-11-18",
-like_b DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6),
-c DATETIME(6) NOT NULL DEFAULT "2011-11-18",
-like_c DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
-d TIMESTAMP(6) NULL DEFAULT "2011-05-03" ON UPDATE CURRENT_TIMESTAMP(6),
-e TIMESTAMP(6) NOT NULL DEFAULT "2011-05-03",
-f TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
-g TIMESTAMP(6) NULL DEFAULT NULL,
-h INT NULL,
-i INT NOT NULL DEFAULT 42
-);
-# There is no promotion
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `dummy` int(11) DEFAULT NULL,
- `a` datetime(6) DEFAULT NULL,
- `b` datetime(6) DEFAULT '2011-11-18 00:00:00.000000',
- `like_b` datetime(6) DEFAULT current_timestamp(6),
- `c` datetime(6) NOT NULL DEFAULT '2011-11-18 00:00:00.000000',
- `like_c` datetime(6) NOT NULL DEFAULT current_timestamp(6),
- `d` timestamp(6) NULL DEFAULT '2011-05-03 00:00:00.000000' ON UPDATE current_timestamp(6),
- `e` timestamp(6) NOT NULL DEFAULT '2011-05-03 00:00:00.000000',
- `f` timestamp(6) NOT NULL DEFAULT current_timestamp(6),
- `g` timestamp(6) NULL DEFAULT NULL,
- `h` int(11) DEFAULT NULL,
- `i` int(11) NOT NULL DEFAULT 42
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-LOAD DATA INFILE "file2.dat" IGNORE INTO table t1;
-Warnings:
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 1
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'like_c' at row 1
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'i' at row 1
-SELECT * FROM t1;
-dummy NULL
-a NULL
-b NULL
-like_b NULL
-c 0000-00-00 00:00:00.000000
-like_c 0000-00-00 00:00:00.000000
-d NULL
-e 2011-08-01 15:11:19.089786
-f 2011-08-01 15:11:19.089786
-g NULL
-h NULL
-i 0
-delete from t1;
-alter table t1
-modify f TIMESTAMP NULL default CURRENT_TIMESTAMP;
-# There is no promotion
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `dummy` int(11) DEFAULT NULL,
- `a` datetime(6) DEFAULT NULL,
- `b` datetime(6) DEFAULT '2011-11-18 00:00:00.000000',
- `like_b` datetime(6) DEFAULT current_timestamp(6),
- `c` datetime(6) NOT NULL DEFAULT '2011-11-18 00:00:00.000000',
- `like_c` datetime(6) NOT NULL DEFAULT current_timestamp(6),
- `d` timestamp(6) NULL DEFAULT '2011-05-03 00:00:00.000000' ON UPDATE current_timestamp(6),
- `e` timestamp(6) NOT NULL DEFAULT '2011-05-03 00:00:00.000000',
- `f` timestamp NULL DEFAULT current_timestamp(),
- `g` timestamp(6) NULL DEFAULT NULL,
- `h` int(11) DEFAULT NULL,
- `i` int(11) NOT NULL DEFAULT 42
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-LOAD DATA INFILE "file2.dat" IGNORE INTO table t1;
-Warnings:
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 1
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'like_c' at row 1
-Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'i' at row 1
-SELECT * FROM t1;
-dummy NULL
-a NULL
-b NULL
-like_b NULL
-c 0000-00-00 00:00:00.000000
-like_c 0000-00-00 00:00:00.000000
-d NULL
-e 2011-08-01 15:11:19.089786
-f NULL
-g NULL
-h NULL
-i 0
-delete from t1;
-# Conclusion derived from trunk's results:
-# DATETIME NULL (a,b) gets NULL,
-# DATETIME NOT NULL (c) gets 0000-00-00,
-# TIMESTAMP NULL (d,f,g) gets NULL,
-# TIMESTAMP NOT NULL (e) gets NOW.
-drop table t1;
-#
-# Test of updatable views with check options. The option can be violated
-# using ON UPDATE updates which is very strange as this offers a loophole
-# in this integrity check.
-#
-SET TIME_ZONE = "+03:00";
-# 1970-01-01 03:16:40
-SET TIMESTAMP = 1000.123456;
-CREATE TABLE t1 ( a INT, b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6));
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `a` int(11) DEFAULT NULL,
- `b` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-INSERT INTO t1 ( a ) VALUES ( 1 );
-SELECT * FROM t1;
-a b
-1 1970-01-01 03:16:40.123456
-CREATE VIEW v1 AS SELECT * FROM t1 WHERE b <= '1970-01-01 03:16:40.123456'
-WITH CHECK OPTION;
-SELECT * FROM v1;
-a b
-1 1970-01-01 03:16:40.123456
-# 1970-01-01 03:33:20
-SET TIMESTAMP = 2000.000234;
-UPDATE v1 SET a = 2;
-ERROR 44000: CHECK OPTION failed `test`.`v1`
-SELECT * FROM t1;
-a b
-1 1970-01-01 03:16:40.123456
-DROP VIEW v1;
-DROP TABLE t1;
-CREATE TABLE t1 (
-a TIMESTAMP(6) NOT NULL DEFAULT '1973-08-14 09:11:22.089786' ON UPDATE CURRENT_TIMESTAMP(6),
-c INT KEY
-);
-# 1973-08-14 09:11:22 UTC
-SET TIMESTAMP = 114167482.534231;
-INSERT INTO t1 ( c ) VALUES ( 1 );
-CREATE VIEW v1 AS
-SELECT *
-FROM t1
-WHERE a >= '1973-08-14 09:11:22'
-WITH LOCAL CHECK OPTION;
-SELECT * FROM v1;
-a c
-1973-08-14 09:11:22.089786 1
-SET TIMESTAMP = 1.126789;
-INSERT INTO v1 ( c ) VALUES ( 1 ) ON DUPLICATE KEY UPDATE c = 2;
-ERROR 44000: CHECK OPTION failed `test`.`v1`
-SELECT * FROM v1;
-a c
-1973-08-14 09:11:22.089786 1
-DROP VIEW v1;
-DROP TABLE t1;
-#
-# Bug 13095459 - MULTI-TABLE UPDATE MODIFIES A ROW TWICE
-#
-CREATE TABLE t1 (
-a INT,
-b INT,
-ts TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-PRIMARY KEY ( a, ts )
-);
-INSERT INTO t1( a, b, ts ) VALUES ( 1, 0, '2000-09-28 17:44:34' );
-CREATE TABLE t2 ( a INT );
-INSERT INTO t2 VALUES ( 1 );
-UPDATE t1 STRAIGHT_JOIN t2
-SET t1.b = t1.b + 1
-WHERE t1.a = 1 AND t1.ts >= '2000-09-28 00:00:00';
-SELECT b FROM t1;
-b
-1
-DROP TABLE t1, t2;
-#
-# Bug#11745578: 17392: ALTER TABLE ADD COLUMN TIMESTAMP DEFAULT
-# CURRENT_TIMESTAMP INSERTS ZERO
-#
-SET timestamp = 1000;
-CREATE TABLE t1 ( b INT );
-INSERT INTO t1 VALUES (1);
-ALTER TABLE t1 ADD COLUMN a6 DATETIME(6) DEFAULT NOW(6) ON UPDATE NOW(6) FIRST;
-ALTER TABLE t1 ADD COLUMN a5 DATETIME(6) DEFAULT NOW(6) FIRST;
-ALTER TABLE t1 ADD COLUMN a4 DATETIME(6) ON UPDATE NOW(6) FIRST;
-ALTER TABLE t1 ADD COLUMN a3 TIMESTAMP(6) NOT NULL DEFAULT NOW(6) ON UPDATE NOW(6) FIRST;
-ALTER TABLE t1 ADD COLUMN a2 TIMESTAMP(6) NOT NULL DEFAULT NOW(6) FIRST;
-ALTER TABLE t1 ADD COLUMN a1 TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE NOW(6) FIRST;
-ALTER TABLE t1 ADD COLUMN c1 TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE NOW(6) AFTER b;
-ALTER TABLE t1 ADD COLUMN c2 TIMESTAMP(6) NOT NULL DEFAULT NOW(6) AFTER c1;
-ALTER TABLE t1 ADD COLUMN c3 TIMESTAMP(6) NOT NULL DEFAULT NOW(6) ON UPDATE NOW(6) AFTER c2;
-ALTER TABLE t1 ADD COLUMN c4 DATETIME(6) ON UPDATE NOW(6) AFTER c3;
-ALTER TABLE t1 ADD COLUMN c5 DATETIME(6) DEFAULT NOW(6) AFTER c4;
-ALTER TABLE t1 ADD COLUMN c6 DATETIME(6) DEFAULT NOW(6) ON UPDATE NOW(6) AFTER c5;
-SELECT * FROM t1;
-a1 0000-00-00 00:00:00.000000
-a2 1970-01-01 03:16:40.000000
-a3 1970-01-01 03:16:40.000000
-a4 NULL
-a5 1970-01-01 03:16:40.000000
-a6 1970-01-01 03:16:40.000000
-b 1
-c1 0000-00-00 00:00:00.000000
-c2 1970-01-01 03:16:40.000000
-c3 1970-01-01 03:16:40.000000
-c4 NULL
-c5 1970-01-01 03:16:40.000000
-c6 1970-01-01 03:16:40.000000
-DROP TABLE t1;
-CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT NOW(6) ON UPDATE CURRENT_TIMESTAMP(6), b DATETIME(6) DEFAULT NOW(6) );
-INSERT INTO t1 VALUES ();
-SET timestamp = 1000000000;
-ALTER TABLE t1 MODIFY COLUMN a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP(3);
-ALTER TABLE t1 MODIFY COLUMN b DATETIME(3) DEFAULT CURRENT_TIMESTAMP(3);
-SELECT * FROM t1;
-a b
-1970-01-01 03:16:40.000 1970-01-01 03:16:40.000
-DROP TABLE t1;
-CREATE TABLE t1 (
-a TIMESTAMP(6) NOT NULL DEFAULT '1999-12-01 11:22:33' ON UPDATE CURRENT_TIMESTAMP(6),
-b DATETIME(6) DEFAULT '1999-12-01 11:22:33'
-);
-INSERT INTO t1 VALUES ();
-ALTER TABLE t1 MODIFY COLUMN a TIMESTAMP(6) DEFAULT NOW(6);
-ALTER TABLE t1 MODIFY COLUMN b DATETIME(6) DEFAULT NOW(6);
-INSERT INTO t1 VALUES ();
-SELECT * FROM t1;
-a b
-1999-12-01 11:22:33.000000 1999-12-01 11:22:33.000000
-2001-09-09 04:46:40.000000 2001-09-09 04:46:40.000000
-DROP TABLE t1;