From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Gauthier, Dave" <dave(dot)gauthier(at)intel(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: pg_tables and temp tables |
Date: | 2007-11-12 16:05:34 |
Message-ID: | 6282.1194883534@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
"Gauthier, Dave" <dave(dot)gauthier(at)intel(dot)com> writes:
> How user specific is pg_tables when it comes to temporary tables?
regression=# \d pg_tables
...
View definition:
SELECT n.nspname AS schemaname, c.relname AS tablename, pg_get_userbyid(c.relowner) AS tableowner, t.spcname AS tablespace, c.relhasindex AS hasindexes, c.relhasrules AS hasrules, c.reltriggers > 0 AS hastriggers
FROM pg_class c
LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
LEFT JOIN pg_tablespace t ON t.oid = c.reltablespace
WHERE c.relkind = 'r'::"char";
Not at all, apparently. This looks to me like it will pick up every
table in the database, temporary or otherwise. Perhaps that's not a
good idea ...
> I can live with this as long as there's a way that I can determine if
> the table it found does not belong to the current session.
You need to pay attention to the schema it was found in.
"has_schema_privilege(schemaname, 'USAGE')" might be a suitable filter.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Erik Jones | 2007-11-12 16:08:10 | Re: Filter tables |
Previous Message | Dimitri Fontaine | 2007-11-12 16:05:18 | Re: Filter tables |