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

Alex Petrov edited comment on CASSANDRA-7017 at 4/5/16 3:57 PM:
----------------------------------------------------------------

Patch is now attached. I've reused the same mechanism that is used for 
{{DISTINCT}} queries, and it turned out to be even simpler (I hope I haven't 
missed anything). {{Pager}} / {{execute}} are intact, as per partition limit is 
handled through {{ReadQuery}} and {{DataLimits}} ({{CqlDataLimits}}). {{PER 
PARTITION LIMIT}} syntax was used. 

{{DISTINCT}} queries simply override per partition limits.

Tests are added for ordering, filtering, static columns, IN queries, combined 
per partition and "global" limits. Since partitions may come out of order, in 
order to verify not only amounts of returned results but also results 
themselves, I had to group them together and just test the data properties.

|[trunk|https://github.com/ifesdjeen/cassandra/tree/7017-trunk]|


was (Author: ifesdjeen):
Patch is now attached. I've reused the same mechanism that is used for 
{{DISTINCT}} queries, and it turned out to be even simpler (I hope I haven't 
missed anything). {{Pager}} / {{execute}} are intact, as per partition limit is 
handled through {{ReadQuery}} and {{DataLimits}} ({{CqlDataLimits}}). 

{{DISTINCT}} queries simply override per partition limits.

Tests are added for ordering, filtering, static columns, IN queries, combined 
per partition and "global" limits. Since partitions may come out of order, in 
order to verify not only amounts of returned results but also results 
themselves, I had to group them together and just test the data properties.

|[trunk|https://github.com/ifesdjeen/cassandra/tree/7017-trunk]|

> allow per-partition LIMIT clause in cql
> ---------------------------------------
>
>                 Key: CASSANDRA-7017
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7017
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Halliday
>            Assignee: Alex Petrov
>              Labels: cql
>             Fix For: 3.x
>
>         Attachments: 0001-Allow-per-partition-limit-in-SELECT-queries.patch, 
> 0001-CASSANDRA-7017.patch
>
>
> somewhat related to static columns (#6561) and slicing (#4851), it is 
> desirable to apply a LIMIT on a per-partition rather than per-query basis, 
> such as to retrieve the top (most recent, etc) N clustered values for each 
> partition key, e.g.
> -- for each league, keep a ranked list of users
> create table scores (league text, score int, player text, primary key(league, 
> score, player) );
> -- get the top 3 teams in each league:
> select * from scores staticlimit 3;
> this currently requires issuing one query per partition key, which is tedious 
> if all the key partition key values are known and impossible if they aren't.



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

Reply via email to