X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;ds=sidebyside;f=doc%2Fintro.xml;h=a1457a694d2bf4de262f1e5e8830a02b37a98daa;hb=23950d9583e45e2e78bca8fae5f42958d341a192;hp=c6a16ac201f4b4b62e345da518298f0a01a63e81;hpb=26a6925af6882174d868c1977dfd0844c40b9541;p=clsql.git
diff --git a/doc/intro.xml b/doc/intro.xml
index c6a16ac..a1457a6 100644
--- a/doc/intro.xml
+++ b/doc/intro.xml
@@ -1,7 +1,7 @@
+
%myents;
]>
@@ -11,44 +11,58 @@
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
+ Xanalys.
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: &acl; ODBC and &sqlite;.
- 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 +73,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.
+ module.
@@ -100,7 +110,7 @@
&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.
+ &scl; 1.1.1 on Debian Linux.
&openmcl; 0.14 on Debian Linux PowerPC.
@@ -111,9 +121,12 @@
Currently, &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; v3.23.51 and v4.0.15.
+ &postgresql; v7.2 with both direct API and TCP
+ socket connections.
+ &sqlite;.
+ Allegro's ODBC interface (&aodbc;) using iODBC
+ ODBC manager.
@@ -138,30 +151,36 @@
parameters and return values. The &ffi; in most &clsql;
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.
+ 32-bit integers. The helper libraries reside in the directories
+ uffi and db-mysql.
- Makefiles for Microsoft Windows and GNU/Solaris systems
- are supplied to build the libraries. Since many Microsoft Windows
- users don't have access to a compiler, the DLL and LIB
- files for Microsoft Windows are supplied with the distribution.
-
+
+ &mswindows;
+
+ Files named Makefile.msvc are supplied
+ for building the libraries under Microsoft Windows. Since
+ &mswindows; does not come with that compiler, compiled
+ DLL and LIB library files are
+ supplied with &clsql;.
+
+
+
+
+ &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.
+
+
- To build the libraries on a GNU or Solaris, use the shell and
- change to the root directory of &clsql;. You may need to edit the file
- interfaces/mysql/Makefile
- to specify the location of your
- MySQL installation. The default Makefiles are setup for shared library
- linking on Linux. If you are using FreeBSD or Solaris, you will need
- to change the linker setting as instructed in the Makefile.
- Then, you can give the command
-
-make libs
-
- in the root directory of &clsql; to build the libraries
- interfaces/mysql/clsql-mysql.so
- and interfaces/clsql-uffi/clsql-uffi.so.
-
@@ -182,13 +201,14 @@ make libs
Load &md5; module
- 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)
@@ -199,21 +219,24 @@ make libs
Load &clsql; modules
- 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, at a minimum, the main clsql system
+ and at least one interface system. The below example show loading
+ all &clsql; systems.
+
-(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
+(push #P"/usr/share/lisp/clsql/" asdf:*central-registry*)
+(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
+(asdf:operate 'asdf:load-op 'clsql-aodbc) ; Allegro ODBC interface
+(asdf:operate 'asdf:load-op 'clsql) ; main CLSQL package
@@ -221,12 +244,13 @@ make libs
Run test suite
- 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;:
+ 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;:
(asdf:operate 'asdf:test-op 'clsql)