\di+ cannot show the same name indexes

Started by フブキダイスキover 2 years ago2 messages
#1フブキダイスキ
zhrt1446384557@gmail.com

Hi,
After I create the same name index on the heap table and the temporary
table, I can only get the temporary table's index by \di+.

create table t1(c1 int);
create temp table t2(c1 int);

create index idx1 on t1(c1);
\di+
List of relations
Schema | Name | Type | Owner | Table | Size | Description
--------+------+-------+-------+-------+--------+-------------
public | idx1 | index | zhrt | t1 | 128 kB |
(1 row)

create index idx1 on t2(c1);
\di+
List of relations
Schema | Name | Type | Owner | Table | Size | Description
-------------+------+-------+-------+-------+--------+-------------
pg_temp_298 | idx1 | index | zhrt | t2 | 128 kB |
(1 row)

Is it the expected bavior?

#2Julien Rouhaud
rjuju123@gmail.com
In reply to: フブキダイスキ (#1)
Re: \di+ cannot show the same name indexes

Hi,

On Thu, Jul 13, 2023 at 03:17:17PM +0800, フブキダイスキ wrote:

After I create the same name index on the heap table and the temporary
table, I can only get the temporary table's index by \di+.

create table t1(c1 int);
create temp table t2(c1 int);

create index idx1 on t1(c1);
\di+
List of relations
Schema | Name | Type | Owner | Table | Size | Description
--------+------+-------+-------+-------+--------+-------------
public | idx1 | index | zhrt | t1 | 128 kB |
(1 row)

create index idx1 on t2(c1);
\di+
List of relations
Schema | Name | Type | Owner | Table | Size | Description
-------------+------+-------+-------+-------+--------+-------------
pg_temp_298 | idx1 | index | zhrt | t2 | 128 kB |
(1 row)

Is it the expected bavior?

Yes, since the pg_temp schema has higher priority and those command will not
show multiple objects for the same non qualified name. You can either change
the priority with something like

SET search_path TO public, pg_temp;

to look at public (or any other schema) first, or explicitly ask for the schema
you want, e.g. \di+ public.*