You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Tyler Hobbs (JIRA)" <ji...@apache.org> on 2016/03/22 19:31:25 UTC

[jira] [Comment Edited] (CASSANDRA-11401) [Regression] Incorrect results for clustering tuples query

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

Tyler Hobbs edited comment on CASSANDRA-11401 at 3/22/16 6:30 PM:
------------------------------------------------------------------

This is related to CASSANDRA-7281.  The 3.4 behavior is actually the correct behavior, logically.  If you ignore the order that Cassandra stores the rows on disk, you can see that logically speaking, 3.3 returns incorrect results.  For example, {{(00000000-0000-0000-0000-000000000000, '2015-10-01 00:00:00+0000')}} is returned, despite being less than your minimum bound of {{(00000000-0000-0000-0000-000000000000, '2015-10-02 00:00:00+0000')}}.  The fix in CASSANDRA-7281 changed the behavior from always executing a single contiguous slice (even if it would return incorrect results) to performing multiple slices if necessary in order to return the correct logical results.

EDIT: I meant CASSANDRA-7281, not CASSANDRA-7821


was (Author: thobbs):
This is related to CASSANDRA-7821.  The 3.4 behavior is actually the correct behavior, logically.  If you ignore the order that Cassandra stores the rows on disk, you can see that logically speaking, 3.3 returns incorrect results.  For example, {{(00000000-0000-0000-0000-000000000000, '2015-10-01 00:00:00+0000')}} is returned, despite being less than your minimum bound of {{(00000000-0000-0000-0000-000000000000, '2015-10-02 00:00:00+0000')}}.  The fix in CASSANDRA-7821 changed the behavior from always executing a single contiguous slice (even if it would return incorrect results) to performing multiple slices if necessary in order to return the correct logical results.

> [Regression] Incorrect results for clustering tuples query
> ----------------------------------------------------------
>
>                 Key: CASSANDRA-11401
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11401
>             Project: Cassandra
>          Issue Type: Bug
>          Components: CQL
>         Environment: *Cassandra 3.4*
>            Reporter: DOAN DuyHai
>            Priority: Critical
>
> There is a regression since *Cassandra 3.4* with query using clustering tuple values:
> {noformat}
> cqlsh:test> CREATE TABLE IF NOT EXISTS entity_with_clusterings(
> 		id bigint,
> 		uuid uuid,
> 		date timestamp,
> 		value text,
> 		PRIMARY KEY(id, uuid, date))
> WITH CLUSTERING ORDER BY(uuid ASC, date DESC);
> cqlsh:test> INSERT INTO entity_with_clusterings(id, uuid, date, value) VALUES(3233835834146573312, 00000000-0000-0000-0000-000000000000, '2015-10-01 00:00:00+0000', 'val1');
> cqlsh:test> INSERT INTO entity_with_clusterings(id, uuid, date, value) VALUES(3233835834146573312, 00000000-0000-0000-0000-000000000000, '2015-10-02 00:00:00+0000', 'val2');
> cqlsh:test> INSERT INTO entity_with_clusterings(id, uuid, date, value) VALUES(3233835834146573312, 00000000-0000-0000-0000-000000000000, '2015-10-03 00:00:00+0000', 'val3');
> cqlsh:test> INSERT INTO entity_with_clusterings(id, uuid, date, value) VALUES(3233835834146573312, 00000000-0000-0000-0000-000000000001, '2015-10-04 00:00:00+0000', 'val4');
> cqlsh:test> INSERT INTO entity_with_clusterings(id, uuid, date, value) VALUES(3233835834146573312, 00000000-0000-0000-0000-000000000001, '2015-10-05 00:00:00+0000', 'val5');
> cqlsh:test> SELECT * FROM entity_with_clusterings;
>  id                  | uuid                                 | date                     | value
> ---------------------+--------------------------------------+--------------------------+-------
>  3233835834146573312 | 00000000-0000-0000-0000-000000000000 | 2015-10-03 00:00:00+0000 |  val3
>  3233835834146573312 | 00000000-0000-0000-0000-000000000000 | 2015-10-02 00:00:00+0000 |  val2
>  3233835834146573312 | 00000000-0000-0000-0000-000000000000 | 2015-10-01 00:00:00+0000 |  val1
>  3233835834146573312 | 00000000-0000-0000-0000-000000000001 | 2015-10-05 00:00:00+0000 |  val5
>  3233835834146573312 | 00000000-0000-0000-0000-000000000001 | 2015-10-04 00:00:00+0000 |  val4
> (5 rows)
> cqlsh:test > SELECT uuid,date,value 
> FROM entity_with_clusterings 
> WHERE id=3233835834146573312 
> AND (uuid,date)>=(00000000-0000-0000-0000-000000000000,'2015-10-02 00:00:00+0000') 
> AND (uuid,date)<(00000000-0000-0000-0000-000000000001, '2015-10-04 00:00:00+0000');
>  uuid                                 | date                            | value
> --------------------------------------+---------------------------------+-------
>  00000000-0000-0000-0000-000000000000 | 2015-10-03 00:00:00.000000+0000 |  val3
>  00000000-0000-0000-0000-000000000000 | 2015-10-02 00:00:00.000000+0000 |  val2
> {noformat}
> The same query with *Cassandra 3.3* returns correct answer:
> {noformat}
> cqlsh:test> SELECT uuid,date,value
> FROM entity_with_clusterings
> WHERE id=3233835834146573312
> AND (uuid,date)>=(00000000-0000-0000-0000-000000000000,'2015-10-02 00:00:00+0000')
> AND (uuid,date)<(00000000-0000-0000-0000-000000000001, '2015-10-04 00:00:00+0000');
>  uuid                                 | date                     | value
> --------------------------------------+--------------------------+-------
>  00000000-0000-0000-0000-000000000000 | 2015-10-02 00:00:00+0000 |  val2
>  00000000-0000-0000-0000-000000000000 | 2015-10-01 00:00:00+0000 |  val1
>  00000000-0000-0000-0000-000000000001 | 2015-10-05 00:00:00+0000 |  val5
> {noformat}



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