...
1 package zeronull
2
3 import (
4 "database/sql/driver"
5
6 "github.com/jackc/pgx/v5/pgtype"
7 )
8
9 type Float8 float64
10
11 func (Float8) SkipUnderlyingTypePlan() {}
12
13
14 func (f *Float8) ScanFloat64(n pgtype.Float8) error {
15 if !n.Valid {
16 *f = 0
17 return nil
18 }
19
20 *f = Float8(n.Float64)
21
22 return nil
23 }
24
25 func (f Float8) Float64Value() (pgtype.Float8, error) {
26 if f == 0 {
27 return pgtype.Float8{}, nil
28 }
29 return pgtype.Float8{Float64: float64(f), Valid: true}, nil
30 }
31
32
33 func (f *Float8) Scan(src any) error {
34 if src == nil {
35 *f = 0
36 return nil
37 }
38
39 var nullable pgtype.Float8
40 err := nullable.Scan(src)
41 if err != nil {
42 return err
43 }
44
45 *f = Float8(nullable.Float64)
46
47 return nil
48 }
49
50
51 func (f Float8) Value() (driver.Value, error) {
52 if f == 0 {
53 return nil, nil
54 }
55 return float64(f), nil
56 }
57
View as plain text