[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.135.205.24: ~ $
SET TIME_ZONE = "+00:00";

--echo #
--echo # Test of errors for column data types that dont support function
--echo # defaults.
--echo #
--error ER_INVALID_DEFAULT
eval CREATE TABLE t1( a BIT DEFAULT $current_timestamp );
--error ER_INVALID_DEFAULT
eval CREATE TABLE t1( a TINYINT DEFAULT $current_timestamp );
--error ER_INVALID_DEFAULT
eval CREATE TABLE t1( a SMALLINT DEFAULT $current_timestamp );
--error ER_INVALID_DEFAULT
eval CREATE TABLE t1( a MEDIUMINT DEFAULT $current_timestamp );
--error ER_INVALID_DEFAULT
eval CREATE TABLE t1( a INT DEFAULT $current_timestamp );
--error ER_INVALID_DEFAULT
eval CREATE TABLE t1( a BIGINT DEFAULT $current_timestamp );
--error ER_INVALID_DEFAULT
eval CREATE TABLE t1( a FLOAT DEFAULT $current_timestamp );
--error ER_INVALID_DEFAULT
eval CREATE TABLE t1( a DECIMAL DEFAULT $current_timestamp );
--error ER_INVALID_DEFAULT
eval CREATE TABLE t1( a DATE DEFAULT $current_timestamp );
--error ER_INVALID_DEFAULT
eval CREATE TABLE t1( a TIME DEFAULT $current_timestamp );
--error ER_INVALID_DEFAULT
eval CREATE TABLE t1( a YEAR DEFAULT $current_timestamp );

--error ER_INVALID_ON_UPDATE
eval CREATE TABLE t1( a BIT ON UPDATE $current_timestamp );
--error ER_INVALID_ON_UPDATE
eval CREATE TABLE t1( a TINYINT ON UPDATE $current_timestamp );
--error ER_INVALID_ON_UPDATE
eval CREATE TABLE t1( a SMALLINT ON UPDATE $current_timestamp );
--error ER_INVALID_ON_UPDATE
eval CREATE TABLE t1( a MEDIUMINT ON UPDATE $current_timestamp );
--error ER_INVALID_ON_UPDATE
eval CREATE TABLE t1( a INT ON UPDATE $current_timestamp );
--error ER_INVALID_ON_UPDATE
eval CREATE TABLE t1( a BIGINT ON UPDATE $current_timestamp );
--error ER_INVALID_ON_UPDATE
eval CREATE TABLE t1( a FLOAT ON UPDATE $current_timestamp );
--error ER_INVALID_ON_UPDATE
eval CREATE TABLE t1( a DECIMAL ON UPDATE $current_timestamp );
--error ER_INVALID_ON_UPDATE
eval CREATE TABLE t1( a DATE ON UPDATE $current_timestamp );
--error ER_INVALID_ON_UPDATE
eval CREATE TABLE t1( a TIME ON UPDATE $current_timestamp );
--error ER_INVALID_ON_UPDATE
eval CREATE TABLE t1( a YEAR ON UPDATE $current_timestamp );

--echo #
--echo # Test that the default clause behaves like NOW() regarding time zones.
--echo #
eval 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
);

--echo # 2011-09-27 14:11:08 UTC
SET TIMESTAMP = 1317132668.654321;
SET @old_time_zone = @@TIME_ZONE;
SET TIME_ZONE = "+05:00";

eval INSERT INTO t1( d, h ) VALUES ( $now, $now );
SELECT * FROM t1;

--echo # 1989-05-13 01:02:03
SET TIMESTAMP = 611017323.543212;
eval UPDATE t1 SET d = $now, h = $now;
SELECT * FROM t1;

SET TIME_ZONE = @old_time_zone;
DROP TABLE t1;

--echo #
--echo # Test of several TIMESTAMP columns with different function defaults.
--echo #
eval 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
);

--echo # 2011-04-19 07:22:02 UTC
SET TIMESTAMP = 1303197722.534231;

INSERT INTO t1 ( f ) VALUES (1);
SELECT * FROM t1;

--echo # 2011-04-19 07:23:18 UTC
SET TIMESTAMP = 1303197798.132435;

UPDATE t1 SET f = 2;
SELECT * FROM t1;

DROP TABLE t1;

--echo #
--echo # Test of inserted values out of order.
--echo #
eval 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
);

--echo # 2011-04-19 07:22:02 UTC
SET TIMESTAMP = 1303197722.534231;

INSERT INTO t1 ( j, a ) VALUES ( 1, 1 );
SELECT * FROM t1;

DROP TABLE t1;

--echo #
--echo # Test of ON DUPLICATE KEY UPDATE
--echo #
eval 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'
);

--echo # 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;

--echo # 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;

--echo # 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;

DROP TABLE t1;

eval CREATE TABLE t1 ( a INT PRIMARY KEY, b INT, c $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp );

--echo # 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;

UPDATE t1 SET b = 2, c = c WHERE a = 2;
SELECT * FROM t1;

INSERT INTO t1 (a) VALUES (4);
SELECT * FROM t1;

UPDATE t1 SET c = '2004-04-04 04:04:04.444444' WHERE a = 4;
SELECT * FROM t1;

INSERT INTO t1 ( a ) VALUES ( 3 ), ( 5 ) ON DUPLICATE KEY UPDATE b = 3, c = c;
SELECT * FROM t1;

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;

DROP TABLE t1;


--echo #
--echo # Test of REPLACE INTO executed as UPDATE.
--echo #
eval 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
);

--echo # 1970-09-21 09:11:12 UTC
SET TIMESTAMP = 22756272.163584;

REPLACE INTO t1 ( a ) VALUES ( 1 );
SELECT * FROM t1;

--echo # 1970-11-10 14:16:17 UTC
SET TIMESTAMP = 27094577.852954;


REPLACE INTO t1 ( a ) VALUES ( 1 );
SELECT * FROM t1;

DROP TABLE t1;


--echo #
--echo # Test of insertion of NULL, DEFAULT and an empty row for DEFAULT
--echo # CURRENT_TIMESTAMP.
--echo #
eval CREATE TABLE t1 (
  a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp,
  b $datetime DEFAULT $current_timestamp,
  c INT
);

--echo # 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;

SET TIME_ZONE = "+03:00";
SELECT * FROM t1;
SET TIME_ZONE = "+00:00";

DROP TABLE t1;

--echo # 2011-04-20 07:05:39 UTC
SET TIMESTAMP = 1303283139.195624;
eval 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;

DROP TABLE t1;

--echo # 2011-04-20 09:53:41 UTC
SET TIMESTAMP = 1303293221.136952;

eval 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;

DROP TABLE t1;

--echo #
--echo # Test of multiple-table UPDATE for DEFAULT CURRENT_TIMESTAMP
--echo #
eval 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;

--echo # 2011-04-20 17:06:13 UTC
SET TIMESTAMP = 1303311973.163587;

