Aleksandr Efimov has posted comments on this change. ( http://gerrit.cloudera.org:8080/24612 )
Change subject: IMPALA-15179: Support HBO for SelectNode cardinality ...................................................................... Patch Set 5: (1 comment) http://gerrit.cloudera.org:8080/#/c/24612/5/fe/src/main/java/org/apache/impala/planner/SelectNode.java File fe/src/main/java/org/apache/impala/planner/SelectNode.java: http://gerrit.cloudera.org:8080/#/c/24612/5/fe/src/main/java/org/apache/impala/planner/SelectNode.java@77 PS5, Line 77: computeStats(analyzer); `SelectNode` copies all tuple ids from its child, but this custom `init()` never computes `hboOperandQualifierMap_`, and the node is not operand-transparent. Its own HBO key reads the child's map directly, so the current Select-over-Join test passes, but HBO-aware parents see `SelectNode.getHboOperandQualifierMap()`, which remains null. An Aggregate, Analytic, or Sort above Select-over-Join therefore loses the `op0`/`op1` qualifiers. If the Select-over-Join subtree is an operand of another Join, the default `buildHboOperandQualifierMap(prefix)` sees multiple tuple ids and can fail the `size() == 1` precondition. Could we make `SelectNode` operand-transparent and call `computeHboOperandQualifierMap(analyzer)` in `init()`? Please add one key test with a parent above Select-over-Join and one with Select-over-Join used as an operand of another Join. -- To view, visit http://gerrit.cloudera.org:8080/24612 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5804f9ebf9e06a4947ea3e11441c63e89c82e036 Gerrit-Change-Number: 24612 Gerrit-PatchSet: 5 Gerrit-Owner: Quanlong Huang <[email protected]> Gerrit-Reviewer: Aleksandr Efimov <[email protected]> Gerrit-Reviewer: Impala Public Jenkins <[email protected]> Gerrit-Reviewer: Quanlong Huang <[email protected]> Gerrit-Comment-Date: Mon, 31 Aug 2026 16:51:54 +0000 Gerrit-HasComments: Yes
