diff options
author | Daoyuan Wang <daoyuan.wang@intel.com> | 2014-12-11 22:56:42 -0800 |
---|---|---|
committer | Michael Armbrust <michael@databricks.com> | 2014-12-11 22:56:42 -0800 |
commit | 41a3f9343831a3efc18e08595d095282a8d1486b (patch) | |
tree | ef7068fc8d7813000f405901f4607e8132242b0d /sql | |
parent | 8091dd62eaff28196dfb9742a4f39182704b1024 (diff) | |
download | spark-41a3f9343831a3efc18e08595d095282a8d1486b.tar.gz spark-41a3f9343831a3efc18e08595d095282a8d1486b.tar.bz2 spark-41a3f9343831a3efc18e08595d095282a8d1486b.zip |
[SPARK-4829] [SQL] add rule to fold count(expr) if expr is not null
Author: Daoyuan Wang <daoyuan.wang@intel.com>
Closes #3676 from adrian-wang/countexpr and squashes the following commits:
dc5765b [Daoyuan Wang] add rule to fold count(expr) if expr is not null
Diffstat (limited to 'sql')
-rw-r--r-- | sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala | 1 |
1 files changed, 1 insertions, 0 deletions
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 c492348959..806c1394eb 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 @@ -210,6 +210,7 @@ object NullPropagation extends Rule[LogicalPlan] { case e @ GetField(Literal(null, _), _) => Literal(null, e.dataType) case e @ EqualNullSafe(Literal(null, _), r) => IsNull(r) case e @ EqualNullSafe(l, Literal(null, _)) => IsNull(l) + case e @ Count(expr) if !expr.nullable => Count(Literal(1)) // For Coalesce, remove null literals. case e @ Coalesce(children) => |