[
https://issues.apache.org/jira/browse/CASSANDRA-6147?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13919523#comment-13919523
]
Edward Capriolo commented on CASSANDRA-6147:
--------------------------------------------
{code}
struct Column {
1: required binary name,
2: optional binary value,
3: optional i64 timestamp,
4: optional i32 ttl,
}
{code}
In thrift timestamps are optional, but the CassandraServer rejects Columns
without a timestmap
This is a rather easy patch.
{code}
if (!column.isSetTimestamp())
- throw new
org.apache.cassandra.exceptions.InvalidRequestException("Column timestamp is
required");
-
+ column.setTimestamp(System.nanoTime());
{code}
https://github.com/edwardcapriolo/cassandra/compare/aut0-timstamps-thrift?expand=1
> Break timestamp ties for thrift-ers
> -----------------------------------
>
> Key: CASSANDRA-6147
> URL: https://issues.apache.org/jira/browse/CASSANDRA-6147
> Project: Cassandra
> Issue Type: Sub-task
> Reporter: Edward Capriolo
> Assignee: Edward Capriolo
> Fix For: 2.1 beta2
>
>
> Thrift users are still forced to generate timestamps on the client side.
> Currently the way the thrift bindings are generated users are forced to
> supply timestamps. There are two solutions I see.
> * -1 as timestamp means "generate on the server side"
> This is a breaking change, for those using -1 as a timestamp (which should
> effectively be no one.
> * Prepare yourself....
> Our thrift signatures are wrong, you can't overload methods in thrift
> thrift.get(byte [], byte[], ts)
> should REALLY be changed to
> GetRequest g = new GetRequest()
> g.setName()
> g.setValue()
> g.setTs() ///optional
> thrift. get( g )
> I know no one is going to want to make this change because thrift is
> quasi/dead but it would allow us to evolve thrift in a meaningful way. We
> could simple add these new methods under different names as well.
--
This message was sent by Atlassian JIRA
(v6.2#6252)