You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Pardeep Singh (JIRA)" <ji...@apache.org> on 2013/12/19 04:16:07 UTC

[jira] [Created] (CASSANDRA-6509) CQL collection list throws error on delete (hiding the error will help)

Pardeep Singh created CASSANDRA-6509:
----------------------------------------

             Summary: CQL collection list throws error on delete (hiding the error will help)
                 Key: CASSANDRA-6509
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6509
             Project: Cassandra
          Issue Type: Improvement
            Reporter: Pardeep Singh
            Priority: Minor


Currently as of CQL 3.1, collection list query throws error.

DELETE scores[1] FROM plays WHERE id = '123-afde';                   // deletes the 2nd element of scores (raises an error is scores has less than 2 elements)
The above query is not an issue for single queries since I can ignore the error. But if I do a batch, the above query will fail and the batch will fail also.

I was trying to accomplish this:
BEGIN UNLOGGED BATCH
DELETE scores[499] FROM plays WHERE id = '123-afde';
DELETE scores[499] FROM plays WHERE id = '144-afde';
APPLY BATCH;

My main goal is to keep a list of 500 recent posts, delete the rest. So I'm insert to list by prepending an ID, then deleting from the end of the list. I can deal with it if the list is not exact 500 posts, the point is to keep it close to that number.
I'm doing this in bulk so using BATCH helps improve performance and I'm also using UNLOGGED since deleting is not critical part of the process.

By not throwing error on the above query, other use cases can be implemented:
BEGIN UNLOGGED BATCH
DELETE scores[499] FROM plays WHERE id = 'aaa';
UPDATE scores=[2]+scores WHERE id='aaa';
APPLY BATCH;
By using atomic BATCH, I can cap the list at 500 elements.

It would help, even if you can provide a way to bypass the delete error using some special directive so the BATCH can still be processed.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)