adjust query id feature to use pg_stat_activity.query_id
authorBruce Momjian
Tue, 20 Apr 2021 16:22:26 +0000 (12:22 -0400)
committerBruce Momjian
Tue, 20 Apr 2021 16:22:26 +0000 (12:22 -0400)
Previously, it was pg_stat_activity.queryid to match the
pg_stat_statements queryid column.  This is an adjustment to patch
4f0b0966c8.  This also adjusts some of the internal function calls to
match.  Catversion bumped.

Reported-by: Álvaro Herrera, Julien Rouhaud
Discussion: https://postgr.es/m/20210408032704[email protected]

14 files changed:
doc/src/sgml/monitoring.sgml
src/backend/catalog/system_views.sql
src/backend/executor/execMain.c
src/backend/executor/execParallel.c
src/backend/parser/analyze.c
src/backend/tcop/postgres.c
src/backend/utils/activity/backend_status.c
src/backend/utils/adt/pgstatfuncs.c
src/backend/utils/error/elog.c
src/backend/utils/misc/queryjumble.c
src/include/catalog/catversion.h
src/include/catalog/pg_proc.dat
src/include/utils/backend_status.h
src/test/regress/expected/rules.out

index 5cf083bb7761e438526feed191906680244a7589..886e626be802edd9df87424a1fb56714377a6a2e 100644 (file)
@@ -919,7 +919,7 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
 
     
      
-      queryid bigint
+      query_id bigint
      
      
       Identifier of this backend's most recent query. If
index e96dd732805a3919f41df3bdda7ad21782bed3de..70e578894f5a01bcf0e5124e5bbd4f3fd2875ac5 100644 (file)
@@ -833,7 +833,7 @@ CREATE VIEW pg_stat_activity AS
             S.state,
             S.backend_xid,
             s.backend_xmin,
-            S.queryid,
+            S.query_id,
             S.query,
             S.backend_type
     FROM pg_stat_get_activity(NULL) AS S
