Re: global temporary tables
От | Robert Haas |
---|---|
Тема | Re: global temporary tables |
Дата | |
Msg-id | x2s603c8f071004250546k53ca5d58w5377d3d53430b602@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: global temporary tables (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
On Sat, Apr 24, 2010 at 11:02 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Robert Haas <robertmhaas@gmail.com> writes: >> Pushing it into the RelFileNode has some advantages in terms of being >> able to get at the information from everywhere, but one thing that >> makes me think that's probably not a good decision is that we somtimes >> WAL-log relfilenodes. And WAL-logging the value of the isTemp flag is >> a waste, because if we're WAL-logging, it's zero. > > Yeah. I think we also use RelFileNode as a hash tag in places, and > so adding a bool to it would be problematic for a couple of reasons: > possibly uninitialized pad bytes, and uselessly incorporating more bytes > into the hash calculation. Right. I was thinking about the padding issue, too. I took a crack at adding an isTemp argument to smgropen() and removing it everywhere else, but it turns out this isn't as straightforward as it ought to be because nbtsort.c, rewriteheap.c, and tablecmds.c feel entitled to violate the abstraction layer by passing isTemp = true to smgrwrite() and/or smgrextend() even when the real value is false, under the assumption that the only thing isTemp is doing in those functions is controlling fsync behavior. I think we'll have to replace the isTemp argument to those functions with a boolean whose explicit charter is to do what they're using it for. Removing the isTemp from smgrtruncate() and smgrdounlink() argument looks easy, though. WIP patch that takes it that far is attached. [davidfetter: patch description for PWN is "WIP patch to push isTemp down into the smgr layer"] ...Robert
Вложения
В списке pgsql-hackers по дате отправления: