Aleksey Plekhanov created IGNITE-15418:
------------------------------------------
Summary: Calcite engine. TIMESTAMPDIFF function returns INTEGER
type for MICROSECOND time unit
Key: IGNITE-15418
URL: https://issues.apache.org/jira/browse/IGNITE-15418
Project: Ignite
Issue Type: Bug
Reporter: Aleksey Plekhanov
SQL function {{TIMESTAMPDIFF}} returns {{INTEGER}} type for {{MICROSECOND}}
time unit, but sometimes precession of {{int}} is not enough to store value.
For example, value for
{code:java}
SELECT TIMESTAMPDIFF(MICROSECOND, TIMESTAMP '2022-02-01 10:30:26.000',
TIMESTAMP '2022-05-01 10:30:28.122'){code}
is {{7689602122000}}, and it's more then maximum {{int}} value. It's better to
extend {{TIMESTAMPDIFF}} return type to {{BIGINT}} for {{MICROSECOND}} time
unit (\{{SqlTimestampDiffFunction.RETURN_TYPE_INFERENCE}} should be changed).
The main problem - this function is defined in Calcite and hardcoded in the
parser (see {{TimestampDiffFunctionCall}} in {{Parser.jj}}), so it's not so
easy to provide our own implementation.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)