(t RowNumber, d int)
| 1417 | } |
| 1418 | |
| 1419 | func (j *LeftJoinIterator) seekAllRequired(t RowNumber, d int) (done bool, err error) { |
| 1420 | for iterNum, iter := range j.required { |
| 1421 | d2 := min(d, j.defLevelsRequired[iterNum]) |
| 1422 | |
| 1423 | if j.peeksRequired[iterNum] == nil || CompareRowNumbers(d2, j.peeksRequired[iterNum].RowNumber, t) == -1 { |
| 1424 | |
| 1425 | // Release peek if present |
| 1426 | // These results have been collected but never returned upstream, |
| 1427 | // so we know it is safe to release them. |
| 1428 | if j.peeksRequired[iterNum] != nil { |
| 1429 | j.peeksRequired[iterNum].Release() |
| 1430 | } |
| 1431 | |
| 1432 | j.peeksRequired[iterNum], err = iter.SeekTo(t, d2) |
| 1433 | if err != nil { |
| 1434 | return |
| 1435 | } |
| 1436 | if j.peeksRequired[iterNum] == nil { |
| 1437 | // A required iterator is exhausted, no reason to seek the remaining |
| 1438 | return true, nil |
| 1439 | } |
| 1440 | } |
| 1441 | } |
| 1442 | return |
| 1443 | } |
| 1444 | |
| 1445 | func (j *LeftJoinIterator) seekAllOptional(t RowNumber, d int) (err error) { |
| 1446 | for iterNum := 0; iterNum < len(j.optional); iterNum++ { |
no test coverage detected