As part of the Accord work we have been extending the harry models to support even more of the CQL domain and added more test coverage for different features; in doing so it found the following query is currently blocked
— delete partition if static column is in a given state — confirmed that this does not lead to a full partition read in CAS, but only a static row read — We already support delete static column if static condition, which has the same read cost as delete partition if static condition DELETE FROM tbl WHERE pk = ? — pk is the only partition key, but there are clustering keys IF s0 = ? — s0 is static I took a stab at fixing this in https://issues.apache.org/jira/browse/CASSANDRA-20163 and speaking with Benedict it was deemed that we should bring this up to the ML for visibility. In 2.0.11/2.1.1 https://issues.apache.org/jira/browse/CASSANDRA-6430 was added which blocked this type of query. The main argument seems to be that some deletes are confusing so should block instead ((assuming static columns) delete regular column if the partition exists, delete if regular column matches condition, etc.), but I argue that the case above isn’t ambiguous as we are working with static columns, so implicitly we are working at the partition level; aka partition delete. Are people ok with this change? Another case that was found in testing was — delete partition if exists DELETE FROM tbl WHERE pk = ? — pk is the only partition key, but there are clustering keys IF EXISTS I confirmed that this case does a full partition read (even though it doesn’t need to, just needs liveness info), my patch keeps this blocked not because its ambiguous, but because it has an unbounded cost (if you do this to a 1tb partition, you read 1tb… or try to at least…). We could fix this but felt was out of scope of the work above. Thanks!