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

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


The following commit(s) were added to refs/heads/master by this push:
     new e3456e35855 [FLINK-38824][table] Fix incorrect default values for 
primitive types
e3456e35855 is described below

commit e3456e35855a0e885007811f57e598869057f642
Author: dylanhz <[email protected]>
AuthorDate: Mon Dec 22 20:55:03 2025 +0800

    [FLINK-38824][table] Fix incorrect default values for primitive types
    
    [FLINK-38824][table] Fix incorrect default values for primitive types
    
    This closes #27354.
---
 .../flink/table/planner/codegen/CodeGenUtils.scala |  4 +++-
 .../table/planner/codegen/CodeGenUtilsTest.scala   |  8 ++++----
 .../planner/runtime/stream/sql/CalcITCase.scala    | 22 ++++++++++++++++++++++
 3 files changed, 29 insertions(+), 5 deletions(-)

diff --git 
a/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/CodeGenUtils.scala
 
b/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/CodeGenUtils.scala
index 537adb07466..c4fac018710 100644
--- 
a/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/CodeGenUtils.scala
+++ 
b/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/CodeGenUtils.scala
@@ -301,7 +301,9 @@ object CodeGenUtils {
     // ordered by type root definition
     case CHAR | VARCHAR => s"$BINARY_STRING.EMPTY_UTF8"
     case BOOLEAN => "false"
-    case TINYINT | SMALLINT | INTEGER | DATE | TIME_WITHOUT_TIME_ZONE | 
INTERVAL_YEAR_MONTH => "-1"
+    case TINYINT => "((byte) -1)"
+    case SMALLINT => "((short) -1)"
+    case INTEGER | DATE | TIME_WITHOUT_TIME_ZONE | INTERVAL_YEAR_MONTH => "-1"
     case BIGINT | INTERVAL_DAY_TIME => "-1L"
     case FLOAT => "-1.0f"
     case DOUBLE => "-1.0d"
diff --git 
a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/codegen/CodeGenUtilsTest.scala
 
b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/codegen/CodeGenUtilsTest.scala
index 1df21ef523c..ae1f6075c6a 100644
--- 
a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/codegen/CodeGenUtilsTest.scala
+++ 
b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/codegen/CodeGenUtilsTest.scala
@@ -91,8 +91,8 @@ object CodeGenUtilsTest {
     java.util.stream.Stream.of(
       // Basic primitive types
       Arguments.of(new BooleanType(), "false"),
-      Arguments.of(new TinyIntType(), "-1"),
-      Arguments.of(new SmallIntType(), "-1"),
+      Arguments.of(new TinyIntType(), "((byte) -1)"),
+      Arguments.of(new SmallIntType(), "((short) -1)"),
       Arguments.of(new IntType(), "-1"),
       Arguments.of(new BigIntType(), "-1L"),
       Arguments.of(new FloatType(), "-1.0f"),
@@ -141,12 +141,12 @@ object CodeGenUtilsTest {
         DistinctType
           .newBuilder(objectIdentifier, new SmallIntType())
           .build(),
-        "-1"),
+        "((short) -1)"),
       Arguments.of(
         DistinctType
           .newBuilder(objectIdentifier, new TinyIntType())
           .build(),
-        "-1"),
+        "((byte) -1)"),
       Arguments.of(
         DistinctType
           .newBuilder(objectIdentifier, new BigIntType())
diff --git 
a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/runtime/stream/sql/CalcITCase.scala
 
b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/runtime/stream/sql/CalcITCase.scala
index 7d08df3ba55..f5649f552fa 100644
--- 
a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/runtime/stream/sql/CalcITCase.scala
+++ 
b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/runtime/stream/sql/CalcITCase.scala
@@ -926,4 +926,26 @@ class CalcITCase extends StreamingTestBase {
     assertThat(arr.apply(1).get("nested2").asInstanceOf[Array[String]])
       .isEqualTo(Array("Test2", "False"))
   }
+
+  @Test
+  def testPrimitiveDefaultValues(): Unit = {
+    val sql =
+      """
+        |SELECT
+        |  a[1]
+        |  ,b[1]
+        |FROM (
+        |  VALUES (CAST(ARRAY[1,2] AS ARRAY<SMALLINT>), CAST(ARRAY[2,3] AS 
ARRAY<TINYINT>))
+        |) t(a, b)
+        |""".stripMargin
+
+    val result = tEnv
+      .executeSql(sql)
+      .collect()
+      .asScala
+      .toList
+      .map(_.toString)
+    val expected = List("1,2")
+    assertThat(result).isEqualTo(expected)
+  }
 }

Reply via email to