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 <[email protected]>
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 <[email protected]>
Reviewed-by: Till Westmann <[email protected]>
Integration-Tests: Jenkins <[email protected]>
Tested-by: Jenkins <[email protected]>
---
.../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
+ }
+
}