diff --git a/pgtype/float4.go b/pgtype/float4.go index db9b2215..fd5f4523 100644 --- a/pgtype/float4.go +++ b/pgtype/float4.go @@ -25,6 +25,15 @@ func (f Float4) Float64Value() (Float8, error) { return Float8{Float: float64(f.Float), Valid: f.Valid}, nil } +func (f *Float4) ScanInt64(n Int8) error { + *f = Float4{Float: float32(n.Int), Valid: n.Valid} + return nil +} + +func (f Float4) Int64Value() (Int8, error) { + return Int8{Int: int64(f.Float), Valid: f.Valid}, nil +} + // Scan implements the database/sql Scanner interface. func (f *Float4) Scan(src interface{}) error { if src == nil { diff --git a/pgtype/float8.go b/pgtype/float8.go index 96dcb0f3..54b1796c 100644 --- a/pgtype/float8.go +++ b/pgtype/float8.go @@ -33,6 +33,15 @@ func (f Float8) Float64Value() (Float8, error) { return f, nil } +func (f *Float8) ScanInt64(n Int8) error { + *f = Float8{Float: float64(n.Int), Valid: n.Valid} + return nil +} + +func (f Float8) Int64Value() (Int8, error) { + return Int8{Int: int64(f.Float), Valid: f.Valid}, nil +} + // Scan implements the database/sql Scanner interface. func (f *Float8) Scan(src interface{}) error { if src == nil {