Details
Description
IndexQuery should support IN criterion:
IndexQuery.setCriteria(in("A", Arrays.asList(1, 2 ,3)));
- IN criterion accepts collection of values to find. This collections is transformed to SortedSet(1, 2, 3) because IndexQuery provides to user sorted result.
- When IN applies on first indexed field - IN(A0, A1) for index (A, B) - it converts to multiple eq operations are joint with OR operation: EQ(A0) or EQ(A1).
- Other range criteria for other fields are applied to every such separate operation:
IN(A0, A1) and GT(B) converts to (EQ(A0) and GT(B)) or (EQ(A1) and GT(B)). - When IN applies to non-leading indexed field - IN(B0, B1) for index (A, B) - it works like a filter for prepared range:
GTE(A) and IN(B0, B1) converts to range [[A, B0]; [A, B1]] and every cache entry within this range is checked for being included to SortedSet(B0, B1).
Attachments
Issue Links
- is related to
-
IGNITE-17543 Add IndexQuery support in Pyhon thin client
- Open
-
IGNITE-17544 Add IndexQuery support in .NET thin client
- Open
-
IGNITE-17545 Add IndexQuery support in С++ thin client
- Open
- links to