If one executes an UPDATE statement that doesn't really change any values and that has an explicit value for the field with ON UPDATE CURRENT_TIMESTAMP, then the next UPDATE statement (without an explicit value for the timestamp) won't automatically set current timestamp into that field. The problem can be easily revealed with the following addition to the existing test:
--- a/mysql-test/include/function_defaults.inc
|
+++ b/mysql-test/include/function_defaults.inc
|
@@ -408,15 +408,28 @@ UPDATE t1 SET c = 2;
|
SELECT * FROM t1;
|
|
--echo #
|
+--echo # Test that ON UPDATE CURRENT_TIMESTAMP works after non-changing UPDATE.
|
+--echo #
|
+
|
+--echo # 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;
|
+
|
+UPDATE t1 SET c = 3;
|
+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;
|
+UPDATE t1 t11, t1 t12 SET t11.c = 3;
|
SELECT * FROM t1;
|
|
-UPDATE t1 t11, t1 t12 SET t11.c = 3;
|
+UPDATE t1 t11, t1 t12 SET t11.c = 2;
|
SELECT * FROM t1;
|
|
DROP TABLE t1;
|
In the test output you can see that after "UPDATE t1 SET c = 3" the field a is updated, but the field b is not.
The problem is that HAS_EXPLICIT_VALUE is reset in TABLE::update_default_fields() which is called from mysql_update() only when compare_record(table) returns true. So when mysql_update() doesn't change the row the flag is not reset and gets spilled into the next row or even the next statement.
I don't know yet what's the appropriate way to fix this problem (i.e. where the flag HAS_EXPLICIT_VALUE should be reset), so I'd really appreciate a speedy response.
This problem is especially dangerous due to the fact that its manifestation depends on the order of statements executed on the same TABLE object which can be different between master and slaves.
- relates to
-
MDEV-15602
server occasionally does not update timestamp for column (ON UPDATE CURRENT_TIMESTAMP)
-
-
Closed
{"report":{"fcp":1420.7000002861023,"ttfb":510.2000002861023,"pageVisibility":"visible","entityId":45909,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":0.5,"journeyId":"adb22067-75c8-46d3-b9f5-b29f9433d547","navigationType":0,"readyForUser":1505.6000003814697,"redirectCount":0,"resourceLoadedEnd":1706.7000002861023,"resourceLoadedStart":515.6000003814697,"resourceTiming":[{"duration":426.69999980926514,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":515.6000003814697,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":515.6000003814697,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":942.3000001907349,"responseStart":0,"secureConnectionStart":0},{"duration":426.7000002861023,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2cib/820016/12ta74/494e4c556ecbb29f90a3d3b4f09cb99c/_/download/contextbatch/css/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true&whisper-enabled=true","startTime":515.9000000953674,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":515.9000000953674,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":942.6000003814697,"responseStart":0,"secureConnectionStart":0},{"duration":442.3999996185303,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":516.1000003814697,"connectEnd":516.1000003814697,"connectStart":516.1000003814697,"domainLookupEnd":516.1000003814697,"domainLookupStart":516.1000003814697,"fetchStart":516.1000003814697,"redirectEnd":0,"redirectStart":0,"requestStart":516.1000003814697,"responseEnd":958.5,"responseStart":958.5,"secureConnectionStart":516.1000003814697},{"duration":497.40000009536743,"initiatorType":"script","name":"https://jira.mariadb.org/s/2d8175ec2fa4c816e8023260bd8c1786-CDN/lu2cib/820016/12ta74/494e4c556ecbb29f90a3d3b4f09cb99c/_/download/contextbatch/js/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true&whisper-enabled=true","startTime":516.2000002861023,"connectEnd":516.2000002861023,"connectStart":516.2000002861023,"domainLookupEnd":516.2000002861023,"domainLookupStart":516.2000002861023,"fetchStart":516.2000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":516.2000002861023,"responseEnd":1013.6000003814697,"responseStart":1013.6000003814697,"secureConnectionStart":516.2000002861023},{"duration":500.90000009536743,"initiatorType":"script","name":"https://jira.mariadb.org/s/a9324d6758d385eb45c462685ad88f1d-CDN/lu2cib/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":516.4000000953674,"connectEnd":516.4000000953674,"connectStart":516.4000000953674,"domainLookupEnd":516.4000000953674,"domainLookupStart":516.4000000953674,"fetchStart":516.4000000953674,"redirectEnd":0,"redirectStart":0,"requestStart":516.4000000953674,"responseEnd":1017.3000001907349,"responseStart":1017.3000001907349,"secureConnectionStart":516.4000000953674},{"duration":501.09999990463257,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":516.6000003814697,"connectEnd":516.6000003814697,"connectStart":516.6000003814697,"domainLookupEnd":516.6000003814697,"domainLookupStart":516.6000003814697,"fetchStart":516.6000003814697,"redirectEnd":0,"redirectStart":0,"requestStart":516.6000003814697,"responseEnd":1017.7000002861023,"responseStart":1017.7000002861023,"secureConnectionStart":516.6000003814697},{"duration":501.69999980926514,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":516.8000001907349,"connectEnd":516.8000001907349,"connectStart":516.8000001907349,"domainLookupEnd":516.8000001907349,"domainLookupStart":516.8000001907349,"fetchStart":516.8000001907349,"redirectEnd":0,"redirectStart":0,"requestStart":516.8000001907349,"responseEnd":1018.5,"responseStart":1018.5,"secureConnectionStart":516.8000001907349},{"duration":585.2000002861023,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2cib/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":517,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":517,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1102.2000002861023,"responseStart":0,"secureConnectionStart":0},{"duration":501.7999997138977,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":517.1000003814697,"connectEnd":517.1000003814697,"connectStart":517.1000003814697,"domainLookupEnd":517.1000003814697,"domainLookupStart":517.1000003814697,"fetchStart":517.1000003814697,"redirectEnd":0,"redirectStart":0,"requestStart":517.1000003814697,"responseEnd":1018.9000000953674,"responseStart":1018.9000000953674,"secureConnectionStart":517.1000003814697},{"duration":585.1999998092651,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2cib/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.css?jira.create.linked.issue=true","startTime":517.2000002861023,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":517.2000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1102.4000000953674,"responseStart":0,"secureConnectionStart":0},{"duration":502.09999990463257,"initiatorType":"script","name":"https://jira.mariadb.org/s/5d5e8fe91fbc506585e83ea3b62ccc4b-CDN/lu2cib/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.js?jira.create.linked.issue=true&locale=en","startTime":517.4000000953674,"connectEnd":517.4000000953674,"connectStart":517.4000000953674,"domainLookupEnd":517.4000000953674,"domainLookupStart":517.4000000953674,"fetchStart":517.4000000953674,"redirectEnd":0,"redirectStart":0,"requestStart":517.4000000953674,"responseEnd":1019.5,"responseStart":1019.5,"secureConnectionStart":517.4000000953674},{"duration":777.3000001907349,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":518.3000001907349,"connectEnd":518.3000001907349,"connectStart":518.3000001907349,"domainLookupEnd":518.3000001907349,"domainLookupStart":518.3000001907349,"fetchStart":518.3000001907349,"redirectEnd":0,"redirectStart":0,"requestStart":518.3000001907349,"responseEnd":1295.6000003814697,"responseStart":1295.6000003814697,"secureConnectionStart":518.3000001907349},{"duration":1151.8000001907349,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":518.4000000953674,"connectEnd":518.4000000953674,"connectStart":518.4000000953674,"domainLookupEnd":518.4000000953674,"domainLookupStart":518.4000000953674,"fetchStart":518.4000000953674,"redirectEnd":0,"redirectStart":0,"requestStart":518.4000000953674,"responseEnd":1670.2000002861023,"responseStart":1670.2000002861023,"secureConnectionStart":518.4000000953674},{"duration":185.60000038146973,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":1114,"connectEnd":1114,"connectStart":1114,"domainLookupEnd":1114,"domainLookupStart":1114,"fetchStart":1114,"redirectEnd":0,"redirectStart":0,"requestStart":1114,"responseEnd":1299.6000003814697,"responseStart":1299.6000003814697,"secureConnectionStart":1114},{"duration":332.7000002861023,"initiatorType":"link","name":"https://jira.mariadb.org/s/d5715adaadd168a9002b108b2b039b50-CDN/lu2cib/820016/12ta74/be4b45e9cec53099498fa61c8b7acba4/_/download/contextbatch/css/jira.project.sidebar,-_super,-project.issue.navigator,-jira.general,-jira.browse.project,-jira.view.issue,-jira.global,-atl.general,-com.atlassian.jira.projects.sidebar.init/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true&whisper-enabled=true","startTime":1374,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":1374,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1706.7000002861023,"responseStart":0,"secureConnectionStart":0},{"duration":296.2000002861023,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/e65b778d185daf5aee24936755b43da6/_/download/contextbatch/js/browser-metrics-plugin.contrib,-_super,-project.issue.navigator,-jira.view.issue,-atl.general/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true&whisper-enabled=true","startTime":1374.9000000953674,"connectEnd":1374.9000000953674,"connectStart":1374.9000000953674,"domainLookupEnd":1374.9000000953674,"domainLookupStart":1374.9000000953674,"fetchStart":1374.9000000953674,"redirectEnd":0,"redirectStart":0,"requestStart":1374.9000000953674,"responseEnd":1671.1000003814697,"responseStart":1671.1000003814697,"secureConnectionStart":1374.9000000953674},{"duration":298.30000019073486,"initiatorType":"script","name":"https://jira.mariadb.org/s/097ae97cb8fbec7d6ea4bbb1f26955b9-CDN/lu2cib/820016/12ta74/be4b45e9cec53099498fa61c8b7acba4/_/download/contextbatch/js/jira.project.sidebar,-_super,-project.issue.navigator,-jira.general,-jira.browse.project,-jira.view.issue,-jira.global,-atl.general,-com.atlassian.jira.projects.sidebar.init/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true&whisper-enabled=true","startTime":1375.3000001907349,"connectEnd":1375.3000001907349,"connectStart":1375.3000001907349,"domainLookupEnd":1375.3000001907349,"domainLookupStart":1375.3000001907349,"fetchStart":1375.3000001907349,"redirectEnd":0,"redirectStart":0,"requestStart":1375.3000001907349,"responseEnd":1673.6000003814697,"responseStart":1673.6000003814697,"secureConnectionStart":1375.3000001907349},{"duration":297.2000002861023,"initiatorType":"script","name":"https://www.google-analytics.com/analytics.js","startTime":1414,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":1414,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1711.2000002861023,"responseStart":0,"secureConnectionStart":0}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":284,"responseStart":510,"responseEnd":513,"domLoading":513,"domInteractive":1733,"domContentLoadedEventStart":1733,"domContentLoadedEventEnd":1773,"domComplete":3057,"loadEventStart":3057,"loadEventEnd":3059,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1714},{"name":"bigPipe.sidebar-id.end","time":1714.8000001907349},{"name":"bigPipe.activity-panel-pipe-id.start","time":1714.9000000953674},{"name":"bigPipe.activity-panel-pipe-id.end","time":1717.2000002861023},{"name":"activityTabFullyLoaded","time":1782.8000001907349}],"measures":[],"correlationId":"2674561ef1782a","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":162,"dbReadsTimeInMs":9,"dbConnsTimeInMs":17,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}