+ <sect2><title>Notes</title>
+ <para>None.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mysql">
+ <title>MySQL</title>
+ <sect2>
+ <title>Libraries</title>
+ <para>The &mysql; back-end requires the &mysql; C
+ client library (<filename>libmysqlclient.so</filename>).
+ The location of this library is specified
+ via <symbol>*mysql-so-load-path*</symbol>, which defaults
+ to <filename>/usr/lib/libmysqlclient.so</filename>.
+ Additional flags to <application>ld</application> needed for
+ linking are specified via <symbol>*mysql-so-libraries*</symbol>,
+ which defaults to <symbol>("-lc")</symbol>.
+ </para>
+ </sect2>
+ <sect2>
+ <title>Initialization</title>
+ <para>
+ Use
+ <screen>
+(asdf:operate 'asdf:load-op 'clsql-mysql)
+ </screen>
+ to load the &mysql; back-end. The database type for the MySQL
+ back-end is <symbol>:mysql</symbol>.
+ </para>
+ </sect2>
+ <sect2>
+ <title>Connection Specification</title>
+ <sect3>
+ <title>Syntax of connection-spec</title>
+ <synopsis>(<replaceable>host</replaceable> <replaceable>db</replaceable> <replaceable>user</replaceable> <replaceable>password</replaceable>)</synopsis>
+ </sect3>
+ <sect3>
+ <title>Description of connection-spec</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>host</parameter></term>
+ <listitem>
+ <para>String representing the hostname or IP address
+ the &mysql; server resides on, or <symbol>nil</symbol>
+ to indicate the localhost.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>db</parameter></term>
+ <listitem>
+ <para>String representing the name of the database on
+ the server to connect to.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>user</parameter></term>
+ <listitem>
+ <para>String representing the user name to use for
+ authentication, or <symbol>nil</symbol> to use the
+ current Unix user ID.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>password</parameter></term>
+ <listitem>
+ <para>String representing the unencrypted password to
+ use for authentication, or <symbol>nil</symbol> if
+ the authentication record has an empty password
+ field.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+ </sect2>
+ <sect2><title>Notes</title>
+ <sect3><title>FDDL</title>
+ <itemizedlist mark='opencircle'>
+ <listitem>
+ <para>
+ <link
+ linkend="drop-index"><function>drop-index</function></link>
+ requires a table to be specified with the
+ <symbol>:on</symbol> keyword parameter.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <glossterm linkend="gloss-view">views</glossterm> are not
+ supported by &mysql;.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <symbol>:transactions</symbol> keyword argument to
+ <link
+ linkend="create-table"><function>create-table</function></link>
+ controls whether or not the created table is an InnoDB
+ table which supports transactions.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <symbol>:owner</symbol> keyword argument to the FDDL functions
+ for listing and testing for database objects is ignored.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+ <sect3><title>FDML</title>
+ <itemizedlist mark='opencircle'>
+ <listitem>
+ <para>
+ Prior to version 4.1, &mysql; does not support nested
+ subqueries in calls to <link
+ linkend="select"><function>select</function></link>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+ <sect3><title>Symbolic SQL Syntax</title>
+ <itemizedlist mark='opencircle'>
+ <listitem>
+ <para>
+ &mysql; does not support the <function>||</function>
+ concatenation operator. Use <function>concat</function>
+ instead.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ &mysql; does not support the <function>substr</function>
+ operator. Use <function>substring</function> instead.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ &mysql; does not support the
+ <function>intersect</function> and
+ <function>except</function> set operations.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ &mysql; (version 4.0 and later) does not support string
+ table aliases unless the server is started with
+ ANSI_QUOTES enabled.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="odbc">
+ <title>&odbc;</title>
+ <sect2>
+ <title>Libraries</title>
+ <para>
+ The &odbc; back-end requires access to an &odbc; driver
+ manager as well as &odbc; drivers for the underlying
+ database server. &clsql; has been tested with
+ <application>unixODBC</application> ODBC Driver Manager as
+ well as Microsoft's ODBC manager. These driver managers
+ have been tested with the <ulink
+ url="http://odbc.postgresql.org">
+ <citetitle>psqlODBC</citetitle></ulink> driver for
+ &postgresql; and the <ulink
+ url="http://www.mysql.com/products/connector/odbc/">
+ <citetitle>MyODBC</citetitle></ulink> driver for &mysql;.
+ </para>
+ </sect2>
+ <sect2>
+ <title>Initialization</title>
+ <para>
+ Use
+ <screen>
+(asdf:operate 'asdf:load-op 'clsql-odbc)
+ </screen>
+ to load the &odbc; back-end. The database type for the &odbc;
+ back-end is <symbol>:odbc</symbol>.
+ </para>
+ </sect2>
+ <sect2>
+ <title>Connection Specification</title>
+ <sect3>
+ <title>Syntax of connection-spec</title>
+ <synopsis>(<replaceable>dsn</replaceable> <replaceable>user</replaceable> <replaceable>password</replaceable>)</synopsis>
+ </sect3>
+ <sect3>
+ <title>Description of connection-spec</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>dsn</parameter></term>
+ <listitem>
+ <para>String representing the ODBC data source name.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>user</parameter></term>
+ <listitem>
+ <para>String representing the user name to use for
+ authentication.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>password</parameter></term>
+ <listitem>
+ <para>String representing the unencrypted password to
+ use for authentication.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+ </sect2>
+ <sect2><title>Notes</title>
+ <sect3><title>FDDL</title>
+ <itemizedlist mark='opencircle'>
+ <listitem>
+ <para>
+ The <symbol>:owner</symbol> keyword argument to the FDDL functions
+ for listing and testing for database objects is ignored.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+ </sect2>