[ 
https://issues.apache.org/jira/browse/CASSANDRA-8850?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14349067#comment-14349067
 ] 

Sam Tunnicliffe commented on CASSANDRA-8850:
--------------------------------------------

Right, and this is the approach that I've taken. Where it's messy is when we 
have a statement like {{GRANT <PERMISSION> ON <RESOURCE> TO <ROLE>}}

If {{<RESOURCE>}} is a Role, then we should enforce that {{ROLE}} is a literal. 
But if {{<RESOURCE>}} is a data resource, we'll need to accept {{<ROLE>}} as 
either an identifier or a literal so we don't break compatibility (as 
previously, it would have represented a user). For now, I'm doing this by 
duplication in the grammar itself. This complexity will increase as we add 
further resource types (CASSANDRA-7557), but not significantly.

It isn't really a big deal, it just makes the grammar & tests slightly more 
complicated though probably not enough to be a problem. If we're prepared to 
actually deprecate and remove the user concept in some future version, all the 
better. Is there precedent for removing syntax from CQL3?

> clean up options syntax for create/alter role 
> ----------------------------------------------
>
>                 Key: CASSANDRA-8850
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8850
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Sam Tunnicliffe
>            Assignee: Sam Tunnicliffe
>            Priority: Minor
>             Fix For: 3.0
>
>         Attachments: 8850-v2.txt, 8850.txt
>
>
> {{CREATE/ALTER ROLE}} syntax would be improved by using {{WITH}} and {{AND}} 
> in a way more consistent with other statements.
> e.g. {{CREATE ROLE foo WITH LOGIN AND SUPERUSER AND PASSWORD 'password'}}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to