Update of /project/elephant/cvsroot/elephant/src/db-clsql In directory clnet:/tmp/cvs-serv3271/src/db-clsql
Modified Files: sql-collections.lisp sql-controller.lisp sql-transaction.lisp Log Message: Large changeset to enable thread safety; more *auto-commit* removal; sql class-root fix; new transaction model; cleaned up defaults for *store-controller*
--- /project/elephant/cvsroot/elephant/src/db-clsql/sql-collections.lisp 2007/01/26 14:41:08 1.8 +++ /project/elephant/cvsroot/elephant/src/db-clsql/sql-collections.lisp 2007/02/02 23:51:58 1.9 @@ -133,7 +133,7 @@ (do ((i 0 (1+ i)) (tup tuples (cdr tup))) ((= i len) nil) - (setf (aref (:sql-crsr-ks cursor) i) + (setf (aref (:sql-crsr-ks cursor) i) (deserialize-from-base64-string (caar tup) sc))) (sort (:sql-crsr-ks cursor) #'my-generic-less-than) (setf (:sql-crsr-ck cursor) 0) --- /project/elephant/cvsroot/elephant/src/db-clsql/sql-controller.lisp 2007/01/26 14:41:08 1.13 +++ /project/elephant/cvsroot/elephant/src/db-clsql/sql-controller.lisp 2007/02/02 23:51:58 1.14 @@ -356,7 +356,7 @@ (elephant::initialize-serializer sc) ;; These should get oid 0 and 1 respectively (setf (slot-value sc 'root) (make-instance 'sql-btree :sc sc :from-oid 0)) - (setf (slot-value sc 'class-root) (make-instance 'sql-indexed-btree :sc sc :from-oid 1)) + (setf (slot-value sc 'class-root) (make-instance 'sql-btree :sc sc :from-oid 1)) sc) ) ) @@ -371,6 +371,7 @@ ;; (actually clsql has pooling and other complications, I am not sure ;; that this is complete.) (clsql:disconnect :database (controller-db sc)) + (setf (slot-value sc 'class-root) nil) (setf (slot-value sc 'root) nil) ))
--- /project/elephant/cvsroot/elephant/src/db-clsql/sql-transaction.lisp 2006/11/11 18:41:11 1.3 +++ /project/elephant/cvsroot/elephant/src/db-clsql/sql-transaction.lisp 2007/02/02 23:51:58 1.4 @@ -37,11 +37,14 @@ (clsql::set-autocommit t)))))
(defmethod controller-start-transaction ((sc sql-store-controller) &key &allow-other-keys) - (clsql:start-transaction :database (controller-db sc))) + (clsql:start-transaction :database (controller-db sc)) + 'active-clsql-transaction)
-(defmethod controller-commit-transaction ((sc sql-store-controller) &key &allow-other-keys) +(defmethod controller-commit-transaction ((sc sql-store-controller) transaction &key &allow-other-keys) + (declare (ignore transaction)) (clsql:commit :database (controller-db sc)))
-(defmethod controller-abort-transaction ((sc sql-store-controller) &key &allow-other-keys) +(defmethod controller-abort-transaction ((sc sql-store-controller) transaction &key &allow-other-keys) + (declare (ignore transaction)) (clsql:rollback :database (controller-db sc)))