From: Pierre R. Mai
Subject: Announcement of MaiSQL 0.25
Date: 
Message-ID: <87g12mqakr.fsf@orion.dent.isdn.cs.tu-berlin.de>
Hi!

This is to announce version 0.25 of MaiSQL, yet another Common Lisp to 
SQL interface, this time for CMU CL and MySQL/PostgreSQL.  This
interface is the result of a feasibility study for a client of mine,
which is now publicly released for the benefit of the CL community.

To learn more about MaiSQL see the appended README and NEWS files
below, and/or go to http://www.pmsf.de/pmai/MaiSQL.html

Regs, Pierre.

MaiSQL - Common Lisp Interface Layer to SQL Databases
=====================================================

This package is a very, very simple try at interfacing SQL databases
(in particular MySQL) to Common Lisp (in particular to CMU CL).  It
started life as part of a feasibility study, and this still shows to
some degree.

As it stands, the code implements little more than basic SQL access
facilities, with the SQL interface patterned in part after Harlequin's 
Common SQL.  Please note that this implementation is not the property
of Harlequin Group plc. nor do they have any responsibility for its
content or accuracy.  MaiSQL is Copyright (C) 1999 by Pierre R. Mai,
and is provided under a very liberal X-style licence, the details of
which  can be found in the file COPYING which comes as part of this
distribution.  In the unlikely event of this licence causing anyone
any problems, feel free to contact me, and we can probably agree on
terms more suitable for you.

FEATURES
========

At the current moment in time, MaiSQL sports the following:

* A generic implementation of the basic SQL interface along the lines
  of Common SQL, but with a small number differences (i.e. it feels
  like Common SQL, but in some cases will not work exactly like Common
  SQL, or indeed have the exact same interface.  If this bothers you,
  you are free to change it).

  By basic I mean that connect, disconnect, query, execute-command,
  do-query and map-query work, using plain strings as SQL expressions.
  There is also an extension to MIT-LOOP for looping across query
  results.  All the higher-level functional or even object- oriented
  interfaces as well as the fancy SQL syntax are (still) missing.

* CMU CL FFI bindings for most of the MySQL client library and part of
  the PostgreSQL client library.

* Implementations of the SQL interface for MySQL and PostgreSQL.

* Some incomprehensible benchmarking code, which was used (along with
  several interactive sessions and code) for feasibility testing.

* A hopefully comprehensive reference guide to the user interface of
  MaiSQL.  This will hopefully be enlarged in the future to include
  some introductory material and a reference of the interface for
  back-end database implementations.

Besides the FFI bindings, some parts of the generic SQL interface
depend on CMU CL, although porting this to other implementations
shouldn't be too much trouble.  OTOH you could probably whip up
something worthwhile in the same amount of time it'll take you to
port MaiSQL.

FUTURE
======

The future fate of MaiSQL will be primarily determined by uses of
MaiSQL in projects for some of my clients.  It is quite possible
that it will be used in a large data-evaluation suite, which would
probably mean further improvements and development.  OTOH it's also
quite possible that something completely different will be used for
that project, and/or that we will switch to SQL-ODBC or Harlequin's
Common SQL, in which case further MaiSQL development will probably
depend on others.

Whichever way this turns out to be, I'm always interested in feedback
on MaiSQL, and will do my best to help anyone who is daring enough to
use this, as time permits.  Please send all comments regarding MaiSQL
to ······@pmsf.de.

If someone really seriously needs further development, there is also
the option of paying me to do it (but I will probably insist on the
result to be released under the same licence, or a similarly free
licence).  OTOH in that case you're probably better off just getting
either SQL-ODBC by Paul Meurer or a licence for Harlequin's LispWorks
with their wonderful Common SQL.

INSTALLATION
============

You'll need Mark Kantrowitz's DEFSYSTEM (available from the CMU AI
Repository somewhere below ftp://ftp.cs.cmu.edu/user/ai/lang/lisp/).
I highly recommend pre-loading defsystem in your site-init.lisp,
otherwise you'll have to load defsystem manually prior to using
MaiSQL.

If you've already setup defsystem and have a central repository for
system definitions, you'll probably want to move the *.system files
there (you'll probably have to adjust *default-pathname-defaults*
prior to each defsystem form to point to the right directory in that
case).

You may also have to adjust the locations and libraries to be loaded
in interfaces/mysql-loader.cl and/or interfaces/postgresql-loader.cl.

After that's out of the way, just start up CMU CL and issue commands
to compile and load all the interfaces you want to use, i.e.

(oos "MaiSQL-MySQL" 'compile)

and/or

(oos "MaiSQL-PostgreSQL" 'compile)

After you've once compiled the corresponding systems, you can simply
load them either via (oos "MaiSQL-MySQL" 'load), or, if you have setup 
defsystem accordingly, by (require "MaiSQL-MySQL").

To load or compile only the generic interface, without any specific
database back-end code, you can use the system "MaiSQL", i.e. issue
(oos "MaiSQL" 'compile) or (oos "MaiSQL" 'load).

DOCUMENTATION
=============

A mostly complete reference guide to MaiSQL can be found in the
directory doc/refguide/ in PostScript(tm), PDF and HTML formats (in
the sub-directory html), as well as in the DocBook/SGML source from
which it was generated via slightly modified versions of Norman
Walsh's DocBook DSSSL StyleSheets, the originals of which can be found
at http://nwalsh.com/.

CONTACT INFORMATION
===================

For comments and questions relating to MaiSQL please contact me via
E-Mail on ······@pmsf.de.  Otherwise I can be reached via ····@pmsf.de 
or ····@acm.org.  For news and information on MaiSQL, see also the
MaiSQL home-page at http://www.pmsf.de/pmai/MaiSQL.html.

If you want to be kept informed about new releases of MaiSQL, send a
short mail to ·······················@pmsf.de with a body consisting
of "subscribe maisql-announce ····@mail-address.here" on a single
line.  Unsubscription works similarly with a single line consisting of
"unsubscribe maisql-announce ····@mail-address.here".

COPYRIGHT
=========

MaiSQL is Copyright (C) 1999 by Pierre Mai.  For terms of use see the
file COPYING provided with the distribution.


NEWS:
-*- mode:outline -*-

* Changes in version 0.25:

** Made slight changes to packaging:

*** Release directory now includes version number

*** Removed CVS cruft from release tarball.

*** Added ChangeLog files

*** PDF version of reference guide now uses compression

*** Added BUGS file

*** Added information on new MaiSQL announce list

** Added missing documentation on database back-ends

** Added capability to reload only the foreign code (see BUGS!)

** Added LOOP clause for looping over query results


-- 
Pierre Mai <····@acm.org>         PGP and GPG keys at your nearest Keyserver
  "One smaller motivation which, in part, stems from altruism is Microsoft-
   bashing." [Microsoft memo, see http://www.opensource.org/halloween1.html]