Max Gekk created SPARK-57853:
--------------------------------
Summary: Define TIME +/- INTERVAL out-of-range semantics
(modulo-24 vs overflow)
Key: SPARK-57853
URL: https://issues.apache.org/jira/browse/SPARK-57853
Project: Spark
Issue Type: Sub-task
Components: SQL
Affects Versions: 4.3.0
Reporter: Max Gekk
This sub-task is part of the umbrella SPARK-57550 (extend support for the TIME
data type).
h2. Problem
{{DateTimeUtils.timeAddInterval}} (DateTimeUtils.scala ~L1238-1250) throws when
the result leaves {{[0, 24:00)}}. ANSI HOUR arithmetic on TIME is modulo-24
(std ~L16582-16583). The out-of-range policy for TIME +/- INTERVAL is a
semantics decision that is not yet settled.
h2. Goal
Decide and implement the out-of-range policy for TIME +/- INTERVAL - ANSI
modulo-24 wrap vs Spark's current overflow error - document it, and apply it
consistently across {{TimeAddInterval}}, {{sequence}}, and TRY eval mode.
h2. Scope
Settle the policy; implement it in {{DateTimeUtils.timeAddInterval}} and the
related expressions; ensure TRY mode returns NULL where the non-TRY path
errors/wraps; document the behavior.
h2. Acceptance criteria
* {{TIME + INTERVAL}} that crosses midnight has documented, consistent
behavior; TRY mode returns NULL where non-TRY errors/wraps.
h2. Testing
{{TimeExpressionsSuite}}; TIME golden files.
h2. Dependencies
Relates to the sequence-over-TIME sub-task and SPARK-57560 (TRY-mode
arithmetic). Ideally settled before the sequence sub-task finalizes its
stepping behavior.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]