r1792: *** empty log message ***
authorKevin M. Rosenberg <kevin@rosenberg.net>
Tue, 23 Apr 2002 21:31:51 +0000 (21:31 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Tue, 23 Apr 2002 21:31:51 +0000 (21:31 +0000)
ChangeLog
doc/Makefile
doc/catalog [deleted file]
doc/catalog.debian [new file with mode: 0644]
doc/catalog.redhat [new file with mode: 0644]
doc/catalog.redhat~ [new file with mode: 0644]
doc/dsssl/COPYRIGHT [new file with mode: 0644]
doc/dsssl/html/docbook.dsl [new file with mode: 0644]
doc/dsssl/print/docbook.dsl [new file with mode: 0644]
doc/dsssl/print/docbook.tex [new file with mode: 0644]

index f71a69de94b7e771bb62eba4e266a3fa65f5203f..fdfd35d4c9230990932218fa61fff5d339e7e964 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2002-04-23 Kevin Rosenberg (kevin@rosenberg.net)
+       * doc/*
+       Updated to debian docbook catalog
+       
 2002-04-06 Kevin Rosenberg (kevin@rosenberg.net)
        * src/mcl/libraries.cl:
        Removed unnecessary function and added find-foreign-library
index 5123a72a206c7de6d230b95aa1e99c13828fc404..f49d1f0b304c7f789ceeb6f9f1afc4cc409b9799 100644 (file)
@@ -5,7 +5,7 @@
 #  Programer:    Kevin M. Rosenberg
 #  Date Started: Mar 2002
 #
-#  CVS Id:   $Id: Makefile,v 1.12 2002/04/07 09:17:51 kevin Exp $
+#  CVS Id:   $Id: Makefile,v 1.13 2002/04/23 21:30:27 kevin Exp $
 #
 # This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg
 #
 # as governed by the terms of the Lisp Lesser GNU Public License
 # (http://opensource.franz.com/preamble.html), also known as the LLGPL.
 
+# System variable to select catalog file
+SYSTEM=debian
+# SYSTEM=redhat
 
+# Nothing to configure beyond this point
 
-# Set to DSSSL
-# For RedHat 6.x
-#DSSSL_HTML=/usr/lib/sgml/stylesheets/nwalsh-modular/html/docbook.dsl
-#DSSL_PRINT=/usr/lib/sgml/stylesheets/nwalsh-modular/print/docbook.dsl
-
-# For RedHat 7.2
-DSSSL_HTML=/usr/share/sgml/docbook/dsssl-stylesheets-1.64/html/docbook.dsl 
-DSSSL_PRINT=/usr/share/sgml/docbook/dsssl-stylesheets-1.64/print/docbook.dsl
-
-# Latest version
-#DSSSL_HTML=/usr/share/sgml/docbook/dsssl-stylesheets-1.76/html/docbook.dsl 
-#DSSSL_PRINT=/usr/share/sgml/docbook/dsssl-stylesheets-1.76/print/docbook.dsl
-
-# Custom version
-#DSSSL_HTML=/home/kevin/lisp/docbook/html/lisp.dsl
-#DSSSL_PRINT=/home/kevin/lisp/docbook/print/lisp.dsl
+CATALOG=catalog.$(SYSTEM)
 
-# Nothing to configure beyond this point
+# Custom DSSSL's
+DSSSL_HTML=../dsssl/html/docbook.dsl
+DSSSL_PRINT=dsssl/print/docbook.dsl
 
 DOCFILE_BASE_DEFAULT=uffi
 DOCFILE_EXT_DEFAULT=sgml
@@ -55,57 +46,56 @@ DVIFILE=${DOCFILE_BASE}.dvi
 TMPFILES=${DOCFILE_BASE}.aux ${DOCFILE_BASE}.out ${DOCFILE_BASE}.log
 DOCFILES=$(shell echo *.sgml)
 
-.PHONY: all dist check html tex pdf ps distclean
+.PHONY: all dist check html tex pdf ps clean distclean
 
 all: html pdf ps dvi
 
 dist: html pdf
 
-CHECK=nsgmls -s -C catalog || exit 1
+CHECK=nsgmls -s -C ${CATALOG} || exit 1
 
 check:
-       @$(CHECK)
+       $(CHECK)
 
 html: html/book1.htm
 
 html/book1.htm: ${DOCFILES} 
-       @$(CHECK)
-       @( rm -rf html ; mkdir html; cd html ; jade -t sgml -c ../catalog -d ${DSSSL_HTML} ../${DOCFILE}; cd ..)
+       $(CHECK)
+       ( rm -rf html ; mkdir html; cd html ; jade -t sgml -c ../${CATALOG} -d ${DSSSL_HTML} ../${DOCFILE}; cd ..)
 
 tex: ${TEXFILE}
 
-${TEXFILE}: ${DOCFILES} 
-       @$(CHECK)
-       @jade -t tex -c catalog -d ${DSSSL_PRINT} ${DOCFILE}
+${TEXFILE}: ${DOCFILES}
+       $(CHECK)
+       @jade -t tex -c ${CATALOG} -d ${DSSSL_PRINT} ${DOCFILE}
 
 pdf: ${PDFFILE}
 
 ${PDFFILE}: ${TEXFILE}
-       @pdfjadetex '\pdfcompresslevel=9' '\input ${TEXFILE}' > /dev/null
-       @pdfjadetex '\pdfcompresslevel=9' '\input ${TEXFILE}' > /dev/null
-       @pdfjadetex '\pdfcompresslevel=9' '\input ${TEXFILE}' > /dev/null
-       @pdfjadetex '\pdfcompresslevel=9' '\input ${TEXFILE}' > /dev/null
+       @pdfjadetex -interaction=batchmode '\pdfcompresslevel=9' '\input ${TEXFILE}' > /dev/null
+       @pdfjadetex -interaction=batchmode '\pdfcompresslevel=9' '\input ${TEXFILE}' > /dev/null
+       @pdfjadetex -interaction=batchmode '\pdfcompresslevel=9' '\input ${TEXFILE}' > /dev/null
+       @pdfjadetex -interaction=batchmode '\pdfcompresslevel=9' '\input ${TEXFILE}' > /dev/null
 
 dvi: ${DVIFILE}
 
 ${DVIFILE}: ${TEXFILE}
-       @jadetex ${TEXFILE}
-       @jadetex ${TEXFILE}
-       @jadetex ${TEXFILE}
-       @jadetex ${TEXFILE}
+       jadetex ${TEXFILE}
+       jadetex ${TEXFILE}
+       jadetex ${TEXFILE}
+       jadetex ${TEXFILE}
 
 ps: ${PSFILE}
 
 ${PSFILE}: ${DVIFILE}
-       @dvips -o ${PSFILE} ${DVIFILE}
+       dvips -o ${PSFILE} ${DVIFILE}
 
 clean:
        @rm -rf html
        @rm -f ${PSFILE} ${PDFFILE} ${DVIFILE} ${TEXFILE}
-       @rm -f ${TMPFILES} *~
-       @rm -f
-
-distclean: clean
+       @rm -f ${TMPFILES}
 
+realclean: clean
+       @rm -f *~
 
 
diff --git a/doc/catalog b/doc/catalog
deleted file mode 100644 (file)
index 4588500..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-CATALOG /etc/sgml/sgml-docbook-4.1.cat
-DOCUMENT uffi.sgml
diff --git a/doc/catalog.debian b/doc/catalog.debian
new file mode 100644 (file)
index 0000000..404a9ef
--- /dev/null
@@ -0,0 +1,4 @@
+CATALOG /etc/sgml/docbook.cat  
+CATALOG /etc/sgml/docbook-dsssl.cat  
+CATALOG /etc/sgml/openjade.cat  
+DOCUMENT clsql.sgml
diff --git a/doc/catalog.redhat b/doc/catalog.redhat
new file mode 100644 (file)
index 0000000..29d65f0
--- /dev/null
@@ -0,0 +1,2 @@
+CATALOG /etc/sgml/sgml-docbook-4.1.cat
+DOCUMENT clsql.sgml
diff --git a/doc/catalog.redhat~ b/doc/catalog.redhat~
new file mode 100644 (file)
index 0000000..5bf6501
--- /dev/null
@@ -0,0 +1,2 @@
+CATALOG sgml-docbook-4.1.cat
+DOCUMENT clsql.sgml
diff --git a/doc/dsssl/COPYRIGHT b/doc/dsssl/COPYRIGHT
new file mode 100644 (file)
index 0000000..871b60b
--- /dev/null
@@ -0,0 +1,5 @@
+These stylesheets are written and Copyright (c) 1999-2002 by Pierre
+R. Mai.
+
+He has graciously placed them in the public domain without
+restrictions.
diff --git a/doc/dsssl/html/docbook.dsl b/doc/dsssl/html/docbook.dsl
new file mode 100644 (file)
index 0000000..e0f1668
--- /dev/null
@@ -0,0 +1,30 @@
+<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
+<!ENTITY docbook PUBLIC "-//Norman Walsh//DOCUMENT DocBook HTML Stylesheet//EN" CDATA DSSSL>
+]>
+
+ <style-sheet>
+ <style-specification use="docbook">
+ <style-specification-body>
+(element envar ($mono-seq$))
+(element symbol ($mono-seq$))
+(element type ($mono-seq$))
+(element errortype ($mono-seq$))
+(element returnvalue ($italic-mono-seq$))
+(define (book-titlepage-recto-elements)
+  (list (normalize "title")
+        (normalize "subtitle")
+        (normalize "graphic")
+        (normalize "corpauthor")
+        (normalize "authorgroup")
+        (normalize "author")
+        (normalize "editor")
+       (normalize "printhistory")
+        (normalize "copyright")
+        (normalize "abstract")
+        (normalize "legalnotice")))
+(define %use-id-as-filename% #t)
+(define use-output-dir #t)
+</style-specification-body>
+</style-specification>
+<external-specification id="docbook" document="docbook">
+</style-sheet>
diff --git a/doc/dsssl/print/docbook.dsl b/doc/dsssl/print/docbook.dsl
new file mode 100644 (file)
index 0000000..a114d93
--- /dev/null
@@ -0,0 +1,30 @@
+<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
+<!ENTITY docbook PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN" CDATA DSSSL>
+]>
+
+<style-sheet>
+<style-specification use="docbook">
+<style-specification-body>
+(element envar ($mono-seq$))
+(element symbol ($mono-seq$))
+(element type ($mono-seq$))
+(element errortype ($mono-seq$))
+(element returnvalue ($italic-mono-seq$))
+(define (book-titlepage-verso-elements)
+  (list (normalize "title")
+        (normalize "subtitle")
+        (normalize "corpauthor")
+        (normalize "authorgroup")
+        (normalize "author")
+        (normalize "editor")
+        (normalize "edition")
+        (normalize "pubdate")
+       (normalize "printhistory")
+        (normalize "copyright")
+        (normalize "abstract")
+        (normalize "legalnotice")
+        (normalize "revhistory")))
+</style-specification-body>
+</style-specification>
+<external-specification id="docbook" document="docbook">
+</style-sheet>
diff --git a/doc/dsssl/print/docbook.tex b/doc/dsssl/print/docbook.tex
new file mode 100644 (file)
index 0000000..74530ff
--- /dev/null
@@ -0,0 +1,5576 @@
+\FOT{3}\Node%
+{}\Node%
+{\def\Element%
+{0:0}}\Node%
+{\def\Element%
+{0:1}}\Node%
+{\def\Element%
+{0:2}}\Node%
+{\def\Element%
+{0:3}}\Node%
+{\def\Element%
+{0:4}}CLSQL\endNode{}\endNode{} Users' Guide\endNode{}\Node%
+{\def\Element%
+{0:5}}\Node%
+{\def\Element%
+{0:6}}\Node%
+{\def\Element%
+{0:7}}Kevin\endNode{}\Node%
+{\def\Element%
+{0:8}}M.\endNode{}\Node%
+{\def\Element%
+{0:9}}Rosenberg\endNode{}\Node%
+{\def\Element%
+{0:10}}\Node%
+{\def\Element%
+{0:11}}Maintainer of CLSQL\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:12}}\Node%
+{\def\Element%
+{0:13}}Pierre\endNode{}\Node%
+{\def\Element%
+{0:14}}R.\endNode{}\Node%
+{\def\Element%
+{0:15}}Mai\endNode{}\Node%
+{\def\Element%
+{0:16}}\Node%
+{\def\Element%
+{0:17}}Author of Original MaiSQL Code\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:18}}\Node%
+{\def\Element%
+{0:19}}\$Date: 2002/04/23 21:30:27 $\endNode{}\Node%
+{\def\Element%
+{0:20}}\$Id: docbook.tex,v 1.1 2002/04/23 21:30:27 kevin Exp $\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:21}}\Node%
+{\def\Element%
+{0:22}}\Node%
+{\def\Element%
+{0:23}}\Node%
+{\def\Element%
+{0:24}}\Node%
+{\def\Element%
+{0:25}}\Node%
+{\def\Element%
+{0:26}}CLSQL\endNode{}\endNode{} is Copyright \Entity{copy} 2002 by Kevin M. Rosenberg and
+       Copyright \Entity{copy} 1999-\/2001 by Pierre R. Mai.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:27}}\Node%
+{\def\Element%
+{0:28}}\Node%
+{\def\Element%
+{0:29}}Allegro CL\endNode{}\Entity{reg} is a registered
+          trademark of Franz Inc.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:30}}\Node%
+{\def\Element%
+{0:31}}\Node%
+{\def\Element%
+{0:32}}Common SQL\endNode{},
+             \Node%
+{\def\Element%
+{0:33}}LispWorks\endNode{} and
+       \Node%
+{\def\Element%
+{0:34}}Xanalys\endNode{} are trademarks or
+       registered trademarks of Xanalys Inc.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:35}}\Node%
+{\def\Element%
+{0:36}}\Node%
+{\def\Element%
+{0:37}}Microsoft
+         Windows\endNode{}\Entity{reg} is a registered trademark of
+         Microsoft Inc.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:38}}\Node%
+{\def\Element%
+{0:39}}Other brand or
+           product names are the registered trademarks or trademarks of
+           their respective holders.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:40}}\Node%
+{\def\Element%
+{0:41}}Preface\endNode{}\Node%
+{\def\Element%
+{0:42}}This guide provides reference
+      to the features of \Node%
+{\def\Element%
+{0:43}}\Node%
+{\def\Element%
+{0:44}}CLSQL\endNode{}\endNode{}.  The first 
+      chapter provides an introduction to \Node%
+{\def\Element%
+{0:45}}\Node%
+{\def\Element%
+{0:46}}CLSQL\endNode{}\endNode{} and installation
+      instructions.
+      Following that chapter is the reference section for all user
+      accessible symbols of \Node%
+{\def\Element%
+{0:47}}\Node%
+{\def\Element%
+{0:48}}CLSQL\endNode{}\endNode{} with examples of usage,
+      followed by the reference section for all accessible symbols of
+      the database back-\/end interface.  At the end there you will find
+      a glossary of commonly used terms with their
+      definitions.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:49}}\Node%
+{\def\Element%
+{0:50}}Introduction\endNode{}\Node%
+{\def\Element%
+{0:51}}\Node%
+{\def\Element%
+{0:52}}Purpose\endNode{}\Node%
+{\def\Element%
+{0:53}}\Node%
+{\def\Element%
+{0:54}}\Node%
+{\def\Element%
+{0:55}}CLSQL\endNode{}\endNode{} is a Common Lisp interface to \Node%
+{\def\Element%
+{0:56}}SQL\endNode{} databases.  A number of Common
+Lisp implementations and SQL databases are supported.The general
+structure of \Node%
+{\def\Element%
+{0:57}}\Node%
+{\def\Element%
+{0:58}}CLSQL\endNode{}\endNode{} is based on the
+\Node%
+{\def\Element%
+{0:59}}CommonSQL\endNode{} package by Xanalys.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:60}}\Node%
+{\def\Element%
+{0:61}}History\endNode{}\Node%
+{\def\Element%
+{0:62}}      \Node%
+{\def\Element%
+{0:63}}\Node%
+{\def\Element%
+{0:64}}CLSQL\endNode{}\endNode{} is written by Kevin M. Rosenberg and based substantially
+on Pierre R. Mai's excellent \Node%
+{\def\Element%
+{0:65}}\Node%
+{\def\Element%
+{0:66}}MaiSQL\endNode{}\endNode{} package. The main changes from \Node%
+{\def\Element%
+{0:67}}\Node%
+{\def\Element%
+{0:68}}MaiSQL\endNode{}\endNode{}
+are:
+\Node%
+{\def\Element%
+{0:69}}\Node%
+{\def\Element%
+{0:70}}\Node%
+{\def\Element%
+{0:71}}port from the \Node%
+{\def\Element%
+{0:72}}CMUCL\endNode{} FFI to \Node%
+{\def\Element%
+{0:73}}\Node%
+{\def\Element%
+{0:74}}UFFI\endNode{}\endNode{}.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:75}}\Node%
+{\def\Element%
+{0:76}}new \Node%
+{\def\Element%
+{0:77}}AllegroCL\endNode{} ODBC interface back-\/end.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:78}}\Node%
+{\def\Element%
+{0:79}}compatibility layer for \Node%
+{\def\Element%
+{0:80}}CMUCL\endNode{} specific code.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:81}}\Node%
+{\def\Element%
+{0:82}}much improved robustness for the \Node%
+{\def\Element%
+{0:83}}MySQL\endNode{} back-\/end.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:84}}\Node%
+{\def\Element%
+{0:85}}improved system loading.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:86}}\Node%
+{\def\Element%
+{0:87}}improved packages and symbol export.\endNode{}\endNode{}\endNode{}
+    \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:88}}\Node%
+{\def\Element%
+{0:89}}Prerequisites\endNode{}\Node%
+{\def\Element%
+{0:90}}\Node%
+{\def\Element%
+{0:91}}\Node%
+{\def\Element%
+{0:92}}Defsystem\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:93}} \Node%
+{\def\Element%
+{0:94}}\Node%
+{\def\Element%
+{0:95}}CLSQL\endNode{}\endNode{} uses \Node%
+{\def\Element%
+{0:96}}Defsystem\endNode{} to compile and load its
+components.  \Node%
+{\def\Element%
+{0:97}}Defsystem\endNode{} is included in the \Node%
+{\def\Element%
+{0:98}}\Node%
+{\def\Element%
+{0:99}}\Node%
+{\def\Element%
+{0:100}}\Node%
+{\def\Element%
+{0:101}}CLOCC\endNode{}\endNode{}\endNode{}\endNode{} collection. The
+version in the pre-\/packaged distribution is rather old and
+may not function well. The version in CVS tree tree works quite
+well. For convenience, a copy of the latest \Node%
+{\def\Element%
+{0:102}}Defsystem\endNode{} at the FTP
+\Node%
+{\def\Element%
+{0:103}}\Node%
+{\def\Element%
+{0:104}}site\endNode{}\endNode{}
+of \Node%
+{\def\Element%
+{0:105}}\Node%
+{\def\Element%
+{0:106}}CLSQL\endNode{}\endNode{}.
+      \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:107}}\Node%
+{\def\Element%
+{0:108}}\Node%
+{\def\Element%
+{0:109}}\Node%
+{\def\Element%
+{0:110}}UFFI\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:111}}\Node%
+{\def\Element%
+{0:112}}\Node%
+{\def\Element%
+{0:113}}CLSQL\endNode{}\endNode{} uses \Node%
+{\def\Element%
+{0:114}}\Node%
+{\def\Element%
+{0:115}}\Node%
+{\def\Element%
+{0:116}}\Node%
+{\def\Element%
+{0:117}}UFFI\endNode{}\endNode{}\endNode{}\endNode{}
+as a \Node%
+{\def\Element%
+{0:118}}Foreign Function Interface\endNode{} (\Node%
+{\def\Element%
+{0:119}}FFI\endNode{}) to support multiple \Node%
+{\def\Element%
+{0:120}}ANSI Common Lisp\endNode{}
+implementations.\endNode{}\Node%
+{\def\Element%
+{0:121}}You can download \Node%
+{\def\Element%
+{0:122}}\Node%
+{\def\Element%
+{0:123}}UFFI\endNode{}\endNode{} from its FTP \Node%
+{\def\Element%
+{0:124}}\Node%
+{\def\Element%
+{0:125}}site\endNode{}\endNode{}. There
+are zip files for Microsoft Windows systems and gzipped tar files for
+other systems.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:126}}\Node%
+{\def\Element%
+{0:127}}Supported Common Lisp Implementation\endNode{}\Node%
+{\def\Element%
+{0:128}}The implementations that support \Node%
+{\def\Element%
+{0:129}}\Node%
+{\def\Element%
+{0:130}}CLSQL\endNode{}\endNode{} is governed by the supported
+implementations of \Node%
+{\def\Element%
+{0:131}}\Node%
+{\def\Element%
+{0:132}}UFFI\endNode{}\endNode{}. The following implementations are supported:
+      \endNode{}\Node%
+{\def\Element%
+{0:133}}\Node%
+{\def\Element%
+{0:134}}\Node%
+{\def\Element%
+{0:135}}\Node%
+{\def\Element%
+{0:136}}AllegroCL\endNode{} v6.1 on Redhat Linux 7.2, FreeBSD 4.5, and Microsoft Windows XP.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:137}}\Node%
+{\def\Element%
+{0:138}}\Node%
+{\def\Element%
+{0:139}}Lispworks\endNode{} v4.2 on Redhat Linux 7.2 and Microsoft Windows XP.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:140}}\Node%
+{\def\Element%
+{0:141}}\Node%
+{\def\Element%
+{0:142}}CMUCL\endNode{} 18d-\/pre on Redhat Linux 7.2, FreeBSD 4.5, and Solaris 2.8.\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:143}}\Node%
+{\def\Element%
+{0:144}}Supported \Node%
+{\def\Element%
+{0:145}}SQL\endNode{} Implementation\endNode{}\Node%
+{\def\Element%
+{0:146}}       Currently, \Node%
+{\def\Element%
+{0:147}}\Node%
+{\def\Element%
+{0:148}}CLSQL\endNode{}\endNode{} supports the following databases:
+      \endNode{}\Node%
+{\def\Element%
+{0:149}}\Node%
+{\def\Element%
+{0:150}}\Node%
+{\def\Element%
+{0:151}}\Node%
+{\def\Element%
+{0:152}}MySQL\endNode{} v3.23.49.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:153}}\Node%
+{\def\Element%
+{0:154}}\Node%
+{\def\Element%
+{0:155}}PostgreSQL\endNode{} v7.2 with both direct API and TCP socket connections.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:156}}\Node%
+{\def\Element%
+{0:157}}Allegro's ODBC interface (\Node%
+{\def\Element%
+{0:158}}AODBC\endNode{}) using iODBC ODBC manager.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:159}}\Node%
+{\def\Element%
+{0:160}}Installation\endNode{}\Node%
+{\def\Element%
+{0:161}}\Node%
+{\def\Element%
+{0:162}}Ensure \Node%
+{\def\Element%
+{0:163}}Defsystem\endNode{} is loaded\endNode{}\Node%
+{\def\Element%
+{0:164}}       Simply load the file \Node%
+{\def\Element%
+{0:165}}defsystem.lisp\endNode{}.
+        \Node%
+{\def\Element%
+{0:166}}(load "defsystem.lisp")
+        \endNode{}
+      \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:167}}\Node%
+{\def\Element%
+{0:168}}Build \Node%
+{\def\Element%
+{0:169}}C\endNode{} helper libraries\endNode{}\Node%
+{\def\Element%
+{0:170}}\Node%
+{\def\Element%
+{0:171}}\Node%
+{\def\Element%
+{0:172}}CLSQL\endNode{}\endNode{} uses functions that require 64-\/bit integer
+parameters and return values. The \Node%
+{\def\Element%
+{0:173}}FFI\endNode{} in most \Node%
+{\def\Element%
+{0:174}}\Node%
+{\def\Element%
+{0:175}}CLSQL\endNode{}\endNode{}
+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.\endNode{}\Node%
+{\def\Element%
+{0:176}}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 \Node%
+{\def\Element%
+{0:177}}DLL\endNode{} and \Node%
+{\def\Element%
+{0:178}}LIB\endNode{}
+files for Microsoft Windows are supplied with the distribution.\endNode{}\Node%
+{\def\Element%
+{0:179}}To build the libraries on a GNU or Solaris, use the shell and
+change to the root directory of \Node%
+{\def\Element%
+{0:180}}\Node%
+{\def\Element%
+{0:181}}CLSQL\endNode{}\endNode{}. You may need to edit the file
+\Node%
+{\def\Element%
+{0:182}}interfaces/mysql/Makefile\endNode{} 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
+\Node%
+{\def\Element%
+{0:183}}make libs\endNode{}
+in the root directory of \Node%
+{\def\Element%
+{0:184}}\Node%
+{\def\Element%
+{0:185}}CLSQL\endNode{}\endNode{} to build the libraries 
+\Node%
+{\def\Element%
+{0:186}}interfaces/mysql/clsql-\/mysql.so\endNode{} and
+\Node%
+{\def\Element%
+{0:187}}interfaces/clsql-\/uffi/clsql-\/uffi.so\endNode{}.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:188}}\Node%
+{\def\Element%
+{0:189}}Load \Node%
+{\def\Element%
+{0:190}}\Node%
+{\def\Element%
+{0:191}}UFFI\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:192}}       Unzip or untar the \Node%
+{\def\Element%
+{0:193}}\Node%
+{\def\Element%
+{0:194}}UFFI\endNode{}\endNode{} distribution which creates a directory
+for the \Node%
+{\def\Element%
+{0:195}}\Node%
+{\def\Element%
+{0:196}}UFFI\endNode{}\endNode{} files. Add that directory to Defsystem's \Node%
+{\def\Element%
+{0:197}}mk:*central-\/registry*\endNode{}.
+You can do that by either pushing the pathname of the directory onto this variable, or
+use the new \Node%
+{\def\Element%
+{0:198}}add-\/registry-\/location\endNode{} present in the newest versions of
+\Node%
+{\def\Element%
+{0:199}}Defsystem\endNode{}. The following example code assumes the \Node%
+{\def\Element%
+{0:200}}\Node%
+{\def\Element%
+{0:201}}UFFI\endNode{}\endNode{} files reside in the
+\Node%
+{\def\Element%
+{0:202}}/usr/local/src/lisp/uffi\endNode{} directory.
+       \Node%
+{\def\Element%
+{0:203}}(mk:add-\/registry-\/location \#P"/usr/local/src/lisp/uffi")
+(mk:load-\/system :uffi)
+        \endNode{}
+      \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:204}}\Node%
+{\def\Element%
+{0:205}}Load \Node%
+{\def\Element%
+{0:206}}\Node%
+{\def\Element%
+{0:207}}CLSQL\endNode{}\endNode{} modules\endNode{}\Node%
+{\def\Element%
+{0:208}}       Unzip or untar the \Node%
+{\def\Element%
+{0:209}}\Node%
+{\def\Element%
+{0:210}}CLSQL\endNode{}\endNode{} distribution which creates a directory
+for the \Node%
+{\def\Element%
+{0:211}}\Node%
+{\def\Element%
+{0:212}}CLSQL\endNode{}\endNode{} files. Add that directory to Defsystem's \Node%
+{\def\Element%
+{0:213}}mk:*central-\/registry*\endNode{}.
+You can do that by either pushing the pathname of the directory onto this variable, or
+use the new \Node%
+{\def\Element%
+{0:214}}add-\/registry-\/location\endNode{} present in the newest versions of
+\Node%
+{\def\Element%
+{0:215}}Defsystem\endNode{}. The following example code assumes the \Node%
+{\def\Element%
+{0:216}}\Node%
+{\def\Element%
+{0:217}}CLSQL\endNode{}\endNode{} files reside in the
+\Node%
+{\def\Element%
+{0:218}}/usr/local/src/lisp/clsql\endNode{} directory. You need to load, at a minimum,
+the main \Node%
+{\def\Element%
+{0:219}}:clsql\endNode{} system and at least one interface system.
+       \Node%
+{\def\Element%
+{0:220}}(mk:add-\/registry-\/location \#P"/usr/local/src/lisp/clsql")
+(mk:load-\/system :clsql)              ; main clsql package
+(mk:load-\/system :clsql-\/mysql)       ; MySQL interface
+(mk:load-\/system :clsql-\/postgresql)  ; PostgreSQL interface
+(mk:load-\/system :clsql-\/postgresql-\/socket) ; Socket PGSQL interface
+(mk:load-\/system :clsql-\/aodbc)       ; Allegro ODBC interface
+        \endNode{}
+      \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:221}}\Node%
+{\def\Element%
+{0:222}}Run test suite\endNode{}\Node%
+{\def\Element%
+{0:223}}       After loading \Node%
+{\def\Element%
+{0:224}}\Node%
+{\def\Element%
+{0:225}}CLSQL\endNode{}\endNode{}, you can execute the test program in
+the directory \Node%
+{\def\Element%
+{0:226}}./test-\/suite\endNode{}. The test file,
+\Node%
+{\def\Element%
+{0:227}}tester-\/clsql\endNode{}
+has instructions for creating a \Node%
+{\def\Element%
+{0:228}}test.config\endNode{}.
+After creating that file, simple load the test file with Lisp
+and the tests should automatically execute.
+      \endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:229}}\Node%
+{\def\Element%
+{0:230}}\Node%
+{\def\Element%
+{0:231}}CLSQL\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:232}}\Node%
+{\def\Element%
+{0:233}}This part gives a reference to all the symbols exported
+        from the package \Node%
+{\def\Element%
+{0:234}}CLSQL-\/SYS\endNode{}, which are also
+       re-\/exported from the package \Node%
+{\def\Element%
+{0:235}}CLSQL\endNode{}.  These
+       symbols constitute the normal user-\/interface of
+       \Node%
+{\def\Element%
+{0:236}}\Node%
+{\def\Element%
+{0:237}}CLSQL\endNode{}\endNode{}.\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:MAISQL-CONDITION}}\Node%
+{\def\Element%
+{0:239}}\Node%
+{\def\Element%
+{0:240}}CLSQL-\/CONDITION\endNode{}\Node%
+{\def\Element%
+{0:241}}the super-\/type of all
+         \Node%
+{\def\Element%
+{0:242}}\Node%
+{\def\Element%
+{0:243}}CLSQL\endNode{}\endNode{}-\/specific
+         conditions\endNode{}\Node%
+{\def\Element%
+{0:244}}Condition Type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:245}}\Node%
+{\def\Element%
+{0:246}}Class Precedence List\endNode{}\Node%
+{\def\Element%
+{0:247}}       \Node%
+{\def\Element%
+{0:248}}\Node%
+{\def\Element%
+{0:249}}\Node%
+{\def\Element%
+{0:250}}maisql-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:251}}\Node%
+{\def\Element%
+{0:252}}condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:253}}\Node%
+{\def\Element%
+{0:254}}t\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:255}}\Node%
+{\def\Element%
+{0:256}}Description\endNode{}\Node%
+{\def\Element%
+{0:257}}This is the super-\/type of all
+         \Node%
+{\def\Element%
+{0:258}}\Node%
+{\def\Element%
+{0:259}}CLSQL\endNode{}\endNode{}-\/specific conditions
+         defined by \Node%
+{\def\Element%
+{0:260}}\Node%
+{\def\Element%
+{0:261}}CLSQL\endNode{}\endNode{}, or any of it's
+         database-\/specific interfaces.  There are no defined
+         initialization arguments nor any accessors.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:MAISQL-ERROR}}\Node%
+{\def\Element%
+{0:263}}\Node%
+{\def\Element%
+{0:264}}CLSQL-\/ERROR\endNode{}\Node%
+{\def\Element%
+{0:265}}the super-\/type of all
+         \Node%
+{\def\Element%
+{0:266}}\Node%
+{\def\Element%
+{0:267}}CLSQL\endNode{}\endNode{}-\/specific
+         errors\endNode{}\Node%
+{\def\Element%
+{0:268}}Condition Type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:269}}\Node%
+{\def\Element%
+{0:270}}Class Precedence List\endNode{}\Node%
+{\def\Element%
+{0:271}}       \Node%
+{\def\Element%
+{0:272}}\Node%
+{\def\Element%
+{0:273}}\Node%
+{\def\Element%
+{0:274}}maisql-\/error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:275}}\Node%
+{\def\Element%
+{0:276}}error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:277}}\Node%
+{\def\Element%
+{0:278}}serious-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:279}}\Node%
+{\def\Element%
+{0:280}}maisql-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:281}}\Node%
+{\def\Element%
+{0:282}}condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:283}}\Node%
+{\def\Element%
+{0:284}}t\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:285}}\Node%
+{\def\Element%
+{0:286}}Description\endNode{}\Node%
+{\def\Element%
+{0:287}}This is the super-\/type of all
+         \Node%
+{\def\Element%
+{0:288}}\Node%
+{\def\Element%
+{0:289}}CLSQL\endNode{}\endNode{}-\/specific conditions that
+         represent errors, as defined by
+         \Node%
+{\def\Element%
+{0:290}}\Node%
+{\def\Element%
+{0:291}}CLSQL\endNode{}\endNode{}, or any of it's
+         database-\/specific interfaces.  There are no defined
+         initialization arguments nor any accessors.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:MAISQL-SIMPLE-ERROR}}\Node%
+{\def\Element%
+{0:293}}\Node%
+{\def\Element%
+{0:294}}CLSQL-\/SIMPLE-\/ERROR\endNode{}\Node%
+{\def\Element%
+{0:295}}Unspecific simple
+         \Node%
+{\def\Element%
+{0:296}}\Node%
+{\def\Element%
+{0:297}}CLSQL\endNode{}\endNode{} errors\endNode{}\Node%
+{\def\Element%
+{0:298}}Condition Type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:299}}\Node%
+{\def\Element%
+{0:300}}Class Precedence List\endNode{}\Node%
+{\def\Element%
+{0:301}}       \Node%
+{\def\Element%
+{0:302}}\Node%
+{\def\Element%
+{0:303}}\Node%
+{\def\Element%
+{0:304}}maisql-\/simple-\/error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:305}}\Node%
+{\def\Element%
+{0:306}}simple-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:307}}\Node%
+{\def\Element%
+{0:308}}maisql-\/error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:309}}\Node%
+{\def\Element%
+{0:310}}error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:311}}\Node%
+{\def\Element%
+{0:312}}serious-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:313}}\Node%
+{\def\Element%
+{0:314}}maisql-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:315}}\Node%
+{\def\Element%
+{0:316}}condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:317}}\Node%
+{\def\Element%
+{0:318}}t\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:319}}\Node%
+{\def\Element%
+{0:320}}Description\endNode{}\Node%
+{\def\Element%
+{0:321}}This condition is used in all instances of errors, where
+         there exists no \Node%
+{\def\Element%
+{0:322}}\Node%
+{\def\Element%
+{0:323}}CLSQL\endNode{}\endNode{}-\/specific
+         condition that is more specific.  The valid initialization
+         arguments and accessors are the same as for
+         \Node%
+{\def\Element%
+{0:324}}simple-\/condition\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:MAISQL-WARNING}}\Node%
+{\def\Element%
+{0:326}}\Node%
+{\def\Element%
+{0:327}}CLSQL-\/WARNING\endNode{}\Node%
+{\def\Element%
+{0:328}}the super-\/type of all
+         \Node%
+{\def\Element%
+{0:329}}\Node%
+{\def\Element%
+{0:330}}CLSQL\endNode{}\endNode{}-\/specific
+         warnings\endNode{}\Node%
+{\def\Element%
+{0:331}}Condition Type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:332}}\Node%
+{\def\Element%
+{0:333}}Class Precedence List\endNode{}\Node%
+{\def\Element%
+{0:334}}       \Node%
+{\def\Element%
+{0:335}}\Node%
+{\def\Element%
+{0:336}}\Node%
+{\def\Element%
+{0:337}}maisql-\/warning\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:338}}\Node%
+{\def\Element%
+{0:339}}warning\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:340}}\Node%
+{\def\Element%
+{0:341}}maisql-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:342}}\Node%
+{\def\Element%
+{0:343}}condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:344}}\Node%
+{\def\Element%
+{0:345}}t\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:346}}\Node%
+{\def\Element%
+{0:347}}Description\endNode{}\Node%
+{\def\Element%
+{0:348}}This is the super-\/type of all
+         \Node%
+{\def\Element%
+{0:349}}\Node%
+{\def\Element%
+{0:350}}CLSQL\endNode{}\endNode{}-\/specific conditions that
+         represent warnings, as defined by
+         \Node%
+{\def\Element%
+{0:351}}\Node%
+{\def\Element%
+{0:352}}CLSQL\endNode{}\endNode{}, or any of it's
+         database-\/specific interfaces.  There are no defined
+         initialization arguments nor any accessors.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:MAISQL-SIMPLE-WARNING}}\Node%
+{\def\Element%
+{0:354}}\Node%
+{\def\Element%
+{0:355}}CLSQL-\/SIMPLE-\/WARNING\endNode{}\Node%
+{\def\Element%
+{0:356}}Unspecific simple
+         \Node%
+{\def\Element%
+{0:357}}\Node%
+{\def\Element%
+{0:358}}CLSQL\endNode{}\endNode{} warnings\endNode{}\Node%
+{\def\Element%
+{0:359}}Condition Type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:360}}\Node%
+{\def\Element%
+{0:361}}Class Precedence List\endNode{}\Node%
+{\def\Element%
+{0:362}}       \Node%
+{\def\Element%
+{0:363}}\Node%
+{\def\Element%
+{0:364}}\Node%
+{\def\Element%
+{0:365}}maisql-\/simple-\/warning\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:366}}\Node%
+{\def\Element%
+{0:367}}simple-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:368}}\Node%
+{\def\Element%
+{0:369}}maisql-\/warning\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:370}}\Node%
+{\def\Element%
+{0:371}}warning\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:372}}\Node%
+{\def\Element%
+{0:373}}maisql-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:374}}\Node%
+{\def\Element%
+{0:375}}condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:376}}\Node%
+{\def\Element%
+{0:377}}t\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:378}}\Node%
+{\def\Element%
+{0:379}}Description\endNode{}\Node%
+{\def\Element%
+{0:380}}This condition is used in all instances of warnings,
+         where  there exists no
+         \Node%
+{\def\Element%
+{0:381}}\Node%
+{\def\Element%
+{0:382}}CLSQL\endNode{}\endNode{}-\/specific condition that is
+         more specific.  The valid initialization arguments and
+         accessors are the same as for
+         \Node%
+{\def\Element%
+{0:383}}simple-\/condition\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:MAISQL-INVALID-SPEC-ERROR}}\Node%
+{\def\Element%
+{0:385}}\Node%
+{\def\Element%
+{0:386}}CLSQL-\/INVALID-\/SPEC-\/ERROR\endNode{}\Node%
+{\def\Element%
+{0:387}}condition representing errors because of invalid
+         connection specifications\endNode{}\Node%
+{\def\Element%
+{0:388}}Condition Type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:389}}\Node%
+{\def\Element%
+{0:390}}Class Precedence List\endNode{}\Node%
+{\def\Element%
+{0:391}}       \Node%
+{\def\Element%
+{0:392}}\Node%
+{\def\Element%
+{0:393}}\Node%
+{\def\Element%
+{0:394}}maisql-\/invalid-\/spec-\/error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:395}}\Node%
+{\def\Element%
+{0:396}}maisql-\/error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:397}}\Node%
+{\def\Element%
+{0:398}}error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:399}}\Node%
+{\def\Element%
+{0:400}}serious-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:401}}\Node%
+{\def\Element%
+{0:402}}maisql-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:403}}\Node%
+{\def\Element%
+{0:404}}condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:405}}\Node%
+{\def\Element%
+{0:406}}t\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:407}}\Node%
+{\def\Element%
+{0:408}}Description\endNode{}\Node%
+{\def\Element%
+{0:409}}This condition represents errors that occur because the
+         user supplies an invalid connection specification to either
+         \Node%
+{\def\Element%
+{0:410}}database-\/name-\/from-\/spec\endNode{} or
+         \Node%
+{\def\Element%
+{0:411}}connect\endNode{}.  The following initialization
+         arguments and accessors exist:\endNode{}\Node%
+{\def\Element%
+{0:412}}\Node%
+{\def\Element%
+{0:413}}Initarg\endNode{}\Node%
+{\def\Element%
+{0:414}}Accessor\endNode{}\Node%
+{\def\Element%
+{0:415}}Description\endNode{}\Node%
+{\def\Element%
+{0:416}}\Node%
+{\def\Element%
+{0:417}}\Node%
+{\def\Element%
+{0:418}}:connection-\/spec\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:419}}\Node%
+{\def\Element%
+{0:420}}maisql-\/invalid-\/spec-\/error-\/connection-\/spec\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:421}}The invalid connection specification used.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:422}}\Node%
+{\def\Element%
+{0:423}}\Node%
+{\def\Element%
+{0:424}}:database-\/type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:425}}\Node%
+{\def\Element%
+{0:426}}maisql-\/invalid-\/spec-\/error-\/database-\/type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:427}}The Database type used in the attempt.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:428}}\Node%
+{\def\Element%
+{0:429}}\Node%
+{\def\Element%
+{0:430}}:template\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:431}}\Node%
+{\def\Element%
+{0:432}}maisql-\/invalid-\/spec-\/error-\/template\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:433}}An argument describing the template that a valid
+             connection specification must match for this database type.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:MAISQL-CONNECT-ERROR}}\Node%
+{\def\Element%
+{0:435}}\Node%
+{\def\Element%
+{0:436}}CLSQL-\/CONNECT-\/ERROR\endNode{}\Node%
+{\def\Element%
+{0:437}}condition representing errors during
+         connection\endNode{}\Node%
+{\def\Element%
+{0:438}}Condition Type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:439}}\Node%
+{\def\Element%
+{0:440}}Class Precedence List\endNode{}\Node%
+{\def\Element%
+{0:441}}       \Node%
+{\def\Element%
+{0:442}}\Node%
+{\def\Element%
+{0:443}}\Node%
+{\def\Element%
+{0:444}}maisql-\/connect-\/error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:445}}\Node%
+{\def\Element%
+{0:446}}maisql-\/error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:447}}\Node%
+{\def\Element%
+{0:448}}error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:449}}\Node%
+{\def\Element%
+{0:450}}serious-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:451}}\Node%
+{\def\Element%
+{0:452}}maisql-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:453}}\Node%
+{\def\Element%
+{0:454}}condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:455}}\Node%
+{\def\Element%
+{0:456}}t\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:457}}\Node%
+{\def\Element%
+{0:458}}Description\endNode{}\Node%
+{\def\Element%
+{0:459}}This condition represents errors that occur while trying 
+         to connect to a database.  The following initialization
+         arguments and accessors exist:\endNode{}\Node%
+{\def\Element%
+{0:460}}\Node%
+{\def\Element%
+{0:461}}Initarg\endNode{}\Node%
+{\def\Element%
+{0:462}}Accessor\endNode{}\Node%
+{\def\Element%
+{0:463}}Description\endNode{}\Node%
+{\def\Element%
+{0:464}}\Node%
+{\def\Element%
+{0:465}}\Node%
+{\def\Element%
+{0:466}}:database-\/type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:467}}\Node%
+{\def\Element%
+{0:468}}maisql-\/connect-\/error-\/database-\/type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:469}}Database type for the connection attempt\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:470}}\Node%
+{\def\Element%
+{0:471}}\Node%
+{\def\Element%
+{0:472}}:connection-\/spec\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:473}}\Node%
+{\def\Element%
+{0:474}}maisql-\/connect-\/error-\/connection-\/spec\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:475}}The connection specification used in the
+             connection attempt.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:476}}\Node%
+{\def\Element%
+{0:477}}\Node%
+{\def\Element%
+{0:478}}:errno\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:479}}\Node%
+{\def\Element%
+{0:480}}maisql-\/connect-\/error-\/errno\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:481}}The numeric or symbolic error specification
+             returned by the database back-\/end.  The values and
+             semantics of this are interface specific.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:482}}\Node%
+{\def\Element%
+{0:483}}\Node%
+{\def\Element%
+{0:484}}:error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:485}}\Node%
+{\def\Element%
+{0:486}}maisql-\/connect-\/error-\/error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:487}}A string describing the problem that occurred,
+             possibly one returned by the database back-\/end.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:MAISQL-SQL-ERROR}}\Node%
+{\def\Element%
+{0:489}}\Node%
+{\def\Element%
+{0:490}}CLSQL-\/SQL-\/ERROR\endNode{}\Node%
+{\def\Element%
+{0:491}}condition representing errors during query or
+         command execution\endNode{}\Node%
+{\def\Element%
+{0:492}}Condition Type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:493}}\Node%
+{\def\Element%
+{0:494}}Class Precedence List\endNode{}\Node%
+{\def\Element%
+{0:495}}       \Node%
+{\def\Element%
+{0:496}}\Node%
+{\def\Element%
+{0:497}}\Node%
+{\def\Element%
+{0:498}}maisql-\/sql-\/error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:499}}\Node%
+{\def\Element%
+{0:500}}maisql-\/error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:501}}\Node%
+{\def\Element%
+{0:502}}error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:503}}\Node%
+{\def\Element%
+{0:504}}serious-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:505}}\Node%
+{\def\Element%
+{0:506}}maisql-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:507}}\Node%
+{\def\Element%
+{0:508}}condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:509}}\Node%
+{\def\Element%
+{0:510}}t\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:511}}\Node%
+{\def\Element%
+{0:512}}Description\endNode{}\Node%
+{\def\Element%
+{0:513}}This condition represents errors that occur while
+       executing SQL statements, either as part of query operations
+       or command execution, either explicitly or implicitly, as
+         caused e.g. by \Node%
+{\def\Element%
+{0:514}}with-\/transaction\endNode{}.
+         The following initialization arguments and accessors exist:\endNode{}\Node%
+{\def\Element%
+{0:515}}\Node%
+{\def\Element%
+{0:516}}Initarg\endNode{}\Node%
+{\def\Element%
+{0:517}}Accessor\endNode{}\Node%
+{\def\Element%
+{0:518}}Description\endNode{}\Node%
+{\def\Element%
+{0:519}}\Node%
+{\def\Element%
+{0:520}}\Node%
+{\def\Element%
+{0:521}}:database\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:522}}\Node%
+{\def\Element%
+{0:523}}maisql-\/sql-\/error-\/database\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:524}}The database object that was involved in the
+             incident.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:525}}\Node%
+{\def\Element%
+{0:526}}\Node%
+{\def\Element%
+{0:527}}:expression\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:528}}\Node%
+{\def\Element%
+{0:529}}maisql-\/sql-\/error-\/expression\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:530}}The SQL expression whose execution caused the error.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:531}}\Node%
+{\def\Element%
+{0:532}}\Node%
+{\def\Element%
+{0:533}}:errno\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:534}}\Node%
+{\def\Element%
+{0:535}}maisql-\/sql-\/error-\/errno\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:536}}The numeric or symbolic error specification
+             returned by the database back-\/end.  The values and
+             semantics of this are interface specific.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:537}}\Node%
+{\def\Element%
+{0:538}}\Node%
+{\def\Element%
+{0:539}}:error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:540}}\Node%
+{\def\Element%
+{0:541}}maisql-\/sql-\/error-\/error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:542}}A string describing the problem that occurred,
+             possibly one returned by the database back-\/end.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:MAISQL-EXISTS-CONDITION}}\Node%
+{\def\Element%
+{0:544}}\Node%
+{\def\Element%
+{0:545}}CLSQL-\/EXISTS-\/CONDITION\endNode{}\Node%
+{\def\Element%
+{0:546}}condition indicating situations arising because of 
+         existing connections\endNode{}\Node%
+{\def\Element%
+{0:547}}Condition Type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:548}}\Node%
+{\def\Element%
+{0:549}}Class Precedence List\endNode{}\Node%
+{\def\Element%
+{0:550}}       \Node%
+{\def\Element%
+{0:551}}\Node%
+{\def\Element%
+{0:552}}\Node%
+{\def\Element%
+{0:553}}maisql-\/exists-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:554}}\Node%
+{\def\Element%
+{0:555}}maisql-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:556}}\Node%
+{\def\Element%
+{0:557}}condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:558}}\Node%
+{\def\Element%
+{0:559}}t\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:560}}\Node%
+{\def\Element%
+{0:561}}Description\endNode{}\Node%
+{\def\Element%
+{0:562}}This condition is the super-\/type of all conditions which
+         represents problems that occur during calls to
+         \Node%
+{\def\Element%
+{0:563}}connect\endNode{}, if a connection to the
+         database exists already.  Depending on the value of
+         \Node%
+{\def\Element%
+{0:564}}if-\/exists\endNode{} to the call of
+         \Node%
+{\def\Element%
+{0:565}}connect\endNode{}, either a warning, an error or
+         no condition at all is signalled.  If a warning or error is
+         signalled, either
+         \Node%
+{\def\Element%
+{0:566}}maisql-\/exists-\/warning\endNode{} or
+         \Node%
+{\def\Element%
+{0:567}}maisql-\/exists-\/error\endNode{} is signalled,
+         which are subtypes of
+         \Node%
+{\def\Element%
+{0:568}}maisql-\/exists-\/condition\endNode{} and
+         \Node%
+{\def\Element%
+{0:569}}maisql-\/warning\endNode{} or
+         \Node%
+{\def\Element%
+{0:570}}maisql-\/error\endNode{}.
+         \Node%
+{\def\Element%
+{0:571}}maisql-\/exists-\/condition\endNode{} is never
+         signalled itself.\endNode{}\Node%
+{\def\Element%
+{0:572}}         The following initialization arguments and accessors exist:\endNode{}\Node%
+{\def\Element%
+{0:573}}\Node%
+{\def\Element%
+{0:574}}Initarg\endNode{}\Node%
+{\def\Element%
+{0:575}}Accessor\endNode{}\Node%
+{\def\Element%
+{0:576}}Description\endNode{}\Node%
+{\def\Element%
+{0:577}}\Node%
+{\def\Element%
+{0:578}}\Node%
+{\def\Element%
+{0:579}}:old-\/db\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:580}}\Node%
+{\def\Element%
+{0:581}}maisql-\/exists-\/condition-\/old-\/db\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:582}}The database object that represents the existing
+             connection.  This slot is always filled.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:583}}\Node%
+{\def\Element%
+{0:584}}\Node%
+{\def\Element%
+{0:585}}:new-\/db\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:586}}\Node%
+{\def\Element%
+{0:587}}maisql-\/exists-\/condition-\/new-\/db\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:588}}The database object that will be used and returned by 
+             this call to connect, if execution continues normally.
+             This can be either \Node%
+{\def\Element%
+{0:589}}nil\endNode{}, indicating that 
+             a new database object is to be created on continuation,
+             or a database object representing the newly created
+             continuation, or the same database object as
+             \Node%
+{\def\Element%
+{0:590}}old-\/db\endNode{}, indicating that the existing
+             database object will be reused.  This slot is always
+             filled and defaults to \Node%
+{\def\Element%
+{0:591}}nil\endNode{}.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:MAISQL-EXISTS-WARNING}}\Node%
+{\def\Element%
+{0:593}}\Node%
+{\def\Element%
+{0:594}}CLSQL-\/EXISTS-\/WARNING\endNode{}\Node%
+{\def\Element%
+{0:595}}condition representing warnings arising because of 
+         existing connections\endNode{}\Node%
+{\def\Element%
+{0:596}}Condition Type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:597}}\Node%
+{\def\Element%
+{0:598}}Class Precedence List\endNode{}\Node%
+{\def\Element%
+{0:599}}       \Node%
+{\def\Element%
+{0:600}}\Node%
+{\def\Element%
+{0:601}}\Node%
+{\def\Element%
+{0:602}}maisql-\/exists-\/warning\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:603}}\Node%
+{\def\Element%
+{0:604}}maisql-\/exists-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:605}}\Node%
+{\def\Element%
+{0:606}}maisql-\/warning\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:607}}\Node%
+{\def\Element%
+{0:608}}warning\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:609}}\Node%
+{\def\Element%
+{0:610}}maisql-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:611}}\Node%
+{\def\Element%
+{0:612}}condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:613}}\Node%
+{\def\Element%
+{0:614}}t\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:615}}\Node%
+{\def\Element%
+{0:616}}Description\endNode{}\Node%
+{\def\Element%
+{0:617}}This condition is a subtype of
+       \Node%
+{\def\Element%
+{0:618}}maisql-\/exists-\/condition\endNode{}, and is
+         signalled during calls to \Node%
+{\def\Element%
+{0:619}}connect\endNode{} when
+         there is an existing connection, and
+         \Node%
+{\def\Element%
+{0:620}}if-\/exists\endNode{} is either
+         \Node%
+{\def\Element%
+{0:621}}:warn-\/new\endNode{} or \Node%
+{\def\Element%
+{0:622}}:warn-\/old\endNode{}.
+         In the former case, \Node%
+{\def\Element%
+{0:623}}new-\/db\endNode{} will be the
+         newly created database object, in the latter case it will be 
+         the existing old database object.\endNode{}\Node%
+{\def\Element%
+{0:624}}         The initialization arguments and accessors are the same as
+         for \Node%
+{\def\Element%
+{0:625}}maisql-\/exists-\/condition\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:MAISQL-EXISTS-ERROR}}\Node%
+{\def\Element%
+{0:627}}\Node%
+{\def\Element%
+{0:628}}CLSQL-\/EXISTS-\/ERROR\endNode{}\Node%
+{\def\Element%
+{0:629}}condition representing errors arising because of 
+         existing connections\endNode{}\Node%
+{\def\Element%
+{0:630}}Condition Type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:631}}\Node%
+{\def\Element%
+{0:632}}Class Precedence List\endNode{}\Node%
+{\def\Element%
+{0:633}}       \Node%
+{\def\Element%
+{0:634}}\Node%
+{\def\Element%
+{0:635}}\Node%
+{\def\Element%
+{0:636}}maisql-\/exists-\/error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:637}}\Node%
+{\def\Element%
+{0:638}}maisql-\/exists-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:639}}\Node%
+{\def\Element%
+{0:640}}maisql-\/error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:641}}\Node%
+{\def\Element%
+{0:642}}error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:643}}\Node%
+{\def\Element%
+{0:644}}serious-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:645}}\Node%
+{\def\Element%
+{0:646}}maisql-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:647}}\Node%
+{\def\Element%
+{0:648}}condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:649}}\Node%
+{\def\Element%
+{0:650}}t\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:651}}\Node%
+{\def\Element%
+{0:652}}Description\endNode{}\Node%
+{\def\Element%
+{0:653}}This condition is a subtype of
+       \Node%
+{\def\Element%
+{0:654}}maisql-\/exists-\/condition\endNode{}, and is
+         signalled during calls to \Node%
+{\def\Element%
+{0:655}}connect\endNode{} when
+         there is an existing connection, and
+         \Node%
+{\def\Element%
+{0:656}}if-\/exists\endNode{} is \Node%
+{\def\Element%
+{0:657}}:error\endNode{}.
+         In this case, \Node%
+{\def\Element%
+{0:658}}new-\/db\endNode{} will be
+         \Node%
+{\def\Element%
+{0:659}}nil\endNode{}, indicating that the database object to 
+         be returned by \Node%
+{\def\Element%
+{0:660}}connect\endNode{} depends on user
+         action in continuing from this correctable error.\endNode{}\Node%
+{\def\Element%
+{0:661}}         The initialization arguments and accessors are the same as
+         for \Node%
+{\def\Element%
+{0:662}}maisql-\/exists-\/condition\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:MAISQL-CLOSED-ERROR}}\Node%
+{\def\Element%
+{0:664}}\Node%
+{\def\Element%
+{0:665}}CLSQL-\/CLOSED-\/ERROR\endNode{}\Node%
+{\def\Element%
+{0:666}}condition representing errors because the database 
+         has already been closed\endNode{}\Node%
+{\def\Element%
+{0:667}}Condition Type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:668}}\Node%
+{\def\Element%
+{0:669}}Class Precedence List\endNode{}\Node%
+{\def\Element%
+{0:670}}       \Node%
+{\def\Element%
+{0:671}}\Node%
+{\def\Element%
+{0:672}}\Node%
+{\def\Element%
+{0:673}}maisql-\/closed-\/error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:674}}\Node%
+{\def\Element%
+{0:675}}maisql-\/error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:676}}\Node%
+{\def\Element%
+{0:677}}error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:678}}\Node%
+{\def\Element%
+{0:679}}serious-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:680}}\Node%
+{\def\Element%
+{0:681}}maisql-\/condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:682}}\Node%
+{\def\Element%
+{0:683}}condition\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:684}}\Node%
+{\def\Element%
+{0:685}}t\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:686}}\Node%
+{\def\Element%
+{0:687}}Description\endNode{}\Node%
+{\def\Element%
+{0:688}}This condition represents errors that occur because the
+         user invokes an operation on the given database object,
+         although the database is invalid because
+         \Node%
+{\def\Element%
+{0:689}}disconnect\endNode{} has already been called on
+         this database object.\endNode{}\Node%
+{\def\Element%
+{0:690}}Functions which signal this error when called with a
+         closed database will usually provide a
+         \Node%
+{\def\Element%
+{0:691}}continue\endNode{} restart, that will just return nil 
+         from the function.\endNode{}\Node%
+{\def\Element%
+{0:692}}         The following initialization arguments and accessors exist:\endNode{}\Node%
+{\def\Element%
+{0:693}}\Node%
+{\def\Element%
+{0:694}}Initarg\endNode{}\Node%
+{\def\Element%
+{0:695}}Accessor\endNode{}\Node%
+{\def\Element%
+{0:696}}Description\endNode{}\Node%
+{\def\Element%
+{0:697}}\Node%
+{\def\Element%
+{0:698}}\Node%
+{\def\Element%
+{0:699}}:database\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:700}}\Node%
+{\def\Element%
+{0:701}}maisql-\/closed-\/error-\/database\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:702}}The database object that was involved in the
+             incident.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:DEFAULT-DATABASE-TYPE}}\Node%
+{\def\Element%
+{0:704}}\Node%
+{\def\Element%
+{0:705}}*DEFAULT-\/DATABASE-\/TYPE*\endNode{}\Node%
+{\def\Element%
+{0:706}}The default database type to use\endNode{}\Node%
+{\def\Element%
+{0:707}}Variable\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:708}}\Node%
+{\def\Element%
+{0:709}}Value Type\endNode{}\Node%
+{\def\Element%
+{0:710}}Any keyword representing a valid database back-\/end of
+         \Node%
+{\def\Element%
+{0:711}}\Node%
+{\def\Element%
+{0:712}}CLSQL\endNode{}\endNode{}, or
+         \Node%
+{\def\Element%
+{0:713}}nil\endNode{}.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:714}}\Node%
+{\def\Element%
+{0:715}}Initial Value\endNode{}\Node%
+{\def\Element%
+{0:716}}\Node%
+{\def\Element%
+{0:717}}nil\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:718}}\Node%
+{\def\Element%
+{0:719}}Description\endNode{}\Node%
+{\def\Element%
+{0:720}}The value of this variable is used in calls to
+         \Node%
+{\def\Element%
+{0:721}}initialize-\/database-\/type\endNode{} and
+         \Node%
+{\def\Element%
+{0:722}}connect\endNode{} as the default
+         value of the \Node%
+{\def\Element%
+{0:723}}database-\/type\endNode{}
+         parameter.\endNode{}\Node%
+{\def\Element%
+{0:724}}\Node%
+{\def\Element%
+{0:725}}If the value of this variable is \Node%
+{\def\Element%
+{0:726}}nil\endNode{},
+           then all calls to
+           \Node%
+{\def\Element%
+{0:727}}initialize-\/database-\/type\endNode{} or
+           \Node%
+{\def\Element%
+{0:728}}connect\endNode{} will have to specify the
+           \Node%
+{\def\Element%
+{0:729}}database-\/type\endNode{} to use, or a
+           general-\/purpose error will be signalled.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:730}}\Node%
+{\def\Element%
+{0:731}}Examples\endNode{}\Node%
+{\def\Element%
+{0:732}}(setf *default-\/database-\/type* :mysql)
+=>\/ :mysql
+(initialize-\/database-\/type)
+=>\/ t
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:733}}\Node%
+{\def\Element%
+{0:734}}Affected By\endNode{}\Node%
+{\def\Element%
+{0:735}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:736}}\Node%
+{\def\Element%
+{0:737}}See Also\endNode{}\Node%
+{\def\Element%
+{0:738}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:739}}\Node%
+{\def\Element%
+{0:740}}Notes\endNode{}\Node%
+{\def\Element%
+{0:741}}None.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:INITIALIZED-DATABASE-TYPES}}\Node%
+{\def\Element%
+{0:743}}\Node%
+{\def\Element%
+{0:744}}*INITIALIZED-\/DATABASE-\/TYPES*\endNode{}\Node%
+{\def\Element%
+{0:745}}List of all initialized database types\endNode{}\Node%
+{\def\Element%
+{0:746}}Variable\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:747}}\Node%
+{\def\Element%
+{0:748}}Value Type\endNode{}\Node%
+{\def\Element%
+{0:749}}A list of all initialized database types, each of which
+         represented by it's corresponding keyword.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:750}}\Node%
+{\def\Element%
+{0:751}}Initial Value\endNode{}\Node%
+{\def\Element%
+{0:752}}\Node%
+{\def\Element%
+{0:753}}nil\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:754}}\Node%
+{\def\Element%
+{0:755}}Description\endNode{}\Node%
+{\def\Element%
+{0:756}}This variable is updated whenever
+         \Node%
+{\def\Element%
+{0:757}}initialize-\/database-\/type\endNode{} is called for a
+         database type which hasn't already been initialized before,
+         as determined by this variable.  In that case the keyword
+         representing the database type is pushed onto the list
+         stored in
+         \Node%
+{\def\Element%
+{0:758}}*INITIALIZED-\/DATABASE-\/TYPES*\endNode{}.\endNode{}\Node%
+{\def\Element%
+{0:759}}\Node%
+{\def\Element%
+{0:760}}Attempts to modify the value of this variable will
+           result in undefined behaviour.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:761}}\Node%
+{\def\Element%
+{0:762}}Examples\endNode{}\Node%
+{\def\Element%
+{0:763}}(setf *default-\/database-\/type* :mysql)
+=>\/ :mysql
+(initialize-\/database-\/type)
+=>\/ t
+*initialized-\/database-\/types*
+=>\/ (:MYSQL)
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:764}}\Node%
+{\def\Element%
+{0:765}}Affected By\endNode{}\Node%
+{\def\Element%
+{0:766}}       \Node%
+{\def\Element%
+{0:767}}\Node%
+{\def\Element%
+{0:768}}\Node%
+{\def\Element%
+{0:769}}initialize-\/database-\/type\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:770}}\Node%
+{\def\Element%
+{0:771}}See Also\endNode{}\Node%
+{\def\Element%
+{0:772}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:773}}\Node%
+{\def\Element%
+{0:774}}Notes\endNode{}\Node%
+{\def\Element%
+{0:775}}Direct access to this variable is primarily provided
+         because of compatibility with Harlequin's \Node%
+{\def\Element%
+{0:776}}Common
+           SQL\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:INITIALIZE-DATABASE-TYPE}}\Node%
+{\def\Element%
+{0:778}}\Node%
+{\def\Element%
+{0:779}}INITIALIZE-\/DATABASE-\/TYPE\endNode{}\Node%
+{\def\Element%
+{0:780}}Initializes a database type\endNode{}\Node%
+{\def\Element%
+{0:781}}Function\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:782}}\Node%
+{\def\Element%
+{0:783}}Syntax\endNode{}\Node%
+{\def\Element%
+{0:784}}\Node%
+{\def\Element%
+{0:785}}initialize-\/database-\/type\endNode{} \Entity{amp}key \Node%
+{\def\Element%
+{0:786}}database-\/type\endNode{} =>\/ \Node%
+{\def\Element%
+{0:787}}result\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:788}}\Node%
+{\def\Element%
+{0:789}}Arguments and Values\endNode{}\Node%
+{\def\Element%
+{0:790}}\Node%
+{\def\Element%
+{0:791}}\Node%
+{\def\Element%
+{0:792}}\Node%
+{\def\Element%
+{0:793}}database-\/type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:794}}\Node%
+{\def\Element%
+{0:795}}The database type to initialize, i.e. a keyword
+               symbol denoting a known database back-\/end.  Defaults to
+               the value of
+               \Node%
+{\def\Element%
+{0:796}}*default-\/database-\/type*\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:797}}\Node%
+{\def\Element%
+{0:798}}\Node%
+{\def\Element%
+{0:799}}result\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:800}}\Node%
+{\def\Element%
+{0:801}}Either \Node%
+{\def\Element%
+{0:802}}nil\endNode{} if the initialization
+               attempt fails, or \Node%
+{\def\Element%
+{0:803}}t\endNode{} otherwise.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:804}}\Node%
+{\def\Element%
+{0:805}}Description\endNode{}\Node%
+{\def\Element%
+{0:806}}If the back-\/end specified by
+       \Node%
+{\def\Element%
+{0:807}}database-\/type\endNode{} has not already been
+         initialized, as seen from
+         \Node%
+{\def\Element%
+{0:808}}*initialized-\/database-\/types*\endNode{}, an attempt is 
+         made to initialize the database.  If this attempt succeeds,
+         or the back-\/end has already been initialized, the function
+         returns t, and places the keyword denoting the database type 
+         onto the list stored in
+         \Node%
+{\def\Element%
+{0:809}}*initialized-\/database-\/types*\endNode{}, if not
+         already present.\endNode{}\Node%
+{\def\Element%
+{0:810}}If initialization fails, the function returns
+         \Node%
+{\def\Element%
+{0:811}}nil\endNode{}, and/or signals an error of type
+         \Node%
+{\def\Element%
+{0:812}}maisql-\/error\endNode{}.  The kind of action
+         taken depends on the back-\/end and the cause of the
+         problem.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:813}}\Node%
+{\def\Element%
+{0:814}}Examples\endNode{}\Node%
+{\def\Element%
+{0:815}}*initialized-\/database-\/types*
+=>\/ NIL
+(setf *default-\/database-\/type* :mysql)
+=>\/ :MYSQL
+(initialize-\/database-\/type)
+>\/>\/ Compiling LAMBDA (\#:G897 \#:G898 \#:G901 \#:G902): 
+>\/>\/ Compiling Top-\/Level Form: 
+>\/>\/ 
+=>\/ T
+*initialized-\/database-\/types*
+=>\/ (:MYSQL)
+(initialize-\/database-\/type)
+=>\/ T
+*initialized-\/database-\/types*
+=>\/ (:MYSQL)
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:816}}\Node%
+{\def\Element%
+{0:817}}Side Effects\endNode{}\Node%
+{\def\Element%
+{0:818}}The database back-\/end corresponding to the database type
+         specified is initialized, unless it has already been
+         initialized.  This can involve any number of other side
+         effects, as determined by the back-\/end implementation (like
+         e.g. loading of foreign code, calling of foreign code,
+         networking operations, etc.).  If initialization is
+         attempted and succeeds, the
+         \Node%
+{\def\Element%
+{0:819}}database-\/type\endNode{} is pushed onto the list 
+         stored in
+         \Node%
+{\def\Element%
+{0:820}}*initialized-\/database-\/types*\endNode{}.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:821}}\Node%
+{\def\Element%
+{0:822}}Affected by\endNode{}\Node%
+{\def\Element%
+{0:823}}       \Node%
+{\def\Element%
+{0:824}}\Node%
+{\def\Element%
+{0:825}}\Node%
+{\def\Element%
+{0:826}}*default-\/database-\/type*\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:827}}\Node%
+{\def\Element%
+{0:828}}*initialized-\/database-\/types*\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:829}}\Node%
+{\def\Element%
+{0:830}}Exceptional Situations\endNode{}\Node%
+{\def\Element%
+{0:831}}If an error is encountered during the initialization
+         attempt, the back-\/end may signal errors of kind
+         \Node%
+{\def\Element%
+{0:832}}maisql-\/error\endNode{}.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:833}}\Node%
+{\def\Element%
+{0:834}}See Also\endNode{}\Node%
+{\def\Element%
+{0:835}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:836}}\Node%
+{\def\Element%
+{0:837}}Notes\endNode{}\Node%
+{\def\Element%
+{0:838}}None.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:CONNECT-IF-EXISTS}}\Node%
+{\def\Element%
+{0:840}}\Node%
+{\def\Element%
+{0:841}}*CONNECT-\/IF-\/EXISTS*\endNode{}\Node%
+{\def\Element%
+{0:842}}Default value for the
+         \Node%
+{\def\Element%
+{0:843}}if-\/exists\endNode{} parameter of
+         \Node%
+{\def\Element%
+{0:844}}connect\endNode{}.\endNode{}\Node%
+{\def\Element%
+{0:845}}Variable\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:846}}\Node%
+{\def\Element%
+{0:847}}Value Type\endNode{}\Node%
+{\def\Element%
+{0:848}}A valid argument to the \Node%
+{\def\Element%
+{0:849}}if-\/exists\endNode{} 
+         parameter of \Node%
+{\def\Element%
+{0:850}}connect\endNode{}, i.e. one of
+         \Node%
+{\def\Element%
+{0:851}}\Node%
+{\def\Element%
+{0:852}}\Node%
+{\def\Element%
+{0:853}}:new\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:854}}\Node%
+{\def\Element%
+{0:855}}:warn-\/new\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:856}}\Node%
+{\def\Element%
+{0:857}}:error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:858}}\Node%
+{\def\Element%
+{0:859}}:warn-\/old\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:860}}\Node%
+{\def\Element%
+{0:861}}:old\endNode{}\endNode{}\endNode{}.
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:862}}\Node%
+{\def\Element%
+{0:863}}Initial Value\endNode{}\Node%
+{\def\Element%
+{0:864}}\Node%
+{\def\Element%
+{0:865}}:error\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:866}}\Node%
+{\def\Element%
+{0:867}}Description\endNode{}\Node%
+{\def\Element%
+{0:868}}The value of this variable is used in calls to
+         \Node%
+{\def\Element%
+{0:869}}connect\endNode{} as the default
+         value of the \Node%
+{\def\Element%
+{0:870}}if-\/exists\endNode{}
+         parameter.  See \Node%
+{\def\Element%
+{0:871}}\Node%
+{\def\Element%
+{0:872}}connect\endNode{}\endNode{} for
+         the semantics of the valid values for this variable.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:873}}\Node%
+{\def\Element%
+{0:874}}Examples\endNode{}\Node%
+{\def\Element%
+{0:875}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:876}}\Node%
+{\def\Element%
+{0:877}}Affected By\endNode{}\Node%
+{\def\Element%
+{0:878}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:879}}\Node%
+{\def\Element%
+{0:880}}See Also\endNode{}\Node%
+{\def\Element%
+{0:881}}       \Node%
+{\def\Element%
+{0:882}}\Node%
+{\def\Element%
+{0:883}}\Node%
+{\def\Element%
+{0:884}}\Node%
+{\def\Element%
+{0:885}}connect\endNode{}\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:886}}\Node%
+{\def\Element%
+{0:887}}Notes\endNode{}\Node%
+{\def\Element%
+{0:888}}None.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:CONNECTED-DATABASES}}\Node%
+{\def\Element%
+{0:890}}\Node%
+{\def\Element%
+{0:891}}CONNECTED-\/DATABASES\endNode{}\Node%
+{\def\Element%
+{0:892}}Return the list of active database
+         objects.\endNode{}\Node%
+{\def\Element%
+{0:893}}Function\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:894}}\Node%
+{\def\Element%
+{0:895}}Syntax\endNode{}\Node%
+{\def\Element%
+{0:896}}\Node%
+{\def\Element%
+{0:897}}connected-\/databases\endNode{} =>\/ \Node%
+{\def\Element%
+{0:898}}databases\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:899}}\Node%
+{\def\Element%
+{0:900}}Arguments and Values\endNode{}\Node%
+{\def\Element%
+{0:901}}\Node%
+{\def\Element%
+{0:902}}\Node%
+{\def\Element%
+{0:903}}\Node%
+{\def\Element%
+{0:904}}databases\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:905}}\Node%
+{\def\Element%
+{0:906}}The list of active database objects.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:907}}\Node%
+{\def\Element%
+{0:908}}Description\endNode{}\Node%
+{\def\Element%
+{0:909}}This function returns the list of active database
+         objects, i.e. all those database objects created by calls to 
+         \Node%
+{\def\Element%
+{0:910}}connect\endNode{}, which have not been closed by
+         calling \Node%
+{\def\Element%
+{0:911}}disconnect\endNode{} on them.\endNode{}\Node%
+{\def\Element%
+{0:912}}\Node%
+{\def\Element%
+{0:913}}The consequences of modifying the list returned by
+           \Node%
+{\def\Element%
+{0:914}}connected-\/databases\endNode{} are
+           undefined.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:915}}\Node%
+{\def\Element%
+{0:916}}Examples\endNode{}\Node%
+{\def\Element%
+{0:917}}(connected-\/databases)
+=>\/ NIL
+(connect '(nil "template1" "dent" nil) :database-\/type :postgresql)
+=>\/ \#\Entity{lt}CLSQL-\/POSTGRESQL:POSTGRESQL-\/DATABASE \{4830BC65\}>\/
+(connect '("dent" "newesim" "dent" "dent") :database-\/type :mysql)
+=>\/ \#\Entity{lt}CLSQL-\/MYSQL:MYSQL-\/DATABASE \{4830C5AD\}>\/
+(connected-\/databases)
+=>\/ (\#\Entity{lt}CLSQL-\/MYSQL:MYSQL-\/DATABASE \{4830C5AD\}>\/
+    \#\Entity{lt}CLSQL-\/POSTGRESQL:POSTGRESQL-\/DATABASE \{4830BC65\}>\/)
+(disconnect)
+=>\/ T
+(connected-\/databases)
+=>\/ (\#\Entity{lt}CLSQL-\/POSTGRESQL:POSTGRESQL-\/DATABASE \{4830BC65\}>\/)
+(disconnect)
+=>\/ T
+(connected-\/databases)
+=>\/ NIL
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:918}}\Node%
+{\def\Element%
+{0:919}}Side Effects\endNode{}\Node%
+{\def\Element%
+{0:920}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:921}}\Node%
+{\def\Element%
+{0:922}}Affected By\endNode{}\Node%
+{\def\Element%
+{0:923}}       \Node%
+{\def\Element%
+{0:924}}\Node%
+{\def\Element%
+{0:925}}\Node%
+{\def\Element%
+{0:926}}connect\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:927}}\Node%
+{\def\Element%
+{0:928}}disconnect\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:929}}\Node%
+{\def\Element%
+{0:930}}Exceptional Situations\endNode{}\Node%
+{\def\Element%
+{0:931}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:932}}\Node%
+{\def\Element%
+{0:933}}See Also\endNode{}\Node%
+{\def\Element%
+{0:934}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:935}}\Node%
+{\def\Element%
+{0:936}}Notes\endNode{}\Node%
+{\def\Element%
+{0:937}}None.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:DEFAULT-DATABASE}}\Node%
+{\def\Element%
+{0:939}}\Node%
+{\def\Element%
+{0:940}}*DEFAULT-\/DATABASE*\endNode{}\Node%
+{\def\Element%
+{0:941}}The default database object to use\endNode{}\Node%
+{\def\Element%
+{0:942}}Variable\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:943}}\Node%
+{\def\Element%
+{0:944}}Value Type\endNode{}\Node%
+{\def\Element%
+{0:945}}Any object of type \Node%
+{\def\Element%
+{0:946}}database\endNode{}, or nil to
+         indicate no default database.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:947}}\Node%
+{\def\Element%
+{0:948}}Initial Value\endNode{}\Node%
+{\def\Element%
+{0:949}}\Node%
+{\def\Element%
+{0:950}}nil\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:951}}\Node%
+{\def\Element%
+{0:952}}Description\endNode{}\Node%
+{\def\Element%
+{0:953}}Any function or macro in
+         \Node%
+{\def\Element%
+{0:954}}\Node%
+{\def\Element%
+{0:955}}CLSQL\endNode{}\endNode{} that operates on a
+         database uses the value of this variable as the default
+         value for it's \Node%
+{\def\Element%
+{0:956}}database\endNode{}
+         parameter.\endNode{}\Node%
+{\def\Element%
+{0:957}}The value of this parameter is changed by calls to
+         \Node%
+{\def\Element%
+{0:958}}connect\endNode{}, which sets
+         \Node%
+{\def\Element%
+{0:959}}*default-\/database*\endNode{} to the database object
+         it returns.  It is also changed by calls to
+         \Node%
+{\def\Element%
+{0:960}}disconnect\endNode{}, when the database object
+         being disconnected is the same as the value of
+         \Node%
+{\def\Element%
+{0:961}}*default-\/database*\endNode{}.  In this case
+         \Node%
+{\def\Element%
+{0:962}}disconnect\endNode{} sets
+         \Node%
+{\def\Element%
+{0:963}}*default-\/database*\endNode{} to the first database
+         that remains in the list of active databases as returned by
+         \Node%
+{\def\Element%
+{0:964}}connected-\/databases\endNode{}, or
+         \Node%
+{\def\Element%
+{0:965}}nil\endNode{} if no further active databases
+         exist.\endNode{}\Node%
+{\def\Element%
+{0:966}}The user may change \Node%
+{\def\Element%
+{0:967}}*default-\/database*\endNode{}
+         at any time to a valid value of his choice.\endNode{}\Node%
+{\def\Element%
+{0:968}}\Node%
+{\def\Element%
+{0:969}}If the value of \Node%
+{\def\Element%
+{0:970}}*default-\/database*\endNode{} is
+           \Node%
+{\def\Element%
+{0:971}}nil\endNode{}, then all calls to
+           \Node%
+{\def\Element%
+{0:972}}\Node%
+{\def\Element%
+{0:973}}CLSQL\endNode{}\endNode{} functions on databases
+           must provide a suitable \Node%
+{\def\Element%
+{0:974}}database\endNode{}
+           parameter, or an error will be signalled.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:975}}\Node%
+{\def\Element%
+{0:976}}Examples\endNode{}\Node%
+{\def\Element%
+{0:977}}(connected-\/databases)
+=>\/ NIL
+(connect '("dent" "newesim" "dent" "dent") :database-\/type :mysql)
+=>\/ \#\Entity{lt}CLSQL-\/MYSQL:MYSQL-\/DATABASE \{48385F55\}>\/
+(connect '(nil "template1" "dent" nil) :database-\/type :postgresql)
+=>\/ \#\Entity{lt}CLSQL-\/POSTGRESQL:POSTGRESQL-\/DATABASE \{483868FD\}>\/
+(connect '("dent" "newesim" "dent" "dent") :database-\/type :mysql :if-\/exists :new)
+=>\/ \#\Entity{lt}CLSQL-\/MYSQL:MYSQL-\/DATABASE \{48387265\}>\/
+*default-\/database*
+=>\/ \#\Entity{lt}CLSQL-\/MYSQL:MYSQL-\/DATABASE \{48387265\}>\/
+(disconnect)
+=>\/ T
+*default-\/database*
+=>\/ \#\Entity{lt}CLSQL-\/POSTGRESQL:POSTGRESQL-\/DATABASE \{483868FD\}>\/
+(disconnect)
+=>\/ T
+*default-\/database*
+=>\/ \#\Entity{lt}CLSQL-\/MYSQL:MYSQL-\/DATABASE \{48385F55\}>\/
+(disconnect)
+=>\/ T
+*default-\/database*
+=>\/ NIL
+(connected-\/databases)
+=>\/ NIL
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:978}}\Node%
+{\def\Element%
+{0:979}}Affected By\endNode{}\Node%
+{\def\Element%
+{0:980}}       \Node%
+{\def\Element%
+{0:981}}\Node%
+{\def\Element%
+{0:982}}\Node%
+{\def\Element%
+{0:983}}\Node%
+{\def\Element%
+{0:984}}connect\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:985}}\Node%
+{\def\Element%
+{0:986}}\Node%
+{\def\Element%
+{0:987}}disconnect\endNode{}\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:988}}\Node%
+{\def\Element%
+{0:989}}See Also\endNode{}\Node%
+{\def\Element%
+{0:990}}       \Node%
+{\def\Element%
+{0:991}}\Node%
+{\def\Element%
+{0:992}}\Node%
+{\def\Element%
+{0:993}}\Node%
+{\def\Element%
+{0:994}}connected-\/databases\endNode{}\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:995}}\Node%
+{\def\Element%
+{0:996}}Notes\endNode{}\Node%
+{\def\Element%
+{0:997}}\Node%
+{\def\Element%
+{0:998}}This variable is intended to facilitate working with
+           \Node%
+{\def\Element%
+{0:999}}\Node%
+{\def\Element%
+{0:1000}}CLSQL\endNode{}\endNode{} in an interactive
+           fashion at the top-\/level loop, and because of this,
+           \Node%
+{\def\Element%
+{0:1001}}connect\endNode{} and
+           \Node%
+{\def\Element%
+{0:1002}}disconnect\endNode{} provide some fairly
+           complex  behaviour to keep
+           \Node%
+{\def\Element%
+{0:1003}}*default-\/database*\endNode{} set to  useful values.
+           Programmatic use of \Node%
+{\def\Element%
+{0:1004}}\Node%
+{\def\Element%
+{0:1005}}CLSQL\endNode{}\endNode{}
+           should never depend on the value of
+           \Node%
+{\def\Element%
+{0:1006}}*default-\/database*\endNode{} and should provide
+           correct database objects via the
+           \Node%
+{\def\Element%
+{0:1007}}database\endNode{} parameter to functions
+           called.\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:DATABASE}}\Node%
+{\def\Element%
+{0:1009}}\Node%
+{\def\Element%
+{0:1010}}DATABASE\endNode{}\Node%
+{\def\Element%
+{0:1011}}The super-\/type of all
+         \Node%
+{\def\Element%
+{0:1012}}\Node%
+{\def\Element%
+{0:1013}}CLSQL\endNode{}\endNode{} databases\endNode{}\Node%
+{\def\Element%
+{0:1014}}Class\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1015}}\Node%
+{\def\Element%
+{0:1016}}Class Precedence List\endNode{}\Node%
+{\def\Element%
+{0:1017}}      \Node%
+{\def\Element%
+{0:1018}}\Node%
+{\def\Element%
+{0:1019}}\Node%
+{\def\Element%
+{0:1020}}database\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1021}}\Node%
+{\def\Element%
+{0:1022}}standard-\/object\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1023}}\Node%
+{\def\Element%
+{0:1024}}t\endNode{}\endNode{}\endNode{}
+        \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1025}}\Node%
+{\def\Element%
+{0:1026}}Description\endNode{}\Node%
+{\def\Element%
+{0:1027}}This class is the superclass of all
+         \Node%
+{\def\Element%
+{0:1028}}\Node%
+{\def\Element%
+{0:1029}}CLSQL\endNode{}\endNode{} databases. The different
+         database back-\/ends derive subclasses of this class to
+         implement their databases.  No instances of this class are
+         ever created by \Node%
+{\def\Element%
+{0:1030}}\Node%
+{\def\Element%
+{0:1031}}CLSQL\endNode{}\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:CLOSED-DATABASE}}\Node%
+{\def\Element%
+{0:1033}}\Node%
+{\def\Element%
+{0:1034}}CLOSED-\/DATABASE\endNode{}\Node%
+{\def\Element%
+{0:1035}}The class representing all closed
+         \Node%
+{\def\Element%
+{0:1036}}\Node%
+{\def\Element%
+{0:1037}}CLSQL\endNode{}\endNode{} databases\endNode{}\Node%
+{\def\Element%
+{0:1038}}Class\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1039}}\Node%
+{\def\Element%
+{0:1040}}Class Precedence List\endNode{}\Node%
+{\def\Element%
+{0:1041}}      \Node%
+{\def\Element%
+{0:1042}}\Node%
+{\def\Element%
+{0:1043}}\Node%
+{\def\Element%
+{0:1044}}closed-\/database\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1045}}\Node%
+{\def\Element%
+{0:1046}}standard-\/object\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1047}}\Node%
+{\def\Element%
+{0:1048}}t\endNode{}\endNode{}\endNode{}
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1049}}\Node%
+{\def\Element%
+{0:1050}}Description\endNode{}\Node%
+{\def\Element%
+{0:1051}}\Node%
+{\def\Element%
+{0:1052}}\Node%
+{\def\Element%
+{0:1053}}CLSQL\endNode{}\endNode{} \Node%
+{\def\Element%
+{0:1054}}database\endNode{}
+         instances are changed to this class via
+         \Node%
+{\def\Element%
+{0:1055}}change-\/class\endNode{} after they are closed via
+         \Node%
+{\def\Element%
+{0:1056}}disconnect\endNode{}.  All functions and generic
+         functions that take database objects as arguments will
+         signal errors of type
+         \Node%
+{\def\Element%
+{0:1057}}maisql-\/closed-\/error\endNode{} when they are
+         called on instances of \Node%
+{\def\Element%
+{0:1058}}closed-\/database\endNode{}, with
+         the exception of \Node%
+{\def\Element%
+{0:1059}}database-\/name\endNode{}, which
+         will continue to work as for instances of
+         \Node%
+{\def\Element%
+{0:1060}}database\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:DATABASE-NAME}}\Node%
+{\def\Element%
+{0:1062}}\Node%
+{\def\Element%
+{0:1063}}DATABASE-\/NAME\endNode{}\Node%
+{\def\Element%
+{0:1064}}Get the name of a database object\endNode{}\Node%
+{\def\Element%
+{0:1065}}Generic Function\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1066}}\Node%
+{\def\Element%
+{0:1067}}Syntax\endNode{}\Node%
+{\def\Element%
+{0:1068}}\Node%
+{\def\Element%
+{0:1069}}database-\/name\endNode{} \Node%
+{\def\Element%
+{0:1070}}database\endNode{} =>\/ \Node%
+{\def\Element%
+{0:1071}}name\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1072}}\Node%
+{\def\Element%
+{0:1073}}Arguments and Values\endNode{}\Node%
+{\def\Element%
+{0:1074}}\Node%
+{\def\Element%
+{0:1075}}\Node%
+{\def\Element%
+{0:1076}}\Node%
+{\def\Element%
+{0:1077}}database\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1078}}\Node%
+{\def\Element%
+{0:1079}}A database object, either of type
+               \Node%
+{\def\Element%
+{0:1080}}database\endNode{} or of type
+               \Node%
+{\def\Element%
+{0:1081}}closed-\/database\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1082}}\Node%
+{\def\Element%
+{0:1083}}\Node%
+{\def\Element%
+{0:1084}}name\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1085}}\Node%
+{\def\Element%
+{0:1086}}A string describing the identity of the database
+               to which this database object is connected to.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1087}}\Node%
+{\def\Element%
+{0:1088}}Description\endNode{}\Node%
+{\def\Element%
+{0:1089}}This function returns the database name of the given
+         database.  The database name is a string which somehow
+         describes the identity of the database to which this
+         database object is or has been connected.  The database name 
+         of a database object is determined at
+         \Node%
+{\def\Element%
+{0:1090}}connect\endNode{} time, when a call to
+         \Node%
+{\def\Element%
+{0:1091}}database-\/name-\/from-\/spec\endNode{} derives the
+         database name from the connection specification passed to
+         \Node%
+{\def\Element%
+{0:1092}}connect\endNode{} in the
+         \Node%
+{\def\Element%
+{0:1093}}connection-\/spec\endNode{} parameter.\endNode{}\Node%
+{\def\Element%
+{0:1094}}The database name is used via
+         \Node%
+{\def\Element%
+{0:1095}}find-\/database\endNode{} in
+         \Node%
+{\def\Element%
+{0:1096}}connect\endNode{} to determine whether database
+         connections to the specified database exist already.\endNode{}\Node%
+{\def\Element%
+{0:1097}}Usually the database name string will include
+         indications of the  host, database name, user, or port that
+         where used during the connection attempt.  The only
+         important thing is that this string shall  try to identify
+         the database at the other end of the connection.  Connection
+         specifications parts like passwords and credentials shall
+         not be used as part of the database name.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1098}}\Node%
+{\def\Element%
+{0:1099}}Examples\endNode{}\Node%
+{\def\Element%
+{0:1100}}(database-\/name-\/from-\/spec '("dent" "newesim" "dent" "dent") :mysql)
+=>\/ "dent/newesim/dent"
+(connect '("dent" "newesim" "dent" "dent") :database-\/type :mysql)
+=>\/ \#\Entity{lt}CLSQL-\/MYSQL:MYSQL-\/DATABASE \{48391DCD\}>\/
+(database-\/name *default-\/database*)
+=>\/ "dent/newesim/dent"
+
+(database-\/name-\/from-\/spec '(nil "template1" "dent" nil) :postgresql)
+=>\/ "/template1/dent"
+(connect '(nil "template1" "dent" nil) :database-\/type :postgresql)
+=>\/ \#\Entity{lt}CLSQL-\/POSTGRESQL:POSTGRESQL-\/DATABASE \{48392D2D\}>\/
+(database-\/name *default-\/database*)
+=>\/ "/template1/dent"
+
+(database-\/name-\/from-\/spec '("www.pmsf.de" "template1" "dent" nil) :postgresql)
+=>\/ "www.pmsf.de/template1/dent"
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1101}}\Node%
+{\def\Element%
+{0:1102}}Side Effects\endNode{}\Node%
+{\def\Element%
+{0:1103}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1104}}\Node%
+{\def\Element%
+{0:1105}}Affected By\endNode{}\Node%
+{\def\Element%
+{0:1106}}      \Node%
+{\def\Element%
+{0:1107}}\Node%
+{\def\Element%
+{0:1108}}\Node%
+{\def\Element%
+{0:1109}}\Node%
+{\def\Element%
+{0:1110}}database-\/name-\/from-\/spec\endNode{}\endNode{}\endNode{}\endNode{}
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1111}}\Node%
+{\def\Element%
+{0:1112}}Exceptional Situations\endNode{}\Node%
+{\def\Element%
+{0:1113}}Will signal an error if the object passed as the
+         \Node%
+{\def\Element%
+{0:1114}}database\endNode{} parameter is neither of type
+         \Node%
+{\def\Element%
+{0:1115}}database\endNode{} nor of type
+         \Node%
+{\def\Element%
+{0:1116}}closed-\/database\endNode{}.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1117}}\Node%
+{\def\Element%
+{0:1118}}See Also\endNode{}\Node%
+{\def\Element%
+{0:1119}}      \Node%
+{\def\Element%
+{0:1120}}\Node%
+{\def\Element%
+{0:1121}}\Node%
+{\def\Element%
+{0:1122}}\Node%
+{\def\Element%
+{0:1123}}connect\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1124}}\Node%
+{\def\Element%
+{0:1125}}\Node%
+{\def\Element%
+{0:1126}}find-\/database\endNode{}\endNode{}\endNode{}\endNode{}
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1127}}\Node%
+{\def\Element%
+{0:1128}}Notes\endNode{}\Node%
+{\def\Element%
+{0:1129}}None.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:FIND-DATABASE}}\Node%
+{\def\Element%
+{0:1131}}\Node%
+{\def\Element%
+{0:1132}}FIND-\/DATABASE\endNode{}\Node%
+{\def\Element%
+{0:1133}}Locate a database object through it's
+         name.\endNode{}\Node%
+{\def\Element%
+{0:1134}}Function\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1135}}\Node%
+{\def\Element%
+{0:1136}}Syntax\endNode{}\Node%
+{\def\Element%
+{0:1137}}\Node%
+{\def\Element%
+{0:1138}}find-\/database\endNode{} \Node%
+{\def\Element%
+{0:1139}}database\endNode{} \Entity{amp}optional \Node%
+{\def\Element%
+{0:1140}}errorp\endNode{} =>\/ \Node%
+{\def\Element%
+{0:1141}}result\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1142}}\Node%
+{\def\Element%
+{0:1143}}Arguments and Values\endNode{}\Node%
+{\def\Element%
+{0:1144}}\Node%
+{\def\Element%
+{0:1145}}\Node%
+{\def\Element%
+{0:1146}}\Node%
+{\def\Element%
+{0:1147}}database\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1148}}\Node%
+{\def\Element%
+{0:1149}}A database object or a string, denoting a database 
+               name.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1150}}\Node%
+{\def\Element%
+{0:1151}}\Node%
+{\def\Element%
+{0:1152}}errorp\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1153}}\Node%
+{\def\Element%
+{0:1154}}A generalized boolean.  Defaults to
+               \Node%
+{\def\Element%
+{0:1155}}t\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1156}}\Node%
+{\def\Element%
+{0:1157}}\Node%
+{\def\Element%
+{0:1158}}result\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1159}}\Node%
+{\def\Element%
+{0:1160}}Either a database object, or, if
+               \Node%
+{\def\Element%
+{0:1161}}errorp\endNode{} is \Node%
+{\def\Element%
+{0:1162}}nil\endNode{}, 
+               possibly \Node%
+{\def\Element%
+{0:1163}}nil\endNode{}.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1164}}\Node%
+{\def\Element%
+{0:1165}}Description\endNode{}\Node%
+{\def\Element%
+{0:1166}}\Node%
+{\def\Element%
+{0:1167}}find-\/database\endNode{} locates an active
+         database object given the specification in
+         \Node%
+{\def\Element%
+{0:1168}}database\endNode{}.  If
+         \Node%
+{\def\Element%
+{0:1169}}database\endNode{} is an object of type
+         \Node%
+{\def\Element%
+{0:1170}}database\endNode{}, \Node%
+{\def\Element%
+{0:1171}}find-\/database\endNode{}
+         returns this.  Otherwise it will search the active databases 
+         as indicated by the list returned by
+         \Node%
+{\def\Element%
+{0:1172}}connected-\/databases\endNode{} for a database
+         whose name (as returned by
+         \Node%
+{\def\Element%
+{0:1173}}database-\/name\endNode{} is equal as per
+         \Node%
+{\def\Element%
+{0:1174}}string=\endNode{} to the string passed as
+         \Node%
+{\def\Element%
+{0:1175}}database\endNode{}.  If it succeeds, it returns 
+         the first database found.\endNode{}\Node%
+{\def\Element%
+{0:1176}}If it fails to find a matching database, it will signal
+         an error of type \Node%
+{\def\Element%
+{0:1177}}maisql-\/error\endNode{} if
+         \Node%
+{\def\Element%
+{0:1178}}errorp\endNode{} is true.  If
+         \Node%
+{\def\Element%
+{0:1179}}errorp\endNode{} is \Node%
+{\def\Element%
+{0:1180}}nil\endNode{}, it
+         will return \Node%
+{\def\Element%
+{0:1181}}nil\endNode{} instead.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1182}}\Node%
+{\def\Element%
+{0:1183}}Examples\endNode{}\Node%
+{\def\Element%
+{0:1184}}(database-\/name-\/from-\/spec '("dent" "newesim" "dent" "dent") :mysql)
+=>\/ "dent/newesim/dent"
+(connect '("dent" "newesim" "dent" "dent") :database-\/type :mysql)
+=>\/ \#\Entity{lt}CLSQL-\/MYSQL:MYSQL-\/DATABASE \{48391DCD\}>\/
+(database-\/name *default-\/database*)
+=>\/ "dent/newesim/dent"
+
+(database-\/name-\/from-\/spec '(nil "template1" "dent" nil) :postgresql)
+=>\/ "/template1/dent"
+(connect '(nil "template1" "dent" nil) :database-\/type :postgresql)
+=>\/ \#\Entity{lt}CLSQL-\/POSTGRESQL:POSTGRESQL-\/DATABASE \{48392D2D\}>\/
+(database-\/name *default-\/database*)
+=>\/ "/template1/dent"
+
+(database-\/name-\/from-\/spec '("www.pmsf.de" "template1" "dent" nil) :postgresql)
+=>\/ "www.pmsf.de/template1/dent"
+
+(find-\/database "dent/newesim/dent")
+=>\/ \#\Entity{lt}CLSQL-\/MYSQL:MYSQL-\/DATABASE \{484E91C5\}>\/
+(find-\/database "/template1/dent")
+=>\/ \#\Entity{lt}CLSQL-\/POSTGRESQL:POSTGRESQL-\/DATABASE \{48392D2D\}>\/
+(find-\/database "www.pmsf.de/template1/dent" nil)
+=>\/ NIL
+(find-\/database **)
+=>\/ \#\Entity{lt}CLSQL-\/POSTGRESQL:POSTGRESQL-\/DATABASE \{48392D2D\}>\/
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1185}}\Node%
+{\def\Element%
+{0:1186}}Side Effects\endNode{}\Node%
+{\def\Element%
+{0:1187}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1188}}\Node%
+{\def\Element%
+{0:1189}}Affected By\endNode{}\Node%
+{\def\Element%
+{0:1190}}      \Node%
+{\def\Element%
+{0:1191}}\Node%
+{\def\Element%
+{0:1192}}\Node%
+{\def\Element%
+{0:1193}}\Node%
+{\def\Element%
+{0:1194}}connected-\/databases\endNode{}\endNode{}\endNode{}\endNode{}
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1195}}\Node%
+{\def\Element%
+{0:1196}}Exceptional Situations\endNode{}\Node%
+{\def\Element%
+{0:1197}}Will signal an error of type
+       \Node%
+{\def\Element%
+{0:1198}}maisql-\/error\endNode{} if no matching database
+         can be found, and \Node%
+{\def\Element%
+{0:1199}}errorp\endNode{} is true.
+         Will signal an error if the value of
+         \Node%
+{\def\Element%
+{0:1200}}database\endNode{} is neither an object of type
+         \Node%
+{\def\Element%
+{0:1201}}database\endNode{} nor a string.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1202}}\Node%
+{\def\Element%
+{0:1203}}See Also\endNode{}\Node%
+{\def\Element%
+{0:1204}}      \Node%
+{\def\Element%
+{0:1205}}\Node%
+{\def\Element%
+{0:1206}}\Node%
+{\def\Element%
+{0:1207}}\Node%
+{\def\Element%
+{0:1208}}database-\/name\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1209}}\Node%
+{\def\Element%
+{0:1210}}\Node%
+{\def\Element%
+{0:1211}}database-\/name-\/from-\/spec\endNode{}\endNode{}\endNode{}\endNode{}
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1212}}\Node%
+{\def\Element%
+{0:1213}}Notes\endNode{}\Node%
+{\def\Element%
+{0:1214}}None.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:CONNECT}}\Node%
+{\def\Element%
+{0:1216}}\Node%
+{\def\Element%
+{0:1217}}CONNECT\endNode{}\Node%
+{\def\Element%
+{0:1218}}create a connection to a database\endNode{}\Node%
+{\def\Element%
+{0:1219}}Function\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1220}}\Node%
+{\def\Element%
+{0:1221}}Syntax\endNode{}\Node%
+{\def\Element%
+{0:1222}}\Node%
+{\def\Element%
+{0:1223}}connect\endNode{} \Node%
+{\def\Element%
+{0:1224}}connection-\/spec\endNode{} \Entity{amp}key \Node%
+{\def\Element%
+{0:1225}}if-\/exists\endNode{} \Node%
+{\def\Element%
+{0:1226}}database-\/type\endNode{} =>\/ \Node%
+{\def\Element%
+{0:1227}}database\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1228}}\Node%
+{\def\Element%
+{0:1229}}Arguments and Values\endNode{}\Node%
+{\def\Element%
+{0:1230}}\Node%
+{\def\Element%
+{0:1231}}\Node%
+{\def\Element%
+{0:1232}}\Node%
+{\def\Element%
+{0:1233}}connection-\/spec\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1234}}\Node%
+{\def\Element%
+{0:1235}}A connection specification\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1236}}\Node%
+{\def\Element%
+{0:1237}}\Node%
+{\def\Element%
+{0:1238}}if-\/exists\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1239}}\Node%
+{\def\Element%
+{0:1240}}This indicates the action to take if a connection
+               to the same database exists already.  See below for the
+               legal values and actions.  It defaults to the value of 
+               \Node%
+{\def\Element%
+{0:1241}}*connect-\/if-\/exists*\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1242}}\Node%
+{\def\Element%
+{0:1243}}\Node%
+{\def\Element%
+{0:1244}}database-\/type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1245}}\Node%
+{\def\Element%
+{0:1246}}A database type specifier, i.e. a keyword.
+               This defaults to the value of
+               \Node%
+{\def\Element%
+{0:1247}}*default-\/database-\/type*\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1248}}\Node%
+{\def\Element%
+{0:1249}}\Node%
+{\def\Element%
+{0:1250}}database\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1251}}\Node%
+{\def\Element%
+{0:1252}}The database object representing the connection.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1253}}\Node%
+{\def\Element%
+{0:1254}}Description\endNode{}\Node%
+{\def\Element%
+{0:1255}}This function takes a connection specification and
+         a database type and creates a connection to the database
+         specified by those.  The type and structure of the
+         connection specification depend on the database type.\endNode{}\Node%
+{\def\Element%
+{0:1256}}The parameter \Node%
+{\def\Element%
+{0:1257}}if-\/exists\endNode{} specifies
+         what to do if a connection to the database specified exists
+         already, which is checked by calling
+         \Node%
+{\def\Element%
+{0:1258}}find-\/database\endNode{} on the database name
+         returned by \Node%
+{\def\Element%
+{0:1259}}database-\/name-\/from-\/spec\endNode{}
+         when called with the \Node%
+{\def\Element%
+{0:1260}}connection-\/spec\endNode{}
+         and \Node%
+{\def\Element%
+{0:1261}}database-\/type\endNode{} parameters. The
+         possible values of \Node%
+{\def\Element%
+{0:1262}}if-\/exists\endNode{} are:
+         \Node%
+{\def\Element%
+{0:1263}}\Node%
+{\def\Element%
+{0:1264}}\Node%
+{\def\Element%
+{0:1265}}\Node%
+{\def\Element%
+{0:1266}}:new\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1267}}\Node%
+{\def\Element%
+{0:1268}}Go ahead and create a new connection.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1269}}\Node%
+{\def\Element%
+{0:1270}}\Node%
+{\def\Element%
+{0:1271}}:warn-\/new\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1272}}\Node%
+{\def\Element%
+{0:1273}}This is just like \Node%
+{\def\Element%
+{0:1274}}:new\endNode{}, but
+                 also signals a warning of type
+                 \Node%
+{\def\Element%
+{0:1275}}maisql-\/exists-\/warning\endNode{},
+                 indicating the old and newly created
+                 databases.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1276}}\Node%
+{\def\Element%
+{0:1277}}\Node%
+{\def\Element%
+{0:1278}}:error\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1279}}\Node%
+{\def\Element%
+{0:1280}}This will cause \Node%
+{\def\Element%
+{0:1281}}connect\endNode{} to
+                 signal a correctable error of type
+                 \Node%
+{\def\Element%
+{0:1282}}maisql-\/exists-\/error\endNode{}.  The
+                 user may choose to proceed, either by indicating
+                 that a new connection shall be created, via the
+                 restart \Node%
+{\def\Element%
+{0:1283}}create-\/new\endNode{}, or by
+                 indicating that the existing connection shall be
+                 used, via the restart
+                 \Node%
+{\def\Element%
+{0:1284}}use-\/old\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1285}}\Node%
+{\def\Element%
+{0:1286}}\Node%
+{\def\Element%
+{0:1287}}:old\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1288}}\Node%
+{\def\Element%
+{0:1289}}This will cause \Node%
+{\def\Element%
+{0:1290}}connect\endNode{} to
+                 use an old connection if one exists.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1291}}\Node%
+{\def\Element%
+{0:1292}}\Node%
+{\def\Element%
+{0:1293}}:warn-\/old\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1294}}\Node%
+{\def\Element%
+{0:1295}}This is just like \Node%
+{\def\Element%
+{0:1296}}:old\endNode{}, but
+                 also signals a warning of type
+                 \Node%
+{\def\Element%
+{0:1297}}maisql-\/exists-\/warning\endNode{},
+                 indicating the old database used, via the slots
+                 \Node%
+{\def\Element%
+{0:1298}}old-\/db\endNode{} and
+                 \Node%
+{\def\Element%
+{0:1299}}new-\/db\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}
+       \endNode{}\Node%
+{\def\Element%
+{0:1300}}The database name of the returned database object will
+         be the same under \Node%
+{\def\Element%
+{0:1301}}string=\endNode{} as that which
+         would be returned by a call to
+         \Node%
+{\def\Element%
+{0:1302}}database-\/name-\/from-\/spec\endNode{} with the given 
+         \Node%
+{\def\Element%
+{0:1303}}connection-\/spec\endNode{} and
+         \Node%
+{\def\Element%
+{0:1304}}database-\/type\endNode{} parameters.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1305}}\Node%
+{\def\Element%
+{0:1306}}Examples\endNode{}\Node%
+{\def\Element%
+{0:1307}}(database-\/name-\/from-\/spec '("dent" "newesim" "dent" "dent") :mysql)
+=>\/ "dent/newesim/dent"
+(connect '("dent" "newesim" "dent" "dent") :database-\/type :mysql)
+=>\/ \#\Entity{lt}CLSQL-\/MYSQL:MYSQL-\/DATABASE \{48036F6D\}>\/
+(database-\/name *)
+=>\/ "dent/newesim/dent"
+
+(connect '("dent" "newesim" "dent" "dent") :database-\/type :mysql)
+>\/>\/ In call to CONNECT:
+>\/>\/   There is an existing connection \#\Entity{lt}CLSQL-\/MYSQL:MYSQL-\/DATABASE \{48036F6D\}>\/ to database dent/newesim/dent.
+>\/>\/ 
+>\/>\/ Restarts:
+>\/>\/   0: [CREATE-\/NEW] Create a new connection.
+>\/>\/   1: [USE-\/OLD   ] Use the existing connection.
+>\/>\/   2: [ABORT     ] Return to Top-\/Level.
+>\/>\/ 
+>\/>\/ Debug  (type H for help)
+>\/>\/ 
+>\/>\/ (CONNECT ("dent" "newesim" "dent" "dent") :IF-\/EXISTS NIL :DATABASE-\/TYPE ...)
+>\/>\/ Source: 
+>\/>\/ ; File: /prj/CLSQL/sql/sql.cl
+>\/>\/ (RESTART-\/CASE (ERROR 'CLSQL-\/EXISTS-\/ERROR :OLD-\/DB OLD-\/DB)
+>\/>\/               (CREATE-\/NEW NIL :REPORT "Create a new connection."
+>\/>\/                (SETQ RESULT \#))
+>\/>\/               (USE-\/OLD NIL :REPORT "Use the existing connection."
+>\/>\/                (SETQ RESULT OLD-\/DB)))
+>\/>\/ 0] 0
+=>\/ \#\Entity{lt}CLSQL-\/MYSQL:MYSQL-\/DATABASE \{480451F5\}>\/
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1308}}\Node%
+{\def\Element%
+{0:1309}}Side Effects\endNode{}\Node%
+{\def\Element%
+{0:1310}}A database connection is established, and the resultant
+         database object is registered, so as to appear in the list
+         returned by \Node%
+{\def\Element%
+{0:1311}}connected-\/databases\endNode{}.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1312}}\Node%
+{\def\Element%
+{0:1313}}Affected by\endNode{}\Node%
+{\def\Element%
+{0:1314}}      \Node%
+{\def\Element%
+{0:1315}}\Node%
+{\def\Element%
+{0:1316}}\Node%
+{\def\Element%
+{0:1317}}*default-\/database-\/type*\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1318}}\Node%
+{\def\Element%
+{0:1319}}*connect-\/if-\/exists*\endNode{}\endNode{}\endNode{}
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1320}}\Node%
+{\def\Element%
+{0:1321}}Exceptional Situations\endNode{}\Node%
+{\def\Element%
+{0:1322}}If the connection specification is not syntactically or
+         semantically correct for the given database type, an error
+         of type \Node%
+{\def\Element%
+{0:1323}}maisql-\/invalid-\/spec-\/error\endNode{} is
+         signalled.  If during the connection attempt an error is
+         detected (e.g. because of permission problems, network
+         trouble  or any other cause), an error of type
+         \Node%
+{\def\Element%
+{0:1324}}maisql-\/connect-\/error\endNode{} is
+         signalled.\endNode{}\Node%
+{\def\Element%
+{0:1325}}If a connection to the database specified by
+         \Node%
+{\def\Element%
+{0:1326}}connection-\/spec\endNode{} exists already,
+         conditions are signalled according to the
+         \Node%
+{\def\Element%
+{0:1327}}if-\/exists\endNode{} parameter, as described
+         above.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1328}}\Node%
+{\def\Element%
+{0:1329}}See Also\endNode{}\Node%
+{\def\Element%
+{0:1330}}      \Node%
+{\def\Element%
+{0:1331}}\Node%
+{\def\Element%
+{0:1332}}\Node%
+{\def\Element%
+{0:1333}}connected-\/databases\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1334}}\Node%
+{\def\Element%
+{0:1335}}\Node%
+{\def\Element%
+{0:1336}}disconnect\endNode{}\endNode{}\endNode{}\endNode{}
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1337}}\Node%
+{\def\Element%
+{0:1338}}Notes\endNode{}\Node%
+{\def\Element%
+{0:1339}}None.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:DISCONNECT}}\Node%
+{\def\Element%
+{0:1341}}\Node%
+{\def\Element%
+{0:1342}}DISCONNECT\endNode{}\Node%
+{\def\Element%
+{0:1343}}close a database connection\endNode{}\Node%
+{\def\Element%
+{0:1344}}Function\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1345}}\Node%
+{\def\Element%
+{0:1346}}Syntax\endNode{}\Node%
+{\def\Element%
+{0:1347}}\Node%
+{\def\Element%
+{0:1348}}disconnect\endNode{} \Entity{amp}key \Node%
+{\def\Element%
+{0:1349}}database\endNode{} =>\/ \Node%
+{\def\Element%
+{0:1350}}t\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1351}}\Node%
+{\def\Element%
+{0:1352}}Arguments and Values\endNode{}\Node%
+{\def\Element%
+{0:1353}}\Node%
+{\def\Element%
+{0:1354}}\Node%
+{\def\Element%
+{0:1355}}\Node%
+{\def\Element%
+{0:1356}}database\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1357}}\Node%
+{\def\Element%
+{0:1358}}The database to disconnect, which defaults to the
+               database indicated by
+               \Node%
+{\def\Element%
+{0:1359}}*default-\/database*\endNode{}.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1360}}\Node%
+{\def\Element%
+{0:1361}}Description\endNode{}\Node%
+{\def\Element%
+{0:1362}}This function takes a \Node%
+{\def\Element%
+{0:1363}}database\endNode{} object as
+         returned by \Node%
+{\def\Element%
+{0:1364}}connect\endNode{}, and closes the
+         connection.  The class of the object passed is changed to
+         \Node%
+{\def\Element%
+{0:1365}}closed-\/database\endNode{} after the disconnection
+         succeeds,  thereby preventing further use of the object as
+         an argument to \Node%
+{\def\Element%
+{0:1366}}\Node%
+{\def\Element%
+{0:1367}}CLSQL\endNode{}\endNode{} functions,
+         with the exception of \Node%
+{\def\Element%
+{0:1368}}database-\/name\endNode{}.
+         If the user does pass a  closed database object to any other
+         \Node%
+{\def\Element%
+{0:1369}}\Node%
+{\def\Element%
+{0:1370}}CLSQL\endNode{}\endNode{} function, an error of type
+         \Node%
+{\def\Element%
+{0:1371}}maisql-\/closed-\/error\endNode{} is
+         signalled.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1372}}\Node%
+{\def\Element%
+{0:1373}}Examples\endNode{}\Node%
+{\def\Element%
+{0:1374}}(disconnect :database (find-\/database "dent/newesim/dent"))
+=>\/ T
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1375}}\Node%
+{\def\Element%
+{0:1376}}Side Effects\endNode{}\Node%
+{\def\Element%
+{0:1377}}The database connection is closed, and the database
+         object is removed from the list of connected databases as
+         returned by \Node%
+{\def\Element%
+{0:1378}}connected-\/databases\endNode{}.\endNode{}\Node%
+{\def\Element%
+{0:1379}}The class of the database object is changed to
+         \Node%
+{\def\Element%
+{0:1380}}closed-\/database\endNode{}.\endNode{}\Node%
+{\def\Element%
+{0:1381}}If the database object passed is the same under
+         \Node%
+{\def\Element%
+{0:1382}}eq\endNode{} as the value of
+         \Node%
+{\def\Element%
+{0:1383}}*default-\/database*\endNode{}, then
+         \Node%
+{\def\Element%
+{0:1384}}*default-\/database*\endNode{} is set to the first
+         remaining database from
+         \Node%
+{\def\Element%
+{0:1385}}connected-\/databases\endNode{} or to nil if no
+         further active database exists.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1386}}\Node%
+{\def\Element%
+{0:1387}}Affected by\endNode{}\Node%
+{\def\Element%
+{0:1388}}      \Node%
+{\def\Element%
+{0:1389}}\Node%
+{\def\Element%
+{0:1390}}\Node%
+{\def\Element%
+{0:1391}}*default-\/database*\endNode{}\endNode{}\endNode{}
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1392}}\Node%
+{\def\Element%
+{0:1393}}Exceptional Situations\endNode{}\Node%
+{\def\Element%
+{0:1394}}If during the disconnection attempt an error is
+         detected (e.g. because of network trouble or any other
+         cause), an error of type \Node%
+{\def\Element%
+{0:1395}}maisql-\/error\endNode{} 
+         might be signalled.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1396}}\Node%
+{\def\Element%
+{0:1397}}See Also\endNode{}\Node%
+{\def\Element%
+{0:1398}}      \Node%
+{\def\Element%
+{0:1399}}\Node%
+{\def\Element%
+{0:1400}}\Node%
+{\def\Element%
+{0:1401}}\Node%
+{\def\Element%
+{0:1402}}connect\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1403}}\Node%
+{\def\Element%
+{0:1404}}\Node%
+{\def\Element%
+{0:1405}}closed-\/database\endNode{}\endNode{}\endNode{}\endNode{}
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1406}}\Node%
+{\def\Element%
+{0:1407}}Notes\endNode{}\Node%
+{\def\Element%
+{0:1408}}None.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:DATABASE-NAME-FROM-SPEC}}\Node%
+{\def\Element%
+{0:1410}}\Node%
+{\def\Element%
+{0:1411}}DATABASE-\/NAME-\/FROM-\/SPEC\endNode{}\Node%
+{\def\Element%
+{0:1412}}Return the database name string corresponding to
+         the given connection specification.\endNode{}\Node%
+{\def\Element%
+{0:1413}}Generic Function\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1414}}\Node%
+{\def\Element%
+{0:1415}}Syntax\endNode{}\Node%
+{\def\Element%
+{0:1416}}        \Node%
+{\def\Element%
+{0:1417}}database-\/name-\/from-\/spec\endNode{} \Node%
+{\def\Element%
+{0:1418}}connection-\/spec\endNode{} \Node%
+{\def\Element%
+{0:1419}}database-\/type\endNode{} =>\/ \Node%
+{\def\Element%
+{0:1420}}name\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1421}}\Node%
+{\def\Element%
+{0:1422}}Arguments and Values\endNode{}\Node%
+{\def\Element%
+{0:1423}}\Node%
+{\def\Element%
+{0:1424}}\Node%
+{\def\Element%
+{0:1425}}\Node%
+{\def\Element%
+{0:1426}}connection-\/spec\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1427}}\Node%
+{\def\Element%
+{0:1428}}A connection specification, whose structure and
+               interpretation are dependent on the
+               \Node%
+{\def\Element%
+{0:1429}}database-\/type\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1430}}\Node%
+{\def\Element%
+{0:1431}}\Node%
+{\def\Element%
+{0:1432}}database-\/type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1433}}\Node%
+{\def\Element%
+{0:1434}}A database type specifier, i.e. a keyword.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1435}}\Node%
+{\def\Element%
+{0:1436}}\Node%
+{\def\Element%
+{0:1437}}name\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1438}}\Node%
+{\def\Element%
+{0:1439}}A string denoting a database name.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1440}}\Node%
+{\def\Element%
+{0:1441}}Description\endNode{}\Node%
+{\def\Element%
+{0:1442}}This generic function takes a connection specification
+         and a database type and returns the database name of the
+         database object that would be created had
+         \Node%
+{\def\Element%
+{0:1443}}connect\endNode{} been called with the given
+         connection specification and database types.\endNode{}\Node%
+{\def\Element%
+{0:1444}}This function is useful in determining a database name
+         from the connection specification, since the way the
+         connection specification is converted into a database name
+         is dependent on the database type.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1445}}\Node%
+{\def\Element%
+{0:1446}}Examples\endNode{}\Node%
+{\def\Element%
+{0:1447}}(database-\/name-\/from-\/spec '("dent" "newesim" "dent" "dent") :mysql)
+=>\/ "dent/newesim/dent"
+(connect '("dent" "newesim" "dent" "dent") :database-\/type :mysql)
+=>\/ \#\Entity{lt}CLSQL-\/MYSQL:MYSQL-\/DATABASE \{48391DCD\}>\/
+(database-\/name *default-\/database*)
+=>\/ "dent/newesim/dent"
+
+(database-\/name-\/from-\/spec '(nil "template1" "dent" nil) :postgresql)
+=>\/ "/template1/dent"
+(connect '(nil "template1" "dent" nil) :database-\/type :postgresql)
+=>\/ \#\Entity{lt}CLSQL-\/POSTGRESQL:POSTGRESQL-\/DATABASE \{48392D2D\}>\/
+(database-\/name *default-\/database*)
+=>\/ "/template1/dent"
+
+(database-\/name-\/from-\/spec '("www.pmsf.de" "template1" "dent" nil) :postgresql)
+=>\/ "www.pmsf.de/template1/dent"
+
+(find-\/database "dent/newesim/dent")
+=>\/ \#\Entity{lt}CLSQL-\/MYSQL:MYSQL-\/DATABASE \{484E91C5\}>\/
+(find-\/database "/template1/dent")
+=>\/ \#\Entity{lt}CLSQL-\/POSTGRESQL:POSTGRESQL-\/DATABASE \{48392D2D\}>\/
+(find-\/database "www.pmsf.de/template1/dent" nil)
+=>\/ NIL
+(find-\/database **)
+=>\/ \#\Entity{lt}CLSQL-\/POSTGRESQL:POSTGRESQL-\/DATABASE \{48392D2D\}>\/
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1448}}\Node%
+{\def\Element%
+{0:1449}}Side Effects\endNode{}\Node%
+{\def\Element%
+{0:1450}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1451}}\Node%
+{\def\Element%
+{0:1452}}Affected by\endNode{}\Node%
+{\def\Element%
+{0:1453}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1454}}\Node%
+{\def\Element%
+{0:1455}}Exceptional Situations\endNode{}\Node%
+{\def\Element%
+{0:1456}}If the value of \Node%
+{\def\Element%
+{0:1457}}connection-\/spec\endNode{}
+         is not a valid connection specification for the given
+         database type, an error of type
+         \Node%
+{\def\Element%
+{0:1458}}maisql-\/invalid-\/spec-\/error\endNode{} might be
+         signalled.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1459}}\Node%
+{\def\Element%
+{0:1460}}See Also\endNode{}\Node%
+{\def\Element%
+{0:1461}}      \Node%
+{\def\Element%
+{0:1462}}\Node%
+{\def\Element%
+{0:1463}}\Node%
+{\def\Element%
+{0:1464}}\Node%
+{\def\Element%
+{0:1465}}connect\endNode{}\endNode{}\endNode{}\endNode{}
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1466}}\Node%
+{\def\Element%
+{0:1467}}Notes\endNode{}\Node%
+{\def\Element%
+{0:1468}}None.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:EXECUTE-COMMAND}}\Node%
+{\def\Element%
+{0:1470}}\Node%
+{\def\Element%
+{0:1471}}EXECUTE-\/COMMAND\endNode{}\Node%
+{\def\Element%
+{0:1472}}Execute an SQL command which returns no
+         values.\endNode{}\Node%
+{\def\Element%
+{0:1473}}Function\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1474}}\Node%
+{\def\Element%
+{0:1475}}Syntax\endNode{}\Node%
+{\def\Element%
+{0:1476}}\Node%
+{\def\Element%
+{0:1477}}execute-\/command\endNode{} \Node%
+{\def\Element%
+{0:1478}}sql-\/expression\endNode{} \Entity{amp}key \Node%
+{\def\Element%
+{0:1479}}database\endNode{} =>\/ \Node%
+{\def\Element%
+{0:1480}}t\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1481}}\Node%
+{\def\Element%
+{0:1482}}Arguments and Values\endNode{}\Node%
+{\def\Element%
+{0:1483}}\Node%
+{\def\Element%
+{0:1484}}\Node%
+{\def\Element%
+{0:1485}}\Node%
+{\def\Element%
+{0:1486}}sql-\/expression\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1487}}\Node%
+{\def\Element%
+{0:1488}}An \Node%
+{\def\Element%
+{0:1489}}sql
+                 expression\endNode{} that represents an SQL
+               statement which will return no values.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1490}}\Node%
+{\def\Element%
+{0:1491}}\Node%
+{\def\Element%
+{0:1492}}database\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1493}}\Node%
+{\def\Element%
+{0:1494}}A 
+               \Node%
+{\def\Element%
+{0:1495}}database
+                 object\endNode{}. This will default to the value
+               of \Node%
+{\def\Element%
+{0:1496}}*default-\/database*\endNode{}.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1497}}\Node%
+{\def\Element%
+{0:1498}}Description\endNode{}\Node%
+{\def\Element%
+{0:1499}}This will execute the command given by
+         \Node%
+{\def\Element%
+{0:1500}}sql-\/expression\endNode{} in the
+         \Node%
+{\def\Element%
+{0:1501}}database\endNode{} specified.  If the execution 
+         succeeds it will return \Node%
+{\def\Element%
+{0:1502}}t\endNode{}, otherwise an
+         error of type \Node%
+{\def\Element%
+{0:1503}}maisql-\/sql-\/error\endNode{} will
+         be signalled.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1504}}\Node%
+{\def\Element%
+{0:1505}}Examples\endNode{}\Node%
+{\def\Element%
+{0:1506}}(execute-\/command "create table eventlog (time char(30),event char(70))")
+=>\/ T
+
+(execute-\/command "create table eventlog (time char(30),event char(70))")
+>\/>\/ 
+>\/>\/ While accessing database \#\Entity{lt}CLSQL-\/POSTGRESQL:POSTGRESQL-\/DATABASE \{480B2B6D\}>\/
+>\/>\/   with expression "create table eventlog (time char(30),event char(70))":
+>\/>\/   Error NIL: ERROR:  amcreate: eventlog relation already exists
+>\/>\/   has occurred.
+>\/>\/ 
+>\/>\/ Restarts:
+>\/>\/   0: [ABORT] Return to Top-\/Level.
+>\/>\/ 
+>\/>\/ Debug  (type H for help)
+>\/>\/ 
+>\/>\/ (CLSQL-\/POSTGRESQL::|(PCL::FAST-\/METHOD DATABASE-\/EXECUTE-\/COMMAND (T POSTGRESQL-\/DATABASE))|
+>\/>\/  \#\Entity{lt}unused-\/arg>\/
+>\/>\/  \#\Entity{lt}unused-\/arg>\/
+>\/>\/  \#\Entity{lt}unavailable-\/arg>\/
+>\/>\/  \#\Entity{lt}unavailable-\/arg>\/)
+>\/>\/ Source: (ERROR 'CLSQL-\/SQL-\/ERROR :DATABASE DATABASE :EXPRESSION ...)
+>\/>\/ 0] 0
+
+(execute-\/command "drop table eventlog")
+=>\/ T
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1507}}\Node%
+{\def\Element%
+{0:1508}}Side Effects\endNode{}\Node%
+{\def\Element%
+{0:1509}}Whatever effects the execution of the SQL statement has
+         on the underlying database, if any.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1510}}\Node%
+{\def\Element%
+{0:1511}}Affected by\endNode{}\Node%
+{\def\Element%
+{0:1512}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1513}}\Node%
+{\def\Element%
+{0:1514}}Exceptional Situations\endNode{}\Node%
+{\def\Element%
+{0:1515}}If the execution of  the SQL statement leads to any
+         errors, an error of type
+         \Node%
+{\def\Element%
+{0:1516}}maisql-\/sql-\/error\endNode{} is signalled.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1517}}\Node%
+{\def\Element%
+{0:1518}}See Also\endNode{}\Node%
+{\def\Element%
+{0:1519}}      \Node%
+{\def\Element%
+{0:1520}}\Node%
+{\def\Element%
+{0:1521}}\Node%
+{\def\Element%
+{0:1522}}\Node%
+{\def\Element%
+{0:1523}}query\endNode{}\endNode{}\endNode{}\endNode{}
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1524}}\Node%
+{\def\Element%
+{0:1525}}Notes\endNode{}\Node%
+{\def\Element%
+{0:1526}}None.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:QUERY}}\Node%
+{\def\Element%
+{0:1528}}\Node%
+{\def\Element%
+{0:1529}}QUERY\endNode{}\Node%
+{\def\Element%
+{0:1530}}Execute an SQL query and return the tuples as a
+         list\endNode{}\Node%
+{\def\Element%
+{0:1531}}Function\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1532}}\Node%
+{\def\Element%
+{0:1533}}Syntax\endNode{}\Node%
+{\def\Element%
+{0:1534}}\Node%
+{\def\Element%
+{0:1535}}query\endNode{} \Node%
+{\def\Element%
+{0:1536}}query-\/expression\endNode{} \Entity{amp}key \Node%
+{\def\Element%
+{0:1537}}database\endNode{} \Node%
+{\def\Element%
+{0:1538}}types\endNode{} =>\/ \Node%
+{\def\Element%
+{0:1539}}result\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1540}}\Node%
+{\def\Element%
+{0:1541}}Arguments and Values\endNode{}\Node%
+{\def\Element%
+{0:1542}}\Node%
+{\def\Element%
+{0:1543}}\Node%
+{\def\Element%
+{0:1544}}\Node%
+{\def\Element%
+{0:1545}}query-\/expression\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1546}}\Node%
+{\def\Element%
+{0:1547}}An \Node%
+{\def\Element%
+{0:1548}}sql
+                 expression\endNode{} that represents an SQL
+               query which is expected to return a (possibly empty)
+               result set.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1549}}\Node%
+{\def\Element%
+{0:1550}}\Node%
+{\def\Element%
+{0:1551}}database\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1552}}\Node%
+{\def\Element%
+{0:1553}}A 
+               \Node%
+{\def\Element%
+{0:1554}}database
+                 object\endNode{}. This will default to the value
+               of \Node%
+{\def\Element%
+{0:1555}}*default-\/database*\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1556}}\Node%
+{\def\Element%
+{0:1557}}\Node%
+{\def\Element%
+{0:1558}}types\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1559}}\Node%
+{\def\Element%
+{0:1560}}A 
+               \Node%
+{\def\Element%
+{0:1561}}field type
+                 specififier\endNode{}. The default is \Node%
+{\def\Element%
+{0:1562}}NIL\endNode{}.
+               \endNode{}\Node%
+{\def\Element%
+{0:1563}}                The purpose of this argument is cause \Node%
+{\def\Element%
+{0:1564}}\Node%
+{\def\Element%
+{0:1565}}CLSQL\endNode{}\endNode{} to
+                 import SQL numeric fields into numeric Lisp objects
+                 rather than strings. This reduces the cost of
+                 allocating a temporary string and the \Node%
+{\def\Element%
+{0:1566}}\Node%
+{\def\Element%
+{0:1567}}CLSQL\endNode{}\endNode{} users'
+                 inconvenience of converting number strings into number
+                 objects.
+               \endNode{}\Node%
+{\def\Element%
+{0:1568}}                A value of \Node%
+{\def\Element%
+{0:1569}}:auto\endNode{} causes \Node%
+{\def\Element%
+{0:1570}}\Node%
+{\def\Element%
+{0:1571}}CLSQL\endNode{}\endNode{}
+                 to automatically convert SQL fields into a
+                 numeric format where applicable. The default value of
+                 \Node%
+{\def\Element%
+{0:1572}}NIL\endNode{} causes all fields to be returned as strings
+                 regardless of the SQL type. Otherwise a list is expected
+                 which has a element for each field that specifies the
+                 conversion. If the list is shorter than the number
+                 of fields, the a value of \Node%
+{\def\Element%
+{0:1573}}t\endNode{} is
+                 assumed for the field.  If the list is longer than
+                 the number of fields, the extra elements are
+                 ignored.
+                 \Node%
+{\def\Element%
+{0:1574}}\Node%
+{\def\Element%
+{0:1575}}\Node%
+{\def\Element%
+{0:1576}}:int\endNode{} Field is imported as a
+                     signed integer, from 8-\/bits to 64-\/bits depending
+                      upon the field type.
+                   \endNode{}\Node%
+{\def\Element%
+{0:1577}}\Node%
+{\def\Element%
+{0:1578}}:double\endNode{} Field is imported as a
+                     double-\/float number.
+                   \endNode{}\Node%
+{\def\Element%
+{0:1579}}\Node%
+{\def\Element%
+{0:1580}}t\endNode{} Field is imported as a
+                     string.
+                   \endNode{}\endNode{}
+               \endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1581}}\Node%
+{\def\Element%
+{0:1582}}\Node%
+{\def\Element%
+{0:1583}}result\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1584}}\Node%
+{\def\Element%
+{0:1585}}A list representing the result set obtained.  For
+               each tuple in the result set, there is an element in
+               this list, which is itself a list of all the attribute 
+               values in the tuple.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1586}}\Node%
+{\def\Element%
+{0:1587}}Description\endNode{}\Node%
+{\def\Element%
+{0:1588}}This will execute the query given by
+         \Node%
+{\def\Element%
+{0:1589}}query-\/expression\endNode{} in the
+         \Node%
+{\def\Element%
+{0:1590}}database\endNode{} specified.  If the execution 
+         succeeds it will return the result set returned by the
+         database, otherwise an error of type
+         \Node%
+{\def\Element%
+{0:1591}}maisql-\/sql-\/error\endNode{} will 
+         be signalled.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1592}}\Node%
+{\def\Element%
+{0:1593}}Examples\endNode{}\Node%
+{\def\Element%
+{0:1594}}(execute-\/command "create table simple (name char(50), salary numeric(10,2))")
+=>\/ T
+(execute-\/command "insert into simple values ('Mai, Pierre',10000)")
+=>\/ T
+(execute-\/command "insert into simple values ('Hacker, Random J.',8000.50)")
+=>\/ T
+(query "select * from simple")
+=>\/ (("Mai, Pierre" "10000.00") ("Hacker, Random J." "8000.50"))
+(query "select salary from simple")
+=>\/ (("10000.00") ("8000.50"))
+(query "select salary from simple where salary >\/ 10000")
+=>\/ NIL
+(query "select salary,name from simple where salary >\/ 10000")
+=>\/ NIL
+(query "select salary,name from simple where salary >\/ 9000")
+=>\/ (("10000.00" "Mai, Pierre"))
+(query "select salary,name from simple where salary >\/ 8000")
+=>\/ (("10000.00" "Mai, Pierre") ("8000.50" "Hacker, Random J."))
+
+;; MySQL-\/specific:
+(query "show tables")
+=>\/ (("demo") ("log") ("newlog") ("simple") ("spacetrial"))
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1595}}\Node%
+{\def\Element%
+{0:1596}}Side Effects\endNode{}\Node%
+{\def\Element%
+{0:1597}}Whatever effects the execution of the SQL query has
+         on the underlying database, if any.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1598}}\Node%
+{\def\Element%
+{0:1599}}Affected by\endNode{}\Node%
+{\def\Element%
+{0:1600}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1601}}\Node%
+{\def\Element%
+{0:1602}}Exceptional Situations\endNode{}\Node%
+{\def\Element%
+{0:1603}}If the execution of  the SQL query leads to any
+         errors, an error of type
+         \Node%
+{\def\Element%
+{0:1604}}maisql-\/sql-\/error\endNode{} is signalled.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1605}}\Node%
+{\def\Element%
+{0:1606}}See Also\endNode{}\Node%
+{\def\Element%
+{0:1607}}      \Node%
+{\def\Element%
+{0:1608}}\Node%
+{\def\Element%
+{0:1609}}\Node%
+{\def\Element%
+{0:1610}}\Node%
+{\def\Element%
+{0:1611}}execute-\/command\endNode{}\endNode{}\endNode{}\endNode{}
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1612}}\Node%
+{\def\Element%
+{0:1613}}Notes\endNode{}\Node%
+{\def\Element%
+{0:1614}}None.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:MAP-QUERY}}\Node%
+{\def\Element%
+{0:1616}}\Node%
+{\def\Element%
+{0:1617}}MAP-\/QUERY\endNode{}\Node%
+{\def\Element%
+{0:1618}}Map a function over all the tuples from a
+         query\endNode{}\Node%
+{\def\Element%
+{0:1619}}Function\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1620}}\Node%
+{\def\Element%
+{0:1621}}Syntax\endNode{}\Node%
+{\def\Element%
+{0:1622}}\Node%
+{\def\Element%
+{0:1623}}map-\/query\endNode{} \Node%
+{\def\Element%
+{0:1624}}output-\/type-\/spec\endNode{} \Node%
+{\def\Element%
+{0:1625}}function\endNode{} \Node%
+{\def\Element%
+{0:1626}}query-\/expression\endNode{} \Entity{amp}key \Node%
+{\def\Element%
+{0:1627}}database\endNode{} \Node%
+{\def\Element%
+{0:1628}}types\endNode{} =>\/ \Node%
+{\def\Element%
+{0:1629}}result\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1630}}\Node%
+{\def\Element%
+{0:1631}}Arguments and Values\endNode{}\Node%
+{\def\Element%
+{0:1632}}\Node%
+{\def\Element%
+{0:1633}}\Node%
+{\def\Element%
+{0:1634}}\Node%
+{\def\Element%
+{0:1635}}output-\/type-\/spec\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1636}}\Node%
+{\def\Element%
+{0:1637}}A sequence type specifier or \Node%
+{\def\Element%
+{0:1638}}nil\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1639}}\Node%
+{\def\Element%
+{0:1640}}\Node%
+{\def\Element%
+{0:1641}}function\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1642}}\Node%
+{\def\Element%
+{0:1643}}A function designator.
+               \Node%
+{\def\Element%
+{0:1644}}function\endNode{} must take as many
+               arguments as are attributes in the result set returned
+               by executing the SQL
+               \Node%
+{\def\Element%
+{0:1645}}query-\/expression\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1646}}\Node%
+{\def\Element%
+{0:1647}}\Node%
+{\def\Element%
+{0:1648}}query-\/expression\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1649}}\Node%
+{\def\Element%
+{0:1650}}An \Node%
+{\def\Element%
+{0:1651}}sql
+                 expression\endNode{} that represents an SQL
+               query which is expected to return a (possibly empty)
+               result set, where each tuple has as many attributes as 
+               \Node%
+{\def\Element%
+{0:1652}}function\endNode{} takes arguments.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1653}}\Node%
+{\def\Element%
+{0:1654}}\Node%
+{\def\Element%
+{0:1655}}database\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1656}}\Node%
+{\def\Element%
+{0:1657}}A 
+               \Node%
+{\def\Element%
+{0:1658}}database
+                 object\endNode{}. This will default to the value
+               of \Node%
+{\def\Element%
+{0:1659}}*default-\/database*\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1660}}\Node%
+{\def\Element%
+{0:1661}}\Node%
+{\def\Element%
+{0:1662}}types\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1663}}\Node%
+{\def\Element%
+{0:1664}}              A \Node%
+{\def\Element%
+{0:1665}}field type specififier\endNode{}. 
+               The default is \Node%
+{\def\Element%
+{0:1666}}NIL\endNode{}. See \Node%
+{\def\Element%
+{0:1667}}\Node%
+{\def\Element%
+{0:1668}}query\endNode{}\endNode{}
+               for the semantics of this argument.  
+             \endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1669}}\Node%
+{\def\Element%
+{0:1670}}\Node%
+{\def\Element%
+{0:1671}}result\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1672}}\Node%
+{\def\Element%
+{0:1673}}If \Node%
+{\def\Element%
+{0:1674}}output-\/type-\/spec\endNode{} is a
+               type specifier other than \Node%
+{\def\Element%
+{0:1675}}nil\endNode{}, then a 
+               sequence of the type it denotes.  Otherwise
+               \Node%
+{\def\Element%
+{0:1676}}nil\endNode{} is returned.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1677}}\Node%
+{\def\Element%
+{0:1678}}Description\endNode{}\Node%
+{\def\Element%
+{0:1679}}Applies \Node%
+{\def\Element%
+{0:1680}}function\endNode{} to the
+         attributes of successive tuples in the result set returned
+         by executing the SQL
+         \Node%
+{\def\Element%
+{0:1681}}query-\/expression\endNode{}.  If the
+         \Node%
+{\def\Element%
+{0:1682}}output-\/type-\/spec\endNode{} is
+         \Node%
+{\def\Element%
+{0:1683}}nil\endNode{}, then the result of each application
+         of \Node%
+{\def\Element%
+{0:1684}}function\endNode{} is discarded, and
+         \Node%
+{\def\Element%
+{0:1685}}map-\/query\endNode{} returns
+         \Node%
+{\def\Element%
+{0:1686}}nil\endNode{}.  Otherwise the result of each
+         successive application of \Node%
+{\def\Element%
+{0:1687}}function\endNode{} is 
+         collected in a sequence of type
+         \Node%
+{\def\Element%
+{0:1688}}output-\/type-\/spec\endNode{}, where the jths
+         element is the result of applying
+         \Node%
+{\def\Element%
+{0:1689}}function\endNode{} to the attributes of the
+         jths tuple in the result set.  The collected sequence is the 
+         result of the call to \Node%
+{\def\Element%
+{0:1690}}map-\/query\endNode{}.
+       \endNode{}\Node%
+{\def\Element%
+{0:1691}}If the \Node%
+{\def\Element%
+{0:1692}}output-\/type-\/spec\endNode{} is a
+         subtype of \Node%
+{\def\Element%
+{0:1693}}list\endNode{}, the result will be a
+         \Node%
+{\def\Element%
+{0:1694}}list\endNode{}.\endNode{}\Node%
+{\def\Element%
+{0:1695}}If the \Node%
+{\def\Element%
+{0:1696}}result-\/type\endNode{} is a subtype
+         of \Node%
+{\def\Element%
+{0:1697}}vector\endNode{}, then if the implementation can
+         determine the element type specified for the
+         \Node%
+{\def\Element%
+{0:1698}}result-\/type\endNode{}, the element type of the
+         resulting array is the result of
+         \Node%
+{\def\Element%
+{0:1699}}upgrading\endNode{} that element type; or, if the
+         implementation can determine that the element type is
+         unspecified (or \Node%
+{\def\Element%
+{0:1700}}*\endNode{}), the element type of the
+         resulting array is \Node%
+{\def\Element%
+{0:1701}}t\endNode{}; otherwise, an error is
+         signaled.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1702}}\Node%
+{\def\Element%
+{0:1703}}Examples\endNode{}\Node%
+{\def\Element%
+{0:1704}}(map-\/query 'list \#'(lambda (salary name) 
+                    (declare (ignorable name))
+                    (read-\/from-\/string salary))
+          "select salary,name from simple where salary >\/ 8000")
+=>\/ (10000.0 8000.5)
+
+(map-\/query '(vector double-\/float)
+          \#'(lambda (salary name)
+              (declare (ignorable name))
+               (let ((*read-\/default-\/float-\/format* 'double-\/float))
+                (coerce (read-\/from-\/string salary) 'double-\/float))
+                 "select salary,name from simple where salary >\/ 8000"))
+=>\/ \#(10000.0d0 8000.5d0)
+(type-\/of *)
+=>\/ (SIMPLE-\/ARRAY DOUBLE-\/FLOAT (2))
+
+(let (list)
+  (values (map-\/query nil \#'(lambda (salary name) 
+                            (push (cons name (read-\/from-\/string salary)) list))
+                    "select salary,name from simple where salary >\/ 8000")
+         list))
+=>\/ NIL
+=>\/ (("Hacker, Random J." . 8000.5) ("Mai, Pierre" . 10000.0))
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1705}}\Node%
+{\def\Element%
+{0:1706}}Side Effects\endNode{}\Node%
+{\def\Element%
+{0:1707}}Whatever effects the execution of the SQL query has
+         on the underlying database, if any.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1708}}\Node%
+{\def\Element%
+{0:1709}}Affected by\endNode{}\Node%
+{\def\Element%
+{0:1710}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1711}}\Node%
+{\def\Element%
+{0:1712}}Exceptional Situations\endNode{}\Node%
+{\def\Element%
+{0:1713}}If the execution of  the SQL query leads to any
+         errors, an error of type
+         \Node%
+{\def\Element%
+{0:1714}}maisql-\/sql-\/error\endNode{} is signalled.\endNode{}\Node%
+{\def\Element%
+{0:1715}}An error of type \Node%
+{\def\Element%
+{0:1716}}type-\/error\endNode{} must
+         be signaled if the \Node%
+{\def\Element%
+{0:1717}}output-\/type-\/spec\endNode{} is
+         not a recognizable subtype of \Node%
+{\def\Element%
+{0:1718}}list\endNode{}, not a
+         recognizable subtype of \Node%
+{\def\Element%
+{0:1719}}vector\endNode{}, and not
+         \Node%
+{\def\Element%
+{0:1720}}nil\endNode{}.\endNode{}\Node%
+{\def\Element%
+{0:1721}}An error of type \Node%
+{\def\Element%
+{0:1722}}type-\/error\endNode{}
+         should be signaled if
+         \Node%
+{\def\Element%
+{0:1723}}output-\/type-\/spec\endNode{} specifies the number
+         of elements and the size of the result set is different from
+         that number.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1724}}\Node%
+{\def\Element%
+{0:1725}}See Also\endNode{}\Node%
+{\def\Element%
+{0:1726}}      \Node%
+{\def\Element%
+{0:1727}}\Node%
+{\def\Element%
+{0:1728}}\Node%
+{\def\Element%
+{0:1729}}\Node%
+{\def\Element%
+{0:1730}}query\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1731}}\Node%
+{\def\Element%
+{0:1732}}\Node%
+{\def\Element%
+{0:1733}}do-\/query\endNode{}\endNode{}\endNode{}\endNode{}
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1734}}\Node%
+{\def\Element%
+{0:1735}}Notes\endNode{}\Node%
+{\def\Element%
+{0:1736}}None.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:DO-QUERY}}\Node%
+{\def\Element%
+{0:1738}}\Node%
+{\def\Element%
+{0:1739}}DO-\/QUERY\endNode{}\Node%
+{\def\Element%
+{0:1740}}Iterate over all the tuples of a
+       query\endNode{}\Node%
+{\def\Element%
+{0:1741}}Macro\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1742}}\Node%
+{\def\Element%
+{0:1743}}Syntax\endNode{}\Node%
+{\def\Element%
+{0:1744}}\Node%
+{\def\Element%
+{0:1745}}do-\/query\endNode{} ((\Entity{amp}rest \Node%
+{\def\Element%
+{0:1746}}args\endNode{}) \Node%
+{\def\Element%
+{0:1747}}query-\/expression\endNode{} \Entity{amp}key \Node%
+{\def\Element%
+{0:1748}}database\endNode{} \Node%
+{\def\Element%
+{0:1749}}types\endNode{}) \Entity{amp}body \Node%
+{\def\Element%
+{0:1750}}body\endNode{} =>\/ \Node%
+{\def\Element%
+{0:1751}}nil\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1752}}\Node%
+{\def\Element%
+{0:1753}}Arguments and Values\endNode{}\Node%
+{\def\Element%
+{0:1754}}\Node%
+{\def\Element%
+{0:1755}}\Node%
+{\def\Element%
+{0:1756}}\Node%
+{\def\Element%
+{0:1757}}args\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1758}}\Node%
+{\def\Element%
+{0:1759}}A list of variable names.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1760}}\Node%
+{\def\Element%
+{0:1761}}\Node%
+{\def\Element%
+{0:1762}}query-\/expression\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1763}}\Node%
+{\def\Element%
+{0:1764}}An \Node%
+{\def\Element%
+{0:1765}}sql
+                 expression\endNode{} that represents an SQL
+               query which is expected to return a (possibly empty)
+               result set, where each tuple has as many attributes as
+               \Node%
+{\def\Element%
+{0:1766}}function\endNode{} takes arguments.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1767}}\Node%
+{\def\Element%
+{0:1768}}\Node%
+{\def\Element%
+{0:1769}}database\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1770}}\Node%
+{\def\Element%
+{0:1771}}A 
+               \Node%
+{\def\Element%
+{0:1772}}database
+                 object\endNode{}. This will default to
+               \Node%
+{\def\Element%
+{0:1773}}*default-\/database*\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1774}}\Node%
+{\def\Element%
+{0:1775}}\Node%
+{\def\Element%
+{0:1776}}types\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1777}}\Node%
+{\def\Element%
+{0:1778}}              A \Node%
+{\def\Element%
+{0:1779}}field type specififier\endNode{}. 
+               The default is \Node%
+{\def\Element%
+{0:1780}}NIL\endNode{}. See \Node%
+{\def\Element%
+{0:1781}}\Node%
+{\def\Element%
+{0:1782}}query\endNode{}\endNode{}
+               for the semantics of this argument.  
+             \endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1783}}\Node%
+{\def\Element%
+{0:1784}}\Node%
+{\def\Element%
+{0:1785}}body\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1786}}\Node%
+{\def\Element%
+{0:1787}}A body of Lisp code, like in a
+               \Node%
+{\def\Element%
+{0:1788}}destructuring-\/bind\endNode{} form.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1789}}\Node%
+{\def\Element%
+{0:1790}}Description\endNode{}\Node%
+{\def\Element%
+{0:1791}}Executes the \Node%
+{\def\Element%
+{0:1792}}body\endNode{} of code
+         repeatedly with the variable names in
+         \Node%
+{\def\Element%
+{0:1793}}args\endNode{} bound to the attributes of each
+         tuple in the result set returned by executing the SQL
+         \Node%
+{\def\Element%
+{0:1794}}query-\/expression\endNode{} on the
+         \Node%
+{\def\Element%
+{0:1795}}database\endNode{} specified.\endNode{}\Node%
+{\def\Element%
+{0:1796}}The body of code is executed in a block named
+         \Node%
+{\def\Element%
+{0:1797}}nil\endNode{} which may be returned from prematurely
+         via \Node%
+{\def\Element%
+{0:1798}}return\endNode{} or
+         \Node%
+{\def\Element%
+{0:1799}}return-\/from\endNode{}.  In this case the result
+         of evaluating the \Node%
+{\def\Element%
+{0:1800}}do-\/query\endNode{} form will be 
+         the one supplied to \Node%
+{\def\Element%
+{0:1801}}return\endNode{} or
+         \Node%
+{\def\Element%
+{0:1802}}return-\/from\endNode{}.  Otherwise the result will 
+         be \Node%
+{\def\Element%
+{0:1803}}nil\endNode{}.\endNode{}\Node%
+{\def\Element%
+{0:1804}}The body of code appears also is if wrapped in a
+         \Node%
+{\def\Element%
+{0:1805}}destructuring-\/bind\endNode{} form, thus allowing
+         declarations at the start of the body, especially those
+         pertaining to the bindings of the variables named in
+         \Node%
+{\def\Element%
+{0:1806}}args\endNode{}.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1807}}\Node%
+{\def\Element%
+{0:1808}}Examples\endNode{}\Node%
+{\def\Element%
+{0:1809}}(do-\/query ((salary name) "select salary,name from simple")
+  (format t "\char126{}30A gets \$\char126{}2,5\$\char126{}\%" name (read-\/from-\/string salary)))
+>\/>\/ Mai, Pierre                    gets \$10000.00
+>\/>\/ Hacker, Random J.              gets \$08000.50
+=>\/ NIL
+
+(do-\/query ((salary name) "select salary,name from simple")
+  (return (cons salary name)))
+=>\/ ("10000.00" . "Mai, Pierre")
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1810}}\Node%
+{\def\Element%
+{0:1811}}Side Effects\endNode{}\Node%
+{\def\Element%
+{0:1812}}Whatever effects the execution of the SQL query has
+         on the underlying database, if any.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1813}}\Node%
+{\def\Element%
+{0:1814}}Affected by\endNode{}\Node%
+{\def\Element%
+{0:1815}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1816}}\Node%
+{\def\Element%
+{0:1817}}Exceptional Situations\endNode{}\Node%
+{\def\Element%
+{0:1818}}If the execution of  the SQL query leads to any
+         errors, an error of type
+         \Node%
+{\def\Element%
+{0:1819}}maisql-\/sql-\/error\endNode{} is signalled.\endNode{}\Node%
+{\def\Element%
+{0:1820}}If the number of variable names in
+         \Node%
+{\def\Element%
+{0:1821}}args\endNode{} and the number of attributes in
+         the tuples in the result set don't match up, an error is
+         signalled.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1822}}\Node%
+{\def\Element%
+{0:1823}}See Also\endNode{}\Node%
+{\def\Element%
+{0:1824}}      \Node%
+{\def\Element%
+{0:1825}}\Node%
+{\def\Element%
+{0:1826}}\Node%
+{\def\Element%
+{0:1827}}\Node%
+{\def\Element%
+{0:1828}}query\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1829}}\Node%
+{\def\Element%
+{0:1830}}\Node%
+{\def\Element%
+{0:1831}}map-\/query\endNode{}\endNode{}\endNode{}\endNode{}
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1832}}\Node%
+{\def\Element%
+{0:1833}}Notes\endNode{}\Node%
+{\def\Element%
+{0:1834}}None.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:LOOP-TUPLES}}\Node%
+{\def\Element%
+{0:1836}}\Node%
+{\def\Element%
+{0:1837}}LOOP-\/FOR-\/AS-\/TUPLES\endNode{}\Node%
+{\def\Element%
+{0:1838}}Iterate over all the tuples of a
+       query via a loop clause\endNode{}\Node%
+{\def\Element%
+{0:1839}}Loop Clause\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1840}}\Node%
+{\def\Element%
+{0:1841}}Compatibility\endNode{}\Node%
+{\def\Element%
+{0:1842}}\Node%
+{\def\Element%
+{0:1843}}\Node%
+{\def\Element%
+{0:1844}}loop-\/for-\/as-\/tuples\endNode{} only works with \Node%
+{\def\Element%
+{0:1845}}CMUCL\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1846}}\Node%
+{\def\Element%
+{0:1847}}Syntax\endNode{}\Node%
+{\def\Element%
+{0:1848}}\Node%
+{\def\Element%
+{0:1849}}var\endNode{} [\Node%
+{\def\Element%
+{0:1850}}type-\/spec\endNode{}] being \{each | the\} \{record | records | tuple | tuples\} \{in | of\} \Node%
+{\def\Element%
+{0:1851}}query\endNode{} [from \Node%
+{\def\Element%
+{0:1852}}database\endNode{}]\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1853}}\Node%
+{\def\Element%
+{0:1854}}Arguments and Values\endNode{}\Node%
+{\def\Element%
+{0:1855}}\Node%
+{\def\Element%
+{0:1856}}\Node%
+{\def\Element%
+{0:1857}}\Node%
+{\def\Element%
+{0:1858}}var\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1859}}\Node%
+{\def\Element%
+{0:1860}}A \Node%
+{\def\Element%
+{0:1861}}d-\/var-\/spec\endNode{}, as defined in the 
+               grammar for \Node%
+{\def\Element%
+{0:1862}}loop\endNode{}-\/clauses in the
+               ANSI Standard for Common Lisp.  This allows for the
+               usual loop-\/style destructuring.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1863}}\Node%
+{\def\Element%
+{0:1864}}\Node%
+{\def\Element%
+{0:1865}}type-\/spec\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1866}}\Node%
+{\def\Element%
+{0:1867}}An optional \Node%
+{\def\Element%
+{0:1868}}type-\/spec\endNode{} either
+               simple or destructured, as defined in the grammar for
+               \Node%
+{\def\Element%
+{0:1869}}loop\endNode{}-\/clauses in the ANSI Standard
+               for Common Lisp.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1870}}\Node%
+{\def\Element%
+{0:1871}}\Node%
+{\def\Element%
+{0:1872}}query\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1873}}\Node%
+{\def\Element%
+{0:1874}}An \Node%
+{\def\Element%
+{0:1875}}sql
+                 expression\endNode{} that represents an SQL
+               query which is expected to return a (possibly empty)
+               result set, where each tuple has as many attributes as
+               \Node%
+{\def\Element%
+{0:1876}}function\endNode{} takes arguments.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1877}}\Node%
+{\def\Element%
+{0:1878}}\Node%
+{\def\Element%
+{0:1879}}database\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1880}}\Node%
+{\def\Element%
+{0:1881}}An optional
+               \Node%
+{\def\Element%
+{0:1882}}database
+                 object\endNode{}. This will default to the value
+               of \Node%
+{\def\Element%
+{0:1883}}*default-\/database*\endNode{}.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1884}}\Node%
+{\def\Element%
+{0:1885}}Description\endNode{}\Node%
+{\def\Element%
+{0:1886}}This clause is an iteration driver for
+       \Node%
+{\def\Element%
+{0:1887}}loop\endNode{}, that binds the given variable
+         (possibly destructured) to the consecutive tuples (which are 
+         represented as lists of attribute values) in the result set
+         returned by executing the SQL \Node%
+{\def\Element%
+{0:1888}}query\endNode{}
+         expression on the \Node%
+{\def\Element%
+{0:1889}}database\endNode{}
+         specified.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1890}}\Node%
+{\def\Element%
+{0:1891}}Examples\endNode{}\Node%
+{\def\Element%
+{0:1892}}(defvar *my-\/db* (connect '("dent" "newesim" "dent" "dent"))
+  "My database"
+=>\/ *MY-\/DB*
+(loop with time-\/graph = (make-\/hash-\/table :test \#'equal)
+      with event-\/graph = (make-\/hash-\/table :test \#'equal)
+      for (time event) being the tuples of "select time,event from log"
+      from *my-\/db*
+      do
+      (incf (gethash time time-\/graph 0))
+      (incf (gethash event event-\/graph 0))
+      finally
+      (flet ((show-\/graph (k v) (format t "\char126{}40A =>\/ \char126{}5D\char126{}\%" k v)))
+        (format t "\char126{}\Entity{amp}Time-\/Graph:\char126{}\%===========\char126{}\%")
+        (maphash \#'show-\/graph time-\/graph)
+        (format t "\char126{}\Entity{amp}\char126{}\%Event-\/Graph:\char126{}\%============\char126{}\%")
+        (maphash \#'show-\/graph event-\/graph))
+      (return (values time-\/graph event-\/graph)))
+>\/>\/ Time-\/Graph:
+>\/>\/ ===========
+>\/>\/ D                                        =>\/ 53000
+>\/>\/ X                                        =>\/     3
+>\/>\/ test-\/me                                  =>\/  3000
+>\/>\/ 
+>\/>\/ Event-\/Graph:
+>\/>\/ ============
+>\/>\/ CLOS Benchmark entry.                    =>\/  9000
+>\/>\/ Demo Text...                             =>\/     3
+>\/>\/ doit-\/text                                =>\/  3000
+>\/>\/ C    Benchmark entry.                    =>\/ 12000
+>\/>\/ CLOS Benchmark entry                     =>\/ 32000
+=>\/ \#\Entity{lt}EQUAL hash table, 3 entries \{48350A1D\}>\/
+=>\/ \#\Entity{lt}EQUAL hash table, 5 entries \{48350FCD\}>\/
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1893}}\Node%
+{\def\Element%
+{0:1894}}Side Effects\endNode{}\Node%
+{\def\Element%
+{0:1895}}Whatever effects the execution of the SQL query has
+         on the underlying database, if any.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1896}}\Node%
+{\def\Element%
+{0:1897}}Affected by\endNode{}\Node%
+{\def\Element%
+{0:1898}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1899}}\Node%
+{\def\Element%
+{0:1900}}Exceptional Situations\endNode{}\Node%
+{\def\Element%
+{0:1901}}If the execution of  the SQL query leads to any
+         errors, an error of type
+         \Node%
+{\def\Element%
+{0:1902}}maisql-\/sql-\/error\endNode{} is signalled.\endNode{}\Node%
+{\def\Element%
+{0:1903}}Otherwise, any of the exceptional situations of
+         \Node%
+{\def\Element%
+{0:1904}}loop\endNode{} applies.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1905}}\Node%
+{\def\Element%
+{0:1906}}See Also\endNode{}\Node%
+{\def\Element%
+{0:1907}}      \Node%
+{\def\Element%
+{0:1908}}\Node%
+{\def\Element%
+{0:1909}}\Node%
+{\def\Element%
+{0:1910}}\Node%
+{\def\Element%
+{0:1911}}query\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1912}}\Node%
+{\def\Element%
+{0:1913}}\Node%
+{\def\Element%
+{0:1914}}map-\/query\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1915}}\Node%
+{\def\Element%
+{0:1916}}\Node%
+{\def\Element%
+{0:1917}}do-\/query\endNode{}\endNode{}\endNode{}\endNode{}
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1918}}\Node%
+{\def\Element%
+{0:1919}}Notes\endNode{}\Node%
+{\def\Element%
+{0:1920}}None.\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1921}}\Node%
+{\def\Element%
+{0:1922}}\Node%
+{\def\Element%
+{0:1923}}CLSQL-\/SYS\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1924}}\Node%
+{\def\Element%
+{0:1925}}This part gives a reference to all the symbols exported
+       from the package \Node%
+{\def\Element%
+{0:1926}}CLSQL-\/SYS\endNode{}, which are not also
+       exported from \Node%
+{\def\Element%
+{0:1927}}CLSQL\endNode{}.  These symbols are part of
+       the interface for database back-\/ends, but not part of the normal
+       user-\/interface of \Node%
+{\def\Element%
+{0:1928}}\Node%
+{\def\Element%
+{0:1929}}CLSQL\endNode{}\endNode{}.\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:DATABASE-INITIALIZE-DATABASE-TYPE}}\Node%
+{\def\Element%
+{0:1931}}\Node%
+{\def\Element%
+{0:1932}}DATABASE-\/INITIALIZE-\/DATABASE-\/TYPE\endNode{}\Node%
+{\def\Element%
+{0:1933}}Back-\/end part of \Node%
+{\def\Element%
+{0:1934}}\Node%
+{\def\Element%
+{0:1935}}initialize-\/database-\/type\endNode{}\endNode{}.\endNode{}\Node%
+{\def\Element%
+{0:1936}}Generic Function\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1937}}\Node%
+{\def\Element%
+{0:1938}}Syntax\endNode{}\Node%
+{\def\Element%
+{0:1939}}\Node%
+{\def\Element%
+{0:1940}}database-\/initialize-\/database-\/type\endNode{} \Node%
+{\def\Element%
+{0:1941}}database-\/type\endNode{} =>\/ \Node%
+{\def\Element%
+{0:1942}}result\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1943}}\Node%
+{\def\Element%
+{0:1944}}Arguments and Values\endNode{}\Node%
+{\def\Element%
+{0:1945}}\Node%
+{\def\Element%
+{0:1946}}\Node%
+{\def\Element%
+{0:1947}}\Node%
+{\def\Element%
+{0:1948}}database-\/type\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1949}}\Node%
+{\def\Element%
+{0:1950}}A keyword indicating the database type to
+               initialize.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1951}}\Node%
+{\def\Element%
+{0:1952}}\Node%
+{\def\Element%
+{0:1953}}result\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1954}}\Node%
+{\def\Element%
+{0:1955}}Either \Node%
+{\def\Element%
+{0:1956}}t\endNode{} if the initialization
+               succeeds or \Node%
+{\def\Element%
+{0:1957}}nil\endNode{} if it fails.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1958}}\Node%
+{\def\Element%
+{0:1959}}Description\endNode{}\Node%
+{\def\Element%
+{0:1960}}This generic function implements the main part of the
+         database type initialization performed by
+         \Node%
+{\def\Element%
+{0:1961}}initialize-\/database-\/type\endNode{}.  After
+         \Node%
+{\def\Element%
+{0:1962}}initialize-\/database-\/type\endNode{} has checked
+         that the given database type has not been initialized
+         before, as indicated by
+         \Node%
+{\def\Element%
+{0:1963}}*initialized-\/database-\/types*\endNode{}, it will call
+         this function with the database type as it's sole
+         parameter.  Database back-\/ends are required to define a
+         method on this generic function which is specialized via an
+         eql-\/specializer to the keyword representing their database
+         type.\endNode{}\Node%
+{\def\Element%
+{0:1964}}Database back-\/ends shall indicate successful
+         initialization by returning \Node%
+{\def\Element%
+{0:1965}}t\endNode{} from their
+         method, and \Node%
+{\def\Element%
+{0:1966}}nil\endNode{} otherwise.  Methods for
+         this generic function are allowed to signal errors of type
+         \Node%
+{\def\Element%
+{0:1967}}maisql-\/error\endNode{} or subtypes thereof.
+         They may also signal other types of conditions, if
+         appropriate, but have to document this.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1968}}\Node%
+{\def\Element%
+{0:1969}}Examples\endNode{}\Node%
+{\def\Element%
+{0:1970}}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1971}}\Node%
+{\def\Element%
+{0:1972}}Side Effects\endNode{}\Node%
+{\def\Element%
+{0:1973}}All necessary side effects to initialize the database
+         instance.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1974}}\Node%
+{\def\Element%
+{0:1975}}Affected By\endNode{}\Node%
+{\def\Element%
+{0:1976}}None.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1977}}\Node%
+{\def\Element%
+{0:1978}}Exceptional Situations\endNode{}\Node%
+{\def\Element%
+{0:1979}}Conditions of type \Node%
+{\def\Element%
+{0:1980}}maisql-\/error\endNode{}
+         or other conditions may be signalled, depending on the
+         database back-\/end.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1981}}\Node%
+{\def\Element%
+{0:1982}}See Also\endNode{}\Node%
+{\def\Element%
+{0:1983}}      \Node%
+{\def\Element%
+{0:1984}}\Node%
+{\def\Element%
+{0:1985}}\Node%
+{\def\Element%
+{0:1986}}\Node%
+{\def\Element%
+{0:1987}}initialize-\/database-\/type\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1988}}\Node%
+{\def\Element%
+{0:1989}}\Node%
+{\def\Element%
+{0:1990}}*initialized-\/database-\/types*\endNode{}\endNode{}\endNode{}\endNode{}
+       \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1991}}\Node%
+{\def\Element%
+{0:1992}}Notes\endNode{}\Node%
+{\def\Element%
+{0:1993}}None.\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:1994}}\Node%
+{\def\Element%
+{0:1995}}Database Back-\/ends\endNode{}\Node%
+{\def\Element%
+{0:1996}}\Node%
+{\def\Element%
+{0:1997}}MySQL\endNode{}\Node%
+{\def\Element%
+{0:1998}}\Node%
+{\def\Element%
+{0:1999}}Libraries\endNode{}\Node%
+{\def\Element%
+{0:2000}}The MySQL back-\/end needs access to the MySQL C 
+         client library (\Node%
+{\def\Element%
+{0:2001}}libmysqlclient.so\endNode{}).
+         The location of this library is specified via 
+         \Node%
+{\def\Element%
+{0:2002}}*mysql-\/so-\/load-\/path*\endNode{}, which defaults
+         to \Node%
+{\def\Element%
+{0:2003}}/usr/lib/libmysqlclient.so\endNode{}.
+         Additional flags to \Node%
+{\def\Element%
+{0:2004}}ld\endNode{} needed for
+         linking are specified via
+         \Node%
+{\def\Element%
+{0:2005}}*mysql-\/so-\/libraries*\endNode{},
+         which defaults to \Node%
+{\def\Element%
+{0:2006}}("-\/lc")\endNode{}.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2007}}\Node%
+{\def\Element%
+{0:2008}}Initialization\endNode{}\Node%
+{\def\Element%
+{0:2009}}Use 
+         \Node%
+{\def\Element%
+{0:2010}}(mk:load-\/system :clsql-\/mysql)\endNode{}
+         to load the MySQL back-\/end.  The database type for the MySQL
+         back-\/end is \Node%
+{\def\Element%
+{0:2011}}:mysql\endNode{}.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2012}}\Node%
+{\def\Element%
+{0:2013}}Connection Specification\endNode{}\Node%
+{\def\Element%
+{0:2014}}\Node%
+{\def\Element%
+{0:2015}}Syntax of connection-\/spec\endNode{}\Node%
+{\def\Element%
+{0:2016}}(\Node%
+{\def\Element%
+{0:2017}}host\endNode{} \Node%
+{\def\Element%
+{0:2018}}db\endNode{} \Node%
+{\def\Element%
+{0:2019}}user\endNode{} \Node%
+{\def\Element%
+{0:2020}}password\endNode{})\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2021}}\Node%
+{\def\Element%
+{0:2022}}Description of connection-\/spec\endNode{}\Node%
+{\def\Element%
+{0:2023}}\Node%
+{\def\Element%
+{0:2024}}\Node%
+{\def\Element%
+{0:2025}}\Node%
+{\def\Element%
+{0:2026}}host\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2027}}\Node%
+{\def\Element%
+{0:2028}}String representing the hostname or IP address
+                 the MySQL server resides on, or \Node%
+{\def\Element%
+{0:2029}}nil\endNode{}
+                 to indicate the localhost.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2030}}\Node%
+{\def\Element%
+{0:2031}}\Node%
+{\def\Element%
+{0:2032}}db\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2033}}\Node%
+{\def\Element%
+{0:2034}}String representing the name of the database on
+                 the server to connect to.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2035}}\Node%
+{\def\Element%
+{0:2036}}\Node%
+{\def\Element%
+{0:2037}}user\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2038}}\Node%
+{\def\Element%
+{0:2039}}String representing the user name to use for
+                 authentication, or \Node%
+{\def\Element%
+{0:2040}}nil\endNode{} to use the
+                 current Unix user ID.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2041}}\Node%
+{\def\Element%
+{0:2042}}\Node%
+{\def\Element%
+{0:2043}}password\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2044}}\Node%
+{\def\Element%
+{0:2045}}String representing the unencrypted password to
+                 use for authentication, or \Node%
+{\def\Element%
+{0:2046}}nil\endNode{} if
+                 the authentication record has an empty password
+                 field.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2047}}\Node%
+{\def\Element%
+{0:2048}}AODBC\endNode{}\Node%
+{\def\Element%
+{0:2049}}\Node%
+{\def\Element%
+{0:2050}}Libraries\endNode{}\Node%
+{\def\Element%
+{0:2051}}The AODBC back-\/end requires access to the ODBC interface
+          of \Node%
+{\def\Element%
+{0:2052}}AllegroCL\endNode{}.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2053}}\Node%
+{\def\Element%
+{0:2054}}Initialization\endNode{}\Node%
+{\def\Element%
+{0:2055}}Use 
+         \Node%
+{\def\Element%
+{0:2056}}(mk:load-\/system :clsql-\/aodbc)\endNode{}
+         to load the MySQL back-\/end.  The database type for the AODBC
+         back-\/end is \Node%
+{\def\Element%
+{0:2057}}:aodbc\endNode{}.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2058}}\Node%
+{\def\Element%
+{0:2059}}Connection Specification\endNode{}\Node%
+{\def\Element%
+{0:2060}}\Node%
+{\def\Element%
+{0:2061}}Syntax of connection-\/spec\endNode{}\Node%
+{\def\Element%
+{0:2062}}(\Node%
+{\def\Element%
+{0:2063}}dsn\endNode{} \Node%
+{\def\Element%
+{0:2064}}user\endNode{} \Node%
+{\def\Element%
+{0:2065}}password\endNode{})\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2066}}\Node%
+{\def\Element%
+{0:2067}}Description of connection-\/spec\endNode{}\Node%
+{\def\Element%
+{0:2068}}\Node%
+{\def\Element%
+{0:2069}}\Node%
+{\def\Element%
+{0:2070}}\Node%
+{\def\Element%
+{0:2071}}dsn\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2072}}\Node%
+{\def\Element%
+{0:2073}}String representing the ODBC data source name.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2074}}\Node%
+{\def\Element%
+{0:2075}}\Node%
+{\def\Element%
+{0:2076}}user\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2077}}\Node%
+{\def\Element%
+{0:2078}}String representing the user name to use for
+                 authentication.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2079}}\Node%
+{\def\Element%
+{0:2080}}\Node%
+{\def\Element%
+{0:2081}}password\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2082}}\Node%
+{\def\Element%
+{0:2083}}String representing the unencrypted password to
+                 use for authentication.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2084}}\Node%
+{\def\Element%
+{0:2085}}PostgreSQL\endNode{}\Node%
+{\def\Element%
+{0:2086}}\Node%
+{\def\Element%
+{0:2087}}Libraries\endNode{}\Node%
+{\def\Element%
+{0:2088}}The PostgreSQL back-\/end needs access to the PostgreSQL C 
+         client library (\Node%
+{\def\Element%
+{0:2089}}libpq.so\endNode{}).  The
+         location of this library is specified via 
+         \Node%
+{\def\Element%
+{0:2090}}*postgresql-\/so-\/load-\/path*\endNode{}, which defaults
+         to \Node%
+{\def\Element%
+{0:2091}}/usr/lib/libpq.so\endNode{}.  Additional flags 
+         to \Node%
+{\def\Element%
+{0:2092}}ld\endNode{} needed for linking are
+         specified via \Node%
+{\def\Element%
+{0:2093}}*postgresql-\/so-\/libraries*\endNode{},
+         which defaults to \Node%
+{\def\Element%
+{0:2094}}("-\/lcrypt" "-\/lc")\endNode{}.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2095}}\Node%
+{\def\Element%
+{0:2096}}Initialization\endNode{}\Node%
+{\def\Element%
+{0:2097}}Use 
+         \Node%
+{\def\Element%
+{0:2098}}(mk:load-\/system :clsql-\/postgresql)\endNode{}
+         to load the PostgreSQL back-\/end.  The database type for the
+         PostgreSQL back-\/end is \Node%
+{\def\Element%
+{0:2099}}:postgresql\endNode{}.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2100}}\Node%
+{\def\Element%
+{0:2101}}Connection Specification\endNode{}\Node%
+{\def\Element%
+{0:2102}}\Node%
+{\def\Element%
+{0:2103}}Syntax of connection-\/spec\endNode{}\Node%
+{\def\Element%
+{0:2104}}(\Node%
+{\def\Element%
+{0:2105}}host\endNode{} \Node%
+{\def\Element%
+{0:2106}}db\endNode{} \Node%
+{\def\Element%
+{0:2107}}user\endNode{} \Node%
+{\def\Element%
+{0:2108}}password\endNode{} \Entity{amp}optional \Node%
+{\def\Element%
+{0:2109}}port\endNode{} \Node%
+{\def\Element%
+{0:2110}}options\endNode{} \Node%
+{\def\Element%
+{0:2111}}tty\endNode{})\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2112}}\Node%
+{\def\Element%
+{0:2113}}Description of connection-\/spec\endNode{}\Node%
+{\def\Element%
+{0:2114}}For every parameter in the connection-\/spec,
+           \Node%
+{\def\Element%
+{0:2115}}nil\endNode{} indicates that the PostgreSQL default
+           environment variables (see PostgreSQL documentation) will
+           be used, or if those are unset, the compiled-\/in defaults
+           of the C client library are used.\endNode{}\Node%
+{\def\Element%
+{0:2116}}\Node%
+{\def\Element%
+{0:2117}}\Node%
+{\def\Element%
+{0:2118}}\Node%
+{\def\Element%
+{0:2119}}host\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2120}}\Node%
+{\def\Element%
+{0:2121}}String representing the hostname or IP address
+                 the PostgreSQL server resides on.  Use the empty
+                 string to indicate a connection to localhost via
+                 Unix-\/Domain sockets instead of TCP/IP.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2122}}\Node%
+{\def\Element%
+{0:2123}}\Node%
+{\def\Element%
+{0:2124}}db\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2125}}\Node%
+{\def\Element%
+{0:2126}}String representing the name of the database on
+                 the server to connect to.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2127}}\Node%
+{\def\Element%
+{0:2128}}\Node%
+{\def\Element%
+{0:2129}}user\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2130}}\Node%
+{\def\Element%
+{0:2131}}String representing the user name to use for
+                 authentication.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2132}}\Node%
+{\def\Element%
+{0:2133}}\Node%
+{\def\Element%
+{0:2134}}password\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2135}}\Node%
+{\def\Element%
+{0:2136}}String representing the unencrypted password to
+                 use for authentication.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2137}}\Node%
+{\def\Element%
+{0:2138}}\Node%
+{\def\Element%
+{0:2139}}port\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2140}}\Node%
+{\def\Element%
+{0:2141}}String representing the port to use for
+                 communication with the PostgreSQL server.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2142}}\Node%
+{\def\Element%
+{0:2143}}\Node%
+{\def\Element%
+{0:2144}}options\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2145}}\Node%
+{\def\Element%
+{0:2146}}String representing further runtime options for
+                 the PostgreSQL server.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2147}}\Node%
+{\def\Element%
+{0:2148}}\Node%
+{\def\Element%
+{0:2149}}tty\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2150}}\Node%
+{\def\Element%
+{0:2151}}String representing the tty or file to use for
+                 debugging messages from the PostgreSQL server.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2152}}\Node%
+{\def\Element%
+{0:2153}}PostgreSQL Socket\endNode{}\Node%
+{\def\Element%
+{0:2154}}\Node%
+{\def\Element%
+{0:2155}}Libraries\endNode{}\Node%
+{\def\Element%
+{0:2156}}The PostgreSQL Socket back-\/end needs
+         \Node%
+{\def\Element%
+{0:2157}}no\endNode{} access to the PostgreSQL C
+         client library, since it communicates directly with the
+         PostgreSQL server using the published frontend/backend
+         protocol, version 2.0.  This eases installation and makes it
+         possible to dump CMU CL images containing CLSQL and this
+         backend, contrary to backends which require FFI code.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2158}}\Node%
+{\def\Element%
+{0:2159}}Initialization\endNode{}\Node%
+{\def\Element%
+{0:2160}}Use 
+         \Node%
+{\def\Element%
+{0:2161}}(mk:load-\/system :clsql-\/postgresql-\/socket)\endNode{}
+         to load the PostgreSQL Socket back-\/end.  The database type for the
+         PostgreSQL Socket back-\/end is 
+         \Node%
+{\def\Element%
+{0:2162}}:postgresql-\/socket\endNode{}.\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2163}}\Node%
+{\def\Element%
+{0:2164}}Connection Specification\endNode{}\Node%
+{\def\Element%
+{0:2165}}\Node%
+{\def\Element%
+{0:2166}}Syntax of connection-\/spec\endNode{}\Node%
+{\def\Element%
+{0:2167}}(\Node%
+{\def\Element%
+{0:2168}}host\endNode{} \Node%
+{\def\Element%
+{0:2169}}db\endNode{} \Node%
+{\def\Element%
+{0:2170}}user\endNode{} \Node%
+{\def\Element%
+{0:2171}}password\endNode{} \Entity{amp}optional \Node%
+{\def\Element%
+{0:2172}}port\endNode{} \Node%
+{\def\Element%
+{0:2173}}options\endNode{} \Node%
+{\def\Element%
+{0:2174}}tty\endNode{})\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2175}}\Node%
+{\def\Element%
+{0:2176}}Description of connection-\/spec\endNode{}\Node%
+{\def\Element%
+{0:2177}}\Node%
+{\def\Element%
+{0:2178}}\Node%
+{\def\Element%
+{0:2179}}\Node%
+{\def\Element%
+{0:2180}}host\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2181}}\Node%
+{\def\Element%
+{0:2182}}If this is a string, it represents the hostname or
+                 IP address the PostgreSQL server resides on.  In
+                 this case communication with the server proceeds via
+                 a TCP connection to the given host and port.\endNode{}\Node%
+{\def\Element%
+{0:2183}}                If this is a pathname, then it is assumed to name the
+                 directory that contains the server's Unix-\/Domain
+                 sockets.  The full name to the socket is then
+                 constructed from this and the port number passed,
+                 and communication will proceed via a connection to
+                 this unix-\/domain socket.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2184}}\Node%
+{\def\Element%
+{0:2185}}\Node%
+{\def\Element%
+{0:2186}}db\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2187}}\Node%
+{\def\Element%
+{0:2188}}String representing the name of the database on
+                 the server to connect to.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2189}}\Node%
+{\def\Element%
+{0:2190}}\Node%
+{\def\Element%
+{0:2191}}user\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2192}}\Node%
+{\def\Element%
+{0:2193}}String representing the user name to use for
+                 authentication.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2194}}\Node%
+{\def\Element%
+{0:2195}}\Node%
+{\def\Element%
+{0:2196}}password\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2197}}\Node%
+{\def\Element%
+{0:2198}}String representing the unencrypted password to
+                 use for authentication.  This can be the empty
+                 string if no password is required for
+                 authentication.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2199}}\Node%
+{\def\Element%
+{0:2200}}\Node%
+{\def\Element%
+{0:2201}}port\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2202}}\Node%
+{\def\Element%
+{0:2203}}Integer representing the port to use for
+                 communication with the PostgreSQL server.  This
+                 defaults to 5432.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2204}}\Node%
+{\def\Element%
+{0:2205}}\Node%
+{\def\Element%
+{0:2206}}options\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2207}}\Node%
+{\def\Element%
+{0:2208}}String representing further runtime options for
+                 the PostgreSQL server.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2209}}\Node%
+{\def\Element%
+{0:2210}}\Node%
+{\def\Element%
+{0:2211}}tty\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2212}}\Node%
+{\def\Element%
+{0:2213}}String representing the tty or file to use for
+                 debugging messages from the PostgreSQL server.\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2214}}\Node%
+{\def\Element%
+{0:2215}}\Node%
+{\def\Element%
+{0:2216}}This glossary is still very thinly populated, and not all
+      references in the main text have been properly linked and
+      coordinated with this glossary.  This will hopefully change in
+      future revisions.
+    \endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2217}}\Node%
+{\def\Element%
+{0:2218}}Active database\endNode{}\Node%
+{\def\Element%
+{0:2219}}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2220}}\Node%
+{\def\Element%
+{0:2221}}Connection\endNode{}\Node%
+{\def\Element%
+{0:2222}}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2223}}\Node%
+{\def\Element%
+{0:2224}}Closed Database\endNode{}\Node%
+{\def\Element%
+{0:2225}}\Node%
+{\def\Element%
+{0:2226}}      An object of type \Node%
+{\def\Element%
+{0:2227}}closed-\/database\endNode{}.  This is
+       in contrast to the terms connection, database, active
+       database or \Node%
+{\def\Element%
+{0:2228}}database object\endNode{}
+       which don't include objects which are closed database.
+      \endNode{}\endNode{}\endNode{}\Node%
+{\def\Element%
+{0:2229}}\Node%
+{\def\Element%
+{0:2230}}database\endNode{}\Node%
+{\def\Element%
+{0:2231}}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:GLOSS-FFI}}\Node%
+{\def\Element%
+{0:2233}}Foreign Function Interface 
+      (\Node%
+{\def\Element%
+{0:2234}}FFI\endNode{})
+    \endNode{}\Node%
+{\def\Element%
+{0:2235}}\Node%
+{\def\Element%
+{0:2236}}      An interface from Common Lisp to a external library which
+       contains compiled functions written in other programming
+       languages, typically C.
+      \endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:GLOSS-DATABASE-OBJECT}}\Node%
+{\def\Element%
+{0:2238}}Database Object\endNode{}\Node%
+{\def\Element%
+{0:2239}}\Node%
+{\def\Element%
+{0:2240}}An object of type \Node%
+{\def\Element%
+{0:2241}}database\endNode{}.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:GLOSS-FIELD-TYPES}}\Node%
+{\def\Element%
+{0:2243}}Field Types Specifier\endNode{}\Node%
+{\def\Element%
+{0:2244}}\Node%
+{\def\Element%
+{0:2245}}A value that specifies the type of each field in a query.\endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:GLOSS-SQL}}\Node%
+{\def\Element%
+{0:2247}}Structured Query Language
+      (\Node%
+{\def\Element%
+{0:2248}}SQL\endNode{})
+    \endNode{}\Node%
+{\def\Element%
+{0:2249}}\Node%
+{\def\Element%
+{0:2250}}      An ANSI standard language for storing and retrieving data
+       in a relational database.
+      \endNode{}\endNode{}\endNode{}\Node%
+{\def\Label%
+{0:GLOSS-SQL-EXPRESSION}}\Node%
+{\def\Element%
+{0:2252}}SQL Expression\endNode{}\Node%
+{\def\Element%
+{0:2253}}\Node%
+{\def\Element%
+{0:2254}}Either a string containing a valid SQL statement, or
+       an object of type \Node%
+{\def\Element%
+{0:2255}}sql-\/expression\endNode{}\Node%
+{\def\Element%
+{0:2256}}\Node%
+{\def\Element%
+{0:2257}}This has not been implemented yet, so only strings
+         are valid SQL expressions for the moment.\endNode{}\endNode{}
+      \endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\endNode{}\endFOT{}
\ No newline at end of file