From 7586ac630d0df52e81ddf1f538acc2075a348822 Mon Sep 17 00:00:00 2001 From: Brian Buller Date: Thu, 6 Feb 2025 12:22:37 -0600 Subject: [PATCH] Commit --- boltease.go | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/boltease.go b/boltease.go index 583cbff..3af0af9 100644 --- a/boltease.go +++ b/boltease.go @@ -78,6 +78,10 @@ func SetStructList[T any](b *DB, path []string, values []T, fn func(*bolt.Bucket defer b.CloseDB() } + // We remove the bucket, if it already exists + bktPth, bktNm := path[:len(path)-2], path[len(path)-1] + b.DeleteBucket(bktPth, bktNm) + err = b.MkBucketPath(path) if err != nil { return err @@ -93,11 +97,8 @@ func SetStructList[T any](b *DB, path []string, values []T, fn func(*bolt.Bucket return err } } + // bkt should have the last bucket in the path - // We need to get the sequence number, if it's greater than the length of - // 'values', we're going to have to delete values. - seq := bkt.Sequence() - bkt.SetSequence(0) for _, v := range values { id, _ := bkt.NextSequence() bId := make([]byte, 8) @@ -107,15 +108,6 @@ func SetStructList[T any](b *DB, path []string, values []T, fn func(*bolt.Bucket return err } } - currSeq := bkt.Sequence() - for ; seq < currSeq; seq++ { - bId := make([]byte, 8) - binary.BigEndian.PutUint64(bId, seq) - err = bkt.Delete(bId) - if err != nil { - return err - } - } return nil }) return err @@ -498,6 +490,9 @@ func (b *DB) DeletePair(path []string, key string) error { // DeleteBucket deletes the bucket key at path func (b *DB) DeleteBucket(path []string, key string) error { + if len(path) == 0 { + return errors.New("no path") + } var err error if !b.dbIsOpen { if err = b.OpenDB(); err != nil { @@ -578,7 +573,6 @@ func (b *DB) SetStringList(path, values []string) error { // We remove the bucket, if it already exists bktPth, bktNm := path[:len(path)-2], path[len(path)-1] - fmt.Println("Deleting Bucket:", bktPth, bktNm) b.DeleteBucket(bktPth, bktNm) err = b.MkBucketPath(path)