From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
Cc: | Dominique Devienne <ddevienne(at)gmail(dot)com>, "pgsql-generallists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org> |
Subject: | Re: DROP OWNED BY fails with #53200: ERROR: out of shared memory |
Date: | 2022-01-10 21:29:46 |
Message-ID: | 2412212.1641850186@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
"David G. Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> writes:
> On Mon, Jan 10, 2022 at 12:09 PM Dominique Devienne <ddevienne(at)gmail(dot)com>
> wrote:
>> Tom wrote "relation" for the number of locks necessary for DROP OWNED BY.
>> What does it mean in this context? relation = table?
> I'm confused here a bit as well. The items being talked about are tables
> and indexes, both of which manifest as files on the filesystem. But not
> all relations do (e.g., views). But if this isn't tied to the filesystem
> then I would expect that other object types, especially functions, would
> require locking as well, but those are decidedly not relations.
I was wrong actually --- I wrote that thinking that we acquire exclusive
lock when dropping a relation (where relation may be defined as "something
with a pg_class entry"). That's true, but these days we acquire a lock
when deleting *any* cataloged database object. So you'd also need a lock
for each schema, function, etc that was due to get dropped. This is
basically to avoid problems in case of concurrent drop commands.
It's still true that the size of a relation in columns or rows is not
relevant here.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Dominique Devienne | 2022-01-10 21:58:42 | Re: DROP OWNED BY fails with #53200: ERROR: out of shared memory |
Previous Message | Adrian Klaver | 2022-01-10 21:28:47 | Re: DROP OWNED BY fails with #53200: ERROR: out of shared memory |