]> granicus.if.org Git - postgresql/commitdiff
This patch from Alvaro Herrera adds transaction ID to the list of
authorNeil Conway <neilc@samurai.com>
Wed, 22 Sep 2004 03:55:27 +0000 (03:55 +0000)
committerNeil Conway <neilc@samurai.com>
Wed, 22 Sep 2004 03:55:27 +0000 (03:55 +0000)
log_line_prefix escapes. The escape sequence used for this is %x.
%x previously meant "postmaster et al. stop here" -- this has been
renamed to %q.

doc/src/sgml/runtime.sgml
src/backend/utils/error/elog.c
src/backend/utils/misc/postgresql.conf.sample

index 2ca5e38018ae839ed98f89592a2aaa0032c6113a..831bd1accec4fc70fa19dbfeb4be056b7dd118e9 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.281 2004/09/17 22:40:46 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.282 2004/09/22 03:55:24 neilc Exp $
 -->
 
 <Chapter Id="runtime">
@@ -2394,6 +2394,11 @@ archive_command = 'copy "%p" /mnt/server/archivedir/"%f"'  # Win32
             </row>
             <row>
              <entry><literal>%x</literal></entry>
+             <entry>Transaction ID</entry>
+             <entry>Yes</entry>
+            </row>
+            <row>
+             <entry><literal>%q</literal></entry>
              <entry>Does not produce any output, but tells non-session
              processes to stop at this point in the string. Ignored by
              session processes.</entry>
index ded96313c330cd71c8ba229a88fca2bb56be32d4..20ff94d7dda35654bf243f4ea54721744fc91f29 100644 (file)
@@ -42,7 +42,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.150 2004/09/05 03:42:11 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.151 2004/09/22 03:55:26 neilc Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1421,12 +1421,21 @@ log_line_prefix(StringInfo buf)
                                                                                 MyProcPort->remote_port);
                                }
                                break;
-                       case 'x':
-                               /* in postmaster and friends, stop if %x is seen */
+                       case 'q':
+                               /* in postmaster and friends, stop if %q is seen */
                                /* in a backend, just ignore */
                                if (MyProcPort == NULL)
                                        i = format_len;
                                break;
+                       case 'x':
+                               if (MyProcPort)
+                               {
+                                       if (IsTransactionState())
+                                               appendStringInfo(buf, "%u", GetTopTransactionId());
+                                       else
+                                               appendStringInfo(buf, "%u", InvalidTransactionId);
+                               }
+                               break;
                        case '%':
                                appendStringInfoChar(buf, '%');
                                break;
index 749fa19beb0a8c6f2b6a613c4c78afe37a4830bd..5f83db9bd3998388274c9df1515f69b01e454491 100644 (file)
                                # %r=remote host and port
                                # %p=PID %t=timestamp %i=command tag
                                # %c=session id %l=session line number
-                               # %s=session start timestamp
-                               # %x=stop here in non-session processes
+                               # %s=session start timestamp %x=transaction id
+                               # %q=stop here in non-session processes
                                # %%='%'
 #log_statement = 'none'                # none, mod, ddl, all
 #log_hostname = false