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

Jacques Nadeau commented on DRILL-3834:
---------------------------------------

Since Drill only uses the UDF function bodies (and extracts them using source), 
Drill doesn't currently take advantage of the imports that may be expressed in 
the source file. It is easy enough to retrieve these imports and include them 
in compilation. However, that would be ineffective in this situation. This is 
because Drill composes a single class that uses many of these UDFs 
simultaneously. If Drill just bulk-imported all the required class names, it 
would be likely that the name conflicts would occur that the user couldn't work 
around (and would be very confusing). A cleaner way is to rewrite the method 
blocks to have full references to required classes. This can be looped in with 
the VisitReferenceType method of ModifiedUnparseVisitor. However, we then need 
to do the full class resolution at this time (similar to what would be done at 
compile time). The code already exists in UnitCompiler.getReferenceType() 
however it is protected. We need to decide how to resolve this (or come up with 
another approach).

> Remove requirement for fully resolved types in UDFs.
> ----------------------------------------------------
>
>                 Key: DRILL-3834
>                 URL: https://issues.apache.org/jira/browse/DRILL-3834
>             Project: Apache Drill
>          Issue Type: Improvement
>          Components: Execution - Codegen
>            Reporter: Jacques Nadeau
>
> Right now, UDFs require the user to write code which include fully qualified 
> types. This makes UDFs harder to write and harder to read. We should update 
> the functionality to avoid this requirement.



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

Reply via email to