aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2004-04-07 05:05:50 +0000
committerBruce Momjian <bruce@momjian.us>2004-04-07 05:05:50 +0000
commit6a25c6e1d1036db1162f3137bfc8213ecd7446a4 (patch)
treeaa10ef836d9d8596bf52cf7d214eae512d464556 /doc/src
parente5170860eeaf28802375d0e1d51689b491958571 (diff)
downloadpostgresql-6a25c6e1d1036db1162f3137bfc8213ecd7446a4.tar.gz
postgresql-6a25c6e1d1036db1162f3137bfc8213ecd7446a4.zip
> >>1. change the type of "log_statement" option from boolean to string,
> >>with allowed values of "all, mod, ddl, none" with default "none". OK, here is a patch that implements #1. Here is sample output: test=> set client_min_messages = 'log'; SET test=> set log_statement = 'mod'; SET test=> select 1; ?column? ---------- 1 (1 row) test=> update test set x=1; LOG: statement: update test set x=1; ERROR: relation "test" does not exist test=> update test set x=1; LOG: statement: update test set x=1; ERROR: relation "test" does not exist test=> copy test from '/tmp/x'; LOG: statement: copy test from '/tmp/x'; ERROR: relation "test" does not exist test=> copy test to '/tmp/x'; ERROR: relation "test" does not exist test=> prepare xx as select 1; PREPARE test=> prepare xx as update x set y=1; LOG: statement: prepare xx as update x set y=1; ERROR: relation "x" does not exist test=> explain analyze select 1;; QUERY PLAN ------------------------------------------------------------------------------------ Result (cost=0.00..0.01 rows=1 width=0) (actual time=0.006..0.007 rows=1 loops=1) Total runtime: 0.046 ms (2 rows) test=> explain analyze update test set x=1; LOG: statement: explain analyze update test set x=1; ERROR: relation "test" does not exist test=> explain update test set x=1; ERROR: relation "test" does not exist It checks PREPARE and EXECUTE ANALYZE too. The log_statement values are 'none', 'mod', 'ddl', and 'all'. For 'all', it prints before the query is parsed, and for ddl/mod, it does it right after parsing using the node tag (or command tag for CREATE/ALTER/DROP), so any non-parse errors will print after the log line.
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/runtime.sgml23
1 files changed, 16 insertions, 7 deletions
diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml
index f23772b8da7..bf9caac2aee 100644
--- a/doc/src/sgml/runtime.sgml
+++ b/doc/src/sgml/runtime.sgml
@@ -1,5 +1,5 @@
<!--
-$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.257 2004/04/05 03:02:03 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.258 2004/04/07 05:05:49 momjian Exp $
-->
<Chapter Id="runtime">
@@ -2121,12 +2121,21 @@ SET ENABLE_SEQSCAN TO OFF;
</varlistentry>
<varlistentry id="guc-log-statement" xreflabel="log_statement">
- <term><varname>log_statement</varname> (<type>boolean</type>)</term>
- <listitem>
- <para>
- Causes each SQL statement to be logged. The default is
- off. Only superusers can disable this option if it has been
- enabled by an administrator.
+ <term><varname>log_statement</varname> (<type>string</type>)</term>
+ <listitem>
+ <para>
+ Controls which SQL statement are logged. Valid values are
+ <literal>all</>, <literal>ddl</>, <literal>mod</>, and
+ <literal>none</>. <literal>ddl</> logs all data definition
+ commands like <literal>CREATE</>, <literal>ALTER</>, and
+ <literal>DROP</> commands. <literal>mod</> logs all
+ <literal>ddl</> statements, plus <literal>INSERT</>,
+ <literal>UPDATE</>, <literal>DELETE</>, <literal>TRUNCATE</>,
+ and <literal>COPY FROM</>. <literal>PREPARE</> and
+ <literal>EXPLAIN ANALYZE</> statements are also considered for
+ appropriate commands. The default is <literal>none</>. Only
+ superusers can reduce the detail of this option if it has been
+ set by an administrator.
</para>
<note>