maropu commented on a change in pull request #28807:
URL: https://github.com/apache/spark/pull/28807#discussion_r439702584



##########
File path: 
sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/TableIdentifierParserSuite.scala
##########
@@ -388,12 +391,24 @@ class TableIdentifierParserSuite extends SparkFunSuite 
with SQLHelper {
   val reservedKeywordsInAnsiMode = allCandidateKeywords -- 
nonReservedKeywordsInAnsiMode
 
   test("check # of reserved keywords") {
-    val numReservedKeywords = 78
+    val numReservedKeywords = 75
     assert(reservedKeywordsInAnsiMode.size == numReservedKeywords,
       s"The expected number of reserved keywords is $numReservedKeywords, but 
" +
         s"${reservedKeywordsInAnsiMode.size} found.")
   }
 
+  test("should follow reserved keywords in SQL:2016") {
+    withTempDir { dir =>
+      val tmpFile = new File(dir, "tmp")
+      val is = Thread.currentThread().getContextClassLoader
+        .getResourceAsStream("ansi-sql-2016-reserved-keywords.txt")
+      Files.copy(is, tmpFile.toPath)
+      val reservedKeywordsInSql2016 = Files.readAllLines(tmpFile.toPath)
+        .asScala.filterNot(_.startsWith("--")).map(_.trim).toSet
+      assert(((reservedKeywordsInAnsiMode -- Set("!")) -- 
reservedKeywordsInSql2016).isEmpty)

Review comment:
       I noticed that, since `NOT` reserved, `!` also reserved, too. (`NOT: 
'NOT' | '!';`);
   ```
   scala> sql("SET spark.sql.ansi.enabled=false")
   scala> spark.sql("create table r2 (! int);")
   res2: org.apache.spark.sql.DataFrame = []
   
   scala> sql("SET spark.sql.ansi.enabled=true")
   scala> spark.sql("create table r2 (! int);")
   org.apache.spark.sql.catalyst.parser.ParseException:
   no viable alternative at input '!'(line 1, pos 17)
   == SQL ==
   create table r2 (! int);
   -----------------^^^
   ```
   @cloud-fan Is this expected? FYI: It seems PostgreSQL cannot accept `!` in 
column names;
   ```
   postgres=# create table r2 (! int);
   2020-06-13 11:30:24.495 JST [36406] ERROR:  syntax error at or near "!" at 
character 18
   2020-06-13 11:30:24.495 JST [36406] STATEMENT:  create table r2 (! int);
   ERROR:  syntax error at or near "!"
   LINE 1: create table r2 (! int);
   ```




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to