[ 
https://issues.apache.org/jira/browse/HIVE-30021?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vikram Ahuja updated HIVE-30021:
--------------------------------
    Description: 
 1. CREATE TABLE fails outright. 
ArrayWritableObjectInspector.getObjectInspector( 
(ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/ArrayWritableObjectInspector.java)
 has no case for this type, so ParquetHiveSerDe.initialize() — called during 
Table.checkValidity() — throws immediately: UnsupportedOperationException: 
Unknown field type: timestamp with local time zone('US/Pacific'). So a table 
with this column type can never even be created with STORED AS PARQUET.

 2. Schema generation has no case for it either. 
HiveSchemaConverter.convertType() 
(.../io/parquet/convert/HiveSchemaConverter.java) — which builds the physical 
Parquet MessageType at write time — falls through to throw new 
IllegalArgumentException("Unknown type: " + typeInfo).

 3. Write path has no case either. DataWritableWriter.createWriter() 
(.../io/parquet/write/DataWritableWriter.java) explicitly rejects it:
  IllegalArgumentException: Unsupported primitive data type: TIMESTAMPLOCALTZ

 4. Read path silently returns the wrong type. ETypeConverter 
(.../io/parquet/convert/ETypeConverter.java) has a case that matches 
TIMESTAMPLOCALTZ_TYPE_NAME for the INT64 encoding, but shares it with plain 
TIMESTAMP and always constructs a TimestampWritableV2 — never a 
TimestampLocalTZWritable. The INT96 converter (EINT96_TIMESTAMP_CONVERTER) has 
no type-specific handling for it at all, same default-to-TimestampWritableV2 
problem.

 

*Steps to reproduce:*
{code:java}
  CREATE EXTERNAL TABLE t (
    tsval timestamp with local time zone
  )
  stored as parquet;{code}

> TIMESTAMP WITH LOCAL TIME ZONE columns cannot be created, written, or read 
> correctly on Parquet tables
> ------------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-30021
>                 URL: https://issues.apache.org/jira/browse/HIVE-30021
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Vikram Ahuja
>            Assignee: Vikram Ahuja
>            Priority: Major
>
>  1. CREATE TABLE fails outright. 
> ArrayWritableObjectInspector.getObjectInspector( 
> (ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/ArrayWritableObjectInspector.java)
>  has no case for this type, so ParquetHiveSerDe.initialize() — called during 
> Table.checkValidity() — throws immediately: UnsupportedOperationException: 
> Unknown field type: timestamp with local time zone('US/Pacific'). So a table 
> with this column type can never even be created with STORED AS PARQUET.
>  2. Schema generation has no case for it either. 
> HiveSchemaConverter.convertType() 
> (.../io/parquet/convert/HiveSchemaConverter.java) — which builds the physical 
> Parquet MessageType at write time — falls through to throw new 
> IllegalArgumentException("Unknown type: " + typeInfo).
>  3. Write path has no case either. DataWritableWriter.createWriter() 
> (.../io/parquet/write/DataWritableWriter.java) explicitly rejects it:
>   IllegalArgumentException: Unsupported primitive data type: TIMESTAMPLOCALTZ
>  4. Read path silently returns the wrong type. ETypeConverter 
> (.../io/parquet/convert/ETypeConverter.java) has a case that matches 
> TIMESTAMPLOCALTZ_TYPE_NAME for the INT64 encoding, but shares it with plain 
> TIMESTAMP and always constructs a TimestampWritableV2 — never a 
> TimestampLocalTZWritable. The INT96 converter (EINT96_TIMESTAMP_CONVERTER) 
> has no type-specific handling for it at all, same 
> default-to-TimestampWritableV2 problem.
>  
> *Steps to reproduce:*
> {code:java}
>   CREATE EXTERNAL TABLE t (
>     tsval timestamp with local time zone
>   )
>   stored as parquet;{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to