CVSROOT:        /cvsroot
Module name:    pgsql-server
Changes by:     [EMAIL PROTECTED]       04/04/07 02:05:50

Modified files:
        doc/src/sgml   : runtime.sgml 
        src/backend/tcop: postgres.c 
        src/backend/utils/misc: guc.c postgresql.conf.sample 
        src/include/tcop: tcopprot.h 
        src/include/utils: guc.h 

Log message:
        > >>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.


---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to