[ https://issues.apache.org/jira/browse/CASSANDRA-5723?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sylvain Lebresne updated CASSANDRA-5723: ---------------------------------------- Attachment: 5723.txt Attaching a patch with that new TimestampType. The patch is against 1.2 right now, but I'm starting to wonder if 2.0 is not a more reasonable goal. The basics of the patch is that the CQL3 timestamp type now default to that new type. For the native protocol however, we make both DateType and TimestampType be returned as 'timestamp'. Otherwise, if we were returning it as a custom type, this would likely break users since client driver wouldn't recognize it anymore. Besides, the actual sorting of a type in a ResultSet shouldn't matter for a CQL3 driver. On the CQL-over-thrift side however, we return the full "thrift" comparator name, so in practice we'd have to update cqlsh so it continues to work with dates, but the patch doesn't do it. The patch let user switch between DateType and TimestampType, but log a warning when you do so. > 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 > > Attachments: 5723.txt > > > - 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