From 6a25c6e1d1036db1162f3137bfc8213ecd7446a4 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Wed, 7 Apr 2004 05:05:50 +0000 Subject: > >>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. --- doc/src/sgml/runtime.sgml | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'doc/src') 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 @@ @@ -2121,12 +2121,21 @@ SET ENABLE_SEQSCAN TO OFF; - log_statement (boolean) - - - 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. + log_statement (string) + + + Controls which SQL statement are logged. Valid values are + all, ddl, mod, and + none. ddl logs all data definition + commands like CREATE, ALTER, and + DROP commands. mod logs all + ddl statements, plus INSERT, + UPDATE, DELETE, TRUNCATE, + and COPY FROM. PREPARE and + EXPLAIN ANALYZE statements are also considered for + appropriate commands. The default is none. Only + superusers can reduce the detail of this option if it has been + set by an administrator. -- cgit v1.2.3