# # Test of function defaults for non-embedded server. # # # Function defaults run 1. No microsecond precision. # SET TIME_ZONE = "+00:00"; # # Test of INSERT DELAYED ... SET ... # # 2011-04-19 08:02:40 UTC SET TIMESTAMP = 1303200160.123456; CREATE TABLE t1 ( a INT, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); INSERT DELAYED INTO t1 SET a = 1; FLUSH TABLE t1; SELECT * FROM t1; a b 1 2011-04-19 08:02:40 SELECT * FROM t1 WHERE b = 0; a b INSERT DELAYED INTO t1 SET a = 2, b = '1980-01-02 10:20:30.405060'; FLUSH TABLE t1; SELECT * FROM t1; a b 1 2011-04-19 08:02:40 2 1980-01-02 10:20:30 DROP TABLE t1; # # Test of INSERT DELAYED ... VALUES ... # # 2011-04-19 08:04:01 UTC SET TIMESTAMP = 1303200241.234567; CREATE TABLE t1 ( a INT, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); INSERT DELAYED INTO t1 ( a ) VALUES (1); FLUSH TABLE t1; SELECT * FROM t1; a b 1 2011-04-19 08:04:01 INSERT DELAYED INTO t1 VALUES (2, '1977-12-19 12:34:56.789123'); FLUSH TABLE t1; SELECT * FROM t1; a b 1 2011-04-19 08:04:01 2 1977-12-19 12:34:56 DROP TABLE t1; # # Test of a delayed insert handler servicing two insert operations # with different sets of active defaults. # CREATE TABLE t1 ( a INT, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); connect con1, localhost, root,,; # 2011-04-19 08:04:01 UTC SET TIMESTAMP = 1303200241.345678; SET debug_sync = 'before_write_delayed SIGNAL parked WAIT_FOR go'; INSERT DELAYED INTO t1 ( a ) VALUES (1), (2), (3); connection default; SET debug_sync = 'now WAIT_FOR parked'; connect con2, localhost, root,,; # 2011-04-19 08:04:01 UTC SET TIME_ZONE="+03:00"; SET TIMESTAMP = 1303200241.456789; INSERT DELAYED INTO t1 ( a, b ) VALUES (4, '1977-12-19 12:34:56.789123'), (5, '1977-12-19 12:34:57.891234'), (6, '1977-12-19 12:34:58.912345'); connection default; SET debug_sync = 'now SIGNAL go'; SELECT * FROM t1; a b 1 2011-04-19 08:04:01 2 2011-04-19 08:04:01 3 2011-04-19 08:04:01 4 1977-12-19 09:34:56 5 1977-12-19 09:34:57 6 1977-12-19 09:34:58 disconnect con1; disconnect con2; DROP TABLE t1; # # Test of early activation of function defaults. # CREATE TABLE t1 ( a INT, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); SET TIMESTAMP = 1317235172.987654; INSERT DELAYED INTO t1 ( a ) VALUES (1), (2), (3); SET TIMESTAMP = 385503754.876543; INSERT DELAYED INTO t1 ( a ) VALUES (4), (5), (6); FLUSH TABLE t1; SELECT * FROM t1; a b 1 2011-09-28 18:39:32 2 2011-09-28 18:39:32 3 2011-09-28 18:39:32 4 1982-03-20 20:22:34 5 1982-03-20 20:22:34 6 1982-03-20 20:22:34 DROP TABLE t1; SET debug_sync = 'RESET'; # # Function defaults run 2. Six digits scale on seconds precision. # SET TIME_ZONE = "+00:00"; # # Test of INSERT DELAYED ... SET ... # # 2011-04-19 08:02:40 UTC SET TIMESTAMP = 1303200160.123456; CREATE TABLE t1 ( a INT, b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT DELAYED INTO t1 SET a = 1; FLUSH TABLE t1; SELECT * FROM t1; a b 1 2011-04-19 08:02:40.123456 SELECT * FROM t1 WHERE b = 0; a b INSERT DELAYED INTO t1 SET a = 2, b = '1980-01-02 10:20:30.405060'; FLUSH TABLE t1; SELECT * FROM t1; a b 1 2011-04-19 08:02:40.123456 2 1980-01-02 10:20:30.405060 DROP TABLE t1; # # Test of INSERT DELAYED ... VALUES ... # # 2011-04-19 08:04:01 UTC SET TIMESTAMP = 1303200241.234567; CREATE TABLE t1 ( a INT, b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT DELAYED INTO t1 ( a ) VALUES (1); FLUSH TABLE t1; SELECT * FROM t1; a b 1 2011-04-19 08:04:01.234567 INSERT DELAYED INTO t1 VALUES (2, '1977-12-19 12:34:56.789123'); FLUSH TABLE t1; SELECT * FROM t1; a b 1 2011-04-19 08:04:01.234567 2 1977-12-19 12:34:56.789123 DROP TABLE t1; # # Test of a delayed insert handler servicing two insert operations # with different sets of active defaults. # CREATE TABLE t1 ( a INT, b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); connect con1, localhost, root,,; # 2011-04-19 08:04:01 UTC SET TIMESTAMP = 1303200241.345678; SET debug_sync = 'before_write_delayed SIGNAL parked WAIT_FOR go'; INSERT DELAYED INTO t1 ( a ) VALUES (1), (2), (3); connection default; SET debug_sync = 'now WAIT_FOR parked'; connect con2, localhost, root,,; # 2011-04-19 08:04:01 UTC SET TIME_ZONE="+03:00"; SET TIMESTAMP = 1303200241.456789; INSERT DELAYED INTO t1 ( a, b ) VALUES (4, '1977-12-19 12:34:56.789123'), (5, '1977-12-19 12:34:57.891234'), (6, '1977-12-19 12:34:58.912345'); connection default; SET debug_sync = 'now SIGNAL go'; SELECT * FROM t1; a b 1 2011-04-19 08:04:01.345678 2 2011-04-19 08:04:01.345678 3 2011-04-19 08:04:01.345678 4 1977-12-19 09:34:56.789123 5 1977-12-19 09:34:57.891234 6 1977-12-19 09:34:58.912345 disconnect con1; disconnect con2; DROP TABLE t1; # # Test of early activation of function defaults. # CREATE TABLE t1 ( a INT, b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); SET TIMESTAMP = 1317235172.987654; INSERT DELAYED INTO t1 ( a ) VALUES (1), (2), (3); SET TIMESTAMP = 385503754.876543; INSERT DELAYED INTO t1 ( a ) VALUES (4), (5), (6); FLUSH TABLE t1; SELECT * FROM t1; a b 1 2011-09-28 18:39:32.987654 2 2011-09-28 18:39:32.987654 3 2011-09-28 18:39:32.987654 4 1982-03-20 20:22:34.876543 5 1982-03-20 20:22:34.876543 6 1982-03-20 20:22:34.876543 DROP TABLE t1; SET debug_sync = 'RESET';