You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by "gortiz (via GitHub)" <gi...@apache.org> on 2026/07/21 14:40:38 UTC

[PR] [MSE] Remove the experimental enriched join feature [pinot]

gortiz opened a new pull request, #19033:
URL: https://github.com/apache/pinot/pull/19033

   ## Summary
   
   Enriched joins were an experimental feature (introduced in #16123 by @songwdfu — thanks for the original contribution) that fused project/filter/sort into the hash join operator to try to improve performance. In practice they did not deliver the expected gains, so this PR removes the feature.
   
   The removal is deliberately **backward compatible**: the query option becomes a no-op rather than an error, and the wire/plan-node/visitor surface is kept and `@Deprecated` rather than deleted, so a plan serialized by an older-version broker still deserializes during a rolling upgrade.
   
   ## What was removed
   - `PinotEnrichedJoinRule`, `PinotLogicalEnrichedJoin` (Calcite rel), and `EnrichedHashJoinOperator`, plus their tests and the `EnrichedJoin.json` resource.
   - The rule wiring in `QueryEnvironment`: the `JoinToEnrichedJoin` rule is no longer registered, so a query requesting it via `usePlannerRules` is **silently ignored** instead of failing.
   - The always-null enriched `filterProjectRexNodes` field/constructor on the v2 `PhysicalJoin`.
   
   ## What was retained (`@Deprecated`, for backward compatibility)
   - `EnrichedJoinNode` plan node, `PlanNodeVisitor#visitEnrichedJoin` and all its overrides, the serde path, `plan.proto` field 17 (retained, **not reused**), and the `CommonConstants.JOIN_TO_ENRICHED_JOIN` constant.
   - `DefaultJoinOperatorFactory#createEnrichedJoinOperator` now throws `UnsupportedOperationException`, so if an older broker's plan carrying an `EnrichedJoinNode` reaches an upgraded server it **fails loudly** rather than silently executing a degraded join.
   - A sunset note in the `EnrichedJoinNode` javadoc documents when the skeleton can be fully deleted (once no supported broker version still emits proto field 17).
   
   ## Compatibility notes
   - **SPI**: `pinot-spi` `CommonConstants.JOIN_TO_ENRICHED_JOIN` is only annotated `@Deprecated`; its string value is unchanged, so existing `usePlannerRules` / `DEFAULT_DISABLED_RULES` references keep working.
   - **Rolling upgrade**: since enriched joins were experimental and disabled by default, the fail-loud behavior on the server for a mixed-version plan is intentional.
   
   ## Testing
   - New `PlanNodeSerDeTest#testEnrichedJoinNodeSerDe` — direct serde round-trip guarding the retained wire format (asserts the enriched-specific fields explicitly, since `JoinNode#equals` ignores them).
   - New `QueryCompilationTest#testEnrichedJoinRuleIsNoOp` — verifies `usePlannerRules='JoinToEnrichedJoin'` plans successfully as an ordinary join with no enriched node.
   - New `DefaultJoinOperatorFactoryTest` — verifies the runtime rejects an enriched join.
   - Existing `ResourceBasedQueryPlansTest`, `RelToPlanNodeConverterTest`, `PlanNodeSerDeTest`, `QueryCompilationTest`, `HashJoinOperatorTest` pass. Checkstyle, spotless, and license checks pass.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


Re: [PR] [MSE] Remove the experimental enriched join feature [pinot]

Posted by "gortiz (via GitHub)" <gi...@apache.org>.
gortiz merged PR #19033:
URL: https://github.com/apache/pinot/pull/19033


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


Re: [PR] [MSE] Remove the experimental enriched join feature [pinot]

Posted by "xiangfu0 (via GitHub)" <gi...@apache.org>.
xiangfu0 commented on PR #19033:
URL: https://github.com/apache/pinot/pull/19033#issuecomment-5047426206

   Opened follow-up docs PR: https://github.com/pinot-contrib/pinot-docs/pull/934


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


Re: [PR] [MSE] Remove the experimental enriched join feature [pinot]

Posted by "codecov-commenter (via GitHub)" <gi...@apache.org>.
codecov-commenter commented on PR #19033:
URL: https://github.com/apache/pinot/pull/19033#issuecomment-5035975994

   ## [Codecov](https://app.codecov.io/gh/apache/pinot/pull/19033?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
   :white_check_mark: All modified and coverable lines are covered by tests.
   :white_check_mark: Project coverage is 65.31%. Comparing base ([`a6d16ef`](https://app.codecov.io/gh/apache/pinot/commit/a6d16ef377265b060635407e71e872fe3376aef6?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`19a8a71`](https://app.codecov.io/gh/apache/pinot/commit/19a8a71b69a7270943ce542cadbba03df9e86c34?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
   
   <details><summary>Additional details and impacted files</summary>
   
   
   
   ```diff
   @@             Coverage Diff              @@
   ##             master   #19033      +/-   ##
   ============================================
   - Coverage     65.37%   65.31%   -0.06%     
   + Complexity     1405     1399       -6     
   ============================================
     Files          3423     3420       -3     
     Lines        215978   215466     -512     
     Branches      34188    34098      -90     
   ============================================
   - Hits         141202   140740     -462     
   + Misses        63409    63395      -14     
   + Partials      11367    11331      -36     
   ```
   
   | [Flag](https://app.codecov.io/gh/apache/pinot/pull/19033/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | |
   |---|---|---|
   | [custom-integration1](https://app.codecov.io/gh/apache/pinot/pull/19033/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
   | [integration](https://app.codecov.io/gh/apache/pinot/pull/19033/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
   | [integration1](https://app.codecov.io/gh/apache/pinot/pull/19033/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
   | [integration2](https://app.codecov.io/gh/apache/pinot/pull/19033/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
   | [java-25](https://app.codecov.io/gh/apache/pinot/pull/19033/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `65.31% <100.00%> (-0.06%)` | :arrow_down: |
   | [temurin](https://app.codecov.io/gh/apache/pinot/pull/19033/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `65.31% <100.00%> (-0.06%)` | :arrow_down: |
   | [unittests](https://app.codecov.io/gh/apache/pinot/pull/19033/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `65.31% <100.00%> (-0.06%)` | :arrow_down: |
   | [unittests1](https://app.codecov.io/gh/apache/pinot/pull/19033/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `57.00% <100.00%> (-0.11%)` | :arrow_down: |
   | [unittests2](https://app.codecov.io/gh/apache/pinot/pull/19033/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `37.64% <0.00%> (+0.07%)` | :arrow_up: |
   
   Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#carryforward-flags-in-the-pull-request-comment) to find out more.
   </details>
   
   [:umbrella: View full report in Codecov by Harness](https://app.codecov.io/gh/apache/pinot/pull/19033?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).   
   :loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
   <details><summary> :rocket: New features to boost your workflow: </summary>
   
   - :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
   </details>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org