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

Function searchRaw

tempodb/encoding/vparquet5/block_search.go:304–328  ·  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

302}
303
304func searchRaw(ctx context.Context, pf *parquet.File, req *tempopb.SearchRequest, rgs []parquet.RowGroup, dc backend.DedicatedColumns) ([]pq.RowNumber, error) {
305 iter := makePipelineWithRowGroups(ctx, req, pf, rgs, dc)
306 if iter == nil {
307 return nil, errors.New("make pipeline returned a nil iterator")
308 }
309 defer iter.Close()
310
311 // Collect matches, row numbers only.
312 var matchingRows []pq.RowNumber
313 for {
314 match, err := iter.Next()
315 if err != nil {
316 return nil, fmt.Errorf("searchRaw next failed: %w", err)
317 }
318 if match == nil {
319 break
320 }
321 matchingRows = append(matchingRows, match.RowNumber)
322 if req.Limit > 0 && len(matchingRows) >= int(req.Limit) {
323 break
324 }
325 }
326
327 return matchingRows, nil
328}
329
330func rawToResults(ctx context.Context, pf *parquet.File, rgs []parquet.RowGroup, rowNumbers []pq.RowNumber) ([]*tempopb.TraceSearchMetadata, error) {
331 makeIter := makeIterFunc(ctx, rgs, pf)

Callers 1

searchParquetFileFunction · 0.70

Calls 3

CloseMethod · 0.65
NextMethod · 0.65

Tested by

no test coverage detected