in tools/mc2bq/pkg/schema/schema.go [295:321]
func normalizeToSchema(obj protoreflect.Message, schema *bigquery.FieldSchema) (any, error) {
// short circuit for nil values
if !obj.IsValid() {
return nil, nil
}
if obj, ok := obj.Interface().(*timestamppb.Timestamp); ok {
return time.Unix(obj.Seconds, int64(obj.Nanos)).Format(time.RFC3339), nil
}
result := map[string]any{}
for _, col := range schema.Schema {
res, err := normalizeMessageField(obj, col)
if err != nil {
return nil, err
}
if res == nil {
continue
}
result[col.Name] = res
}
return result, nil
}