viirya commented on code in PR #57088:
URL: https://github.com/apache/spark/pull/57088#discussion_r3541713305


##########
sql/core/src/test/scala/org/apache/spark/sql/execution/arrow/ArrowWriterSuite.scala:
##########
@@ -323,6 +323,118 @@ class ArrowWriterSuite extends SparkFunSuite {
     }
   }
 
+  test("calendar interval overflow raises DATETIME_OVERFLOW at the conversion 
site") {
+    // The default IntervalMonthDayNano mapping multiplies microseconds by 
1000 into Arrow's
+    // int64 nanosecond field. The overflow must surface as the structured 
DATETIME_OVERFLOW
+    // (not a raw ArithmeticException), and the translation must be scoped to 
the conversion:
+    // an unrelated (Spark)ArithmeticException raised by upstream evaluation 
must pass through
+    // unchanged, which the writer guarantees by catching only around 
Math.multiplyExact.

Review Comment:
   Added. The test now also drives a row whose `getInterval` throws a 
`DIVIDE_BY_ZERO` `SparkArithmeticException` (standing in for lazily-evaluated 
upstream input) and asserts the very same instance escapes unchanged, so a 
future refactor that widened the `try` past the `Math.multiplyExact` expression 
fails this test instead of silently relabeling upstream errors.



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