Thread: BUG #5838: tables of the same name in different schemas

BUG #5838: tables of the same name in different schemas

From
"Tyler Kellen"
Date:
The following bug has been logged online:

Bug reference:      5838
Logged by:          Tyler Kellen
Email address:      tyler@sleekcode.net
PostgreSQL version: 9.0.2
Operating system:   Win7 64
Description:        tables of the same name in different schemas
Details:

Given two objects of the same name in different schemas, when both schemas
are in the search_path, \d only shows the object from the first schema
listed.

Reproduction:
CREATE SCHEMA s1;
CREATE SCHEMA s2;
CREATE TABLE s1.test ( id int );
CREATE TABLE s2.test ( id int );
SET search_path TO s1,s2;
\d
SET search_path TO s2,s1;
\d

Re: BUG #5838: tables of the same name in different schemas

From
Heikki Linnakangas
Date:
On 14.01.2011 10:07, Tyler Kellen wrote:
> Given two objects of the same name in different schemas, when both schemas
> are in the search_path, \d only shows the object from the first schema
> listed.
>
> Reproduction:
> CREATE SCHEMA s1;
> CREATE SCHEMA s2;
> CREATE TABLE s1.test ( id int );
> CREATE TABLE s2.test ( id int );
> SET search_path TO s1,s2;
> \d
> SET search_path TO s2,s1;
> \d

That's intentional. \d lists the object that are currently visible in
your search_path. The object in the schema that's later in search_path
is being shadowed by the one in the first schema, so it's not visible.

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

Re: BUG #5838: tables of the same name in different schemas

From
Tom Lane
Date:
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> writes:
> On 14.01.2011 10:07, Tyler Kellen wrote:
>> Given two objects of the same name in different schemas, when both schemas
>> are in the search_path, \d only shows the object from the first schema
>> listed.

> That's intentional. \d lists the object that are currently visible in
> your search_path. The object in the schema that's later in search_path
> is being shadowed by the one in the first schema, so it's not visible.

You can use "\d *.*" if you want to see objects that are not visible
in the search path.

            regards, tom lane