Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit20eb273

Browse files
committed
Update dblink extension for parallel query.
Almost all functions provided by this extension are PARALLELRESTRICTED. Mostly, that's because the leader's TCP connections won'tbe shared with the workers, but in some cases like dblink_get_pkeyit's because they obtain locks which might be released early if takenwithin a parallel worker. dblink_fdw_validator probably can't be usedin a query anyway, but there would be no problem from the point ofview of parallel query if it were, so it's PARALLEL SAFE.Andreas Karlsson
1 parent177c56d commit20eb273

File tree

4 files changed

+91
-44
lines changed

4 files changed

+91
-44
lines changed

‎contrib/dblink/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ PG_CPPFLAGS = -I$(libpq_srcdir)
66
SHLIB_LINK =$(libpq)
77

88
EXTENSION = dblink
9-
DATA = dblink--1.1.sql dblink--1.0--1.1.sql dblink--unpackaged--1.0.sql
9+
DATA = dblink--1.2.sql dblink--1.1--1.2.sql dblink--1.0--1.1.sql\
10+
dblink--unpackaged--1.0.sql
1011
PGFILEDESC = "dblink - connect to other PostgreSQL databases"
1112

1213
REGRESS = paths dblink

‎contrib/dblink/dblink--1.1--1.2.sql

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/* contrib/dblink/dblink--1.1--1.2.sql*/
2+
3+
-- complain if script is sourced in psql, rather than via ALTER EXTENSION
4+
\echo Use"ALTER EXTENSION dblink UPDATE TO '1.2'" to load this file. \quit
5+
6+
ALTERFUNCTION dblink_connect(text) PARALLEL RESTRICTED;
7+
ALTERFUNCTION dblink_connect(text,text) PARALLEL RESTRICTED;
8+
ALTERFUNCTION dblink_connect_u(text) PARALLEL RESTRICTED;
9+
ALTERFUNCTION dblink_connect_u(text,text) PARALLEL RESTRICTED;
10+
ALTERFUNCTION dblink_disconnect() PARALLEL RESTRICTED;
11+
ALTERFUNCTION dblink_disconnect(text) PARALLEL RESTRICTED;
12+
ALTERFUNCTION dblink_open(text,text) PARALLEL RESTRICTED;
13+
ALTERFUNCTION dblink_open(text,text,boolean) PARALLEL RESTRICTED;
14+
ALTERFUNCTION dblink_open(text,text,text) PARALLEL RESTRICTED;
15+
ALTERFUNCTION dblink_open(text,text,text,boolean) PARALLEL RESTRICTED;
16+
ALTERFUNCTION dblink_fetch(text,int) PARALLEL RESTRICTED;
17+
ALTERFUNCTION dblink_fetch(text,int,boolean) PARALLEL RESTRICTED;
18+
ALTERFUNCTION dblink_fetch(text,text,int) PARALLEL RESTRICTED;
19+
ALTERFUNCTION dblink_fetch(text,text,int,boolean) PARALLEL RESTRICTED;
20+
ALTERFUNCTION dblink_close(text) PARALLEL RESTRICTED;
21+
ALTERFUNCTION dblink_close(text,boolean) PARALLEL RESTRICTED;
22+
ALTERFUNCTION dblink_close(text,text) PARALLEL RESTRICTED;
23+
ALTERFUNCTION dblink_close(text,text,boolean) PARALLEL RESTRICTED;
24+
ALTERFUNCTION dblink(text,text) PARALLEL RESTRICTED;
25+
ALTERFUNCTION dblink(text,text,boolean) PARALLEL RESTRICTED;
26+
ALTERFUNCTION dblink(text) PARALLEL RESTRICTED;
27+
ALTERFUNCTION dblink(text,boolean) PARALLEL RESTRICTED;
28+
ALTERFUNCTION dblink_exec(text,text) PARALLEL RESTRICTED;
29+
ALTERFUNCTION dblink_exec(text,text,boolean) PARALLEL RESTRICTED;
30+
ALTERFUNCTION dblink_exec(text) PARALLEL RESTRICTED;
31+
ALTERFUNCTION dblink_exec(text,boolean) PARALLEL RESTRICTED;
32+
ALTERFUNCTION dblink_get_pkey(text) PARALLEL RESTRICTED;
33+
ALTERFUNCTION dblink_build_sql_insert(text, int2vector,int, _text, _text) PARALLEL SAFE;
34+
ALTERFUNCTION dblink_build_sql_delete(text, int2vector,int, _text) PARALLEL SAFE;
35+
ALTERFUNCTION dblink_build_sql_update(text, int2vector,int, _text, _text) PARALLEL SAFE;
36+
ALTERFUNCTION dblink_current_query() PARALLEL RESTRICTED;
37+
ALTERFUNCTION dblink_send_query(text,text) PARALLEL RESTRICTED;
38+
ALTERFUNCTION dblink_is_busy(text) PARALLEL RESTRICTED;
39+
ALTERFUNCTION dblink_get_result(text) PARALLEL RESTRICTED;
40+
ALTERFUNCTION dblink_get_result(text, bool) PARALLEL RESTRICTED;
41+
ALTERFUNCTION dblink_get_connections() PARALLEL RESTRICTED;
42+
ALTERFUNCTION dblink_cancel_query(text) PARALLEL RESTRICTED;
43+
ALTERFUNCTION dblink_error_message(text) PARALLEL RESTRICTED;
44+
ALTERFUNCTION dblink_get_notify() PARALLEL RESTRICTED;
45+
ALTERFUNCTION dblink_get_notify(text) PARALLEL RESTRICTED;
46+
ALTERFUNCTION dblink_fdw_validator(text[],oid) PARALLEL SAFE;
Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* contrib/dblink/dblink--1.1.sql*/
1+
/* contrib/dblink/dblink--1.2.sql*/
22

