[elephant-cvs] CVS elephant/src/db-bdb

ieslick ieslick at common-lisp.net
Tue Feb 20 19:12:58 UTC 2007


Update of /project/elephant/cvsroot/elephant/src/db-bdb
In directory clnet:/tmp/cvs-serv13701/src/db-bdb

Modified Files:
	bdb-collections.lisp bdb-transactions.lisp libberkeley-db.def 
Log Message:
Export btree utilities; implement efficient map operators, reimplement get-instance methods; add test of map-index; better declarations

--- /project/elephant/cvsroot/elephant/src/db-bdb/bdb-collections.lisp	2007/02/17 12:13:19	1.20
+++ /project/elephant/cvsroot/elephant/src/db-bdb/bdb-collections.lisp	2007/02/20 19:12:58	1.21
@@ -113,13 +113,16 @@
 	     (symbolp index-name)
 	     (or (symbolp key-form) (listp key-form)))
 	;; Can it be that this fails?
-	(let ((ht (indices bt))
-	      (index (build-btree-index sc 
-					:primary bt 
-					:key-form key-form)))
-	  (setf (gethash index-name (indices-cache bt)) index)
-	  (setf (gethash index-name ht) index)
-	  (setf (indices bt) ht)
+	(let ((index
+	       (ensure-transaction (:store-controller sc)
+		 (let ((ht (indices bt))
+		       (index (build-btree-index sc 
+						 :primary bt 
+						 :key-form key-form)))
+		   (setf (gethash index-name (indices-cache bt)) index)
+		   (setf (gethash index-name ht) index)
+		   (setf (indices bt) ht)
+		   index))))
 	  (when populate (populate bt index))
 	  index)
 	(error "Invalid index initargs!"))))
@@ -150,7 +153,7 @@
 		 (if last-key 
 		     (cursor-set cursor last-key)
 		     (cursor-first cursor))
-		 (loop for i from 0 upto 1000 
+		 (loop for i from 0 upto 1000
 		    while continue
 		    do
 		      (multiple-value-bind (valid? k v) (cursor-current cursor)
--- /project/elephant/cvsroot/elephant/src/db-bdb/bdb-transactions.lisp	2007/02/20 02:33:59	1.9
+++ /project/elephant/cvsroot/elephant/src/db-bdb/bdb-transactions.lisp	2007/02/20 19:12:58	1.10
@@ -47,7 +47,8 @@
 		    (unwind-protect
 			 (multiple-value-prog1 
 			     (funcall txn-fn)
-			   (db-transaction-commit txn :txn-nosync txn-nosync
+			   (db-transaction-commit txn 
+						  :txn-nosync txn-nosync
 						  :txn-sync txn-sync)
 			   (setq success t))
 		      (unless success 
--- /project/elephant/cvsroot/elephant/src/db-bdb/libberkeley-db.def	2007/01/20 22:12:17	1.2
+++ /project/elephant/cvsroot/elephant/src/db-bdb/libberkeley-db.def	2007/02/20 19:12:58	1.3
@@ -67,8 +67,11 @@
 	db_env_get_timeout
 	db_env_set_lk_detect
 	db_env_get_lk_detect
+	db_env_txn_checkpoint
 	db_env_lock_detect
+	db_set_error_file
 	db_associate
+	db_compact
 	never_index
 	db_fake_associate
 	next_counter
\ No newline at end of file




More information about the Elephant-cvs mailing list