diff options
author | Jeff Davis | 2024-03-05 03:42:16 +0000 |
---|---|---|
committer | Jeff Davis | 2024-03-05 03:42:16 +0000 |
commit | 59825d16399699e2f99016b9add46cb2d4916f82 (patch) | |
tree | ea8d60b32711b06de70773059bbc3a70d5d76e00 /contrib | |
parent | a37a3e2b36d7de965f974b8caca0c295833708f2 (diff) |
Fix buildfarm failures from 2af07e2f74.
Use GUC_ACTION_SAVE rather than GUC_ACTION_SET, necessary for working
with parallel query.
Now that the call requires more arguments, wrap the call in a new
function to avoid code duplication and offer a place for a comment.
Discussion: https://postgr.es/m/E1rhJpO-0027Wf-9L@gemulon.postgresql.org
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/amcheck/t/004_verify_nbtree_unique.pl | 45 | ||||
-rw-r--r-- | contrib/amcheck/verify_nbtree.c | 3 |
2 files changed, 20 insertions, 28 deletions
diff --git a/contrib/amcheck/t/004_verify_nbtree_unique.pl b/contrib/amcheck/t/004_verify_nbtree_unique.pl index 4b704e68151..3b22d561828 100644 --- a/contrib/amcheck/t/004_verify_nbtree_unique.pl +++ b/contrib/amcheck/t/004_verify_nbtree_unique.pl @@ -20,11 +20,8 @@ $node->safe_psql( 'postgres', q( CREATE EXTENSION amcheck; - CREATE SCHEMA test_amcheck; - SET search_path = test_amcheck; - CREATE FUNCTION ok_cmp (int4, int4) - RETURNS int LANGUAGE sql SET search_path = test_amcheck AS + RETURNS int LANGUAGE sql AS $$ SELECT CASE WHEN $1 < $2 THEN -1 @@ -37,21 +34,21 @@ $node->safe_psql( --- Check 1: uniqueness violation. --- CREATE FUNCTION ok_cmp1 (int4, int4) - RETURNS int LANGUAGE sql SET search_path = test_amcheck AS + RETURNS int LANGUAGE sql AS $$ - SELECT ok_cmp($1, $2); + SELECT public.ok_cmp($1, $2); $$; --- --- Make values 768 and 769 look equal. --- CREATE FUNCTION bad_cmp1 (int4, int4) - RETURNS int LANGUAGE sql SET search_path = test_amcheck AS + RETURNS int LANGUAGE sql AS $$ SELECT CASE WHEN ($1 = 768 AND $2 = 769) OR ($1 = 769 AND $2 = 768) THEN 0 - ELSE ok_cmp($1, $2) + ELSE public.ok_cmp($1, $2) END; $$; @@ -59,17 +56,17 @@ $node->safe_psql( --- Check 2: uniqueness violation without deduplication. --- CREATE FUNCTION ok_cmp2 (int4, int4) - RETURNS int LANGUAGE sql SET search_path = test_amcheck AS + RETURNS int LANGUAGE sql AS $$ - SELECT ok_cmp($1, $2); + SELECT public.ok_cmp($1, $2); $$; CREATE FUNCTION bad_cmp2 (int4, int4) - RETURNS int LANGUAGE sql SET search_path = test_amcheck AS + RETURNS int LANGUAGE sql AS $$ SELECT CASE WHEN $1 = $2 AND $1 = 400 THEN -1 - ELSE ok_cmp($1, $2) + ELSE public.ok_cmp($1, $2) END; $$; @@ -77,15 +74,15 @@ $node->safe_psql( --- Check 3: uniqueness violation with deduplication. --- CREATE FUNCTION ok_cmp3 (int4, int4) - RETURNS int LANGUAGE sql SET search_path = test_amcheck AS + RETURNS int LANGUAGE sql AS $$ - SELECT ok_cmp($1, $2); + SELECT public.ok_cmp($1, $2); $$; CREATE FUNCTION bad_cmp3 (int4, int4) - RETURNS int LANGUAGE sql SET search_path = test_amcheck AS + RETURNS int LANGUAGE sql AS $$ - SELECT bad_cmp2($1, $2); + SELECT public.bad_cmp2($1, $2); $$; --- @@ -145,7 +142,7 @@ my ($result, $stdout, $stderr); # We have not yet broken the index, so we should get no corruption $result = $node->safe_psql( 'postgres', q( - SELECT bt_index_check('test_amcheck.bttest_unique_idx1', true, true); + SELECT bt_index_check('bttest_unique_idx1', true, true); )); is($result, '', 'run amcheck on non-broken bttest_unique_idx1'); @@ -153,7 +150,6 @@ is($result, '', 'run amcheck on non-broken bttest_unique_idx1'); # values to be equal. $node->safe_psql( 'postgres', q( - SET search_path = test_amcheck; UPDATE pg_catalog.pg_amproc SET amproc = 'bad_cmp1'::regproc WHERE amproc = 'ok_cmp1'::regproc; @@ -161,7 +157,7 @@ $node->safe_psql( ($result, $stdout, $stderr) = $node->psql( 'postgres', q( - SELECT bt_index_check('test_amcheck.bttest_unique_idx1', true, true); + SELECT bt_index_check('bttest_unique_idx1', true, true); )); ok( $stderr =~ /index uniqueness is violated for index "bttest_unique_idx1"/, 'detected uniqueness violation for index "bttest_unique_idx1"'); @@ -179,14 +175,13 @@ ok( $stderr =~ /index uniqueness is violated for index "bttest_unique_idx1"/, # but no uniqueness violation. ($result, $stdout, $stderr) = $node->psql( 'postgres', q( - SELECT bt_index_check('test_amcheck.bttest_unique_idx2', true, true); + SELECT bt_index_check('bttest_unique_idx2', true, true); )); ok( $stderr =~ /item order invariant violated for index "bttest_unique_idx2"/, 'detected item order invariant violation for index "bttest_unique_idx2"'); $node->safe_psql( 'postgres', q( - SET search_path = test_amcheck; UPDATE pg_catalog.pg_amproc SET amproc = 'ok_cmp2'::regproc WHERE amproc = 'bad_cmp2'::regproc; @@ -194,7 +189,7 @@ $node->safe_psql( ($result, $stdout, $stderr) = $node->psql( 'postgres', q( - SELECT bt_index_check('test_amcheck.bttest_unique_idx2', true, true); + SELECT bt_index_check('bttest_unique_idx2', true, true); )); ok( $stderr =~ /index uniqueness is violated for index "bttest_unique_idx2"/, 'detected uniqueness violation for index "bttest_unique_idx2"'); @@ -211,7 +206,7 @@ ok( $stderr =~ /index uniqueness is violated for index "bttest_unique_idx2"/, # but no uniqueness violation. ($result, $stdout, $stderr) = $node->psql( 'postgres', q( - SELECT bt_index_check('test_amcheck.bttest_unique_idx3', true, true); + SELECT bt_index_check('bttest_unique_idx3', true, true); )); ok( $stderr =~ /item order invariant violated for index "bttest_unique_idx3"/, 'detected item order invariant violation for index "bttest_unique_idx3"'); @@ -220,7 +215,6 @@ ok( $stderr =~ /item order invariant violated for index "bttest_unique_idx3"/, # with different visibility. $node->safe_psql( 'postgres', q( - SET search_path = test_amcheck; DELETE FROM bttest_unique3 WHERE 380 <= i AND i <= 420; INSERT INTO bttest_unique3 (SELECT * FROM generate_series(380, 420)); INSERT INTO bttest_unique3 VALUES (400); @@ -234,7 +228,6 @@ $node->safe_psql( $node->safe_psql( 'postgres', q( - SET search_path = test_amcheck; UPDATE pg_catalog.pg_amproc SET amproc = 'ok_cmp3'::regproc WHERE amproc = 'bad_cmp3'::regproc; @@ -242,7 +235,7 @@ $node->safe_psql( ($result, $stdout, $stderr) = $node->psql( 'postgres', q( - SELECT bt_index_check('test_amcheck.bttest_unique_idx3', true, true); + SELECT bt_index_check('bttest_unique_idx3', true, true); )); ok( $stderr =~ /index uniqueness is violated for index "bttest_unique_idx3"/, 'detected uniqueness violation for index "bttest_unique_idx3"'); diff --git a/contrib/amcheck/verify_nbtree.c b/contrib/amcheck/verify_nbtree.c index bff8c61262c..1ef4cff88e8 100644 --- a/contrib/amcheck/verify_nbtree.c +++ b/contrib/amcheck/verify_nbtree.c @@ -313,8 +313,7 @@ bt_index_check_internal(Oid indrelid, bool parentcheck, bool heapallindexed, SetUserIdAndSecContext(heaprel->rd_rel->relowner, save_sec_context | SECURITY_RESTRICTED_OPERATION); save_nestlevel = NewGUCNestLevel(); - SetConfigOption("search_path", GUC_SAFE_SEARCH_PATH, PGC_USERSET, - PGC_S_SESSION); + RestrictSearchPath(); } else { |