From caf894267366e324bb71d570307508cd948b27b6 Mon Sep 17 00:00:00 2001 From: Alexander Erben Date: Fri, 12 May 2023 15:35:56 +0200 Subject: [PATCH] fix: nilpointer when storing json data --- types/types.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/types/types.go b/types/types.go index 89b6429b4..15cee5adf 100644 --- a/types/types.go +++ b/types/types.go @@ -1,6 +1,7 @@ package types import ( + "errors" "fmt" "reflect" "strings" @@ -542,6 +543,9 @@ func parseDatetime(v string) (time.Time, error) { } func normalizeData(v interface{}, field *bigqueryv2.TableFieldSchema) (interface{}, error) { + if field == nil { + return nil, errors.New("field is nil while normalizing json data") + } rv := reflect.ValueOf(v) kind := rv.Kind() if Mode(field.Mode) == RepeatedMode { @@ -560,7 +564,7 @@ func normalizeData(v interface{}, field *bigqueryv2.TableFieldSchema) (interface } return values, nil } - if kind == reflect.Map { + if kind == reflect.Map && field.Type == "RECORD" { fieldMap := map[string]*bigqueryv2.TableFieldSchema{} columnNameToValueMap := map[string]interface{}{} for _, f := range field.Fields {