HIVE-14329 : fix flapping qtests - because of output string ordering (Zoltan Haindrich via Ashutosh Chauhan)
Signed-off-by: Ashutosh Chauhan <hashutosh@apache.org>
diff --git a/common/src/java/org/apache/hadoop/hive/common/StatsSetupConst.java b/common/src/java/org/apache/hadoop/hive/common/StatsSetupConst.java
index 01e6010..559fffc 100644
--- a/common/src/java/org/apache/hadoop/hive/common/StatsSetupConst.java
+++ b/common/src/java/org/apache/hadoop/hive/common/StatsSetupConst.java
@@ -25,6 +25,7 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.TreeMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -142,59 +143,34 @@
COLUMN_STATS_ACCURATE, NUM_FILES, TOTAL_SIZE,ROW_COUNT, RAW_DATA_SIZE, NUM_PARTITIONS};
public static boolean areBasicStatsUptoDate(Map<String, String> params) {
- String statsAcc = params.get(COLUMN_STATS_ACCURATE);
- if (statsAcc == null) {
- return false;
+ JSONObject stats = parseStatsAcc(params.get(COLUMN_STATS_ACCURATE));
+ if (stats != null && stats.has(BASIC_STATS)) {
+ return true;
} else {
- JSONObject jsonObj;
- try {
- jsonObj = new JSONObject(statsAcc);
- if (jsonObj != null && jsonObj.has(BASIC_STATS)) {
- return true;
- } else {
- return false;
- }
- } catch (JSONException e) {
- // For backward compatibility, if previous value can not be parsed to a
- // json object, it will come here.
- LOG.debug("In StatsSetupConst, JsonParser can not parse " + BASIC_STATS + ".");
- // We try to parse it as TRUE or FALSE
- if (statsAcc.equals(TRUE)) {
- setBasicStatsState(params, TRUE);
- return true;
- } else {
- setBasicStatsState(params, FALSE);
- return false;
- }
- }
+ return false;
}
}
public static boolean areColumnStatsUptoDate(Map<String, String> params, String colName) {
- String statsAcc = params.get(COLUMN_STATS_ACCURATE);
- if (statsAcc == null) {
- return false;
- } else {
- JSONObject jsonObj;
- try {
- jsonObj = new JSONObject(statsAcc);
- if (jsonObj == null || !jsonObj.has(COLUMN_STATS)) {
- return false;
- } else {
- JSONObject columns = jsonObj.getJSONObject(COLUMN_STATS);
- if (columns != null && columns.has(colName)) {
- return true;
- } else {
- return false;
- }
- }
- } catch (JSONException e) {
- // For backward compatibility, if previous value can not be parsed to a
- // json object, it will come here.
- LOG.debug("In StatsSetupConst, JsonParser can not parse COLUMN_STATS.");
+ JSONObject stats = parseStatsAcc(params.get(COLUMN_STATS_ACCURATE));
+ try {
+ if (!stats.has(COLUMN_STATS)) {
return false;
+ } else {
+ JSONObject columns = stats.getJSONObject(COLUMN_STATS);
+ if (columns != null && columns.has(colName)) {
+ return true;
+ } else {
+ return false;
+ }
}
+ } catch (JSONException e) {
+ // For backward compatibility, if previous value can not be parsed to a
+ // json object, it will come here.
+ LOG.debug("In StatsSetupConst, JsonParser can not parse COLUMN_STATS.");
+ return false;
}
+
}
// It will only throw JSONException when stats.put(BASIC_STATS, TRUE)
@@ -206,94 +182,37 @@
params.remove(COLUMN_STATS_ACCURATE);
}
} else {
- String statsAcc = params.get(COLUMN_STATS_ACCURATE);
- if (statsAcc == null) {
- JSONObject stats = new JSONObject(new LinkedHashMap());
- // duplicate key is not possible
- try {
- stats.put(BASIC_STATS, TRUE);
- } catch (JSONException e) {
- // impossible to throw any json exceptions.
- LOG.trace(e.getMessage());
- }
- params.put(COLUMN_STATS_ACCURATE, stats.toString());
- } else {
- // statsAcc may not be jason format, which will throw exception
- JSONObject stats;
- try {
- stats = new JSONObject(statsAcc);
- } catch (JSONException e) {
- // old format of statsAcc, e.g., TRUE or FALSE
- LOG.debug("In StatsSetupConst, JsonParser can not parse statsAcc.");
- stats = new JSONObject(new LinkedHashMap());
- }
- if (!stats.has(BASIC_STATS)) {
- // duplicate key is not possible
- try {
- stats.put(BASIC_STATS, TRUE);
- } catch (JSONException e) {
- // impossible to throw any json exceptions.
- LOG.trace(e.getMessage());
- }
- }
- params.put(COLUMN_STATS_ACCURATE, stats.toString());
+ JSONObject stats = parseStatsAcc(params.get(COLUMN_STATS_ACCURATE));
+
+ try {
+ stats.put(BASIC_STATS, TRUE);
+ } catch (JSONException e) {
+ // impossible to throw any json exceptions.
+ LOG.trace(e.getMessage());
}
+ params.put(COLUMN_STATS_ACCURATE, stats.toString());
}
}
public static void setColumnStatsState(Map<String, String> params, List<String> colNames) {
try {
- String statsAcc = params.get(COLUMN_STATS_ACCURATE);
- JSONObject colStats = new JSONObject(new LinkedHashMap());
- // duplicate key is not possible
- for (String colName : colNames) {
- colStats.put(colName.toLowerCase(), TRUE);
- }
- if (statsAcc == null) {
- JSONObject stats = new JSONObject(new LinkedHashMap());
- // duplicate key is not possible
- stats.put(COLUMN_STATS, colStats);
- params.put(COLUMN_STATS_ACCURATE, stats.toString());
+ JSONObject stats = parseStatsAcc(params.get(COLUMN_STATS_ACCURATE));
+
+ JSONObject colStats;
+ if (stats.has(COLUMN_STATS)) {
+ colStats = stats.getJSONObject(COLUMN_STATS);
} else {
- // statsAcc may not be jason format, which will throw exception
- JSONObject stats;
- try {
- stats = new JSONObject(statsAcc);
- } catch (JSONException e) {
- // old format of statsAcc, e.g., TRUE or FALSE
- LOG.debug("In StatsSetupConst, JsonParser can not parse statsAcc.");
- stats = new JSONObject(new LinkedHashMap());
- try {
- if (statsAcc.equals(TRUE)) {
- stats.put(BASIC_STATS, TRUE);
- } else {
- stats.put(BASIC_STATS, FALSE);
- }
- } catch (JSONException e1) {
- // impossible to throw any json exceptions.
- LOG.trace(e1.getMessage());
- }
- }
- if (!stats.has(COLUMN_STATS)) {
- // duplicate key is not possible
- stats.put(COLUMN_STATS, colStats);
- } else {
- // getJSONObject(COLUMN_STATS) should be found.
- JSONObject allColumnStats = stats.getJSONObject(COLUMN_STATS);
- for (String colName : colNames) {
- if (!allColumnStats.has(colName)) {
- // duplicate key is not possible
- allColumnStats.put(colName, TRUE);
- }
- }
- stats.remove(COLUMN_STATS);
- // duplicate key is not possible
- stats.put(COLUMN_STATS, allColumnStats);
- }
- params.put(COLUMN_STATS_ACCURATE, stats.toString());
+ colStats = new JSONObject(new TreeMap<String,String>());
}
+ for (String colName : colNames) {
+ if (!colStats.has(colName)) {
+ colStats.put(colName, TRUE);
+ }
+ }
+ stats.put(COLUMN_STATS, colStats);
+ params.put(COLUMN_STATS_ACCURATE, stats.toString());
} catch (JSONException e) {
- //impossible to throw any json exceptions.
+ // impossible to throw any json exceptions.
LOG.trace(e.getMessage());
}
}
@@ -302,24 +221,8 @@
String statsAcc;
if (params != null && (statsAcc = params.get(COLUMN_STATS_ACCURATE)) != null) {
// statsAcc may not be jason format, which will throw exception
- JSONObject stats;
- try {
- stats = new JSONObject(statsAcc);
- } catch (JSONException e) {
- // old format of statsAcc, e.g., TRUE or FALSE
- LOG.debug("In StatsSetupConst, JsonParser can not parse statsAcc.");
- stats = new JSONObject(new LinkedHashMap());
- try {
- if (statsAcc.equals(TRUE)) {
- stats.put(BASIC_STATS, TRUE);
- } else {
- stats.put(BASIC_STATS, FALSE);
- }
- } catch (JSONException e1) {
- // impossible to throw any json exceptions.
- LOG.trace(e1.getMessage());
- }
- }
+ JSONObject stats = parseStatsAcc(statsAcc);
+
if (stats.has(COLUMN_STATS)) {
stats.remove(COLUMN_STATS);
}
@@ -335,4 +238,35 @@
}
setBasicStatsState(params, setting);
}
+
+ private static JSONObject parseStatsAcc(String statsAcc) {
+ if (statsAcc == null) {
+ return new JSONObject(new LinkedHashMap<String,Object>());
+ } else {
+ try {
+ return new JSONObject(statsAcc);
+ } catch (JSONException e) {
+ return statsAccUpgrade(statsAcc);
+ }
+ }
+ }
+
+ private static JSONObject statsAccUpgrade(String statsAcc) {
+ JSONObject stats;
+ // old format of statsAcc, e.g., TRUE or FALSE
+ LOG.debug("In StatsSetupConst, JsonParser can not parse statsAcc.");
+ stats = new JSONObject(new LinkedHashMap<String,Object>());
+ try {
+ if (statsAcc.equals(TRUE)) {
+ stats.put(BASIC_STATS, TRUE);
+ } else {
+ stats.put(BASIC_STATS, FALSE);
+ }
+ } catch (JSONException e1) {
+ // impossible to throw any json exceptions.
+ LOG.trace(e1.getMessage());
+ }
+ return stats;
+ }
+
}
diff --git a/common/src/test/org/apache/hadoop/hive/common/TestStatsSetupConst.java b/common/src/test/org/apache/hadoop/hive/common/TestStatsSetupConst.java
new file mode 100644
index 0000000..7a7ad42
--- /dev/null
+++ b/common/src/test/org/apache/hadoop/hive/common/TestStatsSetupConst.java
@@ -0,0 +1,56 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.common;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Test;
+
+import com.google.common.collect.Lists;
+public class TestStatsSetupConst {
+
+ @Test
+ public void testSetBasicStatsState_missesUpgrade() {
+ Map<String, String> params=new HashMap<>();
+ params.put(StatsSetupConst.COLUMN_STATS_ACCURATE, "FALSE");
+ StatsSetupConst.setBasicStatsState(params, String.valueOf(true));
+ assertEquals("{\"BASIC_STATS\":\"true\"}",params.get(StatsSetupConst.COLUMN_STATS_ACCURATE));
+ }
+
+ @Test
+ public void setColumnStatsState_camelcase() {
+ Map<String, String> params=new HashMap<>();
+ StatsSetupConst.setColumnStatsState(params, Lists.newArrayList("Foo"));
+ String val1 = params.get(StatsSetupConst.COLUMN_STATS_ACCURATE);
+ StatsSetupConst.setColumnStatsState(params, Lists.newArrayList("Foo"));
+ String val2 = params.get(StatsSetupConst.COLUMN_STATS_ACCURATE);
+ assertEquals(val1, val2);
+ }
+
+ @Test
+ public void testSetBasicStatsState_none() {
+ Map<String, String> params=new HashMap<>();
+ StatsSetupConst.setBasicStatsState(params, String.valueOf(true));
+ assertEquals("{\"BASIC_STATS\":\"true\"}",params.get(StatsSetupConst.COLUMN_STATS_ACCURATE));
+ }
+
+}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java
index 03803bb..ba4f6a7 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java
@@ -19,7 +19,6 @@
package org.apache.hadoop.hive.ql.metadata.formatting;
import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.hive.common.type.HiveDecimal;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
@@ -53,12 +52,13 @@
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.Comparator;
import java.util.Date;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
+import java.util.TreeMap;
/**
@@ -393,22 +393,23 @@
}
if (null != storageDesc.getSkewedInfo()) {
- List<String> skewedColNames = storageDesc.getSkewedInfo().getSkewedColNames();
+ List<String> skewedColNames = sortedList(storageDesc.getSkewedInfo().getSkewedColNames());
if ((skewedColNames != null) && (skewedColNames.size() > 0)) {
formatOutput("Skewed Columns:", skewedColNames.toString(), tableInfo);
}
- List<List<String>> skewedColValues = storageDesc.getSkewedInfo().getSkewedColValues();
+ List<List<String>> skewedColValues = sortedList(
+ storageDesc.getSkewedInfo().getSkewedColValues(), new VectorComparator<String>());
if ((skewedColValues != null) && (skewedColValues.size() > 0)) {
formatOutput("Skewed Values:", skewedColValues.toString(), tableInfo);
}
- Map<List<String>, String> skewedColMap = storageDesc.getSkewedInfo()
- .getSkewedColValueLocationMaps();
+ Map<List<String>, String> skewedColMap = new TreeMap<>(new VectorComparator<String>());
+ skewedColMap.putAll(storageDesc.getSkewedInfo().getSkewedColValueLocationMaps());
if ((skewedColMap!=null) && (skewedColMap.size() > 0)) {
formatOutput("Skewed Value to Path:", skewedColMap.toString(),
tableInfo);
- Map<List<String>, String> truncatedSkewedColMap = new HashMap<List<String>, String>();
+ Map<List<String>, String> truncatedSkewedColMap = new TreeMap<List<String>, String>(new VectorComparator<String>());
// walk through existing map to truncate path so that test won't mask it
// then we can verify location is right
Set<Entry<List<String>, String>> entries = skewedColMap.entrySet();
@@ -487,7 +488,60 @@
static String getComment(FieldSchema col) {
return col.getComment() != null ? col.getComment() : "";
}
+
+ /**
+ * Compares to lists of object T as vectors
+ *
+ * @param <T> the base object type. Must be {@link Comparable}
+ */
+ private static class VectorComparator<T extends Comparable<T>> implements Comparator<List<T>>{
+ @Override
+ public int compare(List<T> listA, List<T> listB) {
+ for (int i = 0; i < listA.size() && i < listB.size(); i++) {
+ T valA = listA.get(i);
+ T valB = listB.get(i);
+ if (valA != null) {
+ int ret = valA.compareTo(valB);
+ if (ret != 0) {
+ return ret;
+ }
+ } else {
+ if (valB != null) {
+ return -1;
+ }
+ }
+ }
+ return Integer.compare(listA.size(), listB.size());
+ }
+ }
+
+ /**
+ * Returns a sorted version of the given list
+ */
+ static <T extends Comparable<T>> List<T> sortedList(List<T> list){
+ if (list == null || list.size() <= 1) {
+ return list;
+ }
+ ArrayList<T> ret = new ArrayList<>();
+ ret.addAll(list);
+ Collections.sort(ret);
+ return ret;
+ }
+
+ /**
+ * Returns a sorted version of the given list, using the provided comparator
+ */
+ static <T> List<T> sortedList(List<T> list, Comparator<T> comp) {
+ if (list == null || list.size() <= 1) {
+ return list;
+ }
+ ArrayList<T> ret = new ArrayList<>();
+ ret.addAll(list);
+ Collections.sort(ret,comp);
+ return ret;
+ }
+
private static String formatDate(long timeInSeconds) {
if (timeInSeconds != 0) {
Date date = new Date(timeInSeconds * 1000);
diff --git a/ql/src/test/results/clientpositive/columnStatsUpdateForStatsOptimizer_1.q.out b/ql/src/test/results/clientpositive/columnStatsUpdateForStatsOptimizer_1.q.out
index 00f3776..182fdf5 100644
--- a/ql/src/test/results/clientpositive/columnStatsUpdateForStatsOptimizer_1.q.out
+++ b/ql/src/test/results/clientpositive/columnStatsUpdateForStatsOptimizer_1.q.out
@@ -204,7 +204,7 @@
#### A masked pattern was here ####
Table Type: MANAGED_TABLE
Table Parameters:
- COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"year\":\"true\",\"month\":\"true\"}}
+ COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"month\":\"true\",\"year\":\"true\"}}
numFiles 1
numRows 3
rawDataSize 21
diff --git a/ql/src/test/results/clientpositive/create_alter_list_bucketing_table1.q.out b/ql/src/test/results/clientpositive/create_alter_list_bucketing_table1.q.out
index df4a75b..216d3be 100644
--- a/ql/src/test/results/clientpositive/create_alter_list_bucketing_table1.q.out
+++ b/ql/src/test/results/clientpositive/create_alter_list_bucketing_table1.q.out
@@ -52,7 +52,7 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [col1, col2]
-Skewed Values: [[s1, 1], [s3, 3], [s13, 13], [s78, 78]]
+Skewed Values: [[s1, 1], [s13, 13], [s3, 3], [s78, 78]]
Storage Desc Params:
serialization.format 1
PREHOOK: query: -- 2. turn off stored as directories but table is still a skewed table
@@ -100,7 +100,7 @@
Bucket Columns: []
Sort Columns: []
Skewed Columns: [col1, col2]
-Skewed Values: [[s1, 1], [s3, 3], [s13, 13], [s78, 78]]
+Skewed Values: [[s1, 1], [s13, 13], [s3, 3], [s78, 78]]
Storage Desc Params:
serialization.format 1
PREHOOK: query: -- 3. turn off skewed
diff --git a/ql/src/test/results/clientpositive/create_skewed_table1.q.out b/ql/src/test/results/clientpositive/create_skewed_table1.q.out
index fe5ea0f..e4080b0 100644
--- a/ql/src/test/results/clientpositive/create_skewed_table1.q.out
+++ b/ql/src/test/results/clientpositive/create_skewed_table1.q.out
@@ -131,7 +131,7 @@
Bucket Columns: []
Sort Columns: []
Skewed Columns: [col1, col2]
-Skewed Values: [[s1, 1], [s3, 3], [s13, 13], [s78, 78]]
+Skewed Values: [[s1, 1], [s13, 13], [s3, 3], [s78, 78]]
Storage Desc Params:
serialization.format 1
PREHOOK: query: drop table list_bucket_single
diff --git a/ql/src/test/results/clientpositive/extrapolate_part_stats_full.q.out b/ql/src/test/results/clientpositive/extrapolate_part_stats_full.q.out
index 8f40040..ef20f4e 100644
--- a/ql/src/test/results/clientpositive/extrapolate_part_stats_full.q.out
+++ b/ql/src/test/results/clientpositive/extrapolate_part_stats_full.q.out
@@ -104,7 +104,7 @@
partition values:
year 2000
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid,zip
columns.comments
@@ -147,7 +147,7 @@
partition values:
year 2001
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid,zip
columns.comments
@@ -217,7 +217,7 @@
partition values:
year 2000
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid,zip
columns.comments
@@ -260,7 +260,7 @@
partition values:
year 2001
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid,zip
columns.comments
@@ -400,7 +400,7 @@
year 2000
zip 94086
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid
columns.comments
@@ -444,7 +444,7 @@
year 2001
zip 94086
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid
columns.comments
@@ -488,7 +488,7 @@
year 2000
zip 94087
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid
columns.comments
@@ -532,7 +532,7 @@
year 2001
zip 94087
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid
columns.comments
@@ -599,7 +599,7 @@
year 2000
zip 94086
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid
columns.comments
@@ -643,7 +643,7 @@
year 2001
zip 94086
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid
columns.comments
@@ -687,7 +687,7 @@
year 2000
zip 94087
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid
columns.comments
@@ -731,7 +731,7 @@
year 2001
zip 94087
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid
columns.comments
diff --git a/ql/src/test/results/clientpositive/extrapolate_part_stats_partial.q.out b/ql/src/test/results/clientpositive/extrapolate_part_stats_partial.q.out
index 0acfe90..995fdf1 100644
--- a/ql/src/test/results/clientpositive/extrapolate_part_stats_partial.q.out
+++ b/ql/src/test/results/clientpositive/extrapolate_part_stats_partial.q.out
@@ -164,7 +164,7 @@
partition values:
year 2001
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid,zip
columns.comments
@@ -207,7 +207,7 @@
partition values:
year 2002
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid,zip
columns.comments
@@ -363,7 +363,7 @@
partition values:
year 2001
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid,zip
columns.comments
@@ -406,7 +406,7 @@
partition values:
year 2002
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid,zip
columns.comments
@@ -578,7 +578,7 @@
partition values:
year 2001
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid,zip
columns.comments
@@ -621,7 +621,7 @@
partition values:
year 2002
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid,zip
columns.comments
@@ -773,7 +773,7 @@
partition values:
year 2001
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid,zip
columns.comments
@@ -816,7 +816,7 @@
partition values:
year 2002
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid,zip
columns.comments
@@ -1176,7 +1176,7 @@
year 2001
zip 94086
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid
columns.comments
@@ -1396,7 +1396,7 @@
year 2002
zip 94087
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid
columns.comments
@@ -1683,7 +1683,7 @@
year 2001
zip 94086
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid
columns.comments
@@ -1903,7 +1903,7 @@
year 2002
zip 94087
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"locid":"true","state":"true"}}
bucket_count -1
columns state,locid
columns.comments
diff --git a/ql/src/test/results/clientpositive/extrapolate_part_stats_partial_ndv.q.out b/ql/src/test/results/clientpositive/extrapolate_part_stats_partial_ndv.q.out
index 70e4db3..96ff748 100644
--- a/ql/src/test/results/clientpositive/extrapolate_part_stats_partial_ndv.q.out
+++ b/ql/src/test/results/clientpositive/extrapolate_part_stats_partial_ndv.q.out
@@ -232,7 +232,7 @@
partition values:
year 2001
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true","cnt":"true","zip":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"cnt":"true","locid":"true","state":"true","zip":"true"}}
bucket_count -1
columns state,locid,cnt,zip
columns.comments
@@ -275,7 +275,7 @@
partition values:
year 2002
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true","cnt":"true","zip":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"cnt":"true","locid":"true","state":"true","zip":"true"}}
bucket_count -1
columns state,locid,cnt,zip
columns.comments
@@ -476,7 +476,7 @@
partition values:
year 2000
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true","cnt":"true","zip":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"cnt":"true","locid":"true","state":"true","zip":"true"}}
bucket_count -1
columns state,locid,cnt,zip
columns.comments
@@ -519,7 +519,7 @@
partition values:
year 2001
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true","cnt":"true","zip":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"cnt":"true","locid":"true","state":"true","zip":"true"}}
bucket_count -1
columns state,locid,cnt,zip
columns.comments
@@ -562,7 +562,7 @@
partition values:
year 2002
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true","cnt":"true","zip":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"cnt":"true","locid":"true","state":"true","zip":"true"}}
bucket_count -1
columns state,locid,cnt,zip
columns.comments
@@ -605,7 +605,7 @@
partition values:
year 2003
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true","cnt":"true","zip":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"cnt":"true","locid":"true","state":"true","zip":"true"}}
bucket_count -1
columns state,locid,cnt,zip
columns.comments
@@ -993,7 +993,7 @@
year 2001
zip 94086
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true","cnt":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"cnt":"true","locid":"true","state":"true"}}
bucket_count -1
columns state,locid,cnt
columns.comments
@@ -1213,7 +1213,7 @@
year 2002
zip 94087
properties:
- COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"state":"true","locid":"true","cnt":"true"}}
+ COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"cnt":"true","locid":"true","state":"true"}}
bucket_count -1
columns state,locid,cnt
columns.comments
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_10.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_10.q.out
index d4681b7..02dd93f 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_10.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_10.q.out
@@ -352,8 +352,8 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key]
-Skewed Values: [[484], [51], [103]]
+Skewed Values: [[103], [484], [51]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[103]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=103, [51]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=51, [484]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=484}
+Skewed Value to Truncated Path: {[103]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=103, [484]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=484, [51]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=51}
Storage Desc Params:
serialization.format 1
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_11.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_11.q.out
index ecf54a8..7d07b16 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_11.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_11.q.out
@@ -226,9 +226,9 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [value]
-Skewed Values: [[val_466], [val_287], [val_82]]
+Skewed Values: [[val_287], [val_466], [val_82]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[val_287]=/list_bucketing_static_part/ds=2008-04-08/hr=11/value=val_287, [val_82]=/list_bucketing_static_part/ds=2008-04-08/hr=11/value=val_82, [val_466]=/list_bucketing_static_part/ds=2008-04-08/hr=11/value=val_466}
+Skewed Value to Truncated Path: {[val_287]=/list_bucketing_static_part/ds=2008-04-08/hr=11/value=val_287, [val_466]=/list_bucketing_static_part/ds=2008-04-08/hr=11/value=val_466, [val_82]=/list_bucketing_static_part/ds=2008-04-08/hr=11/value=val_82}
Storage Desc Params:
serialization.format 1
PREHOOK: query: explain extended
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_12.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_12.q.out
index 33e12a5..1f66fc3 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_12.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_12.q.out
@@ -230,9 +230,9 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [col2, col4]
-Skewed Values: [[466, val_466], [287, val_287], [82, val_82]]
+Skewed Values: [[287, val_287], [466, val_466], [82, val_82]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[466, val_466]=/list_bucketing_mul_col/ds=2008-04-08/hr=11/col2=466/col4=val_466, [82, val_82]=/list_bucketing_mul_col/ds=2008-04-08/hr=11/col2=82/col4=val_82, [287, val_287]=/list_bucketing_mul_col/ds=2008-04-08/hr=11/col2=287/col4=val_287}
+Skewed Value to Truncated Path: {[287, val_287]=/list_bucketing_mul_col/ds=2008-04-08/hr=11/col2=287/col4=val_287, [466, val_466]=/list_bucketing_mul_col/ds=2008-04-08/hr=11/col2=466/col4=val_466, [82, val_82]=/list_bucketing_mul_col/ds=2008-04-08/hr=11/col2=82/col4=val_82}
Storage Desc Params:
serialization.format 1
PREHOOK: query: explain extended
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_13.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_13.q.out
index 93ebef0..2a1adb8 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_13.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_13.q.out
@@ -230,9 +230,9 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [col2, col4]
-Skewed Values: [[466, val_466], [287, val_287], [82, val_82]]
+Skewed Values: [[287, val_287], [466, val_466], [82, val_82]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[466, val_466]=/list_bucketing_mul_col/ds=2008-04-08/hr=2013-01-23+18%3A00%3A99/col2=466/col4=val_466, [287, val_287]=/list_bucketing_mul_col/ds=2008-04-08/hr=2013-01-23+18%3A00%3A99/col2=287/col4=val_287, [82, val_82]=/list_bucketing_mul_col/ds=2008-04-08/hr=2013-01-23+18%3A00%3A99/col2=82/col4=val_82}
+Skewed Value to Truncated Path: {[287, val_287]=/list_bucketing_mul_col/ds=2008-04-08/hr=2013-01-23+18%3A00%3A99/col2=287/col4=val_287, [466, val_466]=/list_bucketing_mul_col/ds=2008-04-08/hr=2013-01-23+18%3A00%3A99/col2=466/col4=val_466, [82, val_82]=/list_bucketing_mul_col/ds=2008-04-08/hr=2013-01-23+18%3A00%3A99/col2=82/col4=val_82}
Storage Desc Params:
serialization.format 1
PREHOOK: query: explain extended
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_2.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_2.q.out
index a29c224..b94e52b 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_2.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_2.q.out
@@ -295,9 +295,9 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key, value]
-Skewed Values: [[484, val_484], [51, val_14], [103, val_103]]
+Skewed Values: [[103, val_103], [484, val_484], [51, val_14]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[484, val_484]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=484/value=val_484, [103, val_103]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=103/value=val_103}
+Skewed Value to Truncated Path: {[103, val_103]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=103/value=val_103, [484, val_484]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=484/value=val_484}
Storage Desc Params:
serialization.format 1
PREHOOK: query: select count(1) from srcpart where ds = '2008-04-08'
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_4.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_4.q.out
index 5f0406a..27849a0 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_4.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_4.q.out
@@ -303,9 +303,9 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key, value]
-Skewed Values: [[484, val_484], [51, val_14], [103, val_103]]
+Skewed Values: [[103, val_103], [484, val_484], [51, val_14]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[484, val_484]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=484/value=val_484, [103, val_103]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=103/value=val_103}
+Skewed Value to Truncated Path: {[103, val_103]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=103/value=val_103, [484, val_484]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=484/value=val_484}
Storage Desc Params:
serialization.format 1
PREHOOK: query: -- list bucketing DML with merge. use bucketize to generate a few small files.
@@ -671,9 +671,9 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key, value]
-Skewed Values: [[484, val_484], [51, val_14], [103, val_103]]
+Skewed Values: [[103, val_103], [484, val_484], [51, val_14]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[484, val_484]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=484/value=val_484, [103, val_103]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=103/value=val_103}
+Skewed Value to Truncated Path: {[103, val_103]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=103/value=val_103, [484, val_484]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=484/value=val_484}
Storage Desc Params:
serialization.format 1
PREHOOK: query: select count(1) from srcpart where ds = '2008-04-08'
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_5.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_5.q.out
index 09cb847..95da7c9 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_5.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_5.q.out
@@ -267,9 +267,9 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key, value]
-Skewed Values: [[484, val_484], [51, val_14], [103, val_103]]
+Skewed Values: [[103, val_103], [484, val_484], [51, val_14]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[484, val_484]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=11/key=484/value=val_484, [103, val_103]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=11/key=103/value=val_103}
+Skewed Value to Truncated Path: {[103, val_103]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=11/key=103/value=val_103, [484, val_484]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=11/key=484/value=val_484}
Storage Desc Params:
serialization.format 1
PREHOOK: query: desc formatted list_bucketing_dynamic_part partition (ds='2008-04-08', hr='12')
@@ -312,9 +312,9 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key, value]
-Skewed Values: [[484, val_484], [51, val_14], [103, val_103]]
+Skewed Values: [[103, val_103], [484, val_484], [51, val_14]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[484, val_484]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=12/key=484/value=val_484, [103, val_103]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=12/key=103/value=val_103}
+Skewed Value to Truncated Path: {[103, val_103]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=12/key=103/value=val_103, [484, val_484]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=12/key=484/value=val_484}
Storage Desc Params:
serialization.format 1
PREHOOK: query: select count(1) from srcpart where ds='2008-04-08'
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_6.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_6.q.out
index e53fee7..655ac35 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_6.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_6.q.out
@@ -353,7 +353,7 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key, value]
-Skewed Values: [[484, val_484], [51, val_14], [103, val_103]]
+Skewed Values: [[103, val_103], [484, val_484], [51, val_14]]
Storage Desc Params:
serialization.format 1
PREHOOK: query: desc formatted list_bucketing_dynamic_part partition (ds='2008-04-08', hr='b1')
@@ -396,9 +396,9 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key, value]
-Skewed Values: [[484, val_484], [51, val_14], [103, val_103]]
+Skewed Values: [[103, val_103], [484, val_484], [51, val_14]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[484, val_484]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=b1/key=484/value=val_484, [103, val_103]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=b1/key=103/value=val_103}
+Skewed Value to Truncated Path: {[103, val_103]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=b1/key=103/value=val_103, [484, val_484]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=b1/key=484/value=val_484}
Storage Desc Params:
serialization.format 1
PREHOOK: query: -- list bucketing DML with merge. use bucketize to generate a few small files.
@@ -774,7 +774,7 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key, value]
-Skewed Values: [[484, val_484], [51, val_14], [103, val_103]]
+Skewed Values: [[103, val_103], [484, val_484], [51, val_14]]
Storage Desc Params:
serialization.format 1
PREHOOK: query: desc formatted list_bucketing_dynamic_part partition (ds='2008-04-08', hr='b1')
@@ -817,9 +817,9 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key, value]
-Skewed Values: [[484, val_484], [51, val_14], [103, val_103]]
+Skewed Values: [[103, val_103], [484, val_484], [51, val_14]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[484, val_484]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=b1/key=484/value=val_484, [103, val_103]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=b1/key=103/value=val_103}
+Skewed Value to Truncated Path: {[103, val_103]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=b1/key=103/value=val_103, [484, val_484]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=b1/key=484/value=val_484}
Storage Desc Params:
serialization.format 1
PREHOOK: query: select count(1) from srcpart where ds = '2008-04-08'
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_8.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_8.q.out
index ee36d3f..6c542ed 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_8.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_8.q.out
@@ -355,7 +355,7 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key, value]
-Skewed Values: [[484, val_484], [51, val_14], [103, val_103]]
+Skewed Values: [[103, val_103], [484, val_484], [51, val_14]]
Storage Desc Params:
serialization.format 1
PREHOOK: query: desc formatted list_bucketing_dynamic_part partition (ds='2008-04-08', hr='b1')
@@ -398,9 +398,9 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key, value]
-Skewed Values: [[484, val_484], [51, val_14], [103, val_103]]
+Skewed Values: [[103, val_103], [484, val_484], [51, val_14]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[484, val_484]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=b1/key=484/value=val_484, [103, val_103]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=b1/key=103/value=val_103}
+Skewed Value to Truncated Path: {[103, val_103]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=b1/key=103/value=val_103, [484, val_484]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=b1/key=484/value=val_484}
Storage Desc Params:
serialization.format 1
PREHOOK: query: -- concatenate the partition and it will merge files
@@ -452,9 +452,9 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key, value]
-Skewed Values: [[484, val_484], [51, val_14], [103, val_103]]
+Skewed Values: [[103, val_103], [484, val_484], [51, val_14]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[484, val_484]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=b1/key=484/value=val_484, [103, val_103]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=b1/key=103/value=val_103}
+Skewed Value to Truncated Path: {[103, val_103]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=b1/key=103/value=val_103, [484, val_484]=/list_bucketing_dynamic_part/ds=2008-04-08/hr=b1/key=484/value=val_484}
Storage Desc Params:
serialization.format 1
PREHOOK: query: select count(1) from srcpart where ds = '2008-04-08'
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_9.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_9.q.out
index 81f3af3..cb191540 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_9.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_9.q.out
@@ -303,7 +303,7 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key]
-Skewed Values: [[484], [103]]
+Skewed Values: [[103], [484]]
#### A masked pattern was here ####
Skewed Value to Truncated Path: {[103]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=103, [484]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=484}
Storage Desc Params:
@@ -671,7 +671,7 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key]
-Skewed Values: [[484], [103]]
+Skewed Values: [[103], [484]]
#### A masked pattern was here ####
Skewed Value to Truncated Path: {[103]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=103, [484]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=484}
Storage Desc Params:
diff --git a/ql/src/test/results/clientpositive/list_bucket_query_multiskew_1.q.out b/ql/src/test/results/clientpositive/list_bucket_query_multiskew_1.q.out
index 492866a..7f99f17 100644
--- a/ql/src/test/results/clientpositive/list_bucket_query_multiskew_1.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_query_multiskew_1.q.out
@@ -92,9 +92,9 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key, value]
-Skewed Values: [[484, val_484], [238, val_238]]
+Skewed Values: [[238, val_238], [484, val_484]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[484, val_484]=/fact_daily/ds=1/hr=4/key=484/value=val_484, [238, val_238]=/fact_daily/ds=1/hr=4/key=238/value=val_238}
+Skewed Value to Truncated Path: {[238, val_238]=/fact_daily/ds=1/hr=4/key=238/value=val_238, [484, val_484]=/fact_daily/ds=1/hr=4/key=484/value=val_484}
Storage Desc Params:
serialization.format 1
PREHOOK: query: SELECT count(1) FROM fact_daily WHERE ds='1' and hr='4'
diff --git a/ql/src/test/results/clientpositive/list_bucket_query_multiskew_2.q.out b/ql/src/test/results/clientpositive/list_bucket_query_multiskew_2.q.out
index cfb613a..8c08106 100644
--- a/ql/src/test/results/clientpositive/list_bucket_query_multiskew_2.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_query_multiskew_2.q.out
@@ -92,9 +92,9 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key, value]
-Skewed Values: [[484, val_484], [238, val_238]]
+Skewed Values: [[238, val_238], [484, val_484]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[484, val_484]=/fact_daily/ds=1/hr=4/key=484/value=val_484, [238, val_238]=/fact_daily/ds=1/hr=4/key=238/value=val_238}
+Skewed Value to Truncated Path: {[238, val_238]=/fact_daily/ds=1/hr=4/key=238/value=val_238, [484, val_484]=/fact_daily/ds=1/hr=4/key=484/value=val_484}
Storage Desc Params:
serialization.format 1
PREHOOK: query: SELECT count(1) FROM fact_daily WHERE ds='1' and hr='4'
diff --git a/ql/src/test/results/clientpositive/list_bucket_query_multiskew_3.q.out b/ql/src/test/results/clientpositive/list_bucket_query_multiskew_3.q.out
index 6a5f8f5..6a421f3 100644
--- a/ql/src/test/results/clientpositive/list_bucket_query_multiskew_3.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_query_multiskew_3.q.out
@@ -154,9 +154,9 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key, value]
-Skewed Values: [[484, val_484], [238, val_238]]
+Skewed Values: [[238, val_238], [484, val_484]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[484, val_484]=/fact_daily/ds=1/hr=2/key=484/value=val_484, [238, val_238]=/fact_daily/ds=1/hr=2/key=238/value=val_238}
+Skewed Value to Truncated Path: {[238, val_238]=/fact_daily/ds=1/hr=2/key=238/value=val_238, [484, val_484]=/fact_daily/ds=1/hr=2/key=484/value=val_484}
Storage Desc Params:
serialization.format 1
PREHOOK: query: -- another partition. skewed value is 327
diff --git a/ql/src/test/results/clientpositive/list_bucket_query_oneskew_3.q.out b/ql/src/test/results/clientpositive/list_bucket_query_oneskew_3.q.out
index 0c6fb63..702bc93 100644
--- a/ql/src/test/results/clientpositive/list_bucket_query_oneskew_3.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_query_oneskew_3.q.out
@@ -175,7 +175,7 @@
Bucket Columns: []
Sort Columns: []
Skewed Columns: [x]
-Skewed Values: [[484], [238]]
+Skewed Values: [[238], [484]]
#### A masked pattern was here ####
Storage Desc Params:
serialization.format 1
diff --git a/ql/src/test/results/clientpositive/spark/list_bucket_dml_10.q.out b/ql/src/test/results/clientpositive/spark/list_bucket_dml_10.q.out
index 9eca85a..2e5c8b4 100644
--- a/ql/src/test/results/clientpositive/spark/list_bucket_dml_10.q.out
+++ b/ql/src/test/results/clientpositive/spark/list_bucket_dml_10.q.out
@@ -243,8 +243,8 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key]
-Skewed Values: [[484], [51], [103]]
+Skewed Values: [[103], [484], [51]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[103]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=103, [51]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=51, [484]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=484}
+Skewed Value to Truncated Path: {[103]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=103, [484]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=484, [51]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=51}
Storage Desc Params:
serialization.format 1
diff --git a/ql/src/test/results/clientpositive/spark/list_bucket_dml_2.q.out b/ql/src/test/results/clientpositive/spark/list_bucket_dml_2.q.out
index c83c02e..fd46200 100644
--- a/ql/src/test/results/clientpositive/spark/list_bucket_dml_2.q.out
+++ b/ql/src/test/results/clientpositive/spark/list_bucket_dml_2.q.out
@@ -298,9 +298,9 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [key, value]
-Skewed Values: [[484, val_484], [51, val_14], [103, val_103]]
+Skewed Values: [[103, val_103], [484, val_484], [51, val_14]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[484, val_484]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=484/value=val_484, [103, val_103]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=103/value=val_103}
+Skewed Value to Truncated Path: {[103, val_103]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=103/value=val_103, [484, val_484]=/list_bucketing_static_part/ds=2008-04-08/hr=11/key=484/value=val_484}
Storage Desc Params:
serialization.format 1
PREHOOK: query: select count(1) from srcpart where ds = '2008-04-08'
diff --git a/ql/src/test/results/clientpositive/stats_list_bucket.q.out b/ql/src/test/results/clientpositive/stats_list_bucket.q.out
index c34c414..3bed86b 100644
--- a/ql/src/test/results/clientpositive/stats_list_bucket.q.out
+++ b/ql/src/test/results/clientpositive/stats_list_bucket.q.out
@@ -88,9 +88,9 @@
Sort Columns: []
Stored As SubDirectories: Yes
Skewed Columns: [c1, c2]
-Skewed Values: [[466, val_466], [287, val_287], [82, val_82]]
+Skewed Values: [[287, val_287], [466, val_466], [82, val_82]]
#### A masked pattern was here ####
-Skewed Value to Truncated Path: {[466, val_466]=/stats_list_bucket/ds=2008-04-08/hr=11/c1=466/c2=val_466, [82, val_82]=/stats_list_bucket/ds=2008-04-08/hr=11/c1=82/c2=val_82, [287, val_287]=/stats_list_bucket/ds=2008-04-08/hr=11/c1=287/c2=val_287}
+Skewed Value to Truncated Path: {[287, val_287]=/stats_list_bucket/ds=2008-04-08/hr=11/c1=287/c2=val_287, [466, val_466]=/stats_list_bucket/ds=2008-04-08/hr=11/c1=466/c2=val_466, [82, val_82]=/stats_list_bucket/ds=2008-04-08/hr=11/c1=82/c2=val_82}
Storage Desc Params:
serialization.format 1
PREHOOK: query: -- Also try non-partitioned table with list bucketing.