Re: Proposal: Progressive explain
Rafael Thofehrn Castro <rafaelthca@gmail.com>
From: Rafael Thofehrn Castro <rafaelthca@gmail.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-03-26T21:57:54Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add some new hooks so extensions can add details to EXPLAIN.
- 4fd02bf7cf94 18.0 cited
Attachments
- v13-0001-Proposal-for-progressive-explains.patch (application/octet-stream) patch v13-0001
> Suppose: > BEGIN; > SELECT 1; > SAVEPOINT bob; > progressively explain something that aborts > I think in this case we will call AbortSubTransaction(), not AbortTransaction(). Indeed. We need special treatment for subtransactions. There are 2 scenarios where AbortSubTransaction() will be called alone and can affect progressive explains: savepoints and PL/pgSQL exception blocks. We don't want subxact aborts in PL/pgSQL exception blocks to perform cleanup as the original query will continue to run and progressive explain tracking is still applicable there. So implementation was done based on transaction nested level. Cleanup is only performed when AbortSubTransaction() is called in the same transaction nested level as the one where the query is running. This covers both PL/pgSQL exception blocks and savepoints. Rafael.