pengfei.zhan created CALCITE-5838:
-------------------------------------
Summary: derive wrong decimal divide type
Key: CALCITE-5838
URL: https://issues.apache.org/jira/browse/CALCITE-5838
Project: Calcite
Issue Type: Bug
Components: core
Affects Versions: 1.34.0
Reporter: pengfei.zhan
Given a table metadata structure as follows:
{code:sql}
create table `tbl_test`(`CRR` decimal(38,2), `DT` varchar(4096)) ROW FORMAT
DELIMITED FIELDS TERMINATED BY '\t';
{code}
If the following query is executed,
{code:sql}
select sum(CRR_0/1000000000.02) from (select sum(CRR) as CRR_0 from tbl_test
where DT='20230705') T1
{code}
The RexCall CRR_0/1000000000.02 derived a decimal type of decimal(38, 0). I
referred the derived type in spark, but it gives decimal(38, 4). It looks like
the inferred type is more reasonable.
[hive doc |
https://cwiki.apache.org/confluence/download/attachments/27362075/Hive_Decimal_Precision_Scale_Support.pdf]
[sql server doc | https://msdn.microsoft.com/en-us/library/ms190476.aspx]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)