joellubi commented on code in PR #1456:
URL: https://github.com/apache/arrow-adbc/pull/1456#discussion_r1459090880
##########
go/adbc/driver/snowflake/record_reader.go:
##########
@@ -389,7 +386,15 @@ func jsonDataToArrow(ctx context.Context, bldr
*array.RecordBuilder, ld gosnowfl
return nil, err
}
- if tz != time.UTC {
+ snowflakeType, ok :=
bldr.Schema().Field(i).Metadata.GetValue(MetadataKeySnowflakeType)
+ if !ok {
+ return nil, errToAdbcErr(
+ adbc.StatusInvalidData,
+ fmt.Errorf("key %s not found in
metadata for field %s", MetadataKeySnowflakeType, bldr.Schema().Field(i).Name),
+ )
+ }
Review Comment:
We do guarantee it because it is added in `rowTypesToArrowSchema`, which is
always called before `jsonDataToArrow`. If this method was used elsewhere in
the future without specifically producing the schema with
`rowTypesToArrowSchema` first then it could cause issues though. Perhaps it is
better to fail quickly in that case to ensure that kind of change isn't made in
the future. This does make me think about the case where the key is present but
has the default empty string value. The current behavior is to fall through to
the TIMESTAMP_TZ case, which I'm not sure is correct. I'll put up a revision to
this.
--
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]