[
https://issues.apache.org/jira/browse/TAJO-1997?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15055285#comment-15055285
]
ASF GitHub Bot commented on TAJO-1997:
--------------------------------------
Github user jihoonson commented on a diff in the pull request:
https://github.com/apache/tajo/pull/883#discussion_r47456570
--- Diff:
tajo-core/src/main/java/org/apache/tajo/engine/function/FunctionLoader.java ---
@@ -299,4 +284,38 @@ private static StaticMethodInvocationDesc
extractStaticMethodInvocation(Method m
return sqlFuncs;
}
+
+ public static Collection<FunctionDesc> loadFunctions(TajoConf conf)
throws IOException, AmbiguousFunctionException {
+ List<FunctionDesc> functionList = new
ArrayList<>(loadBuiltinFunctions().values());
+ List<FunctionDesc> udfs = loadUserDefinedFunctions(conf);
+
+ return mergeFunctionLists(functionList, udfs);
+ }
+
+ @SafeVarargs
+ static Collection<FunctionDesc> mergeFunctionLists(List<FunctionDesc>
... functionLists)
+ throws AmbiguousFunctionException {
+
+ Map<Integer, FunctionDesc> funcMap = new HashMap<>();
+ List<FunctionDesc> baseFuncList = functionLists[0];
+
+ // Build a map with a first list
+ for (FunctionDesc desc: baseFuncList) {
+ funcMap.put(desc.hashCodeWithoutType(), desc);
+ }
+
+ // Check duplicates for other function lists(should be UDFs
practically)
+ for (int i=1; i<functionLists.length; i++) {
+ for (FunctionDesc desc: functionLists[i]) {
+ if (funcMap.containsKey(desc.hashCodeWithoutType())) {
--- End diff --
As you know, the equality check with hash code involves a possibility of
false positive. I know it is very rare, but we need to check the real equality
for valid operation.
> Registering UDF, it needs to check duplication
> ----------------------------------------------
>
> Key: TAJO-1997
> URL: https://issues.apache.org/jira/browse/TAJO-1997
> Project: Tajo
> Issue Type: Sub-task
> Components: Function/UDF
> Affects Versions: 0.11.0
> Reporter: Jongyoung Park
> Assignee: Jongyoung Park
> Priority: Minor
>
> Currently, Tajo doesn't check UDF signature whether it is duplicated with
> built-in functions.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)