You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jacques-Henri Berthemet (JIRA)" <ji...@apache.org> on 2018/05/07 13:33:00 UTC

[jira] [Commented] (CASSANDRA-14304) DELETE after INSERT IF NOT EXISTS does not work

    [ https://issues.apache.org/jira/browse/CASSANDRA-14304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16465912#comment-16465912 ] 

Jacques-Henri Berthemet commented on CASSANDRA-14304:
-----------------------------------------------------

It looks like setting defaultTimestamp at statement level didn't work however using 

ServerSideTimestampGenerator.INSTANCE when building the session worked.

 

I think a warning should be written in docs around the LWT in CQL doc:

[http://cassandra.apache.org/doc/latest/cql/dml.html?#insert|http://cassandra.apache.org/doc/latest/cql/dml.html#insert]

 

Or it would be even better to have a dedicated chapter about LWT.

> DELETE after INSERT IF NOT EXISTS does not work
> -----------------------------------------------
>
>                 Key: CASSANDRA-14304
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14304
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Julien
>            Assignee: Vinay Chella
>            Priority: Major
>         Attachments: debug.log, system.log
>
>
> DELETE a row immediately after INSERT IF NOT EXISTS does not work.
> Can be reproduced with this CQL script:
> {code:java}
> CREATE KEYSPACE ks WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };
> CREATE TABLE ks.ta ( id text PRIMARY KEY, col text );
> INSERT INTO ks.ta (id, col) VALUES ('myId', 'myCol') IF NOT EXISTS;
> DELETE FROM ks.ta WHERE id = 'myId';
> SELECT * FROM ks.ta WHERE id='myId';
> {code}
> {code:java}
> [cqlsh 5.0.1 | Cassandra 3.11.2 | CQL spec 3.4.4 | Native protocol v4]
> Use HELP for help.
> WARNING: pyreadline dependency missing.  Install to enable tab completion.
> cqlsh> CREATE KEYSPACE ks WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };
> cqlsh> CREATE TABLE ks.ta ( id text PRIMARY KEY, col text );
> cqlsh> INSERT INTO ks.ta (id, col) VALUES ('myId', 'myCol') IF NOT EXISTS;
>  [applied]
> -----------
>       True
> cqlsh> DELETE FROM ks.ta WHERE id = 'myId';
> cqlsh> SELECT * FROM ks.ta WHERE id='myId';
>  id   | col
> ------+-------
>  myId | myCol
> {code}
>  * Only happens if the client is on a different host (works as expected on the same host)
>  * Works as expected without IF NOT EXISTS
>  * A ~500 ms delay between INSERT and DELETE fixes the issue.
> Logs attached.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org