From 79eeea1d2f29880596c88014850b3cb1b2ccec42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Alleyne?= Date: Fri, 15 Aug 2025 11:48:30 -0400 Subject: [PATCH] Use ParseFloat to convert json.Number to int64/uint64 --- arrow/array/numericbuilder.gen.go | 4 ++-- arrow/array/numericbuilder.gen.go.tmpl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arrow/array/numericbuilder.gen.go b/arrow/array/numericbuilder.gen.go index be87fbf4..a14615f5 100644 --- a/arrow/array/numericbuilder.gen.go +++ b/arrow/array/numericbuilder.gen.go @@ -230,7 +230,7 @@ func (b *Int64Builder) UnmarshalOne(dec *json.Decoder) error { case float64: b.Append(int64(v)) case json.Number: - f, err := strconv.ParseInt(v.String(), 10, 8*8) + f, err := strconv.ParseFloat(v.String(), 8*8) if err != nil { return &json.UnmarshalTypeError{ Value: v.String(), @@ -471,7 +471,7 @@ func (b *Uint64Builder) UnmarshalOne(dec *json.Decoder) error { case float64: b.Append(uint64(v)) case json.Number: - f, err := strconv.ParseUint(v.String(), 10, 8*8) + f, err := strconv.ParseFloat(v.String(), 8*8) if err != nil { return &json.UnmarshalTypeError{ Value: v.String(), diff --git a/arrow/array/numericbuilder.gen.go.tmpl b/arrow/array/numericbuilder.gen.go.tmpl index 518b3d4c..efd7b5eb 100644 --- a/arrow/array/numericbuilder.gen.go.tmpl +++ b/arrow/array/numericbuilder.gen.go.tmpl @@ -393,7 +393,7 @@ func (b *{{.Name}}Builder) UnmarshalOne(dec *json.Decoder) error { case float64: b.Append({{.name}}(v)) case json.Number: -{{if or (eq .Name "Float32") (eq .Name "Float64") -}} +{{if or (eq .Name "Float32") (eq .Name "Float64") (eq .Name "Int64") (eq .Name "Uint64")-}} f, err := strconv.ParseFloat(v.String(), {{.Size}}*8) {{else if eq (printf "%.1s" .Name) "U" -}} f, err := strconv.ParseUint(v.String(), 10, {{.Size}}*8)