|
2049 | 2049 | "Warn": null |
2050 | 2050 | }, |
2051 | 2051 | { |
2052 | | - "SQL": "explain format = 'brief' SELECT SUM(profit) AS profit FROM sales GROUP BY year+2, year+profit WITH ROLLUP order by year+2", |
| 2052 | + "SQL": "explain format = 'brief' SELECT SUM(profit) AS profit FROM sales GROUP BY year+2, year+profit WITH ROLLUP order by year+2; -- 8. order by item year+2 resolve to gby grouping expression", |
2053 | 2053 | "Plan": [ |
2054 | 2054 | "Projection 8000.00 root Column#9", |
2055 | 2055 | "└─Sort 8000.00 root Column#6", |
|
2067 | 2067 | "Warn": null |
2068 | 2068 | }, |
2069 | 2069 | { |
2070 | | - "SQL": "explain format = 'brief' SELECT year+2, SUM(profit) AS profit FROM sales GROUP BY year+2, year+profit WITH ROLLUP order by year+2", |
| 2070 | + "SQL": "explain format = 'brief' SELECT year+2, SUM(profit) AS profit FROM sales GROUP BY year+2, year+profit WITH ROLLUP order by year+2; -- 9. order by item year+2 resolve to select field", |
2071 | 2071 | "Plan": [ |
2072 | 2072 | "Projection 8000.00 root Column#6->Column#10, Column#9", |
2073 | 2073 | "└─Sort 8000.00 root Column#6", |
|
2083 | 2083 | " └─TableFullScan 10000.00 mpp[tiflash] table:sales keep order:false, stats:pseudo" |
2084 | 2084 | ], |
2085 | 2085 | "Warn": null |
| 2086 | + }, |
| 2087 | + { |
| 2088 | + "SQL": "explain format = 'brief' SELECT year+2 as y, SUM(profit) as profit FROM sales GROUP BY year+2, year+profit WITH ROLLUP having y > 2002 order by year+2, profit; -- 10. having (year+2) shouldn't be pushed down", |
| 2089 | + "Plan": [ |
| 2090 | + "Projection 6400.00 root Column#6, Column#9", |
| 2091 | + "└─Sort 6400.00 root Column#6, Column#9", |
| 2092 | + " └─TableReader 6400.00 root MppVersion: 2, data:ExchangeSender", |
| 2093 | + " └─ExchangeSender 6400.00 mpp[tiflash] ExchangeType: PassThrough", |
| 2094 | + " └─Projection 6400.00 mpp[tiflash] Column#9, Column#6", |
| 2095 | + " └─HashAgg 6400.00 mpp[tiflash] group by:Column#20, Column#21, Column#22, funcs:sum(Column#18)->Column#9, funcs:firstrow(Column#19)->Column#6", |
| 2096 | + " └─Projection 8000.00 mpp[tiflash] cast(test.sales.profit, decimal(10,0) BINARY)->Column#18, Column#6->Column#19, Column#6->Column#20, Column#7->Column#21, gid->Column#22", |
| 2097 | + " └─ExchangeReceiver 8000.00 mpp[tiflash] ", |
| 2098 | + " └─ExchangeSender 8000.00 mpp[tiflash] ExchangeType: HashPartition, Compression: FAST, Hash Cols: [name: Column#6, collate: binary], [name: Column#7, collate: binary], [name: gid, collate: binary]", |
| 2099 | + " └─Selection 8000.00 mpp[tiflash] gt(Column#6, 2002)", |
| 2100 | + " └─Expand 10000.00 mpp[tiflash] level-projection:[test.sales.profit, <nil>->Column#6, <nil>->Column#7, 0->gid],[test.sales.profit, Column#6, <nil>->Column#7, 1->gid],[test.sales.profit, Column#6, Column#7, 3->gid]; schema: [test.sales.profit,Column#6,Column#7,gid]", |
| 2101 | + " └─Projection 10000.00 mpp[tiflash] test.sales.profit, plus(test.sales.year, 2)->Column#6, plus(test.sales.year, test.sales.profit)->Column#7", |
| 2102 | + " └─TableFullScan 10000.00 mpp[tiflash] table:sales keep order:false, stats:pseudo" |
| 2103 | + ], |
| 2104 | + "Warn": null |
2086 | 2105 | } |
2087 | 2106 | ] |
2088 | 2107 | } |
|
0 commit comments