Re: PGStatement#setPrepareThreshold - Mailing list pgsql-jdbc

From Bruce Momjian
Subject Re: PGStatement#setPrepareThreshold
Date
Msg-id 200608041856.k74IurK20224@momjian.us
Whole thread Raw
In response to PGStatement#setPrepareThreshold  (Csaba Nagy <nagy@ecircle-ag.com>)
Responses Re: PGStatement#setPrepareThreshold  (Dave Cramer <pg@fastcrypt.com>)
Re: PGStatement#setPrepareThreshold  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-jdbc
bruce wrote:
> Tom Lane wrote:
> > Bruce Momjian <bruce@momjian.us> writes:
> > > Dave Cramer wrote:
> > >> Bind also has a statement name, as well as a portal name ?
> > >>
> > >> Ideally I'd like to see the parameters which were bound and the
> > >> types, but I suspect I'm reaching here.
> >
> > > Right, but do we want to repeat the statement for every bind case?
> >
> > My upthread proposal was to print the statement and portal names
> > at bind time.  The current printout is very clearly inadequate.
>
> Sure, I can do that.
>
> Did you like my idea of?
>
>     statement:  <protocol execute> ...
>
> You didn't reply.  I want to keep the "statement:" prefix for scripts
> that process our log files, and because it is output by log_statement,
> which controls protocol output as well.

I have applied this patch to output the statemented referenced by BIND.
I also changed the "[protocol]" string to "<protocol>" for clarity.  I
am ready to pull PREPARE|BIND|EXECUTED into the "protocol" bracket too
if someone says that is a good idea.

--
  Bruce Momjian   bruce@momjian.us
  EnterpriseDB    http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: src/backend/tcop/postgres.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/tcop/postgres.c,v
retrieving revision 1.493
diff -c -c -r1.493 postgres.c
*** src/backend/tcop/postgres.c    29 Jul 2006 03:02:56 -0000    1.493
--- src/backend/tcop/postgres.c    4 Aug 2006 18:50:59 -0000
***************
*** 1146,1153 ****

      if (log_statement == LOGSTMT_ALL)
          ereport(LOG,
!                 (errmsg("statement: [protocol] PREPARE %s AS %s",
!                         (*stmt_name != '\0') ? stmt_name : "<unnamed>",
                          query_string)));

      /*
--- 1146,1153 ----

      if (log_statement == LOGSTMT_ALL)
          ereport(LOG,
!                 (errmsg("statement: <protocol> PREPARE %s AS %s",
!                         *stmt_name ? stmt_name : "<unnamed>",
                          query_string)));

      /*
***************
*** 1452,1458 ****
      /* We need to output the parameter values someday */
      if (log_statement == LOGSTMT_ALL)
          ereport(LOG,
!                 (errmsg("statement: [protocol] <BIND> %s", portal_name)));

      /*
       * Fetch parameters, if any, and store in the portal's memory context.
--- 1452,1460 ----
      /* We need to output the parameter values someday */
      if (log_statement == LOGSTMT_ALL)
          ereport(LOG,
!                 (errmsg("statement: <protocol> <BIND> %s  [PREPARE:  %s]",
!                         *portal_name ? portal_name : "<unnamed>",
!                         portal->sourceText ? portal->sourceText : "")));

      /*
       * Fetch parameters, if any, and store in the portal's memory context.
***************
*** 1718,1726 ****
      if (log_statement == LOGSTMT_ALL)
          /* We have the portal, so output the source query. */
          ereport(LOG,
!                 (errmsg("statement: [protocol] %sEXECUTE %s  [PREPARE:  %s]",
                          execute_is_fetch ? "FETCH from " : "",
!                         (*portal_name) ? portal_name : "<unnamed>",
                          portal->sourceText ? portal->sourceText : "")));

      BeginCommand(portal->commandTag, dest);
--- 1720,1728 ----
      if (log_statement == LOGSTMT_ALL)
          /* We have the portal, so output the source query. */
          ereport(LOG,
!                 (errmsg("statement: <protocol> %sEXECUTE %s  [PREPARE:  %s]",
                          execute_is_fetch ? "FETCH from " : "",
!                         *portal_name ? portal_name : "<unnamed>",
                          portal->sourceText ? portal->sourceText : "")));

      BeginCommand(portal->commandTag, dest);
***************
*** 1826,1836 ****
                                  secs, msecs)));
              else
                  ereport(LOG,
!                         (errmsg("duration: %ld.%03d ms  statement: [protocol] %sEXECUTE %s  [PREPARE:  %s]",
                                  secs, msecs,
                                  execute_is_fetch ? "FETCH from " : "",
!                                 (*portal_name) ? portal_name : "<unnamed>",
!                             portal->sourceText ? portal->sourceText : "")));
          }
      }

--- 1828,1838 ----
                                  secs, msecs)));
              else
                  ereport(LOG,
!                         (errmsg("duration: %ld.%03d ms  statement: <protocol> %sEXECUTE %s  [PREPARE:  %s]",
                                  secs, msecs,
                                  execute_is_fetch ? "FETCH from " : "",
!                                 *portal_name ? portal_name : "<unnamed>",
!                                 portal->sourceText ? portal->sourceText : "")));
          }
      }


pgsql-jdbc by date:

Previous
From: Kris Jurka
Date:
Subject: Re: PGStatement#setPrepareThreshold
Next
From: Tom Lane
Date:
Subject: Re: PGStatement#setPrepareThreshold