cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tyler Hobbs (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-7395) Support for pure user-defined functions (UDF)
Date Wed, 06 Aug 2014 18:56:19 GMT


Tyler Hobbs commented on CASSANDRA-7395:

Comments on 7395.txt:
* UFMetadata
** Class docstring is bad
** Commented out code: {{//CompositeType.getInstance(UTF8Type.instance, UTF8Type.instance);}}
** toString(): missing opening curly and class name?  Signature format is a bit strange as
* CreateFunctionStatement
** doExecute():
*** ifNotExists is not used correctly
*** add comment about why you add to the registry first and then check invalid
* UDFFunctionOverloads
** License header needs to be ASF
* StdLibMath
** License header needs to be ASF
** Could move these into UFTest if we don't intend keep these long-term. (I'm not sure if
we do.)
* UDFunction
** Capitalize "invalid UDF language" => "Invalid UDF language"
** When invocation fails, don't throw an IRE.  Rethrow the "cause" exception instead.
*** Instead of responding with a full stacktrace, log the error and just use the classname/message
for the response.
* DefsTables
** mergeFunctions(): refers to keyspaces, but each partition is actually a set of overloaded
functions with the same name.  Just needs cleanup of comments and variable names.
* UFTest
** Check failure of normal CREATE when function exists
** Cover {{DROP IF EXISTS}}

What's the purpose of {{keyspaceRefs}}?

Regarding schema change events, we do want to return a SCHEMA_CHANGE Event for UDF DDL operations,
and we want to push the same event to listeners.  However, we only want to do this when protocol_version
>= 4. (I think we should go ahead and bump the protocol version in transport.Server and
QueryOptions)  I would add FUNCTION to the TARGET enum instead of making a new Event subclass.

The reason we need to respond with a schema change message is so that drivers can know they
should wait for schema agreement.  Pushed notifications are a little less useful (IMO), but
I spoke with Sylvain and we agreed these should still happen in some fashion.  If you feel
like you want to split this work out, it's okay, just open another ticket.

* Bad docstring on test_migration
* Commented out code at the bottom

bq. UFMetaData/compatibleArgs: I'd like to defer the change to a separate commit because it
touches a lot of files. But I'm +1 to do that.

Okay, but it should probably be done as part of this ticket.  Feel free to split that out
into a separate patch.

> Support for pure user-defined functions (UDF)
> ---------------------------------------------
>                 Key: CASSANDRA-7395
>                 URL:
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: API, Core
>            Reporter: Jonathan Ellis
>            Assignee: Robert Stupp
>              Labels: cql
>             Fix For: 3.0
>         Attachments: 7395-dtest.txt, 7395.txt, udf-create-syntax.png, udf-drop-syntax.png
> We have some tickets for various aspects of UDF (CASSANDRA-4914, CASSANDRA-5970, CASSANDRA-4998)
but they all suffer from various degrees of ocean-boiling.
> Let's start with something simple: allowing pure user-defined functions in the SELECT
clause of a CQL query.  That's it.
> By "pure" I mean, must depend only on the input parameters.  No side effects.  No exposure
to C* internals.  Column values in, result out.

This message was sent by Atlassian JIRA

View raw message