Hi James,

Thanks for your answer, from that I understand that built-in functions as described in that post are a way to extend Phoenix, but to use each new function you should recompile and redeploy Phoenix.

Again, thanks for the information,



2014-04-06 9:49 GMT+02:00 James Taylor <jamestaylor@apache.org>:
Hi Juan,
Good question. We're definitely interested in contributions for any built-ins that folks think are useful, provided that they're generally useful and follow SQL standards. In the past we've taken these and bundled them in the next release of Phoenix. So please feel free to contribute.

The JIRA you mentioned (https://issues.apache.org/jira/browse/PHOENIX-538) is more about having a way for built-in functions to be dynamically loaded. We're open to that as well, but until coprocessors have a way of being "sandboxed", we'd need a way to disable the feature, as I suspect many companies would consider this a potential security hole (and thus want a way of disabling it).


On Sat, Apr 5, 2014 at 11:02 AM, Juan Rodríguez Hortalá <juan.rodriguez.hortala@gmail.com> wrote:


In another message to this list, I saw a reference to http://phoenix-hbase.blogspot.com.es/2013/04/how-to-add-your-own-built-in-function.html?m=1, where it’s shown how to create a scalar built-in function in Phoenix. I’m surprised because I though UDF’s were not in the roadmap, according to this Jira https://issues.apache.org/jira/browse/PHOENIX-538 where it says “until coprocessors have a way to run inside their own sandbox, we'd want to have a way to disable this feature”. I think this feature is very interesting, so I’m wondering whether this built-in functions are executed in the client or in the Region Servers as coprocessors. If that’s the case, are they running in a sandboxed environment to protect the Region Servers?

Thanks a lot for the information,


Juan Rodríguez Hortalá