From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Jeff Davis <pgsql(at)j-davis(dot)com> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>, Pg Bugs <pgsql-bugs(at)postgresql(dot)org> |
Subject: | Re: Bug with temporary child of a permanent table after recovery |
Date: | 2012-12-16 21:23:50 |
Message-ID: | 7383.1355693030@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Jeff Davis <pgsql(at)j-davis(dot)com> writes:
> On Fri, 2012-12-14 at 17:56 -0500, Tom Lane wrote:
>> Perhaps a better idea is to not overload rd_backend to serve both
>> the "physical name of file" purpose and the "is it my temp table"
>> purpose. We could add an additional relcache field with the
>> three possible states "not temp, my temp, somebody else's temp"
>> and make sure that the third state gets selected when there's
>> a chance collision like this. Or resurrect the old rd_istemp and
>> rd_islocaltemp flags.
> Rather than bring back that flag, can we just use isTempOrToastNamespace
> within RELATION_IS_OTHER_TEMP?
> #define RELATION_IS_OTHER_TEMP(relation) \
> ((relation)->rd_rel->relpersistence == RELPERSISTENCE_TEMP \
> && !isTempOrToastNamespace((relation)->rd_rel->relnamespace))
Meh. I think this would work, but we would also have to change
RELATION_IS_LOCAL to use isTempOrToastNamespace similarly. While
RELATION_IS_OTHER_TEMP doesn't seem to be used in any
performance-critical places (since it's generally checked no more than
once per command), I'm less willing to assume that it's okay to add
cycles to RELATION_IS_LOCAL.
On the whole I think resurrecting the rd_islocaltemp flag might be the
best thing. We can keep the use of "relpersistence ==
RELPERSISTENCE_TEMP" to do what rd_istemp used to do, it's just the
equation of "rd_backend == MyBackendId" with "is my temp table" that's
bogus. And this way gets rid of some unnecessary cross-branch coding
differences.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2012-12-17 02:17:38 | Re: Bug with temporary child of a permanent table after recovery |
Previous Message | pg-gts | 2012-12-15 03:31:55 | BUG #7754: Contrib start scipt comment refers to dead URL |