Re: BUG #16577: Segfault on altering a table located in a dropped tablespace
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Tomas Vondra <tomas.vondra@2ndquadrant.com>, Tom Lane <tgl@sss.pgh.pa.us>, exclusion@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2021-01-13T05:53:58Z
Lists: pgsql-bugs
On Tue, Jan 12, 2021 at 12:08:04PM -0300, Alvaro Herrera wrote: > That would bloat the catalog with a lot of entries for stuff that can be > detected with the current method. Did you notice that the code is > removing an "#ifdef NOT_USED" line to enable existing code? Well, when > I wrote this code in 2005 (59d1b3d99e69) it was doing things as you > suggest, but in the end we decided that it wasn't necessary so it was > taken out. I have not found a thread discussing that around the date of this commit, but I'll take your word on that. I just have one small comment. + if (!create_storage && reltablespace != InvalidOid) + recordDependencyOnTablespace(RelationRelationId, relid, + reltablespace); For now we assume that this code path is taken only for partitioned tables or indexes per the logic in heap_create(). Perhaps it would be better to add to this code path, or to recordDependencyOnTablespace() an assertion to check that only the supported relkinds register this dependency? If a new relkind is added, it would be easy to miss that this shared dependency may need to be supported. -- Michael
Commits
-
Prevent drop of tablespaces used by partitioned relations
- ebfe2dbd6b62 14.0 landed
- c9b702552acc 12.6 landed
- c442b32c2e6d 11.11 landed
- 5b01a6f13ff7 13.2 landed
-
Don't create relfilenode for relations without storage
- 807ae415c546 12.0 cited