Вот один из способов получить имя схемы pg_temp_ nnn для вашего сеанса:
select distinct 'pg_temp_'||sess_id from pg_stat_activity where procpid = pg_backend_pid()
Это идентифицирует сеанс, на котором выполняется сам этот оператор SQL, и возвращает идентификатор сеанса, под которым он выполняется.
Затем вы можете использовать это для отображения всех ваших временных таблиц:
select *
from information_schema.tables
where table_schema =
( select distinct 'pg_temp_'||sess_id
from pg_stat_activity
where procpid = pg_backend_pid()
)
Или получить структуру таблицы:
select *
from information_schema.columns
where table_schema =
( select distinct 'pg_temp_'||sess_id
from pg_stat_activity
where procpid = pg_backend_pid()
)
and table_name = 'my_temp_table'
order by ordinal_position