Soheil Rahsaz created CASSANDRA-19924:
-----------------------------------------

             Summary: SASI mixed with `IN` condition returns invalid result, 
Cassandra 5.0.0GA
                 Key: CASSANDRA-19924
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-19924
             Project: Cassandra
          Issue Type: Bug
            Reporter: Soheil Rahsaz


Given this sample table
{code:java}
CREATE TABLE usersbyorganization
(
    organizationid UUID,
    userid         UUID,
    displayname    TEXT,
    rolecode       TEXT,
    PRIMARY KEY (organizationid, userid)
) WITH CLUSTERING ORDER BY (userid ASC);

CREATE CUSTOM INDEX usersbyorganization_displayname_idx ON usersbyorganization 
(displayname)
    USING 'org.apache.cassandra.index.sasi.SASIIndex'
    WITH OPTIONS = {'analyzed': 'true', 'analyzer_class': 
'org.apache.cassandra.index.sasi.analyzer.NonTokenizingAnalyzer', 
'case_sensitive': 'false', 'mode': 'CONTAINS'};
{code}
and sample data
{code:java}
INSERT INTO usersbyorganization (organizationid, userid, displayname, rolecode)
VALUES (0326bd0a-f977-408f-b5fa-52902eb1fd0f, 
233569aa-1d3d-4bac-a73a-5f382a7bf144, 'soheil', 'admin');
INSERT INTO usersbyorganization (organizationid, userid, displayname, rolecode)
VALUES (0326bd0a-f977-408f-b5fa-52902eb1fd0f, 
811804f2-6ede-487d-9b2c-c9f487ff77d9, 'soheil', 'staff');
INSERT INTO usersbyorganization (organizationid, userid, displayname, rolecode)
VALUES (0326bd0a-f977-408f-b5fa-52902eb1fd0f, 
104f8cbc-e22e-4629-b836-2f832e59c4a3, 'soheil', 'student');
INSERT INTO usersbyorganization (organizationid, userid, displayname, rolecode)
VALUES (0326bd0a-f977-408f-b5fa-52902eb1fd0f, 
b4b405df-0da6-4a99-b46a-4419a505e96f, 'soheil', 'teacher');
{code}
If I run this query with only 1 value in the `IN clause`, it returns 
appropriate result:
{code:java}
SELECT *
FROM usersbyorganization
WHERE organizationid = 0326bd0a-f977-408f-b5fa-52902eb1fd0f
  AND displayname = 'soheil'
  AND roleCode IN ('student')
    ALLOW FILTERING;
{code}
|| organizationid || userid || displayname || rolecode ||
| 0326bd0a-f977-408f-b5fa-52902eb1fd0f | 104f8cbc-e22e-4629-b836-2f832e59c4a3 | 
soheil | student |

But if I run the same query with 2 values in the `IN clause`, it returns 
invalid values for column `roleCode`:

{code:java}
SELECT *
FROM usersbyorganization
WHERE organizationid = 0326bd0a-f977-408f-b5fa-52902eb1fd0f
  AND displayname = 'soheil'
  AND roleCode IN ('student', 'teacher')
    ALLOW FILTERING;
{code}

|| organizationid || userid || displayname || rolecode ||
| 0326bd0a-f977-408f-b5fa-52902eb1fd0f | 104f8cbc-e22e-4629-b836-2f832e59c4a3 | 
soheil | student |
| 0326bd0a-f977-408f-b5fa-52902eb1fd0f | 233569aa-1d3d-4bac-a73a-5f382a7bf144 | 
soheil | admin |
| 0326bd0a-f977-408f-b5fa-52902eb1fd0f | 811804f2-6ede-487d-9b2c-c9f487ff77d9 | 
soheil | staff |
| 0326bd0a-f977-408f-b5fa-52902eb1fd0f | b4b405df-0da6-4a99-b46a-4419a505e96f | 
soheil | teacher |

`admin` and `staff` should not be returned.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to