From fefdbc9430e5b730a3d2291e52872f93dfd86b53 Mon Sep 17 00:00:00 2001 From: Pavel Skorikov Date: Tue, 13 May 2025 17:47:29 +0300 Subject: [PATCH] Scan Decimal --- decimal.go | 5 +++++ decimal_test.go | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/decimal.go b/decimal.go index a37a230..d568d37 100644 --- a/decimal.go +++ b/decimal.go @@ -1852,6 +1852,11 @@ func (d *Decimal) Scan(value interface{}) error { *d = NewFromUint64(v) return nil + case Decimal: + // while clickhouse return type Decimal + *d = v + return nil + default: // default is trying to interpret value stored as string str, err := unquoteIfQuoted(v) diff --git a/decimal_test.go b/decimal_test.go index d398f2d..6d07715 100644 --- a/decimal_test.go +++ b/decimal_test.go @@ -2465,6 +2465,11 @@ func TestDecimal_Scan(t *testing.T) { scanHelper(t, dbvalueStr, expected) scanHelper(t, valueStr, expected) + // also test decimal + dbvalueDecimal := New(2, 3) + expected = New(2, 3) + scanHelper(t, dbvalueDecimal, expected) + type foo struct{} a := Decimal{} err = a.Scan(foo{})