+ <refsect1>
+ <title>Slot Options</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <parameter>:db-kind</parameter> - specifies the kind of
+ DB mapping which is performed for this slot and defaults
+ to <parameter>:base</parameter> which indicates that the
+ slot maps to an ordinary column of the database table. A
+ <parameter>:db-kind</parameter> value of
+ <parameter>:key</parameter> indicates that this slot is
+ a special kind of <parameter>:base</parameter> slot
+ which maps onto a column which is one of the unique keys
+ for the database table, the value
+ <parameter>:join</parameter> indicates this slot
+ represents a join onto another View Class which contains
+ View Class objects, and the value
+ <parameter>:virtual</parameter> indicates a standard
+ CLOS slot which does not map onto columns of the
+ database table.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>:db-info</parameter> - if a slot is specified with
+ <parameter>:db-kind</parameter> <parameter>:join</parameter>, the
+ slot option <parameter>:db-info</parameter> contains a list
+ which specifies the nature of the join.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>:type</parameter> - for slots of
+ <parameter>:db-kind</parameter> <parameter>:base</parameter> or
+ <parameter>:key</parameter>, the <parameter>:type</parameter> slot
+ option has a special interpretation such that Lisp
+ types, such as string, integer and float are
+ automatically converted into appropriate SQL types for
+ the column onto which the slot maps. This behaviour may
+ be overridden using the <parameter>:db-type</parameter> slot
+ option. The valid values are:
+ <simplelist>
+ <member>
+ <parameter>string</parameter> - a variable length character field up to
+ <link linkend="default-string-length">*default-string-length*</link> characters.
+ </member>
+ <member>
+ <parameter>(string n)</parameter> - a fixed length character field
+ <parameter>n</parameter> characters long.
+ </member>
+ <member>
+ <parameter>varchar</parameter> - a variable length character field up to
+ <link linkend="default-string-length">*default-string-length*</link> characters.
+ </member>
+ <member>
+ <parameter>(varchar n)</parameter> - a variable length character field up to
+ <parameter>n</parameter> characters in length.
+ </member>
+ <member>
+ <parameter>char</parameter> - a single character field
+ </member>
+ <member><parameter>integer</parameter> - signed integer at least 32-bits wide</member>
+ <member><parameter>(integer n)</parameter></member>
+ <member><parameter>float</parameter></member>
+ <member><parameter>(float n)</parameter></member>
+ <member><parameter>long-float</parameter></member>
+ <member><parameter>number</parameter></member>
+ <member><parameter>(number n)</parameter></member>
+ <member><parameter>(number n p)</parameter></member>
+ <member>
+ <parameter>smallint</parameter> - An integer column 16-bits
+ wide. [not supported by all database backends]
+ </member>
+ <member>
+ <parameter>bigint</parameter> - An integer column
+ 64-bits wide. [not supported by all database backends]
+ </member>
+ <member>
+ <parameter>universal-time</parameter> - an integer
+ field sufficiently wide to store a
+ universal-time. On most databases, a slot of this
+ type assigned a SQL type of
+ <parameter>BIGINT</parameter>
+ </member>
+ <member>
+ <parameter>wall-time</parameter> - a slot which
+ stores a date and time in a SQL timestamp
+ column. &clsql; provides a number of time
+ manipulation functions to support objects of type
+ <type>wall-time</type>.
+ </member>
+ <member>
+ <parameter>duration</parameter> - stores a <type>duration</type> structure.
+ &clsql; provides routines for <type>wall-time</type> and <type>duration</type>
+ processing.
+ </member>
+ <member><parameter>boolean</parameter> - stores a &t; or &nil; value.</member>
+ <member>
+ <parameter>generalized-boolean</parameter> - similar
+ to a <parameter>boolean</parameter> in that either a
+ &t; or &nil; value is stored in the SQL
+ database. However, any Lisp object can be stored in
+ the Lisp object. A Lisp value of &nil; is stored as
+ <constant>FALSE</constant> in the database, any
+ other Lisp value is stored as
+ <constant>TRUE</constant>.
+ </member>
+ <member>
+ <parameter>keyword</parameter> - stores a keyword
+ </member>
+ <member><parameter>symbol</parameter> - stores a symbol</member>
+ <member>
+ <parameter>list</parameter> - stores a list by writing it to a string. The items
+ in the list must be able to be readable written.
+ </member>
+ <member><parameter>vector</parameter> - stores a vector similarly to <parameter>list</parameter></member>
+ <member><parameter>array</parameter> - stores a array similarly to <parameter>list</parameter></member>
+ </simplelist>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>:column</parameter> - specifies the name of
+ the SQL column which the slot maps onto, if
+ <parameter>:db-kind</parameter> is not
+ <parameter>:virtual</parameter>, and defaults to the
+ slot name.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>:void-value</parameter> - specifies
+ the value to store in the Lisp instance if the SQL value is NULL and defaults
+ to NIL.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>:db-constraints</parameter> - is a string
+ representing an SQL table constraint expression or a
+ list of such strings.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>:db-type</parameter> - a string to specify the SQL
+ column type. If specified, this string overrides the SQL
+ column type as computed from the <parameter>:type</parameter>
+ slot value.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </refsect1>
+ <refsect1>
+ <title>Class Options</title>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <parameter>:base-table</parameter> - specifies the name of the
+ SQL database table. The default value is the class name.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </refsect1>