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<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 >