Implement current_query(), that shows the currently executing query.
authorBruce Momjian
Fri, 4 Apr 2008 16:57:21 +0000 (16:57 +0000)
committerBruce Momjian
Fri, 4 Apr 2008 16:57:21 +0000 (16:57 +0000)
At the same time remove dblink/dblink_current_query() as it is no longer
necessary
*BACKWARD COMPATIBILITY ISSUE* for dblink

Tomas Doran

contrib/dblink/dblink.c
contrib/dblink/dblink.h
contrib/dblink/dblink.sql.in
contrib/dblink/expected/dblink.out
contrib/dblink/sql/dblink.sql
contrib/dblink/uninstall_dblink.sql
doc/src/sgml/dblink.sgml
doc/src/sgml/func.sgml
src/backend/utils/adt/misc.c
src/include/catalog/pg_proc.h
src/include/utils/builtins.h

index f0d3d23a6e6ac59b1affd8625e5a4cc1b45bee4d..06a205599c42f7a5990d54da3d89e2a2ec4275fb 100644 (file)
@@ -8,7 +8,7 @@
  * Darko Prenosil 
  * Shridhar Daithankar 
  *
- * $PostgreSQL: pgsql/contrib/dblink/dblink.c,v 1.71 2008/03/26 21:10:36 alvherre Exp $
+ * $PostgreSQL: pgsql/contrib/dblink/dblink.c,v 1.72 2008/04/04 16:57:21 momjian Exp $
  * Copyright (c) 2001-2008, PostgreSQL Global Development Group
  * ALL RIGHTS RESERVED;
  *
@@ -1631,23 +1631,6 @@ dblink_build_sql_update(PG_FUNCTION_ARGS)
    PG_RETURN_TEXT_P(cstring_to_text(sql));
 }
 
-/*
- * dblink_current_query
- * return the current query string
- * to allow its use in (among other things)
- * rewrite rules
- */
-PG_FUNCTION_INFO_V1(dblink_current_query);
-Datum
-dblink_current_query(PG_FUNCTION_ARGS)
-{
-   if (debug_query_string)
-       PG_RETURN_TEXT_P(cstring_to_text(debug_query_string));
-   else
-       PG_RETURN_NULL();
-}
-
-
 /*************************************************************
  * internal functions
  */
index 7c9fbb9dc623d7b6a4b554c21f5cfd4ec4c19c22..560eb72f795c1a8b227f1f2dfa846232468a80da 100644 (file)
@@ -8,7 +8,7 @@
  * Darko Prenosil 
  * Shridhar Daithankar 
  *
- * $PostgreSQL: pgsql/contrib/dblink/dblink.h,v 1.19 2008/01/01 19:45:45 momjian Exp $
+ * $PostgreSQL: pgsql/contrib/dblink/dblink.h,v 1.20 2008/04/04 16:57:21 momjian Exp $
  * Copyright (c) 2001-2008, PostgreSQL Global Development Group
  * ALL RIGHTS RESERVED;
  *
@@ -56,6 +56,5 @@ extern Datum dblink_get_pkey(PG_FUNCTION_ARGS);
 extern Datum dblink_build_sql_insert(PG_FUNCTION_ARGS);
 extern Datum dblink_build_sql_delete(PG_FUNCTION_ARGS);
 extern Datum dblink_build_sql_update(PG_FUNCTION_ARGS);
-extern Datum dblink_current_query(PG_FUNCTION_ARGS);
 
 #endif   /* DBLINK_H */
index ee7e385b7526d79e4bb94b23f939c109caeaad54..a73b630c5d1bafd1459291b2b9791da611f86e73 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/contrib/dblink/dblink.sql.in,v 1.14 2007/11/13 04:24:27 momjian Exp $ */
+/* $PostgreSQL: pgsql/contrib/dblink/dblink.sql.in,v 1.15 2008/04/04 16:57:21 momjian Exp $ */
 
 -- Adjust this setting to control where the objects get created.
 SET search_path = public;
@@ -163,11 +163,6 @@ RETURNS text
 AS 'MODULE_PATHNAME','dblink_build_sql_update'
 LANGUAGE C STRICT;
 
-CREATE OR REPLACE FUNCTION dblink_current_query ()
-RETURNS text
-AS 'MODULE_PATHNAME','dblink_current_query'
-LANGUAGE C;
-
 CREATE OR REPLACE FUNCTION dblink_send_query(text, text)
 RETURNS int4
 AS 'MODULE_PATHNAME', 'dblink_send_query'
index fd35d76af9672cf22db450c34e551064d6b8b109..ec5284daf4856ea522fbb203f88e0188ca44f0b1 100644 (file)
@@ -22,13 +22,6 @@ INSERT INTO foo VALUES (7,'h','{"a7","b7","c7"}');
 INSERT INTO foo VALUES (8,'i','{"a8","b8","c8"}');
 INSERT INTO foo VALUES (9,'j','{"a9","b9","c9"}');
 -- misc utilities
--- show the currently executing query
-SELECT 'hello' AS hello, dblink_current_query() AS query;
- hello |                           query                           
--------+-----------------------------------------------------------
- hello | SELECT 'hello' AS hello, dblink_current_query() AS query;
-(1 row)
-
 -- list the primary key fields
 SELECT *
 FROM dblink_get_pkey('foo');
index 48e1daca54d2b800ba97dd8dbc637319b89b9d6d..1d5f962db8421b0001c72c67264bffe65f95357a 100644 (file)
@@ -27,9 +27,6 @@ INSERT INTO foo VALUES (9,'j','{"a9","b9","c9"}');
 
 -- misc utilities
 
