spark git commit: [SPARK-17884][SQL] To resolve Null pointer exception when casting from empty string to interval type

2016-10-14 Thread rxin
Repository: spark
Updated Branches:
  refs/heads/branch-1.6 18b173cfc -> 745c5e70f


[SPARK-17884][SQL] To resolve Null pointer exception when casting from  empty 
string to interval type

## What changes were proposed in this pull request?
This change adds a check in castToInterval method of Cast expression , such 
that if converted value is null , then isNull variable should be set to true.

Earlier, the expression Cast(Literal(), CalendarIntervalType) was throwing 
NullPointerException because of the above mentioned reason.

## How was this patch tested?
Added test case in CastSuite.scala

jira entry for detail: https://issues.apache.org/jira/browse/SPARK-17884

Author: prigarg 

Closes #15479 from priyankagargnitk/cast_empty_string_bug.


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/745c5e70
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/745c5e70
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/745c5e70

Branch: refs/heads/branch-1.6
Commit: 745c5e70fb4be0cdd3006e88dbf3ba42d729e421
Parents: 18b173c
Author: prigarg 
Authored: Fri Oct 14 11:28:16 2016 -0700
Committer: Reynold Xin 
Committed: Fri Oct 14 11:28:16 2016 -0700

--
 .../org/apache/spark/sql/catalyst/expressions/Cast.scala  | 7 ++-
 .../org/apache/spark/sql/catalyst/expressions/CastSuite.scala | 1 +
 2 files changed, 7 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/spark/blob/745c5e70/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
--
diff --git 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
index c53e84d..f35be3d 100644
--- 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
+++ 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
@@ -656,7 +656,12 @@ case class Cast(child: Expression, dataType: DataType)
   private[this] def castToIntervalCode(from: DataType): CastFunction = from 
match {
 case StringType =>
   (c, evPrim, evNull) =>
-s"$evPrim = CalendarInterval.fromString($c.toString());"
+s"""$evPrim = CalendarInterval.fromString($c.toString());
+   if(${evPrim} == null) {
+ ${evNull} = true;
+   }
+ """.stripMargin
+
   }
 
   private[this] def decimalToTimestampCode(d: String): String =

http://git-wip-us.apache.org/repos/asf/spark/blob/745c5e70/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala
--
diff --git 
a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala
 
