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 2021/10/03 19:02:34 UTC

[asterixdb] branch master updated: [NO ISSUE][*DB][UDF] Return outcome on create library / function

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


The following commit(s) were added to refs/heads/master by this push:
     new 78481d1  [NO ISSUE][*DB][UDF] Return outcome on create library / function
78481d1 is described below

commit 78481d10763f8d18fbc03edd50ff5e562602be58
Author: Michael Blow <mb...@apache.org>
AuthorDate: Sat Oct 2 15:37:45 2021 -0400

    [NO ISSUE][*DB][UDF] Return outcome on create library / function
    
    Change-Id: Iad2485982f24ffe4de2fb34454df03aa891b25bc
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/13484
    Reviewed-by: Michael Blow <mb...@apache.org>
    Reviewed-by: Till Westmann <ti...@apache.org>
    Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
---
 .../asterix/app/translator/QueryTranslator.java    | 23 +++++++++++++++-------
 1 file changed, 16 insertions(+), 7 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 84a34a9..fbb173a 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
@@ -2775,7 +2775,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
         }
     }
 
-    protected void doCreateFunction(MetadataProvider metadataProvider, CreateFunctionStatement cfs,
+    protected CreateResult doCreateFunction(MetadataProvider metadataProvider, CreateFunctionStatement cfs,
             FunctionSignature functionSignature, IStatementRewriter stmtRewriter, IRequestParameters requestParameters)
             throws Exception {
         DataverseName dataverseName = functionSignature.getDataverseName();
@@ -2792,7 +2792,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
             if (existingFunction != null) {
                 if (cfs.getIfNotExists()) {
                     MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
-                    return;
+                    return CreateResult.NOOP;
                 } else if (!cfs.getReplaceIfExists()) {
                     throw new CompilationException(ErrorCode.FUNCTION_EXISTS, cfs.getSourceLocation(),
                             functionSignature.toString(false));
@@ -2951,13 +2951,14 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
                 MetadataManager.INSTANCE.updateFunction(mdTxnCtx, function);
             }
             MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("Installed function: " + functionSignature);
+            }
+            return existingFunction != null ? CreateResult.REPLACED : CreateResult.CREATED;
         } catch (Exception e) {
             abort(e, e, mdTxnCtx);
             throw e;
         }
-        if (LOGGER.isInfoEnabled()) {
-            LOGGER.info("Installed function: " + functionSignature);
-        }
     }
 
     private Triple<TypeSignature, TypeSignature, Datatype> translateFunctionParameterType(
@@ -3199,8 +3200,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
         }
     }
 
-    protected void doCreateLibrary(MetadataProvider metadataProvider, DataverseName dataverseName, String libraryName,
-            String libraryHash, CreateLibraryStatement cls, IHyracksClientConnection hcc,
+    protected CreateResult doCreateLibrary(MetadataProvider metadataProvider, DataverseName dataverseName,
+            String libraryName, String libraryHash, CreateLibraryStatement cls, IHyracksClientConnection hcc,
             IRequestParameters requestParameters) throws Exception {
         JobUtils.ProgressState progress = ProgressState.NO_PROGRESS;
         boolean prepareJobSuccessful = false;
@@ -3257,6 +3258,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
             MetadataManager.INSTANCE.updateLibrary(mdTxnCtx, newLibrary);
 
             MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+            return existingLibrary != null ? CreateResult.REPLACED : CreateResult.CREATED;
         } catch (Exception e) {
             if (bActiveTxn) {
                 abort(e, e, mdTxnCtx);
@@ -4754,4 +4756,11 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
             throws CompilationException {
         ExternalDataUtils.validateAdapterSpecificProperties(configuration, srcLoc, warningCollector);
     }
+
+    protected enum CreateResult {
+        NOOP,
+        CREATED,
+        REPLACED
+    }
+
 }