[
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