about summary refs log tree commit diff
path: root/db2/db/db_dispatch.c
diff options
context:
space:
mode:
Diffstat (limited to 'db2/db/db_dispatch.c')
-rw-r--r--db2/db/db_dispatch.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/db2/db/db_dispatch.c b/db2/db/db_dispatch.c
index 4f89d2b917..736575adfc 100644
--- a/db2/db/db_dispatch.c
+++ b/db2/db/db_dispatch.c
@@ -43,7 +43,7 @@
 #include "config.h"
 
 #ifndef lint
-static const char sccsid[] = "@(#)db_dispatch.c	10.7 (Sleepycat) 11/23/97";
+static const char sccsid[] = "@(#)db_dispatch.c	10.9 (Sleepycat) 1/17/98";
 #endif /* not lint */
 
 #ifndef NO_SYSTEM_INCLUDES
@@ -61,6 +61,7 @@ static const char sccsid[] = "@(#)db_dispatch.c	10.7 (Sleepycat) 11/23/97";
 #include "db_dispatch.h"
 #include "db_am.h"
 #include "common_ext.h"
+#include "log_auto.h"
 
 /*
  * Data structures to manage the DB dispatch table.  The dispatch table
@@ -113,7 +114,8 @@ __db_dispatch(logp, db, lsnp, redo, info)
 		 * seen it, then we call the appropriate recovery routine
 		 * in "abort mode".
 		 */
-		if (__db_txnlist_find(info, txnid) == DB_NOTFOUND)
+		if (rectype == DB_log_register ||
+		    __db_txnlist_find(info, txnid) == DB_NOTFOUND)
 			return ((dispatch_table[rectype])(logp,
 			    db, lsnp, TXN_UNDO, info));
 		break;
@@ -122,7 +124,8 @@ __db_dispatch(logp, db, lsnp, redo, info)
 		 * In the forward pass, if we haven't seen the transaction,
 		 * do nothing, else recovery it.
 		 */
-		if (__db_txnlist_find(info, txnid) != DB_NOTFOUND)
+		if (rectype == DB_log_register ||
+		    __db_txnlist_find(info, txnid) != DB_NOTFOUND)
 			return ((dispatch_table[rectype])(logp,
 			    db, lsnp, TXN_REDO, info));
 		break;
@@ -258,6 +261,8 @@ __db_txnlist_find(listp, txnid)
 /*
  * __db_txnlist_print --
  *	Print out the transaction list.
+ *
+ * PUBLIC: void __db_txnlist_print __P((void *));
  */
 void
 __db_txnlist_print(listp)