[
https://issues.apache.org/jira/browse/IGNITE-14914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17580737#comment-17580737
]
Taras Ledkov commented on IGNITE-14914:
---------------------------------------
[~timonin.maksim], the patch is OK with me.
> Support in() clause in IndexQuery.
> ----------------------------------
>
> Key: IGNITE-14914
> URL: https://issues.apache.org/jira/browse/IGNITE-14914
> Project: Ignite
> Issue Type: New Feature
> Reporter: Maksim Timonin
> Assignee: Maksim Timonin
> Priority: Major
> Labels: IEP-71, ise
> Fix For: 2.14
>
> Time Spent: 40m
> Remaining Estimate: 0h
>
> 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).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)