Github user rdblue commented on a diff in the pull request:

    https://github.com/apache/spark/pull/21911#discussion_r206741523
  
    --- Diff: 
sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/PlanParserSuite.scala
 ---
    @@ -660,6 +660,62 @@ class PlanParserSuite extends AnalysisTest {
         )
       }
     
    +  test ("insert hint syntax") {
    +    assertEqual(
    +      "INSERT INTO s /*+ COALESCE(10) */ SELECT * FROM t",
    +      InsertIntoTable(table("s"), Map.empty,
    +        UnresolvedHint("COALESCE", Seq(Literal(10)),
    +          table("t").select(star())), false, false))
    +    assertEqual(
    +      "INSERT INTO TABLE s /*+ COALESCE(50, true) */ SELECT * FROM t",
    +      InsertIntoTable(table("s"), Map.empty,
    +        UnresolvedHint("COALESCE", Seq(Literal(50), Literal(true)),
    +          table("t").select(star())), false, false))
    +    assertEqual(
    +      "INSERT INTO s /*+ REPARTITION(100) */ SELECT * FROM t",
    +      InsertIntoTable(table("s"), Map.empty,
    +        UnresolvedHint("REPARTITION", Seq(Literal(100)),
    +          table("t").select(star())), false, false))
    +    assertEqual(
    +      "INSERT INTO TABLE s /*+ REPARTITION(20, false) */ SELECT * FROM t",
    +      InsertIntoTable(table("s"), Map.empty,
    +        UnresolvedHint("REPARTITION", Seq(Literal(20), Literal(false)),
    +          table("t").select(star())), false, false))
    +    assertEqual(
    +      "INSERT OVERWRITE TABLE s /*+ COALESCE(10) */ SELECT * FROM t",
    +      InsertIntoTable(table("s"), Map.empty,
    +        UnresolvedHint("COALESCE", Seq(Literal(10)),
    +          table("t").select(star())), true, false))
    +    assertEqual(
    +      "INSERT OVERWRITE TABLE s /*+ COALESCE(50, true) */ SELECT * FROM t",
    +      InsertIntoTable(table("s"), Map.empty,
    +        UnresolvedHint("COALESCE", Seq(Literal(50), Literal(true)),
    +          table("t").select(star())), true, false))
    +    assertEqual(
    +      "INSERT OVERWRITE TABLE s /*+ REPARTITION(100) */ SELECT * FROM t",
    +      InsertIntoTable(table("s"), Map.empty,
    +        UnresolvedHint("REPARTITION", Seq(Literal(100)),
    +          table("t").select(star())), true, false))
    +    assertEqual(
    +      "INSERT OVERWRITE TABLE s /*+ REPARTITION(20, false) */ SELECT * 
FROM t",
    +      InsertIntoTable(table("s"), Map.empty,
    +        UnresolvedHint("REPARTITION", Seq(Literal(20), Literal(false)),
    +          table("t").select(star())), true, false))
    +
    +    // Multiple hints
    +    assertEqual(
    +      "INSERT INTO s /*+ REPARTITION(100), COALESCE(50, true), 
COALESCE(10) */ SELECT * FROM t",
    +      InsertIntoTable(table("s"), Map.empty,
    +        UnresolvedHint("REPARTITION", Seq(Literal(100)),
    +          UnresolvedHint("COALESCE", Seq(Literal(50), Literal(true)),
    +            UnresolvedHint("COALESCE", Seq(Literal(10)),
    +              table("t").select(star())))), false, false))
    +
    +    // Wrong hint location
    +    intercept("INSERT INTO /*+ COALESCE(10) */ s SELECT * FROM t",
    +      "extraneous input '/*+' expecting")
    --- End diff --
    
    I don't think it is necessary to test the wrong hint location because there 
are so many wrong hint locations and the error is just a generic parse error. 
If there were a friendly error message, that would be worth a test case.


---

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

Reply via email to