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

Commitbfccacf

Browse files
committed
Fix dblink regression test so that it works when repeated: don't
create a second database, just loop back to 'regression'. Patchfrom Joe Conway 10/22/02.
1 parent659df79 commitbfccacf

File tree

2 files changed

+21
-81
lines changed

2 files changed

+21
-81
lines changed

‎contrib/dblink/expected/dblink.out

Lines changed: 10 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,9 @@
1+
-- Adjust this setting to control where the objects get created.
2+
SET search_path = public;
13
--
2-
--First, create a slave database and define the functions and test data
4+
--Define the functions and test data
35
-- therein.
46
--
5-
-- This initial hackery is to allow successive runs without failures.
6-
--
7-
-- Adjust this setting to control where the objects get created.
8-
SET search_path = public;
9-
CREATE OR REPLACE FUNCTION conditional_drop()
10-
RETURNS text AS '
11-
DECLARE
12-
dbname text;
13-
BEGIN
14-
SELECT INTO dbname datname FROM pg_database WHERE datname = ''regression_slave'';
15-
IF FOUND THEN
16-
DROP DATABASE regression_slave;
17-
END IF;
18-
RETURN ''OK'';
19-
END;
20-
' LANGUAGE 'plpgsql';
21-
SELECT conditional_drop();
22-
conditional_drop
23-
------------------
24-
OK
25-
(1 row)
26-
27-
CREATE DATABASE regression_slave;
28-
\connect regression_slave
297
-- Turn off echoing so that expected file does not depend on
308
-- contents of dblink.sql.
319
\set ECHO none
@@ -81,16 +59,9 @@ SELECT dblink_build_sql_delete('foo','1 2',2,'{"0", "a"}');
8159
DELETE FROM foo WHERE f1 = '0' AND f2 = 'a'
8260
(1 row)
8361

84-
--
85-
-- Connect back to the regression database and define the functions.
86-
-- Turn off echoing so that expected file does not depend on
87-
-- contents of dblink.sql.
88-
--
89-
\connect regression
90-
\set ECHO none
9162
-- regular old dblink
9263
SELECT *
93-
FROM dblink('dbname=regression_slave','SELECT * FROM foo') AS t(a int, b text, c text[])
64+
FROM dblink('dbname=regression','SELECT * FROM foo') AS t(a int, b text, c text[])
9465
WHERE t.a > 7;
9566
a | b | c
9667
---+---+------------
@@ -104,7 +75,7 @@ FROM dblink('SELECT * FROM foo') AS t(a int, b text, c text[])
10475
WHERE t.a > 7;
10576
ERROR: dblink: no connection available
10677
-- create a persistent connection
107-
SELECT dblink_connect('dbname=regression_slave');
78+
SELECT dblink_connect('dbname=regression');
10879
dblink_connect
10980
----------------
11081
OK
@@ -182,22 +153,22 @@ WHERE t.a > 7;
182153
ERROR: dblink: no connection available
183154
-- put more data into our slave table, first using arbitrary connection syntax
184155
-- but truncate the actual return value so we can use diff to check for success
185-
SELECT substr(dblink_exec('dbname=regression_slave','SET autocommit TO ''on'';INSERT INTO foo VALUES(10,''k'',''{"a10","b10","c10"}'')'),1,6);
156+
SELECT substr(dblink_exec('dbname=regression','SET autocommit TO ''on'';INSERT INTO foo VALUES(10,''k'',''{"a10","b10","c10"}'')'),1,6);
186157
substr
187158
--------
188159
INSERT
189160
(1 row)
190161

191162
-- create a persistent connection
192-
SELECT dblink_connect('dbname=regression_slave');
163+
SELECT dblink_connect('dbname=regression');
193164
dblink_connect
194165
----------------
195166
OK
196167
(1 row)
197168

198169
-- put more data into our slave table, using persistent connection syntax
199170
-- but truncate the actual return value so we can use diff to check for success
200-
SELECT substr(dblink_exec('INSERT INTO foo VALUES(11,''l'',''{"a11","b11","c11"}'')'),1,6);
171+
SELECT substr(dblink_exec('SET autocommit TO ''on'';INSERT INTO foo VALUES(11,''l'',''{"a11","b11","c11"}'')'),1,6);
201172
substr
202173
--------
203174
INSERT
@@ -223,7 +194,7 @@ FROM dblink('SELECT * FROM foo') AS t(a int, b text, c text[]);
223194
(12 rows)
224195

225196
-- change some data
226-
SELECT dblink_exec('UPDATE foo SET f3[2] = ''b99'' WHERE f1 = 11');
197+
SELECT dblink_exec('SET autocommit TO ''on'';UPDATE foo SET f3[2] = ''b99'' WHERE f1 = 11');
227198
dblink_exec
228199
-------------
229200
UPDATE 1
@@ -239,7 +210,7 @@ WHERE a = 11;
239210
(1 row)
240211