--- show the currently executing query
-SELECT 'hello' AS hello, dblink_current_query() AS query;
-
 -- list the primary key fields
 SELECT *
 FROM dblink_get_pkey('foo');
index da5116e7f1845cdd36a2ab7d4c2df32af1afcc63..bcaea9ae9fe665dc65807e83640a470648835147 100644 (file)
@@ -1,10 +1,8 @@
-/* $PostgreSQL: pgsql/contrib/dblink/uninstall_dblink.sql,v 1.5 2007/11/13 04:24:27 momjian Exp $ */
+/* $PostgreSQL: pgsql/contrib/dblink/uninstall_dblink.sql,v 1.6 2008/04/04 16:57:21 momjian Exp $ */
 
 -- Adjust this setting to control where the objects get dropped.
 SET search_path = public;
 
-DROP FUNCTION dblink_current_query ();
-
 DROP FUNCTION dblink_build_sql_update (text, int2vector, int4, _text, _text);
 
 DROP FUNCTION dblink_build_sql_delete (text, int2vector, int4, _text);
index b7195c683d1c5b12b85a5ca446c627e7bfe32d71..dd0ea3ca2ba92770e94ce12f56c9085f4171c3a4 100644 (file)
@@ -1,4 +1,4 @@
-
+
 
 
  dblink
@@ -1346,49 +1346,6 @@ SELECT *
   
  
 
-  
-   dblink_current_query
-   returns the current query string
-  
-
-  
-   
-    dblink_current_query() returns text
-   
-  
-
-  
-   Description
-
-   
-    Returns the currently executing interactive command string of the
-    local database session, or NULL if it can't be determined.  Note
-    that this function is not really related to dblink's
-    other functionality.  It is provided since it is sometimes useful
-    in generating queries to be forwarded to remote databases.
-   
-  
-
-  
-   Return Value
-
-   Returns a copy of the currently executing query string.
-  
-
-  
-   Example
-
-   
-test=# select dblink_current_query();
-      dblink_current_query
---------------------------------
- select dblink_current_query();
-(1 row)
-   
-  
-
  
   
    dblink_get_pkey
index 499faa0c92d57fe786e11602e3f098d8f98f013e..1fa0fc6c2a3fa3ad0f09d7222d59ebfbd649f1fe 100644 (file)
@@ -1,4 +1,4 @@
-
+
 
  
   Functions and Operators
@@ -10724,6 +10724,12 @@ select current_date + s.a as dates from generate_series(0,14,7) as s(a);
        user name of current execution context
       
 
+      
+       current_query
+       text
+       text of the currently executing query (might contain more than one statement)
+        
+
       
        inet_client_addr()
        inet
index 63d7c4ff589e2b847dfa39db856568aa7e97446a..f7aaec12f0ef3d8fd11b886c2ce383f27eb6e96a 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/misc.c,v 1.58 2008/01/01 19:45:52 momjian Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/misc.c,v 1.59 2008/04/04 16:57:21 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -29,6 +29,7 @@
 #include "storage/pmsignal.h"
 #include "storage/procarray.h"
 #include "utils/builtins.h"
+#include "tcop/tcopprot.h"
 
 #define atooid(x)  ((Oid) strtoul((x), NULL, 10))
 
@@ -71,6 +72,19 @@ current_database(PG_FUNCTION_ARGS)
 }
 
 
+/*
+ * current_query()
+ *  Expose the current query to the user (useful in stored procedures)
+ */
+Datum
+current_query(PG_FUNCTION_ARGS)
+{
+   if (debug_query_string)
+       PG_RETURN_TEXT_P(cstring_to_text(debug_query_string));
+   else
+       PG_RETURN_NULL();
+}
+
 /*
  * Functions to send signals to other backends.
  */
index d4d7cb5b91726e8b673a0914ad31e57cc9d4a237..fba36a018d312ec249ce40bff99f13b118924436 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.485 2008/03/27 03:57:34 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.486 2008/04/04 16:57:21 momjian Exp $
  *
  * NOTES
  *   The script catalog/genbki.sh reads this file and generates .bki
@@ -1117,6 +1117,8 @@ DESCR("convert char to char()");
 
 DATA(insert OID = 861 ( current_database      PGNSP PGUID 12 1 0 f f t f i 0 19 "" _null_ _null_ _null_ current_database - _null_ _null_ ));
 DESCR("returns the current database");
+DATA(insert OID = 817 (  current_query        PGNSP PGUID 12 1 0 f f f f v 0 25  "" _null_ _null_ _null_  current_query - _null_ _null_ ));
+DESCR("returns the currently executing query");
 
 DATA(insert OID =  862 (  int4_mul_cash           PGNSP PGUID 12 1 0 f f t f i 2 790 "23 790" _null_ _null_ _null_ int4_mul_cash - _null_ _null_ ));
 DESCR("multiply");
index f719b492c145636026fb4220be35fd478a4d526d..f80802f9bffdf0875cdb171a7bbc678a201ee5e9 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/utils/builtins.h,v 1.310 2008/03/25 22:42:45 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/builtins.h,v 1.311 2008/04/04 16:57:21 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -414,6 +414,7 @@ extern Datum pg_ls_dir(PG_FUNCTION_ARGS);
 extern Datum nullvalue(PG_FUNCTION_ARGS);
 extern Datum nonnullvalue(PG_FUNCTION_ARGS);
 extern Datum current_database(PG_FUNCTION_ARGS);
+extern Datum current_query(PG_FUNCTION_ARGS);
 extern Datum pg_cancel_backend(PG_FUNCTION_ARGS);
 extern Datum pg_reload_conf(PG_FUNCTION_ARGS);
 extern Datum pg_tablespace_databases(PG_FUNCTION_ARGS);