On Thu, 19 Jun 2008, Tom Lane <tgl@sss.pgh.pa.us> writes:
> What PG version are you using? Since 8.2 log_duration should show
> parameter values.
I don't want to interrupt your work, but as far as I see from logs --
with the configurations I sent previously -- PostgreSQL doesn't log
parameter values for queries dropped into query duration limit. (Using
PostgreSQL 8.3.1.) Consider this test case:
test# PREPARE foo (int) AS
] SELECT S.i * T.i
] FROM generate_series(1, $1) AS S(i),
] generate_series(1, $1) AS T(i);
test# EXECUTE foo (1000);
...
# tail -n 2 /srv/pg/pg_log/2008-06-19_141725.log
migration_test postgres 2008-06-19 17:58:05.185 EEST LOG: duration: 2315.420 ms statement: EXECUTE foo(1000);
migration_test postgres 2008-06-19 17:58:05.185 EEST DETAIL: prepare: PREPARE foo (int) AS SELECT S.i * T.i FROM
generate_series(1,$1) AS S(i), generate_series(1, $1) AS T(i);
> As for the other, you'd have to turn on log_statements so that the
> parameters get logged in advance of the failure. Once the transaction
> has failed we can't call user-defined output functions, since they
> might try to do things that don't work inside a failed transaction.
I see.
Regards.