fallintoplace opened a new issue, #951: URL: https://github.com/apache/arrow-go/issues/951
### Describe the bug `TimestampType.GetZone` correctly reports an error unless the timezone is empty, a recognized timezone database name, or an absolute offset. Some construction and parsing paths do not preserve that invariant: - `arrow/ipc.timestampFromFB` accepts the serialized timezone string without validation. - `Timestamp.ValueStr` discards the error from `GetToTimeFunc` and calls the returned function, which is nil for an invalid timezone. - `TimestampBuilder.UnmarshalOne` ignores the error from `GetZone`; the fallback location can cause invalid timezone metadata to be interpreted as UTC. `TimestampBuilder.AppendValueFromString` already propagates `GetZone` errors and provides a useful model for the builder fix. Invalid timezone metadata should be rejected at an error-returning boundary rather than becoming a later formatting panic or silent UTC interpretation. ### Suggested scope - Validate timestamp timezone strings while decoding IPC schemas. - Propagate `GetZone` errors from JSON unmarshalling. - Decide which other error-returning datatype or array construction boundaries should validate timestamp metadata. - Keep `ValueStr` defensive, while allowing it to rely on a documented valid-datatype invariant where possible. ### Regression coverage - Invalid timezone database name. - Malformed absolute offset. - Valid timezone database name and valid fixed offsets. - IPC schema decoding with invalid timezone metadata. - JSON unmarshal and `ValueStr` behavior. Observed on current `main` at `750586710988bc18f7af64fd29af8e0acdb252ac`. ### Component(s) Other -- 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]
