Re: Bug with temporary child of a permanent table after recovery

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Bug with temporary child of a permanent table after recovery
Дата
Msg-id 7383.1355693030@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Bug with temporary child of a permanent table after recovery  (Jeff Davis <pgsql@j-davis.com>)
Ответы Re: Bug with temporary child of a permanent table after recovery  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
Jeff Davis <pgsql@j-davis.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

В списке pgsql-bugs по дате отправления:

Предыдущее
От: pg-gts@snkmail.com
Дата:
Сообщение: BUG #7754: Contrib start scipt comment refers to dead URL
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Bug with temporary child of a permanent table after recovery