From 94841e8a22f9c53edd936f5c69c12021c7ce4f43 Mon Sep 17 00:00:00 2001 From: Kemal Hadimli Date: Mon, 9 Jan 2023 14:19:22 +0000 Subject: [PATCH 1/3] fix: Array types --- transformers/struct.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/transformers/struct.go b/transformers/struct.go index 7547eccca5..19b748a2fc 100644 --- a/transformers/struct.go +++ b/transformers/struct.go @@ -299,11 +299,24 @@ func defaultGoTypeToSchemaType(v reflect.Type) (schema.ValueType, error) { } return schema.TypeJSON, nil case reflect.Slice: + switch v.Elem().Kind() { + case reflect.Uint8: + return schema.TypeByteArray, nil + } + switch elemValueType, _ := defaultGoTypeToSchemaType(v.Elem()); elemValueType { case schema.TypeString: return schema.TypeStringArray, nil case schema.TypeInt: return schema.TypeIntArray, nil + case schema.TypeCIDR: + return schema.TypeCIDRArray, nil + case schema.TypeUUID: + return schema.TypeUUIDArray, nil + case schema.TypeInet: + return schema.TypeInetArray, nil + case schema.TypeMacAddr: + return schema.TypeMacAddrArray, nil default: return schema.TypeJSON, nil } From 8adea66066978539732b0b7e2fdb2fad2176bc30 Mon Sep 17 00:00:00 2001 From: Kemal Hadimli Date: Mon, 9 Jan 2023 15:16:45 +0000 Subject: [PATCH 2/3] if --- transformers/struct.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/transformers/struct.go b/transformers/struct.go index 19b748a2fc..593722fc69 100644 --- a/transformers/struct.go +++ b/transformers/struct.go @@ -299,8 +299,7 @@ func defaultGoTypeToSchemaType(v reflect.Type) (schema.ValueType, error) { } return schema.TypeJSON, nil case reflect.Slice: - switch v.Elem().Kind() { - case reflect.Uint8: + if v.Elem().Kind() == reflect.Uint8 { return schema.TypeByteArray, nil } From 6d80af804ac3d71c4b46409d7f88ed477659eaad Mon Sep 17 00:00:00 2001 From: Kemal Hadimli Date: Mon, 9 Jan 2023 17:27:32 +0000 Subject: [PATCH 3/3] Add test for bytearray --- transformers/struct_test.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/transformers/struct_test.go b/transformers/struct_test.go index 853643c338..f22fe32a6a 100644 --- a/transformers/struct_test.go +++ b/transformers/struct_test.go @@ -31,6 +31,8 @@ type ( StringArrayCol []string `json:"string_array_col,omitempty"` StringPointerArrayCol []*string `json:"string_pointer_array_col,omitempty"` + ByteArrayCol []byte `json:"byte_array_col,omitempty"` + TimeCol time.Time `json:"time_col,omitempty"` TimePointerCol *time.Time `json:"time_pointer_col,omitempty"` JSONTag *string `json:"json_tag"` @@ -94,6 +96,10 @@ var ( Name: "string_pointer_array_col", Type: schema.TypeStringArray, }, + { + Name: "byte_array_col", + Type: schema.TypeByteArray, + }, { Name: "time_col", Type: schema.TypeTimestamp,