Обсуждение: DOCS - "\d mytable" also shows any publications that publish mytable
I was looking at "\d" documentation yesterday. The psql table describe (e.g. "\d mytable") will display a list of any "Publications:" that are publishing the specified table. Somehow, this ability had escaped being mentioned in the psql reference documentation. Here is a trivial patch to fix that omission. ====== Kind Regards, Peter Smith. Fujitsu Australia
Вложения
See here [1] ====== [1] https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-META-COMMAND-D On Tue, Dec 23, 2025 at 8:07 AM Peter Smith <smithpb2250@gmail.com> wrote: > > I was looking at "\d" documentation yesterday. > > The psql table describe (e.g. "\d mytable") will display a list of any > "Publications:" that are publishing the specified table. Somehow, this > ability had escaped being mentioned in the psql reference > documentation. > > Here is a trivial patch to fix that omission. > > ====== > Kind Regards, > Peter Smith. > Fujitsu Australia
On 12/22/25 10:07 PM, Peter Smith wrote: > Here is a trivial patch to fix that omission. The patch looks good to me as this seems like useful information and I do not think it needs to be added in more places since e.g. \d+ does not have its own entry. Andreas
> On Dec 23, 2025, at 05:07, Peter Smith <smithpb2250@gmail.com> wrote:
>
> I was looking at "\d" documentation yesterday.
>
> The psql table describe (e.g. "\d mytable") will display a list of any
> "Publications:" that are publishing the specified table. Somehow, this
> ability had escaped being mentioned in the psql reference
> documentation.
>
> Here is a trivial patch to fix that omission.
>
> ======
> Kind Regards,
> Peter Smith.
> Fujitsu Australia
> <v1-0001-DOCS-psql-describe-table-can-list-publications.patch>
Not only publication, “\d table_name” also shows partition information:
```
evantest=# \d t_part;
Partitioned table "public.t_part"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
id | integer | | |
val | integer | | |
Partition key: RANGE (id)
Publications:
"mypub"
Number of partitions: 3 (Use \d+ to list them.)
evantest=# \d t_part_p1;
Table "public.t_part_p1"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
id | integer | | |
val | integer | | |
Partition of: t_part FOR VALUES FROM (0) TO (100)
```
As you updating this section, you may add “partition info” as well.
Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/
On Tue, Dec 23, 2025 at 7:28 PM Chao Li <li.evan.chao@gmail.com> wrote:
>
>
>
> > On Dec 23, 2025, at 05:07, Peter Smith <smithpb2250@gmail.com> wrote:
> >
> > I was looking at "\d" documentation yesterday.
> >
> > The psql table describe (e.g. "\d mytable") will display a list of any
> > "Publications:" that are publishing the specified table. Somehow, this
> > ability had escaped being mentioned in the psql reference
> > documentation.
> >
> > Here is a trivial patch to fix that omission.
> >
> > ======
> > Kind Regards,
> > Peter Smith.
> > Fujitsu Australia
> > <v1-0001-DOCS-psql-describe-table-can-list-publications.patch>
>
> Not only publication, “\d table_name” also shows partition information:
>
> ```
> evantest=# \d t_part;
> Partitioned table "public.t_part"
> Column | Type | Collation | Nullable | Default
> --------+---------+-----------+----------+---------
> id | integer | | |
> val | integer | | |
> Partition key: RANGE (id)
> Publications:
> "mypub"
> Number of partitions: 3 (Use \d+ to list them.)
>
> evantest=# \d t_part_p1;
> Table "public.t_part_p1"
> Column | Type | Collation | Nullable | Default
> --------+---------+-----------+----------+---------
> id | integer | | |
> val | integer | | |
> Partition of: t_part FOR VALUES FROM (0) TO (100)
> ```
>
> As you updating this section, you may add “partition info” as well.
>
OK, I've added some text about partitions. See patch v2.
~~~
TBH, the \d and \d+ partition output looked strange to me.
test_pub=# \d+ tp
Partitioned table "public.tp"
Column | Type | Collation | Nullable | Default | Storage |
Compression | Stats target | Description
--------+---------+-----------+----------+---------+---------+-------------+--------------+-------------
a | integer | | | | plain |
| |
Partition key: RANGE (a)
Publications:
"pub1"
"pub3"
Partitions: tp1 FOR VALUES FROM (1) TO (10),
tp2 FOR VALUES FROM (10) TO (20)
For example:
a) Why isn't the "Partition key:" and "Partitions:" info kept together?
b) Why does the "Partitions:" list indentation look different?
Anyway, those are questions for another thread and another year.
======
Kind Regards,
Peter Smith.
Fujitsu Australia
Вложения
> On Dec 24, 2025, at 06:20, Peter Smith <smithpb2250@gmail.com> wrote: > > On Tue, Dec 23, 2025 at 7:28 PM Chao Li <li.evan.chao@gmail.com> wrote: >> >> >> >>> On Dec 23, 2025, at 05:07, Peter Smith <smithpb2250@gmail.com> wrote: >>> >>> I was looking at "\d" documentation yesterday. >>> >>> The psql table describe (e.g. "\d mytable") will display a list of any >>> "Publications:" that are publishing the specified table. Somehow, this >>> ability had escaped being mentioned in the psql reference >>> documentation. >>> >>> Here is a trivial patch to fix that omission. >>> >>> ====== >>> Kind Regards, >>> Peter Smith. >>> Fujitsu Australia >>> <v1-0001-DOCS-psql-describe-table-can-list-publications.patch> >> >> Not only publication, “\d table_name” also shows partition information: >> >> ``` >> evantest=# \d t_part; >> Partitioned table "public.t_part" >> Column | Type | Collation | Nullable | Default >> --------+---------+-----------+----------+--------- >> id | integer | | | >> val | integer | | | >> Partition key: RANGE (id) >> Publications: >> "mypub" >> Number of partitions: 3 (Use \d+ to list them.) >> >> evantest=# \d t_part_p1; >> Table "public.t_part_p1" >> Column | Type | Collation | Nullable | Default >> --------+---------+-----------+----------+--------- >> id | integer | | | >> val | integer | | | >> Partition of: t_part FOR VALUES FROM (0) TO (100) >> ``` >> >> As you updating this section, you may add “partition info” as well. >> > > OK, I've added some text about partitions. See patch v2. > > ~~~ > > TBH, the \d and \d+ partition output looked strange to me. > > test_pub=# \d+ tp > Partitioned table "public.tp" > Column | Type | Collation | Nullable | Default | Storage | > Compression | Stats target | Description > --------+---------+-----------+----------+---------+---------+-------------+--------------+------------- > a | integer | | | | plain | > | | > Partition key: RANGE (a) > Publications: > "pub1" > "pub3" > Partitions: tp1 FOR VALUES FROM (1) TO (10), > tp2 FOR VALUES FROM (10) TO (20) > > For example: > a) Why isn't the "Partition key:" and "Partitions:" info kept together? I guess it shows the plus stuff after the regular stuff. > b) Why does the "Partitions:" list indentation look different? Yeah, the list indentation should be identical. > > Anyway, those are questions for another thread and another year. > > ====== > Kind Regards, > Peter Smith. > Fujitsu Australia > <v2-0001-DOCS-psql-describe-table-can-list-publications-an.patch> V2 looks good to me. Best regards, -- Chao Li (Evan) HighGo Software Co., Ltd. https://www.highgo.com/
On Wed, Dec 24, 2025 at 8:41 AM Chao Li <li.evan.chao@gmail.com> wrote: > > > > > On Dec 24, 2025, at 06:20, Peter Smith <smithpb2250@gmail.com> wrote: > > > > On Tue, Dec 23, 2025 at 7:28 PM Chao Li <li.evan.chao@gmail.com> wrote: > >> > >> > >> > >>> On Dec 23, 2025, at 05:07, Peter Smith <smithpb2250@gmail.com> wrote: > >>> > >>> I was looking at "\d" documentation yesterday. > >>> > >>> The psql table describe (e.g. "\d mytable") will display a list of any > >>> "Publications:" that are publishing the specified table. Somehow, this > >>> ability had escaped being mentioned in the psql reference > >>> documentation. > >>> > >>> Here is a trivial patch to fix that omission. > >>> > >>> ====== > >>> Kind Regards, > >>> Peter Smith. > >>> Fujitsu Australia > >>> <v1-0001-DOCS-psql-describe-table-can-list-publications.patch> > >> > >> Not only publication, “\d table_name” also shows partition information: > >> > >> ``` > >> evantest=# \d t_part; > >> Partitioned table "public.t_part" > >> Column | Type | Collation | Nullable | Default > >> --------+---------+-----------+----------+--------- > >> id | integer | | | > >> val | integer | | | > >> Partition key: RANGE (id) > >> Publications: > >> "mypub" > >> Number of partitions: 3 (Use \d+ to list them.) > >> > >> evantest=# \d t_part_p1; > >> Table "public.t_part_p1" > >> Column | Type | Collation | Nullable | Default > >> --------+---------+-----------+----------+--------- > >> id | integer | | | > >> val | integer | | | > >> Partition of: t_part FOR VALUES FROM (0) TO (100) > >> ``` > >> > >> As you updating this section, you may add “partition info” as well. > >> > > > > OK, I've added some text about partitions. See patch v2. > > > > ~~~ > > > > TBH, the \d and \d+ partition output looked strange to me. > > > > test_pub=# \d+ tp > > Partitioned table "public.tp" > > Column | Type | Collation | Nullable | Default | Storage | > > Compression | Stats target | Description > > --------+---------+-----------+----------+---------+---------+-------------+--------------+------------- > > a | integer | | | | plain | > > | | > > Partition key: RANGE (a) > > Publications: > > "pub1" > > "pub3" > > Partitions: tp1 FOR VALUES FROM (1) TO (10), > > tp2 FOR VALUES FROM (10) TO (20) > > > > For example: > > a) Why isn't the "Partition key:" and "Partitions:" info kept together? > > I guess it shows the plus stuff after the regular stuff. > > > b) Why does the "Partitions:" list indentation look different? > > Yeah, the list indentation should be identical. > > > > > Anyway, those are questions for another thread and another year. > > > > ====== > > Kind Regards, > > Peter Smith. > > Fujitsu Australia > > <v2-0001-DOCS-psql-describe-table-can-list-publications-an.patch> > > V2 looks good to me. \d table also seems to display tablespaces, policies, and other objects. Should the documentation try to list all possible objects that can be shown? If maintaining a complete list is difficult, would a more general description like "Associated objects, including indexes, constraints, rules, publications, and so on, are also shown." be sufficient instead of enumerating everything? Regards, -- Fujii Masao