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

xiong duan resolved CALCITE-6419.
---------------------------------
    Resolution: Fixed

> Invalid unparse for VARCHAR without precision in HiveSqlDialect And 
> SparkSqlDialect
> -----------------------------------------------------------------------------------
>
>                 Key: CALCITE-6419
>                 URL: https://issues.apache.org/jira/browse/CALCITE-6419
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 1.37.0
>            Reporter: xiong duan
>            Assignee: xiong duan
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 1.38.0
>
>
> When we execute SQL in Calcite:
> {code:java}
> select cast(product_id as varchar) from product;
> {code}
> Generage the HiveSQL\SparkSQL:
> {code:java}
> select cast(product_id as varchar) from product;
> {code}
> According to the 
> [https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-VarcharvarcharVarchar].
> In Hive, the varchar must have a precision.So when unpare VARCHAR without 
> precision, I will convert VARCHAR to String. VARCHAR with precison do nothing.
> According to the 
> [https://spark.apache.org/docs/latest/sql-ref-datatypes.html].
> In Spark, Same as Hive. But as note, It can only be used in table schema, not 
> functions/operators. So I will convert VARCHAR with or without precision to 
> String;
> In SparkSQL, VarcharĀ  with precision are not effective, but no error and just 
> a warning:
> {code:java}
> spark-sql> select cast('value' as varchar(2));
> 24/05/24 16:04:39 WARN CharVarcharUtils: The Spark cast operator does not 
> support char/varchar type and simply treats them as string type. Please use 
> string type directly to avoid confusion. Otherwise, you can set 
> spark.sql.legacy.charVarcharAsString to true, so that Spark treat them as 
> string type as same as Spark 3.0 and earlier
> value
> Time taken: 2.797 seconds, Fetched 1 row(s){code}



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

Reply via email to