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

okumin 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 625f9652a0a HIVE-28902: Fix unknown column PARTITION_NAME in 
aggrStatsUseDB (#5768) (Wechar, reviewed by Butao Zhang, Shohei Okumiya)
625f9652a0a is described below

commit 625f9652a0a612a0a1dd1a7681e5c149e41e9971
Author: Wechar Yu <[email protected]>
AuthorDate: Wed Apr 16 17:39:16 2025 +0800

    HIVE-28902: Fix unknown column PARTITION_NAME in aggrStatsUseDB (#5768) 
(Wechar, reviewed by Butao Zhang, Shohei Okumiya)
    
    Co-authored-by: wecharyu <[email protected]>
---
 .../hadoop/hive/metastore/MetaStoreDirectSql.java  |  2 +-
 .../hadoop/hive/metastore/TestObjectStore.java     | 26 ++++++++++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java
 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java
index 9869297c786..eed6586b943 100644
--- 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java
+++ 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java
@@ -1994,7 +1994,7 @@ private List<ColumnStatisticsObj> aggrStatsUseDB(String 
catName, String dbName,
     // Extrapolation is not needed.
     if (areAllPartsFound) {
       queryText = commonPrefix + " and \"COLUMN_NAME\" in (" + 
makeParams(colNames.size()) + ")"
-          + " and \"PARTITION_NAME\" in (" + makeParams(partNames.size()) + ")"
+          + " and " + PARTITIONS + ".\"PART_NAME\" in (" + 
makeParams(partNames.size()) + ")"
           + " and \"ENGINE\" = ? "
           + " group by \"COLUMN_NAME\", \"COLUMN_TYPE\"";
       start = doTrace ? System.nanoTime() : 0;
diff --git 
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/TestObjectStore.java
 
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/TestObjectStore.java
index 2f81c5fe555..481f476ef27 100644
--- 
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/TestObjectStore.java
+++ 
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/TestObjectStore.java
@@ -34,6 +34,7 @@
 import org.apache.hadoop.hive.metastore.api.Database;
 import org.apache.hadoop.hive.metastore.api.DecimalColumnStatsData;
 import org.apache.hadoop.hive.metastore.api.AddPackageRequest;
+import org.apache.hadoop.hive.metastore.api.AggrStats;
 import org.apache.hadoop.hive.metastore.api.DropPackageRequest;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.metastore.api.Function;
@@ -943,6 +944,31 @@ public void testPartitionStatisticsOps() throws Exception {
     Assert.assertEquals(0, stat.size());
   }
 
+  @Test
+  public void testAggrStatsUseDB() throws Exception {
+    Configuration conf2 = MetastoreConf.newMetastoreConf(conf);
+    MetastoreConf.setBoolVar(conf2, ConfVars.STATS_FETCH_BITVECTOR, false);
+    MetastoreConf.setBoolVar(conf2, ConfVars.STATS_FETCH_KLL, false);
+    objectStore.setConf(conf2);
+
+    createPartitionedTable(true, true);
+
+    AggrStats aggrStats;
+    try (AutoCloseable c = deadline()) {
+      aggrStats = objectStore.get_aggr_stats_for(DEFAULT_CATALOG_NAME, DB1, 
TABLE1,
+          Arrays.asList("test_part_col=a0", "test_part_col=a1", 
"test_part_col=a2"),
+          Collections.singletonList("test_part_col"), ENGINE);
+    }
+    List<ColumnStatisticsObj> stats = aggrStats.getColStats();
+    Assert.assertEquals(1, stats.size());
+    Assert.assertEquals(3, aggrStats.getPartsFound());
+
+    ColumnStatisticsData computedStats = 
aggrStats.getColStats().get(0).getStatsData();
+    ColumnStatisticsData expectedStats = new 
ColStatsBuilder<>(long.class).numNulls(3).numDVs(2)
+        .low(3L).high(4L).build();
+    assertEqualStatistics(expectedStats, computedStats);
+  }
+
   /**
    * Creates DB1 database, TABLE1 table with 3 partitions.
    * @param withPrivileges Should we create privileges as well

Reply via email to