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