33
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
44
\echo Use"CREATE EXTENSION dblink" to load this file. \quit
@@ -8,200 +8,200 @@
88
CREATEFUNCTIONdblink_connect (text)
99
RETURNStext
1010
AS'MODULE_PATHNAME','dblink_connect'
11-
LANGUAGE C STRICT;
11+
LANGUAGE C STRICT PARALLEL RESTRICTED;
1212

1313
CREATEFUNCTIONdblink_connect (text,text)
1414
RETURNStext
1515
AS'MODULE_PATHNAME','dblink_connect'
16-
LANGUAGE C STRICT;
16+
LANGUAGE C STRICT PARALLEL RESTRICTED;
1717

1818
-- dblink_connect_u allows non-superusers to use
1919
-- non-password authenticated connections, but initially
2020
-- privileges are revoked from public
2121
CREATEFUNCTIONdblink_connect_u (text)
2222
RETURNStext
2323
AS'MODULE_PATHNAME','dblink_connect'
24-
LANGUAGE C STRICT SECURITY DEFINER;
24+
LANGUAGE C STRICTPARALLEL RESTRICTEDSECURITY DEFINER;
2525

2626
CREATEFUNCTIONdblink_connect_u (text,text)
2727
RETURNStext
2828
AS'MODULE_PATHNAME','dblink_connect'
29-
LANGUAGE C STRICT SECURITY DEFINER;
29+
LANGUAGE C STRICTPARALLEL RESTRICTEDSECURITY DEFINER;
3030

3131
REVOKE ALLON FUNCTION dblink_connect_u (text)FROM public;
3232
REVOKE ALLON FUNCTION dblink_connect_u (text,text)FROM public;
3333

3434
CREATEFUNCTIONdblink_disconnect ()
3535
RETURNStext
3636
AS'MODULE_PATHNAME','dblink_disconnect'
37-
LANGUAGE C STRICT;
37+
LANGUAGE C STRICT PARALLEL RESTRICTED;
3838

3939
CREATEFUNCTIONdblink_disconnect (text)
4040
RETURNStext
4141
AS'MODULE_PATHNAME','dblink_disconnect'
42-
LANGUAGE C STRICT;
42+
LANGUAGE C STRICT PARALLEL RESTRICTED;
4343

4444
CREATEFUNCTIONdblink_open (text,text)
4545
RETURNStext
4646
AS'MODULE_PATHNAME','dblink_open'
47-
LANGUAGE C STRICT;
47+
LANGUAGE C STRICT PARALLEL RESTRICTED;
4848

4949
CREATEFUNCTIONdblink_open (text,text,boolean)
5050
RETURNStext
5151
AS'MODULE_PATHNAME','dblink_open'
52-
LANGUAGE C STRICT;
52+
LANGUAGE C STRICT PARALLEL RESTRICTED;
5353

5454
CREATEFUNCTIONdblink_open (text,text,text)
5555
RETURNStext
5656
AS'MODULE_PATHNAME','dblink_open'
57-
LANGUAGE C STRICT;
57+
LANGUAGE C STRICT PARALLEL RESTRICTED;
5858

5959
CREATEFUNCTIONdblink_open (text,text,text,boolean)
6060
RETURNStext
6161
AS'MODULE_PATHNAME','dblink_open'
62-
LANGUAGE C STRICT;
62+
LANGUAGE C STRICT PARALLEL RESTRICTED;
6363

6464
CREATEFUNCTIONdblink_fetch (text,int)
6565
RETURNS setof record
6666
AS'MODULE_PATHNAME','dblink_fetch'
67-
LANGUAGE C STRICT;
67+
LANGUAGE C STRICT PARALLEL RESTRICTED;
6868

