[ 
https://issues.apache.org/jira/browse/HIVE-26658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17622273#comment-17622273
 ] 

Stamatis Zampetakis commented on HIVE-26658:
--------------------------------------------

Allowing mapping of INT64 timestamp types to other numerics might also be 
beneficial for:
* performing up/down casting to other types with low performance overhead
* schema evolution to other types

Having said that, I don't really see an interesting real-life use-case where it 
makes sense to migrate/cast a timestamp to another numeric (except BIGINT which 
is already fixed) so I don't consider this a high-priority issue.

> INT64 Parquet timestamps cannot be mapped to most Hive numeric types
> --------------------------------------------------------------------
>
>                 Key: HIVE-26658
>                 URL: https://issues.apache.org/jira/browse/HIVE-26658
>             Project: Hive
>          Issue Type: Bug
>          Components: Parquet, Serializers/Deserializers
>    Affects Versions: 4.0.0-alpha-1
>            Reporter: Stamatis Zampetakis
>            Assignee: Stamatis Zampetakis
>            Priority: Minor
>              Labels: backwards-compatibility
>
> When attempting to read a Parquet file with column of primitive type INT64 
> and logical type 
> [TIMESTAMP|https://github.com/apache/parquet-format/blob/54e53e5d7794d383529dd30746378f19a12afd58/LogicalTypes.md?plain=1#L337]
>  an error is raised when the Hive type is different from TIMESTAMP and BIGINT.
> Consider a Parquet file (e.g., ts_file.parquet) with the following schema:
> {code:json}
> {
>   "name": "eventtime",
>   "type": ["null", {
>     "type": "long",
>     "logicalType": "timestamp-millis"
>   }],
>   "default": null
> }
> {code}
>  
> Mapping the column to a Hive numeric type among TINYINT, SMALLINT, INT, 
> FLOAT, DOUBLE, DECIMAL, and trying to run a SELECT will give back an error.
> The following snippet can be used to reproduce the problem.
> {code:sql}
> CREATE TABLE ts_table (eventtime INT) STORED AS PARQUET;
> LOAD DATA LOCAL INPATH 'ts_file.parquet' into table ts_table;
> SELECT * FROM ts_table;
> {code}
> This is a regression caused by HIVE-21215. Although, HIVE-21215 allows to 
> read INT64 types as Hive TIMESTAMP, which was not possible before, at the 
> same time it broke the mapping to every other Hive numeric type. The problem 
> was addressed selectively for BIGINT type very recently (HIVE-26612).
> The primary goal of this ticket is to restore backward compatibility since 
> these use-cases were working before HIVE-21215.



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

Reply via email to