[ https://issues.apache.org/jira/browse/IGNITE-21131?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pavel Pereslegin updated IGNITE-21131: -------------------------------------- Labels: calcite ise (was: calcite calcite3-required ise) > Calcite engine. OR operator with dynamic parameters can't be used for index > scans > --------------------------------------------------------------------------------- > > Key: IGNITE-21131 > URL: https://issues.apache.org/jira/browse/IGNITE-21131 > Project: Ignite > Issue Type: Improvement > Reporter: Aleksey Plekhanov > Assignee: Aleksey Plekhanov > Priority: Major > Labels: calcite, ise > Fix For: 2.17 > > Time Spent: 20m > Remaining Estimate: 0h > > Calcite can compose OR operator with literals to SEARCH/SARG, and SEARCH/SARG > can be used for index scans. But we can't do this for OR operator with > dynamic parameters. > For example expression {{a IN (1, 2, 3)}} can be converted to {{a = 1 OR a = > 2 OR a = 3}} and after that can be converted to {{SEARCH(a, SARG(1, 2, 3))}}, > but expression {{a IN (?, ?, ?)}} can be converted only to {{a = ? OR a = ? > OR a = ?}} and can't be used for index scan. > To fix this issue we can create ranges from dynamic parameters during > planning, sort and remove intersections from these ranges in runtime. > -- This message was sent by Atlassian Jira (v8.20.10#820010)