[ 
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]

Reply via email to