diff --git a/value.go b/value.go index 7fbf778..0a77f5b 100644 --- a/value.go +++ b/value.go @@ -104,7 +104,8 @@ func convertValue(athenaType string, rawValue *string) (any, error) { case "varchar", "timestamp", "timestamp with time zone", "date", - "time", "time with time zone": + "time", "time with time zone", + "array", "map", "row": return val, nil default: return []byte(val), nil diff --git a/value_test.go b/value_test.go index aca43eb..babf076 100644 --- a/value_test.go +++ b/value_test.go @@ -96,6 +96,21 @@ func TestConvertValue(t *testing.T) { rawValue: toPtr("12:34:56 JST"), want: "12:34:56 JST", }, + "array": { + athenaType: "array", + rawValue: toPtr("[one, two, three]"), + want: "[one, two, three]", + }, + "map": { + athenaType: "map", + rawValue: toPtr("{one=1, two=2, three=3}"), + want: "{one=1, two=2, three=3}", + }, + "row": { + athenaType: "row", + rawValue: toPtr("{one, two, three}"), + want: "{one, two, three}", + }, "unknown type": { athenaType: "unknown", rawValue: toPtr("unknown"),