<sect1 id="purpose">
<title>Purpose</title>
<para>&clsql; is a Common Lisp interface to <glossterm
- linkend="gloss-sql">SQL</glossterm> databases. A number of Common
- Lisp implementations and SQL databases are supported. The general
- structure of &clsql; is based on the
- <application>CommonSQL</application>
- package by Xanalys.
+ linkend="gloss-sql">SQL</glossterm> databases. A number of Common
+ Lisp implementations and SQL databases are supported. The general
+ structure of &clsql; is based on the &commonsql; package by
+ Xanalys.
</para>
</sect1>
<sect1 id="history">
<title>History</title>
<para>
- &clsql; is written by Kevin M. Rosenberg in 2001 and was based
- substantially on Pierre R. Mai's excellent &maisql; package. In
- April 2004, Marcus Pearce ported the UncommonSQL to &clsql;
- which provides a CommonSQL-compatible API for &clsql;. The main
- changes from &maisql; are:
+ The &clsql; project was started by Kevin M. Rosenberg in 2001 to
+ support SQL access on multiple Common Lisp implementations using
+ the &uffi; library. The initial code was based substantially on
+ Pierre R. Mai's excellent &maisql; package. In late 2003, the
+ &usql; library was orphaned by its author, onShore Development,
+ Inc. In April 2004, Marcus Pearce ported the &usql; library to
+ &clsql;. The &usql; library provides a &commonsql;-compatible
+ API for &clsql;.
+ </para>
+
+ <para>The main changes from &maisql; and &usql; are:
<itemizedlist>
<listitem>
- <para>port from the &cmucl; FFI to &uffi;.</para>
+ <para>Port from the &cmucl; FFI to &uffi; which provide
+ compatibility with the major Common Lisp
+ implementations.</para>
</listitem>
<listitem>
<para>Optimized loading of integer and floating-point fields.</para>
</listitem>
<listitem>
- <para>new &acl; ODBC interface back-end.</para>
+ <para>Additional database backends: &odbc;, &aodbc;, and &sqlite;.</para>
</listitem>
<listitem>
- <para>compatibility layer for &cmucl; specific code.</para>
+ <para>A compatibility layer for &cmucl; specific code.</para>
</listitem>
<listitem>
- <para>much improved robustness for the &mysql; back-end
+ <para>Much improved robustness for the &mysql; back-end
along with version 4 client library support.</para>
</listitem>
<listitem>
- <para>improved system loading.</para>
+ <para>Improved library loading and installation documentation.</para>
</listitem>
<listitem>
- <para>improved packages and symbol export.</para>
+ <para>Improved packages and symbol export.</para>
</listitem>
<listitem>
- <para>transaction support.</para>
+ <para>Pooled connections.</para>
</listitem>
<listitem>
- <para>UncommonSQL support.</para>
+ <para>Integrated transaction support for the classic
+ &maisql; iteration macros.</para>
</listitem>
</itemizedlist>
</para>
Currently, &clsql; supports the following databases:
</para>
<itemizedlist mark="opencircle">
- <listitem><para>&mysql; v3.23.51 and v4.0.15.</para></listitem>
- <listitem><para>&postgresql; v7.2 with both direct API and TCP
+ <listitem><para>&mysql; v3.23.51 and v4.0.18.</para></listitem>
+ <listitem><para>&postgresql; v7.4 with both direct API and TCP
socket connections.</para></listitem>
<listitem><para>&sqlite;.</para></listitem>
- <listitem><para>Allegro's ODBC interface (&aodbc;) using iODBC
- ODBC manager.</para></listitem>
+ <listitem><para>Direct &odbc; interface.</para></listitem>
+ <listitem><para>Allegro's DB interface (&aodbc;).</para></listitem>
</itemizedlist>
</sect2>
(asdf:operate 'asdf:load-op 'clsql-mysql) ; MySQL interface
(asdf:operate 'asdf:load-op 'clsql-postgresql) ; PostgreSQL interface
(asdf:operate 'asdf:load-op 'clsql-postgresql-socket) ; Socket PGSQL interface
+(asdf:operate 'asdf:load-op 'clsql-odbc) ; ODBC interface
+(asdf:operate 'asdf:load-op 'clsql-sqlite) ; SQLite interface
(asdf:operate 'asdf:load-op 'clsql-aodbc) ; Allegro ODBC interface
(asdf:operate 'asdf:load-op 'clsql) ; main CLSQL package
</screen>
configuration file named
<filename>.clsql-test.config</filename> must be created in
your home directory. There are instructures on the format of
- that file in the <filename>tests/tests.lisp</filename> file in
- the &clsql; source directory. After creating that file, you
- can run the test suite with &asdf;:
+ that file in the <filename>tests/README</filename>. After
+ creating <filename>.clsql-test.config</filename>, you can run
+ the test suite with &asdf;:
<screen>
(asdf:operate 'asdf:test-op 'clsql)
</screen>