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] [Commented] (CASSANDRA-5723) DateType (timestamp type in CQL3) does not sort pre-'unix epoch' dates correctly
Date Fri, 05 Jul 2013 13:29:48 GMT

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

Sylvain Lebresne commented on CASSANDRA-5723:
---------------------------------------------

I'm slightly surprised that nobody ran into this with DateType and I would argue that sorting
pre-epoch dates after post-epoch ones is definitively a bug, but at the same time changing
DateType now is too risky imo as it could screw current DateType rather badly.

Instead, I would suggest adding a new, fixed, DateType (TimestampType or DateTimeType maybe?).
And for CQL3, we would switch to that for the 'timestamp' type (which would not switch existing
table however, since they would still be DateType internally). We can also make it so that
switching (manually) from/to DateType to that new type is allowed (with maybe a warning in
the log).

Opinions?

                
> DateType (timestamp type in CQL3) does not sort pre-'unix epoch' dates correctly
> --------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-5723
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5723
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.2.3
>            Reporter: zhouhero
>             Fix For: 1.2.3
>
>
> - this bug can be confirmed by fellow:
> 1.create table like fellow:
> create table test2 (
> id varchar,
> c varchar,
> create_date timestamp,
> primary key(id)
> );
> create index idx_test2_c on test2 (c);
> create index idx_test2_create_date on test2 (create_date);
> 2.insert data like fellow;
> cqlsh:pgl> update test2 set create_date='1950-01-01', c='1' where id='111';
> cqlsh:pgl> update test2 set create_date='1917-01-01', c='1' where id='111';
> cqlsh:pgl> update test2 set create_date='2013-01-01', c='1' where id='111';
> 3.select data :
> cqlsh:pgl> select * from test2 where c='1' and create_date>'2011-01-01 12:00:01'
ALLOW FILTERING ;
> id | c | create_date
> -----+---+--------------------------
> 111 | 1 | 2012-12-31 15:00:00+0000
> 4. add data:
> update test2 set create_date='1917-05-01', c='1' where id='111';
> 5.select data:
> cqlsh:pgl> select * from test2 where c='1' and create_date>'2011-01-01 12:00:01'
ALLOW FILTERING ;
> id | c | create_date
> -----+---+--------------------------
> 111 | 1 | 1917-04-30 15:00:00+0000
> ↑
> the search result is not right!
> it should be fellow:
> id | c | create_date
> -----+---+--------------------------
> 111 | 1 | 2012-12-31 15:00:00+0000

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message