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

Started by Tyler Kellenabout 15 years ago3 messagesbugs
Jump to latest
#1Tyler Kellen
tyler@sleekcode.net

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

#2Heikki Linnakangas
heikki.linnakangas@enterprisedb.com
In reply to: Tyler Kellen (#1)
Re: BUG #5838: tables of the same name in different schemas

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

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Heikki Linnakangas (#2)
Re: BUG #5838: tables of the same name in different schemas

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