starrocks icon indicating copy to clipboard operation
starrocks copied to clipboard

[Feature] Support ON Clause subquery

Open liuyehcf opened this issue 3 years ago • 1 comments
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

liuyehcf avatar Aug 10 '22 08:08 liuyehcf

run starrocks_fe_unittest

liuyehcf avatar Aug 22 '22 00:08 liuyehcf

run starrocks_admit_test

liuyehcf avatar Aug 22 '22 00:08 liuyehcf

[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% []

wanpengfei-git avatar Aug 22 '22 00:08 wanpengfei-git