Build three ways to join

The tree that finds one key in a few page reads. One of the three joins in this lesson is built on exactly that: for each row on one side, a lookup in the tree on the other.
Before you start. The Query Planner showed the three join methods in a real plan and the planner’s bet on which to use. Build sort and aggregate with a memory limit built the sort and the hash aggregate, and its partitioning trick returns here. Database 07: The Query Layer built a query layer with no joins at all, and said so. The code is in teaching/code/database-internals/03-joins.