diff options
author | navis.ryu <navis@apache.org> | 2015-11-18 19:37:14 -0800 |
---|---|---|
committer | Yin Huai <yhuai@databricks.com> | 2015-11-18 19:37:14 -0800 |
commit | fc3f77b42d62ca789d0ee07403795978961991c7 (patch) | |
tree | 4d6b51ac70e18c35b30cddb8a6d9bd094fe377f4 /sql/hive | |
parent | 67c75828ff4df2e305bdf5d6be5a11201d1da3f3 (diff) | |
download | spark-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.
Diffstat (limited to 'sql/hive')
-rw-r--r-- | sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala | 3 |
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) } |