From 8bc3c5c67e678d004331fa393f13171949c2b74c Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Tue, 23 Apr 2002 21:31:51 +0000 Subject: [PATCH] r1793: *** empty log message *** --- doc/dsssl/print/docbook.tex | 5576 ----------------------------------- 1 file changed, 5576 deletions(-) delete mode 100644 doc/dsssl/print/docbook.tex diff --git a/doc/dsssl/print/docbook.tex b/doc/dsssl/print/docbook.tex deleted file mode 100644 index 74530ff..0000000 --- a/doc/dsssl/print/docbook.tex +++ /dev/null @@ -1,5576 +0,0 @@ -\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 -- 2.34.1