UPDATE t1 t11, t1 t12 SET t11.c = 1;
SELECT * FROM t1;

UPDATE t1 t11, t1 t12 SET t11.c = 2;

SELECT * FROM t1;

DROP TABLE t1;

eval 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
);

eval 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
);

--echo # 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;
SELECT * FROM t2;

--echo # 1980-12-13 02:02:01 UTC
SET TIMESTAMP = 345520921.196755;

UPDATE t1, t2 SET t1.e = 3, t2.f = 4;

SELECT * FROM t1;
SELECT * FROM t2;

DROP TABLE t1, t2;

--echo #
--echo # Test of multiple table update with temporary table and on the fly.
--echo #
eval 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
);

eval 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);

--echo # Test of multiple table update done on the fly
--echo # 2011-04-20 15:06:13 UTC
SET TIMESTAMP = 1303311973.194685;
UPDATE t1 JOIN t2 USING ( c ) SET t2.d = 1;
SELECT * FROM t1;
SELECT * FROM t2;

--echo # Test of multiple table update done with temporary table.
--echo # 1979-01-15 03:02:01
SET TIMESTAMP = 285213721.134679;
UPDATE t1 JOIN t2 USING ( c ) SET t1.d = 1;
SELECT * FROM t1;
SELECT * FROM t2;

DROP TABLE t1, t2;


--echo #
--echo # Test of ON UPDATE CURRENT_TIMESTAMP.
--echo #
eval 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
);

--echo # 2011-04-20 09:53:41 UTC
SET TIMESTAMP = 1303293221.794613;

INSERT INTO t1 ( c ) VALUES ( 1 );
SELECT * FROM t1;

UPDATE t1 SET c = 1;
SELECT * FROM t1;

UPDATE t1 SET c = 2;
SELECT * FROM t1;

--echo #
--echo # Test of multiple-table UPDATE for ON UPDATE CURRENT_TIMESTAMP
--echo #
--echo # 2011-04-20 15:06:13 UTC
SET TIMESTAMP = 1303311973.534231;

UPDATE t1 t11, t1 t12 SET t11.c = 2;
SELECT * FROM t1;

UPDATE t1 t11, t1 t12 SET t11.c = 3;
SELECT * FROM t1;

DROP TABLE t1;

--echo #
--echo # Test of a multiple-table update where only one table is updated and
--echo # the updated table has a primary key.
--echo #
eval CREATE TABLE t1 ( a INT, b INT, PRIMARY KEY (a) );
INSERT INTO t1 VALUES (1, 1),(2, 2),(3, 3),(4, 4);

eval 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;
SELECT * FROM t2;

DROP TABLE t1, t2;

--echo #
--echo # Test of ALTER TABLE, reordering columns.
--echo #
eval CREATE TABLE t1 ( a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, b INT );eval ALTER TABLE t1 MODIFY a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp AFTER b;
SHOW CREATE TABLE t1;
DROP TABLE t1;

eval CREATE TABLE t1 ( a INT, b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, c $timestamp NULL );eval ALTER TABLE t1 MODIFY b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp FIRST;
SHOW CREATE TABLE t1;
DROP TABLE t1;

eval CREATE TABLE t1 ( a INT, b $timestamp NULL );eval ALTER TABLE t1 MODIFY b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp FIRST;
SHOW CREATE TABLE t1;
DROP TABLE t1;

eval CREATE TABLE t1 ( a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, b $timestamp NULL );eval ALTER TABLE t1 MODIFY a $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER b;
SHOW CREATE TABLE t1;
DROP TABLE t1;

eval CREATE TABLE t1 ( a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, b $timestamp NULL );eval ALTER TABLE t1 MODIFY a $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER b;
SHOW CREATE TABLE t1;
DROP TABLE t1;

eval 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;eval ALTER TABLE t1 MODIFY a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp AFTER b;
SHOW CREATE TABLE t1;
DROP TABLE t1;

eval CREATE TABLE t1 ( a $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $now, b INT, c $timestamp NULL );eval ALTER TABLE t1 MODIFY c $timestamp NULL FIRST;
SHOW CREATE TABLE t1;
DROP TABLE t1;

eval CREATE TABLE t1 ( a $timestamp NOT NULL DEFAULT $now ON UPDATE $current_timestamp, b INT, c $timestamp NULL );
SHOW CREATE TABLE t1;eval ALTER TABLE t1 MODIFY a $timestamp NOT NULL DEFAULT $now ON UPDATE $current_timestamp AFTER b;
SHOW CREATE TABLE t1;
DROP TABLE t1;

eval CREATE TABLE t1 ( a $timestamp NOT NULL DEFAULT $now ON UPDATE $current_timestamp, b INT, c $timestamp NULL );eval ALTER TABLE t1 MODIFY c $timestamp NULL FIRST;
SHOW CREATE TABLE t1;
DROP TABLE t1;


--echo #
--echo # Test of ALTER TABLE, adding columns.
--echo #
eval CREATE TABLE t1 ( a INT );
eval ALTER TABLE t1 ADD COLUMN b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp;
SHOW CREATE TABLE t1;
DROP TABLE t1;

--echo #
--echo # Test of INSERT SELECT.
--echo #
eval 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
);

eval 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
);

--echo # 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'
);

--echo # 1986-09-27 01:00:00 UTC
SET TIMESTAMP = 528166800.132435;

INSERT INTO t1 ( a, c ) SELECT a, c FROM t2;

SELECT * FROM t1;

DROP TABLE t1, t2;

--echo #
--echo # Test of CREATE TABLE SELECT.
--echo #
--echo # We test that the columns of the source table are used to determine
--echo # function defaults for the receiving table.
--echo #

--echo # 1970-04-11 20:13:57 UTC
SET TIMESTAMP = 8712837.657898;
eval 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 ();

--echo # 1971-01-31 21:13:57 UTC
SET TIMESTAMP = 34200837.164937;

eval CREATE TABLE t2  SELECT a FROM t1; SHOW CREATE TABLE t2;  SELECT * FROM t2;
eval CREATE TABLE t3  SELECT b FROM t1; SHOW CREATE TABLE t3;  SELECT * FROM t3;
eval CREATE TABLE t4  SELECT c FROM t1; SHOW CREATE TABLE t4;  SELECT * FROM t4;
eval CREATE TABLE t5  SELECT d FROM t1; SHOW CREATE TABLE t5;  SELECT * FROM t5;
eval CREATE TABLE t6  SELECT e FROM t1; SHOW CREATE TABLE t6;  SELECT * FROM t6;
eval CREATE TABLE t7  SELECT f FROM t1; SHOW CREATE TABLE t7;  SELECT * FROM t7;
eval CREATE TABLE t8  SELECT g FROM t1; SHOW CREATE TABLE t8;  SELECT * FROM t8;
eval CREATE TABLE t9  SELECT h FROM t1; SHOW CREATE TABLE t9;  SELECT * FROM t9;
eval CREATE TABLE t10 SELECT i FROM t1; SHOW CREATE TABLE t10; SELECT * FROM t10;
eval CREATE TABLE t11 SELECT j FROM t1; SHOW CREATE TABLE t11; SELECT * FROM t11;

