Skip to content

Commit 0c0499d

Browse files
author
Hongdan Zhu
committed
HIVE-28655: Implement HMS Related Drop Stats Changes Part2 (param COLUMN_STAT_ACCURATE related changes)
1 parent 063cfa3 commit 0c0499d

File tree

1 file changed

+15
-0
lines changed
  • standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore

1 file changed

+15
-0
lines changed

standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7431,6 +7431,13 @@ public boolean delete_column_statistics_req(DeleteColumnStatisticsRequest req) t
74317431
if (!isPartitioned || req.isTableLevel()) {
74327432
ret = rawStore.deleteTableColumnStatistics(parsedDbName[CAT_NAME], parsedDbName[DB_NAME], tableName, colNames, engine);
74337433
if (ret) {
7434+
Map<String, String> parameters = table.getParameters();
7435+
if (parameters == null) {
7436+
parameters = new HashMap<>();
7437+
}
7438+
parameters.put("COLUMN_STATS_ACCURATE", "false");
7439+
table.setParameters(parameters);
7440+
rawStore.alterTable(parsedDbName[CAT_NAME], parsedDbName[DB_NAME], tableName, table, null);
74347441
eventType = EventType.DELETE_TABLE_COLUMN_STAT;
74357442
for (String colName :
74367443
colNames == null ? table.getSd().getCols().stream().map(FieldSchema::getName).collect(Collectors.toList()) : colNames) {
@@ -7460,6 +7467,14 @@ public boolean delete_column_statistics_req(DeleteColumnStatisticsRequest req) t
74607467
.collect(Collectors.toList()) : colNames) {
74617468
for (String partName : partNames) {
74627469
List<String> partVals = getPartValsFromName(table, partName);
7470+
Partition partition = rawStore.getPartition(parsedDbName[CAT_NAME], parsedDbName[DB_NAME], tableName, partVals);
7471+
Map<String, String> partParams = partition.getParameters();
7472+
if (partParams == null) {
7473+
partParams = new HashMap<>();
7474+
}
7475+
partParams.put("COLUMN_STATS_ACCURATE", "false");
7476+
partition.setParameters(partParams);
7477+
rawStore.alterPartition(parsedDbName[CAT_NAME], parsedDbName[DB_NAME], tableName, partVals, partition, null);
74637478
if (transactionalListeners != null && !transactionalListeners.isEmpty()) {
74647479
MetaStoreListenerNotifier.notifyEvent(transactionalListeners, eventType,
74657480
new DeletePartitionColumnStatEvent(parsedDbName[CAT_NAME], parsedDbName[DB_NAME], tableName,

0 commit comments

Comments
 (0)