Tom Lane wrote:
> Bruce Momjian <br...@momjian.us> writes:
> > Tom Lane wrote:
> >> We should take a second look at the usage of debug_query_string,
> >> particularly the recently added current_query() SQL function.
> 
> > I looked at the use of 'debug_query_string';  I didn't see how
> > current_query() could access the more concise query string that is
> > stored in various structures (comment added);  it works now by accessing
> > the global variable 'debug_query_string'.
> 
> The alternative I was envisioning was to have it look at the
> ActivePortal's query string.  However, if you prefer to define the
> function as returning the current client query, it's fine as-is.
> We should make sure the documentation explains it like that however.

Oh, I certainly didn't like current_query() using 'debug_query_string'.

Now that you told me about ActivePortal I have used that and it seems to
work fine.  Patch attached and applied; documentation updated.

-- 
  Bruce Momjian  <br...@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: doc/src/sgml/func.sgml
===================================================================
RCS file: /cvsroot/pgsql/doc/src/sgml/func.sgml,v
retrieving revision 1.465
diff -c -c -r1.465 func.sgml
*** doc/src/sgml/func.sgml	31 Dec 2008 00:08:33 -0000	1.465
--- doc/src/sgml/func.sgml	7 Jan 2009 21:04:02 -0000
***************
*** 11343,11349 ****
        <row>
         <entry><literal><function>current_query</function></literal></entry>
         <entry><type>text</type></entry>
!        <entry>text of the currently executing query (might contain more than one statement)</entry>
        </row>  
  
        <row>
--- 11343,11350 ----
        <row>
         <entry><literal><function>current_query</function></literal></entry>
         <entry><type>text</type></entry>
!        <entry>text of the currently executing query (might match
!          client-supplied query or be internal query string)</entry>
        </row>  
  
        <row>
Index: src/backend/utils/adt/misc.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/utils/adt/misc.c,v
retrieving revision 1.68
diff -c -c -r1.68 misc.c
*** src/backend/utils/adt/misc.c	7 Jan 2009 19:51:21 -0000	1.68
--- src/backend/utils/adt/misc.c	7 Jan 2009 21:04:02 -0000
***************
*** 31,36 ****
--- 31,37 ----
  #include "storage/pmsignal.h"
  #include "storage/procarray.h"
  #include "utils/builtins.h"
+ #include "tcop/pquery.h"
  #include "tcop/tcopprot.h"
  
  #define atooid(x)  ((Oid) strtoul((x), NULL, 10))
***************
*** 59,69 ****
  Datum
  current_query(PG_FUNCTION_ARGS)
  {
! 	/* there is no easy way to access the more concise 'query_string' */
! 	if (debug_query_string)
! 		PG_RETURN_TEXT_P(cstring_to_text(debug_query_string));
! 	else
! 		PG_RETURN_NULL();
  }
  
  /*
--- 60,66 ----
  Datum
  current_query(PG_FUNCTION_ARGS)
  {
! 	PG_RETURN_TEXT_P(cstring_to_text(ActivePortal->sourceText));
  }
  
  /*
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to