[ https://issues.apache.org/jira/browse/CASSANDRA-7523?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14143572#comment-14143572 ]
Joshua McKenzie commented on CASSANDRA-7523: -------------------------------------------- Updated branches available: [Cassandra changes|https://github.com/josh-mckenzie/cassandra/compare/7523_squashed] [Python driver changes|https://github.com/josh-mckenzie/python-driver/compare/7523_squashed] I've converted both types to support byte-order comparibility. They also no longer accept empty strings and don't validate 0 byte inputs. The TimeType was trivial as it was already bounded to byteorder comparable ranges anyway but the SimpleDateType change deserves a bit of explanation. I went back and forth offline w/benedict about the SimpleDateType change - this implementation uses an unsigned integer w/epoch at 2^31 as our date range which requires some shifting and reliance on arithmetic overflow in Java thanks to the lack of a 1st-class unsigned integer type. On top of that, the defined range is different than "epoch is 0" that most people might expect. We could use the drivers to mask this and shift values to epoch at zero (which I didn't do in the attached python driver changes); I dislike implementation details of our internal treatment of dates pressuring non-idiomatic external treatments of data in this way but it goes so far as the drivers where they have the freedom to implement as they see fit. It's something I'm willing to accept for the benefits it gives us. I've also added more unit tests surrounding the types and their comparison and updated the cqlshlib unit tests and python driver unit tests to also conform to the new range expectations. > add date and time types > ----------------------- > > Key: CASSANDRA-7523 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7523 > Project: Cassandra > Issue Type: New Feature > Components: API > Reporter: Jonathan Ellis > Assignee: Joshua McKenzie > Priority: Minor > Fix For: 2.1.1, 3.0 > > > http://www.postgresql.org/docs/9.1/static/datatype-datetime.html > (we already have timestamp; interval is out of scope for now, and see > CASSANDRA-6350 for discussion on timestamp-with-time-zone. but date/time > should be pretty easy to add.) -- This message was sent by Atlassian JIRA (v6.3.4#6332)