Обсуждение: Typo in misc_sanity.sql?

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

Typo in misc_sanity.sql?

От
Japin Li
Дата:
Hi, hackers

I found the misc_sanity has a SQL to check system catalogs that
do not have primary keys, however, in current exceptions it says
pg_depend, pg_shdepend don't have a unique key.

Should we fix it?

-- 
Regrads,
Japin Li.
ChengDu WenWu Information Technology Co.,Ltd.


Вложения

Re: Typo in misc_sanity.sql?

От
Bharath Rupireddy
Дата:
On Mon, Jul 25, 2022 at 1:24 PM Japin Li <japinli@hotmail.com> wrote:
>
>
> Hi, hackers
>
> I found the misc_sanity has a SQL to check system catalogs that
> do not have primary keys, however, in current exceptions it says
> pg_depend, pg_shdepend don't have a unique key.
>
> Should we fix it?

Indeed. There's a clear difference between primary key and unique key.

The patch LGTM.

Regards,
Bharath Rupireddy.



Re: Typo in misc_sanity.sql?

От
Tom Lane
Дата:
Japin Li <japinli@hotmail.com> writes:
> I found the misc_sanity has a SQL to check system catalogs that
> do not have primary keys, however, in current exceptions it says
> pg_depend, pg_shdepend don't have a unique key.

As indeed they do not:

regression=# \d pg_depend
              Table "pg_catalog.pg_depend"
   Column    |  Type   | Collation | Nullable | Default
-------------+---------+-----------+----------+---------
 classid     | oid     |           | not null |
 objid       | oid     |           | not null |
 objsubid    | integer |           | not null |
 refclassid  | oid     |           | not null |
 refobjid    | oid     |           | not null |
 refobjsubid | integer |           | not null |
 deptype     | "char"  |           | not null |
Indexes:
    "pg_depend_depender_index" btree (classid, objid, objsubid)
    "pg_depend_reference_index" btree (refclassid, refobjid, refobjsubid)

regression=# \d pg_shdepend
            Table "pg_catalog.pg_shdepend"
   Column   |  Type   | Collation | Nullable | Default
------------+---------+-----------+----------+---------
 dbid       | oid     |           | not null |
 classid    | oid     |           | not null |
 objid      | oid     |           | not null |
 objsubid   | integer |           | not null |
 refclassid | oid     |           | not null |
 refobjid   | oid     |           | not null |
 deptype    | "char"  |           | not null |
Indexes:
    "pg_shdepend_depender_index" btree (dbid, classid, objid, objsubid), tablespace "pg_global"
    "pg_shdepend_reference_index" btree (refclassid, refobjid), tablespace "pg_global"
Tablespace: "pg_global"

Your proposed wording seems to give strictly less information,
so I do not see why it's an improvement.

            regards, tom lane



Re: Typo in misc_sanity.sql?

От
Japin Li
Дата:
On Mon, 25 Jul 2022 at 19:39, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Japin Li <japinli@hotmail.com> writes:
>> I found the misc_sanity has a SQL to check system catalogs that
>> do not have primary keys, however, in current exceptions it says
>> pg_depend, pg_shdepend don't have a unique key.
>
> As indeed they do not:
>
> regression=# \d pg_depend
>               Table "pg_catalog.pg_depend"
>    Column    |  Type   | Collation | Nullable | Default 
> -------------+---------+-----------+----------+---------
>  classid     | oid     |           | not null | 
>  objid       | oid     |           | not null | 
>  objsubid    | integer |           | not null | 
>  refclassid  | oid     |           | not null | 
>  refobjid    | oid     |           | not null | 
>  refobjsubid | integer |           | not null | 
>  deptype     | "char"  |           | not null | 
> Indexes:
>     "pg_depend_depender_index" btree (classid, objid, objsubid)
>     "pg_depend_reference_index" btree (refclassid, refobjid, refobjsubid)
>
> regression=# \d pg_shdepend
>             Table "pg_catalog.pg_shdepend"
>    Column   |  Type   | Collation | Nullable | Default 
> ------------+---------+-----------+----------+---------
>  dbid       | oid     |           | not null | 
>  classid    | oid     |           | not null | 
>  objid      | oid     |           | not null | 
>  objsubid   | integer |           | not null | 
>  refclassid | oid     |           | not null | 
>  refobjid   | oid     |           | not null | 
>  deptype    | "char"  |           | not null | 
> Indexes:
>     "pg_shdepend_depender_index" btree (dbid, classid, objid, objsubid), tablespace "pg_global"
>     "pg_shdepend_reference_index" btree (refclassid, refobjid), tablespace "pg_global"
> Tablespace: "pg_global"
>

Yeah, they do not have unique keys, however, here we check primary keys. So,
IMO, the description exceptions should say they do not have primary keys,
rather than do not have unique keys.

-- 
Regrads,
Japin Li.
ChengDu WenWu Information Technology Co.,Ltd.



Re: Typo in misc_sanity.sql?

От
Peter Eisentraut
Дата:
On 25.07.22 14:04, Japin Li wrote:
> Yeah, they do not have unique keys, however, here we check primary keys. So,
> IMO, the description exceptions should say they do not have primary keys,
> rather than do not have unique keys.

The context of that check is that for each system catalog we pick one of 
the available unique keys and designate it as the one primary key.  If a 
system catalog doesn't have a unique key to choose from, then we can't 
do that, hence the comment.  Changing the comment as suggested would 
essentially be saying, this catalog has no primary key because it has no 
primary key, which wouldn't be helpful.