I have working aggregation and simple UDFs. I've been trying to document
and understand each of the options available in a Drill UDF. Understanding
the different FunctionScope's, the ones that are allowed, the ones that are
not. The impact of different cost categories. The different  steps needed
to understand handling any of the supported data types  and structures in
drill.

Here are a few of my current road blocks. Any pointers would be greatly
appreciated.


   1. I've been trying to understand how to correctly use RepeatedHolders
   of whatever type. For this discussion lets start with a
   RepeatedBigIntHolder. I'm trying to figure out the best way to create a new
   one. I have not figured out where in the existing drill code someone does
   this. If I use a  RepeatedBigIntHolder as a Workspace object is is null to
   start with. I created a new one in the startup section of the udf but the
   vector was null. I can find no reference in creating a new BigIntVector.
   There is a way to create a BigIntVector and I did find an example of
   creating a new VarCharVector but I can't do that using the drill jar files
   from 1.0. The org.apache.drill.common.types.TypeProtos and
   the org.apache.drill.common.types.TypeProtos.MinorType classes do not
   appear to be accessible from the drill jar files.
   2. What is the best way to close out a UDF in the event it generates an
   exception? Are there specific steps one should follow to make a clean exit
   in a catch block that are beneficial to Drill?

Reply via email to