On 7/6/22 14:47, Bryn Llewellyn wrote:
The problem was my stupid typo: writing « set search_path =
'pg_catalog, pg_temp'; » when I should *not* have typed those single
quotes. Now the demo that I'd intended gets the outcome that I'd expected:
*select count(*) from pg_class; --------------<< 399
create temporary table pg_class(k int);
select count(*) from pg_class; --------------<< 0
set search_path = pg_catalog, pg_temp;
select count(*) from pg_class; --------------<< 400
*
There's no surprise here. you read the system catalogue, made a table
in whatever is the current schema which hid system's table, then hid
your table by the new path.