From 6d9ec95f972ae15ab088fcec9cc0ba019ef2b62a Mon Sep 17 00:00:00 2001 From: wangfei Date: Tue, 30 Dec 2014 14:26:32 +0800 Subject: [PATCH] support as string literal in spark sql parser --- .../main/scala/org/apache/spark/sql/catalyst/SqlParser.scala | 2 +- .../src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala index d4fc9bbfd3118..6279ab9d19d1f 100755 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala @@ -162,7 +162,7 @@ class SqlParser extends AbstractSparkSQLParser { } protected lazy val projection: Parser[Expression] = - expression ~ (AS.? ~> ident.?) ^^ { + expression ~ (AS.? ~> (ident | stringLit).?) ^^ { case e ~ a => a.fold(e)(Alias(e, _)()) } diff --git a/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala index ddf4776ecf7ae..ff6ebe7484021 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala @@ -1005,4 +1005,8 @@ class SQLQuerySuite extends QueryTest with BeforeAndAfterAll { rdd.registerTempTable("distinctData") checkAnswer(sql("SELECT COUNT(DISTINCT key,value) FROM distinctData"), 2) } + + test("support alias field as string literal") { + assert(sql("select key , value as 'vvv' from testData").count == 100) + } }