apache / apache/arrow-adbc

go/adbc/driver/snowflake: TimeZone is not always a valid TZ identifier

Open
#3,509 7 comments 0 reactions 0 assignees View on GitHub
Type: bug
Dominant language
C#
Stars
627
Forks
217
Avg merge
17h
Merged PRs (30d)
57

Description

### What happened?

The Snowflake driver sometimes produces an Arrow field with type `TimestampType` with the `TimeZone` set to "Local". This happens when the column type is `TIMESTAMP_LTZ`, since it uses the time zone set [here](https://github.com/apache/arrow-adbc/blob/9941cd0617590228a865983d16c735112e610632/go/adbc/driver/snowflake/connection.go#L438) and it can [sometimes be set to "Local"](https://cs.opensource.google/go/go/+/refs/tags/go1.25.1:src/time/zoneinfo_windows.go;l=140):
```
var loc = time.Now().Location()
```
The `TimeZone` field should be a valid TZ identifier if set.

### Stack Trace

_No response_

### How can we reproduce the bug?

Query a table with a column of type `TIMESTAMP_LTZ` using Windows and inspect the resulting field's `TimeZone`.

### Environment/Setup

Windows

Contributor guide

Open the contributing guide

Research direction

Start at connection.go around line 438, where the Snowflake driver sets the time zone for TIMESTAMP_LTZ fields. Reproduce the issue by querying a TIMESTAMP_LTZ column on Windows and inspect the resulting Arrow field; done means its TimeZone is a valid TZ identifier rather than "Local".

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
database
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.