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

Mihai Budiu resolved CALCITE-6909.
----------------------------------
    Resolution: Fixed

Fixed in 
https://github.com/apache/calcite/commit/bc60174737c6c01e86615f793399860495cddbba
Thank you for the contribution [~xuzifu666]
Thank you for the review [~nobigo]

> ClickHouse dialect should limit the Precision and Scale of the Decimal type 
> to be within 76
> -------------------------------------------------------------------------------------------
>
>                 Key: CALCITE-6909
>                 URL: https://issues.apache.org/jira/browse/CALCITE-6909
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 1.39.0
>            Reporter: Yu Xu
>            Assignee: Yu Xu
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.40.0
>
>
> Currently ClickHouse Dailect can not support accurate precision
> In ClickHouse:
>  * *P - precision. Valid range: [ 1 : 76 ].* 
>  * *S - scale. Valid range: [ 0 : P ].* 
> Depending on P parameter value Decimal(P, S) is a synonym for:
>  * *P from [ 1 : 9 ] - for Decimal32(S)*
>  * *P from [ 10 : 18 ] - for Decimal64(S)*
>  * *P from [ 19 : 38 ] - for Decimal128(S)*
>  * *P from [ 39 : 76 ] - for Decimal256(S)*
> we can refer to doc with: 
> [https://clickhouse.com/docs/sql-reference/data-types/decimal]
>  
> eg:{*}select cast(\"product_id\" as decimal(22,20)) from \"product\"{*}
> but transform to: *SELECT CAST(`product_id` AS DECIMAL(19, 19)) FROM 
> `foodmart`.`product`*
>  
> this should be transform to:  *SELECT CAST(`product_id` AS DECIMAL(22, 20)) 
> FROM `foodmart`.`product`*
> because CK precision is from[1, 76] 
>  
> *user case:* 
> if user want to cast to a decimal type such as :
> select cast('1.322131231313123311312322' as DECIMAL(30,24)) from 
> system.numbers limit 1;
> should be a decimal number of 1.322131231313123311312322
> but currently  calcite ClickHouse dialect can only cast 
> to:1.322131231313123311
> this would cause loss of precision.
>  



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

Reply via email to