Stamatis Zampetakis created CALCITE-7226:
--------------------------------------------
Summary: Convert IN to SEARCH in SqlToRelConverter
Key: CALCITE-7226
URL: https://issues.apache.org/jira/browse/CALCITE-7226
Project: Calcite
Issue Type: Task
Components: core
Reporter: Stamatis Zampetakis
Currently, the SqlToRelConverter translates IN expressions to:
* a disjunctive expression (RexNode composed from OR operators)
* a join with inline table holding all values (Values+Join RelNodes)
In CALCITE-4173, the SEARCH operator was introduced to represent many kind of
range expressions and among those IN lists of constant values. The SEARCH
representation is superior to both disjunctive expressions and joins with
inline tables so it should be used whenever possible in SqlToRelConverter.
RexSimplify is able to detect and collapse disjunctive expressions to SEARCH
but if we can do this earlier, during sql-to-rel conversion, we could save the
unnecessary perf overhead of the simplification and also somewhat satisfy
use-cases that explicitly requested the addition of a specialized IN operator
(e.g., CALCITE-2630).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)