aboutsummaryrefslogtreecommitdiff
path: root/sql/catalyst
diff options
context:
space:
mode:
authorTakuya UESHIN <ueshin@happy-camper.st>2014-06-05 12:00:31 -0700
committerMichael Armbrust <michael@databricks.com>2014-06-05 12:00:31 -0700
commite4c11eef2f64df0b6a432f40b669486d91ca6352 (patch)
treee37a9e5d1d19bda9d31d1e37b75eb41f08df5c38 /sql/catalyst
parent89cdbb087cb2f0d03be2dd77440300c6bd61c792 (diff)
downloadspark-e4c11eef2f64df0b6a432f40b669486d91ca6352.tar.gz
spark-e4c11eef2f64df0b6a432f40b669486d91ca6352.tar.bz2
spark-e4c11eef2f64df0b6a432f40b669486d91ca6352.zip
[SPARK-2036] [SQL] CaseConversionExpression should check if the evaluated value is null.
`CaseConversionExpression` should check if the evaluated value is `null`. Author: Takuya UESHIN <ueshin@happy-camper.st> Closes #982 from ueshin/issues/SPARK-2036 and squashes the following commits: 61e1c54 [Takuya UESHIN] Add check if the evaluated value is null.
Diffstat (limited to 'sql/catalyst')
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/stringOperations.scala8
1 files changed, 6 insertions, 2 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/stringOperations.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/stringOperations.scala
index dcded07741..4203034084 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/stringOperations.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/stringOperations.scala
@@ -81,8 +81,12 @@ trait CaseConversionExpression {
def dataType: DataType = StringType
override def eval(input: Row): Any = {
- val converted = child.eval(input)
- convert(converted.toString)
+ val evaluated = child.eval(input)
+ if (evaluated == null) {
+ null
+ } else {
+ convert(evaluated.toString)
+ }
}
}