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
>

Reply via email to