You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Sylvain Lebresne (JIRA)" <ji...@apache.org> on 2015/11/26 11:26:11 UTC

[jira] [Commented] (CASSANDRA-10729) SELECT statement with IN restrictions on partition key + ORDER BY + LIMIT return wrong results

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

Sylvain Lebresne commented on CASSANDRA-10729:
----------------------------------------------

Lgtm with the caveat that the "May be used by custom QueryHandler implementations" comment should refer to {{getUserLimit}} and not {{getDataLimits}}, and that while I have nothing against the {{getUserLimit}} naming in principle,  maybe it's worth keeping {{getLimit}} for the sake of QueryHandler implementations.

> SELECT statement with IN restrictions on partition key + ORDER BY + LIMIT return wrong results
> ----------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-10729
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10729
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Benjamin Lerer
>            Assignee: Benjamin Lerer
>             Fix For: 3.0.1, 3.1, 3.2
>
>         Attachments: 10729-3.0.txt
>
>
> If we execute a request with paging turned off, an IN restriction on the partition key, ORDER BY and LIMIT the result returned are not the expected ones.
> The following test can be used to reproduce the problem.
> {code}
>         createTable("CREATE TABLE %s (pk1 int, pk2 int, c int, v text, PRIMARY KEY ((pk1, pk2), c) )");
>         execute("INSERT INTO %s (pk1, pk2, c, v) VALUES (?, ?, ?, ?)", 1, 1, 2, "A");
>         execute("INSERT INTO %s (pk1, pk2, c, v) VALUES (?, ?, ?, ?)", 1, 2, 1, "B");
>         execute("INSERT INTO %s (pk1, pk2, c, v) VALUES (?, ?, ?, ?)", 1, 3, 3, "C");
>         execute("INSERT INTO %s (pk1, pk2, c, v) VALUES (?, ?, ?, ?)", 1, 1, 4, "D");
>         assertRows(execute("SELECT v as c FROM %s where pk1 = ? AND pk2 IN (?, ?) ORDER BY c; ", 1, 1, 2),
>                    row("B"),
>                    row("A"),
>                    row("D"));
>         assertRows(execute("SELECT v as c FROM %s where pk1 = ? AND pk2 IN (?, ?) ORDER BY c LIMIT 2; ", 1, 1, 2),
>                    row("B"),
>                    row("A"));
> {code}



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