Re: Issue with listing same tablenames from different schemas in the search_path - Mailing list pgsql-hackers

From Nikhil Sontakke
Subject Re: Issue with listing same tablenames from different schemas in the search_path
Date
Msg-id CANgU5ZemraTtyj7T-TqKgnRpdehi90z7A2MDku2EOZbAQFkG5g@mail.gmail.com
Whole thread Raw
In response to Re: Issue with listing same tablenames from different schemas in the search_path  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
List pgsql-hackers
    postgres=#create table public.sample(x int);
postgres=#create schema new;
postgres=#create table new.sample(x int);
postgres=#set search_path=public,new;

postgres=#\dt
Schema | Name | Type | Owner
-------------------------------------------
public     |  sample | table | postgres
(1 row)

We should have seen two entries in the above listing. So looks like a bug to
me.

No, that's the way it's designed to work. It shows the objects that are visible to you, without schema-qualifying them. See http://www.postgresql.org/docs/9.0/interactive/app-psql.html#APP-PSQL-PATTERNS :


Hmmm, ok. Makes sense after reading the documentation, but seems a bit surprising/confusing at first glance. Never mind.

Regards,
Nikhils
 
Whenever the pattern parameter is omitted completely, the \d commands display all objects that are visible in the current schema search path — this is equivalent to using * as the pattern. (An object is said to be visible if its containing schema is in the search path and no object of the same kind and name appears earlier in the search path. This is equivalent to the statement that the object can be referenced by name without explicit schema qualification.) To see all objects in the database regardless of visibility, use *.* as the pattern.

--
 Heikki Linnakangas
 EnterpriseDB   http://www.enterprisedb.com

pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: Issue with listing same tablenames from different schemas in the search_path
Next
From: Florian Pflug
Date:
Subject: Re: Range Types - typo + NULL string constructor