--- /dev/null
+\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