(ctx context.Context, pf *parquet.File, req *tempopb.SearchRequest, rgs []parquet.RowGroup, dc backend.DedicatedColumns)
| 302 | } |
| 303 | |
| 304 | func 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 | |
| 330 | func rawToResults(ctx context.Context, pf *parquet.File, rgs []parquet.RowGroup, rowNumbers []pq.RowNumber) ([]*tempopb.TraceSearchMetadata, error) { |
| 331 | makeIter := makeIterFunc(ctx, rgs, pf) |
no test coverage detected