[ https://issues.apache.org/jira/browse/CASSANDRA-5614?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13706971#comment-13706971 ]
Sam Tunnicliffe commented on CASSANDRA-5614: -------------------------------------------- I'm tempted to say that this is not a problem because it works as expected with both KeysIndex & CompositesIndex. Yes, the presence of range rather than individual column tombstones in the DeletionInfo means that the index isn't updated directly at update time, but the index repair-on-read compensates for that at query time. We could take the deletion info from the update & use that in some new deleteAll method on SIM.Updater which iterates through the indexed columns issuing deletes, but AFAICT that would require reads to aquire the existing indexed values. > W/O specified columns ASPCSI does not get notified of deletes > ------------------------------------------------------------- > > Key: CASSANDRA-5614 > URL: https://issues.apache.org/jira/browse/CASSANDRA-5614 > Project: Cassandra > Issue Type: Bug > Affects Versions: 1.2.0 > Reporter: Benjamin Coverston > Assignee: Sam Tunnicliffe > Priority: Minor > Fix For: 1.2.7 > > > I'm working on a secondary index implementation based on the composite index > type. > AbstractSimplePerColumnSecondaryIndex.java#delete is not called when CQL > delete statements do not specify columns. > When I specify columns it is called. Pretty sure this is a bug. > Setup: > {code} > cqlsh> create KEYSPACE foo WITH replication = {'class': 'SimpleStrategy' , > 'replication_factor': 1}; > cqlsh> use foo; > cqlsh:foo> CREATE TABLE albums (artist text, album text, rating int, release > int, PRIMARY KEY (artist, album)); > cqlsh:foo> CREATE INDEX ON albums (rating); > {code} > {code} > cqlsh:foo> insert into albums (artist, album, rating, release) VALUES > ('artist', 'album', 1, 2); > {code} > Does not get called here: > {code} > cqlsh:foo> DELETE FROM albums where artist='artist' and album='album'; > {code} > {code} > cqlsh:foo> insert into albums (artist, album, rating, release) VALUES > ('artist', 'album', 1, 2); > {code} > gets called here: > {code} > cqlsh:foo> DELETE rating FROM albums where artist='artist' and album='album'; > {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira