Rename some support functions for pgstat* views.
authorNathan Bossart <nathan@postgresql.org>
Wed, 30 Aug 2023 21:46:52 +0000 (14:46 -0700)
committerNathan Bossart <nathan@postgresql.org>
Wed, 30 Aug 2023 21:46:52 +0000 (14:46 -0700)
Presently, pgstat_fetch_stat_beentry() accepts a session's backend
ID as its argument, and pgstat_fetch_stat_local_beentry() accepts a
1-based index in an internal array as its argument.  The former is
typically used wherever a user must provide a backend ID, and the
latter is usually used internally when looping over all entries in
the array.  This difference was first introduced by d7e39d72ca.
Before that commit, both functions accepted a 1-based index to the
internal array.

This commit renames these two functions to make it clear whether
they use the backend ID or the 1-based index to look up the entry.
This is preparatory work for a follow-up change that will introduce
a function for looking up a LocalPgBackendStatus using a backend
ID.

Reviewed-by: Ian Barwick, Sami Imseih, Michael Paquier, Robert Haas
Discussion: https://postgr.es/m/CAB8KJ%3Dj-ACb3H4L9a_b3ZG3iCYDW5aEu3WsPAzkm2S7JzS1Few%40mail.gmail.com
Backpatch-through: 16

src/backend/utils/activity/backend_status.c
src/backend/utils/adt/pgstatfuncs.c
src/include/utils/backend_status.h

index 38f91a495b8eabf28299e56e610fc2febd518aa0..a4860b10fc69283db3a3ceb4caf4a08197ff201b 100644 (file)
@@ -849,8 +849,8 @@ pgstat_read_current_status(void)
                        /*
                         * The BackendStatusArray index is exactly the BackendId of the
                         * source backend.  Note that this means localBackendStatusTable
-                        * is in order by backend_id.  pgstat_fetch_stat_beentry() depends
-                        * on that.
+                        * is in order by backend_id.  pgstat_get_beentry_by_backend_id()
+                        * depends on that.
                         */
                        localentry->backend_id = i;
                        BackendIdGetTransactionIds(i,
@@ -1073,21 +1073,21 @@ cmp_lbestatus(const void *a, const void *b)
 }
 
 /* ----------
- * pgstat_fetch_stat_beentry() -
+ * pgstat_get_beentry_by_backend_id() -
  *
  *     Support function for the SQL-callable pgstat* functions. Returns
  *     our local copy of the current-activity entry for one backend,
  *     or NULL if the given beid doesn't identify any known session.
  *
  *     The beid argument is the BackendId of the desired session
- *     (note that this is unlike pgstat_fetch_stat_local_beentry()).
+ *     (note that this is unlike pgstat_get_local_beentry_by_index()).
  *
  *     NB: caller is responsible for a check if the user is permitted to see
  *     this info (especially the querystring).
  * ----------
  */
 PgBackendStatus *
