Left outer join keeps every left row and recomputes match counts.
highlighted = computed this step
Left outer join
A left outer join keeps every left row. Matched rows combine both sides; unmatched left rows get NULL cells on the right. This is a tiny finite-table model, not a dialect guide.
left rows survive
Bag rows are preserved
The compiled output has 5 rows. The first left row has 2 matches, and 2 left rows are unmatched.
rows=5,first matches=2
SQL extensions are rendered as tiny finite-table semantics; SQL dialect completeness, optimizer behavior, execution cost, full DDL behavior, and database-product claims are out of scope.
Summary
The join result is recomputed from the input bags. Note: join algorithms and optimizer choices are out of scope.