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

Ariel Weisberg commented on CASSANDRA-10438:
--------------------------------------------

Unless I am mistaken I can revert the fix to onPrimaryKeyLivenessInfo and the 
test still passes?

The fix itself and the description of the bug make sense to me. The test is 
convincing in that it checks the contents of the update case. I'm just not sure 
about onPrimaryKeyLivenessInfo.

I looked at the cassci results. 
org.apache.cassandra.cql3.validation.operations.CreateTest.testCQL3PartitionKeyOnlyTable
 is unusual, but I didn't reproduce it.

> Overwrites of rows in memtable produce incorrect deltas for indexing
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-10438
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10438
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Sam Tunnicliffe
>            Assignee: Sam Tunnicliffe
>             Fix For: 3.0.0 rc2
>
>
> When a row in the memtable is updated, the delta is supplied to any 
> registered indexer. This consists of two {{Row}} objects, representing the 
> old and new data in the memtable. As per its javadoc, the contract of 
> {{Index.Indexer::updateRow}} is that these old & new rows contain only the 
> changed columns, so any column which was not affected by the update will 
> appear in neither the new nor old row. The {{RowDiffListener::onCell}} method 
> in {{SecondaryIndexManager.WriteTimeTransaction::onUpdated}} which produces 
> these deltas uses a reference equality check, where it should be checking 
> object equality. This results in unchanged, prexisting cells appearing in the 
> {{toInsert}} row.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to