Repository: spark
Updated Branches:
  refs/heads/branch-1.6 4b4a6bf5c -> 59eaec2d4


[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 <[email protected]>

Closes #9580 from navis/SPARK-11614.

(cherry picked from commit fc3f77b42d62ca789d0ee07403795978961991c7)
Signed-off-by: Yin Huai <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/59eaec2d
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/59eaec2d
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/59eaec2d

Branch: refs/heads/branch-1.6
Commit: 59eaec2d4904dbaeaacb14a779a3d9e07251d90e
Parents: 4b4a6bf
Author: navis.ryu <[email protected]>
Authored: Wed Nov 18 19:37:14 2015 -0800
Committer: Yin Huai <[email protected]>
Committed: Wed Nov 18 19:37:24 2015 -0800

----------------------------------------------------------------------
 .../scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala    | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/59eaec2d/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala
----------------------------------------------------------------------
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 f4d4571..9a981d0 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)
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to