Hi,
*1. The below sequence of commands also does not appear to give an expected
output.*
Since, there is a delete command in the batch and then an LWT update using
IF EXISTS, in the final result row with id = 5 must get deleted.
cassandra@cqlsh> select * from demo.tweets;
*id* | *body* | *latitude* | *longitude* | *time*
| *user*
----+----------+----------+-----------+---------------------------------+-------
*5* | *old body* | *32.6448* | *78.21672* | *2019-01-14
18:30:00.000000+0000* | *user5*
(1 rows)
cassandra@cqlsh>
cassandra@cqlsh> begin batch update demo.tweets SET body='new body' where
id = 5 IF EXISTS; delete from demo.tweets where id = 5 IF EXISTS; apply
batch;
*[applied]*
-----------
*True*
cassandra@cqlsh> select * from demo.tweets;
*id* | *body* | *latitude* | *longitude* | *time* | *user*
----+----------+----------+-----------+------+------
*5* | *new body* | *null* | *null* | *null* | *null*
(1 rows)
cassandra@cqlsh>
*2. On the contrary below sequence of commands gives the expected output:*
cassandra@cqlsh> insert into demo.tweets (id, user, body, time, latitude,
longitude) values (5, 'user5', 'old body', '2019-01-15', 32.644800,
78.216721);
cassandra@cqlsh>
cassandra@cqlsh> select * from demo.tweets;
*id* | *body* | *latitude* | *longitude* | *time*
| *user*
----+----------+----------+-----------+---------------------------------+-------
*5* | *old body* | *32.6448* | *78.21672* | *2019-01-14
18:30:00.000000+0000* | *user5*
(1 rows)
cassandra@cqlsh> delete from demo.tweets where id = 5 IF EXISTS;
*[applied]*
-----------
*True*
cassandra@cqlsh> select * from demo.tweets;
*id* | *body* | *latitude* | *longitude* | *time* | *user*
----+------+----------+-----------+------+------
(0 rows)
cassandra@cqlsh> update demo.tweets SET body='new body' where id = 5 IF
EXISTS;
*[applied]*
-----------
*False*
cassandra@cqlsh> select * from demo.tweets;
*id* | *body* | *latitude* | *longitude* | *time* | *user*
----+------+----------+-----------+------+------
(0 rows)
Thanks
Shaurya
On Fri, May 3, 2019 at 1:02 AM Shaurya Gupta <[email protected]> wrote:
> One suggestion - I think Cassandra community is already having a drive to
> update the documentation. This could be added to CQLSH documentation or
> some other relevant documentation.
>
> On Fri, May 3, 2019 at 12:56 AM Shaurya Gupta <[email protected]>
> wrote:
>
>> Thanks Jeff.
>>
>> On Fri, May 3, 2019 at 12:38 AM Jeff Jirsa <[email protected]> wrote:
>>
>>> No. Don’t mix LWT and normal writes.
>>>
>>> --
>>> Jeff Jirsa
>>>
>>>
>>> > On May 2, 2019, at 11:43 AM, Shaurya Gupta <[email protected]>
>>> wrote:
>>> >
>>> > Hi,
>>> >
>>> > We are seeing really odd behaviour while try to delete a row which is
>>> simultaneously being updated in a light weight transaction.
>>> > The delete command succeeds and the LWT update fails with timeout
>>> exception but still the next select statement shows that the row still
>>> exists. This occurs ones in many such scenarios.
>>> >
>>> > Is it fine to mix LWT and normal operations for the same partition? Is
>>> it expected to work?
>>> >
>>> > Thanks
>>> > Shaurya
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>>
>>
>> --
>> Shaurya Gupta
>>
>>
>>
>
> --
> Shaurya Gupta
>
>
>
--
Shaurya Gupta