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

Hans Zeller updated TRAFODION-2616:
-----------------------------------
    Description: 
The fix for TRAFODION-2569 caused a regression with nested joins on salted 
tables: If the salted table ends up as the inner table of a join, we omit 
computed predicates on the salt column. A similar problem where the join 
predicate is missing from the key can also happen to any table, salted or  
non-salted.

The problem happened when I removed the call to removeIndexInfo in file 
memo.cpp. The FilterRule0 code called Scan::copyIndexInfo(), which is not 
correct when pushing predicates into a scan node, because additional indexes 
could become interesting.

The "kludge" in memo.cpp compensated for this by calling removeIndexInfo(), 
then calling addIndexInfo(). A better way is probably to call addIndexInfo() in 
the first place in the filter rule.

Also, method copyIndexInfo should copy the computed predicates, since the only 
place where they are computed is in addIndexInfo().

I probably still won't be able to remove the "kludge" in memo.cpp.

  was:
The fix for TRAFODION-2569 caused a regression with nested joins on salted 
tables: If the salted table ends up as the inner table of a join, we omit 
computed predicates on the salt column.

The problem happened when I removed the call to removeIndexInfo in file 
memo.cpp. The FilterRule0 code called Scan::copyIndexInfo(), which is not 
correct when pushing predicates into a scan node, because additional indexes 
could become interesting.

The "kludge" in memo.cpp compensated for this by calling removeIndexInfo(), 
then calling addIndexInfo(). A better way is probably to call addIndexInfo() in 
the first place in the filter rule.

Also, method copyIndexInfo should copy the computed predicates, since the only 
place where they are computed is in addIndexInfo().

I probably still won't be able to remove the "kludge" in memo.cpp.


> Nested join regression after fix for TRAFODION-2569
> ---------------------------------------------------
>
>                 Key: TRAFODION-2616
>                 URL: https://issues.apache.org/jira/browse/TRAFODION-2616
>             Project: Apache Trafodion
>          Issue Type: Bug
>          Components: sql-cmp
>    Affects Versions: 2.2-incubating
>            Reporter: Hans Zeller
>            Assignee: Hans Zeller
>             Fix For: 2.2-incubating
>
>
> The fix for TRAFODION-2569 caused a regression with nested joins on salted 
> tables: If the salted table ends up as the inner table of a join, we omit 
> computed predicates on the salt column. A similar problem where the join 
> predicate is missing from the key can also happen to any table, salted or  
> non-salted.
> The problem happened when I removed the call to removeIndexInfo in file 
> memo.cpp. The FilterRule0 code called Scan::copyIndexInfo(), which is not 
> correct when pushing predicates into a scan node, because additional indexes 
> could become interesting.
> The "kludge" in memo.cpp compensated for this by calling removeIndexInfo(), 
> then calling addIndexInfo(). A better way is probably to call addIndexInfo() 
> in the first place in the filter rule.
> Also, method copyIndexInfo should copy the computed predicates, since the 
> only place where they are computed is in addIndexInfo().
> I probably still won't be able to remove the "kludge" in memo.cpp.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to