jelly-1203 commented on a change in pull request #18017:
URL: https://github.com/apache/flink/pull/18017#discussion_r769618830
##########
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, @jelly-1203 thanks for the update and analysis, I agree that it
not possible to add unified check at the end. but I still think that the check
here can be improved a bit:
>
> 1. it seems that the check here is not relevant to the new added
ComputingColumn, if you want to check the duplication, it is better to add it
when updating metadataFieldNamesToTypes.
> 2. according to current implementation, regular columns have top
priority(we collect collectPhysicalFieldsTypes at the beginning), so we may
also need to check if there is duplicated name in physicalFieldNamesToTypes
when trying to a metadata column or computed column. If we add such check, the
check in 1 is not necessary any more.
>
> what do you think?
hi, @wenlong88 I think your suggestion is reasonable, I will try to modify it
--
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]