mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
6f7fc0bade
unlike template0 and template1 does not have any special status in terms of backend functionality. However, all external utilities such as createuser and createdb now connect to "postgres" instead of template1, and the documentation is changed to encourage people to use "postgres" instead of template1 as a play area. This should fix some longstanding gotchas involving unexpected propagation of database objects by createdb (when you used template1 without understanding the implications), as well as ameliorating the problem that CREATE DATABASE is unhappy if anyone else is connected to template1. Patch by Dave Page, minor editing by Tom Lane. All per recent pghackers discussions.
141 lines
4.1 KiB
Plaintext
141 lines
4.1 KiB
Plaintext
==================================================================
|
|
Name
|
|
|
|
dblink_current_query -- returns the current query string
|
|
|
|
Synopsis
|
|
|
|
dblink_current_query () RETURNS text
|
|
|
|
Inputs
|
|
|
|
None
|
|
|
|
Outputs
|
|
|
|
Returns text -- a copy of the currently executing query
|
|
|
|
Example usage
|
|
|
|
test=# select dblink_current_query() from (select dblink('dbname=postgres','select oid, proname from pg_proc where proname = ''byteacat''') as f1) as t1;
|
|
dblink_current_query
|
|
-----------------------------------------------------------------------------------------------------------------------------------------------------
|
|
select dblink_current_query() from (select dblink('dbname=postgres','select oid, proname from pg_proc where proname = ''byteacat''') as f1) as t1;
|
|
(1 row)
|
|
|
|
==================================================================
|
|
Name
|
|
|
|
dblink_get_pkey -- returns the position and field names of a relation's
|
|
primary key fields
|
|
|
|
Synopsis
|
|
|
|
dblink_get_pkey(text relname) RETURNS setof dblink_pkey_results
|
|
|
|
Inputs
|
|
|
|
relname
|
|
|
|
any relation name;
|
|
e.g. 'foobar'
|
|
|
|
Outputs
|
|
|
|
Returns setof dblink_pkey_results -- one row for each primary key field,
|
|
in order of position in the key. dblink_pkey_results is defined as follows:
|
|
CREATE TYPE dblink_pkey_results AS (position int4, colname text);
|
|
|
|
Example usage
|
|
|
|
test=# select * from dblink_get_pkey('foobar');
|
|
position | colname
|
|
----------+---------
|
|
1 | f1
|
|
2 | f2
|
|
3 | f3
|
|
4 | f4
|
|
5 | f5
|
|
|
|
==================================================================
|
|
Name
|
|
|
|
dblink_build_sql_insert -- builds an insert statement using a local
|
|
tuple, replacing the selection key field
|
|
values with alternate supplied values
|
|
dblink_build_sql_delete -- builds a delete statement using supplied
|
|
values for selection key field values
|
|
dblink_build_sql_update -- builds an update statement using a local
|
|
tuple, replacing the selection key field
|
|
values with alternate supplied values
|
|
|
|
|
|
Synopsis
|
|
|
|
dblink_build_sql_insert(text relname
|
|
,int2vector primary_key_attnums
|
|
,int2 num_primary_key_atts
|
|
,_text src_pk_att_vals_array
|
|
,_text tgt_pk_att_vals_array) RETURNS text
|
|
dblink_build_sql_delete(text relname
|
|
,int2vector primary_key_attnums
|
|
,int2 num_primary_key_atts
|
|
,_text tgt_pk_att_vals_array) RETURNS text
|
|
dblink_build_sql_update(text relname
|
|
,int2vector primary_key_attnums
|
|
,int2 num_primary_key_atts
|
|
,_text src_pk_att_vals_array
|
|
,_text tgt_pk_att_vals_array) RETURNS text
|
|
|
|
Inputs
|
|
|
|
relname
|
|
|
|
any relation name;
|
|
e.g. 'foobar'
|
|
|
|
primary_key_attnums
|
|
|
|
vector of primary key attnums (1 based, see pg_index.indkey);
|
|
e.g. '1 2'
|
|
|
|
num_primary_key_atts
|
|
|
|
number of primary key attnums in the vector; e.g. 2
|
|
|
|
src_pk_att_vals_array
|
|
|
|
array of primary key values, used to look up the local matching
|
|
tuple, the values of which are then used to construct the SQL
|
|
statement
|
|
|
|
tgt_pk_att_vals_array
|
|
|
|
array of primary key values, used to replace the local tuple
|
|
values in the SQL statement
|
|
|
|
Outputs
|
|
|
|
Returns text -- requested SQL statement
|
|
|
|
Example usage
|
|
|
|
test=# select dblink_build_sql_insert('foo','1 2',2,'{"1", "a"}','{"1", "b''a"}');
|
|
dblink_build_sql_insert
|
|
--------------------------------------------------
|
|
INSERT INTO foo(f1,f2,f3) VALUES('1','b''a','1')
|
|
(1 row)
|
|
|
|
test=# select dblink_build_sql_delete('MyFoo','1 2',2,'{"1", "b"}');
|
|
dblink_build_sql_delete
|
|
---------------------------------------------
|
|
DELETE FROM "MyFoo" WHERE f1='1' AND f2='b'
|
|
(1 row)
|
|
|
|
test=# select dblink_build_sql_update('foo','1 2',2,'{"1", "a"}','{"1", "b"}');
|
|
dblink_build_sql_update
|
|
-------------------------------------------------------------
|
|
UPDATE foo SET f1='1',f2='b',f3='1' WHERE f1='1' AND f2='b'
|
|
(1 row)
|
|
|