Sylvain Lebresne commented on CASSANDRA-12770:

bq. The invocation just seems to have a lot of extra syntax but no benefit.

I think implicitness is its own benefit. And I don't see typing a few 
additional characters being an issue, especially since the {{token()}} method 
tends to not be typed all that often by end users (typically it's used by the 
Spark driver behind the scenes). So I personally think it's fine as it is and 
there is no point in having multiple ways to write the same thing. But short of 
that comment, I don't care enough that I would object to this if there is some 
consensus that it's genuinely useful to users.

> Token() CQL Function To Be Used Without Args
> --------------------------------------------
>                 Key: CASSANDRA-12770
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12770
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: CQL
>            Reporter: Russell Spitzer
>            Priority: Minor
> The Spark Cassandra Connector uses statments like
> {code}
> SELECT ... WHERE TOKEN(partitionkey) < #
> {code}
> But I was considering today, why should we pass the partition key names to 
> the Token Function?
> If we look at the TokenRestriction
> https://github.com/apache/cassandra/blob/81f6c784ce967fadb6ed7f58de1328e713eaf53c/src/java/org/apache/cassandra/cql3/TokenRelation.java#L174-L184
> The restrictions on the token function basically mean there is only ever 1 
> valid invocation of {{Token}}
> {code}
> Token(partitionkey1, partitionkey2, partitionkey3)
> {code}
> Now there can be an argument that this is helpful to folks matching 
> {{Tokens}} together
> {code}
> Token(partitionkey1, partitionkey2, partitionkey3) < Token(1,1,3)
> {code}
> But if we have a single literal on the right hand side
> {code}
> Token(partitionkey1, partitionkey2, partitionkey3) < 10
> {code}
> The invocation just seems to have a lot of extra syntax but no benefit.
> It would be great if it looked like this instead
> {code}
> Token() > 0 OR Token() < 30000
> {code}

This message was sent by Atlassian JIRA

Reply via email to