Subject: "System roles" mentioned in psql documentation

From: Michael Paquier <[email-masked]>
Date: Thu, 23 Aug 2018 16:58:00 +0900

Hi all,

I have noticed that psql documentation mentions "system roles", however
in all other parts of the docs, we use the term "default roles".
Shouldn't we make this term more consistent and also add a link to the
table describing those roles?  Please see the attached.

Thanks,
--
Michael
diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml
index eb9d93a168..df762b811c 100644
--- a/doc/src/sgml/ref/psql-ref.sgml
+++ b/doc/src/sgml/ref/psql-ref.sgml
@@ -1521,7 +1521,8 @@ testdb=&gt;
         unified into <quote>roles</quote>, this command is now equivalent to
         <literal>\du</literal>.)
         By default, only user-created roles are shown; supply the
-        <literal>S</literal> modifier to include system roles.
+        <literal>S</literal> modifier to include default roles described in
+        <xref linkend="default-roles-table"/>.
         If <replaceable class="parameter">pattern</replaceable> is specified,
         only those roles whose names match the pattern are listed.
         If the form <literal>\dg+</literal> is used, additional information
@@ -1711,7 +1712,8 @@ testdb=&gt;
         unified into <quote>roles</quote>, this command is now equivalent to
         <literal>\dg</literal>.)
         By default, only user-created roles are shown; supply the
-        <literal>S</literal> modifier to include system roles.
+        <literal>S</literal> modifier to include default roles described
+        in <xref linkend="default-roles-table"/>.
         If <replaceable class="parameter">pattern</replaceable> is specified,
         only those roles whose names match the pattern are listed.
         If the form <literal>\du+</literal> is used, additional information

---

From: Jürgen Purtz <[email-masked]>
Date: Thu, 23 Aug 2018 10:53:35 +0200

This inconsistency is part of the more general problem that we miss a 
chapter, where our basic terms like 'database', 'cluster', 'segment', 
'catalog', 'schema', ... are explicitly defined.

Kind regards

Jürgen Purtz

---

From: "Jonathan S. Katz" <[email-masked]>
Date: Thu, 23 Aug 2018 11:28:02 -0400

> On Aug 23, 2018, at 3:58 AM, Michael Paquier <[email-masked]> wrote:
> 
> Hi all,
> 

I did a quick search for other cases of “system roles” with nothing coming
up, so it looks like you caught the only reference. LGTM.

Thanks!

Jonathan

---

From: Michael Paquier <[email-masked]>
Date: Fri, 24 Aug 2018 09:21:11 +0900

> 'catalog', 'schema', ... are explicitly defined.

You may have a point here, not in the way of reworking entirely the
documentation, but in the fact that we may want to use "system objects"
instead of "system roles".  I am not personally sure that it is a better
improvement than using "default roles", but that's a point to raise.
--
Michael

---

From: Jürgen Purtz <[email-masked]>
Date: Fri, 24 Aug 2018 11:40:19 +0200

> improvement than using "default roles", but that's a point to raise.

First, the intention of my note was to improve the complete 
documentation by defining the meaning of important terms in a separate 
chapter. The discussion about "system roles" and "default roles" is only 
one of many points where we use terms in a fuzzy way.

Second (and this seems to be the point of your mail), the term "role" is 
loosely described at the beginning of chapter 21 "A role can be thought 
of as either a database user, or ... ". In contrast to this description 
chapter 21.5 and table 21.1. use the term "role" very differently. Here 
it is used in the sense of a "capability", a "right", a "permission", an 
"allowed access" ... . This cumulates in the example at the bottom: 
"GRANT pg_signal_backend TO admin_user;"  What is the "role", the 
"pg_signal_backend" or the "admin_user"?

Kind regards
Jürgen Purtz