[NO ISSUE][*DB] Return outcome on create view / synonym
Change-Id: I0c0daa72f09e25f47b1080a8e5880539a4da93b2
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/13503
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Michael Blow <mblow@apache.org>
Reviewed-by: Till Westmann <tillw@apache.org>
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 fbb173a..0529c15 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
@@ -2505,9 +2505,9 @@
}
}
- protected void doCreateView(MetadataProvider metadataProvider, CreateViewStatement cvs, DataverseName dataverseName,
- String viewName, DataverseName itemTypeDataverseName, String itemTypeName, IStatementRewriter stmtRewriter,
- IRequestParameters requestParameters) throws Exception {
+ protected CreateResult doCreateView(MetadataProvider metadataProvider, CreateViewStatement cvs,
+ DataverseName dataverseName, String viewName, DataverseName itemTypeDataverseName, String itemTypeName,
+ IStatementRewriter stmtRewriter, IRequestParameters requestParameters) throws Exception {
SourceLocation sourceLoc = cvs.getSourceLocation();
MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
metadataProvider.setMetadataTxnContext(mdTxnCtx);
@@ -2524,7 +2524,7 @@
}
if (cvs.getIfNotExists()) {
MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
- return;
+ return CreateResult.NOOP;
} else if (!cvs.getReplaceIfExists()) {
throw new CompilationException(ErrorCode.VIEW_EXISTS, sourceLoc,
existingDataset.getDatasetFullyQualifiedName());
@@ -2671,6 +2671,7 @@
MetadataManager.INSTANCE.updateDataset(mdTxnCtx, view);
}
MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+ return existingDataset != null ? CreateResult.REPLACED : CreateResult.CREATED;
} catch (Exception e) {
abort(e, e, mdTxnCtx);
throw e;
@@ -3422,7 +3423,7 @@
}
}
- protected void doCreateSynonym(MetadataProvider metadataProvider, CreateSynonymStatement css,
+ protected CreateResult doCreateSynonym(MetadataProvider metadataProvider, CreateSynonymStatement css,
DataverseName dataverseName, String synonymName, DataverseName objectDataverseName, String objectName)
throws Exception {
MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
@@ -3441,13 +3442,14 @@
warningCollector
.warn(Warning.of(css.getSourceLocation(), ErrorCode.SYNONYM_EXISTS, synonymName));
}
- return;
+ return CreateResult.NOOP;
}
throw new CompilationException(ErrorCode.SYNONYM_EXISTS, css.getSourceLocation(), synonymName);
}
synonym = new Synonym(dataverseName, synonymName, objectDataverseName, objectName);
MetadataManager.INSTANCE.addSynonym(metadataProvider.getMetadataTxnContext(), synonym);
MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+ return CreateResult.CREATED;
} catch (Exception e) {
abort(e, e, mdTxnCtx);
throw e;