eval 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;

--echo # No function default for non-column expressions:
eval CREATE TABLE t13  SELECT COALESCE(a,a) FROM t1; SHOW CREATE TABLE t13;  SELECT * FROM t13;

DROP TABLE t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13;

--echo # 1970-04-11 20:13:57 UTC
SET TIMESTAMP = 8712837.164953;
eval 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 ();

--echo # 1971-01-31 20:13:57 UTC
SET TIMESTAMP = 34200837.915736;

eval CREATE TABLE t2 SELECT a FROM t1;
SHOW CREATE TABLE t2;
SELECT * FROM t2;

eval CREATE TABLE t3 SELECT b FROM t1;
SHOW CREATE TABLE t3;
SELECT * FROM t3;

eval CREATE TABLE t4 SELECT c FROM t1;
SHOW CREATE TABLE t4;
SELECT * FROM t4;

eval CREATE TABLE t5 SELECT d FROM t1;
SHOW CREATE TABLE t5;
SELECT * FROM t5;

eval CREATE TABLE t6 SELECT e FROM t1;
SHOW CREATE TABLE t6;
SELECT * FROM t6;

--echo # Test CREATE TABLE LIKE
CREATE TABLE t7 LIKE t1;
SHOW CREATE TABLE t7;

DROP TABLE t1, t2, t3, t4, t5, t6, t7;

--echo #
--echo # Test of a CREATE TABLE SELECT that also declared columns. In this case
--echo # the function default for them should be activated during the execution of the
--echo # CREATE TABLE statement.
--echo #
--echo # 1970-01-01 03:16:40
SET TIMESTAMP = 1000.987654;
eval CREATE TABLE t1 ( a INT );
INSERT INTO t1 VALUES ( 1 ), ( 2 );

eval CREATE TABLE t2 ( b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp) SELECT a FROM t1;

SHOW CREATE TABLE t2;
SET TIMESTAMP = 2000.876543;
INSERT INTO t2( a ) VALUES ( 3 );
SELECT * FROM t2;

DROP TABLE t1, t2;

--echo #
--echo # Test of updating a view.
--echo #
eval CREATE TABLE t1 ( a INT, b $datetime DEFAULT $current_timestamp );
eval CREATE TABLE t2 ( a INT, b $datetime ON UPDATE $current_timestamp );

eval CREATE VIEW v1 AS SELECT * FROM t1;
SHOW CREATE VIEW v1;

eval CREATE VIEW v2 AS SELECT * FROM t2;
SHOW CREATE VIEW v2;

--echo # 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;
SELECT * FROM v1;

SELECT * FROM t2;
SELECT * FROM v2;

--echo # 1970-04-11 20:13:57 UTC
SET TIMESTAMP = 8712837.567332;
UPDATE v1 SET a = 2;
UPDATE v2 SET a = 2;

SELECT * FROM t1;
SELECT * FROM v1;

SELECT * FROM t2;
SELECT * FROM v2;

DROP VIEW v1, v2;
DROP TABLE t1, t2;

--echo #
--echo # Test with stored procedures.
--echo #
eval 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;

--echo # 1971-01-31 20:13:57 UTC
SET TIMESTAMP = 34200837.876544;
CALL p1();
SELECT * FROM t1;

--echo # 1970-04-11 21:13:57 UTC
SET TIMESTAMP = 8712837.143546;
CALL p2();
SELECT * FROM t1;

DROP PROCEDURE p1;
DROP PROCEDURE p2;
DROP TABLE t1;

--echo #
--echo # Test with triggers.
--echo #
eval 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
);

eval CREATE TABLE t2 ( a INT );

DELIMITER |;
eval CREATE TRIGGER t2_trg BEFORE INSERT ON t2 FOR EACH ROW
BEGIN
  INSERT INTO t1 ( a ) VALUES ( 1 );
END|
DELIMITER ;|

--echo # 1971-01-31 21:13:57 UTC
SET TIMESTAMP = 34200837.978675;

INSERT INTO t2 ( a ) VALUES ( 1 );
SELECT * FROM t1;

DROP TRIGGER t2_trg;

DELIMITER |;
eval CREATE TRIGGER t2_trg BEFORE INSERT ON t2 FOR EACH ROW
BEGIN
  UPDATE t1 SET a = 2;
END|
DELIMITER ;|

--echo # 1970-04-11 21:13:57 UTC
SET TIMESTAMP = 8712837.456789;

INSERT INTO t2 ( a ) VALUES ( 1 );
SELECT * FROM t1;

DROP TABLE t1, t2;

--echo #
--echo # Test where the assignment target is not a column.
--echo #
eval CREATE TABLE t1 ( a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp );
eval CREATE TABLE t2 ( a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp );
eval CREATE TABLE t3 ( a $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp );
eval CREATE TABLE t4 ( a $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp );

eval CREATE VIEW v1       AS SELECT a COLLATE latin1_german1_ci AS b FROM t1;
eval CREATE VIEW v2 ( b ) AS SELECT a COLLATE latin1_german1_ci      FROM t2;
eval CREATE VIEW v3       AS SELECT a COLLATE latin1_german1_ci AS b FROM t3;
eval 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;

INSERT INTO v2 ( b ) VALUES ( '2007-10-24 00:03:34.010203' );
SELECT a FROM t2;

INSERT INTO t3 VALUES ();
UPDATE v3 SET b = '2007-10-24 00:03:34.010203';
SELECT a FROM t3;

INSERT INTO t4 VALUES ();
UPDATE v4 SET b = '2007-10-24 00:03:34.010203';
SELECT a FROM t4;

DROP VIEW  v1, v2, v3, v4;
DROP TABLE t1, t2, t3, t4;

--echo #
--echo # Test of LOAD DATA/XML INFILE
--echo # This tests behavior of function defaults for TIMESTAMP and DATETIME
--echo # columns. during LOAD ... INFILE.
--echo # As can be seen here, a TIMESTAMP column with only ON UPDATE
--echo # CURRENT_TIMESTAMP will still have CURRENT_TIMESTAMP inserted on LOAD
--echo # ... INFILE if the value is missing. For DATETIME columns a NULL value
--echo # is inserted instead.
--echo #

eval 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
);

eval 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;

--echo # Mon Aug 1 15:11:19 2011 UTC
SET TIMESTAMP = 1312211479.918273;

LOAD DATA INFILE 't3.dat' INTO TABLE t1;
--query_vertical SELECT * FROM t1

