This is an automated email from the ASF dual-hosted git repository.

lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git


The following commit(s) were added to refs/heads/master by this push:
     new 7eaf30f77 [common] Fix overflow problem of NumericToBooleanCastRule 
(#4519)
7eaf30f77 is described below

commit 7eaf30f776b9d1573d86a274ac53633d267262af
Author: yuzelin <[email protected]>
AuthorDate: Wed Nov 13 17:02:55 2024 +0800

    [common] Fix overflow problem of NumericToBooleanCastRule (#4519)
---
 .../main/java/org/apache/paimon/casting/NumericToBooleanCastRule.java  | 2 +-
 .../src/test/java/org/apache/paimon/flink/SchemaChangeITCase.java      | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git 
a/paimon-common/src/main/java/org/apache/paimon/casting/NumericToBooleanCastRule.java
 
b/paimon-common/src/main/java/org/apache/paimon/casting/NumericToBooleanCastRule.java
index 06fa89fe3..5b47741e6 100644
--- 
a/paimon-common/src/main/java/org/apache/paimon/casting/NumericToBooleanCastRule.java
+++ 
b/paimon-common/src/main/java/org/apache/paimon/casting/NumericToBooleanCastRule.java
@@ -37,6 +37,6 @@ class NumericToBooleanCastRule extends 
AbstractCastRule<Number, Boolean> {
 
     @Override
     public CastExecutor<Number, Boolean> create(DataType inputType, DataType 
targetType) {
-        return value -> value.intValue() != 0;
+        return value -> value.longValue() != 0;
     }
 }
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/SchemaChangeITCase.java
 
b/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/SchemaChangeITCase.java
index ba161fe84..a2ef1d5c8 100644
--- 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/SchemaChangeITCase.java
+++ 
b/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/SchemaChangeITCase.java
@@ -251,7 +251,8 @@ public class SchemaChangeITCase extends CatalogITCaseBase {
     public void testModifyColumnTypeBooleanAndNumeric() {
         // boolean To numeric and numeric To boolean
         sql("CREATE TABLE T (a BOOLEAN, b BOOLEAN, c TINYINT, d INT, e BIGINT, 
f DOUBLE)");
-        sql("INSERT INTO T VALUES(true, false, cast(0 as TINYINT), 1 , 123, 
3.14)");
+        sql(
+                "INSERT INTO T VALUES(true, false, cast(0 as TINYINT), 1 , 
-9223372036854775808, 3.14)");
 
         sql("ALTER TABLE T MODIFY (a TINYINT, b INT, c BOOLEAN, d BOOLEAN, e 
BOOLEAN)");
         List<Row> result = sql("SHOW CREATE TABLE T");

Reply via email to