Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 18555b1

Browse files
committed
Establish conventions about global object names used in regression tests.
To ensure that "make installcheck" can be used safely against an existing installation, we need to be careful about what global object names (database, role, and tablespace names) we use; otherwise we might accidentally clobber important objects. There's been a weak consensus that test databases should have names including "regression", and that test role names should start with "regress_", but we didn't have any particular rule about tablespace names; and neither of the other rules was followed with any consistency either. This commit moves us a long way towards having a hard-and-fast rule that regression test databases must have names including "regression", and that test role and tablespace names must start with "regress_". It's not completely there because I did not touch some test cases in rolenames.sql that test creation of special role names like "session_user". That will require some rethinking of exactly what we want to test, whereas the intent of this patch is just to hit all the cases in which the needed renamings are cosmetic. There is no enforcement mechanism in this patch either, but if we don't add one we can expect that the tests will soon be violating the convention again. Again, that's not such a cosmetic change and it will require discussion. (But I did use a quick-hack enforcement patch to find these cases.) Discussion: <16638.1468620817@sss.pgh.pa.us>
1 parent 7482fc4 commit 18555b1

File tree

173 files changed

+3338
-3288
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

173 files changed

+3338
-3288
lines changed

contrib/dblink/expected/dblink.out

+7-7
Original file line numberDiff line numberDiff line change
@@ -814,7 +814,7 @@ SELECT dblink_disconnect('dtest1');
814814
(1 row)
815815

816816
-- test foreign data wrapper functionality
817-
CREATE ROLE dblink_regression_test;
817+
CREATE ROLE regress_dblink_user;
818818
DO $d$
819819
BEGIN
820820
EXECUTE $$CREATE SERVER fdtest FOREIGN DATA WRAPPER dblink_fdw
@@ -828,9 +828,9 @@ CREATE USER MAPPING FOR public SERVER fdtest
828828
ERROR: invalid option "server"
829829
HINT: Valid options in this context are: user, password
830830
CREATE USER MAPPING FOR public SERVER fdtest OPTIONS (user :'USER');
831-
GRANT USAGE ON FOREIGN SERVER fdtest TO dblink_regression_test;
832-
GRANT EXECUTE ON FUNCTION dblink_connect_u(text, text) TO dblink_regression_test;
833-
SET SESSION AUTHORIZATION dblink_regression_test;
831+
GRANT USAGE ON FOREIGN SERVER fdtest TO regress_dblink_user;
832+
GRANT EXECUTE ON FUNCTION dblink_connect_u(text, text) TO regress_dblink_user;
833+
SET SESSION AUTHORIZATION regress_dblink_user;
834834
-- should fail
835835
SELECT dblink_connect('myconn', 'fdtest');
836836
ERROR: password is required
@@ -859,9 +859,9 @@ SELECT * FROM dblink('myconn','SELECT * FROM foo') AS t(a int, b text, c text[])
859859
(11 rows)
860860

861861
\c - -
862-
REVOKE USAGE ON FOREIGN SERVER fdtest FROM dblink_regression_test;
863-
REVOKE EXECUTE ON FUNCTION dblink_connect_u(text, text) FROM dblink_regression_test;
864-
DROP USER dblink_regression_test;
862+
REVOKE USAGE ON FOREIGN SERVER fdtest FROM regress_dblink_user;
863+
REVOKE EXECUTE ON FUNCTION dblink_connect_u(text, text) FROM regress_dblink_user;
864+
DROP USER regress_dblink_user;
865865
DROP USER MAPPING FOR public SERVER fdtest;
866866
DROP SERVER fdtest;
867867
-- test asynchronous notifications

contrib/dblink/sql/dblink.sql

+7-7
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ SELECT dblink_error_message('dtest1');
394394
SELECT dblink_disconnect('dtest1');
395395

