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*/;