Query processing

Projection (ExecProject)

Also called: target list evaluation, ExecProject

Projection is the step where a node builds the specific columns and expressions its output should contain, the SELECT list. It takes the input tuple and computes the result columns, whether that is a plain column, price * 1.2, or upper(name).

What this means

The step where a node builds precisely the columns and expressions you asked for in the SELECT list. Given an input row it computes the outputs (a plain column, price * 1.2, upper(name)) and hands up a row shaped the way your query wants it.

Why it matters operationally

Projection is per-tuple work, so heavy expressions in the SELECT list cost something on every row, and PostgreSQL's JIT exists largely to speed this evaluation up. Selecting fewer or cheaper columns is a real, if modest, way to reduce executor work on large result sets.

Related & next

Mentioned from

← All glossary terms · GUC reference · Error catalog