diff --git metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java index 291f3be0bf3c9fde3c64609df08ab7d0ac5521c0..fce95c09f4d73419f7b354b239e6d1cf130d63c9 100644 --- metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java +++ metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java @@ -1012,7 +1012,7 @@ private MTable getMTable(String db, String table) { /** Makes shallow copy of a map to avoid DataNucleus mucking with our objects. */ private Map convertMap(Map dnMap) { - return (dnMap == null) ? null : Maps.newHashMap(dnMap); + return (dnMap == null) ? null : Maps.newLinkedHashMap(dnMap); } private Table convertToTable(MTable mtbl) throws MetaException { diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/QB.java ql/src/java/org/apache/hadoop/hive/ql/parse/QB.java index b15a46d26f858b7d06f2021db22a3b6675f68142..4d10cad0271cc90eefb67ffd096ed45232a3d9c0 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/QB.java +++ ql/src/java/org/apache/hadoop/hive/ql/parse/QB.java @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -103,17 +104,17 @@ public QB() { } public QB(String outer_id, String alias, boolean isSubQ) { - aliasToTabs = new HashMap(); - aliasToSubq = new HashMap(); - aliasToProps = new HashMap>(); + aliasToTabs = new LinkedHashMap(); + aliasToSubq = new LinkedHashMap(); + aliasToProps = new LinkedHashMap>(); aliases = new ArrayList(); if (alias != null) { alias = alias.toLowerCase(); } qbp = new QBParseInfo(alias, isSubQ); qbm = new QBMetaData(); - ptfNodeToSpec = new HashMap(); - destToWindowingSpec = new HashMap(); + ptfNodeToSpec = new LinkedHashMap(); + destToWindowingSpec = new LinkedHashMap(); id = getAppendedAliasFromId(outer_id, alias); } @@ -320,7 +321,7 @@ public PTFInvocationSpec getPTFInvocationSpec(ASTNode node) { } public void addPTFNodeToSpec(ASTNode node, PTFInvocationSpec spec) { - ptfNodeToSpec = ptfNodeToSpec == null ? new HashMap() : ptfNodeToSpec; + ptfNodeToSpec = ptfNodeToSpec == null ? new LinkedHashMap() : ptfNodeToSpec; ptfNodeToSpec.put(node, spec); } diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/QBMetaData.java ql/src/java/org/apache/hadoop/hive/ql/parse/QBMetaData.java index 0c973cef145d2b3bde8c342150a540d03a353c35..822fce568676d6be430121a8c20bd16b366bcfef 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/QBMetaData.java +++ ql/src/java/org/apache/hadoop/hive/ql/parse/QBMetaData.java @@ -19,6 +19,7 @@ package org.apache.hadoop.hive.ql.parse; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; import org.apache.commons.logging.Log; @@ -53,13 +54,13 @@ private static final Log LOG = LogFactory.getLog(QBMetaData.class.getName()); public QBMetaData() { - aliasToTable = new HashMap(); + aliasToTable = new LinkedHashMap(); nameToDestTable = new HashMap(); nameToDestPartition = new HashMap(); nameToDestFile = new HashMap(); nameToDestType = new HashMap(); - aliasToPartSpec = new HashMap>(); - aliasToDPCtx = new HashMap(); + aliasToPartSpec = new LinkedHashMap>(); + aliasToDPCtx = new LinkedHashMap(); } // All getXXX needs toLowerCase() because they are directly called from diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java index 9c944b66f4a84e6aadbd44e87f39636a4d4ce347..638bac908b347f057dd288bd2fdd7f314e825adf 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java +++ ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java @@ -404,8 +404,8 @@ public SemanticAnalyzer(HiveConf conf) throws SemanticException { opToPartList = new HashMap(); opToSamplePruner = new HashMap(); nameToSplitSample = new HashMap(); - topOps = new HashMap>(); - topSelOps = new HashMap>(); + topOps = new LinkedHashMap>(); + topSelOps = new LinkedHashMap>(); loadTableWork = new ArrayList(); loadFileWork = new ArrayList(); opParseCtx = new LinkedHashMap, OpParseContext>(); @@ -9622,7 +9622,7 @@ public Operator genPlan(QB qb, boolean skipAmbiguityCheck) throws SemanticException { // First generate all the opInfos for the elements in the from clause - Map aliasToOpInfo = new HashMap(); + Map aliasToOpInfo = new LinkedHashMap(); // Recurse over the subqueries to fill the subquery part of the plan for (String alias : qb.getSubqAliases()) {