[
https://issues.apache.org/jira/browse/IMPALA-15297?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aleksandr Efimov reassigned IMPALA-15297:
-----------------------------------------
Assignee: Aleksandr Efimov
> Calcite planner: map Impala operators onto Substrait functions
> --------------------------------------------------------------
>
> Key: IMPALA-15297
> URL: https://issues.apache.org/jira/browse/IMPALA-15297
> Project: IMPALA
> Issue Type: Sub-task
> Components: Frontend
> Reporter: Aleksandr Efimov
> Assignee: Aleksandr Efimov
> Priority: Major
>
> IMPALA-15296 added a test-scoped exporter for the pre-conversion logical
> plan. Twenty of the twenty-four query shapes the direct harness covers export
> end to end. The rest stop on an operator Isthmus cannot resolve.
> Isthmus resolves a scalar call by looking the operator up in a map keyed on
> the operator itself, and Calcite compares operators by class, name and kind.
> Impala substitutes its own classes for a good number of functions, so an
> operator that means exactly what Substrait's does still misses. Isthmus takes
> additional signatures for this: they say which Substrait function an Impala
> operator stands for and leave the operand matching alone.
> Add the signatures for the operators that have a Substrait counterpart:
> coalesce, concat, length, and floor and ceil with their d-prefixed spellings.
> Impala reaches these by three separate routes, the USE_IMPALA_OPERATOR set in
> ImpalaOperatorTable, builtins that Calcite has no operator for, and the
> replacements in ImpalaCustomOperatorTable. All three resolve by name, so one
> table covers them.
> That takes the harness corpus from twenty to twenty-two. What is left needs a
> different mechanism rather than another name. Substrait models a conditional
> as the IfThen expression rather than as a function, so Impala's IF has no
> name to map to, and lag is a window function resolved by a different
> converter. Substrait's round takes its digit count as i32 where Impala types
> the literal as i8, so the name lines up but the operands do not, and
> Substrait has no truncate at all.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]