Skip to content
This repository has been archived by the owner on Sep 23, 2023. It is now read-only.

Commit

Permalink
save
Browse files Browse the repository at this point in the history
  • Loading branch information
AskAlexSharov committed Jun 26, 2023
1 parent 6dbd238 commit 51621db
Showing 1 changed file with 16 additions and 21 deletions.
37 changes: 16 additions & 21 deletions state/domain.go
Original file line number Diff line number Diff line change
Expand Up @@ -867,33 +867,28 @@ func (d *Domain) collateStream(ctx context.Context, step, txFrom, txTo uint64, r

for k, _, err = keysCursor.First(); err == nil && k != nil; k, _, err = keysCursor.NextNoDup() {
pos++
select {
case <-ctx.Done():
return Collation{}, ctx.Err()
default:
}

if v, err = keysCursor.LastDup(); err != nil {
return Collation{}, fmt.Errorf("find last %s key for aggregation step k=[%x]: %w", d.filenameBase, k, err)
}
if bytes.Equal(v, stepBytes) {
copy(keySuffix, k)
copy(keySuffix[len(k):], v)
ks := len(k) + len(v)

v, err := roTx.GetOne(d.valsTable, keySuffix[:ks])
if err != nil {
return Collation{}, fmt.Errorf("find last %s value for aggregation step k=[%x]: %w", d.filenameBase, k, err)
}
if !bytes.Equal(v, stepBytes) {
continue
}
copy(keySuffix, k)
copy(keySuffix[len(k):], v)
ks := len(k) + len(v)

select {
case <-ctx.Done():
return Collation{}, ctx.Err()
default:
}
v, err := roTx.GetOne(d.valsTable, keySuffix[:ks])
if err != nil {
return Collation{}, fmt.Errorf("find last %s value for aggregation step k=[%x]: %w", d.filenameBase, k, err)
}

pairs <- kvpair{k: k, v: v}
select {
case <-ctx.Done():
return Collation{}, ctx.Err()
default:
}

pairs <- kvpair{k: k, v: v}
}
close(pairs)
if err != nil {
Expand Down

0 comments on commit 51621db

Please sign in to comment.