Hi,

> I would like to clarify, what the correct way is to determine that a given 
> relation is using local buffers. Local buffers, as far as I know, are used 
> for temporary tables in backends. There are two functions/macros (bufmgr.c): 
> SmgrIsTemp, RelationUsesLocalBuffers. The first function verifies that the 
> current process is a regular session backend, while the other macro verifies 
> the relation persistence characteristic. It seems, the use of each function 
> independently is not correct. I think, these functions should be applied in 
> pair to check for local buffers use, but, it seems, these functions are used 
> independently. It works until temporary tables are allowed only in session 
> backends.

Could you please provide a specific example when the current code will
do something wrong/unintended?

> I'm concerned, how to determine the use of local buffers in some other 
> theoretical cases? For example, if we decide to replicate temporary tables? 
> Are there the other cases, when local buffers can be used with relations in 
> the Vanilla? Do we allow the use of relations with RELPERSISTENCE_TEMP not 
> only in session backends?

Temporary tables, by definition, are visible only within one session.
I can't imagine how and why they would be replicated.

-- 
Best regards,
Aleksander Alekseev


Reply via email to