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)

Reply via email to