From 919492ee6095a007077119a11425abd7f08b02f6 Mon Sep 17 00:00:00 2001 From: Yuming Wang Date: Thu, 28 Oct 2021 14:59:44 +0800 Subject: [PATCH] nullability --- .../org/apache/spark/sql/catalyst/optimizer/Optimizer.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala index 68834e76233be..4c41042c53853 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala @@ -1218,6 +1218,7 @@ object InferFiltersFromConstraints extends Rule[LogicalPlan] // Whether the result of this expression may be null. For example: CAST(strCol AS double) // We will infer an IsNotNull expression for this expression to avoid skew join. private def resultMayBeNull(exp: Expression): Boolean = exp match { + case e if !e.nullable => false case Cast(child: Attribute, dataType, _, _) => !Cast.canUpCast(child.dataType, dataType) case c: Coalesce if c.children.forall(_.isInstanceOf[Attribute]) => true case _ => false