summaryrefslogtreecommitdiffstats
path: root/doc/src/sgml/man3/dblink_get_pkey.3
blob: bf9b21dd81317346240ea166abe33dd5121b220b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
'\" t
.\"     Title: dblink_get_pkey
.\"    Author: The PostgreSQL Global Development Group
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\"      Date: 2024
.\"    Manual: PostgreSQL 15.6 Documentation
.\"    Source: PostgreSQL 15.6
.\"  Language: English
.\"
.TH "DBLINK_GET_PKEY" "3" "2024" "PostgreSQL 15.6" "PostgreSQL 15.6 Documentation"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
dblink_get_pkey \- returns the positions and field names of a relation\*(Aqs primary key fields
.SH "SYNOPSIS"
.sp
.nf
dblink_get_pkey(text relname) returns setof dblink_pkey_results
.fi
.SH "DESCRIPTION"
.PP
\fBdblink_get_pkey\fR
provides information about the primary key of a relation in the local database\&. This is sometimes useful in generating queries to be sent to remote databases\&.
.SH "ARGUMENTS"
.PP
\fIrelname\fR
.RS 4
Name of a local relation, for example
foo
or
myschema\&.mytab\&. Include double quotes if the name is mixed\-case or contains special characters, for example
"FooBar"; without quotes, the string will be folded to lower case\&.
.RE
.SH "RETURN VALUE"
.PP
Returns one row for each primary key field, or no rows if the relation has no primary key\&. The result row type is defined as
.sp
.if n \{\
.RS 4
.\}
.nf
CREATE TYPE dblink_pkey_results AS (position int, colname text);
.fi
.if n \{\
.RE
.\}
.sp
The
position
column simply runs from 1 to
\fIN\fR; it is the number of the field within the primary key, not the number within the table\*(Aqs columns\&.
.SH "EXAMPLES"
.sp
.if n \{\
.RS 4
.\}
.nf
CREATE TABLE foobar (
    f1 int,
    f2 int,
    f3 int,
    PRIMARY KEY (f1, f2, f3)
);
CREATE TABLE

SELECT * FROM dblink_get_pkey(\*(Aqfoobar\*(Aq);
 position | colname
\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-
        1 | f1
        2 | f2
        3 | f3
(3 rows)
.fi
.if n \{\
.RE
.\}