jelly-1203 commented on a change in pull request #18017:
URL: https://github.com/apache/flink/pull/18017#discussion_r766552204



##########
File path: 
flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/operations/MergeTableLikeUtil.java
##########
@@ -426,6 +433,14 @@ private void appendDerivedColumns(
                         }
                     }
 
+                    Set<String> physicalFieldNames = 
physicalFieldNamesToTypes.keySet();
+                    Set<String> metadataFieldNames = 
metadataFieldNamesToTypes.keySet();
+                    final Set<String> result = new 
LinkedHashSet<>(physicalFieldNames);
+                    result.retainAll(metadataFieldNames);
+                    if (!result.isEmpty()) {
+                        throw new ValidationException(
+                                "A field name conflict exists between a field 
of the regular type and a field of the Metadata type.");
+                    }

Review comment:
       Hi @wenlong88 
   Thanks for your review and comments, I think we can adjust the determination 
of whether a SqlRegularColumn type field is duplicated with other types of 
fields to check if a new column is duplicated when put into the column at the 
end of this function.
   But accessibleFieldNamesToTypes heavy logic to this place, I think it is 
necessary, because, when creating computecolcolumn if metadata columns in the 
former, repetitive physical column in the bottom, In the use of 
accessibleFieldNamesToTypes putAll, metadata list field covers physical column, 
if the user want, according to the calculated regularColumn you don't need to 
do so.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to