aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornavis.ryu <navis@apache.org>2015-11-18 19:37:14 -0800
committerYin Huai <yhuai@databricks.com>2015-11-18 19:37:14 -0800
commitfc3f77b42d62ca789d0ee07403795978961991c7 (patch)
tree4d6b51ac70e18c35b30cddb8a6d9bd094fe377f4
parent67c75828ff4df2e305bdf5d6be5a11201d1da3f3 (diff)
downloadspark-fc3f77b42d62ca789d0ee07403795978961991c7.tar.gz
spark-fc3f77b42d62ca789d0ee07403795978961991c7.tar.bz2
spark-fc3f77b42d62ca789d0ee07403795978961991c7.zip
[SPARK-11614][SQL] serde parameters should be set only when all params are ready
see HIVE-7975 and HIVE-12373 With changed semantic of setters in thrift objects in hive, setter should be called only after all parameters are set. It's not problem of current state but will be a problem in some day. Author: navis.ryu <navis@apache.org> Closes #9580 from navis/SPARK-11614.
-rw-r--r--sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala3
1 files changed, 2 insertions, 1 deletions
diff --git a/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala b/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala
index f4d45714fa..9a981d02ad 100644
--- a/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala
+++ b/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala
@@ -804,12 +804,13 @@ private[hive] case class MetastoreRelation
val serdeInfo = new org.apache.hadoop.hive.metastore.api.SerDeInfo
sd.setSerdeInfo(serdeInfo)
+ // maps and lists should be set only after all elements are ready (see HIVE-7975)
serdeInfo.setSerializationLib(p.storage.serde)
val serdeParameters = new java.util.HashMap[String, String]()
- serdeInfo.setParameters(serdeParameters)
table.serdeProperties.foreach { case (k, v) => serdeParameters.put(k, v) }
p.storage.serdeProperties.foreach { case (k, v) => serdeParameters.put(k, v) }
+ serdeInfo.setParameters(serdeParameters)
new Partition(hiveQlTable, tPartition)
}