<feed xmlns='http://www.w3.org/2005/Atom'>
<title>postgresql.git/src/include/commands/explain.h, branch master</title>
<subtitle>This is the main PostgreSQL git repository.</subtitle>
<id>http://git.postgresql.org/cgit/postgresql.git/atom?h=master</id>
<link rel='self' href='http://git.postgresql.org/cgit/postgresql.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/'/>
<updated>2026-03-16T13:34:57Z</updated>
<entry>
<title>Reduce header inclusions via execnodes.h</title>
<updated>2026-03-16T13:34:57Z</updated>
<author>
<name>Álvaro Herrera</name>
</author>
<published>2026-03-16T13:34:57Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=fba4233c832870c8363438419743c48fdcb2151c'/>
<id>urn:sha1:fba4233c832870c8363438419743c48fdcb2151c</id>
<content type='text'>
Remove a bunch of #include lines from execnodes.h.  Most of these
requier suitable typedefs to be added, so that it still compiles
standalone.  In one case, the fix is to move a struct definition to the
one .c file where it is needed.

Also some light clean up in plannodes.h and genam.h, though not as
extensive as in execnodes.h.

Author: Álvaro Herrera &lt;alvherre@kurilemu.de&gt;
Author: Andres Freund &lt;andres@anarazel.de&gt;
Discussion: https://postgr.es/m/202603131240.ihwqdxnj7w2o@alvherre.pgsql
</content>
</entry>
<entry>
<title>Update copyright for 2026</title>
<updated>2026-01-01T18:24:10Z</updated>
<author>
<name>Bruce Momjian</name>
</author>
<published>2026-01-01T18:24:10Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=451c43974f8e199097d97624a4952ad0973cea61'/>
<id>urn:sha1:451c43974f8e199097d97624a4952ad0973cea61</id>
<content type='text'>
Backpatch-through: 14
</content>
</entry>
<entry>
<title>Improve ExplainState type handling in header files</title>
<updated>2025-09-15T09:04:10Z</updated>
<author>
<name>Peter Eisentraut</name>
</author>
<published>2025-09-15T08:48:30Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=70407d39b7ea8fd41496489b5f6a30c285e7d7d0'/>
<id>urn:sha1:70407d39b7ea8fd41496489b5f6a30c285e7d7d0</id>
<content type='text'>
Now that we can have repeat typedefs with C11, we don't need to use
"struct ExplainState" anymore but can instead make a typedef where
necessary.  This doesn't change anything but makes it look nicer.

(There are more opportunities for similar changes, but this is broken
out because there was a separate discussion about it, and it's
somewhat bulky on its own.)

Reviewed-by: Chao Li &lt;li.evan.chao@gmail.com&gt;
Discussion: https://www.postgresql.org/message-id/flat/f36c0a45-98cd-40b2-a7cc-f2bf02b12890%40eisentraut.org#a12fb1a2c1089d6d03010f6268871b00
Discussion: https://www.postgresql.org/message-id/flat/10d32190-f31b-40a5-b177-11db55597355@eisentraut.org
</content>
</entry>
<entry>
<title>Revert "Don't lock partitions pruned by initial pruning"</title>
<updated>2025-05-22T08:02:35Z</updated>
<author>
<name>Amit Langote</name>
</author>
<published>2025-05-22T05:17:24Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=1722d5eb05d8e5d2e064cd1798abcae4f296ca9d'/>
<id>urn:sha1:1722d5eb05d8e5d2e064cd1798abcae4f296ca9d</id>
<content type='text'>
As pointed out by Tom Lane, the patch introduced fragile and invasive
design around plan invalidation handling when locking of prunable
partitions was deferred from plancache.c to the executor. In
particular, it violated assumptions about CachedPlan immutability and
altered executor APIs in ways that are difficult to justify given the
added complexity and overhead.

This also removes the firstResultRels field added to PlannedStmt in
commit 28317de72, which was intended to support deferred locking of
certain ModifyTable result relations.

Reported-by: Tom Lane &lt;tgl@sss.pgh.pa.us&gt;
Discussion: https://postgr.es/m/605328.1747710381@sss.pgh.pa.us
</content>
</entry>
<entry>
<title>Harmonize function parameter names for Postgres 18.</title>
<updated>2025-04-12T16:07:36Z</updated>
<author>
<name>Peter Geoghegan</name>
</author>
<published>2025-04-12T16:07:36Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=a6cab6a78ee58356967a447fa2c6414732856986'/>
<id>urn:sha1:a6cab6a78ee58356967a447fa2c6414732856986</id>
<content type='text'>
Make sure that function declarations use names that exactly match the
corresponding names from function definitions in a few places.  These
inconsistencies were all introduced during Postgres 18 development.

This commit was written with help from clang-tidy, by mechanically
applying the same rules as similar clean-up commits (the earliest such
commit was commit 035ce1fe).
</content>
</entry>
<entry>
<title>Add some new hooks so extensions can add details to EXPLAIN.</title>
<updated>2025-03-18T13:28:01Z</updated>
<author>
<name>Robert Haas</name>
</author>
<published>2025-03-18T13:09:34Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=4fd02bf7cf94c3b6807dcf0b13e076de94f1e4ff'/>
<id>urn:sha1:4fd02bf7cf94c3b6807dcf0b13e076de94f1e4ff</id>
<content type='text'>
Specifically, add a per-node hook that is called after the per-node
information has been displayed but before we display children, and a
per-query hook that is called after existing query-level information
is printed. This assumes that extension-added information should
always go at the end rather than the beginning or the middle, but
that seems like an acceptable limitation for simplicity. It also
assumes that extensions will only want to add information, not remove
or reformat existing details; those also seem like acceptable
restrictions, at least for now.

