[
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)