index 2cf6dad7685817c40a0378b41f636bf8a7ce7b09..8638bd3dd96b60e4ea375ed6ef499ffd5b8be080 100644 (file)
@@ -131,11 +131,11 @@ ExecutorStart(QueryDesc *queryDesc, int eflags)
 {
    /*
     * In some cases (e.g. an EXECUTE statement) a query execution will skip
-    * parse analysis, which means that the queryid won't be reported.  Note
-    * that it's harmless to report the queryid multiple time, as the call will
-    * be ignored if the top level queryid has already been reported.
+    * parse analysis, which means that the query_id won't be reported.  Note
+    * that it's harmless to report the query_id multiple time, as the call will
+    * be ignored if the top level query_id has already been reported.
     */
-   pgstat_report_queryid(queryDesc->plannedstmt->queryId, false);
+   pgstat_report_query_id(queryDesc->plannedstmt->queryId, false);
 
    if (ExecutorStart_hook)
        (*ExecutorStart_hook) (queryDesc, eflags);
index 5dab1e36b9bedb8b3e1e5ed35ea5f9e1ebf8618a..12c41d746b25b67d5b15217038308644f0314416 100644 (file)
@@ -175,7 +175,7 @@ ExecSerializePlan(Plan *plan, EState *estate)
     */
    pstmt = makeNode(PlannedStmt);
    pstmt->commandType = CMD_SELECT;
-   pstmt->queryId = pgstat_get_my_queryid();
+   pstmt->queryId = pgstat_get_my_query_id();
    pstmt->hasReturning = false;
    pstmt->hasModifyingCTE = false;
    pstmt->canSetTag = true;
index 862f18a92f27038588fd0a06cf2559d924a40056..e415bc3df0fe3b32b854cd4c4b401245aadde3eb 100644 (file)
@@ -132,7 +132,7 @@ parse_analyze(RawStmt *parseTree, const char *sourceText,
 
    free_parsestate(pstate);
 
-   pgstat_report_queryid(query->queryId, false);
+   pgstat_report_query_id(query->queryId, false);
 
    return query;
 }
@@ -171,7 +171,7 @@ parse_analyze_varparams(RawStmt *parseTree, const char *sourceText,
 
    free_parsestate(pstate);
 
-   pgstat_report_queryid(query->queryId, false);
+   pgstat_report_query_id(query->queryId, false);
 
    return query;
 }
index 825fd55107af97b9dd93d5984812ff4c9fe2d6c2..1216a2b397bd9bace13ecf4a3c057e287d46c505 100644 (file)
@@ -694,7 +694,7 @@ pg_analyze_and_rewrite_params(RawStmt *parsetree,
 
    free_parsestate(pstate);
 
-   pgstat_report_queryid(query->queryId, false);
+   pgstat_report_query_id(query->queryId, false);
 
    if (log_parser_stats)
        ShowUsage("PARSE ANALYSIS STATISTICS");
@@ -1031,7 +1031,7 @@ exec_simple_query(const char *query_string)
        DestReceiver *receiver;
        int16       format;
 
-       pgstat_report_queryid(0, true);
+       pgstat_report_query_id(0, true);
 
        /*
         * Get the command name for use in status display (it also becomes the
index 5c1b2c25ed23d6a362e7a32c18ad7f5ed3910b0d..787f062f9c3d4662258add382ae2c6a5caab0a3b 100644 (file)
@@ -544,7 +544,7 @@ pgstat_report_activity(BackendState state, const char *cmd_str)
            beentry->st_activity_start_timestamp = 0;
            /* st_xact_start_timestamp and wait_event_info are also disabled */
            beentry->st_xact_start_timestamp = 0;
-           beentry->st_queryid = UINT64CONST(0);
+           beentry->st_query_id = UINT64CONST(0);
            proc->wait_event_info = 0;
            PGSTAT_END_WRITE_ACTIVITY(beentry);
        }
@@ -605,7 +605,7 @@ pgstat_report_activity(BackendState state, const char *cmd_str)
     * identifier.
     */
    if (state == STATE_RUNNING)
-       beentry->st_queryid = UINT64CONST(0);
+       beentry->st_query_id = UINT64CONST(0);
 
    if (cmd_str != NULL)
    {
@@ -618,32 +618,32 @@ pgstat_report_activity(BackendState state, const char *cmd_str)
 }
 
 /* --------
- * pgstat_report_queryid() -
+ * pgstat_report_query_id() -
  *
  * Called to update top-level query identifier.
  * --------
  */
 void
-pgstat_report_queryid(uint64 queryId, bool force)
+pgstat_report_query_id(uint64 query_id, bool force)
 {
    volatile PgBackendStatus *beentry = MyBEEntry;
 
    /*
-    * if track_activities is disabled, st_queryid should already have been
+    * if track_activities is disabled, st_query_id should already have been
     * reset
     */
    if (!beentry || !pgstat_track_activities)
        return;
 
    /*
-    * We only report the top-level query identifiers.  The stored queryid is
+    * We only report the top-level query identifiers.  The stored query_id is
     * reset when a backend calls pgstat_report_activity(STATE_RUNNING), or
     * with an explicit call to this function using the force flag.  If the
     * saved query identifier is not zero it means that it's not a top-level
     * command, so ignore the one provided unless it's an explicit call to
     * reset the identifier.
     */
-   if (beentry->st_queryid != 0 && !force)
+   if (beentry->st_query_id != 0 && !force)
        return;
 
    /*
@@ -652,7 +652,7 @@ pgstat_report_queryid(uint64 queryId, bool force)
     * ensure the compiler doesn't try to get cute.
     */
    PGSTAT_BEGIN_WRITE_ACTIVITY(beentry);
-   beentry->st_queryid = queryId;
+   beentry->st_query_id = query_id;
    PGSTAT_END_WRITE_ACTIVITY(beentry);
 }
 
@@ -1022,12 +1022,12 @@ pgstat_get_crashed_backend_activity(int pid, char *buffer, int buflen)
 }
 
 /* ----------
- * pgstat_get_my_queryid() -
+ * pgstat_get_my_query_id() -
  *
  * Return current backend's query identifier.
  */
 uint64
