refactor-multixact-stats-function-variables-scope.patch
application/octet-stream
Filename: refactor-multixact-stats-function-variables-scope.patch
Type: application/octet-stream
Part: 0
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: unified
| File | + | − |
|---|---|---|
| src/backend/utils/adt/multixactfuncs.c | 12 | 12 |
diff --git a/src/backend/utils/adt/multixactfuncs.c b/src/backend/utils/adt/multixactfuncs.c
index 9fe2ebafa7..abd7ec1dc9 100644
--- a/src/backend/utils/adt/multixactfuncs.c
+++ b/src/backend/utils/adt/multixactfuncs.c
@@ -102,33 +102,33 @@ pg_get_multixact_stats(PG_FUNCTION_ARGS)
TupleDesc tupdesc;
Datum values[4];
bool nulls[4];
- uint64 members;
- MultiXactId oldestMultiXactId;
- uint32 multixacts;
- MultiXactOffset oldestOffset;
- MultiXactOffset nextOffset;
- uint64 membersBytes;
if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("return type must be a row type")));
- GetMultiXactInfo(&multixacts, &nextOffset, &oldestMultiXactId, &oldestOffset);
- members = nextOffset - oldestOffset;
-
- membersBytes = MultiXactOffsetStorageSize(nextOffset, oldestOffset);
-
if (!has_privs_of_role(GetUserId(), ROLE_PG_READ_ALL_STATS))
{
/*
* Only superusers and roles with privileges of pg_read_all_stats can
* see details.
*/
- memset(nulls, true, sizeof(bool) * tupdesc->natts);
+ memset(nulls, true, sizeof(nulls));
}
else
{
+ uint64 members;
+ MultiXactId oldestMultiXactId;
+ uint32 multixacts;
+ MultiXactOffset oldestOffset;
+ MultiXactOffset nextOffset;
+ uint64 membersBytes;
+
+ GetMultiXactInfo(&multixacts, &nextOffset, &oldestMultiXactId, &oldestOffset);
+ members = nextOffset - oldestOffset;
+ membersBytes = MultiXactOffsetStorageSize(nextOffset, oldestOffset);
+
values[0] = UInt32GetDatum(multixacts);
values[1] = Int64GetDatum(members);
values[2] = Int64GetDatum(membersBytes);