396396
-- test foreign data wrapper functionality
397-
CREATE ROLE dblink_regression_test;
397+
CREATE ROLE regress_dblink_user;
398398
DO $d$
399399
BEGIN
400400
EXECUTE $$CREATE SERVER fdtest FOREIGN DATA WRAPPER dblink_fdw
@@ -408,20 +408,20 @@ CREATE USER MAPPING FOR public SERVER fdtest
408408
OPTIONS (server 'localhost'); -- fail, can't specify server here
409409
CREATE USER MAPPING FOR public SERVER fdtest OPTIONS (user :'USER');
410410

411-
GRANT USAGE ON FOREIGN SERVER fdtest TO dblink_regression_test;
412-
GRANT EXECUTE ON FUNCTION dblink_connect_u(text, text) TO dblink_regression_test;
411+
GRANT USAGE ON FOREIGN SERVER fdtest TO regress_dblink_user;
412+
GRANT EXECUTE ON FUNCTION dblink_connect_u(text, text) TO regress_dblink_user;
413413

414-
SET SESSION AUTHORIZATION dblink_regression_test;
414+
SET SESSION AUTHORIZATION regress_dblink_user;
415415
-- should fail
416416
SELECT dblink_connect('myconn', 'fdtest');
417417
-- should succeed
418418
SELECT dblink_connect_u('myconn', 'fdtest');
419419
SELECT * FROM dblink('myconn','SELECT * FROM foo') AS t(a int, b text, c text[]);
420420

421421
\c - -
422-
REVOKE USAGE ON FOREIGN SERVER fdtest FROM dblink_regression_test;
423-
REVOKE EXECUTE ON FUNCTION dblink_connect_u(text, text) FROM dblink_regression_test;
424-
DROP USER dblink_regression_test;
422+
REVOKE USAGE ON FOREIGN SERVER fdtest FROM regress_dblink_user;
423+
REVOKE EXECUTE ON FUNCTION dblink_connect_u(text, text) FROM regress_dblink_user;
424+
DROP USER regress_dblink_user;
425425
DROP USER MAPPING FOR public SERVER fdtest;
426426
DROP SERVER fdtest;
427427

contrib/file_fdw/input/file_fdw.source

+27-27
Original file line numberDiff line numberDiff line change
@@ -3,37 +3,37 @@
33
--
44

55
-- Clean up in case a prior regression run failed
6-
SET client_min_messages TO 'error';
7-
DROP ROLE IF EXISTS file_fdw_superuser, file_fdw_user, no_priv_user;
6+
SET client_min_messages TO 'warning';
7+
DROP ROLE IF EXISTS regress_file_fdw_superuser, regress_file_fdw_user, regress_no_priv_user;
88
RESET client_min_messages;
99

10-
CREATE ROLE file_fdw_superuser LOGIN SUPERUSER; -- is a superuser
11-
CREATE ROLE file_fdw_user LOGIN; -- has priv and user mapping
12-
CREATE ROLE no_priv_user LOGIN; -- has priv but no user mapping
10+
CREATE ROLE regress_file_fdw_superuser LOGIN SUPERUSER; -- is a superuser
11+
CREATE ROLE regress_file_fdw_user LOGIN; -- has priv and user mapping
12+
CREATE ROLE regress_no_priv_user LOGIN; -- has priv but no user mapping
1313

1414
-- Install file_fdw
1515
CREATE EXTENSION file_fdw;
1616

17-
-- file_fdw_superuser owns fdw-related objects
18-
SET ROLE file_fdw_superuser;
17+
-- regress_file_fdw_superuser owns fdw-related objects
18+
SET ROLE regress_file_fdw_superuser;
1919
CREATE SERVER file_server FOREIGN DATA WRAPPER file_fdw;
2020

2121
-- privilege tests
22-
SET ROLE file_fdw_user;
22+
SET ROLE regress_file_fdw_user;
2323
CREATE FOREIGN DATA WRAPPER file_fdw2 HANDLER file_fdw_handler VALIDATOR file_fdw_validator; -- ERROR
2424
CREATE SERVER file_server2 FOREIGN DATA WRAPPER file_fdw; -- ERROR
25-
CREATE USER MAPPING FOR file_fdw_user SERVER file_server; -- ERROR
25+
CREATE USER MAPPING FOR regress_file_fdw_user SERVER file_server; -- ERROR
2626