LOAD DATA INFILE 't4.dat' INTO TABLE t2;
SELECT a FROM t2;
SELECT b FROM t2;
SELECT c FROM t2;
SELECT d FROM t2;
--echo # As shown here, supplying a NULL value to a non-nullable
--echo # column with no default value results in the zero date.
SELECT e FROM t2;
--echo # As shown here, supplying a NULL value to a non-nullable column with a
--echo # default value results in the zero date.
SELECT f FROM t2;
--echo # As shown here, supplying a NULL value to a non-nullable column with a
--echo # default function results in the zero date.
SELECT g FROM t2;
--echo # As shown here, supplying a NULL value to a non-nullable DATETIME ON
--echo # UPDATE CURRENT_TIMESTAMP column with no default value results in the
--echo # zero date.
SELECT h FROM t2;
SELECT i FROM t2;

DELETE FROM t1;
DELETE FROM t2;

--echo # Read t3 file into t1
--echo # The syntax will cause a different code path to be taken
--echo # (read_fixed_length()) than under the LOAD ... INTO TABLE t1 command
--echo # above. The code in this path is copy-pasted code from the path taken
--echo # under the syntax used in the previous LOAD command.
LOAD DATA INFILE 't3.dat' INTO TABLE t1
FIELDS TERMINATED BY '' ENCLOSED BY '';

SELECT b FROM t1;
SELECT c FROM t1;
SELECT d FROM t1;
SELECT e FROM t1;
--echo # Yes, a missing field cannot be NULL using this syntax, so it will
--echo # zero date instead. Says a comment in read_fixed_length() : "No fields
--echo # specified in fields_vars list can be NULL in this format."
--echo # It appears to be by design. This is inconsistent with LOAD DATA INFILE
--echo # syntax in previous test.
SELECT f FROM t1;
SELECT g FROM t1;
--echo # See comment above "SELECT f FROM f1".
SELECT h FROM t1;
SELECT i FROM t1;
DELETE FROM t1;

LOAD DATA INFILE 't5.dat' INTO TABLE t1 ( a, @dummy );
SELECT * FROM t1;
SELECT @dummy;
DELETE FROM t1;

LOAD DATA INFILE 't3.dat' INTO TABLE t1 ( a ) SET c = '2005-06-06 08:09:10';
SELECT * FROM t1;
DELETE FROM t1;

LOAD DATA INFILE 't3.dat' INTO TABLE t1 ( a ) SET g = '2005-06-06 08:09:10';
SELECT * FROM t1;
DELETE FROM t1;

--echo # Load a static XML file
LOAD XML INFILE '../../std_data/onerow.xml' INTO TABLE t1
ROWS IDENTIFIED BY '<row>';

--echo Missing tags are treated as NULL
--query_vertical SELECT * FROM t1

DROP TABLE t1, t2;

let $MYSQLD_DATADIR= `select @@datadir`;
remove_file $MYSQLD_DATADIR/test/t3.dat;
remove_file $MYSQLD_DATADIR/test/t4.dat;
remove_file $MYSQLD_DATADIR/test/t5.dat;


--echo #
--echo # Similar LOAD DATA tests in another form
--echo #
--echo # All of this test portion has been run on a pre-WL5874 trunk
--echo # (except that like_b and like_c didn't exist) and all result
--echo # differences are a bug.
--echo # Regarding like_b its definition is the same as b's except
--echo # that the constant default is replaced with a function
--echo # default. Our expectation is that like_b would behave
--echo # like b: if b is set to NULL, or set to 0000-00-00, or set to
--echo # its default, then the same should apply to like_b. Same for
--echo # like_c vs c.

--echo # 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;

--echo # Too short row

eval
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
);

--echo # There is no promotion
SHOW CREATE TABLE t1;

LOAD DATA INFILE "file1.dat" INTO table t1;

--echo # It is strange that "like_b" gets NULL when "b" gets 0. But
--echo # this is consistent with how "a" gets NULL when "b" gets 0,
--echo # with how "g" gets NULL when "d" gets 0, and with how "h" gets
--echo # NULL when "i" gets 0. Looks like "DEFAULT
--echo # <non-NULL-constant>" is changed to 0, whereas DEFAULT NULL
--echo # and DEFAULT NOW are changed to NULL.
--query_vertical SELECT * FROM t1
delete from t1;

alter table t1
modify f TIMESTAMP NULL default CURRENT_TIMESTAMP;

--echo # There is no promotion
SHOW CREATE TABLE t1;

LOAD DATA INFILE "file1.dat" INTO table t1;

--query_vertical SELECT * FROM t1
delete from t1;

drop table t1;

--echo # Conclusion derived from trunk's results:
--echo # DATETIME DEFAULT <non-NULL-constant> (b,c) gets 0000-00-00,
--echo # DATETIME DEFAULT NULL (a) gets NULL,
--echo # TIMESTAMP NULL DEFAULT <non-NULL-constant> (d) gets 0000-00-00,
--echo # TIMESTAMP NULL DEFAULT NULL (g) gets NULL,
--echo # TIMESTAMP NULL DEFAULT NOW (f after ALTER) gets NULL,
--echo # TIMESTAMP NOT NULL (f before ALTER, e) gets NOW.

--echo ### Loading NULL ###

eval
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
);

--echo # There is no promotion
SHOW CREATE TABLE t1;

LOAD DATA INFILE "file2.dat" INTO table t1;

--query_vertical SELECT * FROM t1
delete from t1;

alter table t1
modify f TIMESTAMP NULL default CURRENT_TIMESTAMP;

--echo # There is no promotion
SHOW CREATE TABLE t1;

LOAD DATA INFILE "file2.dat" INTO table t1;

--query_vertical SELECT * FROM t1
delete from t1;

--echo # Conclusion derived from trunk's results:
--echo # DATETIME NULL (a,b) gets NULL,
--echo # DATETIME NOT NULL (c) gets 0000-00-00,
--echo # TIMESTAMP NULL (d,f,g) gets NULL,
--echo # TIMESTAMP NOT NULL (e) gets NOW.

drop table t1;
remove_file $MYSQLD_DATADIR/test/file1.dat;
remove_file $MYSQLD_DATADIR/test/file2.dat;

--echo #
--echo # Test of updatable views with check options. The option can be violated
--echo # using ON UPDATE updates which is very strange as this offers a loophole
--echo # in this integrity check.
--echo #
SET TIME_ZONE = "+03:00";
--echo # 1970-01-01 03:16:40
SET TIMESTAMP = 1000.123456;

eval CREATE TABLE t1 ( a INT, b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp);

SHOW CREATE TABLE t1;

INSERT INTO t1 ( a ) VALUES ( 1 );

SELECT * FROM t1;

eval CREATE VIEW v1 AS SELECT * FROM t1 WHERE b <= '1970-01-01 03:16:40.123456'
WITH CHECK OPTION;

SELECT * FROM v1;

--echo # 1970-01-01 03:33:20
SET TIMESTAMP = 2000.000234;

--echo Logically, there should be an ER_VIEW_CHECK_FAILED here.
UPDATE v1 SET a = 2;
SELECT * FROM t1;

