[
https://issues.apache.org/jira/browse/CASSANDRA-17848?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17630853#comment-17630853
]
Sam Tunnicliffe commented on CASSANDRA-17848:
---------------------------------------------
I agree, we should apply more strict validation when creating
functions/aggregates to prevent this from happening. Unfortunately though, I'm
afraid we also have to handle existing cases in the wild, so we may need to do
(some of) both #1 and #2.
If actually using functions with these problematic names works, perhaps we can
localise a custom parsing implementation to `ListPermissionsStatement`, leave
`FunctionResource#fromName` as it is and tighten up the naming rules going
forward? On the other hand, if functions named this way are completely
unusable, then backwards compatibility is not such an issue and #1 alone is
probably sufficient.
> LIST PERMISSION can display incorrect resource name
> ---------------------------------------------------
>
> Key: CASSANDRA-17848
> URL: https://issues.apache.org/jira/browse/CASSANDRA-17848
> Project: Cassandra
> Issue Type: Bug
> Components: CQL/Interpreter
> Reporter: Yifan Cai
> Assignee: Yifan Cai
> Priority: Normal
>
> When producing the resource name, it seems to assume that the content in the
> `[]` is the function's input type, where it could also be part of the
> function name, as long as it is quoted. Here is an example to reproduce. In
> cqlsh,
> {code:java}
> > CREATE FUNCTION
> > test."admin_created_udf[org.apache.cassandra.db.marshal.LongType]"(input
> > int) RETURNS NULL ON NULL INPUT RETURNS int LANGUAGE java AS 'return 42;';
> > LIST EXECUTE OF user;
> role | username | resource | permission
> -------+----------+-----------------------------------------+------------
> user | user | <function test.admin_created_udf(long)> | EXECUTE
> (1 rows)
> {code}
> The input should be "int", but in the output, it says "long".
> If the content enclosed by "[]" is not a valid class, the LIST PERMISSION
> request always fails for the user with "ConfigurationException: Unable to
> find abstract-type class".
> The bug is discovered by Piotr Sarna.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]