Merge pull request #9902 from ellemouton/simplifyForwardingLogQuery
channeldb: remove unnecessary for loop from Query method
This commit is contained in:
1 file changed
+26
-19
+26
-19
@@ -227,7 +227,9 @@ type ForwardingLogTimeSlice struct {
|
|||||||
// the number of events to be returned.
|
// the number of events to be returned.
|
||||||
//
|
//
|
||||||
// TODO(roasbeef): rename?
|
// TODO(roasbeef): rename?
|
||||||
func (f *ForwardingLog) Query(q ForwardingEventQuery) (ForwardingLogTimeSlice, error) {
|
func (f *ForwardingLog) Query(q ForwardingEventQuery) (ForwardingLogTimeSlice,
|
||||||
|
error) {
|
||||||
|
|
||||||
var resp ForwardingLogTimeSlice
|
var resp ForwardingLogTimeSlice
|
||||||
|
|
||||||
// If the user provided an index offset, then we'll not know how many
|
// If the user provided an index offset, then we'll not know how many
|
||||||
@@ -256,8 +258,9 @@ func (f *ForwardingLog) Query(q ForwardingEventQuery) (ForwardingLogTimeSlice, e
|
|||||||
// We'll continue until either we reach the end of the range,
|
// We'll continue until either we reach the end of the range,
|
||||||
// or reach our max number of events.
|
// or reach our max number of events.
|
||||||
logCursor := logBucket.ReadCursor()
|
logCursor := logBucket.ReadCursor()
|
||||||
timestamp, events := logCursor.Seek(startTime[:])
|
timestamp, eventBytes := logCursor.Seek(startTime[:])
|
||||||
for ; timestamp != nil && bytes.Compare(timestamp, endTime[:]) <= 0; timestamp, events = logCursor.Next() {
|
//nolint:ll
|
||||||
|
for ; timestamp != nil && bytes.Compare(timestamp, endTime[:]) <= 0; timestamp, eventBytes = logCursor.Next() {
|
||||||
// If our current return payload exceeds the max number
|
// If our current return payload exceeds the max number
|
||||||
// of events, then we'll exit now.
|
// of events, then we'll exit now.
|
||||||
if uint32(len(resp.ForwardingEvents)) >= q.NumMaxEvents {
|
if uint32(len(resp.ForwardingEvents)) >= q.NumMaxEvents {
|
||||||
@@ -271,27 +274,31 @@ func (f *ForwardingLog) Query(q ForwardingEventQuery) (ForwardingLogTimeSlice, e
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
currentTime := time.Unix(
|
|
||||||
0, int64(byteOrder.Uint64(timestamp)),
|
|
||||||
)
|
|
||||||
|
|
||||||
// At this point, we've skipped enough records to start
|
// At this point, we've skipped enough records to start
|
||||||
// to collate our query. For each record, we'll
|
// to collate our query. For each record, we'll
|
||||||
// increment the final record offset so the querier can
|
// increment the final record offset so the querier can
|
||||||
// utilize pagination to seek further.
|
// utilize pagination to seek further.
|
||||||
readBuf := bytes.NewReader(events)
|
readBuf := bytes.NewReader(eventBytes)
|
||||||
for readBuf.Len() != 0 {
|
if readBuf.Len() == 0 {
|
||||||
var event ForwardingEvent
|
continue
|
||||||
err := decodeForwardingEvent(readBuf, &event)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
event.Timestamp = currentTime
|
|
||||||
resp.ForwardingEvents = append(resp.ForwardingEvents, event)
|
|
||||||
|
|
||||||
recordOffset++
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
currentTime := time.Unix(
|
||||||
|
0, int64(byteOrder.Uint64(timestamp)),
|
||||||
|
)
|
||||||
|
|
||||||
|
var event ForwardingEvent
|
||||||
|
err := decodeForwardingEvent(readBuf, &event)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
event.Timestamp = currentTime
|
||||||
|
resp.ForwardingEvents = append(
|
||||||
|
resp.ForwardingEvents, event,
|
||||||
|
)
|
||||||
|
|
||||||
|
recordOffset++
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
Reference in new issue
Block a user