pinot
pinot copied to clipboard
[multistage] support HAVING clause
Add support for HAVING clause for basic operators (=. !=, <, <=, >, >=)
- adding FilterNode for intermediate stage
- adding FilterOperator and operands since predicates are not actually functions.
TODO: since intermediate stage treats all operands with data type. it is not suitable to convert it back to literal strings like the FilterContext is doing in the pinot server leaf stage. Thus we need to unify
- the Predicate/FilterContext and the intermediate stage FilterOperator/Operands
- the TransformFunction vs the PostAggregate ScalarFunction/FunctionInvoker
Codecov Report
Merging #9274 (eac41f8) into master (718f41f) will increase coverage by
0.98%. The diff coverage is81.06%.
@@ Coverage Diff @@
## master #9274 +/- ##
============================================
+ Coverage 68.75% 69.74% +0.98%
- Complexity 4755 5046 +291
============================================
Files 1859 1873 +14
Lines 99129 99721 +592
Branches 15077 15167 +90
============================================
+ Hits 68161 69546 +1385
+ Misses 26076 25237 -839
- Partials 4892 4938 +46
| Flag | Coverage Δ | |
|---|---|---|
| integration1 | 26.08% <0.00%> (-0.34%) |
:arrow_down: |
| integration2 | 24.81% <0.00%> (?) |
|
| unittests1 | 67.10% <81.06%> (+0.01%) |
:arrow_up: |
| unittests2 | 15.34% <81.06%> (+<0.01%) |
:arrow_up: |
Flags with carried forward coverage won't be shown. Click here to find out more.
| Impacted Files | Coverage Δ | |
|---|---|---|
| ...e/pinot/query/runtime/operator/FilterOperator.java | 64.00% <64.00%> (ø) |
|
| ...ry/runtime/operator/operands/TransformOperand.java | 70.00% <70.00%> (ø) |
|
| ...query/runtime/operator/operands/FilterOperand.java | 76.78% <76.78%> (ø) |
|
| ...ot/query/runtime/executor/WorkerQueryExecutor.java | 94.73% <100.00%> (+3.82%) |
:arrow_up: |
| ...inot/query/runtime/operator/TransformOperator.java | 80.00% <100.00%> (-7.15%) |
:arrow_down: |
| ...ery/runtime/operator/operands/FunctionOperand.java | 100.00% <100.00%> (ø) |
|
| ...uery/runtime/operator/operands/LiteralOperand.java | 100.00% <100.00%> (ø) |
|
| ...ry/runtime/operator/operands/ReferenceOperand.java | 100.00% <100.00%> (ø) |
|
| ...g/apache/pinot/server/api/resources/ErrorInfo.java | 0.00% <0.00%> (-100.00%) |
:arrow_down: |
| ...data/manager/realtime/DefaultSegmentCommitter.java | 0.00% <0.00%> (-80.00%) |
:arrow_down: |
| ... and 190 more |
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more