[
https://issues.apache.org/jira/browse/CASSANDRA-4963?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dave Brosius updated CASSANDRA-4963:
------------------------------------
Description:
if you add a collection column with a ttl, then later update the collection by
adding a new element, the 'under the covers' column representing the added
value has no ttl. It seems like ttl tombstoning should only be allowed to
remove the collection in entirety, or not touch it, but not be allowed to
modify it by removing parts.
example
cqlsh> create keyspace collections with replication =
{'class':'SimpleStrategy', 'replication_factor':1};
cqlsh> use collections;
cqlsh:collections> insert into collections (key, aset) values (1, {'fee',
'fi'}) using ttl 10000;
cqlsh:collections> update collections set aset = aset + {'fo', 'fum'} where key
= 1;
cqlsh:collections> exit
cassandra-cli
[default@unknown] use collections
[default@collections] get collections[1];
=> (column=, value=, timestamp=1352874321877000)
=> (column=aset:666565, value=, timestamp=1352874314717000, ttl=10000)
=> (column=aset:6669, value=, timestamp=1352874314717000, ttl=10000)
=> (column=aset:666f, value=, timestamp=1352874321877000)
=> (column=aset:66756d, value=, timestamp=1352874321877000)
was:
if you add a collection column with a ttl, then later update the collection by
adding a new element, the 'under the covers' column representing the added
value has no ttl. It seems like ttl tombstoning should only be allowed to
remove the collection in entirety, or not touch it, but not be allowed to
modify it by removing parts.
example
cqlsh> create keyspace collections with replication =
{'class':'SimpleStrategy', 'replication_factor':1};
cqlsh> use collections;
cqlsh:collections> insert into collections (key, aset) values (1, {'fee',
'fi'}) using ttl 10000;
cqlsh:collections> update collections set aset = aset + {'fo', 'fum'} where key
= 1;
cqlsh:collections> exit
nodetool flush
cassandra-cli
[default@unknown] use collections
[default@collections] get collections[1];
=> (column=, value=, timestamp=1352874321877000)
=> (column=aset:666565, value=, timestamp=1352874314717000, ttl=10000)
=> (column=aset:6669, value=, timestamp=1352874314717000, ttl=10000)
=> (column=aset:666f, value=, timestamp=1352874321877000)
=> (column=aset:66756d, value=, timestamp=1352874321877000)
> A cql collection 'column' doesn't own it's ttl
> ----------------------------------------------
>
> Key: CASSANDRA-4963
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4963
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.2.0 beta 2
> Reporter: Dave Brosius
> Priority: Minor
>
> if you add a collection column with a ttl, then later update the collection
> by adding a new element, the 'under the covers' column representing the added
> value has no ttl. It seems like ttl tombstoning should only be allowed to
> remove the collection in entirety, or not touch it, but not be allowed to
> modify it by removing parts.
> example
> cqlsh> create keyspace collections with replication =
> {'class':'SimpleStrategy', 'replication_factor':1};
> cqlsh> use collections;
> cqlsh:collections> insert into collections (key, aset) values (1, {'fee',
> 'fi'}) using ttl 10000;
> cqlsh:collections> update collections set aset = aset + {'fo', 'fum'} where
> key = 1;
> cqlsh:collections> exit
> cassandra-cli
> [default@unknown] use collections
> [default@collections] get collections[1];
> => (column=, value=, timestamp=1352874321877000)
> => (column=aset:666565, value=, timestamp=1352874314717000, ttl=10000)
> => (column=aset:6669, value=, timestamp=1352874314717000, ttl=10000)
> => (column=aset:666f, value=, timestamp=1352874321877000)
> => (column=aset:66756d, value=, timestamp=1352874321877000)
--
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