[ https://issues.apache.org/jira/browse/CASSANDRA-7089?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sylvain Lebresne updated CASSANDRA-7089: ---------------------------------------- Attachment: 0002-Don-t-compare-components-with-equals.txt 0001-Remove-ColumnIdentifier.compareTo.txt Attaching patch to fix both. ColumnIdentifier.cmopareTo is also in 1.2 and 2.0, but it's unused there, so I'll just remove it on commit (isPrefixOf is 2.1 only however). > Some problems with typed ByteBuffer comparisons? > ------------------------------------------------ > > Key: CASSANDRA-7089 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7089 > Project: Cassandra > Issue Type: Bug > Components: Core > Reporter: Benedict > Assignee: Sylvain Lebresne > Priority: Minor > Fix For: 2.1 beta2 > > Attachments: 0001-Remove-ColumnIdentifier.compareTo.txt, > 0002-Don-t-compare-components-with-equals.txt > > > ColumnIdentifier.compareTo() appears subtly broken: it looks to me that we > should be using ByteBufferUtil.compareUnsigned() instead of > bytes.compareTo(), since they are meant to be UTF8Type. I think it would be > nice to drop this compareTo method entirely, as it's only used by > CFMetaData.regularColumnComparator and it seems possible to misuse > accidentally at a later date since it only works for CQL columns, but a > ColumnIdentifier is used for thrift columns as well. > There's a related problem with CellName.isPrefixOf, where we are using > equals() instead of type.compareTo() == 0, which could break anyone misusing > our old friend Boolean as a clustering column. -- This message was sent by Atlassian JIRA (v6.2#6252)