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