6969
CREATEFUNCTIONdblink_fetch (text,int,boolean)
7070
RETURNS setof record
7171
AS'MODULE_PATHNAME','dblink_fetch'
72-
LANGUAGE C STRICT;
72+
LANGUAGE C STRICT PARALLEL RESTRICTED;
7373

7474
CREATEFUNCTIONdblink_fetch (text,text,int)
7575
RETURNS setof record
7676
AS'MODULE_PATHNAME','dblink_fetch'
77-
LANGUAGE C STRICT;
77+
LANGUAGE C STRICT PARALLEL RESTRICTED;
7878

7979
CREATEFUNCTIONdblink_fetch (text,text,int,boolean)
8080
RETURNS setof record
8181
AS'MODULE_PATHNAME','dblink_fetch'
82-
LANGUAGE C STRICT;
82+
LANGUAGE C STRICT PARALLEL RESTRICTED;
8383

8484
CREATEFUNCTIONdblink_close (text)
8585
RETURNStext
8686
AS'MODULE_PATHNAME','dblink_close'
87-
LANGUAGE C STRICT;
87+
LANGUAGE C STRICT PARALLEL RESTRICTED;
8888

8989
CREATEFUNCTIONdblink_close (text,boolean)
9090
RETURNStext
9191
AS'MODULE_PATHNAME','dblink_close'
92-
LANGUAGE C STRICT;
92+
LANGUAGE C STRICT PARALLEL RESTRICTED;
9393

9494
CREATEFUNCTIONdblink_close (text,text)
9595
RETURNStext
9696
AS'MODULE_PATHNAME','dblink_close'
97-
LANGUAGE C STRICT;
97+
LANGUAGE C STRICT PARALLEL RESTRICTED;
9898

9999
CREATEFUNCTIONdblink_close (text,text,boolean)
100100
RETURNStext
101101
AS'MODULE_PATHNAME','dblink_close'
102-
LANGUAGE C STRICT;
102+
LANGUAGE C STRICT PARALLEL RESTRICTED;
103103

104104
CREATEFUNCTIONdblink (text,text)
105105
RETURNS setof record
106106
AS'MODULE_PATHNAME','dblink_record'
107-
LANGUAGE C STRICT;
107+
LANGUAGE C STRICT PARALLEL RESTRICTED;
108108

109109
CREATEFUNCTIONdblink (text,text,boolean)
110110
RETURNS setof record
111111
AS'MODULE_PATHNAME','dblink_record'
112-
LANGUAGE C STRICT;
112+
LANGUAGE C STRICT PARALLEL RESTRICTED;
113113

114114
CREATEFUNCTIONdblink (text)
115115
RETURNS setof record
116116
AS'MODULE_PATHNAME','dblink_record'
117-
LANGUAGE C STRICT;
117+
LANGUAGE C STRICT PARALLEL RESTRICTED;
118118

119119
CREATEFUNCTIONdblink (text,boolean)
120120
RETURNS setof record
121121
AS'MODULE_PATHNAME','dblink_record'
122-
LANGUAGE C STRICT;
122+
LANGUAGE C STRICT PARALLEL RESTRICTED;
123123

124124
CREATEFUNCTIONdblink_exec (text,text)
125125
RETURNStext
126126
AS'MODULE_PATHNAME','dblink_exec'
127-
LANGUAGE C STRICT;
127+
LANGUAGE C STRICT PARALLEL RESTRICTED;
128128

129129
CREATEFUNCTIONdblink_exec (text,text,boolean)
130130
RETURNStext
131131
AS'MODULE_PATHNAME','dblink_exec'
132-
LANGUAGE C STRICT;
132+
LANGUAGE C STRICT PARALLEL RESTRICTED;
133133

134134
CREATEFUNCTIONdblink_exec (text)
135135
RETURNStext
136136
AS'MODULE_PATHNAME','dblink_exec'
137-
LANGUAGE C STRICT;
137+
LANGUAGE C STRICT PARALLEL RESTRICTED;
138138

139139
CREATEFUNCTIONdblink_exec (text,boolean)
140140
RETURNStext
141141
AS'MODULE_PATHNAME','dblink_exec'
142-
LANGUAGE C STRICT;
142+
LANGUAGE C STRICT PARALLEL RESTRICTED;
143143

144144
CREATETYPEdblink_pkey_resultsAS (positionint, colnametext);
145145

146146
CREATEFUNCTIONdblink_get_pkey (text)
147147
RETURNS setof dblink_pkey_results
148148
AS'MODULE_PATHNAME','dblink_get_pkey'
149-
LANGUAGE C STRICT;
149+
LANGUAGE C STRICT PARALLEL RESTRICTED;
150150

