Max Gekk created SPARK-57837:
--------------------------------

             Summary: Support the precision argument in current_timestamp(p) 
and localtimestamp(p)
                 Key: SPARK-57837
                 URL: https://issues.apache.org/jira/browse/SPARK-57837
             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-56822 (timestamps with nanosecond 
precision).

h2. Problem
Today {{current_timestamp}} / {{now}} / {{localtimestamp}} take no precision 
argument - {{CurrentTimestamp}} / {{Now}} are fixed {{TimestampType}} and 
{{LocalTimestamp}} fixed {{TimestampNTZType}} (datetimeExpressions.scala 
~L191-268), registered without a builder ({{FunctionRegistry}} ~L701/705), and 
the parser produces {{CurrentTimestamp()}} with no args ({{AstBuilder}} 
~L3589). ANSI SQL/Foundation defines an optional <timestamp precision> on both 
(Feature F555 "Enhanced seconds precision", std lines ~16669-16737), with 
{{LOCALTIMESTAMP(p) = CAST(CURRENT_TIMESTAMP(p) AS TIMESTAMP(p) WITHOUT TIME 
ZONE)}}.

h2. Goal
Accept an optional precision {{p}} in {{current_timestamp(p)}} and 
{{localtimestamp(p)}} for {{p}} in [7, 9] (when nanosecond types are enabled), 
returning the corresponding nanosecond LTZ/NTZ type. {{current_time(p)}} 
(timeExpressions.scala ~L489-534) is the existing precedent to mirror.

h2. Scope
Add precision-aware expression builders for the current-timestamp functions; 
return {{TimestampLTZNanosType(p)}} / {{TimestampNTZNanosType(p)}}; wire the 
value from the query's current instant with the nanosecond remainder; keep the 
no-arg forms as microsecond defaults.

h2. Acceptance criteria
* {{current_timestamp(9)}} / {{localtimestamp(9)}} return nanosecond-typed 
current time; no-arg forms unchanged.

h2. Testing
{{DateExpressionsSuite}} / {{ComputeCurrentTimeSuite}}; nanos golden files.

h2. Dependencies
None hard (builds on resolved ComputeCurrentTime SPARK-57748); reuses the 
internal nanosecond make-timestamp expressions surfaced by the make_timestamp 
sub-task.




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