Skip to content

Commit

Permalink
Allow PredicatePushDown optimizer to handle NullLiteral from nullInpu…
Browse files Browse the repository at this point in the history
…tEvaluator
  • Loading branch information
erichwang committed Nov 28, 2013
1 parent c3298a9 commit c8e3c08
Showing 1 changed file with 1 addition and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -558,7 +558,7 @@ private boolean canConvertOuterToInner(List<Symbol> innerSymbolsForOuterJoin, Ex
if (DeterminismEvaluator.isDeterministic(conjunct)) {
// Ignore a conjunct for this test if we can not deterministically get responses from it
Object response = nullInputEvaluator(innerSymbols, conjunct);
if (response == null || Boolean.FALSE.equals(response)) {
if (response == null || response instanceof NullLiteral || Boolean.FALSE.equals(response)) {
// If there is a single conjunct that returns FALSE or NULL given all NULL inputs for the inner side symbols of an outer join
// then this conjunct removes all effects of the outer join, and effectively turns this into an equivalent of an inner join.
// So, let's just rewrite this join as an INNER join
Expand Down

0 comments on commit c8e3c08

Please sign in to comment.