|From:||Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>|
|To:||David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>|
|Cc:||Michael Paquier <michael(at)paquier(dot)xyz>, Robert Haas <robertmhaas(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>|
|Subject:||Re: Should new partitions inherit their tablespace from their parent?|
|Views:||Raw Message | Whole Thread | Download mbox | Resend email|
I didn't like this, so I rewrote it a little bit.
First, I changed the Assert() to use the macro for relations with
storage that I just posted in the other thread that Michael mentioned.
I then noticed that we're doing a heap_openrv() in the parent relation
and closing it before MergeAttribute() does the same thing all over
again; also MergeAttribute has the silly array-of-OIDs return value for
the parents so that DefineRelation can handle it again later. Rube
Goldberg says hi. I changed this so that *before* doing anything with
the parent list, we transform it to a list of OIDs, and lock them; so
MergeAttributes now receives the list of OIDs of parents rather than
RangeVars. We can also move the important comment (about lock level of
parent rels) buried in the bowels of MergeAttribute to the place where
it belongs in DefineRelation; and we no longer have to mess with
transforming names to OIDs multiple times.
Proposed patch attached.
I'll self-review this again tomorrow, 'cause I now have to run.
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
|Next Message||Andres Freund||2018-12-16 22:25:01||Re: gist microvacuum doesn't appear to care about hot standby?|
|Previous Message||Alexander Korotkov||2018-12-16 22:03:52||Re: gist microvacuum doesn't appear to care about hot standby?|