spark-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Wenchen Fan (Jira)" <>
Subject [jira] [Resolved] (SPARK-28730) Configurable type coercion policy for table insertion
Date Fri, 23 Aug 2019 05:53:00 GMT


Wenchen Fan resolved SPARK-28730.
    Fix Version/s: 3.0.0
       Resolution: Fixed

Issue resolved by pull request 25453

> Configurable type coercion policy for table insertion
> -----------------------------------------------------
>                 Key: SPARK-28730
>                 URL:
>             Project: Spark
>          Issue Type: Sub-task
>          Components: SQL
>    Affects Versions: 3.0.0
>            Reporter: Gengliang Wang
>            Assignee: Gengliang Wang
>            Priority: Major
>             Fix For: 3.0.0
> After all the discussions in the dev list:

> Here I propose that we can make the store assignment rules in the analyzer configurable,
and the behavior of V1 and V2 should be consistent.
> When inserting a value into a column with a different data type, Spark will perform type
coercion. After this PR, we support 2 policies for the type coercion rules: 
> legacy and strict. 
> 1. With legacy policy, Spark allows casting any value to any data type and null result
is returned when the conversion is invalid. The legacy policy is the only behavior in Spark
2.x and it is compatible with Hive. 
> 2. With strict policy, Spark doesn't allow any possible precision loss or data truncation
in type coercion, e.g. `int` and `long`, `float` -> `double` are not allowed.
> Eventually, the "legacy" mode will be removed, so it is disallowed in data source V2.
> To ensure backward compatibility with existing queries, the default store assignment
policy for data source V1 is "legacy" before ANSI mode is implemented.

This message was sent by Atlassian Jira

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message