diff --git a/eventstore/lmdb/lib.go b/eventstore/lmdb/lib.go index a815865..275d40d 100644 --- a/eventstore/lmdb/lib.go +++ b/eventstore/lmdb/lib.go @@ -109,7 +109,7 @@ func (b *LMDBBackend) initialize() error { env.SetMapSize(b.MapSize) } - if err := env.Open(b.Path, lmdb.NoTLS|lmdb.WriteMap|b.extraFlags, 0644); err != nil { + if err := env.Open(b.Path, lmdb.NoTLS|b.extraFlags, 0644); err != nil { return err } b.lmdbEnv = env diff --git a/eventstore/lmdb/query.go b/eventstore/lmdb/query.go index ac6580e..d2598fe 100644 --- a/eventstore/lmdb/query.go +++ b/eventstore/lmdb/query.go @@ -54,7 +54,6 @@ func (b *LMDBBackend) queryByIds(txn *lmdb.Txn, ids []nostr.ID, yield func(nostr continue } - txn.Get(b.rawEventStore, idx) bin, err := txn.Get(b.rawEventStore, idx) if err != nil { continue diff --git a/eventstore/lmdb/replace.go b/eventstore/lmdb/replace.go index f11a500..af52302 100644 --- a/eventstore/lmdb/replace.go +++ b/eventstore/lmdb/replace.go @@ -2,7 +2,6 @@ package lmdb import ( "fmt" - "iter" "fiatjaf.com/nostr" "github.com/PowerDNS/lmdb-go/lmdb" @@ -26,25 +25,21 @@ func (b *LMDBBackend) ReplaceEvent(evt nostr.Event) (deleted []nostr.Event, err } // now we fetch the past events, whatever they are, delete them and then save the new - var qerr error - var results iter.Seq[nostr.Event] = func(yield func(nostr.Event) bool) { - qerr = b.query(txn, filter, 10 /* in theory limit could be just 1 and this should work */, yield) - } - if qerr != nil { - return fmt.Errorf("failed to query past events with %s: %w", filter, qerr) - } - shouldStore := true - for previous := range results { + if qerr := b.query(txn, filter, 10 /* could be just 1 */, func(previous nostr.Event) bool { if nostr.IsOlder(previous, evt) { if qerr := b.delete(txn, previous.ID); qerr != nil { - return fmt.Errorf("failed to delete event %s for replacing: %w", previous.ID, qerr) + qerr = fmt.Errorf("failed to delete event %s for replacing: %w", previous.ID, qerr) + return false } deleted = append(deleted, previous) } else { // there is a newer event already stored, so we won't store this shouldStore = false } + return true + }); qerr != nil { + return fmt.Errorf("failed to query past events with %s: %w", filter, qerr) } if shouldStore { return b.save(txn, evt)