Skip to content

Commit 81354dd

Browse files
author
David Vrba
committed
spark-28478 small changes after CR
1 parent de84684 commit 81354dd

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/expressions.scala

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -443,11 +443,12 @@ object SimplifyConditionals extends Rule[LogicalPlan] with PredicateHelper {
443443
private def isRedundantNullCheck(
444444
ifNullExpr: Expression,
445445
ifNotNullExpr: Expression,
446-
checkedExpr: Expression): Boolean = ifNotNullExpr match {
447-
case e: NullIntolerant if (
448-
(ifNullExpr == checkedExpr || ifNullExpr == Literal.create(null, checkedExpr.dataType))
449-
&& e.children.contains(checkedExpr)) => true
450-
case _ => false
446+
checkedExpr: Expression): Boolean = {
447+
ifNotNullExpr.isInstanceOf[NullIntolerant] && {
448+
(ifNullExpr.semanticEquals(checkedExpr) ||
449+
(ifNullExpr.foldable && ifNullExpr.eval() == null)) &&
450+
ifNotNullExpr.children.contains(checkedExpr)
451+
}
451452
}
452453

453454
def apply(plan: LogicalPlan): LogicalPlan = plan transform {

sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/SimplifyConditionalSuite.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import org.apache.spark.sql.catalyst.dsl.expressions._
2222
import org.apache.spark.sql.catalyst.dsl.plans._
2323
import org.apache.spark.sql.catalyst.expressions._
2424
import org.apache.spark.sql.catalyst.expressions.Literal.{FalseLiteral, TrueLiteral}
25-
import org.apache.spark.sql.catalyst.plans.{PlanTest}
25+
import org.apache.spark.sql.catalyst.plans.PlanTest
2626
import org.apache.spark.sql.catalyst.plans.logical.{LocalRelation, LogicalPlan, Project}
2727
import org.apache.spark.sql.catalyst.rules.RuleExecutor
2828
import org.apache.spark.sql.types.{IntegerType, NullType}

0 commit comments

Comments
 (0)