[ https://issues.apache.org/jira/browse/DRILL-4726?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15468935#comment-15468935 ]
ASF GitHub Bot commented on DRILL-4726: --------------------------------------- Github user paul-rogers commented on a diff in the pull request: https://github.com/apache/drill/pull/574#discussion_r77736964 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/DrillFunctionRegistry.java --- @@ -64,62 +76,134 @@ .put("CONVERT_FROM", Pair.of(2, 2)) .put("FLATTEN", Pair.of(1, 1)).build(); + /** Registers all functions present in Drill classpath on start-up. All functions will be marked as built-in.*/ public DrillFunctionRegistry(ScanResult classpathScan) { + validate(BUILT_IN, classpathScan); + register(BUILT_IN, classpathScan, this.getClass().getClassLoader()); + if (logger.isTraceEnabled()) { + StringBuilder allFunctions = new StringBuilder(); + for (DrillFuncHolder method: registryHolder.getAllFunctionsWithHolders().values()) { + allFunctions.append(method.toString()).append("\n"); + } + logger.trace("Registered functions: [\n{}]", allFunctions); + } + } + + /** + * Validates all functions, present in jars. + * Will throw {@link FunctionValidationException} if: + * 1. Jar with the same name has been already registered. + * 2. Conflicting function with the similar signature is found. + * 3. Aggregating function is not deterministic. + * + * @return list of validated functions + */ + public List<Func> validate(String jarName, ScanResult classpathScan) { --- End diff -- I like how you broke this out into a separate function. > 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)