aboutsummaryrefslogtreecommitdiff
path: root/sql/catalyst
diff options
context:
space:
mode:
authorDaoyuan Wang <daoyuan.wang@intel.com>2014-12-11 22:56:42 -0800
committerMichael Armbrust <michael@databricks.com>2014-12-11 22:56:42 -0800
commit41a3f9343831a3efc18e08595d095282a8d1486b (patch)
treeef7068fc8d7813000f405901f4607e8132242b0d /sql/catalyst
parent8091dd62eaff28196dfb9742a4f39182704b1024 (diff)
downloadspark-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/catalyst')
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala1
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) =>