Tyler Hobbs created CASSANDRA-10690:
---------------------------------------
Summary: Secondary index does not process deletes unless columns
are specified
Key: CASSANDRA-10690
URL: https://issues.apache.org/jira/browse/CASSANDRA-10690
Project: Cassandra
Issue Type: Bug
Components: index
Reporter: Tyler Hobbs
Fix For: 3.0.1, 3.1
The new secondary index API does not notify indexes of single-row or slice
deletions unless specific columns are deleted. I believe the problem is that
in {{SecondaryIndexManager.newUpdateTransaction()}}, we skip indexes unless
{{index.indexes(update.columns())}}. When no columns are specified in the the
deletion, {{update.columns()}} is empty, which causes all indexes to be skipped.
I think the correct fix is to do something like this in the
{{ModificationStatement}} constructor:
{code}
if (type == StatementType.DELETE && modifiedColumns.isEmpty())
modifiedColumns = cfm.partitionColumns();
{code}
However, I'm not sure if that may have unintended side-effects. What do you
think, [~slebresne]?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)