X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=doc%2Fintro.xml;h=936cf59e9acd8d5c14cf7d91f690b32d0ee7996b;hp=0ec884420f6c0918ea7df90d27ffe1608f049e03;hb=f67c4e2a4e5b8371a1b7c1629828999ff909f538;hpb=8d948bb37d6a4cc9cbdbc0ed3173b1284e00d552 diff --git a/doc/intro.xml b/doc/intro.xml index 0ec8844..936cf59 100644 --- a/doc/intro.xml +++ b/doc/intro.xml @@ -11,45 +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;. + Port from the &cmucl; FFI to &uffi; which provide + compatibility with the major Common Lisp + implementations. Optimized loading of integer and floating-point fields. - new &acl; ODBC interface back-end. + Additional database backends: &odbc;, &aodbc;, &sqlite; + and &sqlite3;. - compatibility layer for &cmucl; specific code. + A compatibility layer for &cmucl; specific code. - much improved robustness for the &mysql; back-end + Much improved robustness for the &mysql; back-end along with version 4 client library support. - improved system loading. + Improved library loading and installation documentation. + + + Improved packages and symbol export. - improved packages and symbol export. + Pooled connections. - transaction support. + Integrated transaction support for the classic + &maisql; iteration macros. @@ -72,7 +86,7 @@ &uffi; &clsql; uses &uffi; + url="http://uffi.kpe.io/">&uffi; as a Foreign Function Interface (FFI) to support multiple &cl; implementations. @@ -82,7 +96,7 @@ &md5; &clsql;'s postgresql-socket interface uses Pierre Mai's - md5 + md5 module. @@ -93,26 +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. + &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 on Debian Linux PowerPC. + &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 and v4.0.15. - &postgresql; v7.2 with both direct API and TCP + &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. - Allegro's ODBC interface (&aodbc;) using iODBC - ODBC manager. + &sqlite;. + &sqlite3;. + Direct &odbc; interface. + &oracle; OCI. + Allegro's DB interface (&aodbc;). @@ -170,7 +192,7 @@ - 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*. @@ -180,12 +202,11 @@ 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 @@ -197,13 +218,12 @@ /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 @@ -211,32 +231,28 @@ 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. The below example show loading - all &clsql; systems. + 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 +(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 + 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/tests.lisp file in - the &clsql; source directory. After creating that file, you - can run the test suite with &asdf;: + 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)