On Thu, Jul 19, 2018 at 1:11 AM Alexander Korotkov <
a.korot...@postgrespro.ru> wrote:

> On Wed, Jul 18, 2018 at 11:14 PM David G. Johnston <
> david.g.johns...@gmail.com> wrote:
>
>> On Wed, Jul 18, 2018 at 12:55 PM, Tom Lane <t...@sss.pgh.pa.us> wrote:
>>
>>>
>>> regression=# \d tbl_include_reg_idx
>>> Index "public.tbl_include_reg_idx"
>>>  Column |  Type   | Key | Definition
>>> --------+---------+------------------
>>>  c1     | integer | t   | c1
>>>  c2     | integer | t   | c2
>>>  c3     | integer | f   | c3
>>>  c4     | box     | f   | c4
>>> btree, for table "public.tbl_include_reg"
>>>
>>
>> ​+1 for the additional column indicating whether the column is being
>> treated as key data or supplemental included data.​
>>
>
> +1
> And especially I don't think we should place word "INCLUDE" to the
> definition column.
>
> ​-1 for printing a boolean t/f; would rather spell it out:
>>
>
> IMHO, t/f have advantage of brevity.  From my point of view, covering
> indexes are not so evident feature.  So, users need to spend some time
> reading documentation before realizing what they are and how to use them.
> So, I don't expect that short designation of INCLUDE columns as "non-key"
> (Key == false) columns could be discouraging here.
>

I don't think there is an established practice on how to display this sort
of info, but I see that both styles already exist, namely:

=# \dL
                       List of languages
    Name    |  Owner   | Trusted |         Description
------------+----------+---------+------------------------------
 plpgsql    | postgres | t       | PL/pgSQL procedural language
 plproxy    | postgres | f       |
...

and

=# \dC
                                         List of casts
         Source type         |         Target type         |      Function
    |   Implicit?
-----------------------------+-----------------------------+--------------------+---------------
 abstime                     | date                        | date
     | in assignment
 abstime                     | integer                     | (binary
coercible) | no
 abstime                     | timestamp without time zone | timestamp
    | yes
...

I like the second option more, for readability reasons and because it is
easier to extend if ever needed.

Given that the documentation refers to included columns as "non-key
columns", it seems natural to me to name the \d output column "Key?" and
use "yes/no" as the values.

Regards,
--
Alex

Reply via email to