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 2020/07/31 16:53:11 UTC
[asterixdb] 02/03: [NO ISSUE] DROP DATASET IF EXISTS must not fail
if dataverse not found
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 ae88eceb5aa6e946d06db14547c5a4ae8740c551
Author: Dmitry Lychagin <dm...@couchbase.com>
AuthorDate: Thu Jul 23 15:36:44 2020 -0700
[NO ISSUE] DROP DATASET IF EXISTS must not fail if dataverse not found
Details:
- Fixed regression in DROP DATASET IF EXISTS.
The statement must not fail if dataset's dataverse
is not found.
Change-Id: I613c0b84cd57ce690b4e7d28e3e376ddfd633791
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/7325
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Till Westmann <ti...@apache.org>
---
.../java/org/apache/asterix/app/translator/QueryTranslator.java | 7 ++++++-
.../ddl/invalid-dataverse/invalid-dataverse.003.ddl.sqlpp | 2 +-
2 files changed, 7 insertions(+), 2 deletions(-)
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 0f669ef..66ea5f8 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
@@ -1579,7 +1579,12 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
// Check if the dataverse exists
Dataverse dv = MetadataManager.INSTANCE.getDataverse(mdTxnCtx.getValue(), dataverseName);
if (dv == null) {
- throw new CompilationException(ErrorCode.UNKNOWN_DATAVERSE, sourceLoc, dataverseName);
+ if (ifExists) {
+ MetadataManager.INSTANCE.commitTransaction(mdTxnCtx.getValue());
+ return;
+ } else {
+ throw new CompilationException(ErrorCode.UNKNOWN_DATAVERSE, sourceLoc, dataverseName);
+ }
}
Dataset ds = metadataProvider.findDataset(dataverseName, datasetName);
if (ds == null) {
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/invalid-dataverse/invalid-dataverse.003.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/invalid-dataverse/invalid-dataverse.003.ddl.sqlpp
index 7d482dd..0bb88db 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/invalid-dataverse/invalid-dataverse.003.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/invalid-dataverse/invalid-dataverse.003.ddl.sqlpp
@@ -24,5 +24,5 @@ use realDataverse;
drop type realDataverse.myType if exists;
create type realDataverse.myType as open { id: uuid, f1: int };
-drop dataset fakeDataverse.myDataset if exists;
+drop dataset fakeDataverse.myDataset /*if exists*/;