andygrove opened a new issue, #55:
URL: https://github.com/apache/datafusion-java/issues/55

   Follow-up from PR #46 review 
([thread](https://github.com/apache/datafusion-java/pull/46#discussion_r3255172936)).
   
   ## Problem
   
   When a Java-implemented upcall throws (currently: scalar UDFs via 
`JniBridge`, but the same will apply to any future upcall — table providers, 
aggregate UDFs, etc.), the native side surfaces only the exception class name 
and `getMessage()` via `DataFusionError::Execution`. The Java stack trace is 
discarded, which makes debugging much harder than necessary.
   
   ## Proposal
   
   Capture the throwable's stack trace on the JVM side and include it in the 
error string returned to native code. Make verbosity configurable per 
`SessionContext` so production callers can opt out — e.g. an enum like `message 
| full | none`, default `full`.
   
   ## Scope
   
   Should cover all JVM→native upcall paths, not just scalar UDFs. A shared 
helper in `org.apache.datafusion.internal.JniBridge` (or a new `JniErrors` 
utility) that converts a `Throwable` to the configured representation, used 
wherever upcalls catch exceptions.
   
   ## References
   
   - pgwhalen's session-configurable approach in his community binding: 
https://github.com/pgwhalen/datafusion-java/blob/1c20733aa8b008315af6092a912b58ef3df6a482/datafusion-ffi-java/src/main/java/org/apache/arrow/datafusion/config/ConfigOptions.java#L50-L54


-- 
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