toddfarmer opened a new pull request, #13433: URL: https://github.com/apache/arrow/pull/13433
Under certain conditions, JDBC vendors may return ResultSets where the scale of BigDecimal values differ by row. Existing logic required exact matching of every row to the established scale for the column (target vector), and throws UnsupportedOperationException when there is a mismatch, aborting ResultSet processing. This change enables configuration of a java.math.RoundingMode to be applied in any required scale conversion, and should enable both full-fidelity truncation (trimming trailing zeros right of decimal) as well as lossy conversion (see [RoundingModes javadoc](https://docs.oracle.com/javase/8/docs/api/java/math/RoundingMode.html)). Note that this is implemented as a global configuration options - it will apply to all BigDecimal columns in a ResultSet being processed using the supplied config. It's possible to provide per-column control over this behavior, but I assessed that to complicate configuration for little benefit. Please indicate if this decision should be reevaluated. -- 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]
