X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;ds=sidebyside;f=doc%2Fintro.xml;h=eb10c69e7f868bc00a8d27a4fac8d4044698a3ff;hb=4c5797c1926bdfb21ca1824408e4aa5bf0d30d19;hp=facffa7f67dbf08ef4bd9ed09d0af93274a26f3e;hpb=bd57425b302d5c2e52732545f3f354a2f5f471cf;p=clsql.git
diff --git a/doc/intro.xml b/doc/intro.xml
index facffa7..eb10c69 100644
--- a/doc/intro.xml
+++ b/doc/intro.xml
@@ -1,7 +1,7 @@
+
%myents;
]>
@@ -11,44 +11,59 @@
Purpose
&clsql; is a Common Lisp interface to SQL 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.
+ linkend="gloss-sql">SQL databases. A number of Common
+ Lisp implementations and SQL databases are supported. The general
+ structure of &clsql; is based on the &commonsql; package by
+ LispWorks Ltd.
History
- &clsql; is written by Kevin M. Rosenberg and based substantially
- on Pierre R. Mai's excellent &maisql; package. 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;.
+
+
+ The main changes from &maisql; and &usql; are:
+
+ Port from the &cmucl; FFI to &uffi; which provide
+ compatibility with the major Common Lisp
+ implementations.
+
Optimized loading of integer and floating-point fields.
- port from the &cmucl; FFI to &uffi;.
+ Additional database backends: &odbc;, &aodbc;, &sqlite;
+ and &sqlite3;.
- new &acl; ODBC interface back-end.
+ A compatibility layer for &cmucl; specific code.
- compatibility layer for &cmucl; specific code.
+ Much improved robustness for the &mysql; back-end
+ along with version 4 client library support.
- much improved robustness for the &mysql; back-end.
+ Improved library loading and installation documentation.
- improved system loading.
+ Improved packages and symbol export.
- improved packages and symbol export.
+ Pooled connections.
- transaction support.
+ Integrated transaction support for the classic
+ &maisql; iteration macros.
@@ -59,34 +74,30 @@
&asdf;
- &clsql; uses &asdf; to compile and load its
- components. &asdf; is included in the &cclan; collection.
+
+ &clsql; uses &asdf; to compile and load its components.
+ &asdf; is included in the &cclan;
+ collection.
&uffi;
- &clsql; uses &uffi;
- as a Foreign Function Interface (FFI) to support multiple &cl;
- implementations.
+
+ &clsql; uses &uffi;
+ as a Foreign Function Interface
+ (FFI) to support
+ multiple &cl; implementations.
-
- You can download &uffi; from its FTP site. There
- are zip files for Microsoft Windows systems and gzipped tar files for
- other systems.
-
&md5;
&clsql;'s postgresql-socket interface uses Pierre Mai's
- md5
- module. If you plan to use
- this interface please download the md5 module from ftp://clsql.b9.com.
+ md5
+ module.
@@ -96,24 +107,34 @@
implementations of &uffi;. The following implementations are supported:
- &acl; v6.2 on Debian Linux, FreeBSD 4.5, and Microsoft Windows XP.
- &lw; v4.3 on Debian Linux and Microsoft Windows XP.
- &cmucl; 18e on Debian Linux, FreeBSD 4.5, and Solaris 2.8.
- &sbcl; 0.8.5 on Debian Linux.
- &scl; 1.2 on Debian Linux.
- &openmcl; 0.14 on Debian Linux PowerPC.
+ &acl; v6.2 through 8.0 on Debian Linux x86 &
+ x86_64 & PowerPC, FreeBSD 4.5, and Microsoft Windows
+ XP.
+ &lw; v4.3 and v4.4 on Debian Linux and Microsoft
+ Windows XP.
+ &cmucl; 18e on Debian Linux, FreeBSD 4.5, and
+ Solaris 2.8. 19c on Debian Linux.
+ &sbcl; 0.8.4 through 0.9.16 on Debian
+ Linux.
+ &scl; 1.1.1 on Debian Linux.
+ &openmcl; 0.14 PowerPC and 1.0pre AMD64 on Debian Linux .
Supported &sql; Implementation
- Currently, &clsql; supports the following databases:
+ &clsql; supports the following databases:
- &mysql; v3.23.51.
- &postgresql; v7.2 with both direct API and TCP socket connections.
- Allegro's ODBC interface (&aodbc;) using iODBC ODBC manager.
+ &mysql; (tested v3.23.51, v4.0.18, 5.0.24).
+ &postgresql; (tested with v7.4 and 8.0 with both direct API and TCP
+ socket connections.
+ &sqlite;.
+ &sqlite3;.
+ Direct &odbc; interface.
+ &oracle; OCI.
+ Allegro's DB interface (&aodbc;).
@@ -139,7 +160,7 @@
implementations do not support 64-bit integers. Thus, C helper
libraries are required to break these 64-bit integers into two compatible
32-bit integers. The helper libraries reside in the directories
- uffi/ and db-mysql.
+ uffi and db-mysql.
@@ -156,17 +177,22 @@
&unix;
- Files named Makefile are supplied for building the libraries
- under &unix;. However, the .asd automatically invoke
- the makefiles when necessary. So, manual building of the helper libraries
- is not necessary on &unix;.
+ Files named Makefile are supplied for
+ building the libraries under &unix;. Loading the
+ .asd files automatically invokes
+ make when necessary. So, manual
+ building of the helper libraries is not necessary on most
+ &unix; systems. However, the location of the &mysql; library
+ files and include files may need to adjusted in
+ db-mysql/Makefile on non-Debian
+ systems.
- Load &uffi;
+ Add &uffi; path
Unzip or untar the &uffi; distribution which creates a directory
for the &uffi; files. Add that directory to &asdf;'s asdf:*central-registry*.
@@ -176,58 +202,57 @@
directory.
(push #P"/usr/share/lisp/uffi/" asdf:*central-registry*)
-(asdf:operate 'asdf:load-op :uffi)
- Load &md5; module
+ Add &md5; path
- If you plan to use the clsql-postgresql-socket interface, you must load the md5 module.
- Unzip or untar the cl-md5 distribution, which creates a directory for the cl-md5 files.
- Add that directory to &asdf;'s asdf:*central-registry*.
- You can do that by pushing the pathname of the directory onto this variable.
- The following example code assumes the cl-md5 files reside in the
- /usr/share/lisp/cl-md5/
- directory.
+ If you plan to use the clsql-postgresql-socket interface, you
+ must load the md5 module. Unzip or untar the cl-md5
+ distribution, which creates a directory for the cl-md5 files.
+ Add that directory to &asdf;'s
+ asdf:*central-registry*. You can do that by
+ pushing the pathname of the directory onto this variable. The
+ following example code assumes the cl-md5 files reside in the
+ /usr/share/lisp/cl-md5/ directory.
(push #P"/usr/share/lisp/cl-md5/" asdf:*central-registry*)
-(asdf:operate 'asdf:load-op :md5)
- Load &clsql; modules
+ Add &clsql; path and load module
- Unzip or untar the &clsql; distribution which creates a directory
- for the &clsql; files. Add that directory to &asdf;'s asdf:*central-registry*.
- You can do that by pushing the pathname of the directory onto this variable.
- The following example code assumes the &clsql; files reside in the
- /usr/share/lisp/clsql/
- directory. You need to load, at a minimum,
- the main :clsql system and at least one interface system.
+ Unzip or untar the &clsql; distribution which creates a
+ directory for the &clsql; files. Add that directory to &asdf;'s
+ asdf:*central-registry*. You can do that by
+ pushing the pathname of the directory onto this variable. The
+ following example code assumes the &clsql; files reside in the
+ /usr/share/lisp/clsql/ directory. You need
+ to load the clsql system.
+
-(push #P"/usr/share/lisp/clsql/" asdf:*central-repository*)
-(asdf:operate 'asdf:load-op 'clsql-base) ; base clsql package
-(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-aodbc) ; Allegro ODBC interface
-(asdf:operate 'asdf:load-op 'clsql) ; main clsql package
+(push #P"/usr/share/lisp/clsql/" asdf:*central-registry*)
+(asdf:operate 'asdf:load-op 'clsql) ; main CLSQL package
- Run test suite
+ Run test suite (optional)
- After loading &clsql;, you can execute the test suite. A configuration
- file named .clsql-test.config must be created
- in your home directory. There are instructures on the format of that file
- in the tests/tests.lisp file in the &clsql;
- source directory. After creating that file, you can run the test suite
- with &asdf;:
+ The test suite can be executed using the &asdf;
+ test-op operator. If &clsql; has not been
+ loaded with asdf:load-op, the
+ asdf:test-op operator will automatically load
+ &clsql;. A configuration file named
+ .clsql-test.config must be created in
+ your home directory. There are instructures on the format of
+ that file in the tests/README. After
+ creating .clsql-test.config, you can run
+ the test suite with &asdf;:
(asdf:operate 'asdf:test-op 'clsql)