Use term "referenced" rather than "dependent" in dependency locking

Reported-by: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Discussion: https://www.postgresql.org/message-id/20260528.114608.488039299811669368.horikyota.ntt@gmail.com
Backpatch-through: 14
REL_16_STABLE
Heikki Linnakangas 1 week ago
parent 970ac13791
commit e9067809ee
  1. 6
      src/backend/catalog/pg_depend.c
  2. 16
      src/test/isolation/expected/ddl-dependency-locking.out

@ -740,7 +740,7 @@ isObjectPinned(const ObjectAddress *object)
*
* If the caller already holds a lock that conflicts with DROP
* (AccessShareLock or stronger), this does nothing. Callers should acquire
* locks already when they look up the dependent objects, but many callers
* locks already when they look up the referenced objects, but many callers
* currently do not. This is a backstop to make sure that we don't record a
* bogus reference permanently in the catalogs in that case. In the future,
* after we have tightened up all the callers to acquire locks earlier, this
@ -808,7 +808,7 @@ dependencyLockAndCheckObject(Oid classId, Oid objectId)
if (!HeapTupleIsValid(tuple))
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_OBJECT),
errmsg("dependent %s was concurrently dropped",
errmsg("referenced %s was concurrently dropped",
get_object_class_descr(classId))));
systable_endscan(scan);
@ -840,7 +840,7 @@ dependencyLockAndCheckObject(Oid classId, Oid objectId)
return;
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_OBJECT),
errmsg("dependent relation was concurrently dropped")));
errmsg("referenced relation was concurrently dropped")));
}
}

@ -14,7 +14,7 @@ step s2_drop_schema: DROP SCHEMA testschema;
step s1_create_function_in_schema: CREATE FUNCTION testschema.foo() RETURNS int AS 'select 1' LANGUAGE sql; <waiting ...>
step s2_commit: COMMIT;
step s1_create_function_in_schema: <... completed>
ERROR: dependent schema was concurrently dropped
ERROR: referenced schema was concurrently dropped
starting permutation: s1_begin s1_alter_function_schema s2_drop_alterschema s1_commit
step s1_begin: BEGIN;
@ -30,7 +30,7 @@ step s2_drop_alterschema: DROP SCHEMA alterschema;
step s1_alter_function_schema: ALTER FUNCTION public.falter() SET SCHEMA alterschema; <waiting ...>
step s2_commit: COMMIT;
step s1_alter_function_schema: <... completed>
ERROR: dependent schema was concurrently dropped
ERROR: referenced schema was concurrently dropped
starting permutation: s1_begin s1_create_function_with_argtype s2_drop_foo_type s1_commit
step s1_begin: BEGIN;
@ -46,7 +46,7 @@ step s2_drop_foo_type: DROP TYPE public.foo;
step s1_create_function_with_argtype: CREATE FUNCTION fooargtype(num foo) RETURNS int AS 'select 1' LANGUAGE sql; <waiting ...>
step s2_commit: COMMIT;
step s1_create_function_with_argtype: <... completed>
ERROR: dependent type was concurrently dropped
ERROR: referenced type was concurrently dropped
starting permutation: s1_begin s1_create_function_with_rettype s2_drop_foo_rettype s1_commit
step s1_begin: BEGIN;
@ -62,7 +62,7 @@ step s2_drop_foo_rettype: DROP DOMAIN id;
step s1_create_function_with_rettype: CREATE FUNCTION footrettype() RETURNS id LANGUAGE sql RETURN 1; <waiting ...>
step s2_commit: COMMIT;
step s1_create_function_with_rettype: <... completed>
ERROR: dependent type was concurrently dropped
ERROR: referenced type was concurrently dropped
starting permutation: s1_begin s1_create_function_with_function s2_drop_function_f s1_commit
step s1_begin: BEGIN;
@ -78,7 +78,7 @@ step s2_drop_function_f: DROP FUNCTION f();
step s1_create_function_with_function: CREATE FUNCTION foofunc() RETURNS int LANGUAGE SQL RETURN f() + 1; <waiting ...>
step s2_commit: COMMIT;
step s1_create_function_with_function: <... completed>
ERROR: dependent function was concurrently dropped
ERROR: referenced function was concurrently dropped
starting permutation: s1_begin s1_create_domain_with_domain s2_drop_domain_id s1_commit
step s1_begin: BEGIN;
@ -94,7 +94,7 @@ step s2_drop_domain_id: DROP DOMAIN id;
step s1_create_domain_with_domain: CREATE DOMAIN idid as id; <waiting ...>
step s2_commit: COMMIT;
step s1_create_domain_with_domain: <... completed>
ERROR: dependent type was concurrently dropped
ERROR: referenced type was concurrently dropped
starting permutation: s1_begin s1_create_table_with_type s2_drop_footab_type s1_commit
step s1_begin: BEGIN;
@ -110,7 +110,7 @@ step s2_drop_footab_type: DROP TYPE public.footab;
step s1_create_table_with_type: CREATE TABLE tabtype(a footab); <waiting ...>
step s2_commit: COMMIT;
step s1_create_table_with_type: <... completed>
ERROR: dependent type was concurrently dropped
ERROR: referenced type was concurrently dropped
starting permutation: s1_begin s1_create_server_with_fdw_wrapper s2_drop_fdw_wrapper s1_commit
step s1_begin: BEGIN;
@ -126,7 +126,7 @@ step s2_drop_fdw_wrapper: DROP FOREIGN DATA WRAPPER fdw_wrapper RESTRICT;
step s1_create_server_with_fdw_wrapper: CREATE SERVER srv_fdw_wrapper FOREIGN DATA WRAPPER fdw_wrapper; <waiting ...>
step s2_commit: COMMIT;
step s1_create_server_with_fdw_wrapper: <... completed>
ERROR: dependent foreign-data wrapper was concurrently dropped
ERROR: referenced foreign-data wrapper was concurrently dropped
starting permutation: s1_begin s1_alter_function_owner s2_drop_role s1_commit
step s1_begin: BEGIN;

Loading…
Cancel
Save