As I continued to deal with the topic of working with temp tables of other sessions, I noticed something like a bug. For example (REL_17_STABLE): Session 1: =# CREATE TEMP TABLE test(id int);
Session 2: =# INSERT INTO pg_temp_0.test VALUES (1); =# INSERT INTO pg_temp_0.test VALUES (2);
Second INSERT command will end with an error "cannot access temporary tables of other sessions". I checked why this is happening and found errors in several places.
Good catch. I agree with this being an unwarranted behaviour.
A minor comment from my end is the wording of the error message.
Based on the Postgresql error message style huide, something like this could be better,
"could not access temporary relations of other sessions".
So, I attach two files to this email : 1) Isolation test, that shows an error in REL_17_STABLE (iso_1.patch) 2) Patch that fixes code that mistakenly considered temporary tables to be permanent (I will be glad to receive feedback on these fixes) + isolation test, which shows that now any action with temp table of other session leads to error (temp_tbl_fix.patch)
Tests look kinda ugly, but I think it's inevitable, given that we don't know exactly what the name of the temporary schema of other session will be.