[ 
https://issues.apache.org/jira/browse/IMPALA-15302?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksandr Efimov reassigned IMPALA-15302:
-----------------------------------------

    Assignee: Aleksandr Efimov

> Calcite planner: export a datetime plus with a literal interval
> ---------------------------------------------------------------
>
>                 Key: IMPALA-15302
>                 URL: https://issues.apache.org/jira/browse/IMPALA-15302
>             Project: IMPALA
>          Issue Type: Sub-task
>          Components: Frontend
>            Reporter: Aleksandr Efimov
>            Assignee: Aleksandr Efimov
>            Priority: Major
>
> Calcite spells a date plus a literal interval as a multiply of the unit by 
> the count, so d + interval 5 days arrives at the seam as +(d, 
> CHECKED_TIMES(5, INTERVAL '1' DAY)). Substrait has add:date_iday and 
> add:date_iyear, but no multiply that takes an interval, so the multiply is 
> what stops the export rather than the plus. A signature for the plus alone 
> does not help, because the multiply fails first.
> Fold a constant interval multiply into the interval literal it works out to, 
> and map Impala's datetime plus onto add. The qualifier comes from the 
> interval operand, which keeps months on the year-month side and days on the 
> day-time one without this code deciding anything.
> A count that is not a literal, as in d + n * interval 1 day, stays refused. 
> Folding adjusts a constant; it cannot remove the multiply, and Substrait has 
> no multiply taking an interval to fall back on.
> Over the TPC-DS queries that carry Calcite goldens this closes the last one 
> that was blocked by something on our side, taking the exporter from 101 of 
> 110 to 102. The eight that remain are a deliberate refusal for SINGLE_VALUE 
> and substrait-java#993 for GROUPING.



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