Initial-neko commented on a change in pull request #3614:
URL: https://github.com/apache/iceberg/pull/3614#discussion_r767218961
##########
File path:
flink/v1.13/flink/src/main/java/org/apache/iceberg/flink/FlinkCatalog.java
##########
@@ -400,6 +400,24 @@ void createIcebergTable(ObjectPath tablePath,
CatalogBaseTable table, boolean ig
}
}
+ // skip the AbstractConstraint comparison
+ public boolean schemaCompare(org.apache.flink.table.api.Schema rawSchema,
+ org.apache.flink.table.api.Schema newSchema) {
+
+ org.apache.flink.table.api.Schema.UnresolvedPrimaryKey rawPK =
rawSchema.getPrimaryKey().orElse(null);
+
+ org.apache.flink.table.api.Schema.UnresolvedPrimaryKey newPK =
newSchema.getPrimaryKey().orElse(null);
+ if ((rawPK == null && newPK != null) || (rawPK != null && newPK == null)) {
+ return false;
+ }
+ boolean exp = rawSchema.getColumns().equals(newSchema.getColumns()) &&
+
rawSchema.getWatermarkSpecs().equals(newSchema.getWatermarkSpecs());
+ boolean exp2 = rawPK != null && newPK != null ?
+ rawPK.getColumnNames().equals(newPK.getColumnNames())
+ : true;
Review comment:
I also think it needs to be retained because it is easier to understand
if(rawPK == null && newPK == null) this situation always return true
and other situation needs to calculate
rawPK.getColumnNames().equals(newPK.getColumnNames())
via
```
if ((rawPK == null && newPK != null) || (rawPK != null && newPK == null)) {
return false;
}
```
maybe compiler know that rawPK and newPK must be double null or not
So When the code reaches here, if rawPK is null, newPK must be null
exp2 can simplify like this
```
exp2 = rawPK != null?
rawPK.getColumnNames().equals(newPK.getColumnNames())
: true;
```
boolean exp2 = rawPK == null ||
rawPK.getColumnNames().equals(newPK.getColumnNames());
this result is ok :)
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]