Use PG_GETARG_TRANSACTIONID where appropriate
authorPeter Eisentraut <[email protected]>
Mon, 2 Nov 2020 15:48:22 +0000 (16:48 +0100)
committerPeter Eisentraut <[email protected]>
Mon, 2 Nov 2020 15:48:22 +0000 (16:48 +0100)
Some places were using PG_GETARG_UINT32 where PG_GETARG_TRANSACTIONID
would be more appropriate.  (Of course, they are the same internally,
so there is no externally visible effect.)  To do that, export
PG_GETARG_TRANSACTIONID outside of xid.c.  We also export
PG_RETURN_TRANSACTIONID for symmetry, even though there are currently
no external users.

Author: Ashutosh Bapat <[email protected]>
Discussion: https://www.postgresql.org/message-id/flat/d8f6bdd536df403b9b33816e9f7e0b9d@G08CNEXMBPEKD05.g08.fujitsu.local

src/backend/access/transam/commit_ts.c
src/backend/access/transam/multixact.c
src/backend/utils/adt/xid.c
src/include/fmgr.h

index cb8a968801873da22259162c7750d1851b9e4ed8..2fe551f17e77669550c737bf2444341e4b52778a 100644 (file)
@@ -404,7 +404,7 @@ error_commit_ts_disabled(void)
 Datum
 pg_xact_commit_timestamp(PG_FUNCTION_ARGS)
 {
-   TransactionId xid = PG_GETARG_UINT32(0);
+   TransactionId xid = PG_GETARG_TRANSACTIONID(0);
    TimestampTz ts;
    bool        found;
 
@@ -481,7 +481,7 @@ pg_last_committed_xact(PG_FUNCTION_ARGS)
 Datum
 pg_xact_commit_timestamp_origin(PG_FUNCTION_ARGS)
 {
-   TransactionId xid = PG_GETARG_UINT32(0);
+   TransactionId xid = PG_GETARG_TRANSACTIONID(0);
    RepOriginId nodeid;
    TimestampTz ts;
    Datum       values[2];
index 43653fe5721276c7c75fcf2bda3de63b75acd34c..eb8de7cf3293c622b0bebe4db226f4b13a0bd83d 100644 (file)
@@ -3339,7 +3339,7 @@ pg_get_multixact_members(PG_FUNCTION_ARGS)
        int         nmembers;
        int         iter;
    } mxact;
-   MultiXactId mxid = PG_GETARG_UINT32(0);
+   MultiXactId mxid = PG_GETARG_TRANSACTIONID(0);
    mxact      *multi;
    FuncCallContext *funccxt;
 
index 20389aff1d12a4f388b224eca855cb549d6a7e3d..a4762014ba1faa5c628d17fff1aa7c2ec32c50ec 100644 (file)
@@ -23,9 +23,6 @@
 #include "utils/builtins.h"
 #include "utils/xid8.h"
 
-#define PG_GETARG_TRANSACTIONID(n) DatumGetTransactionId(PG_GETARG_DATUM(n))
-#define PG_RETURN_TRANSACTIONID(x) return TransactionIdGetDatum(x)
-
 #define PG_GETARG_COMMANDID(n)     DatumGetCommandId(PG_GETARG_DATUM(n))
 #define PG_RETURN_COMMANDID(x)     return CommandIdGetDatum(x)
 
index f25068fae201ac420360400f1a07309e2346f0c8..ce37e342cd0008686857005d570c5605e6319332 100644 (file)
@@ -276,6 +276,7 @@ extern struct varlena *pg_detoast_datum_packed(struct varlena *datum);
 #define PG_GETARG_POINTER(n) DatumGetPointer(PG_GETARG_DATUM(n))
 #define PG_GETARG_CSTRING(n) DatumGetCString(PG_GETARG_DATUM(n))
 #define PG_GETARG_NAME(n)   DatumGetName(PG_GETARG_DATUM(n))
+#define PG_GETARG_TRANSACTIONID(n) DatumGetTransactionId(PG_GETARG_DATUM(n))
 /* these macros hide the pass-by-reference-ness of the datatype: */
 #define PG_GETARG_FLOAT4(n)  DatumGetFloat4(PG_GETARG_DATUM(n))
 #define PG_GETARG_FLOAT8(n)  DatumGetFloat8(PG_GETARG_DATUM(n))
@@ -360,6 +361,7 @@ extern struct varlena *pg_detoast_datum_packed(struct varlena *datum);
 #define PG_RETURN_POINTER(x) return PointerGetDatum(x)
 #define PG_RETURN_CSTRING(x) return CStringGetDatum(x)
 #define PG_RETURN_NAME(x)   return NameGetDatum(x)
+#define PG_RETURN_TRANSACTIONID(x) return TransactionIdGetDatum(x)
 /* these macros hide the pass-by-reference-ness of the datatype: */
 #define PG_RETURN_FLOAT4(x)  return Float4GetDatum(x)
 #define PG_RETURN_FLOAT8(x)  return Float8GetDatum(x)