• Each operator is an Iterator.

  • The nested constructor calls connect the operators.

  • Each constructor just initializes C++ state, including the input fields. No query processing so far.

  • The arrows show ownership, not direction of data flow.

    • Project::input is the SelectScan operator.

    • SelectScan::input is the TableScan operator.