From 0efd6e14cc43ca2eafec5ad928d382e9a9af35be Mon Sep 17 00:00:00 2001 From: Hans Dijkema Date: Mon, 29 Jun 2026 09:49:27 +0200 Subject: [PATCH] transactions expanded. --- keystore.rkt | 19 +++++++++++++++++++ scrbl/keystore.scrbl | 17 ++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/keystore.rkt b/keystore.rkt index cdb2444..f48651a 100644 --- a/keystore.rkt +++ b/keystore.rkt @@ -21,6 +21,9 @@ ks-key-count ks-transaction ks-commit + ks-begin-transaction + ks-end-transaction + ks-abort-transaction ) (define-struct keystore @@ -123,6 +126,22 @@ (query-exec (keystore-dbh ks) "BEGIN") #t) +(define/contract (ks-begin-transaction ks) + (-> keystore? boolean?) + (query-exec (keystore-dbh ks) "BEGIN") + #t) + +(define/contract (ks-end-transaction ks) + (-> keystore? boolean?) + (query-exec (keystore-dbh ks) "COMMIT") + #t) + +(define/contract (ks-abort-transaction ks) + (-> keystore? boolean?) + (query-exec (keystore-dbh ks) "ROLLBACK") + #t) + + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Internal working ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/scrbl/keystore.scrbl b/scrbl/keystore.scrbl index c6a33d0..6ae20e6 100644 --- a/scrbl/keystore.scrbl +++ b/scrbl/keystore.scrbl @@ -134,7 +134,22 @@ it will do a "BEGIN/ROLLBACK" abd re-raise the exception. Commits (part of a transaction) using COMMIT/BEGIN. Fits in a @tt{ks-transaction} form. -} +} + +@defproc[(ks-begin-transaction [ks keystore?]) boolean?]{ + +Begins a transaction with "BEGIN". +} + +@defproc[(ks-end-transaction [ks keystore?]) boolean?]{ + +Commits a transaction with "COMMIT". +} + +@defproc[(ks-abort-transaction [ks keystore?]) boolean?]{ + +Aborts a transaction with "ROLLBACK". +} @section{Examples}