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
<!--
-$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
-->
<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>
</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: