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 <[email protected]> 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 <[email protected]> Reviewed-by: Michael Blow <[email protected]> --- .../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,
