The attached patch adds support DB_ENV.txn_checkpoint that's useful if 
one wants to schedule checkpointing from lisp.

Regards, Gabor Melis
diff -ru elephant-0.6.0/src/db-bdb/libsleepycat.c elephant-0.6.0.new/src/db-bdb/libsleepycat.c
--- elephant-0.6.0/src/db-bdb/libsleepycat.c	2006-02-19 05:53:00.000000000 +0100
+++ elephant-0.6.0.new/src/db-bdb/libsleepycat.c	2007-01-20 19:35:54.000000000 +0100
@@ -166,6 +166,11 @@
   return dbenv->get_flags(dbenv, flagsp);
 }
 
+int db_env_txn_checkpoint(DB_ENV *dbenv, u_int32_t kbyte, u_int32_t min,
+                          u_int32_t flags) {
+  return dbenv->txn_checkpoint(dbenv, kbyte, min, flags);
+}
+
 /* Database */
 
 DB *db_cr(DB_ENV *dbenv, u_int32_t flags, int *errno) {
diff -ru elephant-0.6.0/src/db-bdb/libsleepycat.def elephant-0.6.0.new/src/db-bdb/libsleepycat.def
--- elephant-0.6.0/src/db-bdb/libsleepycat.def	2006-02-19 18:25:53.000000000 +0100
+++ elephant-0.6.0.new/src/db-bdb/libsleepycat.def	2007-01-20 19:36:34.000000000 +0100
@@ -19,6 +19,7 @@
 	db_env_remove
 	db_env_set_flags
 	db_env_get_flags
+	db_env_txn_checkpoint
 	db_cr
 	db_close
 	db_open
diff -ru elephant-0.6.0/src/db-bdb/sleepycat.lisp elephant-0.6.0.new/src/db-bdb/sleepycat.lisp
--- elephant-0.6.0/src/db-bdb/sleepycat.lisp	2006-04-30 03:03:49.000000000 +0200
+++ elephant-0.6.0.new/src/db-bdb/sleepycat.lisp	2007-01-20 19:15:19.000000000 +0100
@@ -491,6 +491,16 @@
 (wrap-errno db-env-get-flags (env) :outs 2
 	    :documentation "Get flags of an environment.")
 	   
+(def-function ("db_env_txn_checkpoint" %db-env-txn-checkpoint)
+    ((env :pointer-void)
+     (kbyte :unsigned-int)
+     (min :unsigned-int)
+     (flags :unsigned-int))
+  :returning :int)
+
+(wrap-errno db-env-txn-checkpoint (env kbyte min flags)
+	    :flags (force)
+	    :documentation "Make a checkpoint.")
 
 ;; Database
 
_______________________________________________
elephant-devel site list
elephant-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel

Reply via email to