Collect data from the given iterators until they point at the next row (according to the configured definition level) or are exhausted.
(iterNums []int, rowNumber RowNumber)
| 1738 | // the next row (according to the configured definition level) |
| 1739 | // or are exhausted. |
| 1740 | func (u *UnionIterator) collect(iterNums []int, rowNumber RowNumber) (*IteratorResult, error) { |
| 1741 | var err error |
| 1742 | |
| 1743 | result := &u.at |
| 1744 | result.Reset() |
| 1745 | result.RowNumber = rowNumber |
| 1746 | |
| 1747 | for _, iterNum := range iterNums { |
| 1748 | for u.peeks[iterNum] != nil && EqualRowNumber(u.definitionLevel, u.peeks[iterNum].RowNumber, rowNumber) { |
| 1749 | result.Append(u.peeks[iterNum]) |
| 1750 | u.peeks[iterNum], err = u.iters[iterNum].Next() |
| 1751 | if err != nil { |
| 1752 | return nil, err |
| 1753 | } |
| 1754 | } |
| 1755 | } |
| 1756 | |
| 1757 | return result, err |
| 1758 | } |
| 1759 | |
| 1760 | func (u *UnionIterator) Close() { |
| 1761 | for _, i := range u.iters { |
no test coverage detected