- Lazy evaluation: Execution of the query plan is driven by
the loop calling kurts_birthday()->next().
- As with open, top-level call to next propagates down.
- Rows are returned up through the calls.
- Project::next: Calls input->next(), keeps the specified fields and
returns the projected row.
- SelectScan::next: Calls input->next() until a qualifying row is found,
and then returns that row.
- TableScan::next: Returns a row read out of a buffer containing a disk page.