child.Next() is called in Open() for IndexLookupJoin.
But I think maybe it’s better to call child.Next() in Next(). Because if child.Next() is called in the open phase, it means that the child’s output must be ready in the open phase. This may not be sufficient in some cases.