Doc: clarify use of NULL to drop comments and security labels.
authorTom Lane <[email protected]>
Tue, 31 Jan 2023 19:32:24 +0000 (14:32 -0500)
committerTom Lane <[email protected]>
Tue, 31 Jan 2023 19:32:24 +0000 (14:32 -0500)
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/[email protected]

doc/src/sgml/ref/comment.sgml
doc/src/sgml/ref/security_label.sgml

index 7499da1d62a2f32195abfd2eea1beb868c846777..5b43c56b13359ac7b82509e991da14f74a22bdd9 100644 (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>
index 20a839ff0c32a7b30ab7c3702893ca54c299d133..5f96b7e1ded8ca498a70403d86eb4ee38d08be01 100644 (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>