From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Mark Dilger <hornschnorter(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: Missing dependency tracking for TableFunc nodes |
Date: | 2019-11-14 22:27:29 |
Message-ID: | 20191114222729.GA23410@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2019-Nov-14, Tomas Vondra wrote:
> Isn't that solved by RemoveObjects() doing this?
>
> /* Get an ObjectAddress for the object. */
> address = get_object_address(stmt->removeType,
> object,
> &relation,
> AccessExclusiveLock,
> stmt->missing_ok);
>
> I've actually done some debugging before sending the patch, and I think
> this prevent the issue you describe.
Hmm .. shouldn't get_statistics_object_oid get a lock on the table that
owns the stats object too? I think it should be setting *relp to it.
That way, the lock you're proposing to add would be obtained there.
That means it'd be similar to what we do for OBJECT_TRIGGER etc,
get_object_address_relobject().
I admit this'd crash and burn if we had stats on multiple relations,
because there'd be no way to return the multiple relations that would
end up locked.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2019-11-14 22:35:06 | Re: Missing dependency tracking for TableFunc nodes |
Previous Message | Tomas Vondra | 2019-11-14 22:22:32 | Re: Missing dependency tracking for TableFunc nodes |