[
https://issues.apache.org/jira/browse/CASSANDRA-12216?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15381843#comment-15381843
]
Sylvain Lebresne commented on CASSANDRA-12216:
----------------------------------------------
Agreed that allowing {{null}} makes sense since we do return it. As for the
tests, we do some TTL testing in {{cql3.validation.entities.TimestampTest}} so
it could go there, or create a new {{cql3.validation.entities.TTLTest}}. Would
be great if you can also include updates to the CQL documentation (but I can do
that one on commit if you're not sure how to do that). Feel free to mark "patch
available" when you have added a test. Thanks.
> TTL Reading And Writing is Asymmetric
> --------------------------------------
>
> Key: CASSANDRA-12216
> URL: https://issues.apache.org/jira/browse/CASSANDRA-12216
> Project: Cassandra
> Issue Type: Bug
> Components: CQL
> Reporter: Russell Spitzer
> Assignee: Russell Spitzer
> Priority: Minor
> Attachments: 12216-3.7.txt
>
>
> There is an inherent asymmetry in the way TTL's are read and Written.
> An `TTL` of 0 when written becomes a `null` in C*
> When read, this `TTL` becomes a `null`
> The `null` cannot be written back to C* as `TTL`
> This means that end users attempting to copy tables with TTL have to do
> manual mapping of the null TTL values to 0 to avoid NPE. This is a bit
> onerous when C* seems to have an internal logic that 0 == NULL. I don't think
> C* should return values which are not directly insertable back to C*.
> Even with the advent CASSANDRA-7304 this still remains a problem that the
> User needs to be aware of and take care of.
> The following prepared statement
> {code}
> INSERT INTO test.table2 (k,v) (?,?) USING TTL: ?
> {code}
> Will throw NPEs unless we specifically check that the value to be bound to
> TTL is not null.
> I think we should discuss whether `null` should be treated as 0 in TTL for
> prepared statements.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)