Skip to content

Commit 7e66daa

Browse files
committed
fix(pkg/database): return key not found when resolving a deleted entry
Signed-off-by: Jeronimo Irazabal <[email protected]>
1 parent a3b0fce commit 7e66daa

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

pkg/database/database.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -449,17 +449,17 @@ func (d *db) getAt(key []byte, atTx uint64, resolved int, index store.KeyIndex,
449449
if err != nil {
450450
return nil, err
451451
}
452-
453-
if md != nil && md.Deleted() {
454-
return nil, store.ErrKeyNotFound
455-
}
456452
}
457453

458454
return d.resolveValue(key, val, resolved, txID, md, index, txHolder)
459455
}
460456

461457
func (d *db) resolveValue(key []byte, val []byte, resolved int, txID uint64, md *store.KVMetadata,
462458
index store.KeyIndex, txHolder *store.Tx) (*schema.Entry, error) {
459+
if md != nil && md.Deleted() {
460+
return nil, store.ErrKeyNotFound
461+
}
462+
463463
if len(val) < 1 {
464464
return nil, fmt.Errorf(
465465
"%w: internal value consistency error - missing value prefix",

pkg/database/database_test.go

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ func TestDelete(t *testing.T) {
362362
})
363363
require.NoError(t, err)
364364

365-
tx, err := db.Delete(&schema.DeleteKeysRequest{
365+
hdr, err = db.Delete(&schema.DeleteKeysRequest{
366366
Keys: [][]byte{
367367
[]byte("key1"),
368368
},
@@ -377,10 +377,22 @@ func TestDelete(t *testing.T) {
377377
_, err = db.VerifiableGet(&schema.VerifiableGetRequest{
378378
KeyRequest: &schema.KeyRequest{
379379
Key: []byte("key1"),
380-
AtTx: tx.Id,
380+
AtTx: hdr.Id,
381381
},
382382
})
383383
require.ErrorIs(t, err, store.ErrKeyNotFound)
384+
385+
tx, err := db.TxByID(&schema.TxRequest{
386+
Tx: hdr.Id,
387+
EntriesSpec: &schema.EntriesSpec{
388+
KvEntriesSpec: &schema.EntryTypeSpec{
389+
Action: schema.EntryTypeAction_RESOLVE,
390+
},
391+
},
392+
})
393+
require.NoError(t, err)
394+
require.NotNil(t, tx)
395+
require.Empty(t, tx.KvEntries)
384396
}
385397

386398
func TestCurrentState(t *testing.T) {

0 commit comments

Comments
 (0)