You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@impala.apache.org by "Jian Zhang (Code Review)" <ge...@cloudera.org> on 2022/09/21 06:14:55 UTC

[Impala-ASF-CR] IMPALA-11417: Support outer join elimination optimization

Hello Impala Public Jenkins, 

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/18705

to look at the new patch set (#5).

Change subject: IMPALA-11417: Support outer join elimination optimization
......................................................................

IMPALA-11417: Support outer join elimination optimization

When two tables are outer joined but only fields from the outer side
table are used and the join key of the inner side table is guaranteed to
be unique, the query can be simplified to only scan the outer table:

    drop table if exists t;
    drop table if exists s;
    create table t(sid bigint, value bigint);
    create table s(id bigint, value bigint, primary key(id));

    -- the test SQL:
    select t.* from t left join s on t.sid = s.id;

The above query can be simplified to:

    select t.* from t;

This optimization utilizes the primary key constraint when creating join
nodes, eliminates the inner side when the join key on inner side is the
primary key and only the slots from the outer side are used by the
parent.

Change-Id: If2e68263a029ac84a4f35b0846b22aa42d7ceece
Signed-off-by: Jian Zhang <zj...@gmail.com>
---
M fe/src/main/java/org/apache/impala/analysis/AggregateInfo.java
M fe/src/main/java/org/apache/impala/analysis/AnalyticInfo.java
M fe/src/main/java/org/apache/impala/analysis/Analyzer.java
M fe/src/main/java/org/apache/impala/analysis/DescriptorTable.java
M fe/src/main/java/org/apache/impala/analysis/SlotDescriptor.java
M fe/src/main/java/org/apache/impala/analysis/SortInfo.java
M fe/src/main/java/org/apache/impala/planner/DataSourceScanNode.java
M fe/src/main/java/org/apache/impala/planner/HBaseScanNode.java
M fe/src/main/java/org/apache/impala/planner/HdfsScanNode.java
M fe/src/main/java/org/apache/impala/planner/JoinNode.java
M fe/src/main/java/org/apache/impala/planner/KuduScanNode.java
M fe/src/main/java/org/apache/impala/planner/SingleNodePlanner.java
M fe/src/main/java/org/apache/impala/planner/UnnestNode.java
13 files changed, 103 insertions(+), 18 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/05/18705/5
-- 
To view, visit http://gerrit.cloudera.org:8080/18705
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: If2e68263a029ac84a4f35b0846b22aa42d7ceece
Gerrit-Change-Number: 18705
Gerrit-PatchSet: 5
Gerrit-Owner: Jian Zhang <zj...@gmail.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>