From f5399631ca8246e85f3b73d5f60ba1cdaab04ead Mon Sep 17 00:00:00 2001
From: Takuya UESHIN <ueshin@happy-camper.st>
Date: Tue, 27 May 2014 14:53:57 -0700
Subject: [PATCH] [SPARK-1926] [SQL] Nullability of Max/Min/First should be
 true.

Nullability of `Max`/`Min`/`First` should be `true` because they return `null` if there are no rows.

Author: Takuya UESHIN <ueshin@happy-camper.st>

Closes #881 from ueshin/issues/SPARK-1926 and squashes the following commits:

322610f [Takuya UESHIN] Fix nullability of Min/Max/First.

(cherry picked from commit d1375a2bff846f2c4274e14545924646852895f9)
Signed-off-by: Reynold Xin <rxin@apache.org>
---
 .../apache/spark/sql/catalyst/expressions/aggregates.scala  | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/aggregates.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/aggregates.scala
index 79937b129a..b49a4614ea 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/aggregates.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/aggregates.scala
@@ -90,7 +90,7 @@ abstract class AggregateFunction
 
 case class Min(child: Expression) extends PartialAggregate with trees.UnaryNode[Expression] {
   override def references = child.references
-  override def nullable = child.nullable
+  override def nullable = true
   override def dataType = child.dataType
   override def toString = s"MIN($child)"
 
@@ -120,7 +120,7 @@ case class MinFunction(expr: Expression, base: AggregateExpression) extends Aggr
 
 case class Max(child: Expression) extends PartialAggregate with trees.UnaryNode[Expression] {
   override def references = child.references
-  override def nullable = child.nullable
+  override def nullable = true
   override def dataType = child.dataType
   override def toString = s"MAX($child)"
 
@@ -257,7 +257,7 @@ case class SumDistinct(child: Expression)
 
 case class First(child: Expression) extends PartialAggregate with trees.UnaryNode[Expression] {
   override def references = child.references
-  override def nullable = child.nullable
+  override def nullable = true
   override def dataType = child.dataType
   override def toString = s"FIRST($child)"
 
-- 
GitLab