[ 
https://issues.apache.org/jira/browse/TRAFODION-2763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Suresh Subbiah resolved TRAFODION-2763.
---------------------------------------
    Resolution: Fixed

> Left join with non-equi join predicate in ON clause may cause corefiles
> -----------------------------------------------------------------------
>
>                 Key: TRAFODION-2763
>                 URL: https://issues.apache.org/jira/browse/TRAFODION-2763
>             Project: Apache Trafodion
>          Issue Type: Bug
>          Components: sql-exe
>    Affects Versions: 2.1-incubating
>            Reporter: Suresh Subbiah
>            Assignee: Suresh Subbiah
>
> A SELECT query with a left join, that has a non-qui join predicate in ON 
> clause may cause the executor to crash.
> For example this query will cause a corefile
> create table tab2
> (tab2_pk integer not null,
> tab2_nn integer not null,
> tab2_na integer,
> primary key (tab2_pk));
> create table tab3
> (tab3_pk integer not null,
> tab3_nn integer not null,
> tab3_na integer,
> primary key (tab3_pk));
> insert into tab2 values (4,4,4);
> insert into tab2 values (3,3,3);
> insert into tab2 values (6,6,null);
> insert into tab2 values (5,5,5);
> insert into tab3 values (6, 6, null);
> insert into tab3 values (5,5,5);
> insert into tab3 values (7,7,7);
> select tab2_pk, tab3_pk from tab2 left join tab3 on tab2_pk = tab3_pk
> and tab2_pk > 4;
> This is a regression due to pull request 
> https://github.com/apache/incubator-trafodion/pull/1163 which addressed  
> [TRAFODION-2622]. 
> With this change the non-equi join predicate is evaluate before the join is 
> done, if the non-equi predicate is on the outer table alone. However VEG 
> rewrite can cause the predicate tobe rewritten in terms of the inner row. 
> That would cause a crashas the inner row is not available yet.
> The fix is to ensure that the predicate is expressed in terms of the outer 
> table alone, when we know that all conditions are met to make this 
> optimization (evaluating non-equi join predicate for left joins before inner 
> table is read). Thus is similar to what is already done for a left TSJ.
> Existence of this problem can be verified with SHOWPLAN. Prior to the fix the 
> predicate tab2_pk > 4, would be implemented with the column tab3_pk in the 
> beforeJoinPred1_ and beforeJoinPred2_



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to