Re: dependencyLockAndCheckObject(): dependent vs referenced - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: dependencyLockAndCheckObject(): dependent vs referenced
Date
Msg-id 8e1f5f9b-571e-443c-a18a-730406f9112c@iki.fi
Whole thread
In response to dependencyLockAndCheckObject(): dependent vs referenced  (Kyotaro Horiguchi <horikyota.ntt@gmail.com>)
List pgsql-hackers
On 28/05/2026 05:46, Kyotaro Horiguchi wrote:
> Recently, the following error message was added in back branches 14-18:
> 
> "dependent %s was concurrently dropped"
> 
> As I understand it, this is emitted in
> dependencyLockAndCheckObject(Oid classId, Oid objectId) when the
> object identified by classId/objectId no longer exists at that point.
> 
> However, looking at one of the callers:
> 
>> void
>> recordMultipleDependencies(const ObjectAddress *depender,
>>                             const ObjectAddress *referenced,
>>                             int nreferenced,
>>                             DependencyType behavior)
>> {
>>      ...
>>      dependencyLockAndCheckObject(referenced->classId,
>                                   referenced->objectId);
> 
> and further up, the function comment says:
> 
>> /*
>>   * Record a dependency between 2 objects via their respective ObjectAddress.
>>   * The first argument is the dependent object, the second the one it
>>   * references.
>>   *
>>   * This simply creates an entry in pg_depend, without any other processing.
>>   */
>> void
>> recordDependencyOn(const ObjectAddress *depender,
>>                     const ObjectAddress *referenced,
>>                     DependencyType behavior)
>> {
>>      recordMultipleDependencies(depender, referenced, 1, behavior);
>> }
> 
> Ignoring higher-level callers for the moment, if this comment is
> considered authoritative, then it seems that the object being checked
> here is the referenced object rather than the dependent one.
> 
> If so, should the message perhaps say:
> 
> "referenced %s was concurrently dropped"
> 
> instead?

Yes, you're right. I mixed up the terminology, in my head "dependent" 
was a synonym for "referenced", but it's not. "dependent" means the same 
as "depender", which is a term we use in some other places.

I've changed the error message and comments to say "referenced". Thanks!

- Heikki




pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: sandboxing untrusted code
Next
From: Álvaro Herrera
Date:
Subject: Re: Heads Up: cirrus-ci is shutting down June 1st