[
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