MCPcopy Index your code
hub / github.com/pingcap/tidb / fillInnerChunk

Method fillInnerChunk

pkg/executor/parallel_apply.go:373–405  ·  view source on GitHub ↗
(ctx context.Context, id int, req *chunk.Chunk)

Source from the content-addressed store, hash-verified

371}
372
373func (e *ParallelNestedLoopApplyExec) fillInnerChunk(ctx context.Context, id int, req *chunk.Chunk) (err error) {
374 req.Reset()
375 for {
376 if e.innerIter[id] == nil || e.innerIter[id].Current() == e.innerIter[id].End() {
377 if e.outerRow[id] != nil && !e.hasMatch[id] {
378 e.joiners[id].OnMissMatch(e.hasNull[id], *e.outerRow[id], req)
379 }
380 var exit bool
381 e.outerRow[id], exit = e.fetchNextOuterRow(id, req)
382 if exit || req.IsFull() || e.outerRow[id] == nil {
383 return nil
384 }
385
386 e.hasMatch[id] = false
387 e.hasNull[id] = false
388
389 err = e.fetchAllInners(ctx, id)
390 if err != nil {
391 return err
392 }
393 e.innerIter[id] = chunk.NewIterator4List(e.innerList[id])
394 e.innerIter[id].Begin()
395 }
396
397 matched, isNull, err := e.joiners[id].TryToMatchInners(*e.outerRow[id], e.innerIter[id], req)
398 e.hasMatch[id] = e.hasMatch[id] || matched
399 e.hasNull[id] = e.hasNull[id] || isNull
400
401 if err != nil || req.IsFull() {
402 return err
403 }
404 }
405}

Callers 1

innerWorkerMethod · 0.95

Calls 10

fetchNextOuterRowMethod · 0.95
fetchAllInnersMethod · 0.95
NewIterator4ListFunction · 0.92
ResetMethod · 0.65
CurrentMethod · 0.65
EndMethod · 0.65
OnMissMatchMethod · 0.65
BeginMethod · 0.65
TryToMatchInnersMethod · 0.65
IsFullMethod · 0.45

Tested by

no test coverage detected