Doc: clarify use of NULL to drop comments and security labels.

This was only mentioned in the description of the text/label, which
are marked as being in quotes in the synopsis, which can cause
confusion (as witnessed on IRC).

Also separate the literal and NULL cases in the parameter list, per
suggestion from Tom Lane.

Also add an example of dropping a security label.

Dagfinn Ilmari Mannsåker, with some tweaks by me

Discussion: https://postgr.es/m/87sffqk4zp.fsf@wibble.ilmari.org
This commit is contained in:
Tom Lane 2023-01-31 14:32:24 -05:00
parent eae0e20def
commit 856ca51a23
2 changed files with 34 additions and 11 deletions

View File

@ -66,7 +66,7 @@ COMMENT ON
TRIGGER <replaceable class="parameter">trigger_name</replaceable> ON <replaceable class="parameter">table_name</replaceable> |
TYPE <replaceable class="parameter">object_name</replaceable> |
VIEW <replaceable class="parameter">object_name</replaceable>
} IS '<replaceable class="parameter">text</replaceable>'
} IS { <replaceable class="parameter">string_literal</replaceable> | NULL }
<phrase>where <replaceable>aggregate_signature</replaceable> is:</phrase>
@ -263,11 +263,19 @@ COMMENT ON
</varlistentry>
<varlistentry>
<term><replaceable class="parameter">text</replaceable></term>
<term><replaceable class="parameter">string_literal</replaceable></term>
<listitem>
<para>
The new comment, written as a string literal; or <literal>NULL</literal>
to drop the comment.
The new comment contents, written as a string literal.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>NULL</literal></term>
<listitem>
<para>
Write <literal>NULL</literal> to drop the comment.
</para>
</listitem>
</varlistentry>

View File

@ -44,7 +44,7 @@ SECURITY LABEL [ FOR <replaceable class="parameter">provider</replaceable> ] ON
TABLESPACE <replaceable class="parameter">object_name</replaceable> |
TYPE <replaceable class="parameter">object_name</replaceable> |
VIEW <replaceable class="parameter">object_name</replaceable>
} IS '<replaceable class="parameter">label</replaceable>'
} IS { <replaceable class="parameter">string_literal</replaceable> | NULL }
<phrase>where <replaceable>aggregate_signature</replaceable> is:</phrase>
@ -178,11 +178,19 @@ SECURITY LABEL [ FOR <replaceable class="parameter">provider</replaceable> ] ON
</varlistentry>
<varlistentry>
<term><replaceable class="parameter">label</replaceable></term>
<term><replaceable class="parameter">string_literal</replaceable></term>
<listitem>
<para>
The new security label, written as a string literal; or <literal>NULL</literal>
to drop the security label.
The new setting of the security label, written as a string literal.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>NULL</literal></term>
<listitem>
<para>
Write <literal>NULL</literal> to drop the security label.
</para>
</listitem>
</varlistentry>
@ -193,12 +201,19 @@ SECURITY LABEL [ FOR <replaceable class="parameter">provider</replaceable> ] ON
<title>Examples</title>
<para>
The following example shows how the security label of a table might
be changed.
The following example shows how the security label of a table could
be set or changed:
<programlisting>
SECURITY LABEL FOR selinux ON TABLE mytable IS 'system_u:object_r:sepgsql_table_t:s0';
</programlisting></para>
</programlisting>
To remove the label:
<programlisting>
SECURITY LABEL FOR selinux ON TABLE mytable IS NULL;
</programlisting>
</para>
</refsect1>
<refsect1>