Bruce Momjian wrote:

I think it is more verbose because no FETCH is logged in this type of
prepare/execute.  The goal, I think, is for these type of queries to
look as similar to normal PREPARE/EXECUTE and DECLARE/FETCH as possible.

I do not understand why this is a useful thing to do as part of log_statement.

My point is that given JDBC code like this:

  Statement s = connection.createStatement();
  ResultSet rs = s.executeQuery("SELECT * FROM pg_proc");
  while (rs.next()) {
     // Process results
  }

it seems that the least surprising thing to get logged is simply "SELECT * FROM pg_proc".

I don't see how logging a synthetic PREPARE/EXECUTE/FETCH sequence (and DECLARE, now?) is useful. They're not necessarily syntactically correct, and they're certainly not queries that were actually sent to the backend. I thought log_statement was meant to answer the question "what queries were submitted to the backend?", rather than to provide a trace of protocol-level activity..

-O

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

Reply via email to