cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tyler Hobbs (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-7812) DROP FUNCTION drops all function with a given name
Date Tue, 02 Sep 2014 19:34:21 GMT


Tyler Hobbs commented on CASSANDRA-7812:

Overall this looks good.

Since we don't check argument names (and I don't think we need to), change the syntax to {{DROP
FUNCTION namespace::name(type, ...)}}.

* Unused import of ColumnIdentifier
* The error message "Ambigious DROP FUNCTION call for '%s' - multiple overloads exist" could
be more helpful.  Perhaps: "'DROP FUNCTION %s' matches multiple function definitions; specify
the argument types by issuing a statement like 'DROP FUNCTION %s (type, type, ...)'"
* Use whitespace in between operators here: {{if (\!argsPresent && olds\!=null &&
* Why do we need to check if it's a UDFunction here?  {{if (old.isNative() || !(old instanceof
* Cast to {{UDFunction}} in the method call instead of creating a new variable: {{MigrationManager.announceFunctionDrop((UDFunction)old,

Can you also add test cases to cover specifying argument types in {{DROP FUNCTION}} that don't
match an existing function?

> DROP FUNCTION drops all function with a given name
> --------------------------------------------------
>                 Key: CASSANDRA-7812
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Sylvain Lebresne
>            Assignee: Robert Stupp
>             Fix For: 3.0
>         Attachments: 7812.txt
> We support multiple overloads of a given function name, so that you can define:
> {noformat}
> CREATE FUNCTION div(int a, int b) RETURNS int 'myDivOnIntegerFct';
> CREATE FUNCTION div(double a, double b) RETURNS double 'myDivOnDoubleFct';
> {noformat}
> In other words, a function is uniquely identified by it's name *and* it's argument types.
> But the {{DROP FUNCTION}} syntax currently only take a function name and if there is
multiple overload for that name, drop all of them without any way to drop one without the
> So we should probably allow to optionally pass the type arguments to DROP to select a
specific overloading, something like:
> {noformat}
> DROP FUNCTION div(double, double);
> {noformat}
> Also, and while that's probably debatable, I'd also suggest to change the behavior of:
> {noformat}
> {noformat}
> to complain if the there is multiple overload of the {{div}} method instead of dropping
all overload as it feels somewhat foot-shooting otherwise.

This message was sent by Atlassian JIRA

View raw message