Обсуждение: \di+ cannot show the same name indexes

Поиск
Список
Период
Сортировка

\di+ cannot show the same name indexes

От
フブキダイスキ
Дата:
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?

Re: \di+ cannot show the same name indexes

От
Julien Rouhaud
Дата:
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.*