DROP VIEW v1;
DROP TABLE t1;

eval CREATE TABLE t1 (
  a $timestamp NOT NULL DEFAULT '1973-08-14 09:11:22.089786' ON UPDATE $current_timestamp,
  c INT KEY
);
--echo # 1973-08-14 09:11:22 UTC
SET TIMESTAMP = 114167482.534231;
INSERT INTO t1 ( c ) VALUES ( 1 );

eval CREATE VIEW v1 AS
SELECT *
FROM t1
WHERE a >= '1973-08-14 09:11:22'
WITH LOCAL CHECK OPTION;

SELECT * FROM v1;

SET TIMESTAMP = 1.126789;

--echo Logically, there should be an ER_VIEW_CHECK_FAILED here.
INSERT INTO v1 ( c ) VALUES ( 1 ) ON DUPLICATE KEY UPDATE c = 2;

SELECT * FROM v1;

DROP VIEW v1;
DROP TABLE t1;

--echo #
--echo # Bug 13095459 - MULTI-TABLE UPDATE MODIFIES A ROW TWICE
--echo #
eval 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;

DROP TABLE t1, t2;

--echo #
--echo # Bug#11745578: 17392: ALTER TABLE ADD COLUMN TIMESTAMP DEFAULT
--echo # CURRENT_TIMESTAMP INSERTS ZERO
--echo #
SET timestamp = 1000;

CREATE TABLE t1 ( b INT );
INSERT INTO t1 VALUES (1),(2);

eval ALTER TABLE t1 ADD COLUMN a6 $datetime DEFAULT $now ON UPDATE $now FIRST;
eval ALTER TABLE t1 ADD COLUMN a5 $datetime DEFAULT $now FIRST;
eval ALTER TABLE t1 ADD COLUMN a4 $datetime ON UPDATE $now FIRST;

eval ALTER TABLE t1 ADD COLUMN a3 $timestamp NOT NULL DEFAULT $now ON UPDATE $now FIRST;
eval ALTER TABLE t1 ADD COLUMN a2 $timestamp NOT NULL DEFAULT $now FIRST;
eval ALTER TABLE t1 ADD COLUMN a1 $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $now FIRST;

eval ALTER TABLE t1 ADD COLUMN c1 $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $now AFTER b;
eval ALTER TABLE t1 ADD COLUMN c2 $timestamp NOT NULL DEFAULT $now AFTER c1;
eval ALTER TABLE t1 ADD COLUMN c3 $timestamp NOT NULL DEFAULT $now ON UPDATE $now AFTER c2;

eval ALTER TABLE t1 ADD COLUMN c4 $datetime ON UPDATE $now AFTER c3;
eval ALTER TABLE t1 ADD COLUMN c5 $datetime DEFAULT $now AFTER c4;
eval ALTER TABLE t1 ADD COLUMN c6 $datetime DEFAULT $now ON UPDATE $now AFTER c5;

SELECT * FROM t1;

DROP TABLE t1;


eval 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;

DROP TABLE t1;


eval 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 ();

eval ALTER TABLE t1 MODIFY COLUMN a $timestamp DEFAULT $now;
eval ALTER TABLE t1 MODIFY COLUMN b $datetime DEFAULT $now;
INSERT INTO t1 VALUES ();

SELECT * FROM t1;

DROP TABLE t1;

Filemanager

