This script:
DROP TABLE IF EXISTS t1;
|
CREATE TABLE t1 (a YEAR);
|
INSERT INTO t1 VALUES (2010),(2011);
|
SELECT a=10 AND NULLIF(a,2011.1)='2011' AS cond FROM t1;
|
returns
+------+
|
| cond |
|
+------+
|
| 0 |
|
| 0 |
|
+------+
|
Now if I put the same expression into WHERE:
SELECT * FROM t1 WHERE a=10 AND NULLIF(a,2011.1)='2011';
|
it erroneously returns one row:
+------+
|
| a |
|
+------+
|
| 2010 |
|
+------+
|
The expected result is to have the expression evaluate into the same result in the SELECT list and in WHERE.
The problem is that Item_func_nullif::const_item() returns true and its val_real() is called from eval_const_cond().
In fact, it has constant items in args[0] and args[1]:
(gdb) p args[0]->const_item()
|
$14 = true
|
(gdb) p args[1]->const_item()
|
$15 = true
|
but the returned value referenced by m_args0_copy is not a constant item:
(gdb) p this->m_args0_copy
|
$17 = (Item_field *) 0x7fff98001668
|
The return argument should probably be stored in arg[2] instead, so the standard Item_func methods can see it and update Used_tables_cache taking into account the return value (not only the compared values).
{"report":{"fcp":830.2000000178814,"ttfb":179.10000002384186,"pageVisibility":"visible","entityId":52945,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":1,"journeyId":"a8cc7510-f3c0-44af-b79b-7070025bbe76","navigationType":0,"readyForUser":902.1000000238419,"redirectCount":0,"resourceLoadedEnd":1019.8000000119209,"resourceLoadedStart":186.30000001192093,"resourceTiming":[{"duration":146.09999999403954,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2bv2/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":186.30000001192093,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":186.30000001192093,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":332.40000000596046,"responseStart":0,"secureConnectionStart":0},{"duration":146.2000000178814,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2bv2/820016/12ta74/2380add21a9a1006587582385952de73/_/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","startTime":186.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":186.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":332.7000000178814,"responseStart":0,"secureConnectionStart":0},{"duration":154.7999999821186,"initiatorType":"script","name":"https://jira.mariadb.org/s/e9b27a47da5fb0f74a35acd57e9847fb-CDN/lu2bv2/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":186.7000000178814,"connectEnd":186.7000000178814,"connectStart":186.7000000178814,"domainLookupEnd":186.7000000178814,"domainLookupStart":186.7000000178814,"fetchStart":186.7000000178814,"redirectEnd":0,"redirectStart":0,"requestStart":186.7000000178814,"responseEnd":341.5,"responseStart":341.5,"secureConnectionStart":186.7000000178814},{"duration":220.59999999403954,"initiatorType":"script","name":"https://jira.mariadb.org/s/c32eb0da7ad9831253f8397e6cc26afd-CDN/lu2bv2/820016/12ta74/2380add21a9a1006587582385952de73/_/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","startTime":187.40000000596046,"connectEnd":187.40000000596046,"connectStart":187.40000000596046,"domainLookupEnd":187.40000000596046,"domainLookupStart":187.40000000596046,"fetchStart":187.40000000596046,"redirectEnd":0,"redirectStart":0,"requestStart":187.40000000596046,"responseEnd":408,"responseStart":408,"secureConnectionStart":187.40000000596046},{"duration":223.90000000596046,"initiatorType":"script","name":"https://jira.mariadb.org/s/bc0bcb146314416123c992714ee00ff7-CDN/lu2bv2/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":187.5,"connectEnd":187.5,"connectStart":187.5,"domainLookupEnd":187.5,"domainLookupStart":187.5,"fetchStart":187.5,"redirectEnd":0,"redirectStart":0,"requestStart":187.5,"responseEnd":411.40000000596046,"responseStart":411.40000000596046,"secureConnectionStart":187.5},{"duration":224.09999999403954,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":187.7000000178814,"connectEnd":187.7000000178814,"connectStart":187.7000000178814,"domainLookupEnd":187.7000000178814,"domainLookupStart":187.7000000178814,"fetchStart":187.7000000178814,"redirectEnd":0,"redirectStart":0,"requestStart":187.7000000178814,"responseEnd":411.80000001192093,"responseStart":411.80000001192093,"secureConnectionStart":187.7000000178814},{"duration":224.69999998807907,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":187.80000001192093,"connectEnd":187.80000001192093,"connectStart":187.80000001192093,"domainLookupEnd":187.80000001192093,"domainLookupStart":187.80000001192093,"fetchStart":187.80000001192093,"redirectEnd":0,"redirectStart":0,"requestStart":187.80000001192093,"responseEnd":412.5,"responseStart":412.5,"secureConnectionStart":187.80000001192093},{"duration":290.40000000596046,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2bv2/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":188,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":188,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":478.40000000596046,"responseStart":0,"secureConnectionStart":0},{"duration":224.69999998807907,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":188.10000002384186,"connectEnd":188.10000002384186,"connectStart":188.10000002384186,"domainLookupEnd":188.10000002384186,"domainLookupStart":188.10000002384186,"fetchStart":188.10000002384186,"redirectEnd":0,"redirectStart":0,"requestStart":188.10000002384186,"responseEnd":412.80000001192093,"responseStart":412.80000001192093,"secureConnectionStart":188.10000002384186},{"duration":290.2000000178814,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2bv2/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":188.40000000596046,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":188.40000000596046,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":478.60000002384186,"responseStart":0,"secureConnectionStart":0},{"duration":224.90000000596046,"initiatorType":"script","name":"https://jira.mariadb.org/s/719848dd97ebe0663199f49a3936487a-CDN/lu2bv2/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":188.5,"connectEnd":188.5,"connectStart":188.5,"domainLookupEnd":188.5,"domainLookupStart":188.5,"fetchStart":188.5,"redirectEnd":0,"redirectStart":0,"requestStart":188.5,"responseEnd":413.40000000596046,"responseStart":413.40000000596046,"secureConnectionStart":188.5},{"duration":409.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":191.7000000178814,"connectEnd":191.7000000178814,"connectStart":191.7000000178814,"domainLookupEnd":191.7000000178814,"domainLookupStart":191.7000000178814,"fetchStart":191.7000000178814,"redirectEnd":0,"redirectStart":0,"requestStart":191.7000000178814,"responseEnd":601.2000000178814,"responseStart":601.2000000178814,"secureConnectionStart":191.7000000178814},{"duration":828.0999999940395,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":191.7000000178814,"connectEnd":191.7000000178814,"connectStart":191.7000000178814,"domainLookupEnd":191.7000000178814,"domainLookupStart":191.7000000178814,"fetchStart":191.7000000178814,"redirectEnd":0,"redirectStart":0,"requestStart":191.7000000178814,"responseEnd":1019.8000000119209,"responseStart":1019.8000000119209,"secureConnectionStart":191.7000000178814},{"duration":112.2000000178814,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":489.40000000596046,"connectEnd":489.40000000596046,"connectStart":489.40000000596046,"domainLookupEnd":489.40000000596046,"domainLookupStart":489.40000000596046,"fetchStart":489.40000000596046,"redirectEnd":0,"redirectStart":0,"requestStart":489.40000000596046,"responseEnd":601.6000000238419,"responseStart":601.6000000238419,"secureConnectionStart":489.40000000596046},{"duration":318.5,"initiatorType":"link","name":"https://jira.mariadb.org/s/d5715adaadd168a9002b108b2b039b50-CDN/lu2bv2/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","startTime":753.6000000238419,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":753.6000000238419,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1072.1000000238419,"responseStart":0,"secureConnectionStart":0}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":28,"responseStart":179,"responseEnd":191,"domLoading":181,"domInteractive":1035,"domContentLoadedEventStart":1035,"domContentLoadedEventEnd":1072,"domComplete":2597,"loadEventStart":2597,"loadEventEnd":2599,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1021.5},{"name":"bigPipe.sidebar-id.end","time":1022.3000000119209},{"name":"bigPipe.activity-panel-pipe-id.start","time":1022.4000000059605},{"name":"bigPipe.activity-panel-pipe-id.end","time":1024.5},{"name":"activityTabFullyLoaded","time":1078.300000011921}],"measures":[],"correlationId":"d7533266dba7c0","effectiveType":"4g","downlink":9.6,"rtt":0,"serverDuration":89,"dbReadsTimeInMs":9,"dbConnsTimeInMs":16,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}