0d708b7e5729e2182a499a35ce425892cf5f1187
[clsql.git] / doc / ref-transaction.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 <!-- Transaction handling --> 
9 <reference id="ref-transaction"> 
10   <title>Transaction Handling</title> 
11     <partintro>
12     <para>
13       <!-- introduction --> 
14     </para>
15   </partintro>
16
17     <refentry id="add-transaction-commit-hook">
18     <refnamediv>
19       <refname>ADD-TRANSACTION-COMMIT-HOOK</refname>
20       <refpurpose><!-- purpose --></refpurpose>
21       <refclass>Function</refclass>
22     </refnamediv>
23     <refsect1>
24       <title>Syntax</title>
25       <synopsis>
26       <function> (ADD-TRANSACTION-COMMIT-HOOK DATABASE COMMIT-HOOK) [function]</function> => <returnvalue><!-- result --></returnvalue></synopsis>
27     </refsect1>
28     <refsect1>
29       <title>Arguments and Values</title>
30       <variablelist>
31         <!-- arguments and values --> 
32       </variablelist>
33     </refsect1>
34     <refsect1>
35       <title>Description</title>
36       <para>
37         <!-- description --> 
38       </para>
39     </refsect1>
40     <refsect1>
41       <title>Examples</title>
42       <screen>
43         <!-- examples --> 
44       </screen>
45     </refsect1>
46     <refsect1>
47       <title>Side Effects</title>
48       <para>
49         <!-- side effects --> 
50       </para>
51     </refsect1>
52     <refsect1>
53       <title>Affected by</title>
54       <para>
55         <simplelist>
56           <!-- affected by --> 
57         </simplelist>
58       </para>
59     </refsect1>
60     <refsect1>
61       <title>Exceptional Situations</title>
62       <para>
63         <!-- execeptional situations -->
64       </para>
65     </refsect1>
66     <refsect1>
67       <title>See Also</title>
68       <para>
69         <simplelist>
70           <!-- see also list here --> 
71         </simplelist>
72       </para>
73     </refsect1>
74     <refsect1>
75       <title>Notes</title>
76       <para>
77         <!-- notes here --> 
78       </para>
79     </refsect1>
80   </refentry>
81
82   <refentry id="add-transaction-rollback-hook">
83     <refnamediv>
84       <refname>ADD-TRANSACTION-ROLLBACK-HOOK</refname>
85       <refpurpose><!-- purpose --></refpurpose>
86       <refclass>Function</refclass>
87     </refnamediv>
88     <refsect1>
89       <title>Syntax</title>
90       <synopsis>
91       <function> (ADD-TRANSACTION-ROLLBACK-HOOK DATABASE ROLLBACK-HOOK) [function]</function> => <returnvalue><!-- result --></returnvalue></synopsis>
92     </refsect1>
93     <refsect1>
94       <title>Arguments and Values</title>
95       <variablelist>
96         <!-- arguments and values --> 
97       </variablelist>
98     </refsect1>
99     <refsect1>
100       <title>Description</title>
101       <para>
102         <!-- description --> 
103       </para>
104     </refsect1>
105     <refsect1>
106       <title>Examples</title>
107       <screen>
108         <!-- examples --> 
109       </screen>
110     </refsect1>
111     <refsect1>
112       <title>Side Effects</title>
113       <para>
114         <!-- side effects --> 
115       </para>
116     </refsect1>
117     <refsect1>
118       <title>Affected by</title>
119       <para>
120         <simplelist>
121           <!-- affected by --> 
122         </simplelist>
123       </para>
124     </refsect1>
125     <refsect1>
126       <title>Exceptional Situations</title>
127       <para>
128         <!-- execeptional situations -->
129       </para>
130     </refsect1>
131     <refsect1>
132       <title>See Also</title>
133       <para>
134         <simplelist>
135           <!-- see also list here --> 
136         </simplelist>
137       </para>
138     </refsect1>
139     <refsect1>
140       <title>Notes</title>
141       <para>
142         <!-- notes here --> 
143       </para>
144     </refsect1>
145   </refentry>
146
147   <refentry id="commit">
148     <refnamediv>
149       <refname>COMMIT</refname>
150       <refpurpose><!-- purpose --></refpurpose>
151       <refclass>Function</refclass>
152     </refnamediv>
153     <refsect1>
154       <title>Syntax</title>
155       <synopsis>
156       <function> (COMMIT &amp;KEY (DATABASE *DEFAULT-DATABASE*)) [function]</function> => <returnvalue><!-- result --></returnvalue></synopsis>
157     </refsect1>
158     <refsect1>
159       <title>Arguments and Values</title>
160       <variablelist>
161         <!-- arguments and values --> 
162       </variablelist>
163     </refsect1>
164     <refsect1>
165       <title>Description</title>
166       <para>If DATABASE, which defaults to *DEFAULT-DATABASE*, is
167       currently within the scope of a transaction, commits changes
168       made since the transaction began.
169       </para>
170     </refsect1>
171     <refsect1>
172       <title>Examples</title>
173       <screen>
174         <!-- examples -->
175       </screen>
176     </refsect1>
177     <refsect1>
178       <title>Side Effects</title>
179       <para>
180         <!-- side effects --> 
181       </para>
182     </refsect1>
183     <refsect1>
184       <title>Affected by</title>
185       <para>
186         <simplelist>
187           <!-- affected by --> 
188         </simplelist>
189       </para>
190     </refsect1>
191     <refsect1>
192       <title>Exceptional Situations</title>
193       <para>
194         <!-- execeptional situations -->
195       </para>
196     </refsect1>
197     <refsect1>
198       <title>See Also</title>
199       <para>
200         <simplelist>
201           <!-- see also --> 
202         </simplelist>
203       </para>
204     </refsect1>
205     <refsect1>
206       <title>Notes</title>
207       <para>
208         <!-- notes --> 
209       </para>
210     </refsect1>
211   </refentry>
212
213
214   <refentry id="in-transaction-p">
215     <refnamediv>
216       <refname>IN-TRANSACTION-P</refname>
217       <refpurpose><!-- purpose --></refpurpose>
218       <refclass>Function</refclass>
219     </refnamediv>
220     <refsect1>
221       <title>Syntax</title>
222       <synopsis>
223       <function> (IN-TRANSACTION-P &amp;KEY (DATABASE *DEFAULT-DATABASE*)) [function]</function> => <returnvalue><!-- result --></returnvalue></synopsis>
224     </refsect1>
225     <refsect1>
226       <title>Arguments and Values</title>
227       <variablelist>
228         <!-- arguments and values --> 
229       </variablelist>
230     </refsect1>
231     <refsect1>
232       <title>Description</title>
233       <para>A predicate to test whether DATABASE, which
234       defaults to *DEFAULT-DATABASE*, is currently within
235       the scope of a transaction.
236       </para>
237     </refsect1>
238     <refsect1>
239       <title>Examples</title>
240       <screen>
241         <!-- examples -->
242       </screen>
243     </refsect1>
244     <refsect1>
245       <title>Side Effects</title>
246       <para>
247         <!-- side effects --> 
248       </para>
249     </refsect1>
250     <refsect1>
251       <title>Affected by</title>
252       <para>
253         <simplelist>
254           <!-- affected by --> 
255         </simplelist>
256       </para>
257     </refsect1>
258     <refsect1>
259       <title>Exceptional Situations</title>
260       <para>
261         <!-- execeptional situations -->
262       </para>
263     </refsect1>
264     <refsect1>
265       <title>See Also</title>
266       <para>
267         <simplelist>
268           <!-- see also --> 
269         </simplelist>
270       </para>
271     </refsect1>
272     <refsect1>
273       <title>Notes</title>
274       <para>
275         <!-- notes --> 
276       </para>
277     </refsect1>
278   </refentry>
279
280   <refentry id="rollback">
281     <refnamediv>
282       <refname>ROLLBACK</refname>
283       <refpurpose><!-- purpose --></refpurpose>
284       <refclass>Function</refclass>
285     </refnamediv>
286     <refsect1>
287       <title>Syntax</title>
288       <synopsis>
289       <function> (ROLLBACK &amp;KEY (DATABASE *DEFAULT-DATABASE*)) [function]</function> => <returnvalue><!-- result --></returnvalue></synopsis>
290     </refsect1>
291     <refsect1>
292       <title>Arguments and Values</title>
293       <variablelist>
294         <!-- arguments and values --> 
295       </variablelist>
296     </refsect1>
297     <refsect1>
298       <title>Description</title>
299       <para>If DATABASE, which defaults to *DEFAULT-DATABASE*, is
300       currently within the scope of a transaction, rolls back changes
301       made since the transaction began.
302       </para>
303     </refsect1>
304     <refsect1>
305       <title>Examples</title>
306       <screen>
307         <!-- examples -->
308       </screen>
309     </refsect1>
310     <refsect1>
311       <title>Side Effects</title>
312       <para>
313         <!-- side effects --> 
314       </para>
315     </refsect1>
316     <refsect1>
317       <title>Affected by</title>
318       <para>
319         <simplelist>
320           <!-- affected by --> 
321         </simplelist>
322       </para>
323     </refsect1>
324     <refsect1>
325       <title>Exceptional Situations</title>
326       <para>
327         <!-- execeptional situations -->
328       </para>
329     </refsect1>
330     <refsect1>
331       <title>See Also</title>
332       <para>
333         <simplelist>
334           <!-- see also --> 
335         </simplelist>
336       </para>
337     </refsect1>
338     <refsect1>
339       <title>Notes</title>
340       <para>
341         <!-- notes --> 
342       </para>
343     </refsect1>
344   </refentry>
345
346   <refentry id="set-autocommit">
347     <refnamediv>
348       <refname>SET-AUTOCOMMIT</refname>
349       <refpurpose><!-- purpose --></refpurpose>
350       <refclass>Function</refclass>
351     </refnamediv>
352     <refsect1>
353       <title>Syntax</title>
354       <synopsis>
355       <function> (SET-AUTOCOMMIT VALUE &amp;KEY (DATABASE *DEFAULT-DATABASE*)) [function]</function> => <returnvalue><!-- result --></returnvalue></synopsis>
356     </refsect1>
357     <refsect1>
358       <title>Arguments and Values</title>
359       <variablelist>
360         <!-- arguments and values --> 
361       </variablelist>
362     </refsect1>
363     <refsect1>
364       <title>Description</title>
365       <para>Sets autocommit on or off. Returns old value of of autocommit flag.
366       </para>
367     </refsect1>
368     <refsect1>
369       <title>Examples</title>
370       <screen>
371         <!-- examples -->
372       </screen>
373     </refsect1>
374     <refsect1>
375       <title>Side Effects</title>
376       <para>
377         <!-- side effects --> 
378       </para>
379     </refsect1>
380     <refsect1>
381       <title>Affected by</title>
382       <para>
383         <simplelist>
384           <!-- affected by --> 
385         </simplelist>
386       </para>
387     </refsect1>
388     <refsect1>
389       <title>Exceptional Situations</title>
390       <para>
391         <!-- execeptional situations -->
392       </para>
393     </refsect1>
394     <refsect1>
395       <title>See Also</title>
396       <para>
397         <simplelist>
398           <!-- see also --> 
399         </simplelist>
400       </para>
401     </refsect1>
402     <refsect1>
403       <title>Notes</title>
404       <para>
405         <!-- notes --> 
406       </para>
407     </refsect1>
408   </refentry>
409
410
411
412
413   <refentry id="start-transaction">
414     <refnamediv>
415       <refname>START-TRANSACTION</refname>
416       <refpurpose><!-- purpose --></refpurpose>
417       <refclass>Function</refclass>
418     </refnamediv>
419     <refsect1>
420       <title>Syntax</title>
421       <synopsis>
422       <function> (START-TRANSACTION &amp;KEY (DATABASE *DEFAULT-DATABASE*)) [function]</function> => <returnvalue><!-- result --></returnvalue></synopsis>
423     </refsect1>
424     <refsect1>
425       <title>Arguments and Values</title>
426       <variablelist>
427         <!-- arguments and values --> 
428       </variablelist>
429     </refsect1>
430     <refsect1>
431       <title>Description</title>
432       <para>Starts a transaction block on DATABASE which defaults to
433       *DEFAULT-DATABASE* and which continues until ROLLBACK or COMMIT
434       are called.
435       </para>
436     </refsect1>
437     <refsect1>
438       <title>Examples</title>
439       <screen>
440         <!-- examples -->
441       </screen>
442     </refsect1>
443     <refsect1>
444       <title>Side Effects</title>
445       <para>
446         <!-- side effects --> 
447       </para>
448     </refsect1>
449     <refsect1>
450       <title>Affected by</title>
451       <para>
452         <simplelist>
453           <!-- affected by --> 
454         </simplelist>
455       </para>
456     </refsect1>
457     <refsect1>
458       <title>Exceptional Situations</title>
459       <para>
460         <!-- execeptional situations -->
461       </para>
462     </refsect1>
463     <refsect1>
464       <title>See Also</title>
465       <para>
466         <simplelist>
467           <!-- see also --> 
468         </simplelist>
469       </para>
470     </refsect1>
471     <refsect1>
472       <title>Notes</title>
473       <para>
474         <!-- notes --> 
475       </para>
476     </refsect1>
477   </refentry>
478
479   <refentry id="with-transaction">
480     <refnamediv>
481       <refname>WITH-TRANSACTION</refname>
482       <refpurpose><!-- purpose --></refpurpose>
483       <refclass>Function</refclass>
484     </refnamediv>
485     <refsect1>
486       <title>Syntax</title>
487       <synopsis>
488       <function> (WITH-TRANSACTION &amp;KEY (DATABASE '*DEFAULT-DATABASE*) &amp;REST BODY) [macro]</function> => <returnvalue><!-- result --></returnvalue></synopsis>
489     </refsect1>
490     <refsect1>
491       <title>Arguments and Values</title>
492       <variablelist>
493         <!-- arguments and values --> 
494       </variablelist>
495     </refsect1>
496     <refsect1>
497       <title>Description</title>
498       <para>Starts a transaction in the database
499       specified by DATABASE, which is *DEFAULT-DATABASE* by
500       default, and executes BODY within that transaction. If
501       BODY aborts or throws, DATABASE is rolled back and
502       otherwise the transaction is committed.
503       </para>
504     </refsect1>
505     <refsect1>
506       <title>Examples</title>
507       <screen>
508         <!-- examples -->
509       </screen>
510     </refsect1>
511     <refsect1>
512       <title>Side Effects</title>
513       <para>
514         <!-- side effects --> 
515       </para>
516     </refsect1>
517     <refsect1>
518       <title>Affected by</title>
519       <para>
520         <simplelist>
521           <!-- affected by --> 
522         </simplelist>
523       </para>
524     </refsect1>
525     <refsect1>
526       <title>Exceptional Situations</title>
527       <para>
528         <!-- execeptional situations -->
529       </para>
530     </refsect1>
531     <refsect1>
532       <title>See Also</title>
533       <para>
534         <simplelist>
535           <!-- see also --> 
536         </simplelist>
537       </para>
538     </refsect1>
539     <refsect1>
540       <title>Notes</title>
541       <para>
542         <!-- notes --> 
543       </para>
544     </refsect1>
545   </refentry>
546   
547
548 </reference>