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

Method SeekTo

pkg/parquetquery/nil_iter.go:57–91  ·  view source on GitHub ↗
(to RowNumber, definitionLevel int)

Source from the content-addressed store, hash-verified

55}
56
57func (c *NilSyncIterator) SeekTo(to RowNumber, definitionLevel int) (*IteratorResult, error) {
58 for {
59 if done := c.seekRowGroup(to, definitionLevel); done {
60 return nil, nil
61 }
62
63 done, err := c.seekPages(to, definitionLevel)
64 if err != nil {
65 return nil, err
66 }
67 if done {
68 // This row group is exhausted try the next one.
69 continue
70 }
71
72 c.seekWithinPage(to, definitionLevel)
73 break
74 }
75
76 // The row group and page have been selected to where this value is possibly
77 // located. Now scan through the page and look for it.
78 for {
79 rn, v, err := c.next()
80 if err != nil {
81 return nil, err
82 }
83 if !rn.Valid() {
84 return nil, nil
85 }
86
87 if CompareRowNumbers(definitionLevel, rn, to) >= 0 {
88 return c.makeResult(rn, v), nil
89 }
90 }
91}
92
93func (c *NilSyncIterator) next() (RowNumber, *pq.Value, error) {
94 var lastValue *pq.Value

Callers

nothing calls this directly

Calls 6

nextMethod · 0.95
CompareRowNumbersFunction · 0.85
seekRowGroupMethod · 0.80
seekPagesMethod · 0.80
seekWithinPageMethod · 0.80
ValidMethod · 0.80

Tested by

no test coverage detected