This is not the only place in the system catalogs where NULL is

effectively used to mean a default value that could also be spelled
out explicitly.  (ACLs behave that way, and useconfig/datconfig
do too IIRC.)

It's a bit of a hack, but it saves table space and backend code ---
without this convention the default would have to be inserted "manually"
since we have no mechanism to supply defaults when C code is forming a
new catalog tuple.

I'm inclined to leave the code alone.  But Alvaro is right that it'd be
good to point out the 'infinity' option in the CREATE USER and ALTER
USER man pages.  (Doc patch please?)

Alvaro Herrera
This commit is contained in:
Bruce Momjian 2003-03-20 20:05:32 +00:00
parent 0fe77d7283
commit b2e09fcd5e

View File

@ -1,5 +1,5 @@
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_user.sgml,v 1.24 2003/01/19 00:13:29 momjian Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_user.sgml,v 1.25 2003/03/20 20:05:32 momjian Exp $
PostgreSQL documentation
-->
@ -124,7 +124,8 @@ ALTER USER <replaceable class="PARAMETER">username</replaceable> RESET <replacea
<listitem>
<para>
The date (and, optionally, the time)
at which this user's password is to expire.
at which this user's password is to expire. To set the password
never to expire, use 'infinity'.
</para>
</listitem>
</varlistentry>
@ -232,6 +233,13 @@ ALTER USER chris VALID UNTIL 'May 4 12:00:00 1998 +1';
</programlisting>
</para>
<para>
Make a user valid forever:
<programlisting>
ALTER USER fred VALID UNTIL 'infinity';
</programlisting>
</para>
<para>
Give a user the ability to create other users and new databases: