This is an automated email from the ASF dual-hosted git repository.
nrg4878 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 f9705a87ed8 HIVE-29587: Cleanup acid table dir after async drop (#6459)
f9705a87ed8 is described below
commit f9705a87ed82adba92eada36e89198fad22de05b
Author: Venu Reddy <[email protected]>
AuthorDate: Thu May 7 01:15:40 2026 +0530
HIVE-29587: Cleanup acid table dir after async drop (#6459)
* HIVE-29587: Cleanup acid table dir after async drop
* Rework for comments
---
.../hadoop/hive/ql/ddl/database/drop/DropDatabaseDesc.java | 2 +-
.../hive/ql/ddl/database/drop/DropDatabaseOperation.java | 2 +-
ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java | 2 +-
.../hive/ql/txn/compactor/handler/CompactionCleaner.java | 2 +-
.../src/gen/thrift/gen-cpp/hive_metastore_types.cpp | 8 +++++---
.../src/gen/thrift/gen-cpp/hive_metastore_types.h | 3 ++-
.../apache/hadoop/hive/metastore/api/CompactionType.java | 5 ++++-
.../src/gen/thrift/gen-php/metastore/CompactionType.php | 3 +++
.../src/gen/thrift/gen-py/hive_metastore/ttypes.py | 3 +++
.../src/gen/thrift/gen-rb/hive_metastore_types.rb | 5 +++--
.../metastore-common/src/main/thrift/hive_metastore.thrift | 1 +
.../apache/hadoop/hive/metastore/AcidEventListener.java | 3 ++-
.../hadoop/hive/metastore/handler/DropDatabaseHandler.java | 4 ----
.../hadoop/hive/metastore/handler/DropTableHandler.java | 8 +++++++-
.../org/apache/hadoop/hive/metastore/txn/TxnStore.java | 1 +
.../org/apache/hadoop/hive/metastore/txn/TxnUtils.java | 4 ++++
.../hadoop/hive/metastore/txn/entities/CompactionInfo.java | 11 ++---------
.../txn/jdbc/functions/CleanupRecordsFunction.java | 14 +++++++++-----
.../metastore/txn/jdbc/functions/MarkCleanedFunction.java | 2 +-
19 files changed, 51 insertions(+), 32 deletions(-)
diff --git
a/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/drop/DropDatabaseDesc.java
b/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/drop/DropDatabaseDesc.java
index 5dab0ab5da3..be5e21a9ba8 100644
---
a/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/drop/DropDatabaseDesc.java
+++
b/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/drop/DropDatabaseDesc.java
@@ -68,7 +68,7 @@ public boolean getIfExists() {
return ifExists;
}
- public boolean isCasdade() {
+ public boolean isCascade() {
return cascade;
}
diff --git
a/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/drop/DropDatabaseOperation.java
b/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/drop/DropDatabaseOperation.java
index 3f3708c8db4..b544b7b4a24 100644
---
a/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/drop/DropDatabaseOperation.java
+++
b/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/drop/DropDatabaseOperation.java
@@ -57,7 +57,7 @@ public int execute() throws HiveException {
ProactiveEviction.evict(context.getConf(),
llapEvictRequestBuilder.build());
}
// Unregister the functions as well
- if (desc.isCasdade()) {
+ if (desc.isCascade()) {
FunctionRegistry.unregisterPermanentFunctions(dbName); // TODO
catalog. add catalog for unregistering functions. Depend on HIVE-29282
}
} catch (NoSuchObjectException ex) {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
index 9beeb20f1c2..cd33896807b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
@@ -750,7 +750,7 @@ public void dropDatabase(DropDatabaseDesc desc)
req.setName(desc.getDatabaseName());
req.setIgnoreUnknownDb(desc.getIfExists());
req.setDeleteData(desc.isDeleteData());
- req.setCascade(desc.isCasdade());
+ req.setCascade(desc.isCascade());
req.setSoftDelete(isSoftDelete);
req.setTxnId(txnId);
diff --git
a/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/handler/CompactionCleaner.java
b/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/handler/CompactionCleaner.java
index b906432510f..2a593e4927f 100644
---
a/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/handler/CompactionCleaner.java
+++
b/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/handler/CompactionCleaner.java
@@ -198,7 +198,7 @@ private void cleanUsingLocation(CompactionInfo ci, String
path, boolean requires
deleted = fsRemover.clean(getCleaningRequestBasedOnLocation(ci, path));
}
if (!deleted.isEmpty()) {
- txnHandler.markCleaned(ci.asSoftDeleted());
+ txnHandler.markCleaned(ci);
} else {
txnHandler.clearCleanerStart(ci);
}
diff --git
a/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
b/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
index 4d827d63ad2..cac4a842147 100644
---
a/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
+++
b/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
@@ -241,16 +241,18 @@ int _kCompactionTypeValues[] = {
CompactionType::MAJOR,
CompactionType::REBALANCE,
CompactionType::ABORT_TXN_CLEANUP,
- CompactionType::SMART_OPTIMIZE
+ CompactionType::SMART_OPTIMIZE,
+ CompactionType::DEFERRED_CLEANUP
};
const char* _kCompactionTypeNames[] = {
"MINOR",
"MAJOR",
"REBALANCE",
"ABORT_TXN_CLEANUP",
- "SMART_OPTIMIZE"
+ "SMART_OPTIMIZE",
+ "DEFERRED_CLEANUP"
};
-const std::map<int, const char*>
_CompactionType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(5,
_kCompactionTypeValues, _kCompactionTypeNames),
::apache::thrift::TEnumIterator(-1, nullptr, nullptr));
+const std::map<int, const char*>
_CompactionType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(6,
_kCompactionTypeValues, _kCompactionTypeNames),
::apache::thrift::TEnumIterator(-1, nullptr, nullptr));
std::ostream& operator<<(std::ostream& out, const CompactionType::type& val) {
std::map<int, const char*>::const_iterator it =
_CompactionType_VALUES_TO_NAMES.find(val);
diff --git
a/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/hive_metastore_types.h
b/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/hive_metastore_types.h
index fde2a96483a..02f6720de00 100644
---
a/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/hive_metastore_types.h
+++
b/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/hive_metastore_types.h
@@ -129,7 +129,8 @@ struct CompactionType {
MAJOR = 2,
REBALANCE = 3,
ABORT_TXN_CLEANUP = 4,
- SMART_OPTIMIZE = 5
+ SMART_OPTIMIZE = 5,
+ DEFERRED_CLEANUP = 6
};
};
diff --git
a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CompactionType.java
b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CompactionType.java
index 3394aca64e0..a64074e96c1 100644
---
a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CompactionType.java
+++
b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CompactionType.java
@@ -13,7 +13,8 @@ public enum CompactionType implements org.apache.thrift.TEnum
{
MAJOR(2),
REBALANCE(3),
ABORT_TXN_CLEANUP(4),
- SMART_OPTIMIZE(5);
+ SMART_OPTIMIZE(5),
+ DEFERRED_CLEANUP(6);
private final int value;
@@ -45,6 +46,8 @@ public static CompactionType findByValue(int value) {
return ABORT_TXN_CLEANUP;
case 5:
return SMART_OPTIMIZE;
+ case 6:
+ return DEFERRED_CLEANUP;
default:
return null;
}
diff --git
a/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/CompactionType.php
b/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/CompactionType.php
index 45982da0e8b..4cf4d405fa8 100644
---
a/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/CompactionType.php
+++
b/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/CompactionType.php
@@ -28,12 +28,15 @@ final class CompactionType
const SMART_OPTIMIZE = 5;
+ const DEFERRED_CLEANUP = 6;
+
static public $__names = array(
1 => 'MINOR',
2 => 'MAJOR',
3 => 'REBALANCE',
4 => 'ABORT_TXN_CLEANUP',
5 => 'SMART_OPTIMIZE',
+ 6 => 'DEFERRED_CLEANUP',
);
}
diff --git
a/standalone-metastore/metastore-common/src/gen/thrift/gen-py/hive_metastore/ttypes.py
b/standalone-metastore/metastore-common/src/gen/thrift/gen-py/hive_metastore/ttypes.py
index 14f8b05ccbf..ee7b3f22c34 100644
---
a/standalone-metastore/metastore-common/src/gen/thrift/gen-py/hive_metastore/ttypes.py
+++
b/standalone-metastore/metastore-common/src/gen/thrift/gen-py/hive_metastore/ttypes.py
@@ -158,6 +158,7 @@ class CompactionType(object):
REBALANCE = 3
ABORT_TXN_CLEANUP = 4
SMART_OPTIMIZE = 5
+ DEFERRED_CLEANUP = 6
_VALUES_TO_NAMES = {
1: "MINOR",
@@ -165,6 +166,7 @@ class CompactionType(object):
3: "REBALANCE",
4: "ABORT_TXN_CLEANUP",
5: "SMART_OPTIMIZE",
+ 6: "DEFERRED_CLEANUP",
}
_NAMES_TO_VALUES = {
@@ -173,6 +175,7 @@ class CompactionType(object):
"REBALANCE": 3,
"ABORT_TXN_CLEANUP": 4,
"SMART_OPTIMIZE": 5,
+ "DEFERRED_CLEANUP": 6,
}
diff --git
a/standalone-metastore/metastore-common/src/gen/thrift/gen-rb/hive_metastore_types.rb
b/standalone-metastore/metastore-common/src/gen/thrift/gen-rb/hive_metastore_types.rb
index 90480b9c978..3905ff02a88 100644
---
a/standalone-metastore/metastore-common/src/gen/thrift/gen-rb/hive_metastore_types.rb
+++
b/standalone-metastore/metastore-common/src/gen/thrift/gen-rb/hive_metastore_types.rb
@@ -73,8 +73,9 @@ module CompactionType
REBALANCE = 3
ABORT_TXN_CLEANUP = 4
SMART_OPTIMIZE = 5
- VALUE_MAP = {1 => "MINOR", 2 => "MAJOR", 3 => "REBALANCE", 4 =>
"ABORT_TXN_CLEANUP", 5 => "SMART_OPTIMIZE"}
- VALID_VALUES = Set.new([MINOR, MAJOR, REBALANCE, ABORT_TXN_CLEANUP,
SMART_OPTIMIZE]).freeze
+ DEFERRED_CLEANUP = 6
+ VALUE_MAP = {1 => "MINOR", 2 => "MAJOR", 3 => "REBALANCE", 4 =>
"ABORT_TXN_CLEANUP", 5 => "SMART_OPTIMIZE", 6 => "DEFERRED_CLEANUP"}
+ VALID_VALUES = Set.new([MINOR, MAJOR, REBALANCE, ABORT_TXN_CLEANUP,
SMART_OPTIMIZE, DEFERRED_CLEANUP]).freeze
end
module GrantRevokeType
diff --git
a/standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift
b/standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift
index ec9246a32d3..14785a6e9b4 100644
---
a/standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift
+++
b/standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift
@@ -220,6 +220,7 @@ enum CompactionType {
REBALANCE = 3,
ABORT_TXN_CLEANUP = 4,
SMART_OPTIMIZE = 5,
+ DEFERRED_CLEANUP = 6,
}
enum GrantRevokeType {
diff --git
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/AcidEventListener.java
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/AcidEventListener.java
index 3b5eb0db028..d8f51ad3ce5 100644
---
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/AcidEventListener.java
+++
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/AcidEventListener.java
@@ -88,7 +88,8 @@ public void onDropTable(DropTableEvent tableEvent) throws
MetaException {
if (currentTxn > 0) {
try {
- CompactionRequest rqst = new CompactionRequest(table.getDbName(),
table.getTableName(), CompactionType.MAJOR);
+ CompactionRequest rqst = new CompactionRequest(table.getDbName(),
table.getTableName(),
+ CompactionType.DEFERRED_CLEANUP);
rqst.setRunas(TxnUtils.findUserToRunAs(table.getSd().getLocation(), table,
conf));
rqst.putToProperties("location", table.getSd().getLocation());
rqst.putToProperties("ifPurge",
Boolean.toString(isMustPurge(tableEvent.getEnvironmentContext(), table)));
diff --git
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/handler/DropDatabaseHandler.java
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/handler/DropDatabaseHandler.java
index bc6e9b95320..1a980512160 100644
---
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/handler/DropDatabaseHandler.java
+++
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/handler/DropDatabaseHandler.java
@@ -28,7 +28,6 @@
import java.util.concurrent.atomic.AtomicReference;
import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hive.common.repl.ReplConst;
import org.apache.hadoop.hive.metastore.Batchable;
import org.apache.hadoop.hive.metastore.HMSHandler;
import org.apache.hadoop.hive.metastore.IHMSHandler;
@@ -137,9 +136,6 @@ public DropDatabaseResult execute() throws TException,
IOException {
if (isSoftDelete) {
context = new EnvironmentContext();
context.putToProperties(hive_metastoreConstants.TXN_ID,
String.valueOf(request.getTxnId()));
- if (ReplChangeManager.isSourceOfReplication(db)) {
- context.putToProperties(ReplConst.SOURCE_OF_REPLICATION,
Boolean.TRUE.toString());
- }
request.setDeleteManagedDir(false);
}
DropTableRequest dropRequest = new DropTableRequest(name,
table.getTableName());
diff --git
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/handler/DropTableHandler.java
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/handler/DropTableHandler.java
index bc78b0e6d06..a655bf12cec 100644
---
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/handler/DropTableHandler.java
+++
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/handler/DropTableHandler.java
@@ -29,6 +29,7 @@
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hive.common.TableName;
+import org.apache.hadoop.hive.common.repl.ReplConst;
import org.apache.hadoop.hive.metastore.HMSHandler;
import org.apache.hadoop.hive.metastore.IHMSHandler;
import org.apache.hadoop.hive.metastore.MetaStoreListenerNotifier;
@@ -37,6 +38,7 @@
import org.apache.hadoop.hive.metastore.Warehouse;
import org.apache.hadoop.hive.metastore.api.Database;
import org.apache.hadoop.hive.metastore.api.DropTableRequest;
+import org.apache.hadoop.hive.metastore.api.EnvironmentContext;
import org.apache.hadoop.hive.metastore.api.GetTableRequest;
import org.apache.hadoop.hive.metastore.api.MetaException;
import org.apache.hadoop.hive.metastore.api.NoSuchObjectException;
@@ -88,7 +90,11 @@ public DropTableResult execute() throws TException {
throw new MetaException("Drop table in REMOTE database " +
db.getName() + " is not allowed");
}
isReplicated = isDbReplicationTarget(db);
-
+ EnvironmentContext context = request.getEnvContext();
+ if (!request.isDeleteData() && context != null &&
ReplChangeManager.isSourceOfReplication(db)) {
+ // Needed when the table data is asynchronously removed(soft delete)
+ context.putToProperties(ReplConst.SOURCE_OF_REPLICATION,
Boolean.TRUE.toString());
+ }
checkInterrupted();
// Check if table is part of a materialized view.
// If it is, it cannot be dropped.
diff --git
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnStore.java
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnStore.java
index 138acedc854..22e6c279fc8 100644
---
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnStore.java
+++
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnStore.java
@@ -135,6 +135,7 @@ enum MUTEX_KEY {
char REBALANCE_TYPE = 'r';
char ABORT_TXN_CLEANUP_TYPE = 'c';
char SMART_OPTIMIZE_TYPE = '*';
+ char DEFERRED_CLEANUP = 'd';
String[] COMPACTION_STATES = new String[] {INITIATED_RESPONSE,
WORKING_RESPONSE, CLEANING_RESPONSE, FAILED_RESPONSE,
SUCCEEDED_RESPONSE, DID_NOT_INITIATE_RESPONSE, REFUSED_RESPONSE };
diff --git
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnUtils.java
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnUtils.java
index 525d6654a27..aa613aa8192 100644
---
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnUtils.java
+++
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnUtils.java
@@ -612,6 +612,8 @@ public static CompactionType
dbCompactionType2ThriftType(char dbValue) throws SQ
return CompactionType.ABORT_TXN_CLEANUP;
case TxnStore.SMART_OPTIMIZE_TYPE:
return CompactionType.SMART_OPTIMIZE;
+ case TxnStore.DEFERRED_CLEANUP:
+ return CompactionType.DEFERRED_CLEANUP;
default:
throw new SQLException("Unexpected compaction type " + dbValue);
}
@@ -629,6 +631,8 @@ public static Character
thriftCompactionType2DbType(CompactionType ct) throws Me
return TxnStore.ABORT_TXN_CLEANUP_TYPE;
case SMART_OPTIMIZE:
return TxnStore.SMART_OPTIMIZE_TYPE;
+ case DEFERRED_CLEANUP:
+ return TxnStore.DEFERRED_CLEANUP;
default:
throw new MetaException("Unexpected compaction type " + ct);
}
diff --git
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/entities/CompactionInfo.java
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/entities/CompactionInfo.java
index 9c4c8a76857..a56b0a98ed9 100644
---
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/entities/CompactionInfo.java
+++
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/entities/CompactionInfo.java
@@ -88,7 +88,6 @@ public class CompactionInfo implements
Comparable<CompactionInfo> {
private String fullPartitionName = null;
private String fullTableName = null;
private StringableMap propertiesMap;
- private boolean softDelete;
public CompactionInfo(String dbname, String tableName, String partName,
CompactionType type) {
this.dbname = dbname;
@@ -192,7 +191,6 @@ public String toString() {
.append("numberOfBuckets", numberOfBuckets)
.append("orderByClause", orderByClause)
.append("minOpenWriteTxnId", minOpenWriteTxnId)
- .append("softDelete", softDelete)
.build();
}
@@ -372,13 +370,8 @@ public boolean isAbortedTxnCleanup() {
return type == CompactionType.ABORT_TXN_CLEANUP;
}
- public CompactionInfo asSoftDeleted() {
- this.softDelete = true;
- return this;
- }
-
- public boolean isSoftDelete() {
- return softDelete;
+ public boolean isDeferredCleanup() {
+ return CompactionType.DEFERRED_CLEANUP == type;
}
public boolean isSourceOfReplication() {
diff --git
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/jdbc/functions/CleanupRecordsFunction.java
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/jdbc/functions/CleanupRecordsFunction.java
index 5a6696158a7..5d0d6f584f1 100644
---
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/jdbc/functions/CleanupRecordsFunction.java
+++
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/jdbc/functions/CleanupRecordsFunction.java
@@ -25,6 +25,7 @@
import org.apache.hadoop.hive.metastore.api.MetaException;
import org.apache.hadoop.hive.metastore.api.Partition;
import org.apache.hadoop.hive.metastore.api.Table;
+import org.apache.hadoop.hive.metastore.txn.TxnStore;
import org.apache.hadoop.hive.metastore.txn.jdbc.MultiDataSourceJdbcResource;
import org.apache.hadoop.hive.metastore.txn.jdbc.TransactionalFunction;
import org.slf4j.Logger;
@@ -66,7 +67,8 @@ public class CleanupRecordsFunction implements
TransactionalFunction<Void> {
"\"CQ_DATABASE\" = :dbName AND " +
"(\"CQ_TABLE\" = :tableName OR :tableName IS NULL) AND " +
"(\"CQ_PARTITION\" = :partName OR :partName IS NULL) AND " +
- "(\"CQ_TXN_ID\" != :txnId OR :txnId IS NULL)");
+ "(\"CQ_TXN_ID\" != :txnId OR :txnId IS NULL) AND " +
+ "(\"CQ_TYPE\" != :cType)");
put((hiveObjectType, keepTxnToWriteIdMetaData) ->
HIVE_OBJECT_TYPES.contains(hiveObjectType),
"DELETE FROM \"COMPLETED_COMPACTIONS\" WHERE " +
"\"CC_DATABASE\" = :dbName AND " +
@@ -112,7 +114,6 @@ public CleanupRecordsFunction(HiveObjectType type, Database
db, Table table, Ite
public Void execute(MultiDataSourceJdbcResource jdbcResource) throws
MetaException {
// cleanup should be done only for objects belonging to default catalog
List<MapSqlParameterSource> paramSources = new ArrayList<>();
-
switch (type) {
case DATABASE: {
if (!defaultCatalog.equals(db.getCatalogName())) {
@@ -124,7 +125,8 @@ public Void execute(MultiDataSourceJdbcResource
jdbcResource) throws MetaExcepti
.addValue("dbName", db.getName().toLowerCase())
.addValue("tableName", null, Types.VARCHAR)
.addValue("partName", null, Types.VARCHAR)
- .addValue("txnId", txnId, Types.BIGINT));
+ .addValue("txnId", txnId, Types.BIGINT)
+ .addValue("cType", Character.toString(TxnStore.DEFERRED_CLEANUP),
Types.CHAR));
break;
}
case TABLE: {
@@ -137,7 +139,8 @@ public Void execute(MultiDataSourceJdbcResource
jdbcResource) throws MetaExcepti
.addValue("dbName", table.getDbName().toLowerCase())
.addValue("tableName", table.getTableName().toLowerCase(),
Types.VARCHAR)
.addValue("partName", null, Types.VARCHAR)
- .addValue("txnId", null, Types.BIGINT));
+ .addValue("txnId", null, Types.BIGINT)
+ .addValue("cType", Character.toString(TxnStore.DEFERRED_CLEANUP),
Types.CHAR));
break;
}
case PARTITION: {
@@ -155,7 +158,8 @@ public Void execute(MultiDataSourceJdbcResource
jdbcResource) throws MetaExcepti
.addValue("dbName", table.getDbName().toLowerCase())
.addValue("tableName", table.getTableName().toLowerCase(),
Types.VARCHAR)
.addValue("partName", Warehouse.makePartName(partCols,
partVals), Types.VARCHAR)
- .addValue("txnId", null, Types.BIGINT));
+ .addValue("txnId", null, Types.BIGINT)
+ .addValue("cType",
Character.toString(TxnStore.DEFERRED_CLEANUP), Types.CHAR));
}
}
}
diff --git
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/jdbc/functions/MarkCleanedFunction.java
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/jdbc/functions/MarkCleanedFunction.java
index 27b67d1feae..5c07e654911 100644
---
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/jdbc/functions/MarkCleanedFunction.java
+++
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/jdbc/functions/MarkCleanedFunction.java
@@ -50,7 +50,7 @@ public MarkCleanedFunction(CompactionInfo info) {
public Void execute(MultiDataSourceJdbcResource jdbcResource) throws
MetaException {
NamedParameterJdbcTemplate jdbcTemplate = jdbcResource.getJdbcTemplate();
MapSqlParameterSource param;
- if (info.isSoftDelete()) {
+ if (info.isDeferredCleanup()) {
// Remove compaction queue record and return
removeCompactionAndAbortRetryEntries(info, jdbcTemplate);
return null;