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]

Reply via email to