[
https://issues.apache.org/jira/browse/DRILL-4726?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15481561#comment-15481561
]
ASF GitHub Bot commented on DRILL-4726:
---------------------------------------
Github user arina-ielchiieva commented on a diff in the pull request:
https://github.com/apache/drill/pull/574#discussion_r78292645
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionImplementationRegistry.java
---
@@ -138,18 +171,25 @@ private String functionReplacement(FunctionCall
functionCall) {
/**
* Find the Drill function implementation that matches the name, arg
types and return type.
- * @param name
- * @param argTypes
- * @param returnType
- * @return
+ * If exact function implementation was not found and in case if Dynamic
UDF Support is enabled
+ * loads all missing remote functions and tries to find Drill
implementation one more time.
*/
public DrillFuncHolder findExactMatchingDrillFunction(String name,
List<MajorType> argTypes, MajorType returnType) {
+ return findExactMatchingDrillFunction(name, argTypes, returnType,
true);
+ }
+
+ private DrillFuncHolder findExactMatchingDrillFunction(String name,
List<MajorType> argTypes, MajorType returnType, boolean retry) {
for (DrillFuncHolder h : drillFuncRegistry.getMethods(name)) {
if (h.matches(returnType, argTypes)) {
return h;
}
}
+ if (retry && optionManager != null &&
optionManager.getOption(ExecConstants.DYNAMIC_UDF_SUPPORT_ENABLED).bool_val) {
+ if (loadRemoteFunctions()) {
--- End diff --
Agree. I'll make loadFunctions method thread-safe.
> Dynamic UDFs support
> --------------------
>
> Key: DRILL-4726
> URL: https://issues.apache.org/jira/browse/DRILL-4726
> Project: Apache Drill
> Issue Type: New Feature
> Affects Versions: 1.6.0
> Reporter: Arina Ielchiieva
> Assignee: Arina Ielchiieva
> Fix For: Future
>
>
> Allow register UDFs without restart of Drillbits.
> Design is described in document below:
> https://docs.google.com/document/d/1FfyJtWae5TLuyheHCfldYUpCdeIezR2RlNsrOTYyAB4/edit?usp=sharing
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)