Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 24 additions & 8 deletions db/kv/membatchwithdb/memory_mutation.go
Original file line number Diff line number Diff line change
Expand Up @@ -952,8 +952,12 @@ func (m *MemoryMutation) GetLatest(name kv.Domain, k []byte) (v []byte, step kv.

func (m *MemoryMutation) GetAsOf(name kv.Domain, k []byte, ts uint64) (v []byte, ok bool, err error) {
if m.DomainReader != nil {
if val, ok, err := m.DomainReader.GetAsOf(name, k, ts); err == nil && ok {
return val, ok, nil
val, ok, err := m.DomainReader.GetAsOf(name, k, ts)
if err != nil {
return nil, false, err
}
if ok {
return val, true, nil
}
}
if m.db == nil {
Expand Down Expand Up @@ -985,8 +989,12 @@ func (m *MemoryMutation) RangeAsOf(name kv.Domain, fromKey, toKey []byte, ts uin

func (m *MemoryMutation) HistorySeek(name kv.Domain, k []byte, ts uint64) (v []byte, ok bool, err error) {
if m.DomainReader != nil {
if val, ok, err := m.DomainReader.HistorySeek(name, k, ts); err == nil && ok {
return val, ok, nil
val, ok, err := m.DomainReader.HistorySeek(name, k, ts)
if err != nil {
return nil, false, err
}
if ok {
return val, true, nil
}
}
if m.db == nil {
Expand Down Expand Up @@ -1151,8 +1159,12 @@ func (v *OverlayTemporalReadView) GetAsOf(name kv.Domain, k []byte, ts uint64) (
// Check DomainReader independently — this method shadows MemoryMutation.GetAsOf
// and falls through to v.temporalTx (not m.db), so the embedded check never fires.
if v.MemoryMutation != nil && v.MemoryMutation.DomainReader != nil {
if val, ok, err := v.MemoryMutation.DomainReader.GetAsOf(name, k, ts); err == nil && ok {
return val, ok, nil
val, ok, err := v.MemoryMutation.DomainReader.GetAsOf(name, k, ts)
if err != nil {
return nil, false, err
}
if ok {
return val, true, nil
}
}
return v.temporalTx.GetAsOf(name, k, ts)
Expand All @@ -1170,8 +1182,12 @@ func (v *OverlayTemporalReadView) HistorySeek(name kv.Domain, k []byte, ts uint6
// Check DomainReader independently — this method shadows MemoryMutation.HistorySeek
// and falls through to v.temporalTx (not m.db), so the embedded check never fires.
if v.MemoryMutation != nil && v.MemoryMutation.DomainReader != nil {
if val, ok, err := v.MemoryMutation.DomainReader.HistorySeek(name, k, ts); err == nil && ok {
return val, ok, nil
val, ok, err := v.MemoryMutation.DomainReader.HistorySeek(name, k, ts)
if err != nil {
return nil, false, err
}
if ok {
return val, true, nil
}
}
return v.temporalTx.HistorySeek(name, k, ts)
Expand Down
Loading