151151
CREATEFUNCTIONdblink_build_sql_insert (text, int2vector,int, _text, _text)
152152
RETURNStext
153153
AS'MODULE_PATHNAME','dblink_build_sql_insert'
154-
LANGUAGE C STRICT;
154+
LANGUAGE C STRICT PARALLEL SAFE;
155155

156156
CREATEFUNCTIONdblink_build_sql_delete (text, int2vector,int, _text)
157157
RETURNStext
158158
AS'MODULE_PATHNAME','dblink_build_sql_delete'
159-
LANGUAGE C STRICT;
159+
LANGUAGE C STRICT PARALLEL SAFE;
160160

161161
CREATEFUNCTIONdblink_build_sql_update (text, int2vector,int, _text, _text)
162162
RETURNStext
163163
AS'MODULE_PATHNAME','dblink_build_sql_update'
164-
LANGUAGE C STRICT;
164+
LANGUAGE C STRICT PARALLEL SAFE;
165165

166166
CREATEFUNCTIONdblink_current_query ()
167167
RETURNStext
168168
AS'MODULE_PATHNAME','dblink_current_query'
169-
LANGUAGE C;
169+
LANGUAGE C PARALLEL RESTRICTED;
170170

171171
CREATEFUNCTIONdblink_send_query(text,text)
172172
RETURNS int4
173173
AS'MODULE_PATHNAME','dblink_send_query'
174-
LANGUAGE C STRICT;
174+
LANGUAGE C STRICT PARALLEL RESTRICTED;
175175

176176
CREATEFUNCTIONdblink_is_busy(text)
177177
RETURNS int4
178178
AS'MODULE_PATHNAME','dblink_is_busy'
179-
LANGUAGE C STRICT;
179+
LANGUAGE C STRICT PARALLEL RESTRICTED;
180180

181181
CREATEFUNCTIONdblink_get_result(text)
182182
RETURNS SETOF record
183183
AS'MODULE_PATHNAME','dblink_get_result'
184-
LANGUAGE C STRICT;
184+
LANGUAGE C STRICT PARALLEL RESTRICTED;
185185

186186
CREATEFUNCTIONdblink_get_result(text, bool)
187187
RETURNS SETOF record
188188
AS'MODULE_PATHNAME','dblink_get_result'
189-
LANGUAGE C STRICT;
189+
LANGUAGE C STRICT PARALLEL RESTRICTED;
190190

191191
CREATEFUNCTIONdblink_get_connections()
192192
RETURNStext[]
193193
AS'MODULE_PATHNAME','dblink_get_connections'
194-
LANGUAGE C;
194+
LANGUAGE C PARALLEL RESTRICTED;
195195

196196
CREATEFUNCTIONdblink_cancel_query(text)
197197
RETURNStext
198198
AS'MODULE_PATHNAME','dblink_cancel_query'
199-
LANGUAGE C STRICT;
199+
LANGUAGE C STRICT PARALLEL RESTRICTED;
200200

201201
CREATEFUNCTIONdblink_error_message(text)
202202
RETURNStext
203203
AS'MODULE_PATHNAME','dblink_error_message'
204-
LANGUAGE C STRICT;
204+
LANGUAGE C STRICT PARALLEL RESTRICTED;
205205

206206
CREATEFUNCTIONdblink_get_notify(
207207
OUT notify_nameTEXT,
@@ -210,7 +210,7 @@ CREATE FUNCTION dblink_get_notify(
210210
)
211211
RETURNS setof record
212212
AS'MODULE_PATHNAME','dblink_get_notify'
213-
LANGUAGE C STRICT;
213+
LANGUAGE C STRICT PARALLEL RESTRICTED;
214214

215215
CREATEFUNCTIONdblink_get_notify(
216216
connameTEXT,
@@ -220,7 +220,7 @@ CREATE FUNCTION dblink_get_notify(
220220
)
221221
RETURNS setof record
222222
AS'MODULE_PATHNAME','dblink_get_notify'
223-
LANGUAGE C STRICT;
223+
LANGUAGE C STRICT PARALLEL RESTRICTED;
224224

225225
/* New stuff in 1.1 begins here*/
226226

@@ -230,6 +230,6 @@ CREATE FUNCTION dblink_fdw_validator(
230230
)
231231
RETURNS void
232232
AS'MODULE_PATHNAME','dblink_fdw_validator'
233-
LANGUAGE C STRICT;
233+
LANGUAGE C STRICT PARALLEL SAFE;
234234

235235
CREATE FOREIGN DATA WRAPPER dblink_fdw VALIDATOR dblink_fdw_validator;

‎contrib/dblink/dblink.control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# dblink extension
22
comment = 'connect to other PostgreSQL databases from within a database'
3-
default_version = '1.1'
3+
default_version = '1.2'
44
module_pathname = '$libdir/dblink'
55
relocatable = true

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp