cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <>
Subject [jira] [Updated] (CASSANDRA-6857) SELECT DISTINCT with a LIMIT is broken by paging
Date Fri, 21 Mar 2014 14:02:05 GMT


Sylvain Lebresne updated CASSANDRA-6857:

    Attachment: 6857-2.0-v2.txt

bq. it was a little confusing that the 2.1 patch assumed the 2.0 patch was applied

Sorry about that, that was not intentional tbh.

bq. You said the QueryPagers change was an optimization, but it appears to affect the correctness.

Yeah, but that's because I forgot something in the initial patch. I modified PagedRangeCommand.countCQL3Rows(),
but the executeLocally() of the same class was ignoring it, having it hardcoded to true basically.
Attaching v2 with that fixed (only of 2.0, provided we agree on the 2.1 version, I'll just
make sure to have this including during the merge).

Regarding QueryPagers, the change is in the mayNeedPaging() method. The method itself is an
optimization, we use it to avoid using the paging code when we know we don't have because
that's slightly faster, but truly, whether or not this method return true should never change
correctness, otherwise that means we just have a bug in paging (as is the case and my first
version wasn't complete) and this is hidding it.

> SELECT DISTINCT with a LIMIT is broken by paging
> ------------------------------------------------
>                 Key: CASSANDRA-6857
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>             Fix For: 2.0.7
>         Attachments: 6857-2.0-v2.txt, 6857-2.0.txt, 6857-2.1.txt
> The paging for RangeSliceCommand only support the case where we count CQL3 rows . However,
in the case of SELECT DISTINCT, we do actually want to use the "count partitions, not CQL3
row" path and that's currently broken when the paging commands are used (this was first reported
on the [Java driver JIRA|] and there is
a reproduction script there).

This message was sent by Atlassian JIRA

View raw message