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]

Reply via email to