aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2021-04-20 12:57:59 -0400
committerBruce Momjian <bruce@momjian.us>2021-04-20 12:57:59 -0400
commitdb01f797dd48f826c62e1b8eea70f11fe7ff3efc (patch)
tree27d7fee01e588057811570e3f67832ce9c0e4d0b
parent9660834dd8bf5b093f7b49eef846666201d45a35 (diff)
downloadpostgresql-db01f797dd48f826c62e1b8eea70f11fe7ff3efc.tar.gz
postgresql-db01f797dd48f826c62e1b8eea70f11fe7ff3efc.zip
Fix interaction of log_line_prefix's query_id and log_statement
log_statement is issued before query_id can be computed, so properly clear the value, and document the interaction. Reported-by: Fujii Masao, Michael Paquier Discussion: https://postgr.es/m/YHPkU8hFi4no4NSw@paquier.xyz Author: Julien Rouhaud
-rw-r--r--doc/src/sgml/config.sgml10
-rw-r--r--src/backend/utils/activity/backend_status.c1
2 files changed, 11 insertions, 0 deletions
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 776ab1a8c8b..dd7ebe7a9da 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -7139,6 +7139,16 @@ log_line_prefix = '%m [%p] %q%u@%d/%a '
</programlisting>
</para>
</tip>
+
+ <note>
+ <para>
+ The <literal>%Q</literal> escape always reports a zero identifier
+ for lines output by <xref linkend="guc-log-statement"/> because
+ <varname>log_statement</varname> generates output before an
+ identifier can be calculated, including invalid statements for
+ which an identifier cannot be calculated.
+ </para>
+ </note>
</listitem>
</varlistentry>
diff --git a/src/backend/utils/activity/backend_status.c b/src/backend/utils/activity/backend_status.c
index 787f062f9c3..a3681011030 100644
--- a/src/backend/utils/activity/backend_status.c
+++ b/src/backend/utils/activity/backend_status.c
@@ -398,6 +398,7 @@ pgstat_bestart(void)
lbeentry.st_state = STATE_UNDEFINED;
lbeentry.st_progress_command = PROGRESS_COMMAND_INVALID;
lbeentry.st_progress_command_target = InvalidOid;
+ lbeentry.st_query_id = UINT64CONST(0);
/*
* we don't zero st_progress_param here to save cycles; nobody should