Merge pull request #19 from dansouza/master
altered uuid.Scan() so that it allows for empty UUIDs to be read ...
diff --git a/sql.go b/sql.go
index 98b23aa..c84f900 100644
--- a/sql.go
+++ b/sql.go
@@ -15,6 +15,11 @@
func (uuid *UUID) Scan(src interface{}) error {
switch src.(type) {
case string:
+ // if an empty UUID comes from a table, we return a null UUID
+ if src.(string) == "" {
+ return nil
+ }
+
// see uuid.Parse for required string format
parsed := Parse(src.(string))
@@ -26,6 +31,11 @@
case []byte:
b := src.([]byte)
+ // if an empty UUID comes from a table, we return a null UUID
+ if len(b) == 0 {
+ return nil
+ }
+
// assumes a simple slice of bytes if 16 bytes
// otherwise attempts to parse
if len(b) == 16 {