Selections are implemented as part of file-scan iterators or index-scan iterators; projections (with no selection) are always file-scan iterators. Selections on single relations are combined with projections.
Whenever possible, selections are combined with joins by applying the (non-join) selection conditions to the tuples in the join result. Similarly, any unwanted attributes are projected out as part of the join operators. Each join method defines a new kind of iterator.
Sorting is implemented as a separate iterator, and is used internally by the sort-merge join operator. It can also be used for GROUP-BY, ORDER-BY and DISTINCT.
Back to the List of Components
Back to the Minibase Home Page