Max Gekk created SPARK-57460:
--------------------------------

             Summary: Support nanosecond-precision timestamp types in the JDBC 
datasource
                 Key: SPARK-57460
                 URL: https://issues.apache.org/jira/browse/SPARK-57460
             Project: Spark
          Issue Type: Sub-task
          Components: SQL
    Affects Versions: 5.0.0
            Reporter: Max Gekk


Umbrella: SPARK-56822 (Timestamps with nanosecond precision).

Add read and write support for the nanosecond-capable timestamp types 
TIMESTAMP_NTZ(p) and TIMESTAMP_LTZ(p) (p in 7-9) so this datasource reaches 
parity with the microsecond TimestampType / TimestampNTZType. Remove the 
SPARK-57166 rejection guardrail (supportDataType / supportsDataType) once read 
and write are implemented and tested, and update FileBasedDataSourceSuite 
accordingly. Cover precisions 7-9 for both NTZ and LTZ.

Scope (java.sql.Timestamp already carries sub-microsecond getNanos):
- Spark->JDBC: add nanos cases to JdbcUtils.getCommonJDBCType (Types.TIMESTAMP; 
dialects may emit TIMESTAMP(p) / WITH TIME ZONE).
- JDBC->Spark: getCatalystType / getTimestampType (map driver TIMESTAMP to 
nanos only when requested via option/dialect, to preserve default microsecond 
behavior).
- Read: makeGetter builds TimestampNanosVal preserving 
rs.getTimestamp().getNanos().
- Write: makeSetter sets full nanos.
- Dialect hooks in JdbcDialects for DBs with explicit TIMESTAMP(p).
- Guardrail: CreatableRelationProvider.supportsDataType whitelist in 
interfaces.scala.



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