You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by mb...@apache.org on 2025/09/09 00:09:01 UTC
(asterixdb) 17/26: [NO ISSUE][OTH] Add extensions for drop transaction pre-commit
This is an automated email from the ASF dual-hosted git repository.
mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit 49c645601e62b4c876f1b77e9c8179506760d001
Author: Ali Alsuliman <al...@gmail.com>
AuthorDate: Tue Aug 26 21:13:54 2025 -0700
[NO ISSUE][OTH] Add extensions for drop transaction pre-commit
- user model changes: no
- storage format changes: no
- interface changes: no
Ext-ref: MB-67991
Change-Id: I419f53c25631377b4aeec55355aca7da3b8fc557
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20277
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Michael Blow <mb...@apache.org>
---
.../apache/asterix/app/translator/QueryTranslator.java | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
index f921ff023d..2b75477c6e 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
@@ -2149,6 +2149,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
validateDatasetsStateAfterNamespaceDrop(mdProvider, mdTxnCtx, datasets);
+ beforeDropTxnCommit(mdProvider, mdTxnCtx, EntityDetails.newDatabase(databaseName));
MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
return true;
} catch (Exception e) {
@@ -2334,6 +2335,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
}
validateDatasetsStateAfterNamespaceDrop(metadataProvider, mdTxnCtx, datasets);
+ beforeDropTxnCommit(metadataProvider, mdTxnCtx, EntityDetails.newDataverse(databaseName, dataverseName));
MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
return true;
} catch (Exception e) {
@@ -2537,6 +2539,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
ds.drop(metadataProvider, mdTxnCtx, jobsToExecute, bActiveTxn, progress, hcc, dropCorrespondingNodeGroup,
sourceLoc, EnumSet.of(DropOption.IF_EXISTS), requestParameters.isForceDropDataset());
+ beforeDropTxnCommit(metadataProvider, mdTxnCtx.getValue(),
+ EntityDetails.newDataset(databaseName, dataverseName, datasetName));
MetadataManager.INSTANCE.commitTransaction(mdTxnCtx.getValue());
return true;
} catch (Exception e) {
@@ -2656,6 +2660,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
// #. finally, delete the existing index
MetadataManager.INSTANCE.dropIndex(mdTxnCtx, databaseName, dataverseName, datasetName, indexName);
}
+ beforeDropTxnCommit(metadataProvider, mdTxnCtx,
+ EntityDetails.newIndex(databaseName, dataverseName, indexName));
MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
return true;
} catch (Exception e) {
@@ -3170,6 +3176,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
MetadataManager.INSTANCE.dropDatatype(mdTxnCtx, itemTypeDatabaseName,
dataset.getItemTypeDataverseName(), dataset.getItemTypeName());
}
+ beforeDropTxnCommit(metadataProvider, mdTxnCtx,
+ EntityDetails.newView(databaseName, dataverseName, viewName));
MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
return true;
} catch (Exception e) {
@@ -3600,6 +3608,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
MetadataManager.INSTANCE.dropDatatype(mdTxnCtx, inlineType.getDatabaseName(),
inlineType.getDataverseName(), inlineType.getName());
}
+ beforeDropTxnCommit(metadataProvider, mdTxnCtx,
+ EntityDetails.newFunction(databaseName, dataverseName, signature.getName(), signature.getArity()));
MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
return true;
} catch (Exception e) {
@@ -4083,6 +4093,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
throw new CompilationException(ErrorCode.UNKNOWN_SYNONYM, stmtSynDrop.getSourceLocation(), synonymName);
}
MetadataManager.INSTANCE.dropSynonym(mdTxnCtx, databaseName, dataverseName, synonymName);
+ beforeDropTxnCommit(metadataProvider, mdTxnCtx,
+ EntityDetails.newSynonym(databaseName, dataverseName, synonymName));
MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
return true;
} catch (Exception e) {
@@ -6048,6 +6060,11 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
//no op
}
+ protected void beforeDropTxnCommit(MetadataProvider mdProvider, MetadataTransactionContext mdTxnCtx,
+ EntityDetails entityDetails) throws AlgebricksException {
+ //no op
+ }
+
protected enum CreateResult {
NOOP,
CREATED,