mbutrovich commented on issue #5258: URL: https://github.com/apache/datafusion-comet/issues/5258#issuecomment-5181043570
`CometScanRule.scala:743-744` calls `IcebergReflection.getEqualityFieldIds(deleteFileClass, deleteFile)` on the same `DeleteFile` that serde later reflects on again, and that helper's catch (`IcebergReflection.scala:730 case _: Exception =>` in the PR branch) returns an empty list for a `NoSuchMethodException` and for a genuine invoke failure alike. So a genuine invoke failure at planning time does not produce a fallback reason, it produces an empty equality-id list, which `CometScanRule` reads as "this is a position delete" and lets through to the native path unchanged. This is a live instance of the ambiguity, not a hypothetical one, and it argues for the second option in the issue: keep `Option`/empty-collection for "not declared" and let a genuine invoke failure propagate. `findMethod` already does this split (`None` only for `NoSuchMethodException`); extending it to `getEqualityFieldIds` and the other helpers would fix the false pass-through at `CometScanRule.scala:743` and g ive serde a real exception to catch, instead of requiring two independent fixes. -- 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]
