From ea5b5a4dbb3c9406cd472c9f577e6c7acd4eca60 Mon Sep 17 00:00:00 2001 From: Kent Yao Date: Mon, 18 Nov 2019 18:57:56 +0800 Subject: [PATCH] [SPARK-29941][SQL] Add ansi type aliases for char and decimal --- .../org/apache/spark/sql/catalyst/parser/AstBuilder.scala | 8 ++++---- .../spark/sql/catalyst/parser/DataTypeParserSuite.scala | 3 +++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/parser/AstBuilder.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/parser/AstBuilder.scala index 68b1862a5d23..8c8b73d956be 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/parser/AstBuilder.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/parser/AstBuilder.scala @@ -2153,12 +2153,12 @@ class AstBuilder(conf: SQLConf) extends SqlBaseBaseVisitor[AnyRef] with Logging case ("date", Nil) => DateType case ("timestamp", Nil) => TimestampType case ("string", Nil) => StringType - case ("char", length :: Nil) => CharType(length.getText.toInt) + case ("character" | "char", length :: Nil) => CharType(length.getText.toInt) case ("varchar", length :: Nil) => VarcharType(length.getText.toInt) case ("binary", Nil) => BinaryType - case ("decimal", Nil) => DecimalType.USER_DEFAULT - case ("decimal", precision :: Nil) => DecimalType(precision.getText.toInt, 0) - case ("decimal", precision :: scale :: Nil) => + case ("decimal" | "dec", Nil) => DecimalType.USER_DEFAULT + case ("decimal" | "dec", precision :: Nil) => DecimalType(precision.getText.toInt, 0) + case ("decimal" | "dec", precision :: scale :: Nil) => DecimalType(precision.getText.toInt, scale.getText.toInt) case ("interval", Nil) => CalendarIntervalType case (dt, params) => diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/DataTypeParserSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/DataTypeParserSuite.scala index 1a6286067a61..d519fdf37878 100644 --- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/DataTypeParserSuite.scala +++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/DataTypeParserSuite.scala @@ -51,10 +51,13 @@ class DataTypeParserSuite extends SparkFunSuite { checkDataType("dOUBle", DoubleType) checkDataType("decimal(10, 5)", DecimalType(10, 5)) checkDataType("decimal", DecimalType.USER_DEFAULT) + checkDataType("Dec(10, 5)", DecimalType(10, 5)) + checkDataType("deC", DecimalType.USER_DEFAULT) checkDataType("DATE", DateType) checkDataType("timestamp", TimestampType) checkDataType("string", StringType) checkDataType("ChaR(5)", StringType) + checkDataType("ChaRacter(5)", StringType) checkDataType("varchAr(20)", StringType) checkDataType("cHaR(27)", StringType) checkDataType("BINARY", BinaryType)