b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala
index ab77a76..9a6aaff 100644
--- 
a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala
+++ 
b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala
@@ -764,6 +764,7 @@ class CastSuite extends SparkFunSuite with 
ExpressionEvalHelper {
   test("cast between string and interval") {
 import org.apache.spark.unsafe.types.CalendarInterval
 
+checkEvaluation(Cast(Literal(""), CalendarIntervalType), null)
 checkEvaluation(Cast(Literal("interval -3 month 7 hours"), 
CalendarIntervalType),
   new CalendarInterval(-3, 7 * CalendarInterval.MICROS_PER_HOUR))
 checkEvaluation(Cast(Literal.create(


-
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org



spark git commit: [SPARK-17884][SQL] To resolve Null pointer exception when casting from empty string to interval type.

2016-10-12 Thread rxin
Repository: spark
Updated Branches:
  refs/heads/branch-2.0 4dcbde48d -> 5451541d1


[SPARK-17884][SQL] To resolve Null pointer exception when casting from empty 
string to interval type.

## What changes were proposed in this pull request?
This change adds a check in castToInterval method of Cast expression , such 
that if converted value is null , then isNull variable should be set to true.

Earlier, the expression Cast(Literal(), CalendarIntervalType) was throwing 
NullPointerException because of the above mentioned reason.

## How was this patch tested?
Added test case in CastSuite.scala

jira entry for detail: https://issues.apache.org/jira/browse/SPARK-17884

Author: prigarg 

Closes #15449 from priyankagargnitk/SPARK-17884.

(cherry picked from commit d5580ebaa086b9feb72d5428f24c5b60cd7da745)
Signed-off-by: Reynold Xin 


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/5451541d
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/5451541d
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/5451541d

Branch: refs/heads/branch-2.0
Commit: 5451541d1113aa75bab80914ca51a913f6ba4753
Parents: 4dcbde4
Author: prigarg 
Authored: Wed Oct 12 10:14:45 2016 -0700
Committer: Reynold Xin 
Committed: Wed Oct 12 10:14:55 2016 -0700

--
 .../org/apache/spark/sql/catalyst/expressions/Cast.scala  | 7 ++-
 .../org/apache/spark/sql/catalyst/expressions/CastSuite.scala | 1 +
 2 files changed, 7 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/spark/blob/5451541d/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
--
diff --git 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
index 70fff51..a53468c 100644
--- 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
+++ 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
@@ -657,7 +657,12 @@ case class Cast(child: Expression, dataType: DataType) 
extends UnaryExpression w
   private[this] def castToIntervalCode(from: DataType): CastFunction = from 
match {
 case StringType =>
   (c, evPrim, evNull) =>
-s"$evPrim = CalendarInterval.fromString($c.toString());"
+s"""$evPrim = CalendarInterval.fromString($c.toString());
+   if(${evPrim} == null) {
+ ${evNull} = true;
+   }
+ """.stripMargin
+
   }
 
   private[this] def decimalToTimestampCode(d: String): String =

http://git-wip-us.apache.org/repos/asf/spark/blob/5451541d/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala
--
diff --git 
a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala
 
b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala
index 5c35baa..b748595 100644
--- 
a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala
+++ 
b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala
@@ -767,6 +767,7 @@ class CastSuite extends SparkFunSuite with 
ExpressionEvalHelper {
   test("cast between string and interval") {
 import org.apache.spark.unsafe.types.CalendarInterval
 
+checkEvaluation(Cast(Literal(""), CalendarIntervalType), null)
 checkEvaluation(Cast(Literal("interval -3 month 7 hours"), 
CalendarIntervalType),
   new CalendarInterval(-3, 7 * CalendarInterval.MICROS_PER_HOUR))
 checkEvaluation(Cast(Literal.create(


-
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org



spark git commit: [SPARK-17884][SQL] To resolve Null pointer exception when casting from empty string to interval type.

2016-10-12 Thread rxin
Repository: spark
Updated Branches:
  refs/heads/master 8880fd13e -> d5580ebaa


[SPARK-17884][SQL] To resolve Null pointer exception when casting from empty 
string to interval type.

## What changes were proposed in this pull request?
This change adds a check in castToInterval method of Cast expression , such 
that if converted value is null , then isNull variable should be set to true.

Earlier, the expression Cast(Literal(), CalendarIntervalType) was throwing 
NullPointerException because of the above mentioned reason.

## How was this patch tested?
Added test case in CastSuite.scala

jira entry for detail: https://issues.apache.org/jira/browse/SPARK-17884

Author: prigarg 

Closes #15449 from priyankagargnitk/SPARK-17884.


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/d5580eba
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/d5580eba
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/d5580eba

Branch: refs/heads/master
Commit: d5580ebaa086b9feb72d5428f24c5b60cd7da745
Parents: 8880fd1
Author: prigarg 
Authored: Wed Oct 12 10:14:45 2016 -0700
Committer: Reynold Xin 
Committed: Wed Oct 12 10:14:45 2016 -0700

--
 .../org/apache/spark/sql/catalyst/expressions/Cast.scala  | 7 ++-
 .../org/apache/spark/sql/catalyst/expressions/CastSuite.scala | 1 +
 2 files changed, 7 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/spark/blob/d5580eba/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
--
diff --git 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
index 1314c41..58fd65f 100644
--- 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
+++ 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
@@ -657,7 +657,12 @@ case class Cast(child: Expression, dataType: DataType) 
extends UnaryExpression w
   private[this] def castToIntervalCode(from: DataType): CastFunction = from 
match {
 case StringType =>
   (c, evPrim, evNull) =>
-s"$evPrim = CalendarInterval.fromString($c.toString());"
+s"""$evPrim = CalendarInterval.fromString($c.toString());
+   if(${evPrim} == null) {
+ ${evNull} = true;
+   }
+ """.stripMargin
+
   }
 
   private[this] def decimalToTimestampCode(d: String): String =

http://git-wip-us.apache.org/repos/asf/spark/blob/d5580eba/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala
--
diff --git 
a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala
 
b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala
index 5c35baa..b748595 100644
--- 
a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala
+++ 
b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala
@@ -767,6 +767,7 @@ class CastSuite extends SparkFunSuite with 
ExpressionEvalHelper {
   test("cast between string and interval") {
 import org.apache.spark.unsafe.types.CalendarInterval
 
+checkEvaluation(Cast(Literal(""), CalendarIntervalType), null)
 checkEvaluation(Cast(Literal("interval -3 month 7 hours"), 
CalendarIntervalType),
   new CalendarInterval(-3, 7 * CalendarInterval.MICROS_PER_HOUR))
 checkEvaluation(Cast(Literal.create(


-
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org