-pgstat_get_my_queryid(void)
+pgstat_get_my_query_id(void)
 {
    if (!MyBEEntry)
        return 0;
@@ -1037,7 +1037,7 @@ pgstat_get_my_queryid(void)
     * pg_stat_get_activity which is already protected, or from the same
     * backend which means that there won't be concurrent writes.
     */
-   return MyBEEntry->st_queryid;
+   return MyBEEntry->st_query_id;
 }
 
 
index 2680190a4026bdfc9961ed54f70012fc7a4ba706..87f02d572e65d3e515864561ce2450cc33e86bef 100644 (file)
@@ -914,10 +914,10 @@ pg_stat_get_activity(PG_FUNCTION_ARGS)
                values[27] = BoolGetDatum(false);   /* GSS Encryption not in
                                                     * use */
            }
-           if (beentry->st_queryid == 0)
+           if (beentry->st_query_id == 0)
                nulls[29] = true;
            else
-               values[29] = UInt64GetDatum(beentry->st_queryid);
+               values[29] = UInt64GetDatum(beentry->st_query_id);
        }
        else
        {
index a1ebe06d5b061a3a11d645df44a320076361c517..65019989cf6ba1e7c94fd730ce7ee84a4457e4f4 100644 (file)
@@ -2717,10 +2717,10 @@ log_line_prefix(StringInfo buf, ErrorData *edata)
            case 'Q':
                if (padding != 0)
                    appendStringInfo(buf, "%*lld", padding,
-                           (long long) pgstat_get_my_queryid());
+                           (long long) pgstat_get_my_query_id());
                else
                    appendStringInfo(buf, "%lld",
-                           (long long) pgstat_get_my_queryid());
+                           (long long) pgstat_get_my_query_id());
                break;
            default:
                /* format error - ignore it */
@@ -2967,7 +2967,7 @@ write_csvlog(ErrorData *edata)
    appendStringInfoChar(&buf, ',');
 
    /* query id */
-   appendStringInfo(&buf, "%lld", (long long) pgstat_get_my_queryid());
+   appendStringInfo(&buf, "%lld", (long long) pgstat_get_my_query_id());
 
    appendStringInfoChar(&buf, '\n');
 
index 53286bb333f9306824624f27dbb2eb0d55f496d9..afd6d76cebe8733f83b92e954dc03e0ce2fb0841 100644 (file)
@@ -39,7 +39,7 @@
 
 #define JUMBLE_SIZE                1024    /* query serialization buffer size */
 
-static uint64 compute_utility_queryid(const char *str, int query_location, int query_len);
+static uint64 compute_utility_query_id(const char *str, int query_location, int query_len);
 static void AppendJumble(JumbleState *jstate,
                         const unsigned char *item, Size size);
 static void JumbleQueryInternal(JumbleState *jstate, Query *query);
