From eaf8239e49e84ee6368c91d41e315a15ed400157 Mon Sep 17 00:00:00 2001 From: Joost Jager Date: Tue, 23 Jun 2020 12:40:35 +0200 Subject: [PATCH] loopdb: allow restored databases to contain nil values --- loopdb/raw_db_test.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/loopdb/raw_db_test.go b/loopdb/raw_db_test.go index 358cedb..52df920 100644 --- a/loopdb/raw_db_test.go +++ b/loopdb/raw_db_test.go @@ -2,7 +2,6 @@ package loopdb import ( "encoding/hex" - "errors" "fmt" "strings" @@ -88,6 +87,15 @@ func restoreDB(bucket *bbolt.Bucket, data map[string]interface{}) error { for k, v := range data { key := []byte(k) + // Store nil values. + if v == nil { + err := bucket.Put(key, nil) + if err != nil { + return err + } + continue + } + switch value := v.(type) { // Key contains value. @@ -109,7 +117,7 @@ func restoreDB(bucket *bbolt.Bucket, data map[string]interface{}) error { } default: - return errors.New("invalid type") + return fmt.Errorf("invalid type %T", value) } }