MCPcopy
hub / github.com/grafana/tempo / seek

Method seek

pkg/parquetquery/iters.go:1378–1417  ·  view source on GitHub ↗
(iterNum int, d int, t RowNumber)

Source from the content-addressed store, hash-verified

1376}
1377
1378func (j *LeftJoinIterator) seek(iterNum int, d int, t RowNumber) (err error) {
1379 d = min(d, j.defLevelsRequired[iterNum])
1380 if EqualRowNumber(d, j.collectedThroughRequired[iterNum], t) {
1381 // Last collected value still matches.
1382 return nil
1383 }
1384
1385 // Last collected value no longer matches.
1386 // Look at last peeked value.
1387 if j.peeksRequired[iterNum] == nil {
1388 // We don't have a peeked value to seek forward and return regardless of the outcome.
1389 j.peeksRequired[iterNum], err = j.required[iterNum].SeekTo(t, d)
1390 if err != nil {
1391 return
1392 }
1393 return nil
1394 }
1395
1396 // We have a peeked value so see if it is valid.
1397 if CompareRowNumbers(d, j.peeksRequired[iterNum].RowNumber, t) >= 0 {
1398 // Last peeked value still matches or this iter is already higher.
1399 return nil
1400 }
1401
1402 // Nothing matches so we have to seek forward.
1403
1404 // Release peek if present
1405 // These results have been collected but never returned upstream,
1406 // so we know it is safe to release them.
1407 if j.peeksRequired[iterNum] != nil {
1408 j.peeksRequired[iterNum].Release()
1409 }
1410
1411 j.peeksRequired[iterNum], err = j.required[iterNum].SeekTo(t, d)
1412 if err != nil {
1413 return err
1414 }
1415
1416 return nil
1417}
1418
1419func (j *LeftJoinIterator) seekAllRequired(t RowNumber, d int) (done bool, err error) {
1420 for iterNum, iter := range j.required {

Callers 1

NextMethod · 0.95

Calls 4

EqualRowNumberFunction · 0.85
CompareRowNumbersFunction · 0.85
SeekToMethod · 0.65
ReleaseMethod · 0.65

Tested by

no test coverage detected