@@ -97,7 +97,7 @@ JumbleQuery(Query *query, const char *querytext)
    JumbleState *jstate = NULL;
    if (query->utilityStmt)
    {
-       query->queryId = compute_utility_queryid(querytext,
+       query->queryId = compute_utility_query_id(querytext,
                                                 query->stmt_location,
                                                 query->stmt_len);
    }
@@ -135,7 +135,7 @@ JumbleQuery(Query *query, const char *querytext)
  * Compute a query identifier for the given utility query string.
  */
 static uint64
-compute_utility_queryid(const char *query_text, int query_location, int query_len)
+compute_utility_query_id(const char *query_text, int query_location, int query_len)
 {
    uint64 queryId;
    const char *sql;
index 1c60d1a69986abcb776ba60b3d72cee4ad821adf..a185f0c313c108b49737330fc34b078cdca42b8d 100644 (file)
@@ -53,6 +53,6 @@
  */
 
 /*                         yyyymmddN */
-#define CATALOG_VERSION_NO 202104162
+#define CATALOG_VERSION_NO 202104201
 
 #endif
index b62abcd22c047a81db10b6aa158cefdbacfeb342..b1ee078a1dbc4316376d33b81d97ac2e79d7fef9 100644 (file)
   prorettype => 'record', proargtypes => 'int4',
   proallargtypes => '{int4,oid,int4,oid,text,text,text,text,text,timestamptz,timestamptz,timestamptz,timestamptz,inet,text,int4,xid,xid,text,bool,text,text,int4,text,numeric,text,bool,text,bool,int4,int8}',
   proargmodes => '{i,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}',
-  proargnames => '{pid,datid,pid,usesysid,application_name,state,query,wait_event_type,wait_event,xact_start,query_start,backend_start,state_change,client_addr,client_hostname,client_port,backend_xid,backend_xmin,backend_type,ssl,sslversion,sslcipher,sslbits,ssl_client_dn,ssl_client_serial,ssl_issuer_dn,gss_auth,gss_princ,gss_enc,leader_pid,queryid}',
+  proargnames => '{pid,datid,pid,usesysid,application_name,state,query,wait_event_type,wait_event,xact_start,query_start,backend_start,state_change,client_addr,client_hostname,client_port,backend_xid,backend_xmin,backend_type,ssl,sslversion,sslcipher,sslbits,ssl_client_dn,ssl_client_serial,ssl_issuer_dn,gss_auth,gss_princ,gss_enc,leader_pid,query_id}',
   prosrc => 'pg_stat_get_activity' },
 { oid => '3318',
   descr => 'statistics: information about progress of backends running maintenance command',
index 8e149b56ca11375703b456f85856b1ff3f94c997..0cbcc9c94355546aeb0a3d035219f404929d2029 100644 (file)
@@ -167,7 +167,7 @@ typedef struct PgBackendStatus
    int64       st_progress_param[PGSTAT_NUM_PROGRESS_PARAM];
 
    /* query identifier, optionally computed using post_parse_analyze_hook */
-   uint64      st_queryid;
+   uint64      st_query_id;
 } PgBackendStatus;
 
 
@@ -297,14 +297,14 @@ extern void pgstat_clear_backend_activity_snapshot(void);
 
 /* Activity reporting functions */
 extern void pgstat_report_activity(BackendState state, const char *cmd_str);
-extern void pgstat_report_queryid(uint64 queryId, bool force);
+extern void pgstat_report_query_id(uint64 query_id, bool force);
 extern void pgstat_report_tempfile(size_t filesize);
 extern void pgstat_report_appname(const char *appname);
 extern void pgstat_report_xact_timestamp(TimestampTz tstamp);
 extern const char *pgstat_get_backend_current_activity(int pid, bool checkUser);
 extern const char *pgstat_get_crashed_backend_activity(int pid, char *buffer,
                                                       int buflen);
-extern uint64 pgstat_get_my_queryid(void);
+extern uint64 pgstat_get_my_query_id(void);
 
 
 /* ----------
index 6399f3feef8033135459e1b58a3e0139dd0b9c37..6dff5439e00358127369e07a1b3e21178c297a64 100644 (file)
@@ -1762,10 +1762,10 @@ pg_stat_activity| SELECT s.datid,
     s.state,
     s.backend_xid,
     s.backend_xmin,
-    s.queryid,
+    s.query_id,
     s.query,
     s.backend_type
-   FROM ((pg_stat_get_activity(NULL::integer) s(datid, pid, usesysid, application_name, state, query, wait_event_type, wait_event, xact_start, query_start, backend_start, state_change, client_addr, client_hostname, client_port, backend_xid, backend_xmin, backend_type, ssl, sslversion, sslcipher, sslbits, ssl_client_dn, ssl_client_serial, ssl_issuer_dn, gss_auth, gss_princ, gss_enc, leader_pid, queryid)
+   FROM ((pg_stat_get_activity(NULL::integer) s(datid, pid, usesysid, application_name, state, query, wait_event_type, wait_event, xact_start, query_start, backend_start, state_change, client_addr, client_hostname, client_port, backend_xid, backend_xmin, backend_type, ssl, sslversion, sslcipher, sslbits, ssl_client_dn, ssl_client_serial, ssl_issuer_dn, gss_auth, gss_princ, gss_enc, leader_pid, query_id)
      LEFT JOIN pg_database d ON ((s.datid = d.oid)))
      LEFT JOIN pg_authid u ON ((s.usesysid = u.oid)));
 pg_stat_all_indexes| SELECT c.oid AS relid,
@@ -1877,7 +1877,7 @@ pg_stat_gssapi| SELECT s.pid,
     s.gss_auth AS gss_authenticated,
     s.gss_princ AS principal,
     s.gss_enc AS encrypted
-   FROM pg_stat_get_activity(NULL::integer) s(datid, pid, usesysid, application_name, state, query, wait_event_type, wait_event, xact_start, query_start, backend_start, state_change, client_addr, client_hostname, client_port, backend_xid, backend_xmin, backend_type, ssl, sslversion, sslcipher, sslbits, ssl_client_dn, ssl_client_serial, ssl_issuer_dn, gss_auth, gss_princ, gss_enc, leader_pid, queryid)
+   FROM pg_stat_get_activity(NULL::integer) s(datid, pid, usesysid, application_name, state, query, wait_event_type, wait_event, xact_start, query_start, backend_start, state_change, client_addr, client_hostname, client_port, backend_xid, backend_xmin, backend_type, ssl, sslversion, sslcipher, sslbits, ssl_client_dn, ssl_client_serial, ssl_issuer_dn, gss_auth, gss_princ, gss_enc, leader_pid, query_id)
   WHERE (s.client_port IS NOT NULL);
 pg_stat_prefetch_recovery| SELECT s.stats_reset,
     s.prefetch,
@@ -2058,7 +2058,7 @@ pg_stat_replication| SELECT s.pid,
     w.sync_priority,
     w.sync_state,
     w.reply_time
-   FROM ((pg_stat_get_activity(NULL::integer) s(datid, pid, usesysid, application_name, state, query, wait_event_type, wait_event, xact_start, query_start, backend_start, state_change, client_addr, client_hostname, client_port, backend_xid, backend_xmin, backend_type, ssl, sslversion, sslcipher, sslbits, ssl_client_dn, ssl_client_serial, ssl_issuer_dn, gss_auth, gss_princ, gss_enc, leader_pid, queryid)
+   FROM ((pg_stat_get_activity(NULL::integer) s(datid, pid, usesysid, application_name, state, query, wait_event_type, wait_event, xact_start, query_start, backend_start, state_change, client_addr, client_hostname, client_port, backend_xid, backend_xmin, backend_type, ssl, sslversion, sslcipher, sslbits, ssl_client_dn, ssl_client_serial, ssl_issuer_dn, gss_auth, gss_princ, gss_enc, leader_pid, query_id)
      JOIN pg_stat_get_wal_senders() w(pid, state, sent_lsn, write_lsn, flush_lsn, replay_lsn, write_lag, flush_lag, replay_lag, sync_priority, sync_state, reply_time) ON ((s.pid = w.pid)))
      LEFT JOIN pg_authid u ON ((s.usesysid = u.oid)));
 pg_stat_replication_slots| SELECT s.slot_name,
@@ -2090,7 +2090,7 @@ pg_stat_ssl| SELECT s.pid,
     s.ssl_client_dn AS client_dn,
     s.ssl_client_serial AS client_serial,
     s.ssl_issuer_dn AS issuer_dn
-   FROM pg_stat_get_activity(NULL::integer) s(datid, pid, usesysid, application_name, state, query, wait_event_type, wait_event, xact_start, query_start, backend_start, state_change, client_addr, client_hostname, client_port, backend_xid, backend_xmin, backend_type, ssl, sslversion, sslcipher, sslbits, ssl_client_dn, ssl_client_serial, ssl_issuer_dn, gss_auth, gss_princ, gss_enc, leader_pid, queryid)
+   FROM pg_stat_get_activity(NULL::integer) s(datid, pid, usesysid, application_name, state, query, wait_event_type, wait_event, xact_start, query_start, backend_start, state_change, client_addr, client_hostname, client_port, backend_xid, backend_xmin, backend_type, ssl, sslversion, sslcipher, sslbits, ssl_client_dn, ssl_client_serial, ssl_issuer_dn, gss_auth, gss_princ, gss_enc, leader_pid, query_id)
   WHERE (s.client_port IS NOT NULL);
 pg_stat_subscription| SELECT su.oid AS subid,
     su.subname,