| 146 | } |
| 147 | |
| 148 | func (n *nestedLoopJoin) pickSlot(vec vector.Any, slot, length uint32) vector.Any { |
| 149 | if l := int(vec.Len()); l > len(n.pickSlotIndexes) { |
| 150 | n.pickSlotIndexes = slices.Grow(n.pickSlotIndexes[:0], l)[:l] |
| 151 | } |
| 152 | index := n.pickSlotIndexes[slot] |
| 153 | if len(index) < int(length) { |
| 154 | index = slices.Grow(index[:0], int(length))[:length] |
| 155 | for i := range index { |
| 156 | index[i] = slot |
| 157 | } |
| 158 | n.pickSlotIndexes[slot] = index |
| 159 | } |
| 160 | return vector.Pick(vec, index[:length]) |
| 161 | } |
| 162 | |
| 163 | func (n *nestedLoopJoin) makeResult(vecs ...vector.Any) vector.Any { |
| 164 | left, right := vecs[0], vecs[1] |