Skip to content
Snippets Groups Projects
Commit 81f72a0d authored by Yin Huai's avatar Yin Huai Committed by Reynold Xin
Browse files

[SPARK-5211][SQL]Restore HiveMetastoreTypes.toDataType

jira: https://issues.apache.org/jira/browse/SPARK-5211

Author: Yin Huai <yhuai@databricks.com>

Closes #4026 from yhuai/SPARK-5211 and squashes the following commits:

15ee32b [Yin Huai] Remove extra line.
c6c1651 [Yin Huai] Get back HiveMetastoreTypes.toDataType.
parent a3f7421b
No related branches found
No related tags found
No related merge requests found
......@@ -39,7 +39,7 @@ import org.apache.spark.sql.catalyst.expressions._
import org.apache.spark.sql.catalyst.plans.logical
import org.apache.spark.sql.catalyst.plans.logical._
import org.apache.spark.sql.catalyst.rules._
import org.apache.spark.sql.sources.{LogicalRelation, ResolvedDataSource}
import org.apache.spark.sql.sources.{DDLParser, LogicalRelation, ResolvedDataSource}
import org.apache.spark.sql.types._
import org.apache.spark.util.Utils
......@@ -558,6 +558,12 @@ private[hive] case class MetastoreRelation
}
object HiveMetastoreTypes {
protected val ddlParser = new DDLParser
def toDataType(metastoreType: String): DataType = synchronized {
ddlParser.parseType(metastoreType)
}
def toMetastoreType(dt: DataType): String = dt match {
case ArrayType(elementType, _) => s"array<${toMetastoreType(elementType)}>"
case StructType(fields) =>
......
......@@ -19,7 +19,6 @@ package org.apache.spark.sql.hive
import org.scalatest.FunSuite
import org.apache.spark.sql.sources.DDLParser
import org.apache.spark.sql.test.ExamplePointUDT
import org.apache.spark.sql.types.StructType
......@@ -28,9 +27,7 @@ class HiveMetastoreCatalogSuite extends FunSuite {
test("struct field should accept underscore in sub-column name") {
val metastr = "struct<a: int, b_1: string, c: string>"
val ddlParser = new DDLParser
val datatype = ddlParser.parseType(metastr)
val datatype = HiveMetastoreTypes.toDataType(metastr)
assert(datatype.isInstanceOf[StructType])
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment