Planning & executionsenior🔒 Pro concept

Generic vs custom plans for prepared statements

Simple terms

A prepared statement can be planned fresh for every set of arguments, or planned once and reused forever. Postgres does both. It plans the first five executions individually, then compares, and if one reusable plan doesn't look more expensive on average, it switches to that and stops re-planning for good. Usually a fine trade. But now a single plan has to serve every value you throw at it, and on skewed data the plan that suits the common case can be badly wrong for the rare one.

You might be asked

Explain custom vs generic plans for a prepared statement: when does PostgreSQL switch, how is the decision made, how do you observe which plan was used, and what is the failure mode on skewed data?

TopicPlan cache / prepared statements
PostgreSQL14, 15, 16, 17, 18
Tools usedPREPARE/EXECUTE, EXPLAIN, plan_cache_mode (auto/force_custom_plan/force_generic_plan), pg_prepared_statements (generic_plans/custom_plans), source navigation @REL_17_10
Last reviewed2026-06-19

Pro concept

Full answer and evidence depth sit behind Pro

You have the question and a plain-English lead. Pro unlocks the short answer, what the docs say, what the code does, the labeled lab evidence or reproduction protocol, how to use it under pressure, and the references.

ProFull answer + evidence depth

Unlock the full breakdown for Generic vs custom plans for prepared statements

You have the interview question and a plain-English lead. Pro opens the short answer, the manual walkthrough, the source decode, and a 183-line evidence section that states whether it is raw output, a captured run summary, or a protocol to run yourself, plus how to use it under pressure.
  • How you'd answer it, the full senior-level short answer
  • What the docs say, the manual's actual wording, with the citations
  • What the code does, the mechanism decoded from PostgreSQL's own source at a pinned tag
  • Proof from a real run, labeled as raw output, a captured run summary, or a run-it-yourself protocol
  • Using it under pressure, the situation, the call you'd make, what goes wrong, and what people get wrong
  • Version notes, what changed across PostgreSQL releases
  • 4 interviewer follow-ups for this concept

Card required. Cancel before day 7 and you are not charged.

Compare plans

How this was verified

The open teaser is the question and a plain-English lead. The short answer, the manual walkthrough, the source decode, the lab evidence, and how to use it under pressure unlock with Pro. Evidence is labeled as raw output, a captured run summary, or a run-it-yourself protocol.