Re: don't create storage when unnecessary - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: don't create storage when unnecessary
Date
Msg-id 20181207000617.GM2407@paquier.xyz
Whole thread Raw
In response to don't create storage when unnecessary  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Responses Re: don't create storage when unnecessary
List pgsql-hackers
On Thu, Dec 06, 2018 at 06:55:52PM -0300, Alvaro Herrera wrote:
> Some time ago, after partitioned indexes had been pushed, I realized
> that even though I didn't want them to have relfilenodes, they did.  And
> looking closer I noticed that *a lot* of relation kinds that didn't need
> relfilenodes, had them anyway.
>
> This patch fixes that; if no relfilenode is needed, it's not created.
>
> I didn't verify pg_upgrade behavior across this commit.  Maybe something
> needs tweaking there.
>
> PS: I think it'd be worth following up with this ...
> https://postgr.es/m/CAFjFpRcfzs+yst6YBCseD_orEcDNuAr9GUTraZ5GC=AvCYh55Q@mail.gmail.com

A macro makes sense to control that.  Now I have to admit that I don't
like your solution.  Wouldn't it be cleaner to assign InvalidOid to
relfilenode in such cases?  The callers of heap_create would need to be
made smarter when they now pass down a relfilenode (looking at you,
DefineIndex!), but that seems way more consistent to me.  Some tests
would also be welcome.
--
Michael

Attachment

pgsql-hackers by date:

Previous
From: "Bossart, Nathan"
Date:
Subject: Re: Use durable_unlink for .ready and .done files for WAL segmentremoval
Next
From: Daniel Gustafsson
Date:
Subject: Re: Hint and detail punctuation