Skip site navigation (1) Skip section navigation (2)

Re: DDL & DML Logging doesn't work for calling functions

From: MURAT KOÇ <m(dot)koc21(at)gmail(dot)com>
To: Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at>, pgsql-general(at)postgresql(dot)org
Subject: Re: DDL & DML Logging doesn't work for calling functions
Date: 2011-11-30 11:17:50
Message-ID: CAA4y46zqRWOjRVXZgEPvUQ_6MJfaCebft=txDBO5D=eYPuBR6Q@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-general
Thanks for reply.

If we set log_statement='all', all of sql statements will be logged and log
file will grow up immediately (also including unnecessary sql statements).

We don't want all sql statements to be logged, so we continue logging
settings as my previous sending (log_statement = 'mod').

Regards,
Murat KOC

2011/11/30 Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at>

> MURAT KOÇ wrote:
> > Version is PostgreSQL 9.0.4 on x86_64-unknown-linux-gnu, compiled by GCC
> gcc (GCC) 4.1.2 20080704 (Red
> > Hat 4.1.2-51), 64-bit.
> >
> > We set logging parameters as below for DDL & DML Logging:
> > logging_collector = on
> > log_statement = mod
> > log_line_prefix = '%t--%d--%u--%h--%a--%i--%e'
>
> > Logging works successfully while we run direct DML commands like
> "insert, update, delete".
> >
> > But, when I call a function that does DML, logging doesn't work and
> server log file has no information
> > about calling function.
> >
> > I call function like this: SELECT p_dummy_insert();
> >
> > ###This is sample insert function###
> > CREATE OR REPLACE FUNCTION p_dummy_insert ()
> >   RETURNS void AS
> > $BODY$
> > BEGIN
> >  INSERT INTO employee values ('dummy', 'test');
> > END$BODY$
> >   LANGUAGE plpgsql VOLATILE
> >   COST 100;
> >
> > "Not logging of function calls" is expected behavior or a bug? We have
> no information on server logs
> > about who called function or when was it called or what did called
> function do?
>
> The function call itself is logged, but SQL statements inside
> the function are not.
>
> The function call does not show up in your log because it is
> in a SELECT statement.
>
> Set log_statement = 'all' to log the function call.
>
> Yours,
> Laurenz Albe
>

In response to

Responses

pgsql-general by date

Next:From: Eduardo MorrasDate: 2011-11-30 11:33:57
Subject: Re: odbc_fdw
Previous:From: Albe LaurenzDate: 2011-11-30 11:01:05
Subject: Re: odbc_fdw

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group