Good CTE, bad CTE

The planner treats CTEs very differently depending on how you write them. Here's what happens under the hood, version by version, through PostgreSQL 18.

boringSQL | Supercharge your SQL & PostgreSQL powers