Re: Log_statement behaviour a little misleading? - Mailing list pgsql-general

From Bruce Momjian
Subject Re: Log_statement behaviour a little misleading?
Date
Msg-id 200401250035.i0P0Zh102892@candle.pha.pa.us
Whole thread Raw
In response to Re: Log_statement behaviour a little misleading?  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Tom Lane wrote:
> Mark Kirkwood <markir@paradise.net.nz> writes:
> > So setting "log_statement=true" does all *statements* - but not all
> > *executions* of each statement. Is this the intention?
>
> AFAIK this is an implementation artifact that's never really been
> discussed.  Another aspect of the artifact is that SQL commands
> appearing in plpgsql functions will be logged only on first execution
> in a session.
>
> I think you could make a fair argument that "log_statement" ought to log
> only commands received from the client application.  There would be real
> value in being able to trace execution of plpgsql functions, but such a
> feature would have very little to do with log_statement as it now
> stands.  The fact that RI triggers issue SQL commands is an artifact of
> their implementation (and one that I believe Stephan and Jan would like
> to get rid of); they shouldn't be cluttering the log at all.
>
> At least that's what it seems like to me after a few moments'
> reflection.  Other opinions out there?

I checked prepared queries and it looks like this:

    LOG:  statement: prepare xx as select 1;
    LOG:  statement: execute xx;

which seems OK by me.  I have updated the docs to mention the behavior
mentioned above for PREPARE and PL/pgSQL.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
Index: doc/src/sgml/runtime.sgml
===================================================================
RCS file: /cvsroot/pgsql-server/doc/src/sgml/runtime.sgml,v
retrieving revision 1.232
diff -c -c -r1.232 runtime.sgml
*** doc/src/sgml/runtime.sgml    23 Jan 2004 23:54:20 -0000    1.232
--- doc/src/sgml/runtime.sgml    25 Jan 2004 00:32:55 -0000
***************
*** 1822,1829 ****
        <listitem>
         <para>
          Causes each SQL statement to be logged. The default is off.
!         Only superusers can turn off this option if it is enabled by
!         the administrator.
         </para>
        </listitem>
       </varlistentry>
--- 1822,1832 ----
        <listitem>
         <para>
          Causes each SQL statement to be logged. The default is off.
!         <command>EXECUTE</> only displays the plan name, not the
!         prepared query. Server-side languages like
!         <application>PL/pgSQL</> that store functions in a cache only
!         display their queries on first function call. superusers can
!         turn off this option if it is enabled by the administrator.
         </para>
        </listitem>
       </varlistentry>

pgsql-general by date:

Previous
From: "Lee Harr"
Date:
Subject: Re: pl/pgsql docs 37.4.3. Row Types -- how do I use this function?
Next
From: Bruce Momjian
Date:
Subject: Re: Mailing list? was Postgress and MYSQL