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

rread rread at common-lisp.net
Fri Jan 26 14:41:08 UTC 2007


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

Modified Files:
	bdb-controller.lisp 
Log Message:
Repairing the use of the serializer for the SQL side


--- /project/elephant/cvsroot/elephant/src/db-bdb/bdb-controller.lisp	2007/01/19 21:03:29	1.15
+++ /project/elephant/cvsroot/elephant/src/db-bdb/bdb-controller.lisp	2007/01/26 14:41:08	1.16
@@ -271,4 +271,20 @@
 		      :free-space free-space)))
     (values (deserialize end ctrl))))
 
+;; Store the serializer version.  For BDB this can be in a file; different backends 
+;; may require a different approach.
+(defmethod database-version ((sc bdb-store-controller))
+   "A version determination for a given store
+   controller that is independant of the serializer as the
+   serializer is dispatched based on the code version which is a
+   list of the form '(0 6 0)"
+  (let ((version (elephant::controller-version-cached sc)))
+    (if version version
+	(let ((path (make-pathname :name "VERSION" :defaults (second (controller-spec sc)))))
+	  (if (probe-file path)
+	      (with-open-file (stream path :direction :input)
+		(setf (elephant::controller-version-cached sc) (read stream)))
+	      (with-open-file (stream path :direction :output)
+		(setf (elephant::controller-version-cached sc)
+		      (write *elephant-code-version* :stream stream))))))))
 




More information about the Elephant-cvs mailing list