Re: [Proposal] Expose internal MultiXact member count function for efficient monitoring
Xuneng Zhou <xunengzhou@gmail.com>
From: Xuneng Zhou <xunengzhou@gmail.com>
To: torikoshia <torikoshia@oss.nttdata.com>, Naga Appani <nagnrik@gmail.com>
Cc: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>,
Michael Paquier <michael@paquier.xyz>, Kirill Reshke <reshkekirill@gmail.com>, pgsql-hackers@postgresql.org
Date: 2025-10-17T02:10:12Z
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 pg_get_multixact_stats()
- 97b101776ce2 19 (unreleased) landed
-
Add MultiXactOffsetStorageSize() to multixact_internal.h
- 0e3ad4b96aed 19 (unreleased) landed
-
Change GetMultiXactInfo() to return the next multixact offset
- 9cf746a453c1 19 (unreleased) landed
-
Widen MultiXactOffset to 64 bits
- bd8d9c9bdfa0 19 (unreleased) cited
-
Refactor ReadMultiXactCounts() into GetMultiXactInfo()
- a977e419ee6e 19 (unreleased) landed
-
Move SQL-callable code related to multixacts into its own file
- df9133fa6384 19 (unreleased) landed
-
Split func.sgml into more manageable pieces
- 4e23c9ef65ac 19 (unreleased) cited
Attachments
- v10-0001-Add-pg_get_multixact_stats-function-for-monitori.patch (application/octet-stream) patch v10-0001
Hi, On Fri, Oct 17, 2025 at 8:28 AM torikoshia <torikoshia@oss.nttdata.com> wrote: > > On 2025-09-15 14:47, Naga Appani wrote: > > > With these updates in v9, I believe the patch is now in good shape to > > be marked RFC. I’ll go ahead and update the CommitFest entry. > > As shown in the commitfest app, v9 patch fails to build: > > multixactfuncs.c:129:28: error: call to undeclared function > 'heap_form_tuple'; ISO C99 and later do not support implicit function > declarations [-Wimplicit-function-declaration] > 129 | return > HeapTupleGetDatum(heap_form_tuple(tupdesc, values, nulls)); > | ^ > multixactfuncs.c:129:28: note: did you mean 'brin_form_tuple'? > ../../../../src/include/access/brin_tuple.h:96:19: note: > 'brin_form_tuple' declared here > 96 | extern BrinTuple *brin_form_tuple(BrinDesc *brdesc, BlockNumber > blkno, > | ^ > multixactfuncs.c:129:28: error: incompatible integer to pointer > conversion passing 'int' to parameter of type 'const HeapTupleData *' > (aka 'const struct HeapTupleData *') [-Wint-conversion] > 129 | return > HeapTupleGetDatum(heap_form_tuple(tupdesc, values, nulls)); > | > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > ../../../../src/include/funcapi.h:230:40: note: passing argument to > parameter 'tuple' here > 230 | HeapTupleGetDatum(const HeapTupleData *tuple) > | ^ > 2 errors generated. > > Could you please update the patch to fix this? Here’s the updated v10 patch, now including access/htup_details.h in src/backend/utils/adt/multixactfuncs.c. I’m also interested in this patch and plan to review it. Best, Xuneng