(id int, req *chunk.Chunk)
| 348 | } |
| 349 | |
| 350 | func (e *ParallelNestedLoopApplyExec) fetchNextOuterRow(id int, req *chunk.Chunk) (row *chunk.Row, exit bool) { |
| 351 | for { |
| 352 | select { |
| 353 | case outerRow, ok := <-e.outerRowCh: |
| 354 | if !ok { // no more data |
| 355 | return nil, false |
| 356 | } |
| 357 | if !outerRow.selected { |
| 358 | if e.outer { |
| 359 | e.joiners[id].OnMissMatch(false, *outerRow.row, req) |
| 360 | if req.IsFull() { |
| 361 | return nil, false |
| 362 | } |
| 363 | } |
| 364 | continue // try the next outer row |
| 365 | } |
| 366 | return outerRow.row, false |
| 367 | case <-e.exit: |
| 368 | return nil, true |
| 369 | } |
| 370 | } |
| 371 | } |
| 372 | |
| 373 | func (e *ParallelNestedLoopApplyExec) fillInnerChunk(ctx context.Context, id int, req *chunk.Chunk) (err error) { |
| 374 | req.Reset() |
no test coverage detected