27-
SET ROLE file_fdw_superuser;
28-
GRANT USAGE ON FOREIGN SERVER file_server TO file_fdw_user;
27+
SET ROLE regress_file_fdw_superuser;
28+
GRANT USAGE ON FOREIGN SERVER file_server TO regress_file_fdw_user;
2929

30-
SET ROLE file_fdw_user;
31-
CREATE USER MAPPING FOR file_fdw_user SERVER file_server;
30+
SET ROLE regress_file_fdw_user;
31+
CREATE USER MAPPING FOR regress_file_fdw_user SERVER file_server;
3232

3333
-- create user mappings and grant privilege to test users
34-
SET ROLE file_fdw_superuser;
35-
CREATE USER MAPPING FOR file_fdw_superuser SERVER file_server;
36-
CREATE USER MAPPING FOR no_priv_user SERVER file_server;
34+
SET ROLE regress_file_fdw_superuser;
35+
CREATE USER MAPPING FOR regress_file_fdw_superuser SERVER file_server;
36+
CREATE USER MAPPING FOR regress_no_priv_user SERVER file_server;
3737

3838
-- validator tests
3939
CREATE FOREIGN TABLE tbl () SERVER file_server OPTIONS (format 'xml'); -- ERROR
@@ -66,7 +66,7 @@ CREATE FOREIGN TABLE agg_text (
6666
b float4
6767
) SERVER file_server
6868
OPTIONS (format 'text', filename '@abs_srcdir@/data/agg.data', delimiter ' ', null '\N');
69-
GRANT SELECT ON agg_text TO file_fdw_user;
69+
GRANT SELECT ON agg_text TO regress_file_fdw_user;
7070
CREATE FOREIGN TABLE agg_csv (
7171
a int2,
7272
b float4
@@ -163,29 +163,29 @@ ALTER FOREIGN TABLE agg_csv NO INHERIT agg;
163163
DROP TABLE agg;
164164

165165
-- privilege tests
166-
SET ROLE file_fdw_superuser;
166+
SET ROLE regress_file_fdw_superuser;
167167
SELECT * FROM agg_text ORDER BY a;
168-
SET ROLE file_fdw_user;
168+
SET ROLE regress_file_fdw_user;
169169
SELECT * FROM agg_text ORDER BY a;
170-
SET ROLE no_priv_user;
170+
SET ROLE regress_no_priv_user;
171171
SELECT * FROM agg_text ORDER BY a; -- ERROR
172-
SET ROLE file_fdw_user;
172+
SET ROLE regress_file_fdw_user;
173173
\t on
174174
EXPLAIN (VERBOSE, COSTS FALSE) SELECT * FROM agg_text WHERE a > 0;
175175
\t off
176176
-- file FDW allows foreign tables to be accessed without user mapping
177-
DROP USER MAPPING FOR file_fdw_user SERVER file_server;
177+
DROP USER MAPPING FOR regress_file_fdw_user SERVER file_server;
178178
SELECT * FROM agg_text ORDER BY a;
179179

180180
-- privilege tests for object
181-
SET ROLE file_fdw_superuser;
182-
ALTER FOREIGN TABLE agg_text OWNER TO file_fdw_user;
181+
SET ROLE regress_file_fdw_superuser;
182+
ALTER FOREIGN TABLE agg_text OWNER TO regress_file_fdw_user;
183183
ALTER FOREIGN TABLE agg_text OPTIONS (SET format 'text');
184-
SET ROLE file_fdw_user;
184+
SET ROLE regress_file_fdw_user;
185185
ALTER FOREIGN TABLE agg_text OPTIONS (SET format 'text');
186-
SET ROLE file_fdw_superuser;
186+
SET ROLE regress_file_fdw_superuser;
187187

188188
-- cleanup
189189
RESET ROLE;
190190
DROP EXTENSION file_fdw CASCADE;
191-
DROP ROLE file_fdw_superuser, file_fdw_user, no_priv_user;
191+
DROP ROLE regress_file_fdw_superuser, regress_file_fdw_user, regress_no_priv_user;

contrib/file_fdw/output/file_fdw.source

+29-29
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,34 @@
22
-- Test foreign-data wrapper file_fdw.
33
--
44
-- Clean up in case a prior regression run failed
5-
SET client_min_messages TO 'error';
6-
DROP ROLE IF EXISTS file_fdw_superuser, file_fdw_user, no_priv_user;
5+
SET client_min_messages TO 'warning';
6+
DROP ROLE IF EXISTS regress_file_fdw_superuser, regress_file_fdw_user, regress_no_priv_user;
77
RESET client_min_messages;
8-
CREATE ROLE file_fdw_superuser LOGIN SUPERUSER; -- is a superuser
9-
CREATE ROLE file_fdw_user LOGIN; -- has priv and user mapping
10-
CREATE ROLE no_priv_user LOGIN; -- has priv but no user mapping
8+
CREATE ROLE regress_file_fdw_superuser LOGIN SUPERUSER; -- is a superuser
9+
CREATE ROLE regress_file_fdw_user LOGIN; -- has priv and user mapping
10+
CREATE ROLE regress_no_priv_user LOGIN; -- has priv but no user mapping
1111
-- Install file_fdw
1212
CREATE EXTENSION file_fdw;
13-
-- file_fdw_superuser owns fdw-related objects
14-
SET ROLE file_fdw_superuser;
13+
-- regress_file_fdw_superuser owns fdw-related objects
14+
SET ROLE regress_file_fdw_superuser;
1515
CREATE SERVER file_server FOREIGN DATA WRAPPER file_fdw;
1616
-- privilege tests
17-
SET ROLE file_fdw_user;
17+
SET ROLE regress_file_fdw_user;
1818
CREATE FOREIGN DATA WRAPPER file_fdw2 HANDLER file_fdw_handler VALIDATOR file_fdw_validator; -- ERROR
1919
ERROR: permission denied to create foreign-data wrapper "file_fdw2"
2020
HINT: Must be superuser to create a foreign-data wrapper.
2121
CREATE SERVER file_server2 FOREIGN DATA WRAPPER file_fdw; -- ERROR
2222
ERROR: permission denied for foreign-data wrapper file_fdw
23-
CREATE USER MAPPING FOR file_fdw_user SERVER file_server; -- ERROR
23+
CREATE USER MAPPING FOR regress_file_fdw_user SERVER file_server; -- ERROR
2424
ERROR: permission denied for foreign server file_server
25-
SET ROLE file_fdw_superuser;
26-
GRANT USAGE ON FOREIGN SERVER file_server TO file_fdw_user;
27-
SET ROLE file_fdw_user;
28-
CREATE USER MAPPING FOR file_fdw_user SERVER file_server;
25+
SET ROLE regress_file_fdw_superuser;
26+
GRANT USAGE ON FOREIGN SERVER file_server TO regress_file_fdw_user;
27+
SET ROLE regress_file_fdw_user;
28+
CREATE USER MAPPING FOR regress_file_fdw_user SERVER file_server;
2929
-- create user mappings and grant privilege to test users
30-
SET ROLE file_fdw_superuser;
31-
CREATE USER MAPPING FOR file_fdw_superuser SERVER file_server;
32-
CREATE USER MAPPING FOR no_priv_user SERVER file_server;
30+
SET ROLE regress_file_fdw_superuser;
31+
CREATE USER MAPPING FOR regress_file_fdw_superuser SERVER file_server;
32+
CREATE USER MAPPING FOR regress_no_priv_user SERVER file_server;
3333
-- validator tests
3434
CREATE FOREIGN TABLE tbl () SERVER file_server OPTIONS (format 'xml'); -- ERROR
3535
ERROR: COPY format "xml" not recognized
@@ -82,7 +82,7 @@ CREATE FOREIGN TABLE agg_text (
8282
b float4
8383
) SERVER file_server
8484
OPTIONS (format 'text', filename '@abs_srcdir@/data/agg.data', delimiter ' ', null '\N');
85-
GRANT SELECT ON agg_text TO file_fdw_user;
85+
GRANT SELECT ON agg_text TO regress_file_fdw_user;
8686
CREATE FOREIGN TABLE agg_csv (
8787
a int2,
8888
b float4
@@ -290,7 +290,7 @@ SELECT tableoid::regclass, * FROM agg FOR UPDATE;
290290
ALTER FOREIGN TABLE agg_csv NO INHERIT agg;
291291
DROP TABLE agg;
292292
-- privilege tests
293-
SET ROLE file_fdw_superuser;
293+
SET ROLE regress_file_fdw_superuser;
294294
SELECT * FROM agg_text ORDER BY a;
295295
a | b
296296
-----+---------
@@ -300,7 +300,7 @@ SELECT * FROM agg_text ORDER BY a;
300300
100 | 99.097
301301
(4 rows)
302302

303-
SET ROLE file_fdw_user;
303+
SET ROLE regress_file_fdw_user;
304304
SELECT * FROM agg_text ORDER BY a;
305305
a | b
306306
-----+---------
@@ -310,10 +310,10 @@ SELECT * FROM agg_text ORDER BY a;
310310
100 | 99.097
311311
(4 rows)
312312

313-
SET ROLE no_priv_user;
313+
SET ROLE regress_no_priv_user;
314314
SELECT * FROM agg_text ORDER BY a; -- ERROR
315315
ERROR: permission denied for relation agg_text
316-
SET ROLE file_fdw_user;
316+
SET ROLE regress_file_fdw_user;
317317
\t on
318318
EXPLAIN (VERBOSE, COSTS FALSE) SELECT * FROM agg_text WHERE a > 0;
319319
Foreign Scan on public.agg_text
@@ -323,7 +323,7 @@ EXPLAIN (VERBOSE, COSTS FALSE) SELECT * FROM agg_text WHERE a > 0;
323323

324324
\t off
325325
-- file FDW allows foreign tables to be accessed without user mapping
326-
DROP USER MAPPING FOR file_fdw_user SERVER file_server;
326+
DROP USER MAPPING FOR regress_file_fdw_user SERVER file_server;
327327
SELECT * FROM agg_text ORDER BY a;
328328
a | b
329329
-----+---------
@@ -334,22 +334,22 @@ SELECT * FROM agg_text ORDER BY a;
334334
(4 rows)
335335

336336
-- privilege tests for object
337-
SET ROLE file_fdw_superuser;
338-
ALTER FOREIGN TABLE agg_text OWNER TO file_fdw_user;
337+
SET ROLE regress_file_fdw_superuser;
338+
ALTER FOREIGN TABLE agg_text OWNER TO regress_file_fdw_user;
339339
ALTER FOREIGN TABLE agg_text OPTIONS (SET format 'text');
340-
SET ROLE file_fdw_user;
340+
SET ROLE regress_file_fdw_user;
341341
ALTER FOREIGN TABLE agg_text OPTIONS (SET format 'text');
342342
ERROR: only superuser can change options of a file_fdw foreign table
343-
SET ROLE file_fdw_superuser;
343+
SET ROLE regress_file_fdw_superuser;
344344
-- cleanup
345345
RESET ROLE;
346346
DROP EXTENSION file_fdw CASCADE;
347347
NOTICE: drop cascades to 7 other objects
348348
DETAIL: drop cascades to server file_server
349-
drop cascades to user mapping for file_fdw_superuser on server file_server
350-
drop cascades to user mapping for no_priv_user on server file_server
349+
drop cascades to user mapping for regress_file_fdw_superuser on server file_server
350+
drop cascades to user mapping for regress_no_priv_user on server file_server
351351
drop cascades to foreign table agg_text
352352
drop cascades to foreign table agg_csv
353353
drop cascades to foreign table agg_bad
354354
drop cascades to foreign table text_csv
355-
DROP ROLE file_fdw_superuser, file_fdw_user, no_priv_user;
355+
DROP ROLE regress_file_fdw_superuser, regress_file_fdw_user, regress_no_priv_user;

0 commit comments

Comments
 (0)