/*- * See the file LICENSE for redistribution information. * * Copyright (c) 1996-2003 * Sleepycat Software. All rights reserved. * * $Id: txn.src,v 1.2 2004/03/30 01:24:47 jtownsen Exp $ */ PREFIX __txn DBPRIVATE INCLUDE #include "db_config.h" INCLUDE INCLUDE #ifndef NO_SYSTEM_INCLUDES INCLUDE #include INCLUDE INCLUDE #if TIME_WITH_SYS_TIME INCLUDE #include INCLUDE #include INCLUDE #else INCLUDE #if HAVE_SYS_TIME_H INCLUDE #include INCLUDE #else INCLUDE #include INCLUDE #endif /* HAVE_SYS_TIME_H */ INCLUDE #endif /* TIME_WITH SYS_TIME */ INCLUDE INCLUDE #include INCLUDE #include INCLUDE #endif INCLUDE INCLUDE #include "db_int.h" INCLUDE #include "dbinc/crypto.h" INCLUDE #include "dbinc/db_page.h" INCLUDE #include "dbinc/db_dispatch.h" INCLUDE #include "dbinc/db_am.h" INCLUDE #include "dbinc/log.h" INCLUDE #include "dbinc/txn.h" INCLUDE /* * This is the standard log operation for commit. * Note that we are using an int32_t for the timestamp. This means that * in 2039 we will need to deprecate this log record and create one that * either changes the Epoch or has a 64-bit offset. */ BEGIN regop 10 ARG opcode u_int32_t lu TIME timestamp int32_t ld DBT locks DBT s END /* * This is the checkpoint record. It contains the lsn that the checkpoint * guarantees and a pointer to the last checkpoint so we can walk backwards * by checkpoint. * * ckp_lsn: * The lsn in the log of the most recent point at which all begun * transactions have been aborted. This is the point for which * the checkpoint is relevant. * last_ckp: * The previous checkpoint. * timestamp: * See comment in commit about timestamps. */ BEGIN ckp 11 POINTER ckp_lsn DB_LSN * lu POINTER last_ckp DB_LSN * lu TIME timestamp int32_t ld ARG rep_gen u_int32_t ld END /* * This is the (new) log operation for a child commit. It is * logged as a record in the PARENT. The child field contains * the transaction ID of the child committing and the c_lsn is * the last LSN of the child's log trail. */ BEGIN child 12 ARG child u_int32_t lx POINTER c_lsn DB_LSN * lu END /* * This is the standard log operation for prepare. */ BEGIN xa_regop 13 ARG opcode u_int32_t lu DBT xid DBT s ARG formatID int32_t ld ARG gtrid u_int32_t u ARG bqual u_int32_t u POINTER begin_lsn DB_LSN * lu DBT locks DBT s END /* * Log the fact that we are recycling txnids. */ BEGIN recycle 14 ARG min u_int32_t u ARG max u_int32_t u END