Name Type Size Permission Actions
Load_data.inc File 173 B 0644
add_anonymous_users.inc File 187 B 0644
allowed_ciphers.inc File 409 B 0644
analyze-sync_with_master.test File 283 B 0644
analyze-timeout.test File 25 B 0644
assert.inc File 2.19 KB 0644
assert_binlog_events.inc File 10.21 KB 0644
assert_command_output.inc File 2 KB 0644
assert_grep.inc File 4.1 KB 0644
begin_include_file.inc File 3.21 KB 0644
big_test.inc File 107 B 0644
binlog_inject_error.inc File 641 B 0644
bug38347.inc File 404 B 0644
change_file_perms.inc File 521 B 0644
check-testcase.test File 2.83 KB 0644
check-warnings.test File 1.68 KB 0644
check_concurrent_insert.inc File 2.66 KB 0644
check_events_off.inc File 1.82 KB 0644
check_ftwrl_compatible.inc File 3.64 KB 0644
check_ftwrl_incompatible.inc File 3.8 KB 0644
check_ipv4_mapped.inc File 683 B 0644
check_ipv6.inc File 597 B 0644
check_key_reads.inc File 250 B 0644
check_key_req.inc File 628 B 0644
check_no_concurrent_insert.inc File 2.07 KB 0644
check_no_row_lock.inc File 1.76 KB 0644
check_openssl_version.inc File 1.32 KB 0644
check_qep.inc File 1.31 KB 0644
check_shared_row_lock.inc File 1.39 KB 0644
check_slave_is_running.inc File 651 B 0644
check_slave_no_error.inc File 655 B 0644
check_slave_param.inc File 1.01 KB 0644
check_var_limit.inc File 394 B 0644
cleanup_fake_relay_log.inc File 669 B 0644
commit.inc File 21.19 KB 0644
common-tests.inc File 115.9 KB 0644
concurrent.inc File 25.08 KB 0644
connect2.inc File 977 B 0644
count_sessions.inc File 382 B 0644
create_table.inc File 135 B 0644
ctype_8bit.inc File 2.85 KB 0644
ctype_ascii_order.inc File 1.04 KB 0644
ctype_common.inc File 2.82 KB 0644
ctype_czech.inc File 437 B 0644
ctype_datetime.inc File 333 B 0644
ctype_filesort.inc File 377 B 0644
ctype_filesort2.inc File 1006 B 0644
ctype_german.inc File 1.42 KB 0644
ctype_heap.inc File 479 B 0644
ctype_inet.inc File 254 B 0644
ctype_innodb_like.inc File 665 B 0644
ctype_like.inc File 1.36 KB 0644
ctype_like_escape.inc File 592 B 0644
ctype_like_ignorable.inc File 427 B 0644
ctype_like_range_f1f2.inc File 835 B 0644
ctype_numconv.inc File 44.65 KB 0644
ctype_pad_space.inc File 133 B 0644
ctype_regex.inc File 1.03 KB 0644
ctype_unicode520.inc File 7.13 KB 0644
ctype_unicode_latin.inc File 10.23 KB 0644
ctype_utf8_table.inc File 1.35 KB 0644
ctype_utf8mb4.inc File 59.49 KB 0644
daemon_example_bad_format.ini File 215 B 0644
daemon_example_bad_soname.ini File 227 B 0644
ddl_i18n.check_events.inc File 864 B 0644
ddl_i18n.check_sp.inc File 1.48 KB 0644
ddl_i18n.check_triggers.inc File 1.55 KB 0644
ddl_i18n.check_views.inc File 544 B 0644
deadlock.inc File 3.59 KB 0644
default_client.cnf File 367 B 0644
default_my.cnf File 1.57 KB 0644
default_mysqld.cnf File 3.99 KB 0644
default_mysqld_autosize.cnf File 2.81 KB 0644
default_ndbd.cnf File 997 B 0644
delete_anonymous_users.inc File 207 B 0644
diff_servers.inc File 2.2 KB 0644
diff_tables.inc File 6.65 KB 0644
end_include_file.inc File 2.42 KB 0644
endspace.inc File 338 B 0644
escape_sql.inc File 1.52 KB 0644
eval.inc File 5.73 KB 0644
execute_with_statistics.inc File 735 B 0644
expect_qep.inc File 1.16 KB 0644
explain.inc File 11.17 KB 0644
explain_json.inc File 10.15 KB 0644
explain_non_select.inc File 29.64 KB 0644
explain_utils.inc File 4.6 KB 0644
file_does_not_exist.inc File 340 B 0644
filter_file.inc File 4.38 KB 0644
force_restart.inc File 335 B 0644
force_restart_if_skipped.inc File 346 B 0644
func_aes_block.inc File 3.95 KB 0644
func_in.inc File 17.89 KB 0644
function_defaults.inc File 34.9 KB 0644
function_defaults_notembedded.inc File 2.38 KB 0644
get_file_permissions.inc File 274 B 0644
get_ndb_epochs.inc File 2.12 KB 0644
get_relay_log_pos.inc File 2.77 KB 0644
gis_debug.inc File 6.76 KB 0644
gis_generic.inc File 12.98 KB 0644
gis_keys.inc File 1.93 KB 0644
grant_cache.inc File 7.47 KB 0644
greedy_search_drop_tables.inc File 167 B 0644
greedy_search_load_tables.inc File 995 B 0644
gtid_step_assert.inc File 3.24 KB 0644
gtid_step_reset.inc File 476 B 0644
gtid_utils.inc File 12.94 KB 0644
gtid_utils_end.inc File 846 B 0644
handler.inc File 48.02 KB 0644
have_32bit.inc File 428 B 0644
have_64bit.inc File 357 B 0644
have_QC_Disabled.inc File 137 B 0644
have_archive.inc File 180 B 0644
have_archive_plugin.inc File 413 B 0644
have_big5.inc File 107 B 0644
have_binlog_checksum_off.inc File 199 B 0644
have_binlog_format_mixed.inc File 155 B 0644
have_binlog_format_mixed_or_row.inc File 181 B 0644
have_binlog_format_mixed_or_statement.inc File 193 B 0644
have_binlog_format_row.inc File 153 B 0644
have_binlog_format_row_or_statement.inc File 192 B 0644
have_binlog_format_statement.inc File 159 B 0644
have_binlog_rows_query.inc File 321 B 0644
have_blackhole.inc File 173 B 0644
have_blackhole_plugin.inc File 427 B 0644
have_case_insensitive_file_system.inc File 134 B 0644
have_case_sensitive_file_system.inc File 132 B 0644
have_compress.inc File 109 B 0644
have_cp1250_ch.inc File 112 B 0644
have_cp1251.inc File 115 B 0644
have_cp866.inc File 113 B 0644
have_cp932.inc File 110 B 0644
have_crypt.inc File 103 B 0644
have_csv.inc File 174 B 0644
have_daemon_example_plugin.inc File 387 B 0644
have_dbi_dbd-mysql.inc File 3.1 KB 0644
have_debug.inc File 113 B 0644
have_debug_sync.inc File 196 B 0644
have_dynamic_loading.inc File 221 B 0644
have_engine_condition_pushdown.inc File 170 B 0644
have_eucjpms.inc File 114 B 0644
have_euckr.inc File 108 B 0644
have_example_plugin.inc File 566 B 0644
have_exampledb.inc File 178 B 0644
have_federated_plugin.inc File 151 B 0644
have_firstmatch.inc File 155 B 0644
have_gb2312.inc File 111 B 0644
have_gbk.inc File 105 B 0644
have_geometry.inc File 110 B 0644
have_gtid.inc File 341 B 0644
have_index_condition_pushdown.inc File 169 B 0644
have_innodb.inc File 163 B 0644
have_innodb_16k.inc File 194 B 0644
have_innodb_4k.inc File 192 B 0644
have_innodb_8k.inc File 192 B 0644
have_ipv4_mapped.inc File 289 B 0644
have_ipv6.inc File 339 B 0644
have_koi8r.inc File 113 B 0644
have_latin2_ch.inc File 112 B 0644
have_local_infile.inc File 111 B 0644
have_log_bin.inc File 308 B 0644
have_loosescan.inc File 154 B 0644
have_lowercase0.inc File 116 B 0644
have_lowercase1.inc File 116 B 0644
have_lowercase2.inc File 116 B 0644
have_materialization.inc File 160 B 0644
have_memcached_plugin.inc File 69 B 0644
have_mrr.inc File 148 B 0644
have_multi_ndb.inc File 2.02 KB 0644
have_mysql_no_login_plugin.inc File 674 B 0644
have_mysql_upgrade.inc File 134 B 0644
have_ndb.inc File 659 B 0644
have_ndb_extra.inc File 65 B 0644
have_ndbapi_examples.inc File 148 B 0644
have_nodebug.inc File 115 B 0644
have_not_innodb_plugin.inc File 185 B 0644
have_null_audit_plugin.inc File 701 B 0644
have_numa.inc File 395 B 0644
have_openssl.inc File 139 B 0644
have_openssl_support.inc File 197 B 0644
have_optimizer_trace.inc File 255 B 0644
have_outfile.inc File 171 B 0644
have_partition.inc File 175 B 0644
have_partition_open_file_limit.inc File 150 B 0644
have_perfschema.inc File 1.32 KB 0644
have_plugin_auth.inc File 188 B 0644
have_plugin_interface.inc File 187 B 0644
have_plugin_server.inc File 178 B 0644
have_profiling.inc File 112 B 0644
have_query_cache.inc File 115 B 0644
have_semijoin.inc File 153 B 0644
have_semisync_plugin.inc File 594 B 0644
have_sha256_rsa_auth.inc File 305 B 0644
have_simple_parser.inc File 662 B 0644
have_sjis.inc File 108 B 0644
have_ssl.inc File 136 B 0644
have_ssl_communication.inc File 136 B 0644
have_ssl_crypto_functs.inc File 408 B 0644
have_symlink.inc File 391 B 0644
have_tis620.inc File 108 B 0644
have_ucs2.inc File 107 B 0644
have_udf.inc File 630 B 0644
have_ujis.inc File 108 B 0644
have_utf16.inc File 109 B 0644
have_utf32.inc File 109 B 0644
have_utf8.inc File 111 B 0644
have_utf8mb4.inc File 117 B 0644
have_util_nc.inc File 930 B 0644
have_valgrind.inc File 182 B 0644
have_validate_password_plugin.inc File 703 B 0644
ib_logfile_size_check.inc File 278 B 0644
icp_tests.inc File 25.44 KB 0644
implicit_commit_helper.inc File 123 B 0644
index_merge1.inc File 22.55 KB 0644
index_merge2.inc File 13.48 KB 0644
index_merge_2sweeps.inc File 1.53 KB 0644
index_merge_delete.inc File 6.42 KB 0644
index_merge_insert-and-replace.inc File 3.58 KB 0644
index_merge_intersect_dml.inc File 4.84 KB 0644
index_merge_multi_col_setup.inc File 1.25 KB 0644
index_merge_ror.inc File 11.34 KB 0644
index_merge_ror_cpk.inc File 5.12 KB 0644
index_merge_single_col_setup.inc File 1.2 KB 0644
index_merge_update.inc File 4.54 KB 0644
innodb-index.inc File 1.2 KB 0644
innodb-util.inc File 3.15 KB 0644
innodb_pk_extension.inc File 9.32 KB 0644
innodb_rollback_on_timeout.inc File 931 B 0644
innodb_trx_weight.inc File 861 B 0644
install_semisync.inc File 1.02 KB 0644
io_thd_fault_injection.inc File 598 B 0644
ipv6.inc File 637 B 0644
ipv6_clients.inc File 435 B 0644
ipv6_func.inc File 1.38 KB 0644
is_embedded.inc File 126 B 0644
join_cache.inc File 69.2 KB 0644
kill_query.inc File 1.73 KB 0644
kill_query_and_diff_master_slave.inc File 1.05 KB 0644
libdaemon_example.ini File 230 B 0644
linux.inc File 99 B 0644
linux_sys_vars.inc File 604 B 0644
load_sysvars.inc File 442 B 0644
loaddata_autocom.inc File 897 B 0644
master-slave.inc File 1.43 KB 0644
memcache_config.inc File 2.17 KB 0644
min_null_cond.inc File 1.55 KB 0644
mix1.inc File 48.49 KB 0644
mix2.inc File 76.81 KB 0644
mix2_ucs2.inc File 11.52 KB 0644
mrr_innodb_tests.inc File 1.55 KB 0644
mrr_tests.inc File 16.04 KB 0644
mtr_check.sql File 4.8 KB 0644
mtr_warnings.sql File 12.01 KB 0644
mysql_have_debug.inc File 979 B 0644
mysql_upgrade_preparation.inc File 777 B 0644
mysqlbinlog_have_debug.inc File 989 B 0644
mysqlbinlog_raw_mode.inc File 9.74 KB 0644
mysqld--help.inc File 2.17 KB 0644
mysqldump.inc File 2.02 KB 0644
mysqlhotcopy.inc File 4.76 KB 0644
mysqltest-x.inc File 41 B 0644
ndb_backup.inc File 405 B 0644
ndb_backup_id.inc File 930 B 0644
ndb_backup_print.inc File 459 B 0644
ndb_default_cluster.inc File 119 B 0644
ndb_have_online_alter.inc File 528 B 0644
ndb_not_readonly.inc File 925 B 0644
ndb_restore_master.inc File 612 B 0644
ndb_restore_slave_eoption.inc File 626 B 0644
ndb_setup_slave.inc File 869 B 0644
ndb_wait_connected.inc File 470 B 0644
no_protocol.inc File 304 B 0644
no_running_event_scheduler.inc File 1.51 KB 0644
no_running_events.inc File 1.72 KB 0644
no_valgrind_without_big.inc File 355 B 0644
not_as_root.inc File 45 B 0644
not_binlog_format_row.inc File 92 B 0644
not_blackhole.inc File 173 B 0644
not_crashrep.inc File 594 B 0644
not_embedded.inc File 127 B 0644
not_gtid_enabled.inc File 312 B 0644
not_master_info_table.inc File 121 B 0644
not_mts_slave_parallel_workers.inc File 91 B 0644
not_ndb.inc File 183 B 0644
not_ndb_default.inc File 236 B 0644
not_openssl.inc File 106 B 0644
not_parallel.inc File 63 B 0644
not_relay_log_info_table.inc File 127 B 0644
not_ssl.inc File 98 B 0644
not_threadpool.inc File 201 B 0644
not_valgrind.inc File 118 B 0644
not_var_link.inc File 498 B 0644
not_windows.inc File 165 B 0644
not_windows_embedded.inc File 305 B 0644
null_key.inc File 9.64 KB 0644
one_thread_per_connection.inc File 111 B 0644
only_mts_slave_parallel_workers.inc File 100 B 0644
order_by.inc File 76.02 KB 0644
parser_bug21114.inc File 1.32 KB 0644
partition_date_range.inc File 2.63 KB 0644
partition_default_functions.inc File 3.66 KB 0644
plugin.defs File 2.45 KB 0644
print_greedy_search_count.inc File 571 B 0644
ps_conv.inc File 47.8 KB 0644
ps_create.inc File 1.48 KB 0644
ps_ddl_1.inc File 468 B 0644
ps_modify.inc File 10.24 KB 0644
ps_modify1.inc File 3.16 KB 0644
ps_query.inc File 24.49 KB 0644
ps_renew.inc File 1.48 KB 0644
purge_first_log.inc File 432 B 0644
query_cache.inc File 5.74 KB 0644
query_cache_sql_prepare.inc File 14.11 KB 0644
rand.inc File 3.23 KB 0644
range.inc File 64.18 KB 0644
read_file_to_var.inc File 936 B 0644
read_many_rows.inc File 4.29 KB 0644
relocate_binlogs.inc File 3.36 KB 0644
report-features.test File 186 B 0644
restart_mysqld.inc File 1.02 KB 0644
restart_readonly_mysqld.inc File 958 B 0644
restart_slave_sql.inc File 1002 B 0644
rowid_order.inc File 3.08 KB 0644
rpl_change_topology.inc File 11.81 KB 0644
rpl_connect.inc File 1.53 KB 0644
rpl_connection.inc File 1.43 KB 0644
rpl_connection_master.inc File 69 B 0644
rpl_connection_master1.inc File 70 B 0644
rpl_connection_slave.inc File 68 B 0644
rpl_connection_slave1.inc File 69 B 0644
rpl_default_connections.inc File 873 B 0644
rpl_diff.inc File 3.18 KB 0644
rpl_end.inc File 3.1 KB 0644
rpl_events.inc File 5.83 KB 0644
rpl_for_each_slave.inc File 957 B 0644
rpl_generate_sync_chain.inc File 5.51 KB 0644
rpl_hash_scan_assertion.inc File 347 B 0644
rpl_init.inc File 8.22 KB 0644
rpl_ip_mix.inc File 772 B 0644
rpl_ip_mix2.inc File 772 B 0644
rpl_ipv6.inc File 661 B 0644
rpl_loaddata_charset.inc File 781 B 0644
rpl_multi_engine.inc File 729 B 0644
rpl_multi_engine2.inc File 2.56 KB 0644
rpl_multi_engine3.inc File 2.21 KB 0644
rpl_reconnect.inc File 3.65 KB 0644
rpl_reset.inc File 2.05 KB 0644
rpl_restart_server.inc File 1.33 KB 0644
rpl_row_img_general_loop.inc File 1.18 KB 0644
rpl_row_img_parts_assertion.inc File 3.01 KB 0644
rpl_row_img_parts_master_slave.inc File 3.02 KB 0644
rpl_row_img_set.inc File 1.51 KB 0644
rpl_set_gtid_mode.inc File 2.22 KB 0644
rpl_start_server.inc File 4.29 KB 0644
rpl_start_slaves.inc File 843 B 0644
rpl_stmt_seq.inc File 7.63 KB 0644
rpl_stop_server.inc File 2.22 KB 0644
rpl_stop_slaves.inc File 780 B 0644
rpl_sync.inc File 4.16 KB 0644
rpl_udf.inc File 5.66 KB 0644
running_event_scheduler.inc File 1.76 KB 0644
safe_set_to_maybe_ro_var.inc File 707 B 0644
save_binlog_position.inc File 731 B 0644
save_io_thread_pos.inc File 1.16 KB 0644
save_master_pos.inc File 1.29 KB 0644
search_pattern.inc File 1.75 KB 0644
search_pattern_in_file.inc File 2.57 KB 0644
select.inc File 189.26 KB 0644
set_binlog_format_mixed.sql File 1.17 KB 0644
set_binlog_format_row.sql File 1.17 KB 0644
set_binlog_format_statement.sql File 1.18 KB 0644
setup_fake_relay_log.inc File 3.88 KB 0644
show_all_binlogs.inc File 1.64 KB 0644
show_all_relay_logs.inc File 1.92 KB 0644
show_binary_logs.inc File 91 B 0644
show_binlog_events.inc File 1.43 KB 0644
show_binlog_events2.inc File 690 B 0644
show_binlog_using_logname.inc File 512 B 0644
show_delayed_slave_state.inc File 1.47 KB 0644
show_events.inc File 2.93 KB 0644
show_master_logs.inc File 106 B 0644
show_master_status.inc File 155 B 0644
show_msg.inc File 747 B 0644
show_msg80.inc File 4.46 KB 0644
show_relaylog_events.inc File 384 B 0644
show_rpl_debug_info.inc File 4.3 KB 0644
show_slave_hosts.inc File 194 B 0644
show_slave_status.inc File 3.78 KB 0644
shutdown_mysqld.inc File 750 B 0644
sp-vars.inc File 3.29 KB 0644
start_mysqld.inc File 428 B 0644
start_slave.inc File 758 B 0644
start_slave_io.inc File 791 B 0644
start_slave_sql.inc File 799 B 0644
stop_dump_threads.inc File 1019 B 0644
stop_slave.inc File 2.32 KB 0644
stop_slave_io.inc File 934 B 0644
stop_slave_sql.inc File 843 B 0644
strict_autoinc.inc File 619 B 0644
subquery.inc File 192.13 KB 0644
subquery_mat.inc File 40.52 KB 0644
subquery_sj.inc File 186.58 KB 0644
subquery_sj_innodb.inc File 3.86 KB 0644
sync_slave_io.inc File 1.39 KB 0644
sync_slave_io_with_master.inc File 1.3 KB 0644
sync_slave_sql.inc File 3.65 KB 0644
sync_slave_sql_with_io.inc File 843 B 0644
sync_slave_sql_with_master.inc File 1.48 KB 0644
system_db_struct.inc File 453 B 0644
test_fieldsize.inc File 724 B 0644
test_outfile.inc File 76 B 0644
testdb_only.inc File 1.39 KB 0644
tpcb.inc File 4.37 KB 0644
tpcb_disk_data.inc File 4.76 KB 0644
truncate_file.inc File 315 B 0644
uninstall_semisync.inc File 785 B 0644
unsafe_binlog.inc File 6.78 KB 0644
uses_vardir.inc File 385 B 0644
varchar.inc File 7.13 KB 0644
vardir_size_check.inc File 569 B 0644
view_alias.inc File 1.05 KB 0644
wait_condition.inc File 1.33 KB 0644
wait_condition_sp.inc File 1.27 KB 0644
wait_for_binlog_event.inc File 816 B 0644
wait_for_ndb_committed_to_binlog.inc File 1.87 KB 0644
wait_for_query_to_fail.inc File 366 B 0644
wait_for_query_to_succeed.inc File 371 B 0644
wait_for_slave_io_error.inc File 3.83 KB 0644
wait_for_slave_io_to_start.inc File 1.24 KB 0644
wait_for_slave_io_to_stop.inc File 967 B 0644
wait_for_slave_param.inc File 5.61 KB 0644
wait_for_slave_sql_error.inc File 3.26 KB 0644
wait_for_slave_sql_error_and_skip.inc File 1.67 KB 0644
wait_for_slave_sql_to_start.inc File 889 B 0644
wait_for_slave_sql_to_stop.inc File 1008 B 0644
wait_for_slave_to_start.inc File 678 B 0644
wait_for_slave_to_stop.inc File 946 B 0644
wait_for_slave_to_sync_with_master.inc File 578 B 0644
wait_for_status_var.inc File 2.7 KB 0644
wait_innodb_all_purged.inc File 1.31 KB 0644
wait_show_condition.inc File 3.65 KB 0644
wait_time_until_connected_again.inc File 735 B 0644
wait_until_connected_again.inc File 546 B 0644
wait_until_count_sessions.inc File 4.12 KB 0644
wait_until_disconnected.inc File 382 B 0644
wait_until_rows_count.inc File 409 B 0644
weight_string.inc File 1.28 KB 0644
weight_string_8140.inc File 2.07 KB 0644
weight_string_8EA1.inc File 2.07 KB 0644
weight_string_8FA2C3.inc File 2.2 KB 0644
weight_string_A1A1.inc File 2.07 KB 0644
weight_string_chde.inc File 3.26 KB 0644
weight_string_euro.inc File 1.81 KB 0644
weight_string_l1.inc File 497 B 0644
weight_string_l12.inc File 199 B 0644
weight_string_l14.inc File 1.28 KB 0644
weight_string_l2.inc File 312 B 0644
weight_string_l3.inc File 497 B 0644
weight_string_l4.inc File 497 B 0644
windows.inc File 118 B 0644
windows_sys_vars.inc File 600 B 0644
wl6219-engine.test File 3.25 KB 0644
wl6301.inc File 2.42 KB 0644
world.inc File 162.21 KB 0644
world_schema.inc File 731 B 0644
world_schema1.inc File 549 B 0644
write_result_to_file.inc File 3.07 KB 0644
write_var_to_file.inc File 1.77 KB 0644