Many, many changes to support type-safe joins.
Real record projection.