Putting them all together
The iterator model. Each operation is implemented by 3 functions:
- Open: sets up the data structures and performs initializations
- GetNext: returns the the next tuple of the result.
- Close: ends the operations. Cleans up the data structures.
Contrast with data-driven materialize model.
Sometimes it’s the same (e.g., sorted scan).