pgsql: Invent GENERIC_PLAN option for EXPLAIN.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Invent GENERIC_PLAN option for EXPLAIN.
Date: 2023-03-24 21:07:35
Message-ID: E1pfodK-005DD1-Lc@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Invent GENERIC_PLAN option for EXPLAIN.

This provides a very simple way to see the generic plan for a
parameterized query. Without this, it's necessary to define
a prepared statement and temporarily change plan_cache_mode,
which is a bit tedious.

One thing that's a bit of a hack perhaps is that we disable
execution-time partition pruning when the GENERIC_PLAN option
is given. That's because the pruning code may attempt to
fetch the value of one of the parameters, which would fail.

Laurenz Albe, reviewed by Julien Rouhaud, Christoph Berg,
Michel Pelletier, Jim Jones, and myself

Discussion: https://postgr.es/m/0a29b954b10b57f0d135fe12aa0909bd41883eb0.camel@cybertec.at

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/3c05284d83b230728e59a25e828992037ef77096

Modified Files
--------------
doc/src/sgml/ref/explain.sgml | 70 +++++++++++++++++++++++++++++++----
src/backend/commands/explain.c | 11 ++++++
src/backend/executor/execMain.c | 2 +-
src/backend/executor/execPartition.c | 10 +++--
src/backend/parser/analyze.c | 29 +++++++++++++++
src/bin/psql/tab-complete.c | 4 +-
src/include/commands/explain.h | 1 +
src/include/executor/executor.h | 22 ++++++++---
src/test/regress/expected/explain.out | 42 +++++++++++++++++++++
src/test/regress/sql/explain.sql | 26 +++++++++++++
10 files changed, 197 insertions(+), 20 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Andres Freund 2023-03-24 21:22:40 pgsql: docs: Explain how to silence overly verbose messages by fop
Previous Message Jeff Davis 2023-03-24 18:10:26 Re: pgsql: Handle the "und" locale in ICU versions 54 and older.