On Thu, 19 Jun 2008, Tom Lane <tgl@xxxxxxxxxxxxx> 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.