Update of /project/elephant/cvsroot/elephant/src/db-bdb In directory clnet:/tmp/cvs-serv31505/src/db-bdb
Modified Files: bdb-transactions.lisp berkeley-db.lisp package.lisp Log Message: Changed transaction protocol to better support multiple-stores. Should only effect BDB and not SQL, migration and upgrade fixes, some more debug support; green on Allegro/MacOS BDB and SQlite3
--- /project/elephant/cvsroot/elephant/src/db-bdb/bdb-transactions.lisp 2007/02/14 04:36:10 1.7 +++ /project/elephant/cvsroot/elephant/src/db-bdb/bdb-transactions.lisp 2007/02/16 23:02:51 1.8 @@ -40,14 +40,15 @@ :txn-sync txn-sync)))) (declare (type pointer-void txn)) (let ((result - (let ((*current-transaction* txn)) - (declare (special *current-transaction*)) + (let ((*current-transaction* (make-transaction-record sc txn)) + (*store-controller* sc)) + (declare (special *current-transaction* *store-controller*)) (catch 'transaction (unwind-protect (prog1 (funcall txn-fn) (db-transaction-commit txn :txn-nosync txn-nosync - :txn-sync txn-sync) + :txn-sync txn-sync) (setq success t)) (unless success (db-transaction-abort txn))))))) --- /project/elephant/cvsroot/elephant/src/db-bdb/berkeley-db.lisp 2007/02/02 23:51:58 1.7 +++ /project/elephant/cvsroot/elephant/src/db-bdb/berkeley-db.lisp 2007/02/16 23:02:51 1.8 @@ -73,7 +73,9 @@ )
(defmacro txn-default (dvar) - `(if ,dvar ,dvar +NULL-VOID+)) + (let ((dv (gensym))) + `(let ((,dv ,dvar)) + (if ,dv (transaction-object ,dv) +NULL-VOID+))))
;; ;; Constants and Flags --- /project/elephant/cvsroot/elephant/src/db-bdb/package.lisp 2007/02/16 07:11:02 1.5 +++ /project/elephant/cvsroot/elephant/src/db-bdb/package.lisp 2007/02/16 23:02:51 1.6 @@ -19,6 +19,10 @@
(in-package :cl-user)
+(defpackage sleepycat + (:documentation "For legacy upgrades") + (:use common-lisp)) + (defpackage db-bdb (:documentation "A low-level UFFI-based interface to Berkeley DB to implement the elephant front-end framework. Uses the