Tom Lane wrote: > Mark Kirkwood <[EMAIL PROTECTED]> 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 [EMAIL PROTECTED] | (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>
---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match