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

Method seekAllOptional

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

Source from the content-addressed store, hash-verified

1443}
1444
1445func (j *LeftJoinIterator) seekAllOptional(t RowNumber, d int) (err error) {
1446 for iterNum := 0; iterNum < len(j.optional); iterNum++ {
1447 d2 := min(d, j.defLevelsOptional[iterNum])
1448
1449 if j.peeksOptional[iterNum] == nil || CompareRowNumbers(d2, j.peeksOptional[iterNum].RowNumber, t) == -1 {
1450 j.peeksOptional[iterNum], err = j.optional[iterNum].SeekTo(t, d2)
1451 if err != nil {
1452 return
1453 }
1454 if j.peeksOptional[iterNum] == nil {
1455 // Iterator is exhausted.
1456 // Remove it from the list, so it is skipped for all remaining operations.
1457 // This might seem overly complex, it is significantly faster in cases where optional
1458 // iterators are expected to exit early via callbacks.
1459 j.optional = slices.Delete(j.optional, iterNum, iterNum+1)
1460 j.peeksOptional = slices.Delete(j.peeksOptional, iterNum, iterNum+1)
1461 j.defLevelsOptional = slices.Delete(j.defLevelsOptional, iterNum, iterNum+1)
1462 j.paramsOptional = slices.Delete(j.paramsOptional, iterNum, iterNum+1)
1463 j.collectedThroughOptional = slices.Delete(j.collectedThroughOptional, iterNum, iterNum+1)
1464 iterNum--
1465 continue
1466 }
1467 }
1468 }
1469 return nil
1470}
1471
1472func (j *LeftJoinIterator) collectOptional(rowNumber RowNumber) (err error) {
1473iters:

Callers 2

SeekToMethod · 0.95
collectMethod · 0.95

Calls 3

CompareRowNumbersFunction · 0.85
SeekToMethod · 0.65
DeleteMethod · 0.65

Tested by

no test coverage detected