starrocks
starrocks copied to clipboard
[Feature] Support ON Clause subquery
trafficstars
What type of PR is this:
- [ ] bug
- [x] feature
- [ ] enhancement
- [ ] refactor
- [ ] others
Which issues of this PR fixes :
Fixes #9875
Enhancement
Since the exist sql parser supports the grammar of ON clause subquery, the only thing we need to do is removing the semantic checking and transforming ON Clause subquery into ApplyOperator
Supported and un-supported types of ON Clause subquery are listed as follows
- ✅ orrelated scalar agg subquery
- ✅ correlated scalar non-agg subquery
- ✅ uncorrelated scalar agg subquery
- ✅ uncorrelated scalar non-agg subquery
- ✅ correlated exist subquery
- ✅ correlated quantified subquery
- ✅ uncorrelated exist subquery
- ✅ uncorrelated quantified subquery
Checklist:
- [x] I have added test cases for my bug fix or my new feature
- [ ] I have added user document for my new feature or new function
run starrocks_fe_unittest
run starrocks_admit_test
[FE PR Coverage Check]
:heart_eyes: pass : 140 / 150 (93.33%)
file detail
| path | covered_line | new_line | coverage | not_covered_line_detail | |
|---|---|---|---|---|---|
| :large_blue_circle: | com/starrocks/sql/analyzer/QueryAnalyzer.java | 2 | 4 | 50.00% | [252, 253] |
| :large_blue_circle: | com/starrocks/sql/analyzer/AnalyzerUtils.java | 27 | 32 | 84.38% | [383, 398, 399, 411, 461] |
| :large_blue_circle: | com/starrocks/sql/optimizer/transformer/SubqueryTransformer.java | 24 | 27 | 88.89% | [109, 123, 133] |
| :large_blue_circle: | com/starrocks/sql/optimizer/transformer/RelationTransformer.java | 80 | 80 | 100.00% | [] |
| :large_blue_circle: | com/starrocks/planner/LoadScanNode.java | 1 | 1 | 100.00% | [] |
| :large_blue_circle: | com/starrocks/sql/optimizer/transformer/QueryTransformer.java | 2 | 2 | 100.00% | [] |
| :large_blue_circle: | com/starrocks/sql/optimizer/transformer/ExpressionMapping.java | 4 | 4 | 100.00% | [] |







