Re: UDF

The patch is technically complete - i.e. it works and does its thing.

It's not strictly a bug fix but targets trunk. That's why I started the
discussion.

On 09/11/2018 02:53 PM, Jason Brown wrote:

Hi Robert,
Thanks for taking on this work. Is this message a heads up that a patch is
coming/complete, or to spawn a discussion about including this in 4.0?
Thanks,
-Jason
On Tue, Sep 11, 2018 at 2:32 AM, Robert Stupp <snazy@xxxxxxxx> wrote:

In an effort to clean up our hygiene and limit the dependencies used by
UDFs/UDAs, I think we should refactor the UDF code parts and remove the
dependency to the Java Driver in that area without breaking existing
UDFs/UDAs.
A working prototype is in this branch: https://github.com/snazy/
cassandra/tree/feature/remove-udf-driver-dep-trunk <
https://github.com/snazy/cassandra/tree/feature/remove-
udf-driver-dep-trunk> . The changes are rather trivial and provide 100%
backwards compatibility for existing UDFs.
The prototype copies the necessary parts from the Java Driver into the C*
source tree to org.apache.cassandra.cql3.functions.types and adopts its
usages - i.e. UDF/UDA code plus CQLSSTableWriter + StressCQLSSTableWriter.
The latter two classes have a reference to UDF’s UDHelper and had to be
changed as well.
Some functionality, like type parsing & handling, is duplicated in the
code base with this prototype - once in the “current” source tree and once
for UDFs. However, unifying the code paths is not trivial, since the UDF
sandbox prohibits the use of internal classes (direct and likely indirect
dependencies).
Robert
—
Robert Stupp
@snazy