pgrowlocks: Fix incorrect format placeholders
authorPeter Eisentraut <peter@eisentraut.org>
Wed, 8 Dec 2021 08:27:15 +0000 (09:27 +0100)
committerPeter Eisentraut <peter@eisentraut.org>
Wed, 8 Dec 2021 08:32:16 +0000 (09:32 +0100)
Transaction IDs should be printed as unsigned, similar to xidout().

contrib/pgrowlocks/pgrowlocks.c

index 669a7d7730b6523b4a15a7e07d13012c625ce831..d8946dc5107ac1a617fcec52af44b390cf5caab6 100644 (file)
@@ -168,7 +168,7 @@ pgrowlocks(PG_FUNCTION_ARGS)
                                                             PointerGetDatum(&tuple->t_self));
 
            values[Atnum_xmax] = palloc(NCHARS * sizeof(char));
-           snprintf(values[Atnum_xmax], NCHARS, "%d", xmax);
+           snprintf(values[Atnum_xmax], NCHARS, "%u", xmax);
            if (infomask & HEAP_XMAX_IS_MULTI)
            {
                MultiXactMember *members;
@@ -209,7 +209,7 @@ pgrowlocks(PG_FUNCTION_ARGS)
                            strcat(values[Atnum_modes], ",");
                            strcat(values[Atnum_pids], ",");
                        }
-                       snprintf(buf, NCHARS, "%d", members[j].xid);
+                       snprintf(buf, NCHARS, "%u", members[j].xid);
                        strcat(values[Atnum_xids], buf);
                        switch (members[j].status)
                        {
@@ -250,7 +250,7 @@ pgrowlocks(PG_FUNCTION_ARGS)
                values[Atnum_ismulti] = pstrdup("false");
 
                values[Atnum_xids] = palloc(NCHARS * sizeof(char));
-               snprintf(values[Atnum_xids], NCHARS, "{%d}", xmax);
+               snprintf(values[Atnum_xids], NCHARS, "{%u}", xmax);
 
                values[Atnum_modes] = palloc(NCHARS);
                if (infomask & HEAP_XMAX_LOCK_ONLY)