MaxGekk opened a new pull request #25716: [WIP][SPARK-29012][SQL] Support 
special timestamp values
URL: https://github.com/apache/spark/pull/25716
 
 
   ### What changes were proposed in this pull request?
   
   Supported special string values for `TIMESTAMP` type. They are simply 
notational shorthands that will be converted to ordinary timestamp values when 
read. The following string values are supported:
   - `epoch` - `1970-01-01 00:00:00+00 (Unix system time zero)`
   - `today` - midnight today.
   - `yesterday` -midnight yesterday
   - `tomorrow` - midnight tomorrow
   - `now` - current query start time.
   
   For example:
   ```sql
   spark-sql> SELECT timestamp 'tomorrow';
   2019-09-07 00:00:00
   ```
   
   ### Why are the changes needed?
   
   To maintain feature parity with PostgreSQL, see [8.5.1.4. Special 
Values](https://www.postgresql.org/docs/12/datatype-datetime.html)
   
   
   ### Does this PR introduce any user-facing change?
   
   Previously, the parser fails on the special values with the error:
   ```sql
   spark-sql> select timestamp 'today';
   Error in query: 
   Cannot parse the TIMESTAMP value: today(line 1, pos 7)
   ```
   After the changes, the special values are converted to appropriate dates:
   ```sql
   spark-sql> select timestamp 'today';
   2019-09-06 00:00:00
   ```
   
   ### How was this patch tested?
   - Added tests to `TimestampFormatterSuite` to check parsing special values 
from regular strings.
   - Tests in `DateTimeUtilsSuite` check parsing those values from `UTF8String`
   - Uncommented tests in `timestamp.sql`
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to