Details
-
Bug
-
Status: Open
-
Low
-
Resolution: Unresolved
-
Correctness
-
Low
-
Low Hanging Fruit
-
User Report
Description
[cqlsh 5.0.1 | Cassandra 2.2.9 | CQL spec 3.3.1 | Native protocol v4]
When running a CQL query where we filter on a token compared to -9223372036854775808 (the minimum value for a long), the filter appears to have no effect.
For example:
SELECT token(user_id) FROM events WHERE token(user_id) = -9223372036854775808 LIMIT 3; system.token(user_id) ----------------------- -9223371814601747988 -9223371814601747988 -9223371814601747988
It doesn't matter whether `=`, `<`, `<=`, `>` or `>=` are used in the comparison, the results appear the same.
In contrast, if using `Long.MIN_VALUE + 1`, it returns no results as expected:
SELECT token(user_id) FROM events WHERE token(user_id) <= -9223372036854775807 LIMIT 3; system.token(user_id) ----------------------- (0 rows)
Additional information for newcomers:
Some checks should be added into TokenRestriction for the different type of restrictions when an invalid value is found.
The unit tests should be added within SelectOrderedPartitionerTest
The problem should be fixed in 3.0. It will merge cleanly to the other branches
Attachments
Issue Links
- is duplicated by
-
CASSANDRA-16592 The token function in where clause return incorrect data when using token equal condition and Specified a non-exist token value
- Resolved