-pgstat_fetch_stat_beentry(BackendId beid)
+pgstat_get_beentry_by_backend_id(BackendId beid)
 {
        LocalPgBackendStatus key;
        LocalPgBackendStatus *ret;
@@ -1111,13 +1111,13 @@ pgstat_fetch_stat_beentry(BackendId beid)
 
 
 /* ----------
- * pgstat_fetch_stat_local_beentry() -
+ * pgstat_get_local_beentry_by_index() -
  *
- *     Like pgstat_fetch_stat_beentry() but with locally computed additions (like
- *     xid and xmin values of the backend)
+ *     Like pgstat_get_beentry_by_backend_id() but with locally computed additions
+ *     (like xid and xmin values of the backend)
  *
- *     The beid argument is a 1-based index in the localBackendStatusTable
- *     (note that this is unlike pgstat_fetch_stat_beentry()).
+ *     The idx argument is a 1-based index in the localBackendStatusTable
+ *     (note that this is unlike pgstat_get_beentry_by_backend_id()).
  *     Returns NULL if the argument is out of range (no current caller does that).
  *
  *     NB: caller is responsible for a check if the user is permitted to see
@@ -1125,14 +1125,14 @@ pgstat_fetch_stat_beentry(BackendId beid)
  * ----------
  */
 LocalPgBackendStatus *
-pgstat_fetch_stat_local_beentry(int beid)
+pgstat_get_local_beentry_by_index(int idx)
 {
        pgstat_read_current_status();
 
-       if (beid < 1 || beid > localNumBackends)
+       if (idx < 1 || idx > localNumBackends)
                return NULL;
 
-       return &localBackendStatusTable[beid - 1];
+       return &localBackendStatusTable[idx - 1];
 }
 
 
@@ -1141,7 +1141,7 @@ pgstat_fetch_stat_local_beentry(int beid)
  *
  *     Support function for the SQL-callable pgstat* functions. Returns
  *     the number of sessions known in the localBackendStatusTable, i.e.
- *     the maximum 1-based index to pass to pgstat_fetch_stat_local_beentry().
+ *     the maximum 1-based index to pass to pgstat_get_local_beentry_by_index().
  * ----------
  */
 int
index 2b9742ad21b0b607e78124564c1275807588a831..49cc887b97beaad7c81b13f9eeed8c0d470bd7d4 100644 (file)
@@ -211,7 +211,7 @@ pg_stat_get_backend_idset(PG_FUNCTION_ARGS)
        if (fctx[0] <= pgstat_fetch_stat_numbackends())
        {
                /* do when there is more left to send */
-               LocalPgBackendStatus *local_beentry = pgstat_fetch_stat_local_beentry(fctx[0]);
+               LocalPgBackendStatus *local_beentry = pgstat_get_local_beentry_by_index(fctx[0]);
 
                SRF_RETURN_NEXT(funcctx, Int32GetDatum(local_beentry->backend_id));
        }
@@ -264,7 +264,7 @@ pg_stat_get_progress_info(PG_FUNCTION_ARGS)
                bool            nulls[PG_STAT_GET_PROGRESS_COLS] = {0};
                int                     i;
 
-               local_beentry = pgstat_fetch_stat_local_beentry(curr_backend);
+               local_beentry = pgstat_get_local_beentry_by_index(curr_backend);
                beentry = &local_beentry->backendStatus;
 
                /*
@@ -325,7 +325,7 @@ pg_stat_get_activity(PG_FUNCTION_ARGS)
                const char *wait_event = NULL;
 
                /* Get the next one in the list */
-               local_beentry = pgstat_fetch_stat_local_beentry(curr_backend);
+               local_beentry = pgstat_get_local_beentry_by_index(curr_backend);
                beentry = &local_beentry->backendStatus;
 
                /* If looking for specific PID, ignore all the others */
@@ -672,7 +672,7 @@ pg_stat_get_backend_pid(PG_FUNCTION_ARGS)
        int32           beid = PG_GETARG_INT32(0);
        PgBackendStatus *beentry;
 
-       if ((beentry = pgstat_fetch_stat_beentry(beid)) == NULL)
+       if ((beentry = pgstat_get_beentry_by_backend_id(beid)) == NULL)
                PG_RETURN_NULL();
 
        PG_RETURN_INT32(beentry->st_procpid);
@@ -685,7 +685,7 @@ pg_stat_get_backend_dbid(PG_FUNCTION_ARGS)
        int32           beid = PG_GETARG_INT32(0);
        PgBackendStatus *beentry;
 
-       if ((beentry = pgstat_fetch_stat_beentry(beid)) == NULL)
+       if ((beentry = pgstat_get_beentry_by_backend_id(beid)) == NULL)
                PG_RETURN_NULL();
 
        PG_RETURN_OID(beentry->st_databaseid);
@@ -698,7 +698,7 @@ pg_stat_get_backend_userid(PG_FUNCTION_ARGS)
        int32           beid = PG_GETARG_INT32(0);
        PgBackendStatus *beentry;
 
-       if ((beentry = pgstat_fetch_stat_beentry(beid)) == NULL)
+       if ((beentry = pgstat_get_beentry_by_backend_id(beid)) == NULL)
                PG_RETURN_NULL();
 
        PG_RETURN_OID(beentry->st_userid);
@@ -727,7 +727,7 @@ pg_stat_get_backend_subxact(PG_FUNCTION_ARGS)
 
        BlessTupleDesc(tupdesc);
 
-       if ((local_beentry = pgstat_fetch_stat_local_beentry(beid)) != NULL)
+       if ((local_beentry = pgstat_get_local_beentry_by_index(beid)) != NULL)
        {
                /* Fill values and NULLs */
                values[0] = Int32GetDatum(local_beentry->backend_subxact_count);
@@ -752,7 +752,7 @@ pg_stat_get_backend_activity(PG_FUNCTION_ARGS)
        char       *clipped_activity;
        text       *ret;
 
-       if ((beentry = pgstat_fetch_stat_beentry(beid)) == NULL)
+       if ((beentry = pgstat_get_beentry_by_backend_id(beid)) == NULL)
                activity = "<backend information not available>";
        else if (!HAS_PGSTAT_PERMISSIONS(beentry->st_userid))
                activity = "<insufficient privilege>";
@@ -776,7 +776,7 @@ pg_stat_get_backend_wait_event_type(PG_FUNCTION_ARGS)
        PGPROC     *proc;
        const char *wait_event_type = NULL;
 
-       if ((beentry = pgstat_fetch_stat_beentry(beid)) == NULL)
+       if ((beentry = pgstat_get_beentry_by_backend_id(beid)) == NULL)
                wait_event_type = "<backend information not available>";
        else if (!HAS_PGSTAT_PERMISSIONS(beentry->st_userid))
                wait_event_type = "<insufficient privilege>";
@@ -797,7 +797,7 @@ pg_stat_get_backend_wait_event(PG_FUNCTION_ARGS)
        PGPROC     *proc;
        const char *wait_event = NULL;
 
-       if ((beentry = pgstat_fetch_stat_beentry(beid)) == NULL)
+       if ((beentry = pgstat_get_beentry_by_backend_id(beid)) == NULL)
                wait_event = "<backend information not available>";
        else if (!HAS_PGSTAT_PERMISSIONS(beentry->st_userid))
                wait_event = "<insufficient privilege>";
@@ -818,7 +818,7 @@ pg_stat_get_backend_activity_start(PG_FUNCTION_ARGS)
        TimestampTz result;
        PgBackendStatus *beentry;
 
-       if ((beentry = pgstat_fetch_stat_beentry(beid)) == NULL)
+       if ((beentry = pgstat_get_beentry_by_backend_id(beid)) == NULL)
                PG_RETURN_NULL();
 
        else if (!HAS_PGSTAT_PERMISSIONS(beentry->st_userid))
@@ -844,7 +844,7 @@ pg_stat_get_backend_xact_start(PG_FUNCTION_ARGS)
        TimestampTz result;
        PgBackendStatus *beentry;
 
-       if ((beentry = pgstat_fetch_stat_beentry(beid)) == NULL)
+       if ((beentry = pgstat_get_beentry_by_backend_id(beid)) == NULL)
                PG_RETURN_NULL();
 
        else if (!HAS_PGSTAT_PERMISSIONS(beentry->st_userid))
@@ -866,7 +866,7 @@ pg_stat_get_backend_start(PG_FUNCTION_ARGS)
        TimestampTz result;
        PgBackendStatus *beentry;
 
-       if ((beentry = pgstat_fetch_stat_beentry(beid)) == NULL)
+       if ((beentry = pgstat_get_beentry_by_backend_id(beid)) == NULL)
                PG_RETURN_NULL();
 
        else if (!HAS_PGSTAT_PERMISSIONS(beentry->st_userid))
@@ -890,7 +890,7 @@ pg_stat_get_backend_client_addr(PG_FUNCTION_ARGS)
        char            remote_host[NI_MAXHOST];
        int                     ret;
 
-       if ((beentry = pgstat_fetch_stat_beentry(beid)) == NULL)
+       if ((beentry = pgstat_get_beentry_by_backend_id(beid)) == NULL)
                PG_RETURN_NULL();
 
        else if (!HAS_PGSTAT_PERMISSIONS(beentry->st_userid))
@@ -935,7 +935,7 @@ pg_stat_get_backend_client_port(PG_FUNCTION_ARGS)
        char            remote_port[NI_MAXSERV];
        int                     ret;
 
-       if ((beentry = pgstat_fetch_stat_beentry(beid)) == NULL)
+       if ((beentry = pgstat_get_beentry_by_backend_id(beid)) == NULL)
                PG_RETURN_NULL();
 
        else if (!HAS_PGSTAT_PERMISSIONS(beentry->st_userid))
@@ -978,12 +978,12 @@ pg_stat_get_db_numbackends(PG_FUNCTION_ARGS)
        Oid                     dbid = PG_GETARG_OID(0);
        int32           result;
        int                     tot_backends = pgstat_fetch_stat_numbackends();
-       int                     beid;
+       int                     idx;
 
        result = 0;
-       for (beid = 1; beid <= tot_backends; beid++)
+       for (idx = 1; idx <= tot_backends; idx++)
        {
-               LocalPgBackendStatus *local_beentry = pgstat_fetch_stat_local_beentry(beid);
+               LocalPgBackendStatus *local_beentry = pgstat_get_local_beentry_by_index(idx);
 
                if (local_beentry->backendStatus.st_databaseid == dbid)
                        result++;
index 77939a0aedea3b946ba5cad99528e8b8b06a71bf..1718ff7ce6602b0dd8d34ed22c93ed3d75d6fdca 100644 (file)
@@ -333,8 +333,8 @@ extern uint64 pgstat_get_my_query_id(void);
  * ----------
  */
 extern int     pgstat_fetch_stat_numbackends(void);
-extern PgBackendStatus *pgstat_fetch_stat_beentry(BackendId beid);
-extern LocalPgBackendStatus *pgstat_fetch_stat_local_beentry(int beid);
+extern PgBackendStatus *pgstat_get_beentry_by_backend_id(BackendId beid);
+extern LocalPgBackendStatus *pgstat_get_local_beentry_by_index(int idx);
 extern char *pgstat_clip_activity(const char *raw_activity);