"Nigel J. Andrews" <nandrews@investsystems.co.uk> writes:
> Coming back to this subject if I may but only briefly, I hope. How
> about making a slight change to current_schemas() and including an
> optional argument such that something like:
> current_schemas(1)
> returns the complete list of schemas in the search path including the
> implicit temporary space and the pg_catalog (if not already listed
> obviously), while current_schemas() and current_schemas(0) behave as
> now.
I don't really care for that syntax, but certainly we could talk about
providing a version of current_schemas that tells the Whole Truth.
> Having something like this would enable client's like PgAccess to
> determine the complete list of visible objects.
Well, no, it wouldn't. Say there are multiple tables named foo in
different namespaces in your search path (eg, a temp table hiding a
permanent table of the same name). A test like "where current_schemas
*= relnamespace" won't reflect this correctly.
I'm suspecting that what we really need is some kind of
"is_visible_table()" test function, and then you'd doselect * from pg_class where is_visible_table(oid);
At least I've not been able to think of a better idea than that.
regards, tom lane