\set ECHO 0 -- create empty role CREATE ROLE foo; -- nothing yet owned by foo SELECT * FROM user_objects('foo'); type | oid | schema | name ------+-----+--------+------ (0 rows) -- create table and alter owner to foo CREATE TABLE foo_table (id int); ALTER TABLE foo_table OWNER TO foo; -- nothing yet owned by foo - both queries should return 4 rows (types+relations) SELECT count(*) FROM user_objects('foo'); count ------- 4 (1 row) SELECT count(*) FROM user_objects('foo') WHERE name = 'foo'; count ------- 0 (1 row) -- these two should return 1 (or 2 in case of TYPEs) SELECT count(*) FROM user_objects('foo') WHERE type = 'RELATION'; count ------- 1 (1 row) SELECT count(*) FROM user_objects('foo') WHERE type = 'TABLE'; count ------- 1 (1 row) SELECT count(*) FROM user_objects('foo') WHERE type = 'TYPE'; count ------- 2 (1 row) ROLLBACK;