Configuration parameter

enable_eager_aggregate — PostgreSQL configuration parameter

Category Query Planning Default on

Enables or disables the query planner’s ability to partially push aggregation past a join, and finalize it once all the relations are joined.

At a glance

Property Value
Parameter enable_eager_aggregate
Category Query Planning
Default on
Value type boolean (on/off)
Change scope Per-session (SET)
Available in PostgreSQL 19 (added in 19)

What it does

Enables or disables the query planner’s ability to partially push aggregation past a join, and finalize it once all the relations are joined. The default is on.

(Description quoted from the official PostgreSQL documentation.)

How to apply a change

Can be set per session with SET, per role/database with ALTER ROLE/DATABASE ... SET, or globally in postgresql.conf.

Inspect the current value and source with SHOW enable_eager_aggregate; or SELECT name, setting, unit, context, source FROM pg_settings WHERE name = 'enable_eager_aggregate';.

Tuning guidance

This is a diagnostic switch, not a production tuning knob. Turn it off briefly (per session) to confirm why the planner avoids or prefers a plan, then leave it on. Forcing it off in production masks bad estimates instead of fixing them — fix statistics, costs or indexes instead.

Reference

PostgreSQL documentation — enable_eager_aggregate.

Keep going

Related & next steps

Concepts on this page

Was this helpful?

← All configuration parameters