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

twalthr pushed a commit to branch release-1.11
in repository https://gitbox.apache.org/repos/asf/flink.git

commit bbe65db8b6a4c02f1df969ca7f68e5f61df31cf0
Author: Timo Walther <[email protected]>
AuthorDate: Mon Jul 13 14:28:14 2020 +0200

    [hotfix][table-planner-blink] Fix digest for inline structured types with 
generics
---
 .../table/planner/plan/schema/StructuredRelDataType.java      | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git 
a/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/plan/schema/StructuredRelDataType.java
 
b/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/plan/schema/StructuredRelDataType.java
index 4593a28..614b310 100644
--- 
a/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/plan/schema/StructuredRelDataType.java
+++ 
b/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/plan/schema/StructuredRelDataType.java
@@ -35,6 +35,7 @@ import org.apache.calcite.sql.type.SqlTypeName;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * The {@link RelDataType} representation of a {@link StructuredType}.
@@ -98,9 +99,17 @@ public final class StructuredRelDataType extends 
ObjectSqlType {
                                
sb.append(structuredType.asSerializableString());
                        }
                        // in case of inline structured type we are using a 
temporary identifier
+                       // that includes both the implementation class plus its 
children for cases with classes
+                       // that use generics
                        else {
                                sb.append(structuredType.asSummaryString());
-                               if (structuredType.isNullable()) {
+                               sb.append("(");
+                               sb.append(
+                                       fieldList.stream()
+                                               .map(field -> 
field.getType().getFullTypeString())
+                                               .collect(Collectors.joining(", 
")));
+                               sb.append(")");
+                               if (!structuredType.isNullable()) {
                                        sb.append(" NOT NULL");
                                }
                        }

Reply via email to