cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tommy Stendahl <tommy.stend...@ericsson.com>
Subject Re: TTL question
Date Fri, 28 Aug 2015 13:27:11 GMT
Thx, that was the problem. When I think about it it makes sense that I 
should use update in this scenario and not insert.

cqlsh> create TABLE foo.bar ( key int, cluster int, col int, PRIMARY KEY 
(key, cluster)) ;
cqlsh> INSERT INTO foo.bar (key, cluster ) VALUES ( 1,1 );
cqlsh> SELECT * FROM foo.bar ;

  key | cluster | col
-----+---------+------
    1 |       1 | null

(1 rows)
cqlsh> UPDATE foo.bar USING TTL 10 SET col = 1 WHERE key = 1 AND cluster 
= 1;
cqlsh> SELECT * FROM foo.bar ;

  key | cluster | col
-----+---------+-----
    1 |       1 |   1

(1 rows)

<wait for TTL to expire>

cqlsh> SELECT * FROM foo.bar ;

  key | cluster | col
-----+---------+------
    1 |       1 | null

(1 rows)

/Tommy

On 2015-08-28 14:20, Jacques-Henri Berthemet wrote:
> What if you use an update statement in the second query?
>
> --
> Jacques-Henri Berthemet
>
> -----Original Message-----
> From: Tommy Stendahl [mailto:tommy.stendahl@ericsson.com]
> Sent: vendredi 28 août 2015 13:34
> To: user@cassandra.apache.org
> Subject: Re: TTL question
>
> Yes, I understand that but I think this gives a strange behaviour.
> Having values only on the primary key columns are perfectly valid so why
> should the primary key be deleted by the TTL on the non-key column.
>
> /Tommy
>
> On 2015-08-28 13:19, Marcin Pietraszek wrote:
>> Please look at primary key which you've defined. Second mutation has
>> exactly the same primary key - it overwrote row that you previously
>> had.
>>
>> On Fri, Aug 28, 2015 at 1:14 PM, Tommy Stendahl
>> <tommy.stendahl@ericsson.com> wrote:
>>> Hi,
>>>
>>> I did a small test using TTL but I didn't get the result I expected.
>>>
>>> I did this in sqlsh:
>>>
>>> cqlsh> create TABLE foo.bar ( key int, cluster int, col int, PRIMARY KEY
>>> (key, cluster)) ;
>>> cqlsh> INSERT INTO foo.bar (key, cluster ) VALUES ( 1,1 );
>>> cqlsh> SELECT * FROM foo.bar ;
>>>
>>>    key | cluster | col
>>> -----+---------+------
>>>      1 |       1 | null
>>>
>>> (1 rows)
>>> cqlsh> INSERT INTO foo.bar (key, cluster, col ) VALUES ( 1,1,1 ) USING TTL
>>> 10;
>>> cqlsh> SELECT * FROM foo.bar ;
>>>
>>>    key | cluster | col
>>> -----+---------+-----
>>>      1 |       1 |   1
>>>
>>> (1 rows)
>>>
>>> <wait for TTL to expire>
>>>
>>> cqlsh> SELECT * FROM foo.bar ;
>>>
>>>    key | cluster | col
>>> -----+---------+-----
>>>
>>> (0 rows)
>>>
>>>
>>>
>>> Is this really correct?
>>> I expected the result from the last select to be:
>>>
>>>    key | cluster | col
>>> -----+---------+------
>>>      1 |       1 | null
>>>
>>> (1 rows)
>>>
>>>
>>> Regards,
>>> Tommy
>>



Mime
View raw message