If multiple EXPLAIN extensions are used, the order in which any
additional details are printed is likely to depend on the order in
which the modules are loaded. That seems OK, since the user may
have opinions about the order in which output should appear, and the
extension author can't really know whether their stuff is more or
less important to a particular user than some other extension.

Discussion: http://postgr.es/m/CA+TgmoYSzg58hPuBmei46o8D3SKX+SZoO4K_aGQGwiRzvRApLg@mail.gmail.com
Reviewed-by: Srinath Reddy &lt;srinath2133@gmail.com&gt;
Reviewed-by: Andrei Lepikhov &lt;lepihov@gmail.com&gt;
Reviewed-by: Tom Lane &lt;tgl@sss.pgh.pa.us&gt;
Reviewed-by: Sami Imseih &lt;samimseih@gmail.com&gt;
</content>
</entry>
<entry>
<title>Fix indentation again.</title>
<updated>2025-03-18T13:02:36Z</updated>
<author>
<name>Robert Haas</name>
</author>
<published>2025-03-18T13:02:36Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=796bdda484c838313959f65e2b700f14ac7c0e66'/>
<id>urn:sha1:796bdda484c838313959f65e2b700f14ac7c0e66</id>
<content type='text'>
Because somehow I manage to keep forgetting this.
</content>
</entry>
<entry>
<title>Make it possible for loadable modules to add EXPLAIN options.</title>
<updated>2025-03-18T12:41:12Z</updated>
<author>
<name>Robert Haas</name>
</author>
<published>2025-03-18T12:41:12Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=c65bc2e1d14a2d4daed7c1921ac518f2c5ac3d17'/>
<id>urn:sha1:c65bc2e1d14a2d4daed7c1921ac518f2c5ac3d17</id>
<content type='text'>
Modules can use RegisterExtensionExplainOption to register new
EXPLAIN options, and GetExplainExtensionId, GetExplainExtensionState,
and SetExplainExtensionState to store related state inside the
ExplainState object.

Since this substantially increases the amount of code that needs
to handle ExplainState-related tasks, move a few bits of existing
code to a new file explain_state.c and add the rest of this
infrastructure there.

See the comments at the top of explain_state.c for further
explanation of how this mechanism works.

This does not yet provide a way for such such options to do anything
useful. The intention is that we'll add hooks for that purpose in a
separate commit.

Discussion: http://postgr.es/m/CA+TgmoYSzg58hPuBmei46o8D3SKX+SZoO4K_aGQGwiRzvRApLg@mail.gmail.com
Reviewed-by: Srinath Reddy &lt;srinath2133@gmail.com&gt;
Reviewed-by: Andrei Lepikhov &lt;lepihov@gmail.com&gt;
Reviewed-by: Tom Lane &lt;tgl@sss.pgh.pa.us&gt;
Reviewed-by: Sami Imseih &lt;samimseih@gmail.com&gt;
</content>
</entry>
<entry>
<title>Avoid including explain.h in explain_format.h and explain_dr.h</title>
<updated>2025-02-28T18:17:29Z</updated>
<author>
<name>Robert Haas</name>
</author>
<published>2025-02-28T18:17:29Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=77cb08be510623421fc727f35980de5107eea735'/>
<id>urn:sha1:77cb08be510623421fc727f35980de5107eea735</id>
<content type='text'>
As per a suggestion from Tom Lane, we do this by declaring "struct
ExplainState" here and refer to that rather than "ExplainState".

Also per Tom, CreateExplainSerializeDestReceiver was still defined
in explain.h in addition to explain_dr.h. Remove leftover prototype.

Reviewed-by: Tom Lane &lt;tgl@sss.pgh.pa.us&gt;
Discussion: http://postgr.es/m/CA+TgmoYtaad3i21V0jqua-fbr+CR0ix6uBvEX8_s6BG96abd=g@mail.gmail.com
</content>
</entry>
<entry>
<title>Create explain_format.c and move relevant code there.</title>
<updated>2025-02-27T17:37:10Z</updated>
<author>
<name>Robert Haas</name>
</author>
<published>2025-02-27T17:37:10Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=9173e8b604636633a8e3aca54bb56a437bffa718'/>
<id>urn:sha1:9173e8b604636633a8e3aca54bb56a437bffa718</id>
<content type='text'>
explain.c has grown rather large, so move various functions that
are principally concerned with output generation to a new source
file, explain_format.c, instead of lumping them in with everything
else that is part of explain.c

Reviewed-by: Peter Geoghegan &lt;pg@bowt.ie&gt;
Discussion: http://postgr.es/m/CA+TgmoYutMw1Jgo8BWUmB3TqnOhsEAJiYO=rOQufF4gPLWmkLQ@mail.gmail.com
</content>
</entry>
</feed>
