Skip to content

[Go] timestamp and time64 type issue #37369

@davidhcoe

Description

@davidhcoe

Describe the bug, including details regarding any error messages, version, and platform.

Working with the Snowflake Go driver, when I request:

Select TIMESTAMP_LTZ, TIME the result gets converted to values

{[1388678400] [123450000]}
[86399000000000]

and everything works as expected.

However, if I run Select TIMESTAMP_LTZ, TIME`, then that gets converted to values:

[86399000000000]
{[1388678400] [123450000]}

and a type mismatch is thrown:

panic: arrow/array: column "GO_TIME" type mismatch: got=timestamp[ns, tz=America/Los_Angeles], want=time64[ns]

goroutine 39 [running]:
github.com/apache/arrow/go/v13/arrow/array.NewRecord(0xc00054a180, {0xc00044caa0, 0x2, 0xc00059a240?}, 0x1)
        **C:/Users/davidcoe/go/pkg/mod/github.com/apache/arrow/go/v13@v13.0.0-20230713180941-b97597765355/arrow/array/record.go:151 +0x197
githu**b.com/apache/arrow-adbc/go/adbc/driver/snowflake.getRecTransformer.func1({0x5fe5acf0, 0xc0005923c0}, {0x5fe723c8, 0xc0003ea3c0})
        C:/dev/arrow-adbc/go/adbc/driver/snowflake/record_reader.go:74 +0x419
github.com/apache/arrow-adbc/go/adbc/driver/snowflake.newRecordReader.func2()
        C:/dev/arrow-adbc/go/adbc/driver/snowflake/record_reader.go:499 +0x1b7
golang.org/x/sync/errgroup.(*Group).Go.func1()
        C:/Users/davidcoe/go/pkg/mod/golang.org/x/sync@v0.3.0/errgroup/errgroup.go:75 +0x64
created by golang.org/x/sync/errgroup.(*Group).Go
        C:/Users/davidcoe/go/pkg/mod/golang.org/x/sync@v0.3.0/errgroup/errgroup.go:72 +0xa5

It appears some type of indexing or overflow issue may be occurring when the timestamp value is sent first.

Component(s)

Go

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions