You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Spongebob (Jira)" <ji...@apache.org> on 2022/03/30 08:10:00 UTC
[jira] [Created] (FLINK-26925) loss scale in union situation
Spongebob created FLINK-26925:
---------------------------------
Summary: loss scale in union situation
Key: FLINK-26925
URL: https://issues.apache.org/jira/browse/FLINK-26925
Project: Flink
Issue Type: Bug
Components: Table SQL / API
Reporter: Spongebob
when I union two columns that datatypes are decimal(38,4) and decimal(38,2), but got decimal(38,2) in return. This cause the problem that loss scale in result set. I think the final datatype should be decimal(38,4) would be fine.
{code:java}
TableEnvironment tableEnvironment = TableEnvironment.create(EnvironmentSettings.newInstance().inBatchMode().build());
Table t1 = tableEnvironment.sqlQuery("select cast(1.23 as decimal(38,2)) as a");
Table t2 = tableEnvironment.sqlQuery("select cast(4.5678 as decimal(38,4)) as a");
tableEnvironment.createTemporaryView("t1", t1);
tableEnvironment.createTemporaryView("t2", t2);
tableEnvironment.executeSql("select a from t1 union all select a from t2").print();
tableEnvironment.sqlQuery("select a from t1 union all select a from t2").printSchema();
// output
+------------------------------------------+
| a |
+------------------------------------------+
| 1.23 |
| 4.57 |
+------------------------------------------+
2 rows in set
(
`a` DECIMAL(38, 2) NOT NULL
){code}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)