* 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;
*
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
*/
* 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;
*
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 */
-/* $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;
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'
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');
-- 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');
-/* $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);
-
+
dblink
-
-
- 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
-
+
Functions and Operators
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
*
*
* 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 $
*
*-------------------------------------------------------------------------
*/
#include "storage/pmsignal.h"
#include "storage/procarray.h"
#include "utils/builtins.h"
+#include "tcop/tcopprot.h"
#define atooid(x) ((Oid) strtoul((x), NULL, 10))
}
+/*
+ * 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.
*/
* 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
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");
* 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 $
*
*-------------------------------------------------------------------------
*/
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);