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

Function searchRaw

tempodb/encoding/vparquet4/block_search.go:286–310  ·  view source on GitHub ↗
(ctx context.Context, pf *parquet.File, req *tempopb.SearchRequest, rgs []parquet.RowGroup, dc backend.DedicatedColumns)

Source from the content-addressed store, hash-verified

284}
285
286func searchRaw(ctx context.Context, pf *parquet.File, req *tempopb.SearchRequest, rgs []parquet.RowGroup, dc backend.DedicatedColumns) ([]pq.RowNumber, error) {
287 iter := makePipelineWithRowGroups(ctx, req, pf, rgs, dc)
288 if iter == nil {
289 return nil, errors.New("make pipeline returned a nil iterator")
290 }
291 defer iter.Close()
292
293 // Collect matches, row numbers only.
294 var matchingRows []pq.RowNumber
295 for {
296 match, err := iter.Next()
297 if err != nil {
298 return nil, fmt.Errorf("searchRaw next failed: %w", err)
299 }
300 if match == nil {
301 break
302 }
303 matchingRows = append(matchingRows, match.RowNumber)
304 if req.Limit > 0 && len(matchingRows) >= int(req.Limit) {
305 break
306 }
307 }
308
309 return matchingRows, nil
310}
311
312func rawToResults(ctx context.Context, pf *parquet.File, rgs []parquet.RowGroup, rowNumbers []pq.RowNumber) ([]*tempopb.TraceSearchMetadata, error) {
313 makeIter := makeIterFunc(ctx, rgs, pf)

Callers 1

searchParquetFileFunction · 0.70

Calls 3

CloseMethod · 0.65
NextMethod · 0.65

Tested by

no test coverage detected