1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-28 23:42:10 +03:00

Don't hardcode contrib_regression dbname in postgres_fdw and dblink tests.

That allows parallel installcheck to succeed inside contrib/. The
output is not particularly pretty unless make's -O option to
synchronize the output is used.

There's other tests, outside contrib, that use a hardcoded,
non-unique, database name. Those prohibit paralell installcheck to be
used across more directories; but that's something for a separate
patch.
This commit is contained in:
Andres Freund
2014-08-26 02:54:53 +02:00
parent 2bde29739d
commit ddc2504dbc
6 changed files with 64 additions and 46 deletions

View File

@ -88,9 +88,12 @@ SELECT dblink_build_sql_delete('"MySchema"."Foo"','1 2',2,'{"0", "a"}');
DELETE FROM "MySchema"."Foo" WHERE f1 = '0' AND f2 = 'a'
(1 row)
CREATE FUNCTION connection_parameters() RETURNS text LANGUAGE SQL AS $f$
SELECT $$dbname='$$||current_database()||$$'$$;
$f$;
-- regular old dblink
SELECT *
FROM dblink('dbname=contrib_regression','SELECT * FROM foo') AS t(a int, b text, c text[])
FROM dblink(connection_parameters(),'SELECT * FROM foo') AS t(a int, b text, c text[])
WHERE t.a > 7;
a | b | c
---+---+------------
@ -116,9 +119,9 @@ DECLARE
detail text;
BEGIN
PERFORM wait_pid(crash_pid)
FROM dblink('dbname=contrib_regression', $$
FROM dblink(connection_parameters(), $$
SELECT pg_backend_pid() FROM dblink(
'service=test_ldap dbname=contrib_regression',
'service=test_ldap '||connection_parameters(),
-- This string concatenation is a hack to shoehorn a
-- set_pgservicefile call into the SQL statement.
'SELECT 1' || set_pgservicefile('pg_service.conf')
@ -131,7 +134,7 @@ EXCEPTION WHEN OTHERS THEN
END
$pl$;
-- create a persistent connection
SELECT dblink_connect('dbname=contrib_regression');
SELECT dblink_connect(connection_parameters());
dblink_connect
----------------
OK
@ -267,14 +270,14 @@ WHERE t.a > 7;
ERROR: connection not available
-- put more data into our slave table, first using arbitrary connection syntax
-- but truncate the actual return value so we can use diff to check for success
SELECT substr(dblink_exec('dbname=contrib_regression','INSERT INTO foo VALUES(10,''k'',''{"a10","b10","c10"}'')'),1,6);
SELECT substr(dblink_exec(connection_parameters(),'INSERT INTO foo VALUES(10,''k'',''{"a10","b10","c10"}'')'),1,6);
substr
--------
INSERT
(1 row)
-- create a persistent connection
SELECT dblink_connect('dbname=contrib_regression');
SELECT dblink_connect(connection_parameters());
dblink_connect
----------------
OK
@ -374,7 +377,7 @@ ERROR: could not establish connection
DETAIL: missing "=" after "myconn" in connection info string
-- create a named persistent connection
SELECT dblink_connect('myconn','dbname=contrib_regression');
SELECT dblink_connect('myconn',connection_parameters());
dblink_connect
----------------
OK
@ -403,10 +406,10 @@ CONTEXT: Error occurred on dblink connection named "myconn": could not execute
-- create a second named persistent connection
-- should error with "duplicate connection name"
SELECT dblink_connect('myconn','dbname=contrib_regression');
SELECT dblink_connect('myconn',connection_parameters());
ERROR: duplicate connection name
-- create a second named persistent connection with a new name
SELECT dblink_connect('myconn2','dbname=contrib_regression');
SELECT dblink_connect('myconn2',connection_parameters());
dblink_connect
----------------
OK
@ -601,7 +604,7 @@ ERROR: could not establish connection
DETAIL: missing "=" after "myconn" in connection info string
-- create a named persistent connection
SELECT dblink_connect('myconn','dbname=contrib_regression');
SELECT dblink_connect('myconn',connection_parameters());
dblink_connect
----------------
OK
@ -677,7 +680,7 @@ SELECT dblink_disconnect('myconn');
SELECT dblink_disconnect('myconn');
ERROR: connection "myconn" not available
-- test asynchronous queries
SELECT dblink_connect('dtest1', 'dbname=contrib_regression');
SELECT dblink_connect('dtest1', connection_parameters());
dblink_connect
----------------
OK
@ -690,7 +693,7 @@ SELECT * from
1
(1 row)
SELECT dblink_connect('dtest2', 'dbname=contrib_regression');
SELECT dblink_connect('dtest2', connection_parameters());
dblink_connect
----------------
OK
@ -703,7 +706,7 @@ SELECT * from
1
(1 row)
SELECT dblink_connect('dtest3', 'dbname=contrib_regression');
SELECT dblink_connect('dtest3', connection_parameters());
dblink_connect
----------------
OK
@ -777,7 +780,7 @@ SELECT * from result;
10 | k | {a10,b10,c10}
(11 rows)
SELECT dblink_connect('dtest1', 'dbname=contrib_regression');
SELECT dblink_connect('dtest1', connection_parameters());
dblink_connect
----------------
OK
@ -810,8 +813,12 @@ SELECT dblink_disconnect('dtest1');
-- test foreign data wrapper functionality
CREATE ROLE dblink_regression_test;
CREATE SERVER fdtest FOREIGN DATA WRAPPER dblink_fdw
OPTIONS (dbname 'contrib_regression');
DO $d$
BEGIN
EXECUTE $$CREATE SERVER fdtest FOREIGN DATA WRAPPER dblink_fdw
OPTIONS (dbname '$$||current_database()||$$')$$;
END;
$d$;
CREATE USER MAPPING FOR public SERVER fdtest
OPTIONS (server 'localhost'); -- fail, can't specify server here
ERROR: invalid option "server"
@ -854,7 +861,7 @@ DROP USER dblink_regression_test;
DROP USER MAPPING FOR public SERVER fdtest;
DROP SERVER fdtest;
-- test asynchronous notifications
SELECT dblink_connect('dbname=contrib_regression');
SELECT dblink_connect(connection_parameters());
dblink_connect
----------------
OK
@ -943,7 +950,7 @@ SELECT dblink_build_sql_delete('test_dropped', '1', 1,
SET datestyle = ISO, MDY;
SET intervalstyle = postgres;
SET timezone = UTC;
SELECT dblink_connect('myconn','dbname=contrib_regression');
SELECT dblink_connect('myconn',connection_parameters());
dblink_connect
----------------
OK