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 <[email protected]>
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 <[email protected]>
    Tested-by: Jenkins <[email protected]>
    Reviewed-by: Till Westmann <[email protected]>
---
 .../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*/;
 

Reply via email to