thswlsqls opened a new issue, #8516: URL: https://github.com/apache/paimon/issues/8516
**Search before asking** - [x] I searched in the [issues](https://github.com/apache/paimon/issues) and found nothing similar. **Paimon version** master @ 0e22fa885 / 2.0-SNAPSHOT **Compute Engine** Engine-agnostic (core) **Minimal reproduce step** `MultisetType` (paimon-api/src/main/java/org/apache/paimon/types/MultisetType.java) does not override `equalsIgnoreFieldId(DataType)` or `isPrunedFrom(Object)`. It inherits the `DataType` base implementations, which just `return equals(o)` and therefore compare element field ids. Its sibling nested types `ArrayType`, `MapType`, `RowType`, and `VectorType` all override both methods to recurse into their element/key/value types. **What doesn't meet your expectations?** For `MULTISET<ROW<...>>`, `equalsIgnoreFieldId` and `isPrunedFrom` wrongly return false when only field ids differ. Because `DataField.equalsIgnoreFieldId` and `RowType.equalsIgnoreFieldId` recurse through the element type, this corrupts schema-evolution comparison and column pruning whenever a multiset of a nested type is involved. **Anything else?** Two `MULTISET<ROW<f:INT>>` values with different field ids compare unequal under `equalsIgnoreFieldId`, and a pruned `MULTISET<ROW<f>>` is not recognized as pruned from `MULTISET<ROW<f,g>>`. **Are you willing to submit a PR?** - [x] I'm willing to submit a PR! -- 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]
