1
0
mirror of https://github.com/postgres/postgres.git synced 2026-10-23 13:29:09 +03:00

Fix argument handling in pg_indexam_progress_phasename()

The function is declared in pg_proc.dat a bigint as its second input
argument, but the function's code used PG_GETARG_INT32().

This is an issue in 32-bit architectures in stable branches (up to v18)
where bigint is still passed by reference, reporting bogus numbers.
Since 2a600a93c7 (v19 and HEAD), this is less of a problem as Datums
became 8-byte wide everywhere.

Oversight in ab0dfc961b.

Author: Markos Fountoulakis <markos@planetscale.com>
Reviewed-by: Chao Li <li.evan.chao@gmail.com>
Discussion: https://postgr.es/m/e791bbb7-af3a-4a91-a5bb-c744e5c3ef54@planetscale.com
Backpatch-through: 14
This commit is contained in:
Michael Paquier
2026-10-22 14:39:11 +09:00
parent 4cd931b431
commit 8af1a12c9e

View File

@@ -451,7 +451,7 @@ Datum
pg_indexam_progress_phasename(PG_FUNCTION_ARGS)
{
Oid amoid = PG_GETARG_OID(0);
int32 phasenum = PG_GETARG_INT32(1);
int64 phasenum = PG_GETARG_INT64(1);
IndexAmRoutine *routine;
char *name;