From 7c7b503f88e0c74e324ef4b2da99f70d2e677a42 Mon Sep 17 00:00:00 2001 From: jayadevanmurali Date: Wed, 3 Feb 2016 20:01:42 +0530 Subject: [PATCH 1/6] Update SQLContext.scala Add table name validation in temp table registration --- sql/core/src/main/scala/org/apache/spark/sql/SQLContext.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/core/src/main/scala/org/apache/spark/sql/SQLContext.scala b/sql/core/src/main/scala/org/apache/spark/sql/SQLContext.scala index be28df3a51557..8246165641a93 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/SQLContext.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/SQLContext.scala @@ -722,7 +722,7 @@ class SQLContext private[sql]( * only during the lifetime of this instance of SQLContext. */ private[sql] def registerDataFrameAsTable(df: DataFrame, tableName: String): Unit = { - catalog.registerTable(TableIdentifier(tableName), df.logicalPlan) + catalog.registerTable(sqlParser.parseTableIdentifier(tableName), df.logicalPlan) } /** From 3407fd785ae1c6c52607c96fb084617f2acd3e46 Mon Sep 17 00:00:00 2001 From: jayadevanmurali Date: Wed, 3 Feb 2016 20:03:46 +0530 Subject: [PATCH 2/6] Update DataFrameSuite.scala Added test case for validating table name --- .../scala/org/apache/spark/sql/DataFrameSuite.scala | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala index 4ff99bdf2937d..986de04fc44eb 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala @@ -1291,4 +1291,14 @@ class DataFrameSuite extends QueryTest with SharedSQLContext { Seq(1 -> "a").toDF("i", "j").filter($"i".cast(StringType) === "1"), Row(1, "a")) } + + test("SPARK-12982: Add table name validation in temp table registration") { + val rows = List(Row("foo"), Row("bar")) + val schema = StructType(Seq(StructField("col", StringType))) + val rdd = sparkContext.parallelize(rows) + val df = sqlContext.createDataFrame(rdd, schema) + assert(intercept[AnalysisException](df.registerTempTable("t~")) + .getMessage.contains("NoViableAltException")) + } + } From 4c25f2ec2778201b244d79c3531f567341840614 Mon Sep 17 00:00:00 2001 From: jayadevanmurali Date: Thu, 4 Feb 2016 23:14:04 +0530 Subject: [PATCH 3/6] Update DataFrameSuite.scala Removed extra white space. --- .../test/scala/org/apache/spark/sql/DataFrameSuite.scala | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala index 986de04fc44eb..706bb69eb08b6 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala @@ -1291,14 +1291,12 @@ class DataFrameSuite extends QueryTest with SharedSQLContext { Seq(1 -> "a").toDF("i", "j").filter($"i".cast(StringType) === "1"), Row(1, "a")) } - + test("SPARK-12982: Add table name validation in temp table registration") { val rows = List(Row("foo"), Row("bar")) val schema = StructType(Seq(StructField("col", StringType))) val rdd = sparkContext.parallelize(rows) val df = sqlContext.createDataFrame(rdd, schema) - assert(intercept[AnalysisException](df.registerTempTable("t~")) - .getMessage.contains("NoViableAltException")) + intercept[AnalysisException](df.registerTempTable("t~")) } - } From a9e3b326874fe85ab4f61748b509bdf4925ce4de Mon Sep 17 00:00:00 2001 From: jayadevanmurali Date: Mon, 8 Feb 2016 14:27:54 +0530 Subject: [PATCH 4/6] Update DataFrameSuite.scala Modified test case by including more valid and invalid table names --- .../test/scala/org/apache/spark/sql/DataFrameSuite.scala | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala index 706bb69eb08b6..d970d4354ca45 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala @@ -1297,6 +1297,13 @@ class DataFrameSuite extends QueryTest with SharedSQLContext { val schema = StructType(Seq(StructField("col", StringType))) val rdd = sparkContext.parallelize(rows) val df = sqlContext.createDataFrame(rdd, schema) + //invalid table name test as below intercept[AnalysisException](df.registerTempTable("t~")) + //valid table name test as below + df.registerTempTable("table1") + //another invalid table name test as below + intercept[AnalysisException](df.registerTempTable("#$@sum")) + //another invalid table name test as below + intercept[AnalysisException](df.registerTempTable("table!#")) } } From d5764967977d67eeeccd38b4f516a20193b31c16 Mon Sep 17 00:00:00 2001 From: jayadevanmurali Date: Mon, 8 Feb 2016 14:51:23 +0530 Subject: [PATCH 5/6] Update DataFrameSuite.scala Incorporated review comments, Make the code more concise --- .../src/test/scala/org/apache/spark/sql/DataFrameSuite.scala | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala index d970d4354ca45..1f4cb57ef0e6c 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala @@ -1293,10 +1293,7 @@ class DataFrameSuite extends QueryTest with SharedSQLContext { } test("SPARK-12982: Add table name validation in temp table registration") { - val rows = List(Row("foo"), Row("bar")) - val schema = StructType(Seq(StructField("col", StringType))) - val rdd = sparkContext.parallelize(rows) - val df = sqlContext.createDataFrame(rdd, schema) + val df = Seq("foo", "bar").map(Tuple1.apply).toDF("col") //invalid table name test as below intercept[AnalysisException](df.registerTempTable("t~")) //valid table name test as below From f3c7bbbf2defcb42208ff9f25db07ffa60d4889f Mon Sep 17 00:00:00 2001 From: jayadevanmurali Date: Tue, 9 Feb 2016 09:46:15 +0530 Subject: [PATCH 6/6] Update DataFrameSuite.scala Insert one white space at the beginning of the comment. --- .../test/scala/org/apache/spark/sql/DataFrameSuite.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala index 1f4cb57ef0e6c..2260145668aae 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala @@ -1294,13 +1294,13 @@ class DataFrameSuite extends QueryTest with SharedSQLContext { test("SPARK-12982: Add table name validation in temp table registration") { val df = Seq("foo", "bar").map(Tuple1.apply).toDF("col") - //invalid table name test as below + // invalid table name test as below intercept[AnalysisException](df.registerTempTable("t~")) - //valid table name test as below + // valid table name test as below df.registerTempTable("table1") - //another invalid table name test as below + // another invalid table name test as below intercept[AnalysisException](df.registerTempTable("#$@sum")) - //another invalid table name test as below + // another invalid table name test as below intercept[AnalysisException](df.registerTempTable("table!#")) } }