adjust query id feature to use pg_stat_activity.query_id
authorBruce Momjian <bruce@momjian.us>
Tue, 20 Apr 2021 16:22:26 +0000 (12:22 -0400)
committerBruce Momjian <bruce@momjian.us>
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.GA7498@alvherre.pgsql

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
 
     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
-      <structfield>queryid</structfield> <type>bigint</type>
+      <structfield>query_id</structfield> <type>bigint</type>
      </para>
      <para>
       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,