Note: results below are from 10.2 348ccb6f038a6c1.
create table t1 (i int);
|
insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
|
select i, Min(i) OVER (PARTITION BY i) as f from (select * from t1) as tt order by i;
|
Actual result
|
+------+------+
|
| i | f |
|
+------+------+
|
| 1 | 10 |
|
| 2 | 10 |
|
| 3 | 10 |
|
| 4 | 10 |
|
| 5 | 10 |
|
| 6 | 10 |
|
| 7 | 10 |
|
| 8 | 10 |
|
| 9 | 10 |
|
| 10 | 10 |
|
+------+------+
|
10 rows in set (0.00 sec)
|
Without the subquery, the result is different:
MariaDB [test]> select i, Min(i) OVER (PARTITION BY i) as f from t1 as tt order by i;
|
+------+------+
|
| i | f |
|
+------+------+
|
| 1 | 1 |
|
| 2 | 2 |
|
| 3 | 3 |
|
| 4 | 4 |
|
| 5 | 5 |
|
| 6 | 6 |
|
| 7 | 7 |
|
| 8 | 8 |
|
| 9 | 9 |
|
| 10 | 10 |
|
+------+------+
|
10 rows in set (0.01 sec)
|
PostgreSQL 9.4 returns the same for both queries:
postgres=# select i, Min(i) OVER (PARTITION BY i) as f from t1 as tt order by i;
|
i | f
|
----+----
|
1 | 1
|
2 | 2
|
3 | 3
|
4 | 4
|
5 | 5
|
6 | 6
|
7 | 7
|
8 | 8
|
9 | 9
|
10 | 10
|
(10 rows)
|
postgres=# select i, Min(i) OVER (PARTITION BY i) as f from (select * from t1) as tt order by i;
|
i | f
|
----+----
|
1 | 1
|
2 | 2
|
3 | 3
|
4 | 4
|
5 | 5
|
6 | 6
|
7 | 7
|
8 | 8
|
9 | 9
|
10 | 10
|
(10 rows)
|
- relates to
-
MDEV-9896
Testing for window functions
-
-
Open
{"report":{"fcp":2548,"ttfb":277.7000000178814,"pageVisibility":"visible","entityId":59727,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":0.5,"journeyId":"20527cb1-adc6-4494-a082-6b41f8b535d3","navigationType":0,"readyForUser":2622.7000000178814,"redirectCount":0,"resourceLoadedEnd":2507.100000023842,"resourceLoadedStart":284.5,"resourceTiming":[{"duration":48.20000001788139,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":284.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":284.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":332.7000000178814,"responseStart":0,"secureConnectionStart":0},{"duration":56.19999998807907,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2cib/820016/12ta74/2bf333562ca6724060a9d5f1535471f6/_/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":284.7000000178814,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":284.7000000178814,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":340.90000000596046,"responseStart":0,"secureConnectionStart":0},{"duration":309.30000001192093,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":284.90000000596046,"connectEnd":284.90000000596046,"connectStart":284.90000000596046,"domainLookupEnd":284.90000000596046,"domainLookupStart":284.90000000596046,"fetchStart":284.90000000596046,"redirectEnd":0,"redirectStart":0,"requestStart":448.2000000178814,"responseEnd":594.2000000178814,"responseStart":492.40000000596046,"secureConnectionStart":284.90000000596046},{"duration":364,"initiatorType":"script","name":"https://jira.mariadb.org/s/2d8175ec2fa4c816e8023260bd8c1786-CDN/lu2cib/820016/12ta74/2bf333562ca6724060a9d5f1535471f6/_/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":285,"connectEnd":285,"connectStart":285,"domainLookupEnd":285,"domainLookupStart":285,"fetchStart":285,"redirectEnd":0,"redirectStart":0,"requestStart":445.40000000596046,"responseEnd":649,"responseStart":460.30000001192093,"secureConnectionStart":285},{"duration":197.89999997615814,"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":285.10000002384186,"connectEnd":285.10000002384186,"connectStart":285.10000002384186,"domainLookupEnd":285.10000002384186,"domainLookupStart":285.10000002384186,"fetchStart":285.10000002384186,"redirectEnd":0,"redirectStart":0,"requestStart":451.90000000596046,"responseEnd":483,"responseStart":481.40000000596046,"secureConnectionStart":285.10000002384186},{"duration":202.90000000596046,"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":285.30000001192093,"connectEnd":285.30000001192093,"connectStart":285.30000001192093,"domainLookupEnd":285.30000001192093,"domainLookupStart":285.30000001192093,"fetchStart":285.30000001192093,"redirectEnd":0,"redirectStart":0,"requestStart":454.30000001192093,"responseEnd":488.2000000178814,"responseStart":485.2000000178814,"secureConnectionStart":285.30000001192093},{"duration":166.59999999403954,"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":285.60000002384186,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":285.60000002384186,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":452.2000000178814,"responseStart":0,"secureConnectionStart":0},{"duration":202.69999998807907,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/f66960d7757d5f06891021cb34673e32/shortcuts.js?context=issuenavigation&context=issueaction","startTime":285.7000000178814,"connectEnd":285.7000000178814,"connectStart":285.7000000178814,"domainLookupEnd":285.7000000178814,"domainLookupStart":285.7000000178814,"fetchStart":285.7000000178814,"redirectEnd":0,"redirectStart":0,"requestStart":455.30000001192093,"responseEnd":488.40000000596046,"responseStart":485.80000001192093,"secureConnectionStart":285.7000000178814},{"duration":168.90000000596046,"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":286,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":286,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":454.90000000596046,"responseStart":0,"secureConnectionStart":0},{"duration":205.40000000596046,"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":286.2000000178814,"connectEnd":286.2000000178814,"connectStart":286.2000000178814,"domainLookupEnd":286.2000000178814,"domainLookupStart":286.2000000178814,"fetchStart":286.2000000178814,"redirectEnd":0,"redirectStart":0,"requestStart":459.2000000178814,"responseEnd":491.60000002384186,"responseStart":490.10000002384186,"secureConnectionStart":286.2000000178814},{"duration":355.09999999403954,"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":289.30000001192093,"connectEnd":289.30000001192093,"connectStart":289.30000001192093,"domainLookupEnd":289.30000001192093,"domainLookupStart":289.30000001192093,"fetchStart":289.30000001192093,"redirectEnd":0,"redirectStart":0,"requestStart":491.40000000596046,"responseEnd":644.4000000059605,"responseStart":642.3000000119209,"secureConnectionStart":289.30000001192093},{"duration":355.2000000178814,"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":289.40000000596046,"connectEnd":289.40000000596046,"connectStart":289.40000000596046,"domainLookupEnd":289.40000000596046,"domainLookupStart":289.40000000596046,"fetchStart":289.40000000596046,"redirectEnd":0,"redirectStart":0,"requestStart":521.1000000238419,"responseEnd":644.6000000238419,"responseStart":643.4000000059605,"secureConnectionStart":289.40000000596046},{"duration":376.80000001192093,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":797.9000000059605,"connectEnd":797.9000000059605,"connectStart":797.9000000059605,"domainLookupEnd":797.9000000059605,"domainLookupStart":797.9000000059605,"fetchStart":797.9000000059605,"redirectEnd":0,"redirectStart":0,"requestStart":1135.300000011921,"responseEnd":1174.7000000178814,"responseStart":1174,"secureConnectionStart":797.9000000059605},{"duration":307.59999999403954,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":1177.800000011921,"connectEnd":1177.800000011921,"connectStart":1177.800000011921,"domainLookupEnd":1177.800000011921,"domainLookupStart":1177.800000011921,"fetchStart":1177.800000011921,"redirectEnd":0,"redirectStart":0,"requestStart":1447.7000000178814,"responseEnd":1485.4000000059605,"responseStart":1484.7000000178814,"secureConnectionStart":1177.800000011921},{"duration":543,"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","startTime":1487.5,"connectEnd":1487.5,"connectStart":1487.5,"domainLookupEnd":1487.5,"domainLookupStart":1487.5,"fetchStart":1487.5,"redirectEnd":0,"redirectStart":0,"requestStart":2013,"responseEnd":2030.5,"responseStart":2030,"secureConnectionStart":1487.5},{"duration":2221.600000023842,"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":285.5,"connectEnd":285.5,"connectStart":285.5,"domainLookupEnd":285.5,"domainLookupStart":285.5,"fetchStart":285.5,"redirectEnd":0,"redirectStart":0,"requestStart":285.5,"responseEnd":2507.100000023842,"responseStart":2507.100000023842,"secureConnectionStart":285.5}],"fetchStart":0,"domainLookupStart":56,"domainLookupEnd":76,"connectStart":76,"connectEnd":100,"secureConnectionStart":84,"requestStart":101,"responseStart":277,"responseEnd":285,"domLoading":280,"domInteractive":2689,"domContentLoadedEventStart":2689,"domContentLoadedEventEnd":2738,"domComplete":3126,"loadEventStart":3126,"loadEventEnd":3126,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":2668.100000023842},{"name":"bigPipe.sidebar-id.end","time":2668.9000000059605},{"name":"bigPipe.activity-panel-pipe-id.start","time":2669},{"name":"bigPipe.activity-panel-pipe-id.end","time":2670.600000023842},{"name":"activityTabFullyLoaded","time":2756.9000000059605}],"measures":[],"correlationId":"5b05f761d6290d","effectiveType":"4g","downlink":9.9,"rtt":0,"serverDuration":99,"dbReadsTimeInMs":10,"dbConnsTimeInMs":17,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}
We also have the following problem with window functions using min/max aggregations:
create table t1 (i int, b int);
insert into t1 values
(1,1),(2,1),(3,1),(4,4),(5,4),(6,4),(7,8),(8,8),(9,8),(10,8);
MariaDB [test]> select b, min(i+10) over (partition by b) as f
-> from t1 as tt
-> order by i;
+------+------+
| b | f |
+------+------+
| 1 | 20 |
| 1 | 20 |
| 1 | 20 |
| 4 | 20 |
| 4 | 20 |
| 4 | 20 |
| 8 | 20 |
| 8 | 20 |
| 8 | 20 |
| 8 | 20 |
+------+------+
The cause of both problems is the same: splitting arguments of aggregate functions used in window functions has not been done
correctly unless the argument is just a field. In our cases the argument either an Item_direct_ref or Item_func_plus.