[ 
https://issues.apache.org/jira/browse/DRILL-3516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14633745#comment-14633745
 ] 

Jacques Nadeau commented on DRILL-3516:
---------------------------------------

My notes to better provide the conceptual overview:

The key thing to understand is that a UDF is slightly incomplete Java.  This is 
because Drill actually rips apart the functionality of the UDF and recomposes 
it directly within expression evaluation code.  This gives a substantial 
performance and memory benefit but also creates some challenges.  As such, 
there are some key rules one should follow:
 
 - Don't use imports
 - Both class file and source file have to be on the classpath (yes, Drill uses 
the source of the function)
 - Any JAR files holding UDF resources must include drill-module.conf marker 
file so that Drill knows to include that JAR in consideration for UDF loading
 - ValueHolders should be treated as structs.  As such, don't call any methods 
on ValueHolders

> UDF documentation doesn't get people where they need to be
> ----------------------------------------------------------
>
>                 Key: DRILL-3516
>                 URL: https://issues.apache.org/jira/browse/DRILL-3516
>             Project: Apache Drill
>          Issue Type: Bug
>            Reporter: Ted Dunning
>
> The UDF documentation on the web side rooted at 
> http://drill.apache.org/docs/develop-custom-functions/ does not describe the 
> high level process for how UDF's are used, nor does it describe why simple 
> things like toString can't work on *Holder data structures.
> This leads to huge confusion and frustration on the part of potentially 
> contributors.
> Here are some pertinent threads:
> http://mail-archives.apache.org/mod_mbox/drill-user/201507.mbox/%3CCACAwhF%3DBxs-bXNdrm0pNJ4e8hZiaueqtZMhJ%3DRiBpf%3Dt%3DzEOWA%40mail.gmail.com%3E
> http://mail-archives.apache.org/mod_mbox/drill-user/201507.mbox/%3CCACAwhFmwWkP6udc05UEGFTzpEsaRvAxSRKW%2B2Mg-ijYX8QoQxQ%40mail.gmail.com%3E



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to