mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-6849 ON UPDATE CURRENT_TIMESTAMP doesn't always work
reset default fields not for every modified row, but only once, at the beginning, as the set of modified fields doesn't change. exception: INSERT ... ON DUPLICATE KEY UPDATE - the set of fields does change per row and in that case we reset default fields per row.
This commit is contained in:
@ -435,18 +435,31 @@ 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 = 2;
|
||||
SELECT * FROM t1;
|
||||
a b c
|
||||
2011-04-20 09:53:41 2011-04-20 09:53:41 2
|
||||
UPDATE t1 t11, t1 t12 SET t11.c = 3;
|
||||
SELECT * FROM t1;
|
||||
a b c
|
||||
2011-04-20 15:06:13 2011-04-20 15:06:13 3
|
||||
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
|
||||
@ -1967,18 +1980,31 @@ 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 = 2;
|
||||
SELECT * FROM t1;
|
||||
a b c
|
||||
2011-04-20 09:53:41.794613 2011-04-20 09:53:41.794613 2
|
||||
UPDATE t1 t11, t1 t12 SET t11.c = 3;
|
||||
SELECT * FROM t1;
|
||||
a b c
|
||||
2011-04-20 15:06:13.534231 2011-04-20 15:06:13.534231 3
|
||||
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
|
||||
|
Reference in New Issue
Block a user