[ https://issues.apache.org/jira/browse/CASSANDRA-15169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16947856#comment-16947856 ]
Michael Semb Wever edited comment on CASSANDRA-15169 at 10/9/19 5:08 PM: ------------------------------------------------------------------------- It makes sense that {{OnDiskIndex}}'s behaviour matches {{TrieMemIndex}}'s ({{is_literal}}) behaviour. But, if {{checkFully=false}} is also not actually required in {{isUpperSatisfiedBy}}, then why does the {{Term.compareTo(..,checkFully)}} method exist at all? was (Author: michaelsembwever): It makes sense that {{OnDiskIndex}}'s behaviour matches {{TrieMemIndex}}'s ({{is_literal}} behaviour. But, if {{checkFully=false}} is also not actually required in {{isUpperSatisfiedBy}}, then why does the {{Term.compareTo(..,checkFully)}} method exist at all? > SASIIndex does not compare strings correctly > -------------------------------------------- > > Key: CASSANDRA-15169 > URL: https://issues.apache.org/jira/browse/CASSANDRA-15169 > Project: Cassandra > Issue Type: Bug > Components: Feature/SASI > Reporter: mazhenlin > Assignee: mazhenlin > Priority: Normal > Attachments: CASSANDRA-15169-v1.patch > > > In our scenario, we need to query with '>' conditions on string columns. So I > created index with is_literal = false. like the following: > > {code:java} > CREATE TABLE test (id int primary key, t text); > CREATE CUSTOM INDEX ON test (t) USING > 'org.apache.cassandra.index.sasi.SASIIndex' WITH OPTIONS = {'is_literal': > 'false'}; > {code} > I also inserted some records and query: > > {code:java} > insert into test(id,t) values(1,'abc'); > select * from test where t > 'ab'; > {code} > At first ,it worked. But after flush, the query returned none record. > I have read the code of SASIIndex and found that it is because in the > {code:java} > Expression.isLowerSatisfiedBy{code} > function, > {code:java} > term.compareTo{code} > was called with parameter checkFully=false, which cause the string 'abc' was > only compared with its first 2 characters( length of expression value). > > I have wrote a UT for this case and fixed it. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org