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