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);