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

snuyanzin 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 77a017a3970 [FLINK-40288][table] Use correct type in 
`ExprCodeGenerator#visitFieldAccess`
77a017a3970 is described below

commit 77a017a3970931286e11a2b29ab10326b55c525b
Author: Sergey Nuyanzin <[email protected]>
AuthorDate: Mon Aug 3 10:09:56 2026 +0200

    [FLINK-40288][table] Use correct type in 
`ExprCodeGenerator#visitFieldAccess`
---
 .../org/apache/flink/table/planner/codegen/ExprCodeGenerator.scala   | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git 
a/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/ExprCodeGenerator.scala
 
b/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/ExprCodeGenerator.scala
index 9427dace35d..147fc1bdf36 100644
--- 
a/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/ExprCodeGenerator.scala
+++ 
b/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/ExprCodeGenerator.scala
@@ -389,7 +389,8 @@ class ExprCodeGenerator(
     val index = rexFieldAccess.getField.getIndex
     val fieldAccessExpr = generateFieldAccess(ctx, refExpr.resultType, 
refExpr.resultTerm, index)
 
-    val resultType = fieldAccessExpr.resultType
+    // Use the field access' own (planner-derived) type: a field of a nullable 
parent row is nullable even if declared NOT NULL.
+    val resultType = FlinkTypeFactory.toLogicalType(rexFieldAccess.getType)
 
     val resultTypeTerm = primitiveTypeTermForType(resultType)
     val defaultValue = primitiveDefaultValue(resultType)
@@ -410,7 +411,7 @@ class ExprCodeGenerator(
          |}
          |""".stripMargin
 
-    GeneratedExpression(resultTerm, nullTerm, resultCode, 
fieldAccessExpr.resultType)
+    GeneratedExpression(resultTerm, nullTerm, resultCode, resultType)
   }
 
   override def visitLiteral(literal: RexLiteral): GeneratedExpression = {

Reply via email to