r11229: new doc
[clsql.git] / doc / ref-conditions.xml
1 <?xml version='1.0' ?>
2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
4 <!ENTITY % myents SYSTEM "entities.inc">
5 %myents;
6 ]>
7
8 <!-- Condition System --> 
9
10 <reference id="ref-conditions"> 
11   <title>CLSQL Condition System</title> 
12   <partintro>
13     <para>
14       &clsql; provides and uses a condition system in which all errors
15       and warnings are of type <link
16       linkend="sql-condition"><errortype>sql-condition</errortype></link>. This
17       section describes the various subclasses of <link
18       linkend="sql-condition"><errortype>sql-condition</errortype></link>
19       defined by &clsql;. Details are also provided for how they are
20       used in &clsql; and intended to be signalled in user
21       code. Finally, slot accessors for some of the condition types
22       are described.
23     </para>
24   </partintro>
25
26   <refentry id="backend-warning-behavior">
27     <refmeta>
28       <refentrytitle>*BACKEND-WARNING-BEHAVIOR*</refentrytitle>
29     </refmeta>
30     <refnamediv>
31       <refname>*BACKEND-WARNING-BEHAVIOR*</refname>
32       <refpurpose>Controls behaviour on warnings from underlying RDBMS.</refpurpose>
33       <refclass>Variable</refclass>
34     </refnamediv>
35     <refsect1>
36       <title>Value Type</title>
37       <para>
38         Meaningful values are <symbol>:warn</symbol>,
39         <symbol>:error</symbol>, <symbol>:ignore</symbol> and &nil;.
40       </para> 
41     </refsect1>
42     <refsect1>
43       <title>Initial Value</title>
44       <para><symbol>:warn</symbol></para>
45     </refsect1>
46     <refsect1>
47       <title>Description</title>
48       <para>
49         Action to perform on warning messages
50         from backend. Default is to <symbol>:warn</symbol>. May also be
51         set to <symbol>:error</symbol> to signal an error or
52         <symbol>:ignore</symbol> or &nil; to silently ignore the
53         warning.
54       </para>
55     </refsect1>
56     <refsect1>
57       <title>Examples</title>
58       <screen>
59         <!-- examples --> 
60       </screen>
61     </refsect1>
62     <refsect1>
63       <title>Affected By</title>
64       <para>None.</para>
65     </refsect1>
66     <refsect1>
67       <title>See Also</title>
68       <para>None.</para>
69     </refsect1>
70     <refsect1>
71       <title>Notes</title>
72       <para><symbol>*backend-warning-behaviour*</symbol> is a &clsql;
73       extension.</para>
74     </refsect1>
75   </refentry>
76   
77   <refentry id="sql-condition">
78     <refmeta>
79       <refentrytitle>SQL-CONDITION</refentrytitle>
80     </refmeta>
81     <refnamediv>
82       <refname>SQL-CONDITION</refname>
83       <refpurpose>the super-type of all
84       &clsql;-specific
85       conditions</refpurpose>
86       <refclass>Condition Type</refclass>
87     </refnamediv>
88     <refsect1>
89       <title>Class Precedence List</title>
90       <para>
91         <simplelist type="inline">
92           <member><link linkend="sql-condition"><errortype>sql-condition</errortype></link></member>
93           <member><errortype>condition</errortype></member>
94           <member><errortype>t</errortype></member>
95         </simplelist>
96       </para>
97     </refsect1>
98     <refsect1>
99       <title>Description</title> 
100       <para> 
101         This is the super-type of all &clsql;-specific conditions
102         defined by &clsql;, or any of it's database-specific
103         interfaces.  There are no defined initialization arguments nor
104         any accessors.
105       </para>
106     </refsect1>
107     <refsect1>
108       <title>Notes</title>
109       <para><errortype>sql-condition</errortype> is a &clsql;
110       extension.</para>
111     </refsect1>
112   </refentry>
113
114   <refentry id="sql-error">
115     <refmeta>
116       <refentrytitle>SQL-ERROR</refentrytitle>
117     </refmeta>
118     <refnamediv>
119       <refname>SQL-ERROR</refname>
120       <refpurpose>the super-type of all
121       &clsql;-specific
122       errors</refpurpose>
123       <refclass>Condition Type</refclass>
124     </refnamediv>
125     <refsect1>
126       <title>Class Precedence List</title>
127       <para>
128         <simplelist type="inline">
129           <member><link linkend="sql-error"><errortype>sql-error</errortype></link></member>
130           <member><errortype>simple-error</errortype></member>
131           <member><errortype>simple-condition</errortype></member>
132           <member><errortype>error</errortype></member>
133           <member><errortype>serious-condition</errortype></member>
134           <member><link linkend="sql-condition"><errortype>sql-condition</errortype></link></member>
135           <member><errortype>condition</errortype></member>
136           <member><errortype>t</errortype></member>
137         </simplelist>
138       </para>
139     </refsect1>
140     <refsect1>
141       <title>Description</title>
142       <para>
143         This is the super-type of all &clsql;-specific conditions that
144         represent errors, as defined by &clsql;, or any of it's
145         database-specific interfaces.  There are no defined
146         initialization arguments nor any accessors.
147       </para>
148     </refsect1>
149     <refsect1>
150       <title>Notes</title>
151       <para><errortype>sql-error</errortype> is a &clsql; extension.</para>
152     </refsect1>
153   </refentry>
154
155   <refentry id="sql-warning">
156     <refmeta>
157       <refentrytitle>SQL-WARNING</refentrytitle>
158     </refmeta>
159     <refnamediv>
160       <refname>SQL-WARNING</refname>
161       <refpurpose>the super-type of all
162       &clsql;-specific
163       warnings</refpurpose>
164       <refclass>Condition Type</refclass>
165     </refnamediv>
166     <refsect1>
167       <title>Class Precedence List</title>
168       <para>
169         <simplelist type="inline">
170           <member><link linkend="sql-warning"><errortype>sql-warning</errortype></link></member>
171           <member><errortype>warning</errortype></member>
172           <member><link linkend="sql-condition"><errortype>sql-condition</errortype></link></member>
173           <member><errortype>condition</errortype></member>
174           <member><errortype>t</errortype></member>
175         </simplelist>
176       </para>
177     </refsect1>
178     <refsect1>
179       <title>Description</title>
180       <para>
181         This is the super-type of all &clsql;-specific conditions that
182         represent warnings, as defined by &clsql;, or any of it's
183         database-specific interfaces.  There are no defined
184         initialization arguments nor any accessors.
185       </para>
186     </refsect1>
187     <refsect1>
188       <title>Notes</title>
189       <para><errortype>sql-warning</errortype> is a &clsql; extension.</para>
190     </refsect1>
191   </refentry>
192
193   <refentry id="sql-database-warning">
194     <refmeta>
195       <refentrytitle>SQL-DATABASE-WARNING</refentrytitle>
196     </refmeta>
197     <refnamediv>
198       <refname>SQL-DATABASE-WARNING</refname>
199       <refpurpose>Used to warn while accessing a 
200       &clsql; database.</refpurpose>
201       <refclass>Condition Type</refclass>
202     </refnamediv>
203     <refsect1>
204       <title>Class Precedence List</title>
205       <para>
206         <simplelist type="inline">
207           <member><link linkend="sql-database-warning"><errortype>sql-database-warning</errortype></link></member>
208           <member><link linkend="sql-warning"><errortype>sql-warning</errortype></link></member>
209           <member><errortype>warning</errortype></member>
210           <member><link linkend="sql-condition"><errortype>sql-condition</errortype></link></member>
211           <member><errortype>condition</errortype></member>
212           <member><errortype>t</errortype></member>
213         </simplelist>
214       </para>
215     </refsect1>
216     <refsect1>
217       <title>Description</title>
218       <para>
219         This condition represents warnings signalled while accessing
220         a database.
221       </para>
222       <para> 
223         The following initialization arguments and accessors exist:
224       </para>
225       <segmentedlist>
226         <segtitle>Initarg</segtitle>
227         <segtitle>Accessor</segtitle>
228         <segtitle>Description</segtitle>
229         <seglistitem>
230           <seg><symbol>:database</symbol></seg>
231           <seg><function>sql-warning-database</function></seg>
232           <seg>The database object that was involved in the
233           incident.</seg>
234         </seglistitem>
235       </segmentedlist>
236     </refsect1>
237     <refsect1>
238       <title>Notes</title>
239       <para><errortype>sql-database-warning</errortype> is a &clsql;
240       extension.</para>
241     </refsect1>
242   </refentry>
243
244   <!-- Specific Conditions -->
245
246   <refentry id="sql-user-error">
247     <refmeta>
248       <refentrytitle>SQL-USER-ERROR</refentrytitle>
249     </refmeta>
250     <refnamediv>
251       <refname>SQL-USER-ERROR</refname>
252       <refpurpose>condition representing errors because of invalid
253       parameters from the library user.</refpurpose>
254       <refclass>Condition Type</refclass>
255     </refnamediv>
256     <refsect1>
257       <title>Class Precedence List</title>
258       <para>
259         <simplelist type="inline">
260           <member><errortype>sql-user-error</errortype></member>
261           <member><link linkend="sql-error"><errortype>sql-error</errortype></link></member>
262           <member><errortype>simple-error</errortype></member>
263           <member><errortype>simple-condition</errortype></member>
264           <member><errortype>error</errortype></member>
265           <member><errortype>serious-condition</errortype></member>
266           <member><link linkend="sql-condition"><errortype>sql-condition</errortype></link></member>
267           <member><errortype>condition</errortype></member>
268           <member><errortype>t</errortype></member>
269         </simplelist>
270       </para>
271     </refsect1>
272     <refsect1>
273       <title>Description</title>
274       <para>
275         This condition represents errors that occur because the user
276         supplies invalid data to &clsql;.  This includes errors such
277         as an invalid format connection specification or an error in
278         the syntax for the <function>LOOP</function> macro extensions.
279       </para>
280       <para> 
281         The following initialization arguments and accessors exist:
282       </para>
283       <segmentedlist>
284         <segtitle>Initarg</segtitle>
285         <segtitle>Accessor</segtitle>
286         <segtitle>Description</segtitle>
287         <seglistitem>
288           <seg><symbol>:message</symbol></seg>
289           <seg><function>sql-user-error-message</function></seg>
290           <seg>The error message.</seg>
291         </seglistitem>
292       </segmentedlist>
293     </refsect1>
294     <refsect1>
295       <title>Notes</title>
296       <para>The slot accessor
297       <function>sql-user-error-message</function> is a &clsql;
298       extension.</para>
299     </refsect1>
300   </refentry>
301
302   <refentry id="sql-database-error">
303     <refmeta>
304       <refentrytitle>SQL-DATABASE-ERROR</refentrytitle>
305     </refmeta>
306     <refnamediv>
307       <refname>SQL-DATABASE-ERROR</refname>
308       <refpurpose>condition representing errors during query or
309       command execution</refpurpose>
310       <refclass>Condition Type</refclass>
311     </refnamediv>
312     <refsect1>
313       <title>Class Precedence List</title>
314       <para>
315         <simplelist type="inline">
316           <member><link linkend="sql-database-error"><errortype>sql-database-error</errortype></link></member>
317           <member><link linkend="sql-error"><errortype>sql-error</errortype></link></member>
318           <member><errortype>simple-error</errortype></member>
319           <member><errortype>simple-condition</errortype></member>
320           <member><errortype>error</errortype></member>
321           <member><errortype>serious-condition</errortype></member>
322           <member><link linkend="sql-condition"><errortype>sql-condition</errortype></link></member>
323           <member><errortype>condition</errortype></member>
324           <member><errortype>t</errortype></member>
325         </simplelist>
326       </para>
327     </refsect1>
328     <refsect1>
329       <title>Description</title>
330       <para>
331         This condition represents errors that occur while executing
332         SQL statements, either as part of query operations or command
333         execution, either explicitly or implicitly, as caused e.g. by
334         <function>with-transaction</function>.
335       </para>
336       <para>
337         The following initialization arguments and accessors exist:
338       </para>
339       <segmentedlist>
340         <segtitle>Initarg</segtitle>
341         <segtitle>Accessor</segtitle>
342         <segtitle>Description</segtitle>
343         <seglistitem>
344           <seg><symbol>:database</symbol></seg>
345           <seg><function>sql-error-database</function></seg>
346           <seg>The database object that was involved in the
347           incident.</seg>
348         </seglistitem>
349         <seglistitem>
350           <seg><symbol>:error-id</symbol></seg>
351           <seg><function>sql-error-error-id</function></seg>
352           <seg>The numeric or symbolic error specification
353           returned by the database back-end.  The values and
354           semantics of this are interface specific.</seg>
355         </seglistitem>
356         <seglistitem>
357           <seg><symbol>:secondary-error-id</symbol></seg>
358           <seg><function>sql-error-secondary-error-id</function></seg>
359           <seg>The secondary numeric or symbolic error specification
360           returned by the database back-end.  The values and
361           semantics of this are interface specific.</seg>
362         </seglistitem>
363         <seglistitem>
364           <seg><symbol>:message</symbol></seg>
365           <seg><function>sql-error-database-message</function></seg>
366           <seg>A string describing the problem that occurred,
367           possibly one returned by the database back-end.</seg>
368         </seglistitem>
369       </segmentedlist>
370     </refsect1>
371     <refsect1>
372       <title>Notes</title>
373       <para>
374         The slot accessor
375         <function>sql-error-database</function> is a &clsql;
376         extension.
377       </para>
378     </refsect1>
379   </refentry>
380
381   <refentry id="sql-connection-error">
382     <refmeta>
383       <refentrytitle>SQL-CONNECTION-ERROR</refentrytitle>
384     </refmeta>
385     <refnamediv>
386       <refname>SQL-CONNECTION-ERROR</refname>
387       <refpurpose>condition representing errors during
388       connection</refpurpose>
389       <refclass>Condition Type</refclass>
390     </refnamediv>
391     <refsect1>
392       <title>Class Precedence List</title>
393       <para>
394         <simplelist type="inline">
395           <member><link linkend="sql-connection-error"><errortype>sql-connection-error</errortype></link></member>
396           <member><link linkend="sql-database-error"><errortype>sql-database-error</errortype></link></member>
397           <member><link linkend="sql-error"><errortype>sql-error</errortype></link></member>
398           <member><errortype>simple-error</errortype></member>
399           <member><errortype>simple-condition</errortype></member>
400           <member><errortype>error</errortype></member>
401           <member><errortype>serious-condition</errortype></member>
402           <member><link linkend="sql-condition"><errortype>sql-condition</errortype></link></member>
403           <member><errortype>condition</errortype></member>
404           <member><errortype>t</errortype></member>
405         </simplelist>
406       </para>
407     </refsect1>
408     <refsect1>
409       <title>Description</title>
410       <para>
411         This condition represents errors that occur while trying to
412         connect to a database.
413       </para>
414       <para> 
415         The following initialization arguments and accessors exist:
416       </para>
417       <segmentedlist>
418         <segtitle>Initarg</segtitle>
419         <segtitle>Accessor</segtitle>
420         <segtitle>Description</segtitle>
421         <seglistitem>
422           <seg><symbol>:database-type</symbol></seg>
423           <seg><function>sql-error-database-type</function></seg>
424           <seg>Database type for the connection attempt</seg>
425         </seglistitem>
426         <seglistitem>
427           <seg><symbol>:connection-spec</symbol></seg>
428           <seg><function>sql-error-connection-spec</function></seg>
429           <seg>The connection specification used in the
430           connection attempt.</seg>
431         </seglistitem>
432         <seglistitem>
433           <seg><symbol>:database</symbol></seg>
434           <seg><function>sql-error-database</function></seg>
435           <seg>The database object that was involved in the
436           incident.</seg>
437         </seglistitem>
438         <seglistitem>
439           <seg><symbol>:error-id</symbol></seg>
440           <seg><function>sql-error-error-id</function></seg>
441           <seg>The numeric or symbolic error specification
442           returned by the database back-end.  The values and
443           semantics of this are interface specific.</seg>
444         </seglistitem>
445         <seglistitem>
446           <seg><symbol>:secondary-error-id</symbol></seg>
447           <seg><function>sql-error-secondary-error-id</function></seg>
448           <seg>The secondary numeric or symbolic error specification
449           returned by the database back-end.  The values and
450           semantics of this are interface specific.</seg>
451         </seglistitem>
452         <seglistitem>
453           <seg><symbol>:message</symbol></seg>
454           <seg><function>sql-database-error-error</function></seg>
455           <seg>A string describing the problem that occurred,
456           possibly one returned by the database back-end.</seg>
457         </seglistitem>
458       </segmentedlist>
459     </refsect1>
460     <refsect1>
461       <title>Notes</title>
462       <para>
463         The slot accessors
464         <function>sql-error-database</function>,
465         <function>sql-error-database-type</function> and
466         <function>sql-error-connection-spec</function> are
467         &clsql; extensions.
468       </para>
469     </refsect1>
470   </refentry>
471
472   <refentry id="sql-database-data-error">
473     <refmeta>
474       <refentrytitle>SQL-DATABASE-DATA-ERROR</refentrytitle>
475     </refmeta>
476     <refnamediv>
477       <refname>SQL-DATABASE-DATA-ERROR</refname>
478       <refpurpose>Used to signal an error with the SQL data passed
479       to a database.</refpurpose>
480       <refclass>Condition Type</refclass>
481     </refnamediv>
482     <refsect1>
483       <title>Class Precedence List</title>
484       <para>
485         <simplelist type="inline">
486           <member><errortype>sql-database-data-error</errortype></member>
487           <member><link linkend="sql-database-error"><errortype>sql-database-error</errortype></link></member>
488           <member><link linkend="sql-error"><errortype>sql-error</errortype></link></member>
489           <member><errortype>simple-error</errortype></member>
490           <member><errortype>simple-condition</errortype></member>
491           <member><errortype>error</errortype></member>
492           <member><errortype>serious-condition</errortype></member>
493           <member><link linkend="sql-condition"><errortype>sql-condition</errortype></link></member>
494           <member><errortype>condition</errortype></member>
495           <member><errortype>t</errortype></member>
496         </simplelist>
497       </para>
498     </refsect1>
499     <refsect1>
500       <title>Description</title>
501       <para>This condition represents errors that occur while
502       executing SQL statements, specifically as a result of
503       malformed SQL expressions. 
504       </para>
505       <para> 
506         The following initialization arguments and accessors exist:
507       </para>
508       <segmentedlist>
509         <segtitle>Initarg</segtitle>
510         <segtitle>Accessor</segtitle>
511         <segtitle>Description</segtitle>
512         <seglistitem>
513           <seg><symbol>:expression</symbol></seg>
514           <seg><function>sql-error-expression</function></seg>
515           <seg>The SQL expression whose execution caused the error.</seg>
516         </seglistitem>
517         <seglistitem>
518           <seg><symbol>:database</symbol></seg>
519           <seg><function>sql-error-database</function></seg>
520           <seg>The database object that was involved in the
521           incident.</seg>
522         </seglistitem>
523         <seglistitem>
524           <seg><symbol>:error-id</symbol></seg>
525           <seg><function>sql-error-error-id</function></seg>
526           <seg>The numeric or symbolic error specification
527           returned by the database back-end.  The values and
528           semantics of this are interface specific.</seg>
529         </seglistitem>
530         <seglistitem>
531           <seg><symbol>:secondary-error-id</symbol></seg>
532           <seg><function>sql-error-secondary-error-id</function></seg>
533           <seg>The secondary numeric or symbolic error specification
534           returned by the database back-end.  The values and
535           semantics of this are interface specific.</seg>
536         </seglistitem>
537         <seglistitem>
538           <seg><symbol>:message</symbol></seg>
539           <seg><function>sql-error-database-message</function></seg>
540           <seg>A string describing the problem that occurred,
541           possibly one returned by the database back-end.</seg>
542         </seglistitem>
543       </segmentedlist>
544     </refsect1>
545     <refsect1>
546       <title>Notes</title>
547       <para>
548         The slot accessors
549         <function>sql-error-database</function> and 
550         <function>sql-error-expression</function> are
551         &clsql; extensions.
552       </para>
553     </refsect1>
554   </refentry>
555
556   <refentry id="sql-temporary-error">
557     <refmeta>
558       <refentrytitle>SQL-TEMPORARY-ERROR</refentrytitle>
559     </refmeta>
560     <refnamediv>
561       <refname>SQL-TEMPORARY-ERROR</refname>
562       <refpurpose>Used to signal a temporary error in the database
563       backend.</refpurpose>
564       <refclass>Condition Type</refclass>
565     </refnamediv>
566     <refsect1>
567       <title>Class Precedence List</title>
568       <para>
569         <simplelist type="inline">
570           <member><errortype>sql-temporary-error</errortype></member>
571           <member><link linkend="sql-database-error"><errortype>sql-database-error</errortype></link></member>
572           <member><link linkend="sql-error"><errortype>sql-error</errortype></link></member>
573           <member><errortype>simple-error</errortype></member>
574           <member><errortype>simple-condition</errortype></member>
575           <member><errortype>error</errortype></member>
576           <member><errortype>serious-condition</errortype></member>
577           <member><link linkend="sql-condition"><errortype>sql-condition</errortype></link></member>
578           <member><errortype>condition</errortype></member>
579           <member><errortype>t</errortype></member>
580         </simplelist>
581       </para>
582     </refsect1>
583     <refsect1>
584       <title>Description</title>
585       <para>
586         This condition represents errors occurring when the database
587         cannot currently process a valid interaction because, for
588         example, it is still executing another command possibly issued
589         by another user.
590       </para>
591       <para> 
592         The following initialization arguments and accessors exist:
593       </para>
594       <segmentedlist>
595         <segtitle>Initarg</segtitle>
596         <segtitle>Accessor</segtitle>
597         <segtitle>Description</segtitle>
598         <seglistitem>
599           <seg><symbol>:database</symbol></seg>
600           <seg><function>sql-error-database</function></seg>
601           <seg>The database object that was involved in the
602           incident.</seg>
603         </seglistitem>
604         <seglistitem>
605           <seg><symbol>:error-id</symbol></seg>
606           <seg><function>sql-error-error-id</function></seg>
607           <seg>The numeric or symbolic error specification
608           returned by the database back-end.  The values and
609           semantics of this are interface specific.</seg>
610         </seglistitem>
611         <seglistitem>
612           <seg><symbol>:secondary-error-id</symbol></seg>
613           <seg><function>sql-error-secondary-error-id</function></seg>
614           <seg>The secondary numeric or symbolic error specification
615           returned by the database back-end.  The values and
616           semantics of this are interface specific.</seg>
617         </seglistitem>
618         <seglistitem>
619           <seg><symbol>:message</symbol></seg>
620           <seg><function>sql-error-database-message</function></seg>
621           <seg>A string describing the problem that occurred,
622           possibly one returned by the database back-end.</seg>
623         </seglistitem>
624       </segmentedlist>
625     </refsect1>
626     <refsect1>
627       <title>Notes</title>
628       <para>
629         The slot accessor
630         <function>sql-error-database</function> is a &clsql;
631         extension.
632       </para>
633     </refsect1>
634   </refentry>
635
636   <refentry id="sql-timeout-error">
637     <refmeta>
638       <refentrytitle>SQL-TIMEOUT-ERROR</refentrytitle>
639     </refmeta>
640     <refnamediv>
641       <refname>SQL-TIMEOUT-ERROR</refname>
642       <refpurpose>condition representing errors when a connection
643       times out.</refpurpose>
644       <refclass>Condition Type</refclass>
645     </refnamediv>
646     <refsect1>
647       <title>Class Precedence List</title>
648       <para>
649         <simplelist type="inline">
650           <member><link linkend="sql-connection-error"><errortype>sql-connection-error</errortype></link></member>
651           <member><link linkend="sql-database-error"><errortype>sql-database-error</errortype></link></member>
652           <member><link linkend="sql-error"><errortype>sql-error</errortype></link></member>
653           <member><errortype>simple-error</errortype></member>
654           <member><errortype>simple-condition</errortype></member>
655           <member><errortype>error</errortype></member>
656           <member><errortype>serious-condition</errortype></member>
657           <member><link linkend="sql-condition"><errortype>sql-condition</errortype></link></member>
658           <member><errortype>condition</errortype></member>
659           <member><errortype>t</errortype></member>
660         </simplelist>
661       </para>
662     </refsect1>
663     <refsect1>
664       <title>Description</title>
665       <para>This condition represents errors that occur when the
666       database times out while processing some operation. The
667       following initialization arguments and accessors exist:</para>
668       <segmentedlist>
669         <segtitle>Initarg</segtitle>
670         <segtitle>Accessor</segtitle>
671         <segtitle>Description</segtitle>
672         <seglistitem>
673           <seg><symbol>:database-type</symbol></seg>
674           <seg><function>sql-error-database-type</function></seg>
675           <seg>Database type for the connection attempt</seg>
676         </seglistitem>
677         <seglistitem>
678           <seg><symbol>:connection-spec</symbol></seg>
679           <seg><function>sql-error-connection-spec</function></seg>
680           <seg>The connection specification used in the
681           connection attempt.</seg>
682         </seglistitem>
683         <seglistitem>
684           <seg><symbol>:database</symbol></seg>
685           <seg><function>sql-error-database</function></seg>
686           <seg>The database object that was involved in the
687           incident.</seg>
688         </seglistitem>
689         <seglistitem>
690           <seg><symbol>:error-id</symbol></seg>
691           <seg><function>sql-error-error-id</function></seg>
692           <seg>The numeric or symbolic error specification
693           returned by the database back-end.  The values and
694           semantics of this are interface specific.</seg>
695         </seglistitem>
696         <seglistitem>
697           <seg><symbol>:secondary-error-id</symbol></seg>
698           <seg><function>sql-error-secondary-error-id</function></seg>
699           <seg>The secondary numeric or symbolic error specification
700           returned by the database back-end.  The values and
701           semantics of this are interface specific.</seg>
702         </seglistitem>
703         <seglistitem>
704           <seg><symbol>:message</symbol></seg>
705           <seg><function>sql-error-database-message</function></seg>
706           <seg>A string describing the problem that occurred,
707           possibly one returned by the database back-end.</seg>
708         </seglistitem>
709       </segmentedlist>
710     </refsect1>
711     <refsect1>
712       <title>Notes</title>
713       <para>
714         The slot accessors
715         <function>sql-error-database</function>,
716         <function>sql-error-database-type</function> and
717         <function>sql-error-connection-spec</function> are
718         &clsql; extensions.
719       </para>
720     </refsect1>
721   </refentry>
722
723   <refentry id="sql-fatal-error">
724     <refmeta>
725       <refentrytitle>SQL-FATAL-ERROR</refentrytitle>
726     </refmeta>
727     <refnamediv>
728       <refname>SQL-FATAL-ERROR</refname>
729       <refpurpose>condition representing a fatal error in a database
730       connection</refpurpose>
731       <refclass>Condition Type</refclass>
732     </refnamediv>
733     <refsect1>
734       <title>Class Precedence List</title>
735       <para>
736         <simplelist type="inline">
737           <member><link linkend="sql-connection-error"><errortype>sql-connection-error</errortype></link></member>
738           <member><link linkend="sql-database-error"><errortype>sql-database-error</errortype></link></member>
739           <member><link linkend="sql-error"><errortype>sql-error</errortype></link></member>
740           <member><errortype>simple-error</errortype></member>
741           <member><errortype>simple-condition</errortype></member>
742           <member><errortype>error</errortype></member>
743           <member><errortype>serious-condition</errortype></member>
744           <member><link linkend="sql-condition"><errortype>sql-condition</errortype></link></member>
745           <member><errortype>condition</errortype></member>
746           <member><errortype>t</errortype></member>
747         </simplelist>
748       </para>
749     </refsect1>
750     <refsect1>
751       <title>Description</title>
752       <para>This condition represents errors occurring when the
753       database connection is no longer usable. 
754       </para>
755       <para> 
756         The following initialization arguments and accessors exist:
757       </para>
758       <segmentedlist>
759         <segtitle>Initarg</segtitle>
760         <segtitle>Accessor</segtitle>
761         <segtitle>Description</segtitle>
762         <seglistitem>
763           <seg><symbol>:database-type</symbol></seg>
764           <seg><function>sql-error-database-type</function></seg>
765           <seg>Database type for the connection attempt</seg>
766         </seglistitem>
767         <seglistitem>
768           <seg><symbol>:connection-spec</symbol></seg>
769           <seg><function>sql-error-connection-spec</function></seg>
770           <seg>The connection specification used in the
771           connection attempt.</seg>
772         </seglistitem>
773         <seglistitem>
774           <seg><symbol>:database</symbol></seg>
775           <seg><function>sql-error-database</function></seg>
776           <seg>The database object that was involved in the
777           incident.</seg>
778         </seglistitem>
779         <seglistitem>
780           <seg><symbol>:error-id</symbol></seg>
781           <seg><function>sql-error-error-id</function></seg>
782           <seg>The numeric or symbolic error specification
783           returned by the database back-end.  The values and
784           semantics of this are interface specific.</seg>
785         </seglistitem>
786         <seglistitem>
787           <seg><symbol>:secondary-error-id</symbol></seg>
788           <seg><function>sql-error-secondary-error-id</function></seg>
789           <seg>The secondary numeric or symbolic error specification
790           returned by the database back-end.  The values and
791           semantics of this are interface specific.</seg>
792         </seglistitem>
793         <seglistitem>
794           <seg><symbol>:message</symbol></seg>
795           <seg><function>sql-error-database-message</function></seg>
796           <seg>A string describing the problem that occurred,
797           possibly one returned by the database back-end.</seg>
798         </seglistitem>
799       </segmentedlist>
800     </refsect1>
801     <refsect1>
802       <title>Notes</title>
803       <para>
804         The slot accessors
805         <function>sql-error-database</function>,
806         <function>sql-error-database-type</function> and
807         <function>sql-error-connection-spec</function> are
808         &clsql; extensions.
809       </para>
810     </refsect1>
811   </refentry>
812   
813 </reference>