aboutsummaryrefslogtreecommitdiff
path: root/sql/core/src/test/scala
diff options
context:
space:
mode:
Diffstat (limited to 'sql/core/src/test/scala')
-rw-r--r--sql/core/src/test/scala/org/apache/spark/sql/SQLCompatibilityFunctionSuite.scala26
1 files changed, 26 insertions, 0 deletions
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/SQLCompatibilityFunctionSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/SQLCompatibilityFunctionSuite.scala
index 1e3239550f..27b60e0d9d 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/SQLCompatibilityFunctionSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/SQLCompatibilityFunctionSuite.scala
@@ -17,10 +17,14 @@
package org.apache.spark.sql
+import java.math.BigDecimal
+import java.sql.Timestamp
+
import org.apache.spark.sql.test.SharedSQLContext
/**
* A test suite for functions added for compatibility with other databases such as Oracle, MSSQL.
+ *
* These functions are typically implemented using the trait
* [[org.apache.spark.sql.catalyst.expressions.RuntimeReplaceable]].
*/
@@ -69,4 +73,26 @@ class SQLCompatibilityFunctionSuite extends QueryTest with SharedSQLContext {
sql("SELECT nvl2(null, 1, 2.1d), nvl2('n', 1, 2.1d)"),
Row(2.1, 1.0))
}
+
+ test("SPARK-16730 cast alias functions for Hive compatibility") {
+ checkAnswer(
+ sql("SELECT boolean(1), tinyint(1), smallint(1), int(1), bigint(1)"),
+ Row(true, 1.toByte, 1.toShort, 1, 1L))
+
+ checkAnswer(
+ sql("SELECT float(1), double(1), decimal(1)"),
+ Row(1.toFloat, 1.0, new BigDecimal(1)))
+
+ checkAnswer(
+ sql("SELECT date(\"2014-04-04\"), timestamp(date(\"2014-04-04\"))"),
+ Row(new java.util.Date(114, 3, 4), new Timestamp(114, 3, 4, 0, 0, 0, 0)))
+
+ checkAnswer(
+ sql("SELECT string(1)"),
+ Row("1"))
+
+ // Error handling: only one argument
+ val errorMsg = intercept[AnalysisException](sql("SELECT string(1, 2)")).getMessage
+ assert(errorMsg.contains("Function string accepts only one argument"))
+ }
}