Skip to content

Commit

Permalink
Update Optimizer.scala
Browse files Browse the repository at this point in the history
  • Loading branch information
pzzs committed May 7, 2015
1 parent 14952e2 commit 2e8f6ca
Showing 1 changed file with 5 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -293,11 +293,13 @@ object ConstantFolding extends Rule[LogicalPlan] {
// Fold expressions that are foldable.
case e if e.foldable => Literal.create(e.eval(null), e.dataType)

// Fold "literal in (item1, item2, ..., literal, ...)" into true directly.
case In(Literal(v, _), list) if list.exists {
// Fold "literal in (item1, item2, ..., literal, ...)" into true or false directly.
case In(Literal(v, _), list) =>
val isExists = list.exists {
case Literal(candidate, _) if candidate == v => true
case _ => false
} => Literal.create(true, BooleanType)
}
if (isExists) Literal.create(true, BooleanType) else Literal.create(false, BooleanType)
}
}
}
Expand Down

0 comments on commit 2e8f6ca

Please sign in to comment.