This is an automated email from the ASF dual-hosted git repository.

dkuzmenko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new 6ce7ad1c749 HIVE-28886: Addendum: Column names in the DESCRIBE 
FORMATTED stats output should be in lowercase (Denys Kuzmenko, reviewed by 
Krisztian Kasa)
6ce7ad1c749 is described below

commit 6ce7ad1c74902ca01da5150fb1737d08db82681f
Author: Denys Kuzmenko <[email protected]>
AuthorDate: Wed Apr 16 10:23:32 2025 +0300

    HIVE-28886: Addendum: Column names in the DESCRIBE FORMATTED stats output 
should be in lowercase (Denys Kuzmenko, reviewed by Krisztian Kasa)
    
    Closes #5773
---
 .../src/test/results/positive/col_stats.q.out      |  2 +-
 .../apache/hadoop/hive/common/StatsSetupConst.java | 37 ++++++----------------
 .../hadoop/hive/common/TestStatsSetupConst.java    |  4 +--
 3 files changed, 12 insertions(+), 31 deletions(-)

diff --git a/iceberg/iceberg-handler/src/test/results/positive/col_stats.q.out 
b/iceberg/iceberg-handler/src/test/results/positive/col_stats.q.out
index 3ef9a6b9fe9..2ea758790f8 100644
--- a/iceberg/iceberg-handler/src/test/results/positive/col_stats.q.out
+++ b/iceberg/iceberg-handler/src/test/results/positive/col_stats.q.out
@@ -505,7 +505,7 @@ num_trues
 num_falses                                 
 bit_vector             HL                  
 comment                                    
-COLUMN_STATS_ACCURATE  
{\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"A\":\"true\",\"C\":\"true\"}}
+COLUMN_STATS_ACCURATE  
{\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"a\":\"true\",\"c\":\"true\"}}
 PREHOOK: query: create table t1 (a int) stored by iceberg tblproperties 
('format-version'='2')
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
diff --git 
a/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/common/StatsSetupConst.java
 
b/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/common/StatsSetupConst.java
index aec1a3894f8..f2c6ef27f57 100644
--- 
a/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/common/StatsSetupConst.java
+++ 
b/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/common/StatsSetupConst.java
@@ -118,11 +118,6 @@ public String getAggregator(Configuration conf) {
    */
   public static final String NUM_ERASURE_CODED_FILES = "numFilesErasureCoded";
 
-  /**
-   * Temp dir for writing stats from tasks.
-   */
-  public static final String STATS_TMP_LOC = "hive.stats.tmp.loc";
-
   public static final String STATS_FILE_PREFIX = "tmpstats-";
   /**
    * List of all supported statistics
@@ -298,7 +293,7 @@ public static boolean areColumnStatsUptoDate(Map<String, 
String> params, String
   // note that set basic stats false will wipe out column stats too.
   public static void setBasicStatsState(Map<String, String> params, String 
setting) {
     if (setting.equals(FALSE)) {
-      if (params!=null && params.containsKey(COLUMN_STATS_ACCURATE)) {
+      if (params != null) {
         params.remove(COLUMN_STATS_ACCURATE);
       }
       return;
@@ -323,12 +318,8 @@ public static void setColumnStatsState(Map<String, String> 
params, List<String>
       return;
     }
     ColumnStatsAccurate stats = 
parseStatsAcc(params.get(COLUMN_STATS_ACCURATE));
-
-    for (String colName : colNames) {
-      if (!stats.columnStats.containsKey(colName)) {
-        stats.columnStats.put(colName, true);
-      }
-    }
+    colNames.forEach(colName -> 
+        stats.columnStats.putIfAbsent(colName.toLowerCase(), true));
 
     try {
       params.put(COLUMN_STATS_ACCURATE, 
ColumnStatsAccurate.objectWriter.writeValueAsString(stats));
@@ -346,22 +337,13 @@ public static List<String> 
getColumnsHavingStats(Map<String, String> params) {
       // No table/partition params, no statistics available
       return null;
     }
-
     ColumnStatsAccurate stats = 
parseStatsAcc(params.get(COLUMN_STATS_ACCURATE));
 
     // No stats available.
     if (stats == null) {
       return null;
     }
-
-    List<String> colNames = new ArrayList<String>();
-    for (Map.Entry<String, Boolean> entry : stats.columnStats.entrySet()) {
-      if (entry.getValue()) {
-        colNames.add(entry.getKey());
-      }
-    }
-
-    return colNames;
+    return ImmutableList.copyOf(stats.columnStats.keySet());
   }
 
   public static boolean canColumnStatsMerge(Map<String, String> params, String 
colName) {
@@ -377,7 +359,6 @@ public static void clearColumnStatsState(Map<String, 
String> params) {
     if (params == null || params.get(COLUMN_STATS_ACCURATE) == null) {
       return;
     }
-
     ColumnStatsAccurate stats = 
parseStatsAcc(params.get(COLUMN_STATS_ACCURATE));
     stats.columnStats.clear();
 
@@ -392,11 +373,11 @@ public static void removeColumnStatsState(Map<String, 
String> params, List<Strin
     if (params == null) {
       return;
     }
-    try {
-      ColumnStatsAccurate stats = 
parseStatsAcc(params.get(COLUMN_STATS_ACCURATE));
-      for (String string : colNames) {
-        stats.columnStats.remove(string);
-      }
+    ColumnStatsAccurate stats = 
parseStatsAcc(params.get(COLUMN_STATS_ACCURATE));
+    colNames.forEach(colName ->
+        stats.columnStats.remove(colName.toLowerCase()));
+
+    try {      
       params.put(COLUMN_STATS_ACCURATE, 
ColumnStatsAccurate.objectWriter.writeValueAsString(stats));
     } catch (JsonProcessingException e) {
       LOG.trace(e.getMessage());
diff --git 
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/common/TestStatsSetupConst.java
 
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/common/TestStatsSetupConst.java
index 24689215c2f..caa5ca82886 100644
--- 
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/common/TestStatsSetupConst.java
+++ 
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/common/TestStatsSetupConst.java
@@ -73,7 +73,7 @@ public void testStatColumnEntriesCompat() {
     StatsSetupConst.setBasicStatsState(params0, String.valueOf(true));
     StatsSetupConst.setColumnStatsState(params0, Lists.newArrayList("Foo"));
 
-    
assertEquals("{\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"Foo\":\"true\"}}",params0.get(StatsSetupConst.COLUMN_STATS_ACCURATE));
+    
assertEquals("{\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"foo\":\"true\"}}",params0.get(StatsSetupConst.COLUMN_STATS_ACCURATE));
   }
 
   @Test
@@ -109,6 +109,6 @@ public void testColumnEntries_areKept_whenBasicIsAbsent() {
     Map<String, String> params=new HashMap<>();
     StatsSetupConst.setBasicStatsState(params, String.valueOf(false));
     StatsSetupConst.setColumnStatsState(params, Lists.newArrayList("Foo"));
-    
assertEquals("{\"COLUMN_STATS\":{\"Foo\":\"true\"}}",params.get(StatsSetupConst.COLUMN_STATS_ACCURATE));
+    
assertEquals("{\"COLUMN_STATS\":{\"foo\":\"true\"}}",params.get(StatsSetupConst.COLUMN_STATS_ACCURATE));
   }
 }

Reply via email to