241212
-- delete some data
242-
SELECT dblink_exec('DELETE FROM foo WHERE f1 = 11');
213+
SELECT dblink_exec('SET autocommit TO ''on'';DELETE FROM foo WHERE f1 = 11');
243214
dblink_exec
244215
-------------
245216
DELETE 1

‎contrib/dblink/sql/dblink.sql

Lines changed: 11 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,10 @@
1-
--
2-
-- First, create a slave database and define the functions and test data
3-
-- therein.
4-
--
5-
-- This initial hackery is to allow successive runs without failures.
6-
--
7-
81
-- Adjust this setting to control where the objects get created.
92
SET search_path= public;
103

11-
CREATE OR REPLACEFUNCTIONconditional_drop()
12-
RETURNStextAS'
13-
DECLARE
14-
dbname text;
15-
BEGIN
16-
SELECT INTO dbname datname FROM pg_database WHERE datname =''regression_slave'';
17-
IF FOUND THEN
18-
DROP DATABASE regression_slave;
19-
END IF;
20-
RETURN''OK'';
21-
END;
22-
' LANGUAGE'plpgsql';
23-
SELECT conditional_drop();
24-
25-
CREATEDATABASEregression_slave;
26-
\connect regression_slave
27-
4+
--
5+
-- Define the functions and test data
6+
-- therein.
7+
--
288
-- Turn off echoing so that expected file does not depend on
299
-- contents of dblink.sql.
3010
\set ECHO none
@@ -64,20 +44,9 @@ SELECT dblink_build_sql_update('foo','1 2',2,'{"0", "a"}','{"99", "xyz"}');
6444
-- build a delete statement based on a local tuple,
6545
SELECT dblink_build_sql_delete('foo','1 2',2,'{"0", "a"}');
6646

67-
--
68-
-- Connect back to the regression database and define the functions.
69-
-- Turn off echoing so that expected file does not depend on
70-
-- contents of dblink.sql.
71-
--
72-
\connect regression
73-
\set ECHO none
74-
SET autocommit TO'on';
75-
\idblink.sql
76-
\set ECHO all
77-
7847
-- regular old dblink
7948
SELECT*
80-
FROM dblink('dbname=regression_slave','SELECT * FROM foo')AS t(aint, btext, ctext[])
49+
FROM dblink('dbname=regression','SELECT * FROM foo')AS t(aint, btext, ctext[])
8150
WHEREt.a>7;
8251

8352
-- should generate "no connection available" error
@@ -86,7 +55,7 @@ FROM dblink('SELECT * FROM foo') AS t(a int, b text, c text[])
8655
WHEREt.a>7;
8756

8857
-- create a persistent connection
89-
SELECT dblink_connect('dbname=regression_slave');
58+
SELECT dblink_connect('dbname=regression');
9059

9160
-- use the persistent connection
9261
SELECT*
@@ -124,29 +93,29 @@ WHERE t.a > 7;
12493

12594
-- put more data into our slave table, first using arbitrary connection syntax
12695
-- but truncate the actual return value so we can use diff to check for success
127-
SELECT substr(dblink_exec('dbname=regression_slave','SET autocommit TO''on'';INSERT INTO foo VALUES(10,''k'',''{"a10","b10","c10"}'')'),1,6);
96+
SELECT substr(dblink_exec('dbname=regression','SET autocommit TO''on'';INSERT INTO foo VALUES(10,''k'',''{"a10","b10","c10"}'')'),1,6);
12897

12998
-- create a persistent connection
130-
SELECT dblink_connect('dbname=regression_slave');
99+
SELECT dblink_connect('dbname=regression');
131100

132101
-- put more data into our slave table, using persistent connection syntax
133102
-- but truncate the actual return value so we can use diff to check for success
134-
SELECT substr(dblink_exec('INSERT INTO foo VALUES(11,''l'',''{"a11","b11","c11"}'')'),1,6);
103+
SELECT substr(dblink_exec('SET autocommit TO''on'';INSERT INTO foo VALUES(11,''l'',''{"a11","b11","c11"}'')'),1,6);
135104

136105
-- let's see it
137106
SELECT*
138107
FROM dblink('SELECT * FROM foo')AS t(aint, btext, ctext[]);
139108

140109
-- change some data
141-
SELECT dblink_exec('UPDATE foo SET f3[2] =''b99'' WHERE f1 = 11');
110+
SELECT dblink_exec('SET autocommit TO''on'';UPDATE foo SET f3[2] =''b99'' WHERE f1 = 11');
142111

143112
-- let's see it
144113
SELECT*
145114
FROM dblink('SELECT * FROM foo')AS t(aint, btext, ctext[])
146115
WHERE a=11;
147116

148117
-- delete some data
149-
SELECT dblink_exec('DELETE FROM foo WHERE f1 = 11');
118+
SELECT dblink_exec('SET autocommit TO''on'';DELETE FROM foo WHERE f1 = 11');
150119

151120
-- let's see it
152121
SELECT*

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp