Describe the bug, including details regarding any error messages, version, and platform.
The Gandiva precompiled time casting functions (castTIMESTAMP_utf8 and castTIME_utf8) incorrectly reject timestamp and time string literals with more than 3 subsecond digits (beyond millisecond precision), instead of truncating them as other implementations do.
Current behavior:
castTIMESTAMP_utf8("2025-03-26 11:34:56.123456789")
// Returns: 0 (error)
// Error: "Invalid millis for timestamp value 2025-03-26 11:34:56.123456789"
castTIME_utf8("09:45:30.123456789")
// Returns: 0 (error)
// Error: "Invalid millis for time value 09:45:30.123456789"
Expected behavior:
castTIMESTAMP_utf8("2025-03-26 11:34:56.123456789")
// Should return: equivalent to "2025-03-26 11:34:56.123" (truncated to milliseconds)
castTIME_utf8("09:45:30.123456789")
// Should return: equivalent to "09:45:30.123" (truncated to milliseconds)
I'm going to open PR with the fix.
Component(s)
Gandiva
Describe the bug, including details regarding any error messages, version, and platform.
The Gandiva precompiled time casting functions (
castTIMESTAMP_utf8andcastTIME_utf8) incorrectly reject timestamp and time string literals with more than 3 subsecond digits (beyond millisecond precision), instead of truncating them as other implementations do.Current behavior:
Expected behavior:
I'm going to open PR with the fix.
Component(s)
Gandiva