cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CASSANDRA-6327) select with "in" clause wrongly returns empty result
Date Tue, 12 Nov 2013 09:39:17 GMT

     [ https://issues.apache.org/jira/browse/CASSANDRA-6327?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Sylvain Lebresne updated CASSANDRA-6327:
----------------------------------------

    Attachment: 6327.txt

This is a bug in the column slice intersection logic from CASSANDRA-5514. More precisely,
when there was multiple column slices, the logic was returning no intersection as soon as
one of the slice was not intersecting, but it should do the exact reverse, it should consider
it an intersection as one as any of the slice intersect but wait to have test all slices before
saying it doesn't intersect.

Attaching simple patch to fix.

> select with "in" clause wrongly returns empty result
> ----------------------------------------------------
>
>                 Key: CASSANDRA-6327
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6327
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>         Environment: Cassandra 2.0.2, x86-64 Ubuntu 13.10
>            Reporter: Duncan Sands
>            Assignee: Sylvain Lebresne
>             Fix For: 2.0.3
>
>         Attachments: 6327.txt, current_prices.tar
>
>
> This query returns no result:
> cqlsh:tick_data> select syd from current_prices where shard = 1 and syd in (1, 556129);
> (0 rows)
> However this query does return a result, showing that the previous query was wrong to
return no result:
> cqlsh:tick_data> select syd from current_prices where shard = 1 and syd in (556129);
>  syd
> --------
>  556129
> (1 rows)
> This can be reproduced as follows:
> (a) Create a keyspace tick_data:
> create keyspace tick_data WITH replication = {'class': 'SimpleStrategy', 'replication_factor':
1};
> (b) Create a table current_prices:
> CREATE TABLE current_prices (
>   shard int,
>   syd int,
>   ask decimal,
>   bid decimal,
>   currency ascii,
>   when timeuuid,
>   PRIMARY KEY (shard, syd)
> );
> (c) Stop Cassandra and untar the attached tar file in /var/lib/cassandra/data/tick_data/.
 It populates the current_prices table.
> (d) Restart Cassandra and perform the above selects.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message