From 36948296445cd656aeebcf3fec6125309166139e Mon Sep 17 00:00:00 2001 From: Andrew Stone Date: Fri, 3 Mar 2017 14:59:38 -0800 Subject: [PATCH] sql: Support nil values --- sql.go | 3 +++ sql_test.go | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/sql.go b/sql.go index 790080c..f326b54 100644 --- a/sql.go +++ b/sql.go @@ -14,6 +14,9 @@ import ( // consult database-specific driver documentation for matching types. func (uuid *UUID) Scan(src interface{}) error { switch src := src.(type) { + case nil: + return nil + case string: // if an empty UUID comes from a table, we return a null UUID if src == "" { diff --git a/sql_test.go b/sql_test.go index c193196..4fbd01b 100644 --- a/sql_test.go +++ b/sql_test.go @@ -90,6 +90,17 @@ func TestScan(t *testing.T) { t.Error("UUID was not nil after scanning empty byte slice") } } + + uuid = UUID{} + err = (&uuid).Scan(nil) + if err != nil { + t.Fatal(err) + } + for _, v := range uuid { + if v != 0 { + t.Error("UUID was not nil after scanning nil") + } + } } func TestValue(t *testing.T) {