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

    https://github.com/apache/spark/pull/19148#discussion_r137704429
  
    --- Diff: 
sql/hive/src/test/scala/org/apache/spark/sql/hive/HiveExternalCatalogVersionsSuite.scala
 ---
    @@ -0,0 +1,194 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one or more
    + * contributor license agreements.  See the NOTICE file distributed with
    + * this work for additional information regarding copyright ownership.
    + * The ASF licenses this file to You under the Apache License, Version 2.0
    + * (the "License"); you may not use this file except in compliance with
    + * the License.  You may obtain a copy of the License at
    + *
    + *    http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +package org.apache.spark.sql.hive
    +
    +import java.io.File
    +import java.nio.file.Files
    +
    +import org.apache.spark.TestUtils
    +import org.apache.spark.sql.{QueryTest, Row, SparkSession}
    +import org.apache.spark.sql.catalyst.TableIdentifier
    +import org.apache.spark.sql.catalyst.catalog.CatalogTableType
    +import org.apache.spark.sql.test.SQLTestUtils
    +import org.apache.spark.util.Utils
    +
    +/**
    + * Test HiveExternalCatalog backward compatibility.
    + *
    + * Note that, this test suite will automatically download spark binary 
packages of different
    + * versions to a local directory `/tmp/spark-test`. If there is already a 
spark folder with
    + * expected version under this local directory, e.g. 
`/tmp/spark-test/spark-2.0.3`, we will skip the
    + * downloading for this spark version.
    + */
    +class HiveExternalCatalogVersionsSuite extends SparkSubmitTestUtils {
    +  private val wareHousePath = Utils.createTempDir(namePrefix = "warehouse")
    +  private val tmpDataDir = Utils.createTempDir(namePrefix = "test-data")
    +  private val sparkTestingDir = "/tmp/spark-test"
    +  private val unusedJar = TestUtils.createJarWithClasses(Seq.empty)
    +
    +  override def afterAll(): Unit = {
    +    Utils.deleteRecursively(wareHousePath)
    +    Utils.deleteRecursively(tmpDataDir)
    +    super.afterAll()
    +  }
    +
    +  private def downloadSpark(version: String): Unit = {
    +    import scala.sys.process._
    +
    +    val url = 
s"https://d3kbcqa49mib13.cloudfront.net/spark-$version-bin-hadoop2.7.tgz";
    +
    +    Seq("wget", url, "-q", "-P", sparkTestingDir).!
    +
    +    val downloaded = new File(sparkTestingDir, 
s"spark-$version-bin-hadoop2.7.tgz").getCanonicalPath
    +    val targetDir = new File(sparkTestingDir, 
s"spark-$version").getCanonicalPath
    +
    +    Seq("mkdir", targetDir).!
    +
    +    Seq("tar", "-xzf", downloaded, "-C", targetDir, 
"--strip-components=1").!
    +
    +    Seq("rm", downloaded).!
    +  }
    +
    +  private def genDataDir(name: String): String = {
    +    new File(tmpDataDir, name).getCanonicalPath
    +  }
    +
    +  override def beforeAll(): Unit = {
    +    super.beforeAll()
    +
    +    val tempPyFile = File.createTempFile("test", ".py")
    +    Files.write(tempPyFile.toPath,
    +      s"""
    +        |from pyspark.sql import SparkSession
    +        |
    +        |spark = SparkSession.builder.enableHiveSupport().getOrCreate()
    +        |version_index = spark.conf.get("spark.sql.test.version.index", 
None)
    +        |
    +        |spark.sql("create table data_source_tbl_{} using json as select 1 
i".format(version_index))
    --- End diff --
    
    Instead of only using lowercase column name, should we use mix-case Hive 
schema for those tables?


---

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

Reply via email to