Du har den misforståelse, at optimizeren omskriver SQL-sætningen. Det er ikke tilfældet. Omskrivning af forespørgslen er forespørgselsomskriverens opgave , som for eksempel erstatter synspunkter med deres definition. Optimizeren kommer med en sekvens af udførelsestrin for at beregne resultatet. Det producerer en plan , ikke en SQL-sætning.
Optimizeren planlægger to alternativer:enten udfør underplan 1 for hver række fundet, eller eksekver underplan 2 én gang (bemærk, at den er uafhængig af a
), opbyg en hash-tabel ud fra resultatet og probe, der hash for hver række fundet i a
.
På udførelsestidspunktet beslutter PostgreSQL at bruge den sidstnævnte strategi, det er grunden til, at underplan 1 aldrig udføres.