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

    https://github.com/apache/spark/pull/13343#discussion_r64855963
  
    --- Diff: 
sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLSuite.scala 
---
    @@ -871,6 +879,58 @@ class DDLSuite extends QueryTest with SharedSQLContext 
with BeforeAndAfterEach {
         }
       }
     
    +  private def testSetSerdePartition(isDatasourceTable: Boolean): Unit = {
    +    val catalog = spark.sessionState.catalog
    +    val tableIdent = TableIdentifier("tab1", Some("dbx"))
    +    val spec = Map("a" -> "1", "b" -> "2")
    +    createDatabase(catalog, "dbx")
    +    createTable(catalog, tableIdent)
    +    createTablePartition(catalog, spec, tableIdent)
    +    createTablePartition(catalog, Map("a" -> "1", "b" -> "3"), tableIdent)
    +    createTablePartition(catalog, Map("a" -> "2", "b" -> "2"), tableIdent)
    +    createTablePartition(catalog, Map("a" -> "2", "b" -> "3"), tableIdent)
    +    if (isDatasourceTable) {
    +      convertToDatasourceTable(catalog, tableIdent)
    +    }
    +    assert(catalog.getPartition(tableIdent, spec).storage.serde.isEmpty)
    +    assert(catalog.getPartition(tableIdent, 
spec).storage.serdeProperties.isEmpty)
    +    // set table serde and/or properties (should fail on datasource tables)
    +    if (isDatasourceTable) {
    +      val e1 = intercept[AnalysisException] {
    +        sql("ALTER TABLE dbx.tab1 PARTITION (a=1, b=2) SET SERDE 
'whatever'")
    +      }
    +      val e2 = intercept[AnalysisException] {
    +        sql("ALTER TABLE dbx.tab1 PARTITION (a=1, b=2) SET SERDE 
'org.apache.madoop' " +
    +          "WITH SERDEPROPERTIES ('k' = 'v', 'kay' = 'vee')")
    +      }
    +      assert(e1.getMessage.contains("datasource"))
    +      assert(e2.getMessage.contains("datasource"))
    +    } else {
    +      sql("ALTER TABLE dbx.tab1 PARTITION (a=1, b=2) SET SERDE 
'org.apache.jadoop'")
    +      assert(catalog.getPartition(tableIdent, spec).storage.serde == 
Some("org.apache.jadoop"))
    +      assert(catalog.getPartition(tableIdent, 
spec).storage.serdeProperties.isEmpty)
    +      sql("ALTER TABLE dbx.tab1 PARTITION (a=1, b=2) SET SERDE 
'org.apache.madoop' " +
    +        "WITH SERDEPROPERTIES ('k' = 'v', 'kay' = 'vee')")
    +      assert(catalog.getPartition(tableIdent, spec).storage.serde == 
Some("org.apache.madoop"))
    +      assert(catalog.getPartition(tableIdent, 
spec).storage.serdeProperties ==
    +        Map("k" -> "v", "kay" -> "vee"))
    +    }
    +    // set serde properties only
    +    sql("ALTER TABLE dbx.tab1 PARTITION (a=1, b=2) " +
    +      "SET SERDEPROPERTIES ('k' = 'vvv', 'kay' = 'vee')")
    --- End diff --
    
    right now they do. Should they not?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

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

Reply via email to