... and in with the New ...

CVS patchset: 7471
CVS date: 2004/10/16 01:31:54
This commit is contained in:
jbj 2004-10-16 01:31:54 +00:00
parent 2dc699bfe0
commit d03f220fde
2535 changed files with 303168 additions and 61553 deletions

View File

@ -1,16 +1,16 @@
/*-
* $Id: LICENSE,v 11.10 2003/01/08 04:00:54 bostic Exp $
* $Id: LICENSE,v 11.12 2004/03/30 20:49:44 bostic Exp $
*/
The following is the license that applies to this copy of the Berkeley DB
software. For a license to use the Berkeley DB software under conditions
other than those described here, or to purchase support for this software,
please contact Sleepycat Software by email at db@sleepycat.com, or on the
Web at http://www.sleepycat.com.
please contact Sleepycat Software by email at info@sleepycat.com, or on
the Web at http://www.sleepycat.com.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
/*
* Copyright (c) 1990-2003
* Copyright (c) 1990-2004
* Sleepycat Software. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without

View File

@ -1,5 +1,5 @@
Sleepycat Software: Berkeley DB 4.2.52: (December 3, 2003)
Sleepycat Software: Berkeley DB 4.3.14: (October 14, 2004)
This is version 4.2.52 of Berkeley DB from Sleepycat Software. To view
This is version 4.3.14 of Berkeley DB from Sleepycat Software. To view
the release and installation documentation, load the distribution file
docs/index.html into your web browser.

View File

@ -1,7 +1,7 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*/
/*
@ -38,14 +38,12 @@
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: bt_compare.c,v 11.20 2004/02/21 15:54:44 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char revid[] = "$Id: bt_compare.c,v 11.18 2003/01/08 04:00:56 bostic Exp $";
#endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>
#endif
@ -204,8 +202,12 @@ __bam_defpfx(dbp, a, b)
return (cnt);
/*
* We know that a->size must be <= b->size, or they wouldn't be
* in this order.
* They match up to the smaller of the two sizes.
* Collate the longer after the shorter.
*/
return (a->size < b->size ? a->size + 1 : a->size);
if (a->size < b->size)
return (a->size + 1);
if (b->size < a->size)
return (b->size + 1);
return (b->size);
}

View File

@ -1,16 +1,14 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: bt_conv.c,v 11.15 2004/01/28 03:35:48 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char revid[] = "$Id: bt_conv.c,v 11.14 2003/01/08 04:00:56 bostic Exp $";
#endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>
#endif

View File

@ -1,16 +1,14 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: bt_curadj.c,v 11.37 2004/03/13 14:11:33 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char revid[] = "$Id: bt_curadj.c,v 11.34 2003/07/09 02:32:24 margo Exp $";
#endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>
#endif
@ -21,30 +19,6 @@ static const char revid[] = "$Id: bt_curadj.c,v 11.34 2003/07/09 02:32:24 margo
static int __bam_opd_cursor __P((DB *, DBC *, db_pgno_t, u_int32_t, u_int32_t));
#ifdef DEBUG
/*
* __bam_cprint --
* Display the current internal cursor.
*
* PUBLIC: void __bam_cprint __P((DBC *));
*/
void
__bam_cprint(dbc)
DBC *dbc;
{
BTREE_CURSOR *cp;
cp = (BTREE_CURSOR *)dbc->internal;
fprintf(stderr, "\tinternal: ovflsize: %lu", (u_long)cp->ovflsize);
if (dbc->dbtype == DB_RECNO)
fprintf(stderr, " recno: %lu", (u_long)cp->recno);
if (F_ISSET(cp, C_DELETED))
fprintf(stderr, " (deleted)");
fprintf(stderr, "\n");
}
#endif
/*
* Cursor adjustments are logged if they are for subtransactions. This is
* because it's possible for a subtransaction to adjust cursors which will
@ -219,8 +193,8 @@ __bam_ca_di(my_dbc, pgno, indx, adjust)
MUTEX_THREAD_UNLOCK(dbenv, dbenv->dblist_mutexp);
if (found != 0 && DBC_LOGGING(my_dbc)) {
if ((ret = __bam_curadj_log(dbp, my_dbc->txn,
&lsn, 0, DB_CA_DI, pgno, 0, 0, adjust, indx, 0)) != 0)
if ((ret = __bam_curadj_log(dbp, my_dbc->txn, &lsn, 0,
DB_CA_DI, pgno, 0, 0, (u_int32_t)adjust, indx, 0)) != 0)
return (ret);
}

View File

@ -1,16 +1,14 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: bt_cursor.c,v 11.190 2004/09/22 21:46:32 ubell Exp $
*/
#include "db_config.h"
#ifndef lint
static const char revid[] = "$Id: bt_cursor.c,v 11.169 2003/11/19 18:41:06 bostic Exp $";
#endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>
@ -53,11 +51,11 @@ static int __bam_isopd __P((DBC *, db_pgno_t *));
* don't -- we don't duplicate locks when we duplicate cursors if we are
* running in a transaction environment as there's no point if locks are
* never discarded. This means that the cursor may or may not hold a lock.
* In the case where we are decending the tree we always want to
* unlock the held interior page so we use ACQUIRE_COUPLE.
* In the case where we are descending the tree we always want to unlock
* the held interior page so we use ACQUIRE_COUPLE.
*/
#undef ACQUIRE
#define ACQUIRE(dbc, mode, lpgno, lock, fpgno, pagep, ret) { \
#define ACQUIRE(dbc, mode, lpgno, lock, fpgno, pagep, ret) do { \
DB_MPOOLFILE *__mpf = (dbc)->dbp->mpf; \
if ((pagep) != NULL) { \
ret = __memp_fput(__mpf, pagep, 0); \
@ -68,10 +66,10 @@ static int __bam_isopd __P((DBC *, db_pgno_t *));
ret = __db_lget(dbc, LCK_COUPLE, lpgno, mode, 0, &(lock));\
if ((ret) == 0) \
ret = __memp_fget(__mpf, &(fpgno), 0, &(pagep)); \
}
} while (0)
#undef ACQUIRE_COUPLE
#define ACQUIRE_COUPLE(dbc, mode, lpgno, lock, fpgno, pagep, ret) { \
#define ACQUIRE_COUPLE(dbc, mode, lpgno, lock, fpgno, pagep, ret) do { \
DB_MPOOLFILE *__mpf = (dbc)->dbp->mpf; \
if ((pagep) != NULL) { \
ret = __memp_fput(__mpf, pagep, 0); \
@ -83,37 +81,37 @@ static int __bam_isopd __P((DBC *, db_pgno_t *));
LCK_COUPLE_ALWAYS, lpgno, mode, 0, &(lock)); \
if ((ret) == 0) \
ret = __memp_fget(__mpf, &(fpgno), 0, &(pagep)); \
}
} while (0)
/* Acquire a new page/lock for a cursor. */
#undef ACQUIRE_CUR
#define ACQUIRE_CUR(dbc, mode, p, ret) { \
#define ACQUIRE_CUR(dbc, mode, p, ret) do { \
BTREE_CURSOR *__cp = (BTREE_CURSOR *)(dbc)->internal; \
if (p != __cp->pgno) \
__cp->pgno = PGNO_INVALID; \
if (p != __cp->pgno) \
__cp->pgno = PGNO_INVALID; \
ACQUIRE(dbc, mode, p, __cp->lock, p, __cp->page, ret); \
if ((ret) == 0) { \
__cp->pgno = p; \
__cp->lock_mode = (mode); \
} \
}
} while (0)
/*
* Acquire a new page/lock for a cursor and release the previous.
* This is typically used when decending a tree and we do not
* This is typically used when descending a tree and we do not
* want to hold the interior nodes locked.
*/
#undef ACQUIRE_CUR_COUPLE
#define ACQUIRE_CUR_COUPLE(dbc, mode, p, ret) { \
#define ACQUIRE_CUR_COUPLE(dbc, mode, p, ret) do { \
BTREE_CURSOR *__cp = (BTREE_CURSOR *)(dbc)->internal; \
if (p != __cp->pgno) \
__cp->pgno = PGNO_INVALID; \
if (p != __cp->pgno) \
__cp->pgno = PGNO_INVALID; \
ACQUIRE_COUPLE(dbc, mode, p, __cp->lock, p, __cp->page, ret); \
if ((ret) == 0) { \
__cp->pgno = p; \
__cp->lock_mode = (mode); \
} \
}
} while (0)
/*
* Acquire a write lock if we don't already have one.
@ -122,7 +120,7 @@ static int __bam_isopd __P((DBC *, db_pgno_t *));
* See ACQUIRE macro on why we handle cursors that don't have locks.
*/
#undef ACQUIRE_WRITE_LOCK
#define ACQUIRE_WRITE_LOCK(dbc, ret) { \
#define ACQUIRE_WRITE_LOCK(dbc, ret) do { \
BTREE_CURSOR *__cp = (BTREE_CURSOR *)(dbc)->internal; \
ret = 0; \
if (STD_LOCKING(dbc) && \
@ -131,25 +129,27 @@ static int __bam_isopd __P((DBC *, db_pgno_t *));
LOCK_ISSET(__cp->lock) ? LCK_COUPLE : 0, \
__cp->pgno, DB_LOCK_WRITE, 0, &__cp->lock)) == 0) \
__cp->lock_mode = DB_LOCK_WRITE; \
}
} while (0)
/* Discard the current page/lock for a cursor. */
#undef DISCARD_CUR
#define DISCARD_CUR(dbc, ret) { \
#define DISCARD_CUR(dbc, ret) do { \
BTREE_CURSOR *__cp = (BTREE_CURSOR *)(dbc)->internal; \
DB_MPOOLFILE *__mpf = (dbc)->dbp->mpf; \
int __t_ret; \
if ((__cp->page) != NULL) { \
ret = __memp_fput(__mpf, __cp->page, 0); \
__t_ret = __memp_fput(__mpf, __cp->page, 0); \
__cp->page = NULL; \
} else \
ret = 0; \
__t_ret = 0; \
if (__t_ret != 0 && (ret) == 0) \
ret = __t_ret; \
__t_ret = __TLPUT((dbc), __cp->lock); \
if (__t_ret != 0 && (ret) == 0) \
ret = __t_ret; \
if ((ret) == 0 && !LOCK_ISSET(__cp->lock)) \
__cp->lock_mode = DB_LOCK_NG; \
}
} while (0)
/* If on-page item is a deleted record. */
#undef IS_DELETED
@ -308,7 +308,7 @@ __bam_c_close(dbc, root_pgno, rmroot)
DBC *dbc_opd, *dbc_c;
DB_MPOOLFILE *mpf;
PAGE *h;
int cdb_lock, ret, t_ret;
int cdb_lock, ret;
dbp = dbc->dbp;
mpf = dbp->mpf;
@ -426,8 +426,8 @@ __bam_c_close(dbc, root_pgno, rmroot)
case DB_QUEUE:
case DB_UNKNOWN:
default:
return (__db_unknown_type(dbp->dbenv,
"__bam_c_close", dbc->dbtype));
return (__db_unknown_type(
dbp->dbenv, "__bam_c_close", dbc->dbtype));
}
}
goto done;
@ -448,32 +448,31 @@ lock: cp_c = (BTREE_CURSOR *)dbc_c->internal;
goto err;
cdb_lock = 1;
}
if ((ret = __memp_fget(mpf, &cp_c->pgno, 0, &cp_c->page)) != 0)
goto err;
goto delete;
}
/*
* The variable dbc_c has been initialized to reference the cursor in
* which we're going to do the delete. Initialize the cursor's page
* and lock structures as necessary.
* which we're going to do the delete. Initialize the cursor's lock
* structures as necessary.
*
* First, we may not need to acquire any locks. If we're in case #3,
* that is, the primary database isn't a btree database, our caller
* is responsible for acquiring any necessary locks before calling us.
*/
if (F_ISSET(dbc, DBC_OPD)) {
if ((ret = __memp_fget(mpf, &cp_c->pgno, 0, &cp_c->page)) != 0)
goto err;
if (F_ISSET(dbc, DBC_OPD))
goto delete;
}
/*
* Otherwise, acquire a write lock. If the cursor that did the initial
* logical deletion (and which had a write lock) is not the same as the
* cursor doing the physical deletion (which may have only ever had a
* read lock on the item), we need to upgrade. The confusion comes as
* follows:
* Otherwise, acquire a write lock on the primary database's page.
*
* Lock the primary database page, regardless of whether we're deleting
* an item on a primary database page or an off-page duplicates page.
*
* If the cursor that did the initial logical deletion (and had a write
* lock) is not the same cursor doing the physical deletion (which may
* have only ever had a read lock on the item), we need to upgrade to a
* write lock. The confusion comes as follows:
*
* C1 created, acquires item read lock
* C2 dup C1, create C2, also has item read lock.
@ -483,29 +482,37 @@ lock: cp_c = (BTREE_CURSOR *)dbc_c->internal;
*
* If we're in a TXN, we know that C2 will be able to acquire the write
* lock, because no locker other than the one shared by C1 and C2 can
* acquire a write lock -- the original write lock C1 acquire was never
* acquire a write lock -- the original write lock C1 acquired was never
* discarded.
*
* If we're not in a TXN, it's nastier. Other cursors might acquire
* read locks on the item after C1 closed, discarding its write lock,
* and such locks would prevent C2 from acquiring a read lock. That's
* OK, though, we'll simply wait until we can acquire a read lock, or
* OK, though, we'll simply wait until we can acquire a write lock, or
* we'll deadlock. (Which better not happen, since we're not in a TXN.)
*
* Lock the primary database page, regardless of whether we're deleting
* an item on a primary database page or an off-page duplicates page.
* There are similar scenarios with dirty reads, where the cursor may
* have downgraded its write lock to a was-write lock.
*/
ACQUIRE(dbc, DB_LOCK_WRITE,
cp->pgno, cp_c->lock, cp_c->pgno, cp_c->page, ret);
if (ret != 0)
goto err;
if (STD_LOCKING(dbc))
if ((ret = __db_lget(dbc,
LCK_COUPLE, cp->pgno, DB_LOCK_WRITE, 0, &cp->lock)) != 0)
goto err;
delete: /*
* If the delete occurred in a btree, delete the on-page physical item
* referenced by the cursor.
* If the delete occurred in a Btree, we're going to look at the page
* to see if the item has to be physically deleted. Otherwise, we do
* not need the actual page (and it may not even exist, it might have
* been truncated from the file after an allocation aborted).
*
* Delete the on-page physical item referenced by the cursor.
*/
if (dbc_c->dbtype == DB_BTREE && (ret = __bam_c_physdel(dbc_c)) != 0)
goto err;
if (dbc_c->dbtype == DB_BTREE) {
if ((ret = __memp_fget(mpf, &cp_c->pgno, 0, &cp_c->page)) != 0)
goto err;
if ((ret = __bam_c_physdel(dbc_c)) != 0)
goto err;
}
/*
* If we're not working in an off-page duplicate tree, then we're
@ -526,6 +533,9 @@ delete: /*
if ((ret = __memp_fget(mpf, &root_pgno, 0, &h)) != 0)
goto err;
if (NUM_ENT(h) == 0) {
DISCARD_CUR(dbc_c, ret);
if (ret != 0)
goto err;
if ((ret = __db_free(dbc, h)) != 0)
goto err;
} else {
@ -558,14 +568,9 @@ done: /*
* Discard the page references and locks, and confirm that the stack
* has been emptied.
*/
if (dbc_opd != NULL) {
DISCARD_CUR(dbc_opd, t_ret);
if (t_ret != 0 && ret == 0)
ret = t_ret;
}
DISCARD_CUR(dbc, t_ret);
if (t_ret != 0 && ret == 0)
ret = t_ret;
if (dbc_opd != NULL)
DISCARD_CUR(dbc_opd, ret);
DISCARD_CUR(dbc, ret);
/* Downgrade any CDB lock we acquired. */
if (cdb_lock)
@ -785,11 +790,11 @@ __bam_c_dup(orig_dbc, new_dbc)
* holding inside a transaction because all the locks are retained
* until the transaction commits or aborts.
*/
if (LOCK_ISSET(orig->lock) && orig_dbc->txn == NULL) {
if (orig_dbc->txn == NULL && LOCK_ISSET(orig->lock))
if ((ret = __db_lget(new_dbc,
0, new->pgno, new->lock_mode, 0, &new->lock)) != 0)
return (ret);
}
new->ovflsize = orig->ovflsize;
new->recno = orig->recno;
new->flags = orig->flags;
@ -1064,9 +1069,9 @@ __bam_bulk(dbc, data, flags)
cp = (BTREE_CURSOR *)dbc->internal;
/*
* dp tracks the beginging of the page in the buffer.
* dp tracks the beginning of the page in the buffer.
* np is the next place to copy things into the buffer.
* dbuf always stays at the beging of the buffer.
* dbuf always stays at the beginning of the buffer.
*/
dbuf = data->data;
np = dp = dbuf;
@ -1172,10 +1177,11 @@ next_pg:
get_key_space:
/* Nothing added, then error. */
if (offp == endp) {
data->size =
ALIGN(size +
data->size = (u_int32_t)
DB_ALIGN(size +
pagesize, 1024);
return (ENOMEM);
return
(DB_BUFFER_SMALL);
}
/*
* We need to back up to the
@ -1246,7 +1252,7 @@ get_key_space:
if ((ret = __bam_bulk_duplicates(dbc, bo->pgno,
dbuf, is_key ? offp + P_INDX : NULL,
&offp, &np, &space, no_dup)) != 0) {
if (ret == ENOMEM) {
if (ret == DB_BUFFER_SMALL) {
size = space;
space = 0;
/* If nothing was added, then error. */
@ -1307,9 +1313,10 @@ get_space:
if (offp >=
(is_key ? &endp[-1] : endp) ||
F_ISSET(dbc, DBC_TRANSIENT)) {
data->size = ALIGN(size +
data->size = (u_int32_t)
DB_ALIGN(size +
data->ulen - space, 1024);
return (ENOMEM);
return (DB_BUFFER_SMALL);
}
break;
}
@ -1339,8 +1346,8 @@ get_space:
indx += adj;
}
/*
* Stop when we either run off the page or we
* move to the next key and we are not returning mulitple keys.
* Stop when we either run off the page or we move to the next key and
* we are not returning multiple keys.
*/
} while ((indx += adj) < NUM_ENT(pg) &&
(next_key || pg_keyoff == inp[indx]));
@ -1365,14 +1372,14 @@ get_space:
if (ret == 0 && indx < pg->entries &&
F_ISSET(dbc, DBC_TRANSIENT) && pg_keyoff == inp[indx]) {
data->size = (data->ulen - space) + size;
return (ENOMEM);
return (DB_BUFFER_SMALL);
}
/*
* Must leave the index pointing at the last record fetched.
* If we are not fetching keys, we may have stepped to the
* next key.
*/
if (ret == ENOMEM || next_key || pg_keyoff == inp[indx])
if (ret == DB_BUFFER_SMALL || next_key || pg_keyoff == inp[indx])
cp->indx = indx;
else
cp->indx = indx - P_INDX;
@ -1462,7 +1469,7 @@ __bam_bulk_duplicates(dbc, pgno, dbuf, keyoff, offpp, dpp, spacep, no_dup)
/*
* np is the next place to put data.
* dp is the begining of the current page in the buffer.
* dp is the beginning of the current page in the buffer.
*/
np = dp = *dpp;
first = 1;
@ -1489,7 +1496,7 @@ __bam_bulk_duplicates(dbc, pgno, dbuf, keyoff, offpp, dpp, spacep, no_dup)
/* Did space underflow? */
if (space > *spacep) {
ret = ENOMEM;
ret = DB_BUFFER_SMALL;
if (first == 1) {
/* Get the absolute value. */
space = -(int32_t)space;
@ -1503,7 +1510,7 @@ __bam_bulk_duplicates(dbc, pgno, dbuf, keyoff, offpp, dpp, spacep, no_dup)
bo = (BOVERFLOW *)bk;
size = bo->tlen;
if (size > space) {
ret = ENOMEM;
ret = DB_BUFFER_SMALL;
space = *spacep + size;
break;
}
@ -1522,7 +1529,7 @@ __bam_bulk_duplicates(dbc, pgno, dbuf, keyoff, offpp, dpp, spacep, no_dup)
dp = np;
size = pagesize - HOFFSET(pg);
if (space < size) {
ret = ENOMEM;
ret = DB_BUFFER_SMALL;
/* Return space required. */
space = *spacep + size;
break;
@ -1565,7 +1572,7 @@ contin:
* If we ran out of space back up the pointer.
* If we did not return any dups or reached the end, close the opd.
*/
if (ret == ENOMEM) {
if (ret == DB_BUFFER_SMALL) {
if (opd->dbtype == DB_RECNO) {
if (--cp->recno == 0)
goto close_opd;
@ -1780,6 +1787,7 @@ __bam_c_put(dbc, key, data, flags, pgnop)
u_int32_t flags;
db_pgno_t *pgnop;
{
BTREE *t;
BTREE_CURSOR *cp;
DB *dbp;
DBT dbt;
@ -1796,39 +1804,16 @@ __bam_c_put(dbc, key, data, flags, pgnop)
split: ret = stack = 0;
switch (flags) {
case DB_CURRENT:
if (F_ISSET(cp, C_DELETED))
return (DB_NOTFOUND);
/* FALLTHROUGH */
case DB_AFTER:
case DB_BEFORE:
case DB_CURRENT:
iiop = flags;
own = 1;
/*
* If the Btree has record numbers (and we're not replacing an
* existing record), we need a complete stack so that we can
* adjust the record counts. The check for flags == DB_CURRENT
* is superfluous but left in for clarity. (If C_RECNUM is set
* we know that flags must be DB_CURRENT, as DB_AFTER/DB_BEFORE
* are illegal in a Btree unless it's configured for duplicates
* and you cannot configure a Btree for both record renumbering
* and duplicates.)
*/
if (flags == DB_CURRENT &&
F_ISSET(cp, C_RECNUM) && F_ISSET(cp, C_DELETED)) {
if ((ret = __bam_c_getstack(dbc)) != 0)
goto err;
/*
* Initialize the cursor from the stack. Don't take
* the page number or page index, they should already
* be set.
*/
cp->page = cp->csp->page;
cp->lock = cp->csp->lock;
cp->lock_mode = cp->csp->lock_mode;
stack = 1;
break;
}
/* Acquire the current page with a write lock. */
ACQUIRE_WRITE_LOCK(dbc, ret);
if (ret != 0)
@ -1996,12 +1981,11 @@ split: ret = stack = 0;
/*
* SR [#6059]
* If we do not own a lock on the page anymore then
* clear the cursor so we don't point at it.
* Even if we call __bam_stkrel above we still
* may have entered the routine with the cursor
* posistioned to a particular record. This
* is in the case where C_RECNUM is set.
* If we do not own a lock on the page any more, then clear the
* cursor so we don't point at it. Even if we call __bam_stkrel
* above we still may have entered the routine with the cursor
* positioned to a particular record. This is in the case
* where C_RECNUM is set.
*/
if (own == 0) {
cp->pgno = PGNO_INVALID;
@ -2019,6 +2003,33 @@ split: ret = stack = 0;
err:
done: /*
* If we inserted a key into the first or last slot of the tree,
* remember where it was so we can do it more quickly next time.
* If the tree has record numbers, we need a complete stack so
* that we can adjust the record counts, so skipping the tree search
* isn't possible. For subdatabases we need to be careful that the
* page does not move from one db to another, so we track its LSN.
*
* If there are duplicates and we are inserting into the last slot,
* the cursor will point _to_ the last item, not after it, which
* is why we subtract P_INDX below.
*/
t = dbp->bt_internal;
if (ret == 0 && TYPE(cp->page) == P_LBTREE &&
(flags == DB_KEYFIRST || flags == DB_KEYLAST) &&
!F_ISSET(cp, C_RECNUM) &&
(!F_ISSET(dbp, DB_AM_SUBDB) ||
(LOGGING_ON(dbp->dbenv) && !F_ISSET(dbp, DB_AM_NOT_DURABLE))) &&
((NEXT_PGNO(cp->page) == PGNO_INVALID &&
cp->indx >= NUM_ENT(cp->page) - P_INDX) ||
(PREV_PGNO(cp->page) == PGNO_INVALID && cp->indx == 0))) {
t->bt_lpgno = cp->pgno;
if (F_ISSET(dbp, DB_AM_SUBDB))
t->bt_llsn = LSN(cp->page);
} else
t->bt_lpgno = PGNO_INVALID;
/*
* Discard any pages pinned in the tree and their locks, except for
* the leaf page. Note, the leaf page participated in any stack we
* acquired, and so we have to adjust the stack as necessary. If
@ -2371,7 +2382,7 @@ __bam_c_search(dbc, root_pgno, key, flags, exactp)
db_pgno_t bt_lpgno;
db_recno_t recno;
u_int32_t sflags;
int cmp, ret;
int cmp, ret, t_ret;
dbp = dbc->dbp;
cp = (BTREE_CURSOR *)dbc->internal;
@ -2415,12 +2426,8 @@ fast_search: /*
* If the application has a history of inserting into the first
* or last pages of the database, we check those pages first to
* avoid doing a full search.
*
* If the tree has record numbers, we need a complete stack so
* that we can adjust the record counts, so fast_search isn't
* possible.
*/
if (F_ISSET(cp, C_RECNUM))
if (F_ISSET(dbc, DBC_OPD))
goto search;
/*
@ -2440,14 +2447,24 @@ fast_search: /*
if (bt_lpgno == PGNO_INVALID)
goto search;
/* Lock and retrieve the page on which we last inserted. */
/*
* Lock and retrieve the page on which we last inserted.
*
* The page may not exist: if a transaction created the page
* and then aborted, the page might have been truncated from
* the end of the file.
*/
h = NULL;
ACQUIRE_CUR(dbc, DB_LOCK_WRITE, bt_lpgno, ret);
if (ret != 0)
if (ret != 0) {
if (ret == DB_PAGE_NOTFOUND)
ret = 0;
goto fast_miss;
}
h = cp->page;
inp = P_INP(dbp, h);
/*
* It's okay if the page type isn't right or it's empty, it
* just means that the world changed.
@ -2455,6 +2472,10 @@ fast_search: /*
if (TYPE(h) != P_LBTREE || NUM_ENT(h) == 0)
goto fast_miss;
/* Verify that this page cannot have moved to another db. */
if (F_ISSET(dbp, DB_AM_SUBDB) &&
log_compare(&t->bt_llsn, &LSN(h)) != 0)
goto fast_miss;
/*
* What we do here is test to see if we're at the beginning or
* end of the tree and if the new item sorts before/after the
@ -2537,10 +2558,13 @@ fast_hit: /* Set the exact match flag, we may have found a duplicate. */
fast_miss: /*
* This was not the right page, so we do not need to retain
* the lock even in the presence of transactions.
*
* This is also an error path, so ret may have been set.
*/
DISCARD_CUR(dbc, ret);
cp->pgno = PGNO_INVALID;
(void)__LPUT(dbc, cp->lock);
if ((t_ret = __LPUT(dbc, cp->lock)) != 0 && ret == 0)
ret = t_ret;
if (ret != 0)
return (ret);
@ -2559,20 +2583,6 @@ search: if ((ret = __bam_search(dbc, root_pgno,
cp->lock = cp->csp->lock;
cp->lock_mode = cp->csp->lock_mode;
/*
* If we inserted a key into the first or last slot of the tree,
* remember where it was so we can do it more quickly next time.
* If there are duplicates and we are inserting into the last slot,
* the cursor will point _to_ the last item, not after it, which
* is why we subtract P_INDX below.
*/
if (TYPE(cp->page) == P_LBTREE &&
(flags == DB_KEYFIRST || flags == DB_KEYLAST))
t->bt_lpgno =
(NEXT_PGNO(cp->page) == PGNO_INVALID &&
cp->indx >= NUM_ENT(cp->page) - P_INDX) ||
(PREV_PGNO(cp->page) == PGNO_INVALID &&
cp->indx == 0) ? cp->pgno : PGNO_INVALID;
return (0);
}
@ -2661,6 +2671,10 @@ __bam_c_physdel(dbc)
}
if ((ret = __bam_ditem(dbc, cp->page, cp->indx)) != 0)
return (ret);
/* Clear the deleted flag, the item is gone. */
F_CLR(cp, C_DELETED);
if (!empty_page)
if ((ret = __bam_ca_di(dbc, PGNO(cp->page), cp->indx, -1)) != 0)
return (ret);
@ -2759,6 +2773,8 @@ __bam_c_physdel(dbc)
* If everything worked, delete the stack, otherwise, release the
* stack and page locks without further damage.
*/
if (ret == 0)
DISCARD_CUR(dbc, ret);
if (ret == 0)
ret = __bam_dpages(dbc, cp->sp);
else

View File

@ -1,7 +1,7 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*/
/*
@ -38,14 +38,12 @@
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: bt_delete.c,v 11.49 2004/02/27 12:38:28 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char revid[] = "$Id: bt_delete.c,v 11.46 2003/06/30 17:19:29 bostic Exp $";
#endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>
@ -263,7 +261,8 @@ __bam_dpages(dbc, stack_epg)
for (epg = cp->sp; epg < stack_epg; ++epg) {
if ((t_ret = __memp_fput(mpf, epg->page, 0)) != 0 && ret == 0)
ret = t_ret;
(void)__TLPUT(dbc, epg->lock);
if ((t_ret = __TLPUT(dbc, epg->lock)) != 0 && ret == 0)
ret = t_ret;
}
if (ret != 0)
goto err;
@ -277,7 +276,7 @@ __bam_dpages(dbc, stack_epg)
* It will deadlock here. Before we unlink the subtree, we relink the
* leaf page chain.
*/
if ((ret = __db_relink(dbc, DB_REM_PAGE, cp->csp->page, NULL, 1)) != 0)
if ((ret = __bam_relink(dbc, cp->csp->page, NULL)) != 0)
goto err;
/*
@ -296,9 +295,11 @@ __bam_dpages(dbc, stack_epg)
pgno = PGNO(epg->page);
nitems = NUM_ENT(epg->page);
if ((ret = __memp_fput(mpf, epg->page, 0)) != 0)
ret = __memp_fput(mpf, epg->page, 0);
if ((t_ret = __TLPUT(dbc, epg->lock)) != 0 && ret == 0)
ret = t_ret;
if (ret != 0)
goto err_inc;
(void)__TLPUT(dbc, epg->lock);
/* Free the rest of the pages in the stack. */
while (++epg <= cp->csp) {
@ -315,11 +316,12 @@ __bam_dpages(dbc, stack_epg)
goto err;
}
if ((ret = __db_free(dbc, epg->page)) != 0) {
epg->page = NULL;
ret = __db_free(dbc, epg->page);
epg->page = NULL;
if ((t_ret = __TLPUT(dbc, epg->lock)) != 0 && ret == 0)
ret = t_ret;
if (ret != 0)
goto err_inc;
}
(void)__TLPUT(dbc, epg->lock);
}
if (0) {
@ -447,11 +449,13 @@ err: for (; epg <= cp->csp; ++epg) {
if (0) {
stop: done = 1;
}
(void)__TLPUT(dbc, p_lock);
if ((t_ret = __TLPUT(dbc, p_lock)) != 0 && ret == 0)
ret = t_ret;
if (parent != NULL &&
(t_ret = __memp_fput(mpf, parent, 0)) != 0 && ret == 0)
ret = t_ret;
(void)__TLPUT(dbc, c_lock);
if ((t_ret = __TLPUT(dbc, c_lock)) != 0 && ret == 0)
ret = t_ret;
if (child != NULL &&
(t_ret = __memp_fput(mpf, child, 0)) != 0 && ret == 0)
ret = t_ret;
@ -459,3 +463,111 @@ stop: done = 1;
return (ret);
}
/*
* __bam_relink --
* Relink around a deleted page.
*
* PUBLIC: int __bam_relink __P((DBC *, PAGE *, PAGE **));
*/
int
__bam_relink(dbc, pagep, new_next)
DBC *dbc;
PAGE *pagep, **new_next;
{
DB *dbp;
PAGE *np, *pp;
DB_LOCK npl, ppl;
DB_LSN *nlsnp, *plsnp, ret_lsn;
DB_MPOOLFILE *mpf;
int ret, t_ret;
dbp = dbc->dbp;
np = pp = NULL;
LOCK_INIT(npl);
LOCK_INIT(ppl);
nlsnp = plsnp = NULL;
mpf = dbp->mpf;
ret = 0;
/*
* Retrieve and lock the one/two pages. For a remove, we may need
* two pages (the before and after). For an add, we only need one
* because, the split took care of the prev.
*/
if (pagep->next_pgno != PGNO_INVALID) {
if ((ret = __db_lget(dbc,
0, pagep->next_pgno, DB_LOCK_WRITE, 0, &npl)) != 0)
goto err;
if ((ret = __memp_fget(mpf, &pagep->next_pgno, 0, &np)) != 0) {
ret = __db_pgerr(dbp, pagep->next_pgno, ret);
goto err;
}
nlsnp = &np->lsn;
}
if (pagep->prev_pgno != PGNO_INVALID) {
if ((ret = __db_lget(dbc,
0, pagep->prev_pgno, DB_LOCK_WRITE, 0, &ppl)) != 0)
goto err;
if ((ret = __memp_fget(mpf, &pagep->prev_pgno, 0, &pp)) != 0) {
ret = __db_pgerr(dbp, pagep->prev_pgno, ret);
goto err;
}
plsnp = &pp->lsn;
}
/* Log the change. */
if (DBC_LOGGING(dbc)) {
if ((ret = __bam_relink_log(dbp, dbc->txn, &ret_lsn, 0,
pagep->pgno, &pagep->lsn, pagep->prev_pgno, plsnp,
pagep->next_pgno, nlsnp)) != 0)
goto err;
} else
LSN_NOT_LOGGED(ret_lsn);
if (np != NULL)
np->lsn = ret_lsn;
if (pp != NULL)
pp->lsn = ret_lsn;
pagep->lsn = ret_lsn;
/*
* Modify and release the two pages.
*
* !!!
* The parameter new_next gets set to the page following the page we
* are removing. If there is no following page, then new_next gets
* set to NULL.
*/
if (np != NULL) {
np->prev_pgno = pagep->prev_pgno;
if (new_next == NULL)
ret = __memp_fput(mpf, np, DB_MPOOL_DIRTY);
else {
*new_next = np;
ret = __memp_fset(mpf, np, DB_MPOOL_DIRTY);
}
if ((t_ret = __TLPUT(dbc, npl)) != 0 && ret == 0)
ret = t_ret;
if (ret != 0)
goto err;
} else if (new_next != NULL)
*new_next = NULL;
if (pp != NULL) {
pp->next_pgno = pagep->next_pgno;
ret = __memp_fput(mpf, pp, DB_MPOOL_DIRTY);
if ((t_ret = __TLPUT(dbc, ppl)) != 0 && ret == 0)
ret = t_ret;
if (ret != 0)
goto err;
}
return (0);
err: if (np != NULL)
(void)__memp_fput(mpf, np, 0);
(void)__TLPUT(dbc, npl);
if (pp != NULL)
(void)__memp_fput(mpf, pp, 0);
(void)__TLPUT(dbc, ppl);
return (ret);
}

View File

@ -1,16 +1,14 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1999-2003
* Copyright (c) 1999-2004
* Sleepycat Software. All rights reserved.
*
* $Id: bt_method.c,v 11.38 2004/09/22 03:31:26 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char revid[] = "$Id: bt_method.c,v 11.34 2003/06/30 17:19:32 bostic Exp $";
#endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>
#endif
@ -21,15 +19,12 @@ static const char revid[] = "$Id: bt_method.c,v 11.34 2003/06/30 17:19:32 bostic
#include "dbinc/qam.h"
static int __bam_set_bt_maxkey __P((DB *, u_int32_t));
static int __bam_get_bt_minkey __P((DB *, u_int32_t *));
static int __bam_set_bt_minkey __P((DB *, u_int32_t));
static int __bam_set_bt_prefix
__P((DB *, size_t(*)(DB *, const DBT *, const DBT *)));
static int __ram_get_re_delim __P((DB *, int *));
static int __ram_set_re_delim __P((DB *, int));
static int __ram_get_re_len __P((DB *, u_int32_t *));
static int __ram_set_re_len __P((DB *, u_int32_t));
static int __ram_get_re_pad __P((DB *, int *));
static int __ram_set_re_pad __P((DB *, int));
static int __ram_get_re_source __P((DB *, const char **));
static int __ram_set_re_source __P((DB *, const char *));
@ -241,8 +236,10 @@ __bam_set_bt_maxkey(dbp, bt_maxkey)
/*
* __db_get_bt_minkey --
* Get the minimum keys per page.
*
* PUBLIC: int __bam_get_bt_minkey __P((DB *, u_int32_t *));
*/
static int
int
__bam_get_bt_minkey(dbp, bt_minkeyp)
DB *dbp;
u_int32_t *bt_minkeyp;
@ -389,17 +386,34 @@ __ram_set_re_delim(dbp, re_delim)
/*
* __db_get_re_len --
* Get the variable-length input record length.
*
* PUBLIC: int __ram_get_re_len __P((DB *, u_int32_t *));
*/
static int
int
__ram_get_re_len(dbp, re_lenp)
DB *dbp;
u_int32_t *re_lenp;
{
BTREE *t;
QUEUE *q;
DB_ILLEGAL_METHOD(dbp, DB_OK_QUEUE | DB_OK_RECNO);
t = dbp->bt_internal;
*re_lenp = t->re_len;
/*
* This has to work for all access methods, before or after opening the
* database. When the record length is set with __ram_set_re_len, the
* value in both the BTREE and QUEUE structs will be correct.
* Otherwise, this only makes sense after the database in opened, in
* which case we know the type.
*/
if (dbp->type == DB_QUEUE) {
q = dbp->q_internal;
*re_lenp = q->re_len;
} else {
t = dbp->bt_internal;
*re_lenp = t->re_len;
}
return (0);
}
@ -432,18 +446,34 @@ __ram_set_re_len(dbp, re_len)
/*
* __db_get_re_pad --
* Get the fixed-length record pad character.
*
* PUBLIC: int __ram_get_re_pad __P((DB *, int *));
*/
static int
int
__ram_get_re_pad(dbp, re_padp)
DB *dbp;
int *re_padp;
{
BTREE *t;
QUEUE *q;
DB_ILLEGAL_METHOD(dbp, DB_OK_QUEUE | DB_OK_RECNO);
t = dbp->bt_internal;
*re_padp = t->re_pad;
/*
* This has to work for all access methods, before or after opening the
* database. When the record length is set with __ram_set_re_pad, the
* value in both the BTREE and QUEUE structs will be correct.
* Otherwise, this only makes sense after the database in opened, in
* which case we know the type.
*/
if (dbp->type == DB_QUEUE) {
q = dbp->q_internal;
*re_padp = q->re_pad;
} else {
t = dbp->bt_internal;
*re_padp = t->re_pad;
}
return (0);
}

View File

@ -1,7 +1,7 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*/
/*
@ -38,14 +38,12 @@
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: bt_open.c,v 11.92 2004/04/29 14:39:47 ubell Exp $
*/
#include "db_config.h"
#ifndef lint
static const char revid[] = "$Id: bt_open.c,v 11.87 2003/07/17 01:39:09 margo Exp $";
#endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>
@ -286,6 +284,7 @@ __bam_read_root(dbp, txn, base_pgno, flags)
DB_MPOOLFILE *mpf;
int ret, t_ret;
COMPQUIET(flags, 0);
meta = NULL;
t = dbp->bt_internal;
LOCK_INIT(metalock);
@ -335,19 +334,6 @@ __bam_read_root(dbp, txn, base_pgno, flags)
*/
t->bt_lpgno = PGNO_INVALID;
/*
* We must initialize last_pgno, it could be stale.
* We update this without holding the meta page write
* locked. This is ok since two threads in the code
* must be setting it to the same value. SR #7159.
*/
if (!LF_ISSET(DB_RDONLY) && dbp->meta_pgno == PGNO_BASE_MD) {
__memp_last_pgno(mpf, &meta->dbmeta.last_pgno);
ret = __memp_fput(mpf, meta, DB_MPOOL_DIRTY);
} else
ret = __memp_fput(mpf, meta, 0);
meta = NULL;
err: /* Put the metadata page back. */
if (meta != NULL &&
(t_ret = __memp_fput(mpf, meta, 0)) != 0 && ret == 0)
@ -449,74 +435,76 @@ __bam_new_file(dbp, txn, fhp, name)
mpf = dbp->mpf;
root = NULL;
meta = NULL;
memset(&pdbt, 0, sizeof(pdbt));
buf = NULL;
/* Build meta-data page. */
if (name == NULL) {
/* Build the meta-data page. */
pgno = PGNO_BASE_MD;
ret = __memp_fget(mpf, &pgno, DB_MPOOL_CREATE, &meta);
if ((ret =
__memp_fget(mpf, &pgno, DB_MPOOL_CREATE, &meta)) != 0)
return (ret);
LSN_NOT_LOGGED(lsn);
__bam_init_meta(dbp, meta, PGNO_BASE_MD, &lsn);
meta->root = 1;
meta->dbmeta.last_pgno = 1;
ret = __memp_fput(mpf, meta, DB_MPOOL_DIRTY);
meta = NULL;
if (ret != 0)
goto err;
/* Build the root page. */
pgno = 1;
if ((ret =
__memp_fget(mpf, &pgno, DB_MPOOL_CREATE, &root)) != 0)
goto err;
P_INIT(root, dbp->pgsize, 1, PGNO_INVALID, PGNO_INVALID,
LEAFLEVEL, dbp->type == DB_RECNO ? P_LRECNO : P_LBTREE);
LSN_NOT_LOGGED(root->lsn);
ret = __memp_fput(mpf, root, DB_MPOOL_DIRTY);
root = NULL;
if (ret != 0)
goto err;
} else {
memset(&pdbt, 0, sizeof(pdbt));
/* Build the meta-data page. */
pginfo.db_pagesize = dbp->pgsize;
pginfo.flags =
F_ISSET(dbp, (DB_AM_CHKSUM | DB_AM_ENCRYPT | DB_AM_SWAP));
pginfo.type = dbp->type;
pdbt.data = &pginfo;
pdbt.size = sizeof(pginfo);
ret = __os_calloc(dbp->dbenv, 1, dbp->pgsize, &buf);
if ((ret = __os_calloc(dbenv, 1, dbp->pgsize, &buf)) != 0)
return (ret);
meta = (BTMETA *)buf;
}
if (ret != 0)
return (ret);
LSN_NOT_LOGGED(lsn);
__bam_init_meta(dbp, meta, PGNO_BASE_MD, &lsn);
meta->root = 1;
meta->dbmeta.last_pgno = 1;
if (name == NULL)
ret = __memp_fput(mpf, meta, DB_MPOOL_DIRTY);
else {
LSN_NOT_LOGGED(lsn);
__bam_init_meta(dbp, meta, PGNO_BASE_MD, &lsn);
meta->root = 1;
meta->dbmeta.last_pgno = 1;
if ((ret = __db_pgout(dbenv, PGNO_BASE_MD, meta, &pdbt)) != 0)
goto err;
ret = __fop_write(dbenv, txn, name,
DB_APP_DATA, fhp, dbp->pgsize, 0, 0, buf, dbp->pgsize, 1,
F_ISSET(dbp, DB_AM_NOT_DURABLE) ? DB_LOG_NOT_DURABLE : 0);
}
if (ret != 0)
goto err;
meta = NULL;
/* Now build root page. */
if (name == NULL) {
pgno = 1;
if ((ret =
__memp_fget(mpf, &pgno, DB_MPOOL_CREATE, &root)) != 0)
if ((ret = __fop_write(dbenv, txn, name, DB_APP_DATA, fhp,
dbp->pgsize, 0, 0, buf, dbp->pgsize, 1, F_ISSET(
dbp, DB_AM_NOT_DURABLE) ? DB_LOG_NOT_DURABLE : 0)) != 0)
goto err;
} else {
meta = NULL;
/* Build the root page. */
#ifdef DIAGNOSTIC
memset(buf, CLEAR_BYTE, dbp->pgsize);
#endif
root = (PAGE *)buf;
}
P_INIT(root, dbp->pgsize, 1, PGNO_INVALID, PGNO_INVALID,
LEAFLEVEL, dbp->type == DB_RECNO ? P_LRECNO : P_LBTREE);
LSN_NOT_LOGGED(root->lsn);
if (name == NULL)
ret = __memp_fput(mpf, root, DB_MPOOL_DIRTY);
else {
P_INIT(root, dbp->pgsize, 1, PGNO_INVALID, PGNO_INVALID,
LEAFLEVEL, dbp->type == DB_RECNO ? P_LRECNO : P_LBTREE);
LSN_NOT_LOGGED(root->lsn);
if ((ret = __db_pgout(dbenv, root->pgno, root, &pdbt)) != 0)
goto err;
ret = __fop_write(dbenv, txn, name,
DB_APP_DATA, fhp, dbp->pgsize, 1, 0, buf, dbp->pgsize, 1,
F_ISSET(dbp, DB_AM_NOT_DURABLE) ? DB_LOG_NOT_DURABLE : 0);
if ((ret = __fop_write(dbenv, txn, name, DB_APP_DATA, fhp,
dbp->pgsize, 1, 0, buf, dbp->pgsize, 1, F_ISSET(
dbp, DB_AM_NOT_DURABLE) ? DB_LOG_NOT_DURABLE : 0)) != 0)
goto err;
root = NULL;
}
if (ret != 0)
goto err;
root = NULL;
err: if (buf != NULL)
__os_free(dbenv, buf);
@ -604,9 +592,8 @@ err:
if (root != NULL)
if ((t_ret = __memp_fput(mpf, root, 0)) != 0 && ret == 0)
ret = t_ret;
if (LOCK_ISSET(metalock))
if ((t_ret = __LPUT(dbc, metalock)) != 0 && ret == 0)
ret = t_ret;
if ((t_ret = __LPUT(dbc, metalock)) != 0 && ret == 0)
ret = t_ret;
if (dbc != NULL)
if ((t_ret = __db_c_close(dbc)) != 0 && ret == 0)
ret = t_ret;

View File

@ -1,7 +1,7 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*/
/*
@ -38,14 +38,12 @@
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: bt_put.c,v 11.79 2004/01/28 03:35:49 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char revid[] = "$Id: bt_put.c,v 11.78 2003/10/31 15:07:40 bostic Exp $";
#endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>

View File

@ -1,16 +1,14 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: bt_rec.c,v 11.70 2004/09/24 00:43:12 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char revid[] = "$Id: bt_rec.c,v 11.64 2003/09/13 18:48:58 bostic Exp $";
#endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>
@ -51,7 +49,7 @@ __bam_split_recover(dbenv, dbtp, lsnp, op, info)
PAGE *_lp, *lp, *np, *pp, *_rp, *rp, *sp;
db_pgno_t pgno, root_pgno;
u_int32_t ptype;
int cmp, l_update, p_update, r_update, rc, ret, ret_l, rootsplit, t_ret;
int cmp, l_update, p_update, r_update, rc, ret, rootsplit, t_ret;
COMPQUIET(info, NULL);
REC_PRINT(__bam_split_print);
@ -83,50 +81,40 @@ __bam_split_recover(dbenv, dbtp, lsnp, op, info)
pgno = PGNO(sp);
root_pgno = argp->root_pgno;
rootsplit = root_pgno != PGNO_INVALID;
if ((ret_l = __memp_fget(mpf, &argp->left, 0, &lp)) != 0)
lp = NULL;
if (__memp_fget(mpf, &argp->right, 0, &rp) != 0)
rp = NULL;
REC_FGET(mpf, argp->left, &lp, right);
right: REC_FGET(mpf, argp->right, &rp, redo);
if (DB_REDO(op)) {
redo: if (DB_REDO(op)) {
l_update = r_update = p_update = 0;
/*
* Decide if we need to resplit the page.
*
* If this is a root split, then the root has to exist, it's
* the page we're splitting and it gets modified. If this is
* not a root split, then the left page has to exist, for the
* same reason.
* If this is a root split, then the root has to exist unless
* we have truncated it due to a future deallocation.
*/
if (rootsplit) {
if ((ret = __memp_fget(mpf, &pgno, 0, &pp)) != 0) {
ret = __db_pgerr(file_dbp, pgno, ret);
pp = NULL;
goto out;
}
cmp = log_compare(&LSN(pp), &LSN(argp->pg.data));
CHECK_LSN(op, cmp, &LSN(pp), &LSN(argp->pg.data));
REC_FGET(mpf, root_pgno, &pp, do_left);
cmp =
log_compare(&LSN(pp), &LSN(argp->pg.data));
CHECK_LSN(op,
cmp, &LSN(pp), &LSN(argp->pg.data));
p_update = cmp == 0;
} else if (lp == NULL) {
ret = __db_pgerr(file_dbp, argp->left, ret_l);
goto out;
}
if (lp != NULL) {
do_left: if (lp != NULL) {
cmp = log_compare(&LSN(lp), &argp->llsn);
CHECK_LSN(op, cmp, &LSN(lp), &argp->llsn);
if (cmp == 0)
l_update = 1;
} else
l_update = 1;
}
if (rp != NULL) {
cmp = log_compare(&LSN(rp), &argp->rlsn);
CHECK_LSN(op, cmp, &LSN(rp), &argp->rlsn);
if (cmp == 0)
r_update = 1;
} else
r_update = 1;
}
if (!p_update && !l_update && !r_update)
goto check_next;
@ -159,13 +147,6 @@ __bam_split_recover(dbenv, dbtp, lsnp, op, info)
NUM_ENT(sp))) != 0)
goto out;
/* If the left child is wrong, update it. */
if (lp == NULL && (ret = __memp_fget(
mpf, &argp->left, DB_MPOOL_CREATE, &lp)) != 0) {
ret = __db_pgerr(file_dbp, argp->left, ret);
lp = NULL;
goto out;
}
if (l_update) {
memcpy(lp, _lp, file_dbp->pgsize);
lp->lsn = *lsnp;
@ -174,13 +155,6 @@ __bam_split_recover(dbenv, dbtp, lsnp, op, info)
lp = NULL;
}
/* If the right child is wrong, update it. */
if (rp == NULL && (ret = __memp_fget(
mpf, &argp->right, DB_MPOOL_CREATE, &rp)) != 0) {
ret = __db_pgerr(file_dbp, argp->right, ret);
rp = NULL;
goto out;
}
if (r_update) {
memcpy(rp, _rp, file_dbp->pgsize);
rp->lsn = *lsnp;
@ -222,12 +196,19 @@ check_next: /*
* previous-page pointer updated to our new page. The next
* page must exist because we're redoing the operation.
*/
if (!rootsplit && !IS_ZERO_LSN(argp->nlsn)) {
if (!rootsplit && argp->npgno != PGNO_INVALID) {
if ((ret =
__memp_fget(mpf, &argp->npgno, 0, &np)) != 0) {
ret = __db_pgerr(file_dbp, argp->npgno, ret);
np = NULL;
goto out;
if (ret != DB_PAGE_NOTFOUND
#ifndef HAVE_FTRUNCATE
|| DB_REDO(op)
#endif
) {
ret = __db_pgerr(
file_dbp, argp->npgno, ret);
goto out;
} else
goto done;
}
cmp = log_compare(&LSN(np), &argp->nlsn);
CHECK_LSN(op, cmp, &LSN(np), &argp->nlsn);
@ -294,7 +275,7 @@ lrundo: if ((rootsplit && lp != NULL) || rp != NULL) {
* possible that the next-page never existed, we ignore it as
* if there's nothing to undo.
*/
if (!rootsplit && !IS_ZERO_LSN(argp->nlsn)) {
if (!rootsplit && argp->npgno != PGNO_INVALID) {
if ((ret =
__memp_fget(mpf, &argp->npgno, 0, &np)) != 0) {
np = NULL;
@ -366,17 +347,17 @@ __bam_rsplit_recover(dbenv, dbtp, lsnp, op, info)
/* Fix the root page. */
pgno = root_pgno = argp->root_pgno;
if ((ret = __memp_fget(mpf, &pgno, 0, &pagep)) != 0) {
/* The root page must always exist if we are going forward. */
if (DB_REDO(op)) {
if (ret != DB_PAGE_NOTFOUND
#ifndef HAVE_FTRUNCATE
|| DB_REDO(op)
#endif
) {
ret = __db_pgerr(file_dbp, pgno, ret);
goto out;
}
/* This must be the root of an OPD tree. */
DB_ASSERT(root_pgno !=
((BTREE *)file_dbp->bt_internal)->bt_root);
ret = 0;
goto do_page;
} else
goto do_page;
}
modified = 0;
cmp_n = log_compare(lsnp, &LSN(pagep));
cmp_p = log_compare(&LSN(pagep), &argp->rootlsn);
@ -408,10 +389,15 @@ do_page:
* doesn't exist, it's okay and there's nothing further to do.
*/
if ((ret = __memp_fget(mpf, &argp->pgno, 0, &pagep)) != 0) {
if (DB_UNDO(op))
if (ret != DB_PAGE_NOTFOUND
#ifndef HAVE_FTRUNCATE
|| DB_REDO(op)
#endif
) {
ret = __db_pgerr(file_dbp, argp->pgno, ret);
goto out;
} else
goto done;
ret = __db_pgerr(file_dbp, argp->pgno, ret);
goto out;
}
modified = 0;
(void)__ua_memcpy(&copy_lsn, &LSN(argp->pgdbt.data), sizeof(DB_LSN));
@ -468,10 +454,15 @@ __bam_adj_recover(dbenv, dbtp, lsnp, op, info)
/* Get the page; if it never existed and we're undoing, we're done. */
if ((ret = __memp_fget(mpf, &argp->pgno, 0, &pagep)) != 0) {
if (DB_UNDO(op))
if (ret != DB_PAGE_NOTFOUND
#ifndef HAVE_FTRUNCATE
|| DB_REDO(op)
#endif
) {
ret = __db_pgerr(file_dbp, argp->pgno, ret);
goto out;
} else
goto done;
ret = __db_pgerr(file_dbp, argp->pgno, ret);
goto out;
}
modified = 0;
@ -537,10 +528,15 @@ __bam_cadjust_recover(dbenv, dbtp, lsnp, op, info)
/* Get the page; if it never existed and we're undoing, we're done. */
if ((ret = __memp_fget(mpf, &argp->pgno, 0, &pagep)) != 0) {
if (DB_UNDO(op))
if (ret != DB_PAGE_NOTFOUND
#ifndef HAVE_FTRUNCATE
|| DB_REDO(op)
#endif
) {
ret = __db_pgerr(file_dbp, argp->pgno, ret);
goto out;
} else
goto done;
ret = __db_pgerr(file_dbp, argp->pgno, ret);
goto out;
}
modified = 0;
@ -621,10 +617,15 @@ __bam_cdel_recover(dbenv, dbtp, lsnp, op, info)
/* Get the page; if it never existed and we're undoing, we're done. */
if ((ret = __memp_fget(mpf, &argp->pgno, 0, &pagep)) != 0) {
if (DB_UNDO(op))
if (ret != DB_PAGE_NOTFOUND
#ifndef HAVE_FTRUNCATE
|| DB_REDO(op)
#endif
) {
ret = __db_pgerr(file_dbp, argp->pgno, ret);
goto out;
} else
goto done;
ret = __db_pgerr(file_dbp, argp->pgno, ret);
goto out;
}
modified = 0;
@ -692,10 +693,15 @@ __bam_repl_recover(dbenv, dbtp, lsnp, op, info)
/* Get the page; if it never existed and we're undoing, we're done. */
if ((ret = __memp_fget(mpf, &argp->pgno, 0, &pagep)) != 0) {
if (DB_UNDO(op))
if (ret != DB_PAGE_NOTFOUND
#ifndef HAVE_FTRUNCATE
|| DB_REDO(op)
#endif
) {
ret = __db_pgerr(file_dbp, argp->pgno, ret);
goto out;
} else
goto done;
ret = __db_pgerr(file_dbp, argp->pgno, ret);
goto out;
}
bk = GET_BKEYDATA(file_dbp, pagep, argp->indx);
@ -796,8 +802,11 @@ __bam_root_recover(dbenv, dbtp, lsnp, op, info)
REC_INTRO(__bam_root_read, 0);
if ((ret = __memp_fget(mpf, &argp->meta_pgno, 0, &meta)) != 0) {
/* The metadata page must always exist on redo. */
if (DB_REDO(op)) {
if (ret != DB_PAGE_NOTFOUND
#ifndef HAVE_FTRUNCATE
|| DB_REDO(op)
#endif
) {
ret = __db_pgerr(file_dbp, argp->meta_pgno, ret);
goto out;
} else
@ -973,3 +982,148 @@ out: if (rdbc != NULL && (t_ret = __db_c_close(rdbc)) != 0 && ret == 0)
ret = t_ret;
REC_CLOSE;
}
/*
* __bam_relink_recover --
* Recovery function for relink.
*
* PUBLIC: int __bam_relink_recover
* PUBLIC: __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *));
*/
int
__bam_relink_recover(dbenv, dbtp, lsnp, op, info)
DB_ENV *dbenv;
DBT *dbtp;
DB_LSN *lsnp;
db_recops op;
void *info;
{
__bam_relink_args *argp;
DB *file_dbp;
DBC *dbc;
DB_MPOOLFILE *mpf;
PAGE *pagep;
int cmp_n, cmp_p, modified, ret;
pagep = NULL;
COMPQUIET(info, NULL);
REC_PRINT(__bam_relink_print);
REC_INTRO(__bam_relink_read, 1);
/*
* There are up to three pages we need to check -- the page, and the
* previous and next pages, if they existed. For a page add operation,
* the current page is the result of a split and is being recovered
* elsewhere, so all we need do is recover the next page.
*/
if ((ret = __memp_fget(mpf, &argp->pgno, 0, &pagep)) != 0) {
if (ret != DB_PAGE_NOTFOUND
#ifndef HAVE_FTRUNCATE
|| DB_REDO(op)
#endif
) {
ret = __db_pgerr(file_dbp, argp->pgno, ret);
goto out;
} else
goto next2;
}
modified = 0;
cmp_p = log_compare(&LSN(pagep), &argp->lsn);
CHECK_LSN(op, cmp_p, &LSN(pagep), &argp->lsn);
if (cmp_p == 0 && DB_REDO(op)) {
/* Redo the relink. */
pagep->lsn = *lsnp;
modified = 1;
} else if (log_compare(lsnp, &LSN(pagep)) == 0 && DB_UNDO(op)) {
/* Undo the relink. */
pagep->next_pgno = argp->next;
pagep->prev_pgno = argp->prev;
pagep->lsn = argp->lsn;
modified = 1;
}
if ((ret = __memp_fput(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0)) != 0)
goto out;
pagep = NULL;
next2: if ((ret = __memp_fget(mpf, &argp->next, 0, &pagep)) != 0) {
if (ret != DB_PAGE_NOTFOUND
#ifndef HAVE_FTRUNCATE
|| DB_REDO(op)
#endif
) {
ret = __db_pgerr(file_dbp, argp->next, ret);
goto out;
} else
goto prev;
}
modified = 0;
cmp_n = log_compare(lsnp, &LSN(pagep));
cmp_p = log_compare(&LSN(pagep), &argp->lsn_next);
CHECK_LSN(op, cmp_p, &LSN(pagep), &argp->lsn_next);
if (cmp_p == 0 && DB_REDO(op)) {
/* Redo the remove or undo the add. */
pagep->prev_pgno = argp->prev;
modified = 1;
} else if (cmp_n == 0 && DB_UNDO(op)) {
/* Undo the remove or redo the add. */
pagep->prev_pgno = argp->pgno;
modified = 1;
}
if (modified == 1) {
if (DB_UNDO(op))
pagep->lsn = argp->lsn_next;
else
pagep->lsn = *lsnp;
}
if ((ret = __memp_fput(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0)) != 0)
goto out;
pagep = NULL;
prev: if ((ret = __memp_fget(mpf, &argp->prev, 0, &pagep)) != 0) {
if (ret != DB_PAGE_NOTFOUND
#ifndef HAVE_FTRUNCATE
|| DB_REDO(op)
#endif
) {
ret = __db_pgerr(file_dbp, argp->prev, ret);
goto out;
} else
goto done;
}
modified = 0;
cmp_p = log_compare(&LSN(pagep), &argp->lsn_prev);
CHECK_LSN(op, cmp_p, &LSN(pagep), &argp->lsn_prev);
if (cmp_p == 0 && DB_REDO(op)) {
/* Redo the relink. */
pagep->next_pgno = argp->next;
modified = 1;
} else if (log_compare(lsnp, &LSN(pagep)) == 0 && DB_UNDO(op)) {
/* Undo the relink. */
pagep->next_pgno = argp->pgno;
modified = 1;
}
if (modified == 1) {
if (DB_UNDO(op))
pagep->lsn = argp->lsn_prev;
else
pagep->lsn = *lsnp;
}
if ((ret = __memp_fput(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0)) != 0)
goto out;
pagep = NULL;
done: *lsnp = argp->prev_lsn;
ret = 0;
out: if (pagep != NULL)
(void)__memp_fput(mpf, pagep, 0);
REC_CLOSE;
}

View File

@ -1,16 +1,14 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1998-2003
* Copyright (c) 1998-2004
* Sleepycat Software. All rights reserved.
*
* $Id: bt_reclaim.c,v 11.15 2004/01/28 03:35:49 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char revid[] = "$Id: bt_reclaim.c,v 11.14 2003/06/30 17:19:33 bostic Exp $";
#endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>

View File

@ -1,16 +1,14 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1997-2003
* Copyright (c) 1997-2004
* Sleepycat Software. All rights reserved.
*
* $Id: bt_recno.c,v 11.117 2004/03/28 17:01:01 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char revid[] = "$Id: bt_recno.c,v 11.113 2003/06/30 17:19:34 bostic Exp $";
#endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>
@ -89,11 +87,13 @@ static int __ram_update __P((DBC *, db_recno_t, int));
* After a search, copy the found page into the cursor, discarding any
* currently held lock.
*/
#define STACK_TO_CURSOR(cp) { \
#define STACK_TO_CURSOR(cp, ret) { \
int __t_ret; \
(cp)->page = (cp)->csp->page; \
(cp)->pgno = (cp)->csp->page->pgno; \
(cp)->indx = (cp)->csp->indx; \
(void)__TLPUT(dbc, (cp)->lock); \
if ((__t_ret = __TLPUT(dbc, (cp)->lock)) != 0 && (ret) == 0) \
ret = __t_ret; \
(cp)->lock = (cp)->csp->lock; \
(cp)->lock_mode = (cp)->csp->lock_mode; \
}
@ -235,7 +235,9 @@ __ram_c_del(dbc)
stack = 1;
/* Copy the page into the cursor. */
STACK_TO_CURSOR(cp);
STACK_TO_CURSOR(cp, ret);
if (ret != 0)
goto err;
/*
* If re-numbering records, the on-page deleted flag can only mean
@ -495,7 +497,9 @@ retry: switch (flags) {
}
/* Copy the page into the cursor. */
STACK_TO_CURSOR(cp);
STACK_TO_CURSOR(cp, ret);
if (ret != 0)
goto err;
/*
* If re-numbering records, the on-page deleted flag means this
@ -653,7 +657,9 @@ split: if ((ret = __bam_rsearch(dbc, &cp->recno, S_INSERT, 1, &exact)) != 0)
DB_ASSERT(exact || CD_ISSET(cp));
/* Copy the page into the cursor. */
STACK_TO_CURSOR(cp);
STACK_TO_CURSOR(cp, ret);
if (ret != 0)
goto err;
ret = __bam_iitem(dbc, key, data, iiflags, 0);
t_ret = __bam_stkrel(dbc, STK_CLRDBC);
@ -988,7 +994,7 @@ __ram_source(dbp)
* when it comes time to write the database back to the source.
*/
if ((t->re_fp = fopen(t->re_source, "r")) == NULL) {
ret = errno;
ret = __os_get_errno();
__db_err(dbp->dbenv, "%s: %s", t->re_source, db_strerror(ret));
return (ret);
}
@ -1065,13 +1071,13 @@ __ram_writeback(dbp)
*/
if (t->re_fp != NULL) {
if (fclose(t->re_fp) != 0) {
ret = errno;
ret = __os_get_errno();
goto err;
}
t->re_fp = NULL;
}
if ((fp = fopen(t->re_source, "w")) == NULL) {
ret = errno;
ret = __os_get_errno();
__db_err(dbenv, "%s: %s", t->re_source, db_strerror(ret));
goto err;
}
@ -1093,23 +1099,24 @@ __ram_writeback(dbp)
* and the pad character if we're doing fixed-length records.
*/
delim = t->re_delim;
if (F_ISSET(dbp, DB_AM_FIXEDLEN)) {
if ((ret = __os_malloc(dbenv, t->re_len, &pad)) != 0)
goto err;
memset(pad, t->re_pad, t->re_len);
}
for (keyno = 1;; ++keyno) {
switch (ret = __db_get(dbp, NULL, &key, &data, 0)) {
case 0:
if (data.size != 0 && (u_int32_t)fwrite(
data.data, 1, data.size, fp) != data.size)
if (data.size != 0 &&
fwrite(data.data, 1, data.size, fp) != data.size)
goto write_err;
break;
case DB_KEYEMPTY:
if (F_ISSET(dbp, DB_AM_FIXEDLEN) &&
(u_int32_t)fwrite(pad, 1, t->re_len, fp) !=
t->re_len)
goto write_err;
if (F_ISSET(dbp, DB_AM_FIXEDLEN)) {
if (pad == NULL) {
if ((ret = __os_malloc(
dbenv, t->re_len, &pad)) != 0)
goto err;
memset(pad, t->re_pad, t->re_len);
}
if (fwrite(pad, 1, t->re_len, fp) != t->re_len)
goto write_err;
}
break;
case DB_NOTFOUND:
ret = 0;
@ -1119,8 +1126,8 @@ __ram_writeback(dbp)
}
if (!F_ISSET(dbp, DB_AM_FIXEDLEN) &&
fwrite(&delim, 1, 1, fp) != 1) {
write_err: ret = errno;
__db_err(dbp->dbenv,
write_err: ret = __os_get_errno();
__db_err(dbenv,
"%s: write failed to backing file: %s",
t->re_source, strerror(ret));
goto err;
@ -1130,9 +1137,10 @@ write_err: ret = errno;
err:
done: /* Close the file descriptor. */
if (fp != NULL && fclose(fp) != 0) {
t_ret = __os_get_errno();
if (ret == 0)
ret = errno;
__db_err(dbenv, "%s: %s", t->re_source, db_strerror(errno));
ret = t_ret;
__db_err(dbenv, "%s: %s", t->re_source, db_strerror(t_ret));
}
/* Discard the cursor. */
@ -1275,7 +1283,9 @@ retry: /* Find the slot for insertion. */
stack = 1;
/* Copy the page into the cursor. */
STACK_TO_CURSOR(cp);
STACK_TO_CURSOR(cp, ret);
if (ret != 0)
goto err;
/*
* The application may modify the data based on the selected record

View File

@ -1,7 +1,7 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*/
/*
@ -35,14 +35,12 @@
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: bt_rsearch.c,v 11.40 2004/07/23 17:21:09 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char revid[] = "$Id: bt_rsearch.c,v 11.37 2003/06/30 17:19:34 bostic Exp $";
#endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>
#endif
@ -78,11 +76,12 @@ __bam_rsearch(dbc, recnop, flags, stop, exactp)
db_lockmode_t lock_mode;
db_pgno_t pg;
db_recno_t recno, t_recno, total;
int ret, stack;
int ret, stack, t_ret;
dbp = dbc->dbp;
mpf = dbp->mpf;
cp = (BTREE_CURSOR *)dbc->internal;
h = NULL;
BT_STK_CLR(cp);
@ -123,8 +122,11 @@ __bam_rsearch(dbc, recnop, flags, stop, exactp)
if (!stack &&
((LF_ISSET(S_PARENT) && (u_int8_t)(stop + 1) >= h->level) ||
(LF_ISSET(S_WRITE) && h->level == LEAFLEVEL))) {
(void)__memp_fput(mpf, h, 0);
(void)__LPUT(dbc, lock);
ret = __memp_fput(mpf, h, 0);
if ((t_ret = __LPUT(dbc, lock)) != 0 && ret == 0)
ret = t_ret;
if (ret != 0)
return (ret);
lock_mode = DB_LOCK_WRITE;
if ((ret = __db_lget(dbc, 0, pg, lock_mode, 0, &lock)) != 0)
return (ret);
@ -167,9 +169,11 @@ __bam_rsearch(dbc, recnop, flags, stop, exactp)
* eliminate any concurrency. A possible fix
* would be to lock the last leaf page instead.
*/
(void)__memp_fput(mpf, h, 0);
(void)__TLPUT(dbc, lock);
return (DB_NOTFOUND);
ret = __memp_fput(mpf, h, 0);
if ((t_ret =
__TLPUT(dbc, lock)) != 0 && ret == 0)
ret = t_ret;
return (ret == 0 ? DB_NOTFOUND : ret);
}
}
}
@ -201,9 +205,13 @@ __bam_rsearch(dbc, recnop, flags, stop, exactp)
*exactp = 0;
if (!LF_ISSET(S_PAST_EOF) ||
recno > t_recno + 1) {
(void)__memp_fput(mpf, h, 0);
(void)__TLPUT(dbc, lock);
ret = DB_NOTFOUND;
ret = __memp_fput(mpf, h, 0);
h = NULL;
if ((t_ret = __TLPUT(dbc,
lock)) != 0 && ret == 0)
ret = t_ret;
if (ret == 0)
ret = DB_NOTFOUND;
goto err;
}
}
@ -265,6 +273,7 @@ __bam_rsearch(dbc, recnop, flags, stop, exactp)
cp, h, indx, lock, lock_mode, ret);
if (ret != 0)
goto err;
h = NULL;
lock_mode = DB_LOCK_WRITE;
if ((ret =
@ -281,7 +290,9 @@ __bam_rsearch(dbc, recnop, flags, stop, exactp)
(h->level - 1) == LEAFLEVEL)
stack = 1;
(void)__memp_fput(mpf, h, 0);
if ((ret = __memp_fput(mpf, h, 0)) != 0)
goto err;
h = NULL;
lock_mode = stack &&
LF_ISSET(S_WRITE) ? DB_LOCK_WRITE : DB_LOCK_READ;
@ -292,7 +303,7 @@ __bam_rsearch(dbc, recnop, flags, stop, exactp)
* is OK because this only happens when we are
* descending the tree holding read-locks.
*/
__LPUT(dbc, lock);
(void)__LPUT(dbc, lock);
goto err;
}
}
@ -302,8 +313,12 @@ __bam_rsearch(dbc, recnop, flags, stop, exactp)
}
/* NOTREACHED */
err: BT_STK_POP(cp);
err: if (h != NULL && (t_ret = __memp_fput(mpf, h, 0)) != 0 && ret == 0)
ret = t_ret;
BT_STK_POP(cp);
__bam_stkrel(dbc, 0);
return (ret);
}
@ -378,7 +393,7 @@ __bam_nrecs(dbc, rep)
DB_MPOOLFILE *mpf;
PAGE *h;
db_pgno_t pgno;
int ret;
int ret, t_ret;
dbp = dbc->dbp;
mpf = dbp->mpf;
@ -391,10 +406,11 @@ __bam_nrecs(dbc, rep)
*rep = RE_NREC(h);
(void)__memp_fput(mpf, h, 0);
(void)__TLPUT(dbc, lock);
ret = __memp_fput(mpf, h, 0);
if ((t_ret = __TLPUT(dbc, lock)) != 0 && ret == 0)
ret = t_ret;
return (0);
return (ret);
}
/*

View File

@ -1,7 +1,7 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*/
/*
@ -38,14 +38,12 @@
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: bt_search.c,v 11.50 2004/07/23 17:21:09 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char revid[] = "$Id: bt_search.c,v 11.47 2003/06/30 17:19:35 bostic Exp $";
#endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>
@ -85,12 +83,13 @@ __bam_search(dbc, root_pgno, key, flags, stop, recnop, exactp)
db_lockmode_t lock_mode;
db_pgno_t pg;
db_recno_t recno;
int adjust, cmp, deloffset, ret, stack;
int adjust, cmp, deloffset, ret, stack, t_ret;
int (*func) __P((DB *, const DBT *, const DBT *));
dbp = dbc->dbp;
mpf = dbp->mpf;
cp = (BTREE_CURSOR *)dbc->internal;
h = NULL;
t = dbp->bt_internal;
recno = 0;
@ -135,8 +134,11 @@ try_again:
if (!stack &&
((LF_ISSET(S_PARENT) && (u_int8_t)(stop + 1) >= h->level) ||
(LF_ISSET(S_WRITE) && h->level == LEAFLEVEL))) {
(void)__memp_fput(mpf, h, 0);
(void)__LPUT(dbc, lock);
ret = __memp_fput(mpf, h, 0);
if ((t_ret = __LPUT(dbc, lock)) != 0 && ret == 0)
ret = t_ret;
if (ret != 0)
return (ret);
lock_mode = DB_LOCK_WRITE;
if ((ret = __db_lget(dbc, 0, pg, lock_mode, 0, &lock)) != 0)
return (ret);
@ -149,8 +151,11 @@ try_again:
(u_int8_t)(stop + 1) >= h->level) ||
(LF_ISSET(S_WRITE) && h->level == LEAFLEVEL))) {
/* Someone else split the root, start over. */
(void)__memp_fput(mpf, h, 0);
(void)__LPUT(dbc, lock);
ret = __memp_fput(mpf, h, 0);
if ((t_ret = __LPUT(dbc, lock)) != 0 && ret == 0)
ret = t_ret;
if (ret != 0)
return (ret);
goto try_again;
}
stack = 1;
@ -198,13 +203,19 @@ try_again:
if (TYPE(h) == P_LBTREE || TYPE(h) == P_LDUP) {
*exactp = 0;
if (LF_ISSET(S_EXACT))
goto notfound;
if (LF_ISSET(S_EXACT)) {
ret = DB_NOTFOUND;
goto err;
}
if (LF_ISSET(S_STK_ONLY)) {
BT_STK_NUM(dbp->dbenv, cp, h, base, ret);
__LPUT(dbc, lock);
(void)__memp_fput(mpf, h, 0);
if ((t_ret =
__LPUT(dbc, lock)) != 0 && ret == 0)
ret = t_ret;
if ((t_ret =
__memp_fput(mpf, h, 0)) != 0 && ret == 0)
ret = t_ret;
return (ret);
}
@ -244,12 +255,17 @@ next: if (recnop != NULL)
if (LF_ISSET(S_STK_ONLY)) {
if (stop == h->level) {
BT_STK_NUM(dbp->dbenv, cp, h, indx, ret);
__LPUT(dbc, lock);
(void)__memp_fput(mpf, h, 0);
if ((t_ret =
__LPUT(dbc, lock)) != 0 && ret == 0)
ret = t_ret;
if ((t_ret =
__memp_fput(mpf, h, 0)) != 0 && ret == 0)
ret = t_ret;
return (ret);
}
BT_STK_NUMPUSH(dbp->dbenv, cp, h, indx, ret);
(void)__memp_fput(mpf, h, 0);
h = NULL;
if ((ret = __db_lget(dbc,
LCK_COUPLE_ALWAYS, pg, lock_mode, 0, &lock)) != 0) {
/*
@ -257,7 +273,7 @@ next: if (recnop != NULL)
* is OK because it only happens when descending
* the tree holding read-locks.
*/
__LPUT(dbc, lock);
(void)__LPUT(dbc, lock);
return (ret);
}
} else if (stack) {
@ -273,6 +289,7 @@ next: if (recnop != NULL)
cp, h, indx, lock, lock_mode, ret);
if (ret != 0)
goto err;
h = NULL;
lock_mode = DB_LOCK_WRITE;
if ((ret =
@ -289,7 +306,9 @@ next: if (recnop != NULL)
(h->level - 1) == LEAFLEVEL)
stack = 1;
(void)__memp_fput(mpf, h, 0);
if ((ret = __memp_fput(mpf, h, 0)) != 0)
goto err;
h = NULL;
lock_mode = stack &&
LF_ISSET(S_WRITE) ? DB_LOCK_WRITE : DB_LOCK_READ;
@ -300,7 +319,7 @@ next: if (recnop != NULL)
* is OK because this only happens when we are
* descending the tree holding read-locks.
*/
__LPUT(dbc, lock);
(void)__LPUT(dbc, lock);
goto err;
}
}
@ -357,8 +376,10 @@ found: *exactp = 1;
* If we weren't able to find a non-deleted duplicate, return
* DB_NOTFOUND.
*/
if (B_DISSET(GET_BKEYDATA(dbp, h, indx + deloffset)->type))
goto notfound;
if (B_DISSET(GET_BKEYDATA(dbp, h, indx + deloffset)->type)) {
ret = DB_NOTFOUND;
goto err;
}
/*
* Increment the record counter to point to the found element.
@ -381,23 +402,27 @@ found: *exactp = 1;
if (LF_ISSET(S_STK_ONLY)) {
BT_STK_NUM(dbp->dbenv, cp, h, indx, ret);
__LPUT(dbc, lock);
(void)__memp_fput(mpf, h, 0);
} else {
if ((t_ret = __LPUT(dbc, lock)) != 0 && ret == 0)
ret = t_ret;
if ((t_ret = __memp_fput(mpf, h, 0)) != 0 && ret == 0)
ret = t_ret;
} else
BT_STK_ENTER(dbp->dbenv, cp, h, indx, lock, lock_mode, ret);
if (ret != 0)
goto err;
}
if (ret != 0)
goto err;
return (0);
notfound:
/* Keep the page locked for serializability. */
(void)__memp_fput(mpf, h, 0);
(void)__TLPUT(dbc, lock);
ret = DB_NOTFOUND;
err: if (h != NULL && (t_ret = __memp_fput(mpf, h, 0)) != 0 && ret == 0)
ret = t_ret;
err: BT_STK_POP(cp);
/* Keep any not-found page locked for serializability. */
if ((t_ret = __TLPUT(dbc, lock)) != 0 && ret == 0)
ret = t_ret;
BT_STK_POP(cp);
__bam_stkrel(dbc, 0);
return (ret);
}
@ -446,10 +471,12 @@ __bam_stkrel(dbc, flags)
*/
epg->page = NULL;
}
if (LF_ISSET(STK_NOLOCK))
(void)__LPUT(dbc, epg->lock);
else
(void)__TLPUT(dbc, epg->lock);
if (LF_ISSET(STK_NOLOCK)) {
if ((t_ret = __LPUT(dbc, epg->lock)) != 0 && ret == 0)
ret = t_ret;
} else
if ((t_ret = __TLPUT(dbc, epg->lock)) != 0 && ret == 0)
ret = t_ret;
}
/* Clear the stack, all pages have been released. */

View File

@ -1,7 +1,7 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*/
/*
@ -35,18 +35,15 @@
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: bt_split.c,v 11.66 2004/10/01 13:00:21 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char revid[] = "$Id: bt_split.c,v 11.60 2003/06/30 17:19:35 bostic Exp $";
#endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>
#include <limits.h>
#include <string.h>
#endif
@ -120,7 +117,7 @@ __bam_split(dbc, arg, root_pgnop)
arg, S_WRPAIR, level, NULL, &exact) :
__bam_rsearch(dbc,
(db_recno_t *)arg, S_WRPAIR, level, &exact))) != 0)
return (ret);
break;
if (root_pgnop != NULL)
*root_pgnop = cp->csp[0].page->pgno == root_pgno ?
@ -134,7 +131,7 @@ __bam_split(dbc, arg, root_pgnop)
if (2 * B_MAXSIZEONPAGE(cp->ovflsize)
<= (db_indx_t)P_FREESPACE(dbc->dbp, cp->csp[0].page)) {
__bam_stkrel(dbc, STK_NOLOCK);
return (0);
break;
}
ret = cp->csp[0].page->pgno == root_pgno ?
__bam_root(dbc, &cp->csp[0]) :
@ -162,10 +159,13 @@ __bam_split(dbc, arg, root_pgnop)
dir = UP;
break;
default:
return (ret);
goto err;
}
}
/* NOTREACHED */
err: if (root_pgnop != NULL)
*root_pgnop = cp->root;
return (ret);
}
/*
@ -184,10 +184,11 @@ __bam_root(dbc, cp)
PAGE *lp, *rp;
db_indx_t split;
u_int32_t opflags;
int ret;
int ret, t_ret;
dbp = dbc->dbp;
mpf = dbp->mpf;
lp = rp = NULL;
/* Yeah, right. */
if (cp->page->level >= MAXBTREELEVEL) {
@ -198,7 +199,6 @@ __bam_root(dbc, cp)
}
/* Create new left and right pages for the split. */
lp = rp = NULL;
if ((ret = __db_new(dbc, TYPE(cp->page), &lp)) != 0 ||
(ret = __db_new(dbc, TYPE(cp->page), &rp)) != 0)
goto err;
@ -238,24 +238,21 @@ __bam_root(dbc, cp)
goto err;
/* Adjust any cursors. */
if ((ret = __bam_ca_split(dbc,
cp->page->pgno, lp->pgno, rp->pgno, split, 1)) != 0)
goto err;
ret = __bam_ca_split(dbc, cp->page->pgno, lp->pgno, rp->pgno, split, 1);
/* Success -- write the real pages back to the store. */
(void)__memp_fput(mpf, cp->page, DB_MPOOL_DIRTY);
(void)__TLPUT(dbc, cp->lock);
(void)__memp_fput(mpf, lp, DB_MPOOL_DIRTY);
(void)__memp_fput(mpf, rp, DB_MPOOL_DIRTY);
/* Success or error: release pages and locks. */
err: if ((t_ret =
__memp_fput(mpf, cp->page, DB_MPOOL_DIRTY)) != 0 && ret == 0)
ret = t_ret;
if ((t_ret = __TLPUT(dbc, cp->lock)) != 0 && ret == 0)
ret = t_ret;
if (lp != NULL &&
(t_ret = __memp_fput(mpf, lp, DB_MPOOL_DIRTY)) != 0 && ret == 0)
ret = t_ret;
if (rp != NULL &&
(t_ret = __memp_fput(mpf, rp, DB_MPOOL_DIRTY)) != 0 && ret == 0)
ret = t_ret;
return (0);
err: if (lp != NULL)
(void)__memp_fput(mpf, lp, 0);
if (rp != NULL)
(void)__memp_fput(mpf, rp, 0);
(void)__memp_fput(mpf, cp->page, 0);
(void)__TLPUT(dbc, cp->lock);
return (ret);
}
@ -371,9 +368,13 @@ __bam_page(dbc, pp, cp)
goto err;
/*
* Lock the new page. We need to do this because someone
* could get here through bt_lpgno if this page was recently
* dealocated. They can't look at it before we commit.
* Lock the new page. We need to do this for two reasons: first, the
* fast-lookup code might have a reference to this page in bt_lpgno if
* the page was recently deleted from the tree, and that code doesn't
* walk the tree and so won't encounter the parent's page lock.
* Second, a dirty reader could get to this page via the parent or old
* page after the split is done but before the transaction is committed
* or aborted.
*/
if ((ret = __db_lget(dbc,
0, PGNO(alloc_rp), DB_LOCK_WRITE, 0, &rplock)) != 0)
@ -460,20 +461,24 @@ __bam_page(dbc, pp, cp)
if ((t_ret =
__memp_fput(mpf, alloc_rp, DB_MPOOL_DIRTY)) != 0 && ret == 0)
ret = t_ret;
(void)__TLPUT(dbc, rplock);
if ((t_ret = __TLPUT(dbc, rplock)) != 0 && ret == 0)
ret = t_ret;
if ((t_ret =
__memp_fput(mpf, pp->page, DB_MPOOL_DIRTY)) != 0 && ret == 0)
ret = t_ret;
(void)__TLPUT(dbc, pp->lock);
if ((t_ret = __TLPUT(dbc, pp->lock)) != 0 && ret == 0)
ret = t_ret;
if ((t_ret =
__memp_fput(mpf, cp->page, DB_MPOOL_DIRTY)) != 0 && ret == 0)
ret = t_ret;
(void)__TLPUT(dbc, cp->lock);
if ((t_ret = __TLPUT(dbc, cp->lock)) != 0 && ret == 0)
ret = t_ret;
if (tp != NULL) {
if ((t_ret =
__memp_fput(mpf, tp, DB_MPOOL_DIRTY)) != 0 && ret == 0)
ret = t_ret;
(void)__TLPUT(dbc, tplock);
if ((t_ret = __TLPUT(dbc, tplock)) != 0 && ret == 0)
ret = t_ret;
}
return (ret);

View File

@ -1,19 +1,18 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: bt_stat.c,v 11.78 2004/09/22 03:31:26 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char revid[] = "$Id: bt_stat.c,v 11.61 2003/09/13 18:52:21 bostic Exp $";
#endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>
#include <ctype.h>
#include <string.h>
#endif
@ -24,6 +23,7 @@ static const char revid[] = "$Id: bt_stat.c,v 11.61 2003/09/13 18:52:21 bostic E
#include "dbinc/lock.h"
#include "dbinc/mp.h"
#ifdef HAVE_STATISTICS
/*
* __bam_stat --
* Gather/print the btree statistics
@ -103,10 +103,12 @@ __bam_stat(dbc, spp, flags)
sp->bt_levels = h->level;
/* Discard the root page. */
if ((ret = __memp_fput(mpf, h, 0)) != 0)
goto err;
ret = __memp_fput(mpf, h, 0);
h = NULL;
__LPUT(dbc, lock);
if ((t_ret = __LPUT(dbc, lock)) != 0 && ret == 0)
ret = t_ret;
if (ret != 0)
goto err;
/* Walk the tree. */
if ((ret = __bam_traverse(dbc,
@ -120,10 +122,12 @@ __bam_stat(dbc, spp, flags)
write_meta = !F_ISSET(dbp, DB_AM_RDONLY);
meta_only:
if (t->bt_meta != PGNO_BASE_MD || write_meta != 0) {
if ((ret = __memp_fput(mpf, meta, 0)) != 0)
goto err;
ret = __memp_fput(mpf, meta, 0);
meta = NULL;
__LPUT(dbc, metalock);
if ((t_ret = __LPUT(dbc, metalock)) != 0 && ret == 0)
ret = t_ret;
if (ret != 0)
goto err;
if ((ret = __db_lget(dbc,
0, t->bt_meta, write_meta == 0 ?
@ -138,14 +142,15 @@ meta_only:
if ((ret = __db_lget(dbc, 0,
cp->root, DB_LOCK_READ, 0, &lock)) != 0)
goto err;
if ((ret =
__memp_fget(mpf, &cp->root, 0, (PAGE **)&h)) != 0)
if ((ret = __memp_fget(mpf, &cp->root, 0, &h)) != 0)
goto err;
sp->bt_nkeys = RE_NREC(h);
} else
sp->bt_nkeys = meta->dbmeta.key_count;
sp->bt_ndata = meta->dbmeta.record_count;
sp->bt_ndata = dbp->type == DB_RECNO ?
sp->bt_nkeys : meta->dbmeta.record_count;
}
/* Get metadata page statistics. */
@ -166,12 +171,14 @@ meta_only:
*(DB_BTREE_STAT **)spp = sp;
err: /* Discard the second page. */
__LPUT(dbc, lock);
if ((t_ret = __LPUT(dbc, lock)) != 0 && ret == 0)
ret = t_ret;
if (h != NULL && (t_ret = __memp_fput(mpf, h, 0)) != 0 && ret == 0)
ret = t_ret;
/* Discard the metadata page. */
__LPUT(dbc, metalock);
if ((t_ret = __LPUT(dbc, metalock)) != 0 && ret == 0)
ret = t_ret;
if (meta != NULL && (t_ret = __memp_fput(
mpf, meta, write_meta == 0 ? 0 : DB_MPOOL_DIRTY)) != 0 && ret == 0)
ret = t_ret;
@ -185,106 +192,113 @@ err: /* Discard the second page. */
}
/*
* __bam_traverse --
* Walk a Btree database.
* __bam_stat_print --
* Display btree/recno statistics.
*
* PUBLIC: int __bam_traverse __P((DBC *, db_lockmode_t,
* PUBLIC: db_pgno_t, int (*)(DB *, PAGE *, void *, int *), void *));
* PUBLIC: int __bam_stat_print __P((DBC *, u_int32_t));
*/
int
__bam_traverse(dbc, mode, root_pgno, callback, cookie)
__bam_stat_print(dbc, flags)
DBC *dbc;
db_lockmode_t mode;
db_pgno_t root_pgno;
int (*callback)__P((DB *, PAGE *, void *, int *));
void *cookie;
u_int32_t flags;
{
BINTERNAL *bi;
BKEYDATA *bk;
static const FN fn[] = {
{ BTM_DUP, "duplicates" },
{ BTM_RECNO, "recno" },
{ BTM_RECNUM, "record-numbers" },
{ BTM_FIXEDLEN, "fixed-length" },
{ BTM_RENUMBER, "renumber" },
{ BTM_SUBDB, "multiple-databases" },
{ BTM_DUPSORT, "sorted duplicates" },
{ 0, NULL }
};
DB *dbp;
DB_LOCK lock;
DB_MPOOLFILE *mpf;
PAGE *h;
RINTERNAL *ri;
db_indx_t indx;
int already_put, ret, t_ret;
DB_BTREE_STAT *sp;
DB_ENV *dbenv;
int lorder, ret;
const char *s;
dbp = dbc->dbp;
mpf = dbp->mpf;
already_put = 0;
dbenv = dbp->dbenv;
if ((ret = __db_lget(dbc, 0, root_pgno, mode, 0, &lock)) != 0)
return (ret);
if ((ret = __memp_fget(mpf, &root_pgno, 0, &h)) != 0) {
__LPUT(dbc, lock);
if ((ret = __bam_stat(dbc, &sp, 0)) != 0)
return (ret);
if (LF_ISSET(DB_STAT_ALL)) {
__db_msg(dbenv, "%s", DB_GLOBAL(db_line));
__db_msg(dbenv, "Default Btree/Recno database information:");
}
switch (TYPE(h)) {
case P_IBTREE:
for (indx = 0; indx < NUM_ENT(h); indx += O_INDX) {
bi = GET_BINTERNAL(dbp, h, indx);
if (B_TYPE(bi->type) == B_OVERFLOW &&
(ret = __db_traverse_big(dbp,
((BOVERFLOW *)bi->data)->pgno,
callback, cookie)) != 0)
goto err;
if ((ret = __bam_traverse(
dbc, mode, bi->pgno, callback, cookie)) != 0)
goto err;
}
__db_msg(dbenv, "%lx\tBtree magic number", (u_long)sp->bt_magic);
__db_msg(dbenv, "%lu\tBtree version number", (u_long)sp->bt_version);
(void)__db_get_lorder(dbp, &lorder);
switch (lorder) {
case 1234:
s = "Little-endian";
break;
case P_IRECNO:
for (indx = 0; indx < NUM_ENT(h); indx += O_INDX) {
ri = GET_RINTERNAL(dbp, h, indx);
if ((ret = __bam_traverse(
dbc, mode, ri->pgno, callback, cookie)) != 0)
goto err;
}
break;
case P_LBTREE:
for (indx = 0; indx < NUM_ENT(h); indx += P_INDX) {
bk = GET_BKEYDATA(dbp, h, indx);
if (B_TYPE(bk->type) == B_OVERFLOW &&
(ret = __db_traverse_big(dbp,
GET_BOVERFLOW(dbp, h, indx)->pgno,
callback, cookie)) != 0)
goto err;
bk = GET_BKEYDATA(dbp, h, indx + O_INDX);
if (B_TYPE(bk->type) == B_DUPLICATE &&
(ret = __bam_traverse(dbc, mode,
GET_BOVERFLOW(dbp, h, indx + O_INDX)->pgno,
callback, cookie)) != 0)
goto err;
if (B_TYPE(bk->type) == B_OVERFLOW &&
(ret = __db_traverse_big(dbp,
GET_BOVERFLOW(dbp, h, indx + O_INDX)->pgno,
callback, cookie)) != 0)
goto err;
}
break;
case P_LDUP:
case P_LRECNO:
for (indx = 0; indx < NUM_ENT(h); indx += O_INDX) {
bk = GET_BKEYDATA(dbp, h, indx);
if (B_TYPE(bk->type) == B_OVERFLOW &&
(ret = __db_traverse_big(dbp,
GET_BOVERFLOW(dbp, h, indx)->pgno,
callback, cookie)) != 0)
goto err;
}
case 4321:
s = "Big-endian";
break;
default:
return (__db_pgfmt(dbp->dbenv, h->pgno));
s = "Unrecognized byte order";
break;
}
__db_msg(dbenv, "%s\tByte order", s);
__db_prflags(dbenv, NULL, sp->bt_metaflags, fn, NULL, "\tFlags");
if (dbp->type == DB_BTREE) {
#ifdef NOT_IMPLEMENTED
__db_dl(dbenv, "Maximum keys per-page", (u_long)sp->bt_maxkey);
#endif
__db_dl(dbenv, "Minimum keys per-page", (u_long)sp->bt_minkey);
}
if (dbp->type == DB_RECNO) {
__db_dl(dbenv,
"Fixed-length record size", (u_long)sp->bt_re_len);
__db_dl(dbenv,
"%#x\tFixed-length record pad", (u_int)sp->bt_re_pad);
}
__db_dl(dbenv,
"Underlying database page size", (u_long)sp->bt_pagesize);
__db_dl(dbenv, "Number of levels in the tree", (u_long)sp->bt_levels);
__db_dl(dbenv, dbp->type == DB_BTREE ?
"Number of unique keys in the tree" :
"Number of records in the tree", (u_long)sp->bt_nkeys);
__db_dl(dbenv,
"Number of data items in the tree", (u_long)sp->bt_ndata);
ret = callback(dbp, h, cookie, &already_put);
__db_dl(dbenv,
"Number of tree internal pages", (u_long)sp->bt_int_pg);
__db_dl_pct(dbenv,
"Number of bytes free in tree internal pages",
(u_long)sp->bt_int_pgfree,
DB_PCT_PG(sp->bt_int_pgfree, sp->bt_int_pg, sp->bt_pagesize), "ff");
err: if (!already_put && (t_ret = __memp_fput(mpf, h, 0)) != 0 && ret != 0)
ret = t_ret;
__LPUT(dbc, lock);
__db_dl(dbenv,
"Number of tree leaf pages", (u_long)sp->bt_leaf_pg);
__db_dl_pct(dbenv, "Number of bytes free in tree leaf pages",
(u_long)sp->bt_leaf_pgfree, DB_PCT_PG(
sp->bt_leaf_pgfree, sp->bt_leaf_pg, sp->bt_pagesize), "ff");
return (ret);
__db_dl(dbenv,
"Number of tree duplicate pages", (u_long)sp->bt_dup_pg);
__db_dl_pct(dbenv,
"Number of bytes free in tree duplicate pages",
(u_long)sp->bt_dup_pgfree,
DB_PCT_PG(sp->bt_dup_pgfree, sp->bt_dup_pg, sp->bt_pagesize), "ff");
__db_dl(dbenv,
"Number of tree overflow pages", (u_long)sp->bt_over_pg);
__db_dl_pct(dbenv, "Number of bytes free in tree overflow pages",
(u_long)sp->bt_over_pgfree, DB_PCT_PG(
sp->bt_over_pgfree, sp->bt_over_pg, sp->bt_pagesize), "ff");
__db_dl(dbenv, "Number of empty pages", (u_long)sp->bt_empty_pg);
__db_dl(dbenv, "Number of pages on the free list", (u_long)sp->bt_free);
__os_ufree(dbenv, sp);
return (0);
}
/*
@ -316,6 +330,9 @@ __bam_stat_callback(dbp, h, cookie, putp)
sp->bt_int_pgfree += P_FREESPACE(dbp, h);
break;
case P_LBTREE:
if (top == 0)
++sp->bt_empty_pg;
/* Correct for on-page duplicates and deleted items. */
for (indx = 0; indx < top; indx += P_INDX) {
type = GET_BKEYDATA(dbp, h, indx + O_INDX)->type;
@ -337,24 +354,28 @@ __bam_stat_callback(dbp, h, cookie, putp)
sp->bt_leaf_pgfree += P_FREESPACE(dbp, h);
break;
case P_LRECNO:
if (top == 0)
++sp->bt_empty_pg;
/*
* If walking a recno tree, then each of these items is a key.
* Otherwise, we're walking an off-page duplicate set.
*/
if (dbp->type == DB_RECNO) {
sp->bt_nkeys += top;
/*
* Correct for deleted items in non-renumbering
* Recno databases.
* Correct for deleted items in non-renumbering Recno
* databases.
*/
if (F_ISSET(dbp, DB_AM_RENUMBER))
if (F_ISSET(dbp, DB_AM_RENUMBER)) {
sp->bt_nkeys += top;
sp->bt_ndata += top;
else
} else
for (indx = 0; indx < top; indx += O_INDX) {
type = GET_BKEYDATA(dbp, h, indx)->type;
if (!B_DISSET(type))
if (!B_DISSET(type)) {
++sp->bt_ndata;
++sp->bt_nkeys;
}
}
++sp->bt_leaf_pg;
@ -367,6 +388,9 @@ __bam_stat_callback(dbp, h, cookie, putp)
}
break;
case P_LDUP:
if (top == 0)
++sp->bt_empty_pg;
/* Correct for deleted items. */
for (indx = 0; indx < top; indx += O_INDX)
if (!B_DISSET(GET_BKEYDATA(dbp, h, indx)->type))
@ -385,6 +409,60 @@ __bam_stat_callback(dbp, h, cookie, putp)
return (0);
}
/*
* __bam_print_cursor --
* Display the current internal cursor.
*
* PUBLIC: void __bam_print_cursor __P((DBC *));
*/
void
__bam_print_cursor(dbc)
DBC *dbc;
{
static const FN fn[] = {
{ C_DELETED, "C_DELETED" },
{ C_RECNUM, "C_RECNUM" },
{ C_RENUMBER, "C_RENUMBER" },
{ 0, NULL }
};
DB_ENV *dbenv;
BTREE_CURSOR *cp;
dbenv = dbc->dbp->dbenv;
cp = (BTREE_CURSOR *)dbc->internal;
STAT_ULONG("Overflow size", cp->ovflsize);
if (dbc->dbtype == DB_RECNO)
STAT_ULONG("Recno", cp->recno);
STAT_ULONG("Order", cp->order);
__db_prflags(dbenv, NULL, cp->flags, fn, NULL, "\tInternal Flags");
}
#else /* !HAVE_STATISTICS */
int
__bam_stat(dbc, spp, flags)
DBC *dbc;
void *spp;
u_int32_t flags;
{
COMPQUIET(spp, NULL);
COMPQUIET(flags, 0);
return (__db_stat_not_built(dbc->dbp->dbenv));
}
int
__bam_stat_print(dbc, flags)
DBC *dbc;
u_int32_t flags;
{
COMPQUIET(flags, 0);
return (__db_stat_not_built(dbc->dbp->dbenv));
}
#endif
/*
* __bam_key_range --
* Return proportion of keys relative to given key. The numbers are
@ -455,3 +533,111 @@ __bam_key_range(dbc, dbt, kp, flags)
return (0);
}
/*
* __bam_traverse --
* Walk a Btree database.
*
* PUBLIC: int __bam_traverse __P((DBC *, db_lockmode_t,
* PUBLIC: db_pgno_t, int (*)(DB *, PAGE *, void *, int *), void *));
*/
int
__bam_traverse(dbc, mode, root_pgno, callback, cookie)
DBC *dbc;
db_lockmode_t mode;
db_pgno_t root_pgno;
int (*callback)__P((DB *, PAGE *, void *, int *));
void *cookie;
{
BINTERNAL *bi;
BKEYDATA *bk;
DB *dbp;
DB_LOCK lock;
DB_MPOOLFILE *mpf;
PAGE *h;
RINTERNAL *ri;
db_indx_t indx, *inp;
int already_put, ret, t_ret;
dbp = dbc->dbp;
mpf = dbp->mpf;
already_put = 0;
if ((ret = __db_lget(dbc, 0, root_pgno, mode, 0, &lock)) != 0)
return (ret);
if ((ret = __memp_fget(mpf, &root_pgno, 0, &h)) != 0) {
(void)__TLPUT(dbc, lock);
return (ret);
}
switch (TYPE(h)) {
case P_IBTREE:
for (indx = 0; indx < NUM_ENT(h); indx += O_INDX) {
bi = GET_BINTERNAL(dbp, h, indx);
if (B_TYPE(bi->type) == B_OVERFLOW &&
(ret = __db_traverse_big(dbp,
((BOVERFLOW *)bi->data)->pgno,
callback, cookie)) != 0)
goto err;
if ((ret = __bam_traverse(
dbc, mode, bi->pgno, callback, cookie)) != 0)
goto err;
}
break;
case P_IRECNO:
for (indx = 0; indx < NUM_ENT(h); indx += O_INDX) {
ri = GET_RINTERNAL(dbp, h, indx);
if ((ret = __bam_traverse(
dbc, mode, ri->pgno, callback, cookie)) != 0)
goto err;
}
break;
case P_LBTREE:
inp = P_INP(dbp, h);
for (indx = 0; indx < NUM_ENT(h); indx += P_INDX) {
bk = GET_BKEYDATA(dbp, h, indx);
if (B_TYPE(bk->type) == B_OVERFLOW &&
(indx + P_INDX >= NUM_ENT(h) ||
inp[indx] != inp[indx + P_INDX])) {
if ((ret = __db_traverse_big(dbp,
GET_BOVERFLOW(dbp, h, indx)->pgno,
callback, cookie)) != 0)
goto err;
}
bk = GET_BKEYDATA(dbp, h, indx + O_INDX);
if (B_TYPE(bk->type) == B_DUPLICATE &&
(ret = __bam_traverse(dbc, mode,
GET_BOVERFLOW(dbp, h, indx + O_INDX)->pgno,
callback, cookie)) != 0)
goto err;
if (B_TYPE(bk->type) == B_OVERFLOW &&
(ret = __db_traverse_big(dbp,
GET_BOVERFLOW(dbp, h, indx + O_INDX)->pgno,
callback, cookie)) != 0)
goto err;
}
break;
case P_LDUP:
case P_LRECNO:
for (indx = 0; indx < NUM_ENT(h); indx += O_INDX) {
bk = GET_BKEYDATA(dbp, h, indx);
if (B_TYPE(bk->type) == B_OVERFLOW &&
(ret = __db_traverse_big(dbp,
GET_BOVERFLOW(dbp, h, indx)->pgno,
callback, cookie)) != 0)
goto err;
}
break;
default:
return (__db_pgfmt(dbp->dbenv, h->pgno));
}
ret = callback(dbp, h, cookie, &already_put);
err: if (!already_put && (t_ret = __memp_fput(mpf, h, 0)) != 0 && ret == 0)
ret = t_ret;
if ((t_ret = __TLPUT(dbc, lock)) != 0 && ret == 0)
ret = t_ret;
return (ret);
}

View File

@ -1,15 +1,13 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: bt_upgrade.c,v 11.30 2004/01/28 03:35:49 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char revid[] = "$Id: bt_upgrade.c,v 11.29 2003/05/18 18:10:11 bostic Exp $";
#endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>

View File

@ -1,18 +1,14 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1999-2003
* Copyright (c) 1999-2004
* Sleepycat Software. All rights reserved.
*
* $Id: bt_verify.c,v 1.87 2003/10/06 14:09:23 bostic Exp $
* $Id: bt_verify.c,v 1.97 2004/10/11 18:47:46 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char revid[] = "$Id: bt_verify.c,v 1.87 2003/10/06 14:09:23 bostic Exp $";
#endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>
@ -34,8 +30,6 @@ static int __bam_vrfy_treeorder __P((DB *, db_pgno_t, PAGE *, BINTERNAL *,
static int __ram_vrfy_inp __P((DB *, VRFY_DBINFO *, PAGE *, db_pgno_t,
db_indx_t *, u_int32_t));
#define OKFLAGS (DB_AGGRESSIVE | DB_NOORDERCHK | DB_SALVAGE)
/*
* __bam_vrfy_meta --
* Verify the btree-specific part of a metadata page.
@ -185,6 +179,9 @@ __bam_vrfy_meta(dbp, vdp, meta, pgno, flags)
err: if ((t_ret = __db_vrfy_putpageinfo(dbenv, vdp, pip)) != 0 && ret == 0)
ret = t_ret;
if (LF_ISSET(DB_SALVAGE) &&
(t_ret = __db_salvage_markdone(vdp, pgno)) != 0 && ret == 0)
ret = t_ret;
return ((ret == 0 && isbad == 1) ? DB_VERIFY_BAD : ret);
}
@ -216,9 +213,6 @@ __ram_vrfy_leaf(dbp, vdp, h, pgno, flags)
if ((ret = __db_vrfy_getpageinfo(vdp, pgno, &pip)) != 0)
return (ret);
if ((ret = __db_fchk(dbenv, "__ram_vrfy_leaf", flags, OKFLAGS)) != 0)
goto err;
if (TYPE(h) != P_LRECNO) {
/* We should not have been called. */
TYPE_ERR_PRINT(dbenv, "__ram_vrfy_leaf", pgno, TYPE(h));
@ -510,6 +504,8 @@ err: if ((t_ret = __db_vrfy_putpageinfo(dbenv, vdp, pip)) != 0 && ret == 0)
return ((ret == 0 && isbad == 1) ? DB_VERIFY_BAD : ret);
}
typedef enum { VRFY_ITEM_NOTSET=0, VRFY_ITEM_BEGIN, VRFY_ITEM_END } VRFY_ITEM;
/*
* __bam_vrfy_inp --
* Verify that all entries in inp[] array are reasonable;
@ -528,11 +524,14 @@ __bam_vrfy_inp(dbp, vdp, h, pgno, nentriesp, flags)
BOVERFLOW *bo;
DB_ENV *dbenv;
VRFY_CHILDINFO child;
VRFY_ITEM *pagelayout;
VRFY_PAGEINFO *pip;
int isbad, initem, isdupitem, ret, t_ret;
u_int32_t himark, offset; /* These would be db_indx_ts but for algnmt.*/
u_int32_t himark, offset; /*
* These would be db_indx_ts
* but for alignment.
*/
u_int32_t i, endoff, nentries;
u_int8_t *pagelayout;
int isbad, initem, isdupitem, ret, t_ret;
dbenv = dbp->dbenv;
isbad = isdupitem = 0;
@ -573,9 +572,9 @@ __bam_vrfy_inp(dbp, vdp, h, pgno, nentriesp, flags)
* it and the region immediately after it.
*/
himark = dbp->pgsize;
if ((ret = __os_malloc(dbenv, dbp->pgsize, &pagelayout)) != 0)
if ((ret = __os_calloc(
dbenv, dbp->pgsize, sizeof(pagelayout[0]), &pagelayout)) != 0)
goto err;
memset(pagelayout, 0, dbp->pgsize);
for (i = 0; i < NUM_ENT(h); i++) {
switch (ret = __db_vrfy_inpitem(dbp,
h, pgno, i, 1, flags, &himark, &offset)) {
@ -600,11 +599,9 @@ __bam_vrfy_inp(dbp, vdp, h, pgno, nentriesp, flags)
* items have no overlaps or gaps.
*/
bk = GET_BKEYDATA(dbp, h, i);
#define ITEM_BEGIN 1
#define ITEM_END 2
if (pagelayout[offset] == 0)
pagelayout[offset] = ITEM_BEGIN;
else if (pagelayout[offset] == ITEM_BEGIN) {
if (pagelayout[offset] == VRFY_ITEM_NOTSET)
pagelayout[offset] = VRFY_ITEM_BEGIN;
else if (pagelayout[offset] == VRFY_ITEM_BEGIN) {
/*
* Having two inp entries that point at the same patch
* of page is legal if and only if the page is
@ -676,12 +673,12 @@ __bam_vrfy_inp(dbp, vdp, h, pgno, nentriesp, flags)
* If this is an onpage duplicate key we've seen before,
* the end had better coincide too.
*/
if (isdupitem && pagelayout[endoff] != ITEM_END) {
if (isdupitem && pagelayout[endoff] != VRFY_ITEM_END) {
EPRINT((dbenv, "Page %lu: duplicated item %lu",
(u_long)pgno, (u_long)i));
isbad = 1;
} else if (pagelayout[endoff] == 0)
pagelayout[endoff] = ITEM_END;
} else if (pagelayout[endoff] == VRFY_ITEM_NOTSET)
pagelayout[endoff] = VRFY_ITEM_END;
isdupitem = 0;
/*
@ -771,9 +768,9 @@ __bam_vrfy_inp(dbp, vdp, h, pgno, nentriesp, flags)
for (i = himark; i < dbp->pgsize; i++)
if (initem == 0)
switch (pagelayout[i]) {
case 0:
case VRFY_ITEM_NOTSET:
/* May be just for alignment. */
if (i != ALIGN(i, sizeof(u_int32_t)))
if (i != DB_ALIGN(i, sizeof(u_int32_t)))
continue;
isbad = 1;
@ -781,13 +778,13 @@ __bam_vrfy_inp(dbp, vdp, h, pgno, nentriesp, flags)
"Page %lu: gap between items at offset %lu",
(u_long)pgno, (u_long)i));
/* Find the end of the gap */
for ( ; pagelayout[i + 1] == 0 &&
for (; pagelayout[i + 1] == VRFY_ITEM_NOTSET &&
(size_t)(i + 1) < dbp->pgsize; i++)
;
break;
case ITEM_BEGIN:
case VRFY_ITEM_BEGIN:
/* We've found an item. Check its alignment. */
if (i != ALIGN(i, sizeof(u_int32_t))) {
if (i != DB_ALIGN(i, sizeof(u_int32_t))) {
isbad = 1;
EPRINT((dbenv,
"Page %lu: offset %lu unaligned",
@ -796,7 +793,7 @@ __bam_vrfy_inp(dbp, vdp, h, pgno, nentriesp, flags)
initem = 1;
nentries++;
break;
case ITEM_END:
case VRFY_ITEM_END:
/*
* We've hit the end of an item even though
* we don't think we're in one; must
@ -807,22 +804,17 @@ __bam_vrfy_inp(dbp, vdp, h, pgno, nentriesp, flags)
"Page %lu: overlapping items at offset %lu",
(u_long)pgno, (u_long)i));
break;
default:
/* Should be impossible. */
DB_ASSERT(0);
ret = EINVAL;
goto err;
}
else
switch (pagelayout[i]) {
case 0:
case VRFY_ITEM_NOTSET:
/* In the middle of an item somewhere. Okay. */
break;
case ITEM_END:
case VRFY_ITEM_END:
/* End of an item; switch to out-of-item mode.*/
initem = 0;
break;
case ITEM_BEGIN:
case VRFY_ITEM_BEGIN:
/*
* Hit a second item beginning without an
* end. Overlap.
@ -1401,11 +1393,11 @@ __bam_vrfy_subtree(dbp, vdp, pgno, l, r, flags, levelp, nrecsp, relenp)
* page's next_pgno, and our prev_pgno.
*/
if (pip->type != vdp->leaf_type) {
isbad = 1;
EPRINT((dbenv,
"Page %lu: unexpected page type %lu found in leaf chain (expected %lu)",
(u_long)pip->pgno, (u_long)pip->type,
(u_long)vdp->leaf_type));
isbad = 1;
}
/*
@ -1414,20 +1406,20 @@ __bam_vrfy_subtree(dbp, vdp, pgno, l, r, flags, levelp, nrecsp, relenp)
*/
if (!F_ISSET(vdp, VRFY_LEAFCHAIN_BROKEN)) {
if (pip->pgno != vdp->next_pgno) {
isbad = 1;
EPRINT((dbenv,
"Page %lu: incorrect next_pgno %lu found in leaf chain (should be %lu)",
(u_long)vdp->prev_pgno,
(u_long)vdp->next_pgno,
(u_long)pip->pgno));
isbad = 1;
}
if (pip->prev_pgno != vdp->prev_pgno) {
bad_prev: EPRINT((dbenv,
"Page %lu: incorrect prev_pgno %lu found in leaf chain (should be %lu)",
bad_prev: isbad = 1;
EPRINT((dbenv,
"Page %lu: incorrect prev_pgno %lu found in leaf chain (should be %lu)",
(u_long)pip->pgno,
(u_long)pip->prev_pgno,
(u_long)vdp->prev_pgno));
isbad = 1;
}
}
}
@ -1519,11 +1511,11 @@ bad_prev: EPRINT((dbenv,
dbp, vdp, child->pgno, NULL,
NULL, stflags | ST_TOPLEVEL,
NULL, NULL, NULL)) != 0) {
if (ret !=
if (ret ==
DB_VERIFY_BAD)
goto err;
else
isbad = 1;
else
goto err;
}
}
}
@ -1538,10 +1530,10 @@ bad_prev: EPRINT((dbenv,
*/
if (F_ISSET(pip, VRFY_DUPS_UNSORTED) &&
LF_ISSET(ST_DUPSORT)) {
isbad = 1;
EPRINT((dbenv,
"Page %lu: unsorted duplicate set in sorted-dup database",
(u_long)pgno));
isbad = 1;
}
}
}
@ -1602,10 +1594,10 @@ bad_prev: EPRINT((dbenv,
if ((ret = __bam_vrfy_subtree(dbp, vdp, child->pgno,
NULL, NULL, flags, &child_level, &child_nrecs,
&child_relen)) != 0) {
if (ret != DB_VERIFY_BAD)
goto done;
else
if (ret == DB_VERIFY_BAD)
isbad = 1;
else
goto done;
}
if (LF_ISSET(ST_RELEN)) {
@ -1662,10 +1654,10 @@ bad_prev: EPRINT((dbenv,
* shouldn't happen.
*/
if (child->refcnt > 2) {
isbad = 1;
EPRINT((dbenv,
"Page %lu: overflow page %lu referenced more than twice from internal page",
(u_long)pgno, (u_long)child->pgno));
isbad = 1;
} else
for (j = 0; j < child->refcnt; j++)
if ((ret = __db_vrfy_ovfl_structure(dbp,
@ -1701,7 +1693,7 @@ bad_prev: EPRINT((dbenv,
for (i = 0; i < pip->entries; i += O_INDX) {
li = GET_BINTERNAL(dbp, h, i);
ri = (i + O_INDX < pip->entries) ?
GET_BINTERNAL(dbp, h, i + O_INDX) : NULL;
GET_BINTERNAL(dbp, h, i + O_INDX) : rp;
/*
* The leftmost key is forcibly sorted less than all entries,
@ -1710,10 +1702,10 @@ bad_prev: EPRINT((dbenv,
if ((ret = __bam_vrfy_subtree(dbp, vdp, li->pgno,
i == 0 ? NULL : li, ri, flags, &child_level,
&child_nrecs, NULL)) != 0) {
if (ret != DB_VERIFY_BAD)
goto done;
else
if (ret == DB_VERIFY_BAD)
isbad = 1;
else
goto done;
}
if (LF_ISSET(ST_RECNUM)) {
@ -1792,10 +1784,10 @@ done: if (F_ISSET(pip, VRFY_INCOMPLETE) && isbad == 0 && ret == 0) {
goto err;
if (NUM_ENT(h) == 0 && ISINTERNAL(h)) {
isbad = 1;
EPRINT((dbenv,
"Page %lu: internal page is empty and should not be",
(u_long)pgno));
isbad = 1;
goto err;
}
}
@ -1862,9 +1854,9 @@ done: if (F_ISSET(pip, VRFY_INCOMPLETE) && isbad == 0 && ret == 0) {
* PGNO_INVALID.
*/
if (vdp->next_pgno != PGNO_INVALID) {
isbad = 1;
EPRINT((dbenv, "Page %lu: unterminated leaf chain",
(u_long)vdp->prev_pgno));
isbad = 1;
}
err: if (toplevel) {
@ -1968,7 +1960,7 @@ __bam_vrfy_treeorder(dbp, pgno, h, lp, rp, func, flags)
return (EINVAL);
}
/* On error, fall through, free if neeeded, and return. */
/* On error, fall through, free if needed, and return. */
if ((ret = __bam_cmp(dbp, &dbt, h, 0, func, &cmp)) == 0) {
if (cmp > 0) {
EPRINT((dbenv,
@ -2004,7 +1996,7 @@ __bam_vrfy_treeorder(dbp, pgno, h, lp, rp, func, flags)
return (EINVAL);
}
/* On error, fall through, free if neeeded, and return. */
/* On error, fall through, free if needed, and return. */
if ((ret = __bam_cmp(dbp, &dbt, h, last, func, &cmp)) == 0) {
if (cmp < 0) {
EPRINT((dbenv,
@ -2049,9 +2041,9 @@ __bam_salvage(dbp, vdp, pgno, pgtype, h, handle, callback, key, flags)
DB_ENV *dbenv;
BKEYDATA *bk;
BOVERFLOW *bo;
VRFY_ITEM *pgmap;
db_indx_t i, beg, end, *inp;
u_int32_t himark;
u_int8_t *pgmap;
void *ovflbuf;
int t_ret, ret, err_ret;
@ -2078,12 +2070,9 @@ __bam_salvage(dbp, vdp, pgno, pgtype, h, handle, callback, key, flags)
if ((ret = __os_malloc(dbenv, dbp->pgsize, &ovflbuf)) != 0)
return (ret);
if (LF_ISSET(DB_AGGRESSIVE)) {
if ((ret =
__os_malloc(dbenv, dbp->pgsize, &pgmap)) != 0)
goto err;
memset(pgmap, 0, dbp->pgsize);
}
if (LF_ISSET(DB_AGGRESSIVE) && (ret =
__os_calloc(dbenv, dbp->pgsize, sizeof(pgmap[0]), &pgmap)) != 0)
goto err;
/*
* Loop through the inp array, spitting out key/data pairs.
@ -2135,7 +2124,7 @@ __bam_salvage(dbp, vdp, pgno, pgtype, h, handle, callback, key, flags)
*/
if (key != NULL &&
(i != 0 || !LF_ISSET(SA_SKIPFIRSTKEY)))
if ((ret = __db_prdbt(key,
if ((ret = __db_vrfy_prdbt(key,
0, " ", handle, callback, 0, vdp)) != 0)
err_ret = ret;
@ -2166,7 +2155,8 @@ __bam_salvage(dbp, vdp, pgno, pgtype, h, handle, callback, key, flags)
if (!IS_VALID_PGNO(bo->pgno) ||
(i % P_INDX == 0)) {
/* Not much to do on failure. */
if ((ret = __db_prdbt(&unkdbt, 0, " ",
if ((ret =
__db_vrfy_prdbt(&unkdbt, 0, " ",
handle, callback, 0, vdp)) != 0)
err_ret = ret;
break;
@ -2179,11 +2169,11 @@ __bam_salvage(dbp, vdp, pgno, pgtype, h, handle, callback, key, flags)
break;
case B_KEYDATA:
end =
ALIGN(beg + bk->len, sizeof(u_int32_t)) - 1;
end = (db_indx_t)DB_ALIGN(
beg + bk->len, sizeof(u_int32_t)) - 1;
dbt.data = bk->data;
dbt.size = bk->len;
if ((ret = __db_prdbt(&dbt,
if ((ret = __db_vrfy_prdbt(&dbt,
0, " ", handle, callback, 0, vdp)) != 0)
err_ret = ret;
break;
@ -2194,11 +2184,11 @@ __bam_salvage(dbp, vdp, pgno, pgtype, h, handle, callback, key, flags)
bo->pgno, &dbt, &ovflbuf, flags)) != 0) {
err_ret = ret;
/* We care about err_ret more. */
(void)__db_prdbt(&unkdbt, 0, " ",
(void)__db_vrfy_prdbt(&unkdbt, 0, " ",
handle, callback, 0, vdp);
break;
}
if ((ret = __db_prdbt(&dbt,
if ((ret = __db_vrfy_prdbt(&dbt,
0, " ", handle, callback, 0, vdp)) != 0)
err_ret = ret;
break;
@ -2219,8 +2209,8 @@ __bam_salvage(dbp, vdp, pgno, pgtype, h, handle, callback, key, flags)
* any bogus inp elements and thereby missed stuff.
*/
if (LF_ISSET(DB_AGGRESSIVE)) {
pgmap[beg] = ITEM_BEGIN;
pgmap[end] = ITEM_END;
pgmap[beg] = VRFY_ITEM_BEGIN;
pgmap[end] = VRFY_ITEM_END;
}
}
}
@ -2230,7 +2220,7 @@ __bam_salvage(dbp, vdp, pgno, pgtype, h, handle, callback, key, flags)
* a datum; fix this imbalance by printing an "UNKNOWN".
*/
if (pgtype == P_LBTREE && (i % P_INDX == 1) && ((ret =
__db_prdbt(&unkdbt, 0, " ", handle, callback, 0, vdp)) != 0))
__db_vrfy_prdbt(&unkdbt, 0, " ", handle, callback, 0, vdp)) != 0))
err_ret = ret;
err: if (pgmap != NULL)

View File

@ -1,17 +1,15 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: btree.src,v 10.39 2003/11/14 05:32:34 ubell Exp $
* $Id: btree.src,v 10.42 2004/06/17 17:35:12 bostic Exp $
*/
PREFIX __bam
DBPRIVATE
INCLUDE #include "db_config.h"
INCLUDE
INCLUDE #ifndef NO_SYSTEM_INCLUDES
INCLUDE #include <sys/types.h>
INCLUDE
@ -29,10 +27,6 @@ INCLUDE #include "dbinc/log.h"
INCLUDE #include "dbinc/txn.h"
INCLUDE
/*
* NOTE: pg_alloc and pg_free have been moved to db.src, where they belong.
*/
/*
* BTREE-split: used to log a page split.
*
@ -208,3 +202,24 @@ ARG recno db_recno_t ld
/* Order number of the adjustment. */
ARG order u_int32_t ld
END
/*
* BTREE-relink -- Handles relinking around a deleted leaf page.
*
*/
BEGIN relink 147
/* Fileid of db affected. */
DB fileid int32_t ld
/* The page being changed. */
ARG pgno db_pgno_t lu
/* The page's original lsn. */
POINTER lsn DB_LSN * lu
/* The previous page. */
ARG prev db_pgno_t lu
/* The previous page's original lsn. */
POINTER lsn_prev DB_LSN * lu
/* The next page. */
ARG next db_pgno_t lu
/* The previous page's original lsn. */
POINTER lsn_next DB_LSN * lu
END

File diff suppressed because it is too large Load Diff

514
db/btree/btree_autop.c Normal file
View File

@ -0,0 +1,514 @@
/* Do not edit: automatically built by gen_rec.awk. */
#include "db_config.h"
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>
#include <ctype.h>
#include <string.h>
#endif
#include "db_int.h"
#include "dbinc/crypto.h"
#include "dbinc/db_page.h"
#include "dbinc/db_dispatch.h"
#include "dbinc/db_am.h"
#include "dbinc/btree.h"
#include "dbinc/log.h"
#include "dbinc/txn.h"
/*
* PUBLIC: int __bam_split_print __P((DB_ENV *, DBT *, DB_LSN *,
* PUBLIC: db_recops, void *));
*/
int
__bam_split_print(dbenv, dbtp, lsnp, notused2, notused3)
DB_ENV *dbenv;
DBT *dbtp;
DB_LSN *lsnp;
db_recops notused2;
void *notused3;
{
__bam_split_args *argp;
u_int32_t i;
int ch;
int ret;
notused2 = DB_TXN_ABORT;
notused3 = NULL;
if ((ret = __bam_split_read(dbenv, dbtp->data, &argp)) != 0)
return (ret);
(void)printf(
"[%lu][%lu]__bam_split%s: rec: %lu txnid %lx prevlsn [%lu][%lu]\n",
(u_long)lsnp->file,
(u_long)lsnp->offset,
(argp->type & DB_debug_FLAG) ? "_debug" : "",
(u_long)argp->type,
(u_long)argp->txnid->txnid,
(u_long)argp->prev_lsn.file,
(u_long)argp->prev_lsn.offset);
(void)printf("\tfileid: %ld\n", (long)argp->fileid);
(void)printf("\tleft: %lu\n", (u_long)argp->left);
(void)printf("\tllsn: [%lu][%lu]\n",
(u_long)argp->llsn.file, (u_long)argp->llsn.offset);
(void)printf("\tright: %lu\n", (u_long)argp->right);
(void)printf("\trlsn: [%lu][%lu]\n",
(u_long)argp->rlsn.file, (u_long)argp->rlsn.offset);
(void)printf("\tindx: %lu\n", (u_long)argp->indx);
(void)printf("\tnpgno: %lu\n", (u_long)argp->npgno);
(void)printf("\tnlsn: [%lu][%lu]\n",
(u_long)argp->nlsn.file, (u_long)argp->nlsn.offset);
(void)printf("\troot_pgno: %lu\n", (u_long)argp->root_pgno);
(void)printf("\tpg: ");
for (i = 0; i < argp->pg.size; i++) {
ch = ((u_int8_t *)argp->pg.data)[i];
printf(isprint(ch) || ch == 0x0a ? "%c" : "%#x ", ch);
}
(void)printf("\n");
(void)printf("\topflags: %lu\n", (u_long)argp->opflags);
(void)printf("\n");
__os_free(dbenv, argp);
return (0);
}
/*
* PUBLIC: int __bam_rsplit_print __P((DB_ENV *, DBT *, DB_LSN *,
* PUBLIC: db_recops, void *));
*/
int
__bam_rsplit_print(dbenv, dbtp, lsnp, notused2, notused3)
DB_ENV *dbenv;
DBT *dbtp;
DB_LSN *lsnp;
db_recops notused2;
void *notused3;
{
__bam_rsplit_args *argp;
u_int32_t i;
int ch;
int ret;
notused2 = DB_TXN_ABORT;
notused3 = NULL;
if ((ret = __bam_rsplit_read(dbenv, dbtp->data, &argp)) != 0)
return (ret);
(void)printf(
"[%lu][%lu]__bam_rsplit%s: rec: %lu txnid %lx prevlsn [%lu][%lu]\n",
(u_long)lsnp->file,
(u_long)lsnp->offset,
(argp->type & DB_debug_FLAG) ? "_debug" : "",
(u_long)argp->type,
(u_long)argp->txnid->txnid,
(u_long)argp->prev_lsn.file,
(u_long)argp->prev_lsn.offset);
(void)printf("\tfileid: %ld\n", (long)argp->fileid);
(void)printf("\tpgno: %lu\n", (u_long)argp->pgno);
(void)printf("\tpgdbt: ");
for (i = 0; i < argp->pgdbt.size; i++) {
ch = ((u_int8_t *)argp->pgdbt.data)[i];
printf(isprint(ch) || ch == 0x0a ? "%c" : "%#x ", ch);
}
(void)printf("\n");
(void)printf("\troot_pgno: %lu\n", (u_long)argp->root_pgno);
(void)printf("\tnrec: %lu\n", (u_long)argp->nrec);
(void)printf("\trootent: ");
for (i = 0; i < argp->rootent.size; i++) {
ch = ((u_int8_t *)argp->rootent.data)[i];
printf(isprint(ch) || ch == 0x0a ? "%c" : "%#x ", ch);
}
(void)printf("\n");
(void)printf("\trootlsn: [%lu][%lu]\n",
(u_long)argp->rootlsn.file, (u_long)argp->rootlsn.offset);
(void)printf("\n");
__os_free(dbenv, argp);
return (0);
}
/*
* PUBLIC: int __bam_adj_print __P((DB_ENV *, DBT *, DB_LSN *,
* PUBLIC: db_recops, void *));
*/
int
__bam_adj_print(dbenv, dbtp, lsnp, notused2, notused3)
DB_ENV *dbenv;
DBT *dbtp;
DB_LSN *lsnp;
db_recops notused2;
void *notused3;
{
__bam_adj_args *argp;
int ret;
notused2 = DB_TXN_ABORT;
notused3 = NULL;
if ((ret = __bam_adj_read(dbenv, dbtp->data, &argp)) != 0)
return (ret);
(void)printf(
"[%lu][%lu]__bam_adj%s: rec: %lu txnid %lx prevlsn [%lu][%lu]\n",
(u_long)lsnp->file,
(u_long)lsnp->offset,
(argp->type & DB_debug_FLAG) ? "_debug" : "",
(u_long)argp->type,
(u_long)argp->txnid->txnid,
(u_long)argp->prev_lsn.file,
(u_long)argp->prev_lsn.offset);
(void)printf("\tfileid: %ld\n", (long)argp->fileid);
(void)printf("\tpgno: %lu\n", (u_long)argp->pgno);
(void)printf("\tlsn: [%lu][%lu]\n",
(u_long)argp->lsn.file, (u_long)argp->lsn.offset);
(void)printf("\tindx: %lu\n", (u_long)argp->indx);
(void)printf("\tindx_copy: %lu\n", (u_long)argp->indx_copy);
(void)printf("\tis_insert: %lu\n", (u_long)argp->is_insert);
(void)printf("\n");
__os_free(dbenv, argp);
return (0);
}
/*
* PUBLIC: int __bam_cadjust_print __P((DB_ENV *, DBT *, DB_LSN *,
* PUBLIC: db_recops, void *));
*/
int
__bam_cadjust_print(dbenv, dbtp, lsnp, notused2, notused3)
DB_ENV *dbenv;
DBT *dbtp;
DB_LSN *lsnp;
db_recops notused2;
void *notused3;
{
__bam_cadjust_args *argp;
int ret;
notused2 = DB_TXN_ABORT;
notused3 = NULL;
if ((ret = __bam_cadjust_read(dbenv, dbtp->data, &argp)) != 0)
return (ret);
(void)printf(
"[%lu][%lu]__bam_cadjust%s: rec: %lu txnid %lx prevlsn [%lu][%lu]\n",
(u_long)lsnp->file,
(u_long)lsnp->offset,
(argp->type & DB_debug_FLAG) ? "_debug" : "",
(u_long)argp->type,
(u_long)argp->txnid->txnid,
(u_long)argp->prev_lsn.file,
(u_long)argp->prev_lsn.offset);
(void)printf("\tfileid: %ld\n", (long)argp->fileid);
(void)printf("\tpgno: %lu\n", (u_long)argp->pgno);
(void)printf("\tlsn: [%lu][%lu]\n",
(u_long)argp->lsn.file, (u_long)argp->lsn.offset);
(void)printf("\tindx: %lu\n", (u_long)argp->indx);
(void)printf("\tadjust: %ld\n", (long)argp->adjust);
(void)printf("\topflags: %lu\n", (u_long)argp->opflags);
(void)printf("\n");
__os_free(dbenv, argp);
return (0);
}
/*
* PUBLIC: int __bam_cdel_print __P((DB_ENV *, DBT *, DB_LSN *,
* PUBLIC: db_recops, void *));
*/
int
__bam_cdel_print(dbenv, dbtp, lsnp, notused2, notused3)
DB_ENV *dbenv;
DBT *dbtp;
DB_LSN *lsnp;
db_recops notused2;
void *notused3;
{
__bam_cdel_args *argp;
int ret;
notused2 = DB_TXN_ABORT;
notused3 = NULL;
if ((ret = __bam_cdel_read(dbenv, dbtp->data, &argp)) != 0)
return (ret);
(void)printf(
"[%lu][%lu]__bam_cdel%s: rec: %lu txnid %lx prevlsn [%lu][%lu]\n",
(u_long)lsnp->file,
(u_long)lsnp->offset,
(argp->type & DB_debug_FLAG) ? "_debug" : "",
(u_long)argp->type,
(u_long)argp->txnid->txnid,
(u_long)argp->prev_lsn.file,
(u_long)argp->prev_lsn.offset);
(void)printf("\tfileid: %ld\n", (long)argp->fileid);
(void)printf("\tpgno: %lu\n", (u_long)argp->pgno);
(void)printf("\tlsn: [%lu][%lu]\n",
(u_long)argp->lsn.file, (u_long)argp->lsn.offset);
(void)printf("\tindx: %lu\n", (u_long)argp->indx);
(void)printf("\n");
__os_free(dbenv, argp);
return (0);
}
/*
* PUBLIC: int __bam_repl_print __P((DB_ENV *, DBT *, DB_LSN *,
* PUBLIC: db_recops, void *));
*/
int
__bam_repl_print(dbenv, dbtp, lsnp, notused2, notused3)
DB_ENV *dbenv;
DBT *dbtp;
DB_LSN *lsnp;
db_recops notused2;
void *notused3;
{
__bam_repl_args *argp;
u_int32_t i;
int ch;
int ret;
notused2 = DB_TXN_ABORT;
notused3 = NULL;
if ((ret = __bam_repl_read(dbenv, dbtp->data, &argp)) != 0)
return (ret);
(void)printf(
"[%lu][%lu]__bam_repl%s: rec: %lu txnid %lx prevlsn [%lu][%lu]\n",
(u_long)lsnp->file,
(u_long)lsnp->offset,
(argp->type & DB_debug_FLAG) ? "_debug" : "",
(u_long)argp->type,
(u_long)argp->txnid->txnid,
(u_long)argp->prev_lsn.file,
(u_long)argp->prev_lsn.offset);
(void)printf("\tfileid: %ld\n", (long)argp->fileid);
(void)printf("\tpgno: %lu\n", (u_long)argp->pgno);
(void)printf("\tlsn: [%lu][%lu]\n",
(u_long)argp->lsn.file, (u_long)argp->lsn.offset);
(void)printf("\tindx: %lu\n", (u_long)argp->indx);
(void)printf("\tisdeleted: %lu\n", (u_long)argp->isdeleted);
(void)printf("\torig: ");
for (i = 0; i < argp->orig.size; i++) {
ch = ((u_int8_t *)argp->orig.data)[i];
printf(isprint(ch) || ch == 0x0a ? "%c" : "%#x ", ch);
}
(void)printf("\n");
(void)printf("\trepl: ");
for (i = 0; i < argp->repl.size; i++) {
ch = ((u_int8_t *)argp->repl.data)[i];
printf(isprint(ch) || ch == 0x0a ? "%c" : "%#x ", ch);
}
(void)printf("\n");
(void)printf("\tprefix: %lu\n", (u_long)argp->prefix);
(void)printf("\tsuffix: %lu\n", (u_long)argp->suffix);
(void)printf("\n");
__os_free(dbenv, argp);
return (0);
}
/*
* PUBLIC: int __bam_root_print __P((DB_ENV *, DBT *, DB_LSN *,
* PUBLIC: db_recops, void *));
*/
int
__bam_root_print(dbenv, dbtp, lsnp, notused2, notused3)
DB_ENV *dbenv;
DBT *dbtp;
DB_LSN *lsnp;
db_recops notused2;
void *notused3;
{
__bam_root_args *argp;
int ret;
notused2 = DB_TXN_ABORT;
notused3 = NULL;
if ((ret = __bam_root_read(dbenv, dbtp->data, &argp)) != 0)
return (ret);
(void)printf(
"[%lu][%lu]__bam_root%s: rec: %lu txnid %lx prevlsn [%lu][%lu]\n",
(u_long)lsnp->file,
(u_long)lsnp->offset,
(argp->type & DB_debug_FLAG) ? "_debug" : "",
(u_long)argp->type,
(u_long)argp->txnid->txnid,
(u_long)argp->prev_lsn.file,
(u_long)argp->prev_lsn.offset);
(void)printf("\tfileid: %ld\n", (long)argp->fileid);
(void)printf("\tmeta_pgno: %lu\n", (u_long)argp->meta_pgno);
(void)printf("\troot_pgno: %lu\n", (u_long)argp->root_pgno);
(void)printf("\tmeta_lsn: [%lu][%lu]\n",
(u_long)argp->meta_lsn.file, (u_long)argp->meta_lsn.offset);
(void)printf("\n");
__os_free(dbenv, argp);
return (0);
}
/*
* PUBLIC: int __bam_curadj_print __P((DB_ENV *, DBT *, DB_LSN *,
* PUBLIC: db_recops, void *));
*/
int
__bam_curadj_print(dbenv, dbtp, lsnp, notused2, notused3)
DB_ENV *dbenv;
DBT *dbtp;
DB_LSN *lsnp;
db_recops notused2;
void *notused3;
{
__bam_curadj_args *argp;
int ret;
notused2 = DB_TXN_ABORT;
notused3 = NULL;
if ((ret = __bam_curadj_read(dbenv, dbtp->data, &argp)) != 0)
return (ret);
(void)printf(
"[%lu][%lu]__bam_curadj%s: rec: %lu txnid %lx prevlsn [%lu][%lu]\n",
(u_long)lsnp->file,
(u_long)lsnp->offset,
(argp->type & DB_debug_FLAG) ? "_debug" : "",
(u_long)argp->type,
(u_long)argp->txnid->txnid,
(u_long)argp->prev_lsn.file,
(u_long)argp->prev_lsn.offset);
(void)printf("\tfileid: %ld\n", (long)argp->fileid);
(void)printf("\tmode: %ld\n", (long)argp->mode);
(void)printf("\tfrom_pgno: %lu\n", (u_long)argp->from_pgno);
(void)printf("\tto_pgno: %lu\n", (u_long)argp->to_pgno);
(void)printf("\tleft_pgno: %lu\n", (u_long)argp->left_pgno);
(void)printf("\tfirst_indx: %lu\n", (u_long)argp->first_indx);
(void)printf("\tfrom_indx: %lu\n", (u_long)argp->from_indx);
(void)printf("\tto_indx: %lu\n", (u_long)argp->to_indx);
(void)printf("\n");
__os_free(dbenv, argp);
return (0);
}
/*
* PUBLIC: int __bam_rcuradj_print __P((DB_ENV *, DBT *, DB_LSN *,
* PUBLIC: db_recops, void *));
*/
int
__bam_rcuradj_print(dbenv, dbtp, lsnp, notused2, notused3)
DB_ENV *dbenv;
DBT *dbtp;
DB_LSN *lsnp;
db_recops notused2;
void *notused3;
{
__bam_rcuradj_args *argp;
int ret;
notused2 = DB_TXN_ABORT;
notused3 = NULL;
if ((ret = __bam_rcuradj_read(dbenv, dbtp->data, &argp)) != 0)
return (ret);
(void)printf(
"[%lu][%lu]__bam_rcuradj%s: rec: %lu txnid %lx prevlsn [%lu][%lu]\n",
(u_long)lsnp->file,
(u_long)lsnp->offset,
(argp->type & DB_debug_FLAG) ? "_debug" : "",
(u_long)argp->type,
(u_long)argp->txnid->txnid,
(u_long)argp->prev_lsn.file,
(u_long)argp->prev_lsn.offset);
(void)printf("\tfileid: %ld\n", (long)argp->fileid);
(void)printf("\tmode: %ld\n", (long)argp->mode);
(void)printf("\troot: %ld\n", (long)argp->root);
(void)printf("\trecno: %ld\n", (long)argp->recno);
(void)printf("\torder: %ld\n", (long)argp->order);
(void)printf("\n");
__os_free(dbenv, argp);
return (0);
}
/*
* PUBLIC: int __bam_relink_print __P((DB_ENV *, DBT *, DB_LSN *,
* PUBLIC: db_recops, void *));
*/
int
__bam_relink_print(dbenv, dbtp, lsnp, notused2, notused3)
DB_ENV *dbenv;
DBT *dbtp;
DB_LSN *lsnp;
db_recops notused2;
void *notused3;
{
__bam_relink_args *argp;
int ret;
notused2 = DB_TXN_ABORT;
notused3 = NULL;
if ((ret = __bam_relink_read(dbenv, dbtp->data, &argp)) != 0)
return (ret);
(void)printf(
"[%lu][%lu]__bam_relink%s: rec: %lu txnid %lx prevlsn [%lu][%lu]\n",
(u_long)lsnp->file,
(u_long)lsnp->offset,
(argp->type & DB_debug_FLAG) ? "_debug" : "",
(u_long)argp->type,
(u_long)argp->txnid->txnid,
(u_long)argp->prev_lsn.file,
(u_long)argp->prev_lsn.offset);
(void)printf("\tfileid: %ld\n", (long)argp->fileid);
(void)printf("\tpgno: %lu\n", (u_long)argp->pgno);
(void)printf("\tlsn: [%lu][%lu]\n",
(u_long)argp->lsn.file, (u_long)argp->lsn.offset);
(void)printf("\tprev: %lu\n", (u_long)argp->prev);
(void)printf("\tlsn_prev: [%lu][%lu]\n",
(u_long)argp->lsn_prev.file, (u_long)argp->lsn_prev.offset);
(void)printf("\tnext: %lu\n", (u_long)argp->next);
(void)printf("\tlsn_next: [%lu][%lu]\n",
(u_long)argp->lsn_next.file, (u_long)argp->lsn_next.offset);
(void)printf("\n");
__os_free(dbenv, argp);
return (0);
}
/*
* PUBLIC: int __bam_init_print __P((DB_ENV *, int (***)(DB_ENV *,
* PUBLIC: DBT *, DB_LSN *, db_recops, void *), size_t *));
*/
int
__bam_init_print(dbenv, dtabp, dtabsizep)
DB_ENV *dbenv;
int (***dtabp)__P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *));
size_t *dtabsizep;
{
int ret;
if ((ret = __db_add_recovery(dbenv, dtabp, dtabsizep,
__bam_split_print, DB___bam_split)) != 0)
return (ret);
if ((ret = __db_add_recovery(dbenv, dtabp, dtabsizep,
__bam_rsplit_print, DB___bam_rsplit)) != 0)
return (ret);
if ((ret = __db_add_recovery(dbenv, dtabp, dtabsizep,
__bam_adj_print, DB___bam_adj)) != 0)
return (ret);
if ((ret = __db_add_recovery(dbenv, dtabp, dtabsizep,
__bam_cadjust_print, DB___bam_cadjust)) != 0)
return (ret);
if ((ret = __db_add_recovery(dbenv, dtabp, dtabsizep,
__bam_cdel_print, DB___bam_cdel)) != 0)
return (ret);
if ((ret = __db_add_recovery(dbenv, dtabp, dtabsizep,
__bam_repl_print, DB___bam_repl)) != 0)
return (ret);
if ((ret = __db_add_recovery(dbenv, dtabp, dtabsizep,
__bam_root_print, DB___bam_root)) != 0)
return (ret);
if ((ret = __db_add_recovery(dbenv, dtabp, dtabsizep,
__bam_curadj_print, DB___bam_curadj)) != 0)
return (ret);
if ((ret = __db_add_recovery(dbenv, dtabp, dtabsizep,
__bam_rcuradj_print, DB___bam_rcuradj)) != 0)
return (ret);
if ((ret = __db_add_recovery(dbenv, dtabp, dtabsizep,
__bam_relink_print, DB___bam_relink)) != 0)
return (ret);
return (0);
}

View File

@ -645,24 +645,6 @@ strdup.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../clib/vsnprintf.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../clib/vsnprintf.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../clib/vsnprintf.c_objects
vsnprintf.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../clib/vsnprintf.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../common/db_byteorder.c_dependDone
TRUE
<END>
@ -1311,6 +1293,60 @@ db_ret.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_setid.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_setid.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_setid.c_objects
db_setid.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_setid.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_setlsn.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_setlsn.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_setlsn.c_objects
db_setlsn.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_setlsn.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_stati.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_stati.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_stati.c_objects
db_stati.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_stati.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_truncate.c_dependDone
TRUE
<END>
@ -1455,6 +1491,24 @@ dbreg_rec.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../dbreg/dbreg_stat.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../dbreg/dbreg_stat.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../dbreg/dbreg_stat.c_objects
dbreg_stat.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../dbreg/dbreg_stat.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../dbreg/dbreg_util.c_dependDone
TRUE
<END>
@ -1599,6 +1653,24 @@ env_region.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../env/env_stat.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../env/env_stat.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../env/env_stat.c_objects
env_stat.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../env/env_stat.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../fileops/fileops_auto.c_dependDone
TRUE
<END>
@ -2013,6 +2085,42 @@ lock_deadlock.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_id.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_id.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_id.c_objects
lock_id.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_id.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_list.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_list.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_list.c_objects
lock_list.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_list.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_method.c_dependDone
TRUE
<END>
@ -2067,6 +2175,24 @@ lock_stat.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_timer.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_timer.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_timer.c_objects
lock_timer.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_timer.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_util.c_dependDone
TRUE
<END>
@ -2193,6 +2319,24 @@ log_put.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../log/log_stat.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../log/log_stat.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../log/log_stat.c_objects
log_stat.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../log/log_stat.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../mp/mp_alloc.c_dependDone
TRUE
<END>
@ -2247,6 +2391,24 @@ mp_fget.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../mp/mp_fmethod.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../mp/mp_fmethod.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../mp/mp_fmethod.c_objects
mp_fmethod.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../mp/mp_fmethod.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../mp/mp_fopen.c_dependDone
TRUE
<END>
@ -2823,6 +2985,24 @@ os_tmpdir.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../os/os_truncate.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../os/os_truncate.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../os/os_truncate.c_objects
os_truncate.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../os/os_truncate.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../os/os_unlink.c_dependDone
TRUE
<END>
@ -3075,6 +3255,42 @@ qam_verify.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_auto.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_auto.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_auto.c_objects
rep_auto.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_auto.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_backup.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_backup.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_backup.c_objects
rep_backup.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_backup.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_method.c_dependDone
TRUE
<END>
@ -3129,6 +3345,24 @@ rep_region.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_stat.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_stat.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_stat.c_objects
rep_stat.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_stat.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_util.c_dependDone
TRUE
<END>
@ -3147,96 +3381,6 @@ rep_util.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/client.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/client.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/client.c_objects
client.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/client.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/db_server_clnt.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/db_server_clnt.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/db_server_clnt.c_objects
db_server_clnt.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/db_server_clnt.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/gen_client.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/gen_client.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/gen_client.c_objects
gen_client.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/gen_client.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/gen_client_ret.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/gen_client_ret.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/gen_client_ret.c_objects
gen_client_ret.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/gen_client_ret.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_server/c/db_server_xdr.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_server/c/db_server_xdr.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_server/c/db_server_xdr.c_objects
db_server_xdr.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_server/c/db_server_xdr.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../txn/txn.c_dependDone
TRUE
<END>
@ -3458,7 +3602,6 @@ $(PRJ_DIR)/../btree/bt_compare.c \
$(PRJ_DIR)/../clib/snprintf.c \
$(PRJ_DIR)/../clib/strcasecmp.c \
$(PRJ_DIR)/../clib/strdup.c \
$(PRJ_DIR)/../clib/vsnprintf.c \
$(PRJ_DIR)/../common/db_byteorder.c \
$(PRJ_DIR)/../common/db_err.c \
$(PRJ_DIR)/../common/db_getlong.c \
@ -3495,6 +3638,9 @@ $(PRJ_DIR)/../btree/bt_compare.c \
$(PRJ_DIR)/../db/db_remove.c \
$(PRJ_DIR)/../db/db_rename.c \
$(PRJ_DIR)/../db/db_ret.c \
$(PRJ_DIR)/../db/db_setid.c \
$(PRJ_DIR)/../db/db_setlsn.c \
$(PRJ_DIR)/../db/db_stati.c \
$(PRJ_DIR)/../db/db_truncate.c \
$(PRJ_DIR)/../db/db_upg.c \
$(PRJ_DIR)/../db/db_upg_opd.c \
@ -3503,6 +3649,7 @@ $(PRJ_DIR)/../btree/bt_compare.c \
$(PRJ_DIR)/../dbreg/dbreg.c \
$(PRJ_DIR)/../dbreg/dbreg_auto.c \
$(PRJ_DIR)/../dbreg/dbreg_rec.c \
$(PRJ_DIR)/../dbreg/dbreg_stat.c \
$(PRJ_DIR)/../dbreg/dbreg_util.c \
$(PRJ_DIR)/../env/db_salloc.c \
$(PRJ_DIR)/../env/db_shash.c \
@ -3511,6 +3658,7 @@ $(PRJ_DIR)/../btree/bt_compare.c \
$(PRJ_DIR)/../env/env_open.c \
$(PRJ_DIR)/../env/env_recover.c \
$(PRJ_DIR)/../env/env_region.c \
$(PRJ_DIR)/../env/env_stat.c \
$(PRJ_DIR)/../fileops/fileops_auto.c \
$(PRJ_DIR)/../fileops/fop_basic.c \
$(PRJ_DIR)/../fileops/fop_rec.c \
@ -3534,9 +3682,12 @@ $(PRJ_DIR)/../btree/bt_compare.c \
$(PRJ_DIR)/../hsearch/hsearch.c \
$(PRJ_DIR)/../lock/lock.c \
$(PRJ_DIR)/../lock/lock_deadlock.c \
$(PRJ_DIR)/../lock/lock_id.c \
$(PRJ_DIR)/../lock/lock_list.c \
$(PRJ_DIR)/../lock/lock_method.c \
$(PRJ_DIR)/../lock/lock_region.c \
$(PRJ_DIR)/../lock/lock_stat.c \
$(PRJ_DIR)/../lock/lock_timer.c \
$(PRJ_DIR)/../lock/lock_util.c \
$(PRJ_DIR)/../log/log.c \
$(PRJ_DIR)/../log/log_archive.c \
@ -3544,9 +3695,11 @@ $(PRJ_DIR)/../btree/bt_compare.c \
$(PRJ_DIR)/../log/log_get.c \
$(PRJ_DIR)/../log/log_method.c \
$(PRJ_DIR)/../log/log_put.c \
$(PRJ_DIR)/../log/log_stat.c \
$(PRJ_DIR)/../mp/mp_alloc.c \
$(PRJ_DIR)/../mp/mp_bh.c \
$(PRJ_DIR)/../mp/mp_fget.c \
$(PRJ_DIR)/../mp/mp_fmethod.c \
$(PRJ_DIR)/../mp/mp_fopen.c \
$(PRJ_DIR)/../mp/mp_fput.c \
$(PRJ_DIR)/../mp/mp_fset.c \
@ -3579,6 +3732,7 @@ $(PRJ_DIR)/../btree/bt_compare.c \
$(PRJ_DIR)/../os/os_spin.c \
$(PRJ_DIR)/../os/os_stat.c \
$(PRJ_DIR)/../os/os_tmpdir.c \
$(PRJ_DIR)/../os/os_truncate.c \
$(PRJ_DIR)/../os/os_unlink.c \
$(PRJ_DIR)/../os_vxworks/os_vx_abs.c \
$(PRJ_DIR)/../os_vxworks/os_vx_config.c \
@ -3593,15 +3747,13 @@ $(PRJ_DIR)/../btree/bt_compare.c \
$(PRJ_DIR)/../qam/qam_stat.c \
$(PRJ_DIR)/../qam/qam_upgrade.c \
$(PRJ_DIR)/../qam/qam_verify.c \
$(PRJ_DIR)/../rep/rep_auto.c \
$(PRJ_DIR)/../rep/rep_backup.c \
$(PRJ_DIR)/../rep/rep_method.c \
$(PRJ_DIR)/../rep/rep_record.c \
$(PRJ_DIR)/../rep/rep_region.c \
$(PRJ_DIR)/../rep/rep_stat.c \
$(PRJ_DIR)/../rep/rep_util.c \
$(PRJ_DIR)/../rpc_client/client.c \
$(PRJ_DIR)/../rpc_client/db_server_clnt.c \
$(PRJ_DIR)/../rpc_client/gen_client.c \
$(PRJ_DIR)/../rpc_client/gen_client_ret.c \
$(PRJ_DIR)/../rpc_server/c/db_server_xdr.c \
$(PRJ_DIR)/../txn/txn.c \
$(PRJ_DIR)/../txn/txn_auto.c \
$(PRJ_DIR)/../txn/txn_method.c \

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,29 @@
Document file - DO NOT EDIT
<BEGIN> CORE_INFO_TYPE
Workspace
<END>
<BEGIN> CORE_INFO_VERSION
2.0
<END>
<BEGIN> projectList
$(PRJ_DIR)/BerkeleyDB20small.wpj \
$(PRJ_DIR)/db_archive/db_archive20.wpj \
$(PRJ_DIR)/db_checkpoint/db_checkpoint20.wpj \
$(PRJ_DIR)/db_deadlock/db_deadlock20.wpj \
$(PRJ_DIR)/db_dump/db_dump20.wpj \
$(PRJ_DIR)/db_load/db_load20.wpj \
$(PRJ_DIR)/db_printlog/db_printlog20.wpj \
$(PRJ_DIR)/db_recover/db_recover20.wpj \
$(PRJ_DIR)/db_stat/db_stat20.wpj \
$(PRJ_DIR)/db_upgrade/db_upgrade20.wpj \
$(PRJ_DIR)/db_verify/db_verify20.wpj \
$(PRJ_DIR)/dbdemo/dbdemo20.wpj
<END>
<BEGIN> userComments
<END>

View File

@ -704,24 +704,6 @@ strdup.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../clib/vsnprintf.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../clib/vsnprintf.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../clib/vsnprintf.c_objects
vsnprintf.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../clib/vsnprintf.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../common/db_byteorder.c_dependDone
TRUE
<END>
@ -1370,6 +1352,60 @@ db_ret.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_setid.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_setid.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_setid.c_objects
db_setid.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_setid.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_setlsn.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_setlsn.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_setlsn.c_objects
db_setlsn.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_setlsn.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_stati.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_stati.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_stati.c_objects
db_stati.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_stati.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../db/db_truncate.c_dependDone
TRUE
<END>
@ -1514,6 +1550,24 @@ dbreg_rec.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../dbreg/dbreg_stat.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../dbreg/dbreg_stat.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../dbreg/dbreg_stat.c_objects
dbreg_stat.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../dbreg/dbreg_stat.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../dbreg/dbreg_util.c_dependDone
TRUE
<END>
@ -1658,6 +1712,24 @@ env_region.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../env/env_stat.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../env/env_stat.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../env/env_stat.c_objects
env_stat.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../env/env_stat.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../fileops/fileops_auto.c_dependDone
TRUE
<END>
@ -2072,6 +2144,42 @@ lock_deadlock.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_id.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_id.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_id.c_objects
lock_id.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_id.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_list.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_list.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_list.c_objects
lock_list.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_list.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_method.c_dependDone
TRUE
<END>
@ -2126,6 +2234,24 @@ lock_stat.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_timer.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_timer.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_timer.c_objects
lock_timer.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_timer.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../lock/lock_util.c_dependDone
TRUE
<END>
@ -2252,6 +2378,24 @@ log_put.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../log/log_stat.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../log/log_stat.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../log/log_stat.c_objects
log_stat.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../log/log_stat.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../mp/mp_alloc.c_dependDone
TRUE
<END>
@ -2306,6 +2450,24 @@ mp_fget.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../mp/mp_fmethod.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../mp/mp_fmethod.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../mp/mp_fmethod.c_objects
mp_fmethod.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../mp/mp_fmethod.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../mp/mp_fopen.c_dependDone
TRUE
<END>
@ -2882,6 +3044,24 @@ os_tmpdir.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../os/os_truncate.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../os/os_truncate.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../os/os_truncate.c_objects
os_truncate.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../os/os_truncate.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../os/os_unlink.c_dependDone
TRUE
<END>
@ -3134,6 +3314,42 @@ qam_verify.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_auto.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_auto.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_auto.c_objects
rep_auto.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_auto.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_backup.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_backup.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_backup.c_objects
rep_backup.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_backup.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_method.c_dependDone
TRUE
<END>
@ -3188,6 +3404,24 @@ rep_region.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_stat.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_stat.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_stat.c_objects
rep_stat.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_stat.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rep/rep_util.c_dependDone
TRUE
<END>
@ -3206,96 +3440,6 @@ rep_util.o
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/client.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/client.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/client.c_objects
client.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/client.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/db_server_clnt.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/db_server_clnt.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/db_server_clnt.c_objects
db_server_clnt.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/db_server_clnt.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/gen_client.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/gen_client.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/gen_client.c_objects
gen_client.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/gen_client.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/gen_client_ret.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/gen_client_ret.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/gen_client_ret.c_objects
gen_client_ret.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_client/gen_client_ret.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_server/c/db_server_xdr.c_dependDone
TRUE
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_server/c/db_server_xdr.c_dependencies
$(PRJ_DIR)/db_config.h \
$(PRJ_DIR)/db_int.h \
$(PRJ_DIR)/db.h
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_server/c/db_server_xdr.c_objects
db_server_xdr.o
<END>
<BEGIN> FILE_$(PRJ_DIR)/../rpc_server/c/db_server_xdr.c_tool
C/C++ compiler
<END>
<BEGIN> FILE_$(PRJ_DIR)/../txn/txn.c_dependDone
TRUE
<END>
@ -3517,7 +3661,6 @@ $(PRJ_DIR)/../btree/bt_compare.c \
$(PRJ_DIR)/../clib/snprintf.c \
$(PRJ_DIR)/../clib/strcasecmp.c \
$(PRJ_DIR)/../clib/strdup.c \
$(PRJ_DIR)/../clib/vsnprintf.c \
$(PRJ_DIR)/../common/db_byteorder.c \
$(PRJ_DIR)/../common/db_err.c \
$(PRJ_DIR)/../common/db_getlong.c \
@ -3554,6 +3697,9 @@ $(PRJ_DIR)/../btree/bt_compare.c \
$(PRJ_DIR)/../db/db_remove.c \
$(PRJ_DIR)/../db/db_rename.c \
$(PRJ_DIR)/../db/db_ret.c \
$(PRJ_DIR)/../db/db_setid.c \
$(PRJ_DIR)/../db/db_setlsn.c \
$(PRJ_DIR)/../db/db_stati.c \
$(PRJ_DIR)/../db/db_truncate.c \
$(PRJ_DIR)/../db/db_upg.c \
$(PRJ_DIR)/../db/db_upg_opd.c \
@ -3562,6 +3708,7 @@ $(PRJ_DIR)/../btree/bt_compare.c \
$(PRJ_DIR)/../dbreg/dbreg.c \
$(PRJ_DIR)/../dbreg/dbreg_auto.c \
$(PRJ_DIR)/../dbreg/dbreg_rec.c \
$(PRJ_DIR)/../dbreg/dbreg_stat.c \
$(PRJ_DIR)/../dbreg/dbreg_util.c \
$(PRJ_DIR)/../env/db_salloc.c \
$(PRJ_DIR)/../env/db_shash.c \
@ -3570,6 +3717,7 @@ $(PRJ_DIR)/../btree/bt_compare.c \
$(PRJ_DIR)/../env/env_open.c \
$(PRJ_DIR)/../env/env_recover.c \
$(PRJ_DIR)/../env/env_region.c \
$(PRJ_DIR)/../env/env_stat.c \
$(PRJ_DIR)/../fileops/fileops_auto.c \
$(PRJ_DIR)/../fileops/fop_basic.c \
$(PRJ_DIR)/../fileops/fop_rec.c \
@ -3593,9 +3741,12 @@ $(PRJ_DIR)/../btree/bt_compare.c \
$(PRJ_DIR)/../hsearch/hsearch.c \
$(PRJ_DIR)/../lock/lock.c \
$(PRJ_DIR)/../lock/lock_deadlock.c \
$(PRJ_DIR)/../lock/lock_id.c \
$(PRJ_DIR)/../lock/lock_list.c \
$(PRJ_DIR)/../lock/lock_method.c \
$(PRJ_DIR)/../lock/lock_region.c \
$(PRJ_DIR)/../lock/lock_stat.c \
$(PRJ_DIR)/../lock/lock_timer.c \
$(PRJ_DIR)/../lock/lock_util.c \
$(PRJ_DIR)/../log/log.c \
$(PRJ_DIR)/../log/log_archive.c \
@ -3603,9 +3754,11 @@ $(PRJ_DIR)/../btree/bt_compare.c \
$(PRJ_DIR)/../log/log_get.c \
$(PRJ_DIR)/../log/log_method.c \
$(PRJ_DIR)/../log/log_put.c \
$(PRJ_DIR)/../log/log_stat.c \
$(PRJ_DIR)/../mp/mp_alloc.c \
$(PRJ_DIR)/../mp/mp_bh.c \
$(PRJ_DIR)/../mp/mp_fget.c \
$(PRJ_DIR)/../mp/mp_fmethod.c \
$(PRJ_DIR)/../mp/mp_fopen.c \
$(PRJ_DIR)/../mp/mp_fput.c \
$(PRJ_DIR)/../mp/mp_fset.c \
@ -3638,6 +3791,7 @@ $(PRJ_DIR)/../btree/bt_compare.c \
$(PRJ_DIR)/../os/os_spin.c \
$(PRJ_DIR)/../os/os_stat.c \
$(PRJ_DIR)/../os/os_tmpdir.c \
$(PRJ_DIR)/../os/os_truncate.c \
$(PRJ_DIR)/../os/os_unlink.c \
$(PRJ_DIR)/../os_vxworks/os_vx_abs.c \
$(PRJ_DIR)/../os_vxworks/os_vx_config.c \
@ -3652,15 +3806,13 @@ $(PRJ_DIR)/../btree/bt_compare.c \
$(PRJ_DIR)/../qam/qam_stat.c \
$(PRJ_DIR)/../qam/qam_upgrade.c \
$(PRJ_DIR)/../qam/qam_verify.c \
$(PRJ_DIR)/../rep/rep_auto.c \
$(PRJ_DIR)/../rep/rep_backup.c \
$(PRJ_DIR)/../rep/rep_method.c \
$(PRJ_DIR)/../rep/rep_record.c \
$(PRJ_DIR)/../rep/rep_region.c \
$(PRJ_DIR)/../rep/rep_stat.c \
$(PRJ_DIR)/../rep/rep_util.c \
$(PRJ_DIR)/../rpc_client/client.c \
$(PRJ_DIR)/../rpc_client/db_server_clnt.c \
$(PRJ_DIR)/../rpc_client/gen_client.c \
$(PRJ_DIR)/../rpc_client/gen_client_ret.c \
$(PRJ_DIR)/../rpc_server/c/db_server_xdr.c \
$(PRJ_DIR)/../txn/txn.c \
$(PRJ_DIR)/../txn/txn_auto.c \
$(PRJ_DIR)/../txn/txn_method.c \

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,29 @@
Document file - DO NOT EDIT
<BEGIN> CORE_INFO_TYPE
Workspace
<END>
<BEGIN> CORE_INFO_VERSION
2.2
<END>
<BEGIN> projectList
$(PRJ_DIR)/BerkeleyDB22small.wpj \
$(PRJ_DIR)/db_archive/db_archive22.wpj \
$(PRJ_DIR)/db_checkpoint/db_checkpoint22.wpj \
$(PRJ_DIR)/db_deadlock/db_deadlock22.wpj \
$(PRJ_DIR)/db_dump/db_dump22.wpj \
$(PRJ_DIR)/db_load/db_load22.wpj \
$(PRJ_DIR)/db_printlog/db_printlog22.wpj \
$(PRJ_DIR)/db_recover/db_recover22.wpj \
$(PRJ_DIR)/db_stat/db_stat22.wpj \
$(PRJ_DIR)/db_upgrade/db_upgrade22.wpj \
$(PRJ_DIR)/db_verify/db_verify22.wpj \
$(PRJ_DIR)/dbdemo/dbdemo22.wpj
<END>
<BEGIN> userComments
<END>

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +1,17 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: db_archive.c,v 11.46 2004/06/10 01:00:08 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char copyright[] =
"Copyright (c) 1996-2003\nSleepycat Software Inc. All rights reserved.\n";
static const char revid[] =
"$Id: db_archive.c,v 11.42 2003/08/13 19:57:04 ubell Exp $";
"Copyright (c) 1996-2004\nSleepycat Software Inc. All rights reserved.\n";
#endif
#ifndef NO_SYSTEM_INCLUDES
@ -123,9 +123,6 @@ db_archive_main(argc, argv)
dbenv->set_errfile(dbenv, stderr);
dbenv->set_errpfx(dbenv, progname);
if (verbose)
(void)dbenv->set_verbose(dbenv, DB_VERB_CHKPOINT, 1);
if (passwd != NULL && (ret = dbenv->set_encrypt(dbenv,
passwd, DB_ENCRYPT_AES)) != 0) {
dbenv->err(dbenv, ret, "set_passwd");
@ -137,9 +134,10 @@ db_archive_main(argc, argv)
*/
if ((ret = dbenv->open(dbenv,
home, DB_JOINENV | DB_USE_ENVIRON, 0)) != 0 &&
(ret == DB_VERSION_MISMATCH ||
(ret = dbenv->open(dbenv, home, DB_CREATE |
DB_INIT_LOG | DB_INIT_TXN | DB_PRIVATE | DB_USE_ENVIRON, 0)) != 0) {
dbenv->err(dbenv, ret, "open");
DB_INIT_LOG | DB_PRIVATE | DB_USE_ENVIRON, 0)) != 0)) {
dbenv->err(dbenv, ret, "DB_ENV->open");
goto shutdown;
}

View File

@ -1,17 +1,17 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: db_checkpoint.c,v 11.54 2004/03/24 15:13:12 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char copyright[] =
"Copyright (c) 1996-2003\nSleepycat Software Inc. All rights reserved.\n";
static const char revid[] =
"$Id: db_checkpoint.c,v 11.51 2003/09/04 18:57:00 bostic Exp $";
"Copyright (c) 1996-2004\nSleepycat Software Inc. All rights reserved.\n";
#endif
#ifndef NO_SYSTEM_INCLUDES
@ -193,7 +193,7 @@ db_checkpoint_main(argc, argv)
while (!__db_util_interrupted()) {
if (verbose) {
(void)time(&now);
dbenv->errx(dbenv, "checkpoint: %s", ctime(&now));
dbenv->errx(dbenv, "checkpoint begin: %s", ctime(&now));
}
if ((ret = dbenv->txn_checkpoint(dbenv,
@ -202,10 +202,16 @@ db_checkpoint_main(argc, argv)
goto shutdown;
}
if (verbose) {
(void)time(&now);
dbenv->errx(dbenv,
"checkpoint complete: %s", ctime(&now));
}
if (once)
break;
(void)__os_sleep(dbenv, seconds, 0);
__os_sleep(dbenv, seconds, 0);
}
if (0) {

View File

@ -54,9 +54,15 @@
/* Define to 1 if fcntl/F_SETFD denies child access to file descriptors. */
/* #undef HAVE_FCNTL_F_SETFD */
/* Define to 1 if you have the `fdatasync' function. */
/* #undef HAVE_FDATASYNC */
/* Define to 1 if allocated filesystem blocks are not zeroed. */
#define HAVE_FILESYSTEM_NOTZERO 1
/* Define to 1 if you have the `ftruncate' function. */
/* #undef HAVE_FTRUNCATE */
/* Define to 1 if you have the `getcwd' function. */
#define HAVE_GETCWD 1
@ -81,6 +87,9 @@
/* Define to 1 if you have the `nsl' library (-lnsl). */
/* #undef HAVE_LIBNSL */
/* Define to 1 if the system has the type `long long'. */
/* #undef HAVE_LONG_LONG */
/* Define to 1 if you have the `memcmp' function. */
#define HAVE_MEMCMP 1
@ -228,6 +237,9 @@
/* Define to 1 if you have the `raise' function. */
#define HAVE_RAISE 1
/* Define to 1 if you have the `rand' function. */
#define HAVE_RAND 1
/* Define to 1 if building replication support. */
#define HAVE_REPLICATION 1
@ -240,12 +252,21 @@
/* Define to 1 if you have the `select' function. */
#define HAVE_SELECT 1
/* Define to 1 if building sequence support. */
/* #undef HAVE_SEQUENCE */
/* Define to 1 if you have the `shmget' function. */
/* #undef HAVE_SHMGET */
/* Define to 1 if you have the `snprintf' function. */
/* #undef HAVE_SNPRINTF */
/* Define to 1 if you have the `srand' function. */
#define HAVE_SRAND 1
/* Define to 1 if building statistics support. */
#define HAVE_STATISTICS 1
/* Define to 1 if you have the <stdint.h> header file. */
/* #undef HAVE_STDINT_H */
@ -305,6 +326,9 @@
/* Define to 1 if unlink of file with open file descriptors will fail. */
#define HAVE_UNLINK_WITH_OPEN_FAILURE 1
/* Define to 1 if the system has the type `unsigned long long'. */
/* #undef HAVE_UNSIGNED_LONG_LONG */
/* Define to 1 if building access method verification support. */
#define HAVE_VERIFY 1
@ -330,13 +354,13 @@
#define PACKAGE_NAME "Berkeley DB"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "Berkeley DB 4.2.52"
#define PACKAGE_STRING "Berkeley DB 4.3.14"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "db-4.2.52"
#define PACKAGE_TARNAME "db-4.3.14"
/* Define to the version of this package. */
#define PACKAGE_VERSION "4.2.52"
#define PACKAGE_VERSION "4.3.14"
/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
/* #undef STAT_MACROS_BROKEN */
@ -347,7 +371,7 @@
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
/* #undef TIME_WITH_SYS_TIME */
/* Define to 1 to mask harmless unitialized memory read/writes. */
/* Define to 1 to mask harmless uninitialized memory read/writes. */
/* #undef UMRW */
/* Number of bits in a file offset, on hosts where this is settable. */

View File

@ -0,0 +1,440 @@
/* DO NOT EDIT: automatically built by dist/s_vxworks. */
/* !!!
* The CONFIG_TEST option may be added using the Tornado project build.
* DO NOT modify it here.
*/
/* Define to 1 if you want to build a version for running the test suite. */
/* #undef CONFIG_TEST */
/* We use DB_WIN32 much as one would use _WIN32 -- to specify that we're using
an operating system environment that supports Win32 calls and semantics. We
don't use _WIN32 because Cygwin/GCC also defines _WIN32, even though
Cygwin/GCC closely emulates the Unix environment. */
/* #undef DB_WIN32 */
/* !!!
* The DEBUG option may be added using the Tornado project build.
* DO NOT modify it here.
*/
/* Define to 1 if you want a debugging version. */
/* #undef DEBUG */
/* Define to 1 if you want a version that logs read operations. */
/* #undef DEBUG_ROP */
/* Define to 1 if you want a version that logs write operations. */
/* #undef DEBUG_WOP */
/* !!!
* The DIAGNOSTIC option may be added using the Tornado project build.
* DO NOT modify it here.
*/
/* Define to 1 if you want a version with run-time diagnostic checking. */
/* #undef DIAGNOSTIC */
/* Define to 1 if you have the `clock_gettime' function. */
#define HAVE_CLOCK_GETTIME 1
/* Define to 1 if Berkeley DB release includes strong cryptography. */
/* #undef HAVE_CRYPTO */
/* Define to 1 if you have the `directio' function. */
/* #undef HAVE_DIRECTIO */
/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
*/
#define HAVE_DIRENT_H 1
/* Define to 1 if you have the <dlfcn.h> header file. */
/* #undef HAVE_DLFCN_H */
/* Define to 1 if you have EXIT_SUCCESS/EXIT_FAILURE #defines. */
#define HAVE_EXIT_SUCCESS 1
/* Define to 1 if fcntl/F_SETFD denies child access to file descriptors. */
/* #undef HAVE_FCNTL_F_SETFD */
/* Define to 1 if you have the `fdatasync' function. */
/* #undef HAVE_FDATASYNC */
/* Define to 1 if allocated filesystem blocks are not zeroed. */
#define HAVE_FILESYSTEM_NOTZERO 1
/* Define to 1 if you have the `ftruncate' function. */
/* #undef HAVE_FTRUNCATE */
/* Define to 1 if you have the `getcwd' function. */
#define HAVE_GETCWD 1
/* Define to 1 if you have the `getopt' function. */
/* #undef HAVE_GETOPT */
/* Define to 1 if you have the `getrusage' function. */
/* #undef HAVE_GETRUSAGE */
/* Define to 1 if you have the `gettimeofday' function. */
/* #undef HAVE_GETTIMEOFDAY */
/* Define to 1 if you have the `getuid' function. */
/* #undef HAVE_GETUID */
/* Define to 1 if building Hash access method. */
/* #undef HAVE_HASH */
/* Define to 1 if you have the <inttypes.h> header file. */
/* #undef HAVE_INTTYPES_H */
/* Define to 1 if you have the `nsl' library (-lnsl). */
/* #undef HAVE_LIBNSL */
/* Define to 1 if the system has the type `long long'. */
/* #undef HAVE_LONG_LONG */
/* Define to 1 if you have the `memcmp' function. */
#define HAVE_MEMCMP 1
/* Define to 1 if you have the `memcpy' function. */
#define HAVE_MEMCPY 1
/* Define to 1 if you have the `memmove' function. */
#define HAVE_MEMMOVE 1
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the `mlock' function. */
/* #undef HAVE_MLOCK */
/* Define to 1 if you have the `mmap' function. */
/* #undef HAVE_MMAP */
/* Define to 1 if you have the `munlock' function. */
/* #undef HAVE_MUNLOCK */
/* Define to 1 if you have the `munmap' function. */
/* #undef HAVE_MUNMAP */
/* Define to 1 to use the GCC compiler and 68K assembly language mutexes. */
/* #undef HAVE_MUTEX_68K_GCC_ASSEMBLY */
/* Define to 1 to use the AIX _check_lock mutexes. */
/* #undef HAVE_MUTEX_AIX_CHECK_LOCK */
/* Define to 1 to use the GCC compiler and Alpha assembly language mutexes. */
/* #undef HAVE_MUTEX_ALPHA_GCC_ASSEMBLY */
/* Define to 1 to use the GCC compiler and ARM assembly language mutexes. */
/* #undef HAVE_MUTEX_ARM_GCC_ASSEMBLY */
/* Define to 1 to use the Apple/Darwin _spin_lock_try mutexes. */
/* #undef HAVE_MUTEX_DARWIN_SPIN_LOCK_TRY */
/* Define to 1 to use the UNIX fcntl system call mutexes. */
/* #undef HAVE_MUTEX_FCNTL */
/* Define to 1 to use the GCC compiler and PaRisc assembly language mutexes.
*/
/* #undef HAVE_MUTEX_HPPA_GCC_ASSEMBLY */
/* Define to 1 to use the msem_XXX mutexes on HP-UX. */
/* #undef HAVE_MUTEX_HPPA_MSEM_INIT */
/* Define to 1 to use the GCC compiler and IA64 assembly language mutexes. */
/* #undef HAVE_MUTEX_IA64_GCC_ASSEMBLY */
/* Define to 1 to use the msem_XXX mutexes on systems other than HP-UX. */
/* #undef HAVE_MUTEX_MSEM_INIT */
/* Define to 1 to use the GCC compiler and PowerPC assembly language mutexes.
*/
/* #undef HAVE_MUTEX_PPC_GCC_ASSEMBLY */
/* Define to 1 to use POSIX 1003.1 pthread_XXX mutexes. */
/* #undef HAVE_MUTEX_PTHREADS */
/* Define to 1 to use Reliant UNIX initspin mutexes. */
/* #undef HAVE_MUTEX_RELIANTUNIX_INITSPIN */
/* Define to 1 to use the IBM C compiler and S/390 assembly language mutexes.
*/
/* #undef HAVE_MUTEX_S390_CC_ASSEMBLY */
/* Define to 1 to use the GCC compiler and S/390 assembly language mutexes. */
/* #undef HAVE_MUTEX_S390_GCC_ASSEMBLY */
/* Define to 1 to use the SCO compiler and x86 assembly language mutexes. */
/* #undef HAVE_MUTEX_SCO_X86_CC_ASSEMBLY */
/* Define to 1 to use the obsolete POSIX 1003.1 sema_XXX mutexes. */
/* #undef HAVE_MUTEX_SEMA_INIT */
/* Define to 1 to use the SGI XXX_lock mutexes. */
/* #undef HAVE_MUTEX_SGI_INIT_LOCK */
/* Define to 1 to use the Solaris _lock_XXX mutexes. */
/* #undef HAVE_MUTEX_SOLARIS_LOCK_TRY */
/* Define to 1 to use the Solaris lwp threads mutexes. */
/* #undef HAVE_MUTEX_SOLARIS_LWP */
/* Define to 1 to use the GCC compiler and Sparc assembly language mutexes. */
/* #undef HAVE_MUTEX_SPARC_GCC_ASSEMBLY */
/* Define to 1 if mutexes hold system resources. */
#define HAVE_MUTEX_SYSTEM_RESOURCES 1
/* Define to 1 if fast mutexes are available. */
#define HAVE_MUTEX_THREADS 1
/* Define to 1 to configure mutexes intra-process only. */
/* #undef HAVE_MUTEX_THREAD_ONLY */
/* Define to 1 to use the CC compiler and Tru64 assembly language mutexes. */
/* #undef HAVE_MUTEX_TRU64_CC_ASSEMBLY */
/* Define to 1 to use the UNIX International mutexes. */
/* #undef HAVE_MUTEX_UI_THREADS */
/* Define to 1 to use the UTS compiler and assembly language mutexes. */
/* #undef HAVE_MUTEX_UTS_CC_ASSEMBLY */
/* Define to 1 to use VMS mutexes. */
/* #undef HAVE_MUTEX_VMS */
/* Define to 1 to use VxWorks mutexes. */
#define HAVE_MUTEX_VXWORKS 1
/* Define to 1 to use the MSVC compiler and Windows mutexes. */
/* #undef HAVE_MUTEX_WIN32 */
/* Define to 1 to use the GCC compiler and Windows mutexes. */
/* #undef HAVE_MUTEX_WIN32_GCC */
/* Define to 1 to use the GCC compiler and x86 assembly language mutexes. */
/* #undef HAVE_MUTEX_X86_GCC_ASSEMBLY */
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
/* #undef HAVE_NDIR_H */
/* Define to 1 if you have the O_DIRECT flag. */
/* #undef HAVE_O_DIRECT */
/* Define to 1 if you have the `pread' function. */
/* #undef HAVE_PREAD */
/* Define to 1 if you have the `pstat_getdynamic' function. */
/* #undef HAVE_PSTAT_GETDYNAMIC */
/* Define to 1 if you have the `pwrite' function. */
/* #undef HAVE_PWRITE */
/* Define to 1 if building on QNX. */
/* #undef HAVE_QNX */
/* Define to 1 if building Queue access method. */
/* #undef HAVE_QUEUE */
/* Define to 1 if you have the `raise' function. */
#define HAVE_RAISE 1
/* Define to 1 if you have the `rand' function. */
#define HAVE_RAND 1
/* Define to 1 if building replication support. */
/* #undef HAVE_REPLICATION */
/* Define to 1 if building RPC client/server. */
/* #undef HAVE_RPC */
/* Define to 1 if you have the `sched_yield' function. */
#define HAVE_SCHED_YIELD 1
/* Define to 1 if you have the `select' function. */
#define HAVE_SELECT 1
/* Define to 1 if building sequence support. */
/* #undef HAVE_SEQUENCE */
/* Define to 1 if you have the `shmget' function. */
/* #undef HAVE_SHMGET */
/* Define to 1 if you have the `snprintf' function. */
/* #undef HAVE_SNPRINTF */
/* Define to 1 if you have the `srand' function. */
#define HAVE_SRAND 1
/* Define to 1 if building statistics support. */
/* #undef HAVE_STATISTICS */
/* Define to 1 if you have the <stdint.h> header file. */
/* #undef HAVE_STDINT_H */
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the `strcasecmp' function. */
/* #undef HAVE_STRCASECMP */
/* Define to 1 if you have the `strdup' function. */
/* #undef HAVE_STRDUP */
/* Define to 1 if you have the `strerror' function. */
#define HAVE_STRERROR 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the `strtoul' function. */
#define HAVE_STRTOUL 1
/* Define to 1 if `st_blksize' is member of `struct stat'. */
#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
/* Define to 1 if you have the `sysconf' function. */
/* #undef HAVE_SYSCONF */
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
*/
/* #undef HAVE_SYS_DIR_H */
/* Define to 1 if you have the <sys/fcntl.h> header file. */
/* #undef HAVE_SYS_FCNTL_H */
/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
*/
/* #undef HAVE_SYS_NDIR_H */
/* Define to 1 if you have the <sys/select.h> header file. */
/* #undef HAVE_SYS_SELECT_H */
/* Define to 1 if you have the <sys/stat.h> header file. */
/* #undef HAVE_SYS_STAT_H */
/* Define to 1 if you have the <sys/time.h> header file. */
/* #undef HAVE_SYS_TIME_H */
/* Define to 1 if you have the <sys/types.h> header file. */
/* #undef HAVE_SYS_TYPES_H */
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Define to 1 if unlink of file with open file descriptors will fail. */
#define HAVE_UNLINK_WITH_OPEN_FAILURE 1
/* Define to 1 if the system has the type `unsigned long long'. */
/* #undef HAVE_UNSIGNED_LONG_LONG */
/* Define to 1 if building access method verification support. */
/* #undef HAVE_VERIFY */
/* Define to 1 if you have the `vsnprintf' function. */
/* #undef HAVE_VSNPRINTF */
/* Define to 1 if building VxWorks. */
#define HAVE_VXWORKS 1
/* Define to 1 if you have the `yield' function. */
/* #undef HAVE_YIELD */
/* Define to 1 if you have the `_fstati64' function. */
/* #undef HAVE__FSTATI64 */
/* Define to a value if using non-standard mutex alignment. */
/* #undef MUTEX_ALIGN */
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "support@sleepycat.com"
/* Define to the full name of this package. */
#define PACKAGE_NAME "Berkeley DB"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "Berkeley DB 4.3.14"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "db-4.3.14"
/* Define to the version of this package. */
#define PACKAGE_VERSION "4.3.14"
/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
/* #undef STAT_MACROS_BROKEN */
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
/* #undef TIME_WITH_SYS_TIME */
/* Define to 1 to mask harmless uninitialized memory read/writes. */
/* #undef UMRW */
/* Number of bits in a file offset, on hosts where this is settable. */
/* #undef _FILE_OFFSET_BITS */
/* Define for large files, on AIX-style hosts. */
/* #undef _LARGE_FILES */
/* Define to empty if `const' does not conform to ANSI C. */
/* #undef const */
/*
* Exit success/failure macros.
*/
#ifndef HAVE_EXIT_SUCCESS
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0
#endif
/*
* Don't step on the namespace. Other libraries may have their own
* implementations of these functions, we don't want to use their
* implementations or force them to use ours based on the load order.
*/
#ifndef HAVE_GETCWD
#define getcwd __db_Cgetcwd
#endif
#ifndef HAVE_GETOPT
#define getopt __db_Cgetopt
#define optarg __db_Coptarg
#define opterr __db_Copterr
#define optind __db_Coptind
#define optopt __db_Coptopt
#endif
#ifndef HAVE_MEMCMP
#define memcmp __db_Cmemcmp
#endif
#ifndef HAVE_MEMCPY
#define memcpy __db_Cmemcpy
#endif
#ifndef HAVE_MEMMOVE
#define memmove __db_Cmemmove
#endif
#ifndef HAVE_RAISE
#define raise __db_Craise
#endif
#ifndef HAVE_SNPRINTF
#define snprintf __db_Csnprintf
#endif
#ifndef HAVE_STRCASECMP
#define strcasecmp __db_Cstrcasecmp
#define strncasecmp __db_Cstrncasecmp
#endif
#ifndef HAVE_STRERROR
#define strerror __db_Cstrerror
#endif
#ifndef HAVE_VSNPRINTF
#define vsnprintf __db_Cvsnprintf
#endif
/*
* !!!
* The following is not part of the automatic configuration setup, but
* provides the information necessary to build Berkeley DB on VxWorks.
*/
#include "vxWorks.h"

View File

@ -1,17 +1,17 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: db_deadlock.c,v 11.45 2004/03/24 15:13:12 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char copyright[] =
"Copyright (c) 1996-2003\nSleepycat Software Inc. All rights reserved.\n";
static const char revid[] =
"$Id: db_deadlock.c,v 11.41 2003/06/17 14:36:44 bostic Exp $";
"Copyright (c) 1996-2004\nSleepycat Software Inc. All rights reserved.\n";
#endif
#ifndef NO_SYSTEM_INCLUDES
@ -95,6 +95,9 @@ db_deadlock_main(argc, argv)
case 'o':
atype = DB_LOCK_OLDEST;
break;
case 'W':
atype = DB_LOCK_MAXWRITE;
break;
case 'w':
atype = DB_LOCK_MINWRITE;
break;
@ -176,8 +179,8 @@ db_deadlock_main(argc, argv)
}
/* An environment is required. */
if ((ret = dbenv->open(dbenv, home,
DB_JOINENV | DB_USE_ENVIRON, 0)) != 0) {
if ((ret =
dbenv->open(dbenv, home, DB_INIT_LOCK | DB_USE_ENVIRON, 0)) != 0) {
dbenv->err(dbenv, ret, "open");
goto shutdown;
}
@ -196,7 +199,7 @@ db_deadlock_main(argc, argv)
/* Make a pass every "secs" secs and "usecs" usecs. */
if (secs == 0 && usecs == 0)
break;
(void)__os_sleep(dbenv, secs, usecs);
__os_sleep(dbenv, secs, usecs);
}
if (0) {
@ -225,7 +228,7 @@ db_deadlock_usage()
{
(void)fprintf(stderr, "%s\n\t%s\n",
"usage: db_deadlock [-Vv]",
"[-a e | m | n | o | w | y] [-h home] [-L file] [-t sec.usec]");
"[-a e | m | n | o | W | w | y] [-h home] [-L file] [-t sec.usec]");
return (EXIT_FAILURE);
}

View File

@ -1,17 +1,17 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: db_dump.c,v 11.99 2004/10/11 18:53:13 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char copyright[] =
"Copyright (c) 1996-2003\nSleepycat Software Inc. All rights reserved.\n";
static const char revid[] =
"$Id: db_dump.c,v 11.88 2003/08/13 19:57:06 ubell Exp $";
"Copyright (c) 1996-2004\nSleepycat Software Inc. All rights reserved.\n";
#endif
#ifndef NO_SYSTEM_INCLUDES
@ -28,7 +28,6 @@ static const char revid[] =
#include "dbinc/db_am.h"
int db_dump_db_init __P((DB_ENV *, char *, int, u_int32_t, int *));
int db_dump_dump __P((DB *, int, int));
int db_dump_dump_sub __P((DB_ENV *, DB *, char *, int, int));
int db_dump_is_sub __P((DB *, int *));
int db_dump_main __P((int, char *[]));
@ -226,7 +225,7 @@ retry: if ((ret = db_env_create(&dbenv, 0)) != 0) {
goto err;
}
if (private != 0) {
if ((ret = __db_util_cache(dbenv, dbp, &cache, &resize)) != 0)
if ((ret = __db_util_cache(dbp, &cache, &resize)) != 0)
goto err;
if (resize) {
(void)dbp->close(dbp, 0);
@ -239,8 +238,8 @@ retry: if ((ret = db_env_create(&dbenv, 0)) != 0) {
}
if (dopt != NULL) {
if (__db_dump(dbp, dopt, NULL)) {
dbp->err(dbp, ret, "__db_dump: %s", argv[0]);
if ((ret = __db_dumptree(dbp, dopt, NULL)) != 0) {
dbp->err(dbp, ret, "__db_dumptree: %s", argv[0]);
goto err;
}
} else if (lflag) {
@ -261,9 +260,8 @@ retry: if ((ret = db_env_create(&dbenv, 0)) != 0) {
if (db_dump_dump_sub(dbenv, dbp, argv[0], pflag, keyflag))
goto err;
} else
if (__db_prheader(dbp, NULL, pflag, keyflag, stdout,
__db_pr_callback, NULL, 0) ||
db_dump_dump(dbp, pflag, keyflag))
if (dbp->dump(dbp, NULL,
__db_pr_callback, stdout, pflag, keyflag))
goto err;
}
@ -322,9 +320,11 @@ db_dump_db_init(dbenv, home, is_salvage, cache, is_privatep)
* before we create our own.
*/
*is_privatep = 0;
if (dbenv->open(dbenv, home,
DB_USE_ENVIRON | (is_salvage ? DB_INIT_MPOOL : DB_JOINENV), 0) == 0)
if ((ret = dbenv->open(dbenv, home, DB_USE_ENVIRON |
(is_salvage ? DB_INIT_MPOOL : DB_JOINENV), 0)) == 0)
return (0);
if (ret == DB_VERSION_MISMATCH)
goto err;
/*
* An environment is required because we may be trying to look at
@ -343,7 +343,7 @@ db_dump_db_init(dbenv, home, is_salvage, cache, is_privatep)
return (0);
/* An environment is required. */
dbenv->err(dbenv, ret, "open");
err: dbenv->err(dbenv, ret, "DB_ENV->open");
return (1);
}
@ -363,7 +363,7 @@ db_dump_is_sub(dbp, yesno)
switch (dbp->type) {
case DB_BTREE:
case DB_RECNO:
if ((ret = dbp->stat(dbp, &btsp, DB_FAST_STAT)) != 0) {
if ((ret = dbp->stat(dbp, NULL, &btsp, DB_FAST_STAT)) != 0) {
dbp->err(dbp, ret, "DB->stat");
return (ret);
}
@ -371,7 +371,7 @@ db_dump_is_sub(dbp, yesno)
free(btsp);
break;
case DB_HASH:
if ((ret = dbp->stat(dbp, &hsp, DB_FAST_STAT)) != 0) {
if ((ret = dbp->stat(dbp, NULL, &hsp, DB_FAST_STAT)) != 0) {
dbp->err(dbp, ret, "DB->stat");
return (ret);
}
@ -435,10 +435,8 @@ db_dump_dump_sub(dbenv, parent_dbp, parent_name, pflag, keyflag)
parent_name, subdb, DB_UNKNOWN, DB_RDONLY, 0)) != 0)
dbp->err(dbp, ret,
"DB->open: %s:%s", parent_name, subdb);
if (ret == 0 &&
(__db_prheader(dbp, subdb, pflag, keyflag, stdout,
__db_pr_callback, NULL, 0) ||
db_dump_dump(dbp, pflag, keyflag)))
if (ret == 0 && dbp->dump(
dbp, subdb, __db_pr_callback, stdout, pflag, keyflag))
ret = 1;
(void)dbp->close(dbp, 0);
free(subdb);
@ -482,8 +480,8 @@ db_dump_show_subs(dbp)
memset(&key, 0, sizeof(key));
memset(&data, 0, sizeof(data));
while ((ret = dbcp->c_get(dbcp, &key, &data, DB_NEXT)) == 0) {
if ((ret = __db_prdbt(&key, 1, NULL, stdout,
__db_pr_callback, 0, NULL)) != 0) {
if ((ret = dbp->dbenv->prdbt(
&key, 1, NULL, stdout, __db_pr_callback, 0)) != 0) {
dbp->errx(dbp, NULL);
return (1);
}
@ -500,105 +498,6 @@ db_dump_show_subs(dbp)
return (0);
}
/*
* dump --
* Dump out the records for a DB.
*/
int
db_dump_dump(dbp, pflag, keyflag)
DB *dbp;
int pflag, keyflag;
{
DBC *dbcp;
DBT key, data;
DBT keyret, dataret;
db_recno_t recno;
int is_recno, failed, ret;
void *pointer;
/*
* Get a cursor and step through the database, printing out each
* key/data pair.
*/
if ((ret = dbp->cursor(dbp, NULL, &dbcp, 0)) != 0) {
dbp->err(dbp, ret, "DB->cursor");
return (1);
}
failed = 0;
memset(&key, 0, sizeof(key));
memset(&data, 0, sizeof(data));
data.data = malloc(1024 * 1024);
if (data.data == NULL) {
dbp->err(dbp, ENOMEM, "bulk get buffer");
failed = 1;
goto err;
}
data.ulen = 1024 * 1024;
data.flags = DB_DBT_USERMEM;
is_recno = (dbp->type == DB_RECNO || dbp->type == DB_QUEUE);
keyflag = is_recno ? keyflag : 1;
if (is_recno) {
keyret.data = &recno;
keyret.size = sizeof(recno);
}
retry:
while ((ret =
dbcp->c_get(dbcp, &key, &data, DB_NEXT | DB_MULTIPLE_KEY)) == 0) {
DB_MULTIPLE_INIT(pointer, &data);
for (;;) {
if (is_recno)
DB_MULTIPLE_RECNO_NEXT(pointer, &data,
recno, dataret.data, dataret.size);
else
DB_MULTIPLE_KEY_NEXT(pointer,
&data, keyret.data,
keyret.size, dataret.data, dataret.size);
if (dataret.data == NULL)
break;
if ((keyflag && (ret = __db_prdbt(&keyret,
pflag, " ", stdout, __db_pr_callback,
is_recno, NULL)) != 0) || (ret =
__db_prdbt(&dataret, pflag, " ", stdout,
__db_pr_callback, 0, NULL)) != 0) {
dbp->errx(dbp, NULL);
failed = 1;
goto err;
}
}
}
if (ret == ENOMEM) {
data.size = ALIGN(data.size, 1024);
data.data = realloc(data.data, data.size);
if (data.data == NULL) {
dbp->err(dbp, ENOMEM, "bulk get buffer");
failed = 1;
goto err;
}
data.ulen = data.size;
goto retry;
}
if (ret != DB_NOTFOUND) {
dbp->err(dbp, ret, "DBcursor->get");
failed = 1;
}
err: if (data.data != NULL)
free(data.data);
if ((ret = dbcp->c_close(dbcp)) != 0) {
dbp->err(dbp, ret, "DBcursor->close");
failed = 1;
}
(void)__db_prfooter(stdout, __db_pr_callback);
return (failed);
}
/*
* usage --
* Display the usage message.

View File

@ -2,10 +2,10 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: db_int.in,v 11.126 2003/09/10 17:27:14 sue Exp $
* $Id: db_int.in,v 11.153 2004/10/05 14:43:53 mjc Exp $
*/
#ifndef _DB_INTERNAL_H_
@ -36,8 +36,39 @@ extern "C" {
/*******************************************************
* General purpose constants and macros.
*******************************************************/
#define UINT16_T_MAX 0xffff /* Maximum 16 bit unsigned. */
#define UINT32_T_MAX 0xffffffff /* Maximum 32 bit unsigned. */
#ifndef UINT16_MAX
#define UINT16_MAX 65535 /* Maximum 16-bit unsigned. */
#endif
#ifndef UINT32_MAX
#define UINT32_MAX 4294967295U /* Maximum 32-bit unsigned. */
#endif
#if defined(HAVE_LONG_LONG) && defined(HAVE_UNSIGNED_LONG_LONG)
#undef INT64_MAX
#undef INT64_MIN
#undef UINT64_MAX
#ifdef DB_WIN32
#define INT64_MAX _I64_MAX
#define INT64_MIN _I64_MIN
#define UINT64_MAX _UI64_MAX
#define INT64_FMT "%l64d"
#define UINT64_FMT "%l64u"
#else
/*
* Override the system's 64-bit min/max constants. AIX's 32-bit compiler can
* handle 64-bit values, but the system's constants don't include the LL/ULL
* suffix, and so can't be compiled using the 32-bit compiler.
*/
#define INT64_MAX 9223372036854775807LL
#define INT64_MIN (-INT64_MAX-1)
#define UINT64_MAX 18446744073709551615ULL
#define INT64_FMT "%lld"
#define UINT64_FMT "%llu"
#endif /* DB_WIN32 */
#endif /* HAVE_LONG_LONG && HAVE_UNSIGNED_LONG_LONG */
#define MEGABYTE 1048576
#define GIGABYTE 1073741824
@ -65,53 +96,38 @@ extern "C" {
*/
#define DB_DEF_IOSIZE (8 * 1024)
/* Number of times to reties I/O operations that return EINTR or EBUSY. */
#define DB_RETRY 100
/*
* Aligning items to particular sizes or in pages or memory.
*
* db_align_t --
* Largest integral type, used to align structures in memory. We don't store
* floating point types in structures, so integral types should be sufficient
* (and we don't have to worry about systems that store floats in other than
* power-of-2 numbers of bytes). Additionally this fixes compiler that rewrite
* structure assignments and ANSI C memcpy calls to be in-line instructions
* that happen to require alignment. Note: this alignment isn't sufficient for
* mutexes, which depend on things like cache line alignment. Mutex alignment
* is handled separately, in mutex.h.
*
* db_alignp_t --
* Integral type that's the same size as a pointer. There are places where
* DB modifies pointers by discarding the bottom bits to guarantee alignment.
* We can't use db_align_t, it may be larger than the pointer, and compilers
* get upset about that. So far we haven't run on any machine where there
* isn't an integral type the same size as a pointer -- here's hoping.
*/
typedef unsigned long db_align_t;
typedef unsigned long db_alignp_t;
/* Align an integer to a specific boundary. */
#undef ALIGN
#define ALIGN(v, bound) (((v) + (bound) - 1) & ~(((db_align_t)bound) - 1))
#undef DB_ALIGN
#define DB_ALIGN(v, bound) \
(((v) + (bound) - 1) & ~(((uintmax_t)bound) - 1))
/* Increment a pointer to a specific boundary. */
#undef ALIGNP_INC
#define ALIGNP_INC(p, bound) \
(void *)(((uintptr_t)(p) + (bound) - 1) & ~(((uintptr_t)bound) - 1))
/* Decrement a pointer to a specific boundary. */
#undef ALIGNP_DEC
#define ALIGNP_DEC(p, bound) \
(void *)((uintptr_t)(p) & ~(((uintptr_t)bound) - 1))
/*
* Print an address as a u_long (a u_long is the largest type we can print
* portably). Most 64-bit systems have made longs 64-bits, so this should
* work.
*/
#define P_TO_ULONG(p) ((u_long)(db_alignp_t)(p))
#define P_TO_ULONG(p) ((u_long)(uintptr_t)(p))
/*
* Convert a pointer to a small integral value.
*
* The (u_int16_t)(db_alignp_t) cast avoids warnings: the (db_alignp_t) cast
* The (u_int16_t)(uintptr_t) cast avoids warnings: the (uintptr_t) cast
* converts the value to an integral type, and the (u_int16_t) cast converts
* it to a small integral type so we don't get complaints when we assign the
* final result to an integral type smaller than db_alignp_t.
* final result to an integral type smaller than uintptr_t.
*/
#define P_TO_UINT32(p) ((u_int32_t)(db_alignp_t)(p))
#define P_TO_UINT16(p) ((u_int16_t)(db_alignp_t)(p))
#define P_TO_UINT32(p) ((u_int32_t)(uintptr_t)(p))
#define P_TO_UINT16(p) ((u_int16_t)(uintptr_t)(p))
/*
* There are several on-page structures that are declared to have a number of
@ -149,9 +165,64 @@ typedef struct __fn {
#define LF_ISSET(f) ((flags) & (f))
#define LF_SET(f) ((flags) |= (f))
/* Display separator string. */
#undef DB_LINE
#define DB_LINE "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="
/*
* Calculate a percentage. The values can overflow 32-bit integer arithmetic
* so we use floating point.
*
* When calculating a bytes-vs-page size percentage, we're getting the inverse
* of the percentage in all cases, that is, we want 100 minus the percentage we
* calculate.
*/
#define DB_PCT(v, total) \
((int)((total) == 0 ? 0 : ((double)(v) * 100) / (total)))
#define DB_PCT_PG(v, total, pgsize) \
((int)((total) == 0 ? 0 : \
100 - ((double)(v) * 100) / ((total) * (pgsize))))
/*
* Structure used for callback message aggregation.
*
* Display values in XXX_stat_print calls.
*/
typedef struct __db_msgbuf {
char *buf; /* Heap allocated buffer. */
char *cur; /* Current end of message. */
size_t len; /* Allocated length of buffer. */
} DB_MSGBUF;
#define DB_MSGBUF_INIT(a) do { \
(a)->buf = (a)->cur = NULL; \
(a)->len = 0; \
} while (0)
#define DB_MSGBUF_FLUSH(dbenv, a) do { \
if ((a)->buf != NULL) { \
if ((a)->cur != (a)->buf) \
__db_msg(dbenv, "%s", (a)->buf); \
__os_free(dbenv, (a)->buf); \
DB_MSGBUF_INIT(a); \
} \
} while (0)
#define STAT_FMT(msg, fmt, type, v) do { \
DB_MSGBUF __mb; \
DB_MSGBUF_INIT(&__mb); \
__db_msgadd(dbenv, &__mb, fmt, (type)(v)); \
__db_msgadd(dbenv, &__mb, "\t%s", msg); \
DB_MSGBUF_FLUSH(dbenv, &__mb); \
} while (0)
#define STAT_HEX(msg, v) \
__db_msg(dbenv, "%#lx\t%s", (u_long)(v), msg)
#define STAT_ISSET(msg, p) \
__db_msg(dbenv, "%sSet\t%s", (p) == NULL ? "!" : " ", msg)
#define STAT_LONG(msg, v) \
__db_msg(dbenv, "%ld\t%s", (long)(v), msg)
#define STAT_LSN(msg, lsnp) \
__db_msg(dbenv, "%lu/%lu\t%s", \
(u_long)(lsnp)->file, (u_long)(lsnp)->offset, msg)
#define STAT_STRING(msg, p) do { \
const char *__p = p; /* p may be a function call. */ \
__db_msg(dbenv, "%s\t%s", __p == NULL ? "!Set" : __p, msg); \
} while (0)
#define STAT_ULONG(msg, v) \
__db_msg(dbenv, "%lu\t%s", (u_long)(v), msg)
/*******************************************************
* API return values
@ -177,7 +248,8 @@ typedef struct __fn {
(ret) == DB_REP_ISPERM || \
(ret) == DB_REP_NEWMASTER || \
(ret) == DB_REP_NEWSITE || \
(ret) == DB_REP_NOTPERM)
(ret) == DB_REP_NOTPERM || \
(ret) == DB_REP_STARTUPDONE)
/* Find a reasonable operation-not-supported error. */
#ifdef EOPNOTSUPP
@ -263,6 +335,9 @@ typedef enum {
#define ENV_REQUIRES_CONFIG(dbenv, handle, i, flags) \
if (handle == NULL) \
return (__db_env_config(dbenv, i, flags));
#define ENV_NOT_CONFIGURED(dbenv, handle, i, flags) \
if (F_ISSET((dbenv), DB_ENV_OPEN_CALLED)) \
ENV_REQUIRES_CONFIG(dbenv, handle, i, flags)
/*******************************************************
* Database Access Methods.
@ -386,11 +461,11 @@ typedef struct __dbpginfo {
} while (0)
#define MAX_LSN(LSN) do { \
(LSN).file = UINT32_T_MAX; \
(LSN).offset = UINT32_T_MAX; \
(LSN).file = UINT32_MAX; \
(LSN).offset = UINT32_MAX; \
} while (0)
#define IS_MAX_LSN(LSN) \
((LSN).file == UINT32_T_MAX && (LSN).offset == UINT32_T_MAX)
((LSN).file == UINT32_MAX && (LSN).offset == UINT32_MAX)
/* If logging is turned off, smash the lsn. */
#define LSN_NOT_LOGGED(LSN) do { \
@ -404,6 +479,8 @@ typedef struct __dbpginfo {
* Txn.
*******************************************************/
#define DB_NONBLOCK(C) ((C)->txn != NULL && F_ISSET((C)->txn, TXN_NOWAIT))
#define NOWAIT_FLAG(txn) \
((txn) != NULL && F_ISSET((txn), TXN_NOWAIT) ? DB_LOCK_NOWAIT : 0)
#define IS_SUBTRANSACTION(txn) \
((txn) != NULL && (txn)->parent != NULL)
@ -413,6 +490,33 @@ typedef struct __dbpginfo {
#define DB_IV_BYTES 16 /* Bytes per IV */
#define DB_MAC_KEY 20 /* Bytes per MAC checksum */
/*******************************************************
* Secondaries over RPC.
*******************************************************/
#ifdef CONFIG_TEST
/*
* These are flags passed to DB->associate calls by the Tcl API if running
* over RPC. The RPC server will mask out these flags before making the real
* DB->associate call.
*
* These flags must coexist with the valid flags to DB->associate (currently
* DB_AUTO_COMMIT and DB_CREATE). DB_AUTO_COMMIT is in the group of
* high-order shared flags (0xff000000), and DB_CREATE is in the low-order
* group (0x00000fff), so we pick a range in between.
*/
#define DB_RPC2ND_MASK 0x00f00000 /* Reserved bits. */
#define DB_RPC2ND_REVERSEDATA 0x00100000 /* callback_n(0) _s_reversedata. */
#define DB_RPC2ND_NOOP 0x00200000 /* callback_n(1) _s_noop */
#define DB_RPC2ND_CONCATKEYDATA 0x00300000 /* callback_n(2) _s_concatkeydata */
#define DB_RPC2ND_CONCATDATAKEY 0x00400000 /* callback_n(3) _s_concatdatakey */
#define DB_RPC2ND_REVERSECONCAT 0x00500000 /* callback_n(4) _s_reverseconcat */
#define DB_RPC2ND_TRUNCDATA 0x00600000 /* callback_n(5) _s_truncdata */
#define DB_RPC2ND_CONSTANT 0x00700000 /* callback_n(6) _s_constant */
#define DB_RPC2ND_GETZIP 0x00800000 /* sj_getzip */
#define DB_RPC2ND_GETNAME 0x00900000 /* sj_getname */
#endif
/*******************************************************
* Forward structure declarations.
*******************************************************/

View File

@ -1,17 +1,17 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: db_load.c,v 11.99 2004/10/11 18:53:14 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char copyright[] =
"Copyright (c) 1996-2003\nSleepycat Software Inc. All rights reserved.\n";
static const char revid[] =
"$Id: db_load.c,v 11.88 2003/10/16 17:51:08 bostic Exp $";
"Copyright (c) 1996-2004\nSleepycat Software Inc. All rights reserved.\n";
#endif
#ifndef NO_SYSTEM_INCLUDES
@ -85,12 +85,13 @@ db_load_main(argc, argv)
int argc;
char *argv[];
{
enum { NOTSET, FILEID_RESET, LSN_RESET, INVALID } reset;
extern char *optarg;
extern int optind, __db_getopt_reset;
DBTYPE dbtype;
DB_ENV *dbenv;
LDG ldg;
u_int32_t ldf;
u_int ldf;
int ch, existed, exitval, ret;
char **clist, **clp;
@ -106,6 +107,7 @@ db_load_main(argc, argv)
if ((ret = db_load_version_check(ldg.progname)) != 0)
return (ret);
reset = NOTSET;
ldf = 0;
exitval = existed = 0;
dbtype = DB_UNKNOWN;
@ -116,13 +118,28 @@ db_load_main(argc, argv)
return (EXIT_FAILURE);
}
/*
* There are two modes for db_load: -r and everything else. The -r
* option zeroes out the database LSN's or resets the file ID, it
* doesn't really "load" a new database. The functionality is in
* db_load because we don't have a better place to put it, and we
* don't want to create a new utility for just that functionality.
*/
__db_getopt_reset = 1;
while ((ch = getopt(argc, argv, "c:f:h:nP:Tt:V")) != EOF)
while ((ch = getopt(argc, argv, "c:f:h:nP:r:Tt:V")) != EOF)
switch (ch) {
case 'c':
if (reset != NOTSET)
return (db_load_usage());
reset = INVALID;
*clp++ = optarg;
break;
case 'f':
if (reset != NOTSET)
return (db_load_usage());
reset = INVALID;
if (freopen(optarg, "r", stdin) == NULL) {
fprintf(stderr, "%s: %s: reopen: %s\n",
ldg.progname, optarg, strerror(errno));
@ -133,6 +150,10 @@ db_load_main(argc, argv)
ldg.home = optarg;
break;
case 'n':
if (reset != NOTSET)
return (db_load_usage());
reset = INVALID;
ldf |= LDF_NOOVERWRITE;
break;
case 'P':
@ -145,10 +166,28 @@ db_load_main(argc, argv)
}
ldf |= LDF_PASSWORD;
break;
case 'r':
if (reset == INVALID)
return (db_load_usage());
if (strcmp(optarg, "lsn") == 0)
reset = LSN_RESET;
else if (strcmp(optarg, "fileid") == 0)
reset = FILEID_RESET;
else
return (db_load_usage());
break;
case 'T':
if (reset != NOTSET)
return (db_load_usage());
reset = INVALID;
ldf |= LDF_NOHEADER;
break;
case 't':
if (reset != NOTSET)
return (db_load_usage());
reset = INVALID;
if (strcmp(optarg, "btree") == 0) {
dbtype = DB_BTREE;
break;
@ -189,10 +228,23 @@ db_load_main(argc, argv)
if (db_load_env_create(&dbenv, &ldg) != 0)
goto shutdown;
while (!ldg.endofile)
if (db_load_load(dbenv, argv[0], dbtype, clist, ldf,
&ldg, &existed) != 0)
goto shutdown;
/* If we're resetting the LSNs, that's an entirely separate path. */
switch (reset) {
case FILEID_RESET:
exitval = dbenv->fileid_reset(
dbenv, argv[0], ldf & LDF_PASSWORD ? 1 : 0);
break;
case LSN_RESET:
exitval = dbenv->lsn_reset(
dbenv, argv[0], ldf & LDF_PASSWORD ? 1 : 0);
break;
default:
while (!ldg.endofile)
if (db_load_load(dbenv, argv[0], dbtype, clist, ldf,
&ldg, &existed) != 0)
goto shutdown;
break;
}
if (0) {
shutdown: exitval = 1;
@ -367,8 +419,7 @@ retry_db:
goto err;
}
if (ldg->private != 0) {
if ((ret =
__db_util_cache(dbenv, dbp, &ldg->cache, &resize)) != 0)
if ((ret = __db_util_cache(dbp, &ldg->cache, &resize)) != 0)
goto err;
if (resize) {
if ((ret = dbp->close(dbp, 0)) != 0)
@ -464,8 +515,8 @@ retry: if (txn != NULL)
name,
!keyflag ? recno : recno * 2 - 1);
(void)__db_prdbt(&key, checkprint, 0, stderr,
__db_pr_callback, 0, NULL);
(void)dbenv->prdbt(&key,
checkprint, 0, stderr, __db_pr_callback, 0);
break;
case DB_LOCK_DEADLOCK:
/* If we have a child txn, retry--else it's fatal. */
@ -575,8 +626,10 @@ db_load_db_init(dbenv, home, cache, is_private)
/* We may be loading into a live environment. Try and join. */
flags = DB_USE_ENVIRON |
DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN;
if (dbenv->open(dbenv, home, flags, 0) == 0)
if ((ret = dbenv->open(dbenv, home, flags, 0)) == 0)
return (0);
if (ret == DB_VERSION_MISMATCH)
goto err;
/*
* We're trying to load a database.
@ -601,7 +654,7 @@ db_load_db_init(dbenv, home, cache, is_private)
return (0);
/* An environment is required. */
dbenv->err(dbenv, ret, "DB_ENV->open");
err: dbenv->err(dbenv, ret, "DB_ENV->open");
return (1);
}
@ -768,14 +821,10 @@ memerr: dbp->errx(dbp, "could not allocate buffer %d", buflen);
break;
}
if (ch == '\n')
break;
/*
* If the buffer is too small, double it. The
* +1 is for the nul byte inserted below.
* If the buffer is too small, double it.
*/
if (linelen + start + 1 == buflen) {
if (linelen + start == buflen) {
G(hdrbuf) =
realloc(G(hdrbuf), buflen *= 2);
if (G(hdrbuf) == NULL)
@ -783,6 +832,9 @@ memerr: dbp->errx(dbp, "could not allocate buffer %d", buflen);
buf = &G(hdrbuf)[start];
}
if (ch == '\n')
break;
buf[linelen++] = ch;
}
if (G(endofile) == 1)
@ -1125,6 +1177,7 @@ db_load_dbt_rrecno(dbenv, dbtp, ishex)
int ishex;
{
char buf[32], *p, *q;
u_long recno;
++G(lineno);
@ -1163,12 +1216,12 @@ db_load_dbt_rrecno(dbenv, dbtp, ishex)
*p = '\0';
}
if (__db_getulong(dbenv,
G(progname), buf + 1, 0, 0, (u_long *)dbtp->data)) {
if (__db_getulong(dbenv, G(progname), buf + 1, 0, 0, &recno)) {
bad: db_load_badend(dbenv);
return (1);
}
*((db_recno_t *)dbtp->data) = recno;
dbtp->size = sizeof(db_recno_t);
return (0);
}
@ -1256,6 +1309,8 @@ db_load_usage()
(void)fprintf(stderr, "%s\n\t%s\n",
"usage: db_load [-nTV] [-c name=value] [-f file]",
"[-h home] [-P password] [-t btree | hash | recno | queue] db_file");
(void)fprintf(stderr, "%s\n",
"usage: db_load -r lsn | fileid [-h home] [-P password] db_file");
return (EXIT_FAILURE);
}

View File

@ -1,17 +1,17 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: db_printlog.c,v 11.64 2004/06/17 17:35:17 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char copyright[] =
"Copyright (c) 1996-2003\nSleepycat Software Inc. All rights reserved.\n";
static const char revid[] =
"$Id: db_printlog.c,v 11.59 2003/08/18 18:00:31 ubell Exp $";
"Copyright (c) 1996-2004\nSleepycat Software Inc. All rights reserved.\n";
#endif
#ifndef NO_SYSTEM_INCLUDES
@ -33,11 +33,12 @@ static const char revid[] =
#include "dbinc/qam.h"
#include "dbinc/txn.h"
int db_printlog_lsn_arg __P((const char *, char *, DB_LSN *));
int db_printlog_main __P((int, char *[]));
int db_printlog_open_rep_db __P((DB_ENV *, DB **, DBC **));
int db_printlog_print_app_record __P((DB_ENV *, DBT *, DB_LSN *, db_recops));
int db_printlog_usage __P((void));
int db_printlog_version_check __P((const char *));
int db_printlog_print_app_record __P((DB_ENV *, DBT *, DB_LSN *, db_recops));
int db_printlog_open_rep_db __P((DB_ENV *, DB **, DBC **));
int
db_printlog(args)
@ -63,29 +64,41 @@ db_printlog_main(argc, argv)
const char *progname = "db_printlog";
DB *dbp;
DBC *dbc;
DBT data, keydbt;
DB_ENV *dbenv;
DB_LOGC *logc;
int (**dtab) __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *));
DB_LSN key, start, stop;
size_t dtabsize;
DBT data, keydbt;
DB_LSN key;
int ch, exitval, nflag, rflag, ret, repflag;
u_int32_t logcflag;
int ch, cmp, exitval, nflag, rflag, ret, repflag;
int (**dtab) __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *));
char *home, *passwd;
if ((ret = db_printlog_version_check(progname)) != 0)
return (ret);
dbenv = NULL;
dbp = NULL;
dbc = NULL;
dbenv = NULL;
logc = NULL;
exitval = nflag = rflag = repflag = 0;
home = passwd = NULL;
ZERO_LSN(start);
ZERO_LSN(stop);
dtabsize = 0;
exitval = nflag = rflag = repflag = 0;
dtab = NULL;
home = passwd = NULL;
__db_getopt_reset = 1;
while ((ch = getopt(argc, argv, "h:NP:rRV")) != EOF)
while ((ch = getopt(argc, argv, "b:e:h:NP:rRV")) != EOF)
switch (ch) {
case 'b':
if (db_printlog_lsn_arg(progname, optarg, &start))
return (db_printlog_usage());
break;
case 'e':
if (db_printlog_lsn_arg(progname, optarg, &stop))
return (db_printlog_usage());
break;
case 'h':
home = optarg;
break;
@ -104,7 +117,7 @@ db_printlog_main(argc, argv)
case 'r':
rflag = 1;
break;
case 'R':
case 'R': /* Undocumented */
repflag = 1;
break;
case 'V':
@ -172,28 +185,34 @@ db_printlog_main(argc, argv)
if (repflag) {
if ((ret = dbenv->open(dbenv, home,
DB_INIT_MPOOL | DB_USE_ENVIRON, 0)) != 0 &&
(ret == DB_VERSION_MISMATCH ||
(ret = dbenv->open(dbenv, home,
DB_CREATE | DB_INIT_MPOOL | DB_PRIVATE | DB_USE_ENVIRON, 0))
!= 0) {
dbenv->err(dbenv, ret, "open");
!= 0)) {
dbenv->err(dbenv, ret, "DB_ENV->open");
goto shutdown;
}
} else if ((ret = dbenv->open(dbenv, home,
DB_JOINENV | DB_USE_ENVIRON, 0)) != 0 &&
(ret == DB_VERSION_MISMATCH ||
(ret = dbenv->open(dbenv, home,
DB_CREATE | DB_INIT_LOG | DB_PRIVATE | DB_USE_ENVIRON, 0)) != 0) {
dbenv->err(dbenv, ret, "open");
DB_CREATE | DB_INIT_LOG | DB_PRIVATE | DB_USE_ENVIRON, 0)) != 0)) {
dbenv->err(dbenv, ret, "DB_ENV->open");
goto shutdown;
}
/* Initialize print callbacks. */
if ((ret = __bam_init_print(dbenv, &dtab, &dtabsize)) != 0 ||
(ret = __dbreg_init_print(dbenv, &dtab, &dtabsize)) != 0 ||
(ret = __crdel_init_print(dbenv, &dtab, &dtabsize)) != 0 ||
(ret = __db_init_print(dbenv, &dtab, &dtabsize)) != 0 ||
(ret = __dbreg_init_print(dbenv, &dtab, &dtabsize)) != 0 ||
(ret = __fop_init_print(dbenv, &dtab, &dtabsize)) != 0 ||
(ret = __qam_init_print(dbenv, &dtab, &dtabsize)) != 0 ||
#ifdef HAVE_HASH
(ret = __ham_init_print(dbenv, &dtab, &dtabsize)) != 0 ||
#endif
#ifdef HAVE_QUEUE
(ret = __qam_init_print(dbenv, &dtab, &dtabsize)) != 0 ||
#endif
(ret = __txn_init_print(dbenv, &dtab, &dtabsize)) != 0) {
dbenv->err(dbenv, ret, "callback: initialization");
goto shutdown;
@ -208,17 +227,22 @@ db_printlog_main(argc, argv)
goto shutdown;
}
if (IS_ZERO_LSN(start)) {
memset(&keydbt, 0, sizeof(keydbt));
logcflag = rflag ? DB_PREV : DB_NEXT;
} else {
key = start;
logcflag = DB_SET;
}
memset(&data, 0, sizeof(data));
memset(&keydbt, 0, sizeof(keydbt));
while (!__db_util_interrupted()) {
for (; !__db_util_interrupted(); logcflag = rflag ? DB_PREV : DB_NEXT) {
if (repflag) {
ret = dbc->c_get(dbc,
&keydbt, &data, rflag ? DB_PREV : DB_NEXT);
ret = dbc->c_get(dbc, &keydbt, &data, logcflag);
if (ret == 0)
key = ((REP_CONTROL *)keydbt.data)->lsn;
} else
ret = logc->get(logc,
&key, &data, rflag ? DB_PREV : DB_NEXT);
ret = logc->get(logc, &key, &data, logcflag);
if (ret != 0) {
if (ret == DB_NOTFOUND)
break;
@ -227,6 +251,15 @@ db_printlog_main(argc, argv)
goto shutdown;
}
/*
* We may have reached the end of the range we're displaying.
*/
if (!IS_ZERO_LSN(stop)) {
cmp = log_compare(&key, &stop);
if ((rflag && cmp < 0) || (!rflag && cmp > 0))
break;
}
ret = __db_dispatch(dbenv,
dtab, dtabsize, &data, &key, DB_TXN_PRINT, NULL);
@ -279,8 +312,8 @@ shutdown: exitval = 1;
int
db_printlog_usage()
{
fprintf(stderr, "%s\n",
"usage: db_printlog [-NrV] [-h home] [-P password]");
fprintf(stderr, "usage: db_printlog %s\n",
"[-NrV] [-b file/offset] [-e file/offset] [-h home] [-P password]");
return (EXIT_FAILURE);
}
@ -376,3 +409,38 @@ err: if (*dbpp != NULL)
(void)(*dbpp)->close(*dbpp, 0);
return (ret);
}
/*
* lsn_arg --
* Parse a LSN argument.
*/
int
db_printlog_lsn_arg(progname, optarg, lsnp)
const char *progname;
char *optarg;
DB_LSN *lsnp;
{
char *p;
u_long uval;
/*
* Expected format is: lsn.file/lsn.offset.
*
* Don't use getsubopt(3), some systems don't have it.
*/
if ((p = strchr(optarg, '/')) == NULL)
return (1);
*p = '\0';
if (__db_getulong(NULL, progname, optarg, 0, 0, &uval))
return (1);
if (uval > UINT32_MAX)
return (1);
lsnp->file = uval;
if (__db_getulong(NULL, progname, p + 1, 0, 0, &uval))
return (1);
if (uval > UINT32_MAX)
return (1);
lsnp->offset = uval;
return (0);
}

View File

@ -1,17 +1,17 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: db_recover.c,v 11.41 2004/01/28 03:36:00 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char copyright[] =
"Copyright (c) 1996-2003\nSleepycat Software Inc. All rights reserved.\n";
static const char revid[] =
"$Id: db_recover.c,v 11.39 2003/09/04 18:06:46 bostic Exp $";
"Copyright (c) 1996-2004\nSleepycat Software Inc. All rights reserved.\n";
#endif
#ifndef NO_SYSTEM_INCLUDES
@ -130,10 +130,8 @@ db_recover_main(argc, argv)
}
dbenv->set_errfile(dbenv, stderr);
dbenv->set_errpfx(dbenv, progname);
if (verbose) {
if (verbose)
(void)dbenv->set_verbose(dbenv, DB_VERB_RECOVERY, 1);
(void)dbenv->set_verbose(dbenv, DB_VERB_CHKPOINT, 1);
}
if (timestamp &&
(ret = dbenv->set_tx_timestamp(dbenv, &timestamp)) != 0) {
dbenv->err(dbenv, ret, "DB_ENV->set_timestamp");

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +1,17 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: db_upgrade.c,v 1.37 2004/06/10 01:00:09 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char copyright[] =
"Copyright (c) 1996-2003\nSleepycat Software Inc. All rights reserved.\n";
static const char revid[] =
"$Id: db_upgrade.c,v 1.35 2003/08/13 19:57:09 ubell Exp $";
"Copyright (c) 1996-2004\nSleepycat Software Inc. All rights reserved.\n";
#endif
#ifndef NO_SYSTEM_INCLUDES
@ -137,9 +137,11 @@ db_upgrade_main(argc, argv)
*/
if ((ret = dbenv->open(dbenv,
home, DB_JOINENV | DB_USE_ENVIRON, 0)) != 0 &&
(ret == DB_VERSION_MISMATCH ||
(ret = dbenv->open(dbenv, home,
DB_CREATE | DB_INIT_MPOOL | DB_PRIVATE | DB_USE_ENVIRON, 0)) != 0) {
dbenv->err(dbenv, ret, "open");
DB_CREATE | DB_INIT_MPOOL | DB_PRIVATE | DB_USE_ENVIRON,
0)) != 0)) {
dbenv->err(dbenv, ret, "DB_ENV->open");
goto shutdown;
}

View File

@ -1,17 +1,17 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: db_verify.c,v 1.49 2004/08/01 00:21:58 bostic Exp $
*/
#include "db_config.h"
#ifndef lint
static const char copyright[] =
"Copyright (c) 1996-2003\nSleepycat Software Inc. All rights reserved.\n";
static const char revid[] =
"$Id: db_verify.c,v 1.45 2003/08/13 19:57:09 ubell Exp $";
"Copyright (c) 1996-2004\nSleepycat Software Inc. All rights reserved.\n";
#endif
#ifndef NO_SYSTEM_INCLUDES
@ -53,8 +53,8 @@ db_verify_main(argc, argv)
const char *progname = "db_verify";
DB *dbp, *dbp1;
DB_ENV *dbenv;
u_int32_t cache;
int ch, exitval, nflag, oflag, private;
u_int32_t flags, cache;
int ch, exitval, nflag, private;
int quiet, resize, ret;
char *home, *passwd;
@ -64,10 +64,11 @@ db_verify_main(argc, argv)
dbenv = NULL;
dbp = NULL;
cache = MEGABYTE;
exitval = nflag = oflag = quiet = 0;
exitval = nflag = quiet = 0;
flags = 0;
home = passwd = NULL;
__db_getopt_reset = 1;
while ((ch = getopt(argc, argv, "h:NoP:qV")) != EOF)
while ((ch = getopt(argc, argv, "h:NoP:quV")) != EOF)
switch (ch) {
case 'h':
home = optarg;
@ -85,11 +86,14 @@ db_verify_main(argc, argv)
}
break;
case 'o':
oflag = 1;
LF_SET(DB_NOORDERCHK);
break;
case 'q':
quiet = 1;
break;
case 'u': /* Undocumented. */
LF_SET(DB_UNREF);
break;
case 'V':
printf("%s\n", db_version(NULL, NULL, NULL));
return (EXIT_SUCCESS);
@ -145,14 +149,18 @@ retry: if ((ret = db_env_create(&dbenv, 0)) != 0) {
private = 0;
if ((ret =
dbenv->open(dbenv, home, DB_INIT_MPOOL | DB_USE_ENVIRON, 0)) != 0) {
if ((ret = dbenv->set_cachesize(dbenv, 0, cache, 1)) != 0) {
dbenv->err(dbenv, ret, "set_cachesize");
goto shutdown;
if (ret != DB_VERSION_MISMATCH) {
if ((ret =
dbenv->set_cachesize(dbenv, 0, cache, 1)) != 0) {
dbenv->err(dbenv, ret, "set_cachesize");
goto shutdown;
}
private = 1;
ret = dbenv->open(dbenv, home, DB_CREATE |
DB_INIT_MPOOL | DB_PRIVATE | DB_USE_ENVIRON, 0);
}
private = 1;
if ((ret = dbenv->open(dbenv, home,
DB_CREATE | DB_INIT_MPOOL | DB_PRIVATE | DB_USE_ENVIRON, 0)) != 0) {
dbenv->err(dbenv, ret, "open");
if (ret != 0) {
dbenv->err(dbenv, ret, "DB_ENV->open");
goto shutdown;
}
}
@ -166,6 +174,10 @@ retry: if ((ret = db_env_create(&dbenv, 0)) != 0) {
/*
* We create a 2nd dbp to this database to get its pagesize
* because the dbp we're using for verify cannot be opened.
*
* If the database is corrupted, we may not be able to open
* it, of course. In that case, just continue, using the
* cache size we have.
*/
if (private) {
if ((ret = db_create(&dbp1, dbenv, 0)) != 0) {
@ -174,12 +186,9 @@ retry: if ((ret = db_env_create(&dbenv, 0)) != 0) {
goto shutdown;
}
if ((ret = dbp1->open(dbp1, NULL,
argv[0], NULL, DB_UNKNOWN, DB_RDONLY, 0)) != 0) {
dbenv->err(dbenv, ret, "DB->open: %s", argv[0]);
(void)dbp1->close(dbp1, 0);
goto shutdown;
}
ret = dbp1->open(dbp1,
NULL, argv[0], NULL, DB_UNKNOWN, DB_RDONLY, 0);
/*
* If we get here, we can check the cache/page.
* !!!
@ -188,29 +197,26 @@ retry: if ((ret = db_env_create(&dbenv, 0)) != 0) {
* will still be working on the same argv when we
* get back into the for-loop.
*/
ret = __db_util_cache(dbenv, dbp1, &cache, &resize);
(void)dbp1->close(dbp1, 0);
if (ret != 0)
goto shutdown;
if (ret == 0) {
if (__db_util_cache(
dbp1, &cache, &resize) == 0 && resize) {
(void)dbp1->close(dbp1, 0);
(void)dbp->close(dbp, 0);
dbp = NULL;
if (resize) {
(void)dbp->close(dbp, 0);
dbp = NULL;
(void)dbenv->close(dbenv, 0);
dbenv = NULL;
goto retry;
(void)dbenv->close(dbenv, 0);
dbenv = NULL;
goto retry;
}
}
(void)dbp1->close(dbp1, 0);
}
/* The verify method is a destructor. */
ret = dbp->verify(dbp,
argv[0], NULL, NULL, oflag ? DB_NOORDERCHK : 0);
ret = dbp->verify(dbp, argv[0], NULL, NULL, flags);
dbp = NULL;
if (ret != 0) {
dbenv->err(dbenv, ret, "DB->verify: %s", argv[0]);
if (ret != 0)
goto shutdown;
}
}
if (0) {

View File

@ -1,10 +1,10 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1997-2003
* Copyright (c) 1997-2004
* Sleepycat Software. All rights reserved.
*
* $Id: ex_access.c,v 11.23 2003/01/08 04:43:53 bostic Exp $
* $Id: ex_access.c,v 11.25 2004/09/17 22:00:28 mjc Exp $
*/
#include <sys/types.h>
@ -49,7 +49,7 @@ dbdemo_main(argc, argv)
DB *dbp;
DBC *dbcp;
DBT key, data;
u_int32_t len;
size_t len;
int ch, ret, rflag;
char *database, *p, *t, buf[1024], rbuf[1024];
const char *progname = "dbdemo"; /* Program name. */
@ -118,7 +118,7 @@ dbdemo_main(argc, argv)
key.data = buf;
data.data = rbuf;
data.size = key.size = len - 1;
data.size = key.size = (u_int32_t)len - 1;
switch (ret =
dbp->put(dbp, NULL, &key, &data, DB_NOOVERWRITE)) {

File diff suppressed because it is too large Load Diff

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "db_archive - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "db_archive - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "db_archive - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "db_checkpoint - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "db_checkpoint - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "db_checkpoint - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -49,9 +49,15 @@
/* Define to 1 if fcntl/F_SETFD denies child access to file descriptors. */
/* #undef HAVE_FCNTL_F_SETFD */
/* Define to 1 if you have the `fdatasync' function. */
/* #undef HAVE_FDATASYNC */
/* Define to 1 if allocated filesystem blocks are not zeroed. */
#define HAVE_FILESYSTEM_NOTZERO 1
/* Define to 1 if you have the `ftruncate' function. */
#define HAVE_FTRUNCATE 1
/* Define to 1 if you have the `getcwd' function. */
#define HAVE_GETCWD 1
@ -78,6 +84,9 @@
/* Define to 1 if you have the `nsl' library (-lnsl). */
/* #undef HAVE_LIBNSL */
/* Define to 1 if the system has the type `long long'. */
#define HAVE_LONG_LONG 1
/* Define to 1 if you have the `memcmp' function. */
#define HAVE_MEMCMP 1
@ -227,6 +236,9 @@
/* Define to 1 if you have the `raise' function. */
#define HAVE_RAISE 1
/* Define to 1 if you have the `rand' function. */
#define HAVE_RAND 1
/* Define to 1 if building replication support. */
#ifndef HAVE_SMALLBUILD
#define HAVE_REPLICATION 1
@ -241,12 +253,21 @@
/* Define to 1 if you have the `select' function. */
/* #undef HAVE_SELECT */
/* Define to 1 if building sequence support. */
#define HAVE_SEQUENCE 1
/* Define to 1 if you have the `shmget' function. */
/* #undef HAVE_SHMGET */
/* Define to 1 if you have the `snprintf' function. */
#define HAVE_SNPRINTF 1
/* Define to 1 if you have the `srand' function. */
#define HAVE_SRAND 1
/* Define to 1 if building statistics support. */
#define HAVE_STATISTICS 1
/* Define to 1 if you have the <stdint.h> header file. */
/* #undef HAVE_STDINT_H */
@ -306,6 +327,9 @@
/* Define to 1 if unlink of file with open file descriptors will fail. */
/* #undef HAVE_UNLINK_WITH_OPEN_FAILURE */
/* Define to 1 if the system has the type `unsigned long long'. */
#define HAVE_UNSIGNED_LONG_LONG 1
/* Define to 1 if building access method verification support. */
#ifndef HAVE_SMALLBUILD
#define HAVE_VERIFY 1
@ -333,13 +357,13 @@
#define PACKAGE_NAME "Berkeley DB"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "Berkeley DB 4.2.52"
#define PACKAGE_STRING "Berkeley DB 4.3.14"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "db-4.2.52"
#define PACKAGE_TARNAME "db-4.3.14"
/* Define to the version of this package. */
#define PACKAGE_VERSION "4.2.52"
#define PACKAGE_VERSION "4.3.14"
/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
/* #undef STAT_MACROS_BROKEN */
@ -350,7 +374,7 @@
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
/* #undef TIME_WITH_SYS_TIME */
/* Define to 1 to mask harmless unitialized memory read/writes. */
/* Define to 1 to mask harmless uninitialized memory read/writes. */
/* #undef UMRW */
/* Number of bits in a file offset, on hosts where this is settable. */
@ -411,6 +435,6 @@
* arguments turning OFF all vendor extensions. Even more unfortunately, if
* we do that, it fails to parse windows.h!!!!! So, we define __STDC__ here,
* after windows.h comes in. Note: the compiler knows we've defined it, and
* starts enforcing strict ANSI compilance from this point on.
* starts enforcing strict ANSI compliance from this point on.
*/
#define __STDC__ 1

File diff suppressed because it is too large Load Diff

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "db_deadlock - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "db_deadlock - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "db_deadlock - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -53,7 +53,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
# ADD LINK32 /nologo /base:"0x13000000" /subsystem:windows /dll /machine:I386 /out:"Release/libdb42.dll"
# ADD LINK32 /nologo /base:"0x13000000" /subsystem:windows /dll /machine:I386 /out:"Release/libdb43.dll"
!ELSEIF "$(CFG)" == "db_dll - Win32 Debug"
@ -80,7 +80,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x13000000" /subsystem:windows /dll /pdb:none /debug /machine:I386 /out:"Debug/libdb42d.dll" /fixed:no
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x13000000" /subsystem:windows /dll /pdb:none /debug /machine:I386 /out:"Debug/libdb43d.dll" /fixed:no
!ENDIF
@ -262,6 +262,10 @@ SOURCE=..\cxx\cxx_multi.cpp
# End Source File
# Begin Source File
SOURCE=..\cxx\cxx_seq.cpp
# End Source File
# Begin Source File
SOURCE=..\cxx\cxx_txn.cpp
# End Source File
# Begin Source File
@ -354,6 +358,18 @@ SOURCE=..\db\db_ret.c
# End Source File
# Begin Source File
SOURCE=..\db\db_setid.c
# End Source File
# Begin Source File
SOURCE=..\db\db_setlsn.c
# End Source File
# Begin Source File
SOURCE=..\db\db_stati.c
# End Source File
# Begin Source File
SOURCE=..\db\db_truncate.c
# End Source File
# Begin Source File
@ -390,6 +406,10 @@ SOURCE=..\dbreg\dbreg_rec.c
# End Source File
# Begin Source File
SOURCE=..\dbreg\dbreg_stat.c
# End Source File
# Begin Source File
SOURCE=..\dbreg\dbreg_util.c
# End Source File
# Begin Source File
@ -422,6 +442,10 @@ SOURCE=..\env\env_region.c
# End Source File
# Begin Source File
SOURCE=..\env\env_stat.c
# End Source File
# Begin Source File
SOURCE=..\fileops\fileops_auto.c
# End Source File
# Begin Source File
@ -514,6 +538,14 @@ SOURCE=..\lock\lock_deadlock.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_id.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_list.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_method.c
# End Source File
# Begin Source File
@ -526,6 +558,10 @@ SOURCE=..\lock\lock_stat.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_timer.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_util.c
# End Source File
# Begin Source File
@ -554,6 +590,10 @@ SOURCE=..\log\log_put.c
# End Source File
# Begin Source File
SOURCE=..\log\log_stat.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_alloc.c
# End Source File
# Begin Source File
@ -566,6 +606,10 @@ SOURCE=..\mp\mp_fget.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_fmethod.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_fopen.c
# End Source File
# Begin Source File
@ -642,10 +686,6 @@ SOURCE=..\os\os_tmpdir.c
# End Source File
# Begin Source File
SOURCE=..\os\os_unlink.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_abs.c
# End Source File
# Begin Source File
@ -710,6 +750,14 @@ SOURCE=..\os_win32\os_stat.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_truncate.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_unlink.c
# End Source File
# Begin Source File
SOURCE=..\qam\qam.c
# End Source File
# Begin Source File
@ -750,6 +798,14 @@ SOURCE=..\qam\qam_verify.c
# End Source File
# Begin Source File
SOURCE=..\rep\rep_auto.c
# End Source File
# Begin Source File
SOURCE=..\rep\rep_backup.c
# End Source File
# Begin Source File
SOURCE=..\rep\rep_method.c
# End Source File
# Begin Source File
@ -762,10 +818,22 @@ SOURCE=..\rep\rep_region.c
# End Source File
# Begin Source File
SOURCE=..\rep\rep_stat.c
# End Source File
# Begin Source File
SOURCE=..\rep\rep_util.c
# End Source File
# Begin Source File
SOURCE=..\sequence\seq_stat.c
# End Source File
# Begin Source File
SOURCE=..\sequence\sequence.c
# End Source File
# Begin Source File
SOURCE=..\txn\txn.c
# End Source File
# Begin Source File

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "db_dump - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "db_dump - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "db_dump - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -2,10 +2,10 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2003
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: db_int.in,v 11.126 2003/09/10 17:27:14 sue Exp $
* $Id: db_int.in,v 11.153 2004/10/05 14:43:53 mjc Exp $
*/
#ifndef _DB_INTERNAL_H_
@ -36,8 +36,39 @@ extern "C" {
/*******************************************************
* General purpose constants and macros.
*******************************************************/
#define UINT16_T_MAX 0xffff /* Maximum 16 bit unsigned. */
#define UINT32_T_MAX 0xffffffff /* Maximum 32 bit unsigned. */
#ifndef UINT16_MAX
#define UINT16_MAX 65535 /* Maximum 16-bit unsigned. */
#endif
#ifndef UINT32_MAX
#define UINT32_MAX 4294967295U /* Maximum 32-bit unsigned. */
#endif
#if defined(HAVE_LONG_LONG) && defined(HAVE_UNSIGNED_LONG_LONG)
#undef INT64_MAX
#undef INT64_MIN
#undef UINT64_MAX
#ifdef DB_WIN32
#define INT64_MAX _I64_MAX
#define INT64_MIN _I64_MIN
#define UINT64_MAX _UI64_MAX
#define INT64_FMT "%l64d"
#define UINT64_FMT "%l64u"
#else
/*
* Override the system's 64-bit min/max constants. AIX's 32-bit compiler can
* handle 64-bit values, but the system's constants don't include the LL/ULL
* suffix, and so can't be compiled using the 32-bit compiler.
*/
#define INT64_MAX 9223372036854775807LL
#define INT64_MIN (-INT64_MAX-1)
#define UINT64_MAX 18446744073709551615ULL
#define INT64_FMT "%lld"
#define UINT64_FMT "%llu"
#endif /* DB_WIN32 */
#endif /* HAVE_LONG_LONG && HAVE_UNSIGNED_LONG_LONG */
#define MEGABYTE 1048576
#define GIGABYTE 1073741824
@ -65,53 +96,38 @@ extern "C" {
*/
#define DB_DEF_IOSIZE (8 * 1024)
/* Number of times to reties I/O operations that return EINTR or EBUSY. */
#define DB_RETRY 100
/*
* Aligning items to particular sizes or in pages or memory.
*
* db_align_t --
* Largest integral type, used to align structures in memory. We don't store
* floating point types in structures, so integral types should be sufficient
* (and we don't have to worry about systems that store floats in other than
* power-of-2 numbers of bytes). Additionally this fixes compiler that rewrite
* structure assignments and ANSI C memcpy calls to be in-line instructions
* that happen to require alignment. Note: this alignment isn't sufficient for
* mutexes, which depend on things like cache line alignment. Mutex alignment
* is handled separately, in mutex.h.
*
* db_alignp_t --
* Integral type that's the same size as a pointer. There are places where
* DB modifies pointers by discarding the bottom bits to guarantee alignment.
* We can't use db_align_t, it may be larger than the pointer, and compilers
* get upset about that. So far we haven't run on any machine where there
* isn't an integral type the same size as a pointer -- here's hoping.
*/
typedef unsigned long db_align_t;
typedef unsigned long db_alignp_t;
/* Align an integer to a specific boundary. */
#undef ALIGN
#define ALIGN(v, bound) (((v) + (bound) - 1) & ~(((db_align_t)bound) - 1))
#undef DB_ALIGN
#define DB_ALIGN(v, bound) \
(((v) + (bound) - 1) & ~(((uintmax_t)bound) - 1))
/* Increment a pointer to a specific boundary. */
#undef ALIGNP_INC
#define ALIGNP_INC(p, bound) \
(void *)(((uintptr_t)(p) + (bound) - 1) & ~(((uintptr_t)bound) - 1))
/* Decrement a pointer to a specific boundary. */
#undef ALIGNP_DEC
#define ALIGNP_DEC(p, bound) \
(void *)((uintptr_t)(p) & ~(((uintptr_t)bound) - 1))
/*
* Print an address as a u_long (a u_long is the largest type we can print
* portably). Most 64-bit systems have made longs 64-bits, so this should
* work.
*/
#define P_TO_ULONG(p) ((u_long)(db_alignp_t)(p))
#define P_TO_ULONG(p) ((u_long)(uintptr_t)(p))
/*
* Convert a pointer to a small integral value.
*
* The (u_int16_t)(db_alignp_t) cast avoids warnings: the (db_alignp_t) cast
* The (u_int16_t)(uintptr_t) cast avoids warnings: the (uintptr_t) cast
* converts the value to an integral type, and the (u_int16_t) cast converts
* it to a small integral type so we don't get complaints when we assign the
* final result to an integral type smaller than db_alignp_t.
* final result to an integral type smaller than uintptr_t.
*/
#define P_TO_UINT32(p) ((u_int32_t)(db_alignp_t)(p))
#define P_TO_UINT16(p) ((u_int16_t)(db_alignp_t)(p))
#define P_TO_UINT32(p) ((u_int32_t)(uintptr_t)(p))
#define P_TO_UINT16(p) ((u_int16_t)(uintptr_t)(p))
/*
* There are several on-page structures that are declared to have a number of
@ -149,9 +165,64 @@ typedef struct __fn {
#define LF_ISSET(f) ((flags) & (f))
#define LF_SET(f) ((flags) |= (f))
/* Display separator string. */
#undef DB_LINE
#define DB_LINE "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="
/*
* Calculate a percentage. The values can overflow 32-bit integer arithmetic
* so we use floating point.
*
* When calculating a bytes-vs-page size percentage, we're getting the inverse
* of the percentage in all cases, that is, we want 100 minus the percentage we
* calculate.
*/
#define DB_PCT(v, total) \
((int)((total) == 0 ? 0 : ((double)(v) * 100) / (total)))
#define DB_PCT_PG(v, total, pgsize) \
((int)((total) == 0 ? 0 : \
100 - ((double)(v) * 100) / ((total) * (pgsize))))
/*
* Structure used for callback message aggregation.
*
* Display values in XXX_stat_print calls.
*/
typedef struct __db_msgbuf {
char *buf; /* Heap allocated buffer. */
char *cur; /* Current end of message. */
size_t len; /* Allocated length of buffer. */
} DB_MSGBUF;
#define DB_MSGBUF_INIT(a) do { \
(a)->buf = (a)->cur = NULL; \
(a)->len = 0; \
} while (0)
#define DB_MSGBUF_FLUSH(dbenv, a) do { \
if ((a)->buf != NULL) { \
if ((a)->cur != (a)->buf) \
__db_msg(dbenv, "%s", (a)->buf); \
__os_free(dbenv, (a)->buf); \
DB_MSGBUF_INIT(a); \
} \
} while (0)
#define STAT_FMT(msg, fmt, type, v) do { \
DB_MSGBUF __mb; \
DB_MSGBUF_INIT(&__mb); \
__db_msgadd(dbenv, &__mb, fmt, (type)(v)); \
__db_msgadd(dbenv, &__mb, "\t%s", msg); \
DB_MSGBUF_FLUSH(dbenv, &__mb); \
} while (0)
#define STAT_HEX(msg, v) \
__db_msg(dbenv, "%#lx\t%s", (u_long)(v), msg)
#define STAT_ISSET(msg, p) \
__db_msg(dbenv, "%sSet\t%s", (p) == NULL ? "!" : " ", msg)
#define STAT_LONG(msg, v) \
__db_msg(dbenv, "%ld\t%s", (long)(v), msg)
#define STAT_LSN(msg, lsnp) \
__db_msg(dbenv, "%lu/%lu\t%s", \
(u_long)(lsnp)->file, (u_long)(lsnp)->offset, msg)
#define STAT_STRING(msg, p) do { \
const char *__p = p; /* p may be a function call. */ \
__db_msg(dbenv, "%s\t%s", __p == NULL ? "!Set" : __p, msg); \
} while (0)
#define STAT_ULONG(msg, v) \
__db_msg(dbenv, "%lu\t%s", (u_long)(v), msg)
/*******************************************************
* API return values
@ -177,7 +248,8 @@ typedef struct __fn {
(ret) == DB_REP_ISPERM || \
(ret) == DB_REP_NEWMASTER || \
(ret) == DB_REP_NEWSITE || \
(ret) == DB_REP_NOTPERM)
(ret) == DB_REP_NOTPERM || \
(ret) == DB_REP_STARTUPDONE)
/* Find a reasonable operation-not-supported error. */
#ifdef EOPNOTSUPP
@ -263,6 +335,9 @@ typedef enum {
#define ENV_REQUIRES_CONFIG(dbenv, handle, i, flags) \
if (handle == NULL) \
return (__db_env_config(dbenv, i, flags));
#define ENV_NOT_CONFIGURED(dbenv, handle, i, flags) \
if (F_ISSET((dbenv), DB_ENV_OPEN_CALLED)) \
ENV_REQUIRES_CONFIG(dbenv, handle, i, flags)
/*******************************************************
* Database Access Methods.
@ -386,11 +461,11 @@ typedef struct __dbpginfo {
} while (0)
#define MAX_LSN(LSN) do { \
(LSN).file = UINT32_T_MAX; \
(LSN).offset = UINT32_T_MAX; \
(LSN).file = UINT32_MAX; \
(LSN).offset = UINT32_MAX; \
} while (0)
#define IS_MAX_LSN(LSN) \
((LSN).file == UINT32_T_MAX && (LSN).offset == UINT32_T_MAX)
((LSN).file == UINT32_MAX && (LSN).offset == UINT32_MAX)
/* If logging is turned off, smash the lsn. */
#define LSN_NOT_LOGGED(LSN) do { \
@ -404,6 +479,8 @@ typedef struct __dbpginfo {
* Txn.
*******************************************************/
#define DB_NONBLOCK(C) ((C)->txn != NULL && F_ISSET((C)->txn, TXN_NOWAIT))
#define NOWAIT_FLAG(txn) \
((txn) != NULL && F_ISSET((txn), TXN_NOWAIT) ? DB_LOCK_NOWAIT : 0)
#define IS_SUBTRANSACTION(txn) \
((txn) != NULL && (txn)->parent != NULL)
@ -413,6 +490,33 @@ typedef struct __dbpginfo {
#define DB_IV_BYTES 16 /* Bytes per IV */
#define DB_MAC_KEY 20 /* Bytes per MAC checksum */
/*******************************************************
* Secondaries over RPC.
*******************************************************/
#ifdef CONFIG_TEST
/*
* These are flags passed to DB->associate calls by the Tcl API if running
* over RPC. The RPC server will mask out these flags before making the real
* DB->associate call.
*
* These flags must coexist with the valid flags to DB->associate (currently
* DB_AUTO_COMMIT and DB_CREATE). DB_AUTO_COMMIT is in the group of
* high-order shared flags (0xff000000), and DB_CREATE is in the low-order
* group (0x00000fff), so we pick a range in between.
*/
#define DB_RPC2ND_MASK 0x00f00000 /* Reserved bits. */
#define DB_RPC2ND_REVERSEDATA 0x00100000 /* callback_n(0) _s_reversedata. */
#define DB_RPC2ND_NOOP 0x00200000 /* callback_n(1) _s_noop */
#define DB_RPC2ND_CONCATKEYDATA 0x00300000 /* callback_n(2) _s_concatkeydata */
#define DB_RPC2ND_CONCATDATAKEY 0x00400000 /* callback_n(3) _s_concatdatakey */
#define DB_RPC2ND_REVERSECONCAT 0x00500000 /* callback_n(4) _s_reverseconcat */
#define DB_RPC2ND_TRUNCDATA 0x00600000 /* callback_n(5) _s_truncdata */
#define DB_RPC2ND_CONSTANT 0x00700000 /* callback_n(6) _s_constant */
#define DB_RPC2ND_GETZIP 0x00800000 /* sj_getzip */
#define DB_RPC2ND_GETNAME 0x00900000 /* sj_getname */
#endif
/*******************************************************
* Forward structure declarations.
*******************************************************/

View File

@ -53,19 +53,19 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /base:"0x13000000" /subsystem:windows /dll /machine:I386 /out:"Release/libdb_java42.dll"
# ADD LINK32 Release/libdb43.lib /nologo /base:"0x13000000" /subsystem:windows /dll /machine:I386 /out:"Release/libdb_java43.dll"
# Begin Custom Build - Compiling java files using javac
ProjDir=.
InputPath=.\Release\libdb_java42.dll
InputPath=.\Release\libdb_java43.dll
SOURCE="$(InputPath)"
"force_compilation.txt" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
echo compiling Berkeley DB classes
mkdir "$(OUTDIR)\classes"
javac -g -d "$(OUTDIR)\classes" -classpath "$(OUTDIR)/classes" ..\java\src\com\sleepycat\db\*.java ..\java\src\com\sleepycat\db\$(OUTDIR)\*.java ..\java\src\com\sleepycat\bdb\bind\*.java ..\java\src\com\sleepycat\bdb\bind\serial\*.java ..\java\src\com\sleepycat\bdb\bind\tuple\*.java ..\java\src\com\sleepycat\bdb\*.java ..\java\src\com\sleepycat\bdb\collection\*.java ..\java\src\com\sleepycat\bdb\factory\*.java ..\java\src\com\sleepycat\bdb\util\*.java
javac -O -d "$(OUTDIR)\classes" -classpath "$(OUTDIR)/classes" ..\java\src\com\sleepycat\db\*.java ..\java\src\com\sleepycat\db\internal\*.java ..\java\src\com\sleepycat\bind\*.java ..\java\src\com\sleepycat\bind\serial\*.java ..\java\src\com\sleepycat\bind\tuple\*.java ..\java\src\com\sleepycat\collections\*.java ..\java\src\com\sleepycat\compat\*.java ..\java\src\com\sleepycat\util\*.java
echo compiling examples
mkdir "$(OUTDIR)\classes.ex"
javac -g -d "$(OUTDIR)\classes.ex" -classpath "$(OUTDIR)\classes;$(OUTDIR)\classes.ex" ..\examples_java\src\com\sleepycat\examples\db\*.java ..\examples_java\src\com\sleepycat\examples\bdb\access\*.java ..\examples_java\src\com\sleepycat\examples\bdb\helloworld\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\basic\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\entity\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\tuple\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\sentity\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\marshal\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\factory\*.java
javac -O -d "$(OUTDIR)\classes.ex" -classpath "$(OUTDIR)\classes;$(OUTDIR)\classes.ex" ..\examples_java\src\com\sleepycat\examples\db\*.java ..\examples_java\src\com\sleepycat\examples\db\GettingStarted\*.java ..\examples_java\src\com\sleepycat\examples\collections\access\*.java ..\examples_java\src\com\sleepycat\examples\collections\hello\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\basic\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\entity\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\tuple\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\sentity\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\marshal\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\factory\*.java
echo creating jar files
jar cf "$(OUTDIR)\db.jar" -C "$(OUTDIR)\classes" .
jar cf "$(OUTDIR)\dbexamples.jar" -C "$(OUTDIR)\classes.ex" .
@ -98,19 +98,19 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /base:"0x13000000" /subsystem:windows /dll /pdb:none /debug /machine:I386 /out:"Debug/libdb_java42d.dll" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /base:"0x13000000" /subsystem:windows /dll /pdb:none /debug /machine:I386 /out:"Debug/libdb_java43d.dll" /fixed:no
# Begin Custom Build - Compiling java files using javac
ProjDir=.
InputPath=.\Debug\libdb_java42d.dll
InputPath=.\Debug\libdb_java43d.dll
SOURCE="$(InputPath)"
"force_compilation.txt" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
echo compiling Berkeley DB classes
mkdir "$(OUTDIR)\classes"
javac -g -d "$(OUTDIR)\classes" -classpath "$(OUTDIR)/classes" ..\java\src\com\sleepycat\db\*.java ..\java\src\com\sleepycat\db\$(OUTDIR)\*.java ..\java\src\com\sleepycat\bdb\bind\*.java ..\java\src\com\sleepycat\bdb\bind\serial\*.java ..\java\src\com\sleepycat\bdb\bind\tuple\*.java ..\java\src\com\sleepycat\bdb\*.java ..\java\src\com\sleepycat\bdb\collection\*.java ..\java\src\com\sleepycat\bdb\factory\*.java ..\java\src\com\sleepycat\bdb\util\*.java
javac -g -d "$(OUTDIR)\classes" -classpath "$(OUTDIR)/classes" ..\java\src\com\sleepycat\db\*.java ..\java\src\com\sleepycat\db\internal\*.java ..\java\src\com\sleepycat\bind\*.java ..\java\src\com\sleepycat\bind\serial\*.java ..\java\src\com\sleepycat\bind\tuple\*.java ..\java\src\com\sleepycat\collections\*.java ..\java\src\com\sleepycat\compat\*.java ..\java\src\com\sleepycat\util\*.java
echo compiling examples
mkdir "$(OUTDIR)\classes.ex"
javac -g -d "$(OUTDIR)\classes.ex" -classpath "$(OUTDIR)\classes;$(OUTDIR)\classes.ex" ..\examples_java\src\com\sleepycat\examples\db\*.java ..\examples_java\src\com\sleepycat\examples\bdb\access\*.java ..\examples_java\src\com\sleepycat\examples\bdb\helloworld\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\basic\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\entity\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\tuple\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\sentity\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\marshal\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\factory\*.java
javac -g -d "$(OUTDIR)\classes.ex" -classpath "$(OUTDIR)\classes;$(OUTDIR)\classes.ex" ..\examples_java\src\com\sleepycat\examples\db\*.java ..\examples_java\src\com\sleepycat\examples\db\GettingStarted\*.java ..\examples_java\src\com\sleepycat\examples\collections\access\*.java ..\examples_java\src\com\sleepycat\examples\collections\hello\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\basic\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\entity\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\tuple\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\sentity\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\marshal\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\factory\*.java
echo creating jar files
jar cf "$(OUTDIR)\db.jar" -C "$(OUTDIR)\classes" .
jar cf "$(OUTDIR)\dbexamples.jar" -C "$(OUTDIR)\classes.ex" .

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "db_load - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "db_load - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "db_load - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "db_perf - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "db_perf - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "db_perf - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "db_printlog - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "db_printlog - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "db_printlog - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF
@ -138,10 +138,46 @@ LINK32=link.exe
# Name "db_printlog - Win32 Debug Static"
# Begin Source File
SOURCE=..\btree\btree_autop.c
# End Source File
# Begin Source File
SOURCE=..\db\crdel_autop.c
# End Source File
# Begin Source File
SOURCE=..\db\db_autop.c
# End Source File
# Begin Source File
SOURCE=..\db_printlog\db_printlog.c
# End Source File
# Begin Source File
SOURCE=..\dbreg\dbreg_autop.c
# End Source File
# Begin Source File
SOURCE=..\fileops\fileops_autop.c
# End Source File
# Begin Source File
SOURCE=..\hash\hash_autop.c
# End Source File
# Begin Source File
SOURCE=..\qam\qam_autop.c
# End Source File
# Begin Source File
SOURCE=..\rep\rep_autop.c
# End Source File
# Begin Source File
SOURCE=..\txn\txn_autop.c
# End Source File
# Begin Source File
SOURCE=..\clib\getopt.c
# End Source File
# End Target

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "db_recover - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "db_recover - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "db_recover - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -48,8 +48,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo /out:"Release_small/libdb42s.lib"
# ADD LIB32 /nologo /out:"Release_small/libdb42s.lib"
# ADD BASE LIB32 /nologo /out:"Release_small/libdb43s.lib"
# ADD LIB32 /nologo /out:"Release_small/libdb43s.lib"
!ELSEIF "$(CFG)" == "db_small - Win32 Debug Static"
@ -71,8 +71,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo /out:"Debug_small/libdb42sd.lib"
# ADD LIB32 /nologo /out:"Debug_small/libdb42sd.lib"
# ADD BASE LIB32 /nologo /out:"Debug_small/libdb43sd.lib"
# ADD LIB32 /nologo /out:"Debug_small/libdb43sd.lib"
!ENDIF
@ -226,6 +226,10 @@ SOURCE=..\cxx\cxx_multi.cpp
# End Source File
# Begin Source File
SOURCE=..\cxx\cxx_seq.cpp
# End Source File
# Begin Source File
SOURCE=..\cxx\cxx_txn.cpp
# End Source File
# Begin Source File
@ -314,6 +318,18 @@ SOURCE=..\db\db_ret.c
# End Source File
# Begin Source File
SOURCE=..\db\db_setid.c
# End Source File
# Begin Source File
SOURCE=..\db\db_setlsn.c
# End Source File
# Begin Source File
SOURCE=..\db\db_stati.c
# End Source File
# Begin Source File
SOURCE=..\db\db_truncate.c
# End Source File
# Begin Source File
@ -342,6 +358,10 @@ SOURCE=..\dbreg\dbreg_rec.c
# End Source File
# Begin Source File
SOURCE=..\dbreg\dbreg_stat.c
# End Source File
# Begin Source File
SOURCE=..\dbreg\dbreg_util.c
# End Source File
# Begin Source File
@ -374,6 +394,10 @@ SOURCE=..\env\env_region.c
# End Source File
# Begin Source File
SOURCE=..\env\env_stat.c
# End Source File
# Begin Source File
SOURCE=..\fileops\fileops_auto.c
# End Source File
# Begin Source File
@ -414,6 +438,14 @@ SOURCE=..\lock\lock_deadlock.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_id.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_list.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_method.c
# End Source File
# Begin Source File
@ -426,6 +458,10 @@ SOURCE=..\lock\lock_stat.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_timer.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_util.c
# End Source File
# Begin Source File
@ -454,6 +490,10 @@ SOURCE=..\log\log_put.c
# End Source File
# Begin Source File
SOURCE=..\log\log_stat.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_alloc.c
# End Source File
# Begin Source File
@ -466,6 +506,10 @@ SOURCE=..\mp\mp_fget.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_fmethod.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_fopen.c
# End Source File
# Begin Source File
@ -542,10 +586,6 @@ SOURCE=..\os\os_tmpdir.c
# End Source File
# Begin Source File
SOURCE=..\os\os_unlink.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_abs.c
# End Source File
# Begin Source File
@ -610,6 +650,14 @@ SOURCE=..\os_win32\os_stat.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_truncate.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_unlink.c
# End Source File
# Begin Source File
SOURCE=..\qam\qam_stub.c
# End Source File
# Begin Source File
@ -618,6 +666,14 @@ SOURCE=..\rep\rep_stub.c
# End Source File
# Begin Source File
SOURCE=..\sequence\seq_stat.c
# End Source File
# Begin Source File
SOURCE=..\sequence\sequence.c
# End Source File
# Begin Source File
SOURCE=..\txn\txn.c
# End Source File
# Begin Source File

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "db_stat - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "db_stat - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "db_stat - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -48,8 +48,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo /out:"Release/libdb42s.lib"
# ADD LIB32 /nologo /out:"Release_static/libdb42s.lib"
# ADD BASE LIB32 /nologo /out:"Release/libdb43s.lib"
# ADD LIB32 /nologo /out:"Release_static/libdb43s.lib"
!ELSEIF "$(CFG)" == "db_static - Win32 Debug Static"
@ -71,8 +71,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo /out:"Debug/libdb42sd.lib"
# ADD LIB32 /nologo /out:"Debug_static/libdb42sd.lib"
# ADD BASE LIB32 /nologo /out:"Debug/libdb43sd.lib"
# ADD LIB32 /nologo /out:"Debug_static/libdb43sd.lib"
!ENDIF
@ -246,6 +246,10 @@ SOURCE=..\cxx\cxx_multi.cpp
# End Source File
# Begin Source File
SOURCE=..\cxx\cxx_seq.cpp
# End Source File
# Begin Source File
SOURCE=..\cxx\cxx_txn.cpp
# End Source File
# Begin Source File
@ -338,6 +342,18 @@ SOURCE=..\db\db_ret.c
# End Source File
# Begin Source File
SOURCE=..\db\db_setid.c
# End Source File
# Begin Source File
SOURCE=..\db\db_setlsn.c
# End Source File
# Begin Source File
SOURCE=..\db\db_stati.c
# End Source File
# Begin Source File
SOURCE=..\db\db_truncate.c
# End Source File
# Begin Source File
@ -374,6 +390,10 @@ SOURCE=..\dbreg\dbreg_rec.c
# End Source File
# Begin Source File
SOURCE=..\dbreg\dbreg_stat.c
# End Source File
# Begin Source File
SOURCE=..\dbreg\dbreg_util.c
# End Source File
# Begin Source File
@ -406,6 +426,10 @@ SOURCE=..\env\env_region.c
# End Source File
# Begin Source File
SOURCE=..\env\env_stat.c
# End Source File
# Begin Source File
SOURCE=..\fileops\fileops_auto.c
# End Source File
# Begin Source File
@ -498,6 +522,14 @@ SOURCE=..\lock\lock_deadlock.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_id.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_list.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_method.c
# End Source File
# Begin Source File
@ -510,6 +542,10 @@ SOURCE=..\lock\lock_stat.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_timer.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_util.c
# End Source File
# Begin Source File
@ -538,6 +574,10 @@ SOURCE=..\log\log_put.c
# End Source File
# Begin Source File
SOURCE=..\log\log_stat.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_alloc.c
# End Source File
# Begin Source File
@ -550,6 +590,10 @@ SOURCE=..\mp\mp_fget.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_fmethod.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_fopen.c
# End Source File
# Begin Source File
@ -626,10 +670,6 @@ SOURCE=..\os\os_tmpdir.c
# End Source File
# Begin Source File
SOURCE=..\os\os_unlink.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_abs.c
# End Source File
# Begin Source File
@ -694,6 +734,14 @@ SOURCE=..\os_win32\os_stat.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_truncate.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_unlink.c
# End Source File
# Begin Source File
SOURCE=..\qam\qam.c
# End Source File
# Begin Source File
@ -734,6 +782,14 @@ SOURCE=..\qam\qam_verify.c
# End Source File
# Begin Source File
SOURCE=..\rep\rep_auto.c
# End Source File
# Begin Source File
SOURCE=..\rep\rep_backup.c
# End Source File
# Begin Source File
SOURCE=..\rep\rep_method.c
# End Source File
# Begin Source File
@ -746,10 +802,22 @@ SOURCE=..\rep\rep_region.c
# End Source File
# Begin Source File
SOURCE=..\rep\rep_stat.c
# End Source File
# Begin Source File
SOURCE=..\rep\rep_util.c
# End Source File
# Begin Source File
SOURCE=..\sequence\seq_stat.c
# End Source File
# Begin Source File
SOURCE=..\sequence\sequence.c
# End Source File
# Begin Source File
SOURCE=..\txn\txn.c
# End Source File
# Begin Source File

View File

@ -53,7 +53,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
# ADD LINK32 Release/libdb42.lib tcl84.lib /nologo /base:"0x13000000" /subsystem:windows /dll /machine:I386 /out:"Release/libdb_tcl42.dll"
# ADD LINK32 Release/libdb43.lib tcl84.lib /nologo /base:"0x13000000" /subsystem:windows /dll /machine:I386 /out:"Release/libdb_tcl43.dll"
!ELSEIF "$(CFG)" == "db_tcl - Win32 Debug"
@ -80,7 +80,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib tcl84g.lib /nologo /base:"0x13000000" /subsystem:windows /dll /pdb:none /debug /machine:I386 /out:"Debug/libdb_tcl42d.dll" /fixed:no
# ADD LINK32 Debug/libdb43d.lib tcl84g.lib /nologo /base:"0x13000000" /subsystem:windows /dll /pdb:none /debug /machine:I386 /out:"Debug/libdb_tcl43d.dll" /fixed:no
!ENDIF
@ -134,6 +134,10 @@ SOURCE=..\tcl\tcl_rep.c
# End Source File
# Begin Source File
SOURCE=..\tcl\tcl_seq.c
# End Source File
# Begin Source File
SOURCE=..\tcl\tcl_txn.c
# End Source File
# Begin Source File

View File

@ -50,7 +50,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386
# Begin Special Build Tool
SOURCE="$(InputPath)"
PostBuild_Desc=Copy built executable files.
@ -79,7 +79,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /out:"Debug/dbkill.exe" /fixed:no
# ADD LINK32 Debug/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /out:"Debug/dbkill.exe" /fixed:no
# Begin Special Build Tool
SOURCE="$(InputPath)"
PostBuild_Desc=Copy built executable files.

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "db_upgrade - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "db_upgrade - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "db_upgrade - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "db_verify - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "db_verify - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "db_verify - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -1,10 +1,10 @@
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1999-2003
* Copyright (c) 1999-2004
* Sleepycat Software. All rights reserved.
*
* $Id: dbkill.cpp,v 11.8 2003/01/08 04:05:42 bostic Exp $
* $Id: dbkill.cpp,v 11.9 2004/01/28 03:35:52 bostic Exp $
*/
/*
* Kill -

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "ex_access - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "ex_access - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "ex_access - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "ex_btrec - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "ex_btrec - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "ex_btrec - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "ex_env - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "ex_env - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "ex_env - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "ex_lock - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "ex_lock - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "ex_lock - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "ex_mpool - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "ex_mpool - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "ex_mpool - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib ws2_32.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib ws2_32.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "ex_repquote - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib ws2_32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib ws2_32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "ex_repquote - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib ws2_32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib ws2_32.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib ws2_32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib ws2_32.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "ex_repquote - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "ex_tpcb - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "ex_tpcb - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "ex_tpcb - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "excxx_access - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "excxx_access - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "excxx_access - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "excxx_btrec - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "excxx_btrec - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "excxx_btrec - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "excxx_env - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "excxx_env - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "excxx_env - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "excxx_lock - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "excxx_lock - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "excxx_lock - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "excxx_mpool - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "excxx_mpool - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "excxx_mpool - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -52,7 +52,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release/libdb42.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "excxx_tpcb - Win32 Debug"
@ -76,7 +76,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/libdb42d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "excxx_tpcb - Win32 Release Static"
@ -100,8 +100,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb42.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb42s.lib /nologo /subsystem:console /machine:I386
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "excxx_tpcb - Win32 Debug Static"
@ -125,8 +125,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb42d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb42sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /fixed:no
!ENDIF

View File

@ -1,10 +1,11 @@
# Automatically built by dist/s_test; may require local editing.
set tclsh_path SET_YOUR_TCLSH_PATH
set tcllib ./Debug/libdb_tcl42d.dll
set tcllib ./Debug/libdb_tcl43d.dll
set src_root ..
set test_path ../test
set je_root ../../je
global testdir
set testdir ./TESTDIR

View File

@ -62,10 +62,10 @@ SOURCE="$(InputPath)"
"force_compilation.txt" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
echo compiling Berkeley DB classes
mkdir "$(OUTDIR)\classes"
javac -g -d "$(OUTDIR)\classes" -classpath "$(OUTDIR)/classes" ..\java\src\com\sleepycat\db\*.java ..\java\src\com\sleepycat\db\$(OUTDIR)\*.java ..\java\src\com\sleepycat\bdb\bind\*.java ..\java\src\com\sleepycat\bdb\bind\serial\*.java ..\java\src\com\sleepycat\bdb\bind\tuple\*.java ..\java\src\com\sleepycat\bdb\*.java ..\java\src\com\sleepycat\bdb\collection\*.java ..\java\src\com\sleepycat\bdb\factory\*.java ..\java\src\com\sleepycat\bdb\util\*.java
javac -O -d "$(OUTDIR)\classes" -classpath "$(OUTDIR)/classes" ..\java\src\com\sleepycat\db\*.java ..\java\src\com\sleepycat\db\internal\*.java ..\java\src\com\sleepycat\bind\*.java ..\java\src\com\sleepycat\bind\serial\*.java ..\java\src\com\sleepycat\bind\tuple\*.java ..\java\src\com\sleepycat\collections\*.java ..\java\src\com\sleepycat\compat\*.java ..\java\src\com\sleepycat\util\*.java
echo compiling examples
mkdir "$(OUTDIR)\classes.ex"
javac -g -d "$(OUTDIR)\classes.ex" -classpath "$(OUTDIR)\classes;$(OUTDIR)\classes.ex" ..\examples_java\src\com\sleepycat\examples\db\*.java ..\examples_java\src\com\sleepycat\examples\bdb\access\*.java ..\examples_java\src\com\sleepycat\examples\bdb\helloworld\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\basic\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\entity\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\tuple\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\sentity\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\marshal\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\factory\*.java
javac -O -d "$(OUTDIR)\classes.ex" -classpath "$(OUTDIR)\classes;$(OUTDIR)\classes.ex" ..\examples_java\src\com\sleepycat\examples\db\*.java ..\examples_java\src\com\sleepycat\examples\db\GettingStarted\*.java ..\examples_java\src\com\sleepycat\examples\collections\access\*.java ..\examples_java\src\com\sleepycat\examples\collections\hello\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\basic\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\entity\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\tuple\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\sentity\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\marshal\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\factory\*.java
echo creating jar files
jar cf "$(OUTDIR)\db.jar" -C "$(OUTDIR)\classes" .
jar cf "$(OUTDIR)\dbexamples.jar" -C "$(OUTDIR)\classes.ex" .
@ -107,10 +107,10 @@ SOURCE="$(InputPath)"
"force_compilation.txt" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
echo compiling Berkeley DB classes
mkdir "$(OUTDIR)\classes"
javac -g -d "$(OUTDIR)\classes" -classpath "$(OUTDIR)/classes" ..\java\src\com\sleepycat\db\*.java ..\java\src\com\sleepycat\db\$(OUTDIR)\*.java ..\java\src\com\sleepycat\bdb\bind\*.java ..\java\src\com\sleepycat\bdb\bind\serial\*.java ..\java\src\com\sleepycat\bdb\bind\tuple\*.java ..\java\src\com\sleepycat\bdb\*.java ..\java\src\com\sleepycat\bdb\collection\*.java ..\java\src\com\sleepycat\bdb\factory\*.java ..\java\src\com\sleepycat\bdb\util\*.java
javac -g -d "$(OUTDIR)\classes" -classpath "$(OUTDIR)/classes" ..\java\src\com\sleepycat\db\*.java ..\java\src\com\sleepycat\db\internal\*.java ..\java\src\com\sleepycat\bind\*.java ..\java\src\com\sleepycat\bind\serial\*.java ..\java\src\com\sleepycat\bind\tuple\*.java ..\java\src\com\sleepycat\collections\*.java ..\java\src\com\sleepycat\compat\*.java ..\java\src\com\sleepycat\util\*.java
echo compiling examples
mkdir "$(OUTDIR)\classes.ex"
javac -g -d "$(OUTDIR)\classes.ex" -classpath "$(OUTDIR)\classes;$(OUTDIR)\classes.ex" ..\examples_java\src\com\sleepycat\examples\db\*.java ..\examples_java\src\com\sleepycat\examples\bdb\access\*.java ..\examples_java\src\com\sleepycat\examples\bdb\helloworld\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\basic\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\entity\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\tuple\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\sentity\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\marshal\*.java ..\examples_java\src\com\sleepycat\examples\bdb\shipment\factory\*.java
javac -g -d "$(OUTDIR)\classes.ex" -classpath "$(OUTDIR)\classes;$(OUTDIR)\classes.ex" ..\examples_java\src\com\sleepycat\examples\db\*.java ..\examples_java\src\com\sleepycat\examples\db\GettingStarted\*.java ..\examples_java\src\com\sleepycat\examples\collections\access\*.java ..\examples_java\src\com\sleepycat\examples\collections\hello\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\basic\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\entity\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\tuple\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\sentity\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\marshal\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\factory\*.java
echo creating jar files
jar cf "$(OUTDIR)\db.jar" -C "$(OUTDIR)\classes" .
jar cf "$(OUTDIR)\dbexamples.jar" -C "$(OUTDIR)\classes.ex" .

View File

@ -1,127 +1,171 @@
; DO NOT EDIT: automatically built by dist/s_win32.
DESCRIPTION 'Berkeley DB 4.2 Library'
EXPORTS
db_create @1
db_env_create @2
db_strerror @3
db_version @4
db_xa_switch @5
log_compare @6
db_env_set_func_close @7
db_env_set_func_dirfree @8
db_env_set_func_dirlist @9
db_env_set_func_exists @10
db_env_set_func_free @11
db_env_set_func_fsync @12
db_env_set_func_ioinfo @13
db_env_set_func_malloc @14
db_env_set_func_map @15
db_env_set_func_open @16
db_env_set_func_read @17
db_env_set_func_realloc @18
db_env_set_func_rename @19
db_env_set_func_seek @20
db_env_set_func_sleep @21
db_env_set_func_unlink @22
db_env_set_func_unmap @23
db_env_set_func_write @24
db_env_set_func_yield @25
__db_add_recovery @26
__db_dbm_close @27
__db_dbm_delete @28
__db_dbm_fetch @29
__db_dbm_firstkey @30
__db_dbm_init @31
__db_dbm_nextkey @32
__db_dbm_store @33
__db_hcreate @34
__db_hdestroy @35
__db_hsearch @36
__db_loadme @37
__db_ndbm_clearerr @38
__db_ndbm_close @39
__db_ndbm_delete @40
__db_ndbm_dirfno @41
__db_ndbm_error @42
__db_ndbm_fetch @43
__db_ndbm_firstkey @44
__db_ndbm_nextkey @45
__db_ndbm_open @46
__db_ndbm_pagfno @47
__db_ndbm_rdonly @48
__db_ndbm_store @49
__db_panic @50
__db_r_attach @51
__db_r_detach @52
__db_win32_mutex_init @53
__db_win32_mutex_lock @54
__db_win32_mutex_unlock @55
__ham_func2 @56
__ham_func3 @57
__ham_func4 @58
__ham_func5 @59
__ham_test @60
__lock_dump_region @61
__lock_id_set @62
__memp_dump_region @63
__os_calloc @64
__os_closehandle @65
__os_free @66
__os_ioinfo @67
__os_malloc @68
__os_open @69
__os_openhandle @70
__os_read @71
__os_realloc @72
__os_strdup @73
__os_umalloc @74
__os_write @75
__txn_id_set @76
__bam_init_print @77
__bam_pgin @78
__bam_pgout @79
__crdel_init_print @80
__db_dispatch @81
__db_dump @82
__db_e_stat @83
__db_err @84
__db_getlong @85
__db_getulong @86
__db_global_values @87
__db_init_print @88
__db_inmemdbflags @89
__db_isbigendian @90
__db_omode @91
__db_overwrite @92
__db_pgin @93
__db_pgout @94
__db_pr_callback @95
__db_prdbt @96
__db_prfooter @97
__db_prheader @98
__db_rpath @99
__db_util_cache @100
__db_util_interrupted @101
__db_util_logset @102
__db_util_siginit @103
__db_util_sigresend @104
__db_verify_internal @105
__dbreg_init_print @106
__fop_init_print @107
__ham_get_meta @108
__ham_init_print @109
__ham_pgin @110
__ham_pgout @111
__ham_release_meta @112
__os_clock @113
__os_get_errno @114
__os_id @115
__os_set_errno @116
__os_sleep @117
__os_ufree @118
__os_yield @119
__qam_init_print @120
__qam_pgin_out @121
__txn_init_print @122
db_sequence_create @3
db_strerror @4
db_version @5
db_xa_switch @6
log_compare @7
db_env_set_func_close @8
db_env_set_func_dirfree @9
db_env_set_func_dirlist @10
db_env_set_func_exists @11
db_env_set_func_free @12
db_env_set_func_fsync @13
db_env_set_func_ftruncate @14
db_env_set_func_ioinfo @15
db_env_set_func_malloc @16
db_env_set_func_map @17
db_env_set_func_open @18
db_env_set_func_pread @19
db_env_set_func_pwrite @20
db_env_set_func_read @21
db_env_set_func_realloc @22
db_env_set_func_rename @23
db_env_set_func_seek @24
db_env_set_func_sleep @25
db_env_set_func_unlink @26
db_env_set_func_unmap @27
db_env_set_func_write @28
db_env_set_func_yield @29
__db_add_recovery @30
__db_dbm_close @31
__db_dbm_delete @32
__db_dbm_fetch @33
__db_dbm_firstkey @34
__db_dbm_init @35
__db_dbm_nextkey @36
__db_dbm_store @37
__db_get_flags_fn @38
__db_get_seq_flags_fn @39
__db_hcreate @40
__db_hdestroy @41
__db_hsearch @42
__db_loadme @43
__db_ndbm_clearerr @44
__db_ndbm_close @45
__db_ndbm_delete @46
__db_ndbm_dirfno @47
__db_ndbm_error @48
__db_ndbm_fetch @49
__db_ndbm_firstkey @50
__db_ndbm_nextkey @51
__db_ndbm_open @52
__db_ndbm_pagfno @53
__db_ndbm_rdonly @54
__db_ndbm_store @55
__db_panic @56
__db_r_attach @57
__db_r_detach @58
__db_win32_mutex_init @59
__db_win32_mutex_lock @60
__db_win32_mutex_unlock @61
__ham_func2 @62
__ham_func3 @63
__ham_func4 @64
__ham_func5 @65
__ham_test @66
__lock_id_set @67
__os_calloc @68
__os_closehandle @69
__os_free @70
__os_ioinfo @71
__os_malloc @72
__os_open @73
__os_openhandle @74
__os_read @75
__os_realloc @76
__os_strdup @77
__os_umalloc @78
__os_write @79
__txn_id_set @80
__bam_adj_read @81
__bam_cadjust_read @82
__bam_cdel_read @83
__bam_curadj_read @84
__bam_pgin @85
__bam_pgout @86
__bam_rcuradj_read @87
__bam_relink_read @88
__bam_repl_read @89
__bam_root_read @90
__bam_rsplit_read @91
__bam_split_read @92
__crdel_metasub_read @93
__db_addrem_read @94
__db_big_read @95
__db_cksum_read @96
__db_debug_read @97
__db_dispatch @98
__db_dumptree @99
__db_err @100
__db_fileid_reset @101
__db_getlong @102
__db_getulong @103
__db_global_values @104
__db_isbigendian @105
__db_lsn_reset @106
__db_noop_read @107
__db_omode @108
__db_overwrite @109
__db_ovref_read @110
__db_pg_alloc_read @111
__db_pg_free_read @112
__db_pg_freedata_read @113
__db_pg_init_read @114
__db_pg_new_read @115
__db_pg_prepare_read @116
__db_pgin @117
__db_pgout @118
__db_pr_callback @119
__db_rpath @120
__db_stat_pp @121
__db_stat_print_pp @122
__db_util_cache @123
__db_util_interrupted @124
__db_util_logset @125
__db_util_siginit @126
__db_util_sigresend @127
__db_verify_internal @128
__dbreg_register_read @129
__fop_create_read @130
__fop_file_remove_read @131
__fop_remove_read @132
__fop_rename_read @133
__fop_write_read @134
__ham_chgpg_read @135
__ham_copypage_read @136
__ham_curadj_read @137
__ham_get_meta @138
__ham_groupalloc_read @139
__ham_insdel_read @140
__ham_metagroup_read @141
__ham_newpage_read @142
__ham_pgin @143
__ham_pgout @144
__ham_release_meta @145
__ham_replace_read @146
__ham_splitdata_read @147
__lock_list_print @148
__log_stat_pp @149
__os_clock @150
__os_get_errno @151
__os_id @152
__os_set_errno @153
__os_sleep @154
__os_ufree @155
__os_yield @156
__qam_add_read @157
__qam_del_read @158
__qam_delext_read @159
__qam_incfirst_read @160
__qam_mvptr_read @161
__qam_pgin_out @162
__rep_stat_print @163
__txn_child_read @164
__txn_ckp_read @165
__txn_recycle_read @166
__txn_regop_read @167
__txn_xa_regop_read @168

View File

@ -1,6 +1,6 @@
1 VERSIONINFO
FILEVERSION 4,0,2,52
PRODUCTVERSION 4,0,2,52
FILEVERSION 4,0,3,14
PRODUCTVERSION 4,0,3,14
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -18,12 +18,12 @@ BEGIN
BEGIN
VALUE "CompanyName", "Sleepycat Software\0"
VALUE "FileDescription", "Berkeley DB 3.0 DLL\0"
VALUE "FileVersion", "4.2.52\0"
VALUE "FileVersion", "4.3.14\0"
VALUE "InternalName", "libdb.dll\0"
VALUE "LegalCopyright", "Copyright © Sleepycat Software Inc. 1997-2003\0"
VALUE "LegalCopyright", "Copyright © Sleepycat Software Inc. 1997-2004\0"
VALUE "OriginalFilename", "libdb.dll\0"
VALUE "ProductName", "Sleepycat Software libdb\0"
VALUE "ProductVersion", "4.2.52\0"
VALUE "ProductVersion", "4.3.14\0"
END
END
BLOCK "VarFileInfo"

View File

@ -20,7 +20,7 @@ BEGIN
VALUE "FileDescription", "Berkeley DB 3.0 DLL\0"
VALUE "FileVersion", "%MAJOR%.%MINOR%.%PATCH%\0"
VALUE "InternalName", "libdb.dll\0"
VALUE "LegalCopyright", "Copyright © Sleepycat Software Inc. 1997-2003\0"
VALUE "LegalCopyright", "Copyright © Sleepycat Software Inc. 1997-2004\0"
VALUE "OriginalFilename", "libdb.dll\0"
VALUE "ProductName", "Sleepycat Software libdb\0"
VALUE "ProductVersion", "%MAJOR%.%MINOR%.%PATCH%\0"

View File

@ -1,5 +1,5 @@
/*-
* $Id: win_db.h,v 1.51 2003/12/03 21:15:37 bostic Exp $
* $Id: win_db.h,v 1.123 2004/10/14 15:32:28 bostic Exp $
*
* The following provides the information necessary to build Berkeley
* DB on native Windows, and other Windows environments such as MinGW.
@ -17,6 +17,7 @@
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <tchar.h>
#include <time.h>
#include <errno.h>
@ -57,3 +58,37 @@ extern int getopt(int, char * const *, const char *);
#if defined(__cplusplus)
}
#endif
#ifdef _UNICODE
#define TO_TSTRING(dbenv, s, ts, ret) do { \
int __len = strlen(s) + 1; \
ts = NULL; \
if ((ret = __os_malloc((dbenv), \
__len * sizeof (_TCHAR), &(ts))) == 0 && \
MultiByteToWideChar(CP_UTF8, 0, \
(s), -1, (ts), __len) == 0) \
ret = __os_get_errno(); \
} while (0)
#define FROM_TSTRING(dbenv, ts, s, ret) { \
int __len = WideCharToMultiByte(CP_UTF8, 0, ts, -1, \
NULL, 0, NULL, NULL); \
s = NULL; \
if ((ret = __os_malloc((dbenv), __len, &(s))) == 0 && \
WideCharToMultiByte(CP_UTF8, 0, \
(ts), -1, (s), __len, NULL, NULL) == 0) \
ret = __os_get_errno(); \
} while (0)
#define FREE_STRING(dbenv, s) do { \
if ((s) != NULL) { \
__os_free((dbenv), (s)); \
(s) = NULL; \
} \
} while (0)
#else
#define TO_TSTRING(dbenv, s, ts, ret) (ret) = 0, (ts) = (_TCHAR *)(s)
#define FROM_TSTRING(dbenv, ts, s, ret) (ret) = 0, (s) = (char *)(ts)
#define FREE_STRING(dbenv, ts)
#endif

View File

@ -0,0 +1,539 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "build_all"=.\build_all.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_archive
End Project Dependency
Begin Project Dependency
Project_Dep_Name db_checkpoint
End Project Dependency
Begin Project Dependency
Project_Dep_Name db_deadlock
End Project Dependency
Begin Project Dependency
Project_Dep_Name DB_DLL
End Project Dependency
Begin Project Dependency
Project_Dep_Name db_dump
End Project Dependency
Begin Project Dependency
Project_Dep_Name db_load
End Project Dependency
Begin Project Dependency
Project_Dep_Name db_printlog
End Project Dependency
Begin Project Dependency
Project_Dep_Name db_recover
End Project Dependency
Begin Project Dependency
Project_Dep_Name db_stat
End Project Dependency
Begin Project Dependency
Project_Dep_Name db_upgrade
End Project Dependency
Begin Project Dependency
Project_Dep_Name db_verify
End Project Dependency
Begin Project Dependency
Project_Dep_Name DB_Static
End Project Dependency
Begin Project Dependency
Project_Dep_Name ex_access
End Project Dependency
Begin Project Dependency
Project_Dep_Name ex_btrec
End Project Dependency
Begin Project Dependency
Project_Dep_Name ex_env
End Project Dependency
Begin Project Dependency
Project_Dep_Name ex_lock
End Project Dependency
Begin Project Dependency
Project_Dep_Name ex_mpool
End Project Dependency
Begin Project Dependency
Project_Dep_Name ex_tpcb
End Project Dependency
Begin Project Dependency
Project_Dep_Name excxx_access
End Project Dependency
Begin Project Dependency
Project_Dep_Name excxx_btrec
End Project Dependency
Begin Project Dependency
Project_Dep_Name excxx_env
End Project Dependency
Begin Project Dependency
Project_Dep_Name excxx_lock
End Project Dependency
Begin Project Dependency
Project_Dep_Name excxx_mpool
End Project Dependency
Begin Project Dependency
Project_Dep_Name excxx_tpcb
End Project Dependency
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "db_archive"=.\db_archive.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "db_checkpoint"=.\db_checkpoint.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "db_deadlock"=.\db_deadlock.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name DB_DLL
End Project Dependency
}}}
###############################################################################
Project: "db_dll"=.\db_dll.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "db_dump"=.\db_dump.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "db_java"=.\db_java.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name DB_DLL
End Project Dependency
}}}
###############################################################################
Project: "db_lib"=.\db_lib.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_dll
End Project Dependency
Begin Project Dependency
Project_Dep_Name db_static
End Project Dependency
}}}
###############################################################################
Project: "db_load"=.\db_load.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "db_printlog"=.\db_printlog.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "db_recover"=.\db_recover.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "db_stat"=.\db_stat.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "db_static"=.\db_static.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "db_tcl"=.\db_tcl.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name DB_DLL
End Project Dependency
}}}
###############################################################################
Project: "db_test"=.\db_test.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name build_all
End Project Dependency
Begin Project Dependency
Project_Dep_Name db_tcl
End Project Dependency
}}}
###############################################################################
Project: "db_upgrade"=.\db_upgrade.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "db_verify"=.\db_verify.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "ex_access"=.\ex_access.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "ex_btrec"=.\ex_btrec.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "ex_env"=.\ex_env.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "ex_lock"=.\ex_lock.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "ex_mpool"=.\ex_mpool.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "ex_repquote"=.\ex_repquote.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "ex_tpcb"=.\ex_tpcb.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "excxx_access"=.\excxx_access.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "excxx_btrec"=.\excxx_btrec.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "excxx_env"=.\excxx_env.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "excxx_lock"=.\excxx_lock.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "excxx_mpool"=.\excxx_mpool.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Project: "excxx_tpcb"=.\excxx_tpcb.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name db_lib
End Project Dependency
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

145
db/build_win64/app_dsp.src Normal file
View File

@ -0,0 +1,145 @@
# Microsoft Developer Studio Project File - Name="@project_name@" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=@project_name@ - Win32 Debug Static
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "@project_name@.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "@project_name@.mak" CFG="@project_name@ - Win32 Debug Static"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "@project_name@ - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "@project_name@ - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE "@project_name@ - Win32 Release Static" (based on "Win32 (x86) Console Application")
!MESSAGE "@project_name@ - Win32 Debug Static" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "@project_name@ - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /machine:IA64
# ADD LINK32 Release/libdb@DB_VERSION_MAJOR@@DB_VERSION_MINOR@.lib /nologo /subsystem:console /machine:IA64 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "@project_name@ - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /pdbtype:sept
# ADD LINK32 Debug/libdb@DB_VERSION_MAJOR@@DB_VERSION_MINOR@d.lib /nologo /subsystem:console /debug /machine:IA64 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "@project_name@ - Win32 Release Static"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_static"
# PROP Intermediate_Dir "Release_static"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb@DB_VERSION_MAJOR@@DB_VERSION_MINOR@.lib /nologo /subsystem:console /machine:IA64
# ADD LINK32 Release_static/libdb@DB_VERSION_MAJOR@@DB_VERSION_MINOR@s.lib /nologo /subsystem:console /machine:IA64
!ELSEIF "$(CFG)" == "@project_name@ - Win32 Debug Static"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug_static"
# PROP Intermediate_Dir "Debug_static"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MTd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb@DB_VERSION_MAJOR@@DB_VERSION_MINOR@d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /fixed:no
# ADD LINK32 Debug_static/libdb@DB_VERSION_MAJOR@@DB_VERSION_MINOR@sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /fixed:no
!ENDIF
# Begin Target
# Name "@project_name@ - Win32 Release"
# Name "@project_name@ - Win32 Debug"
# Name "@project_name@ - Win32 Release Static"
# Name "@project_name@ - Win32 Debug Static"
@SOURCE_FILES@
# Begin Source File
SOURCE=..\clib\getopt.c
# End Source File
# End Target
# End Project

View File

@ -0,0 +1,96 @@
# Microsoft Developer Studio Project File - Name="build_all" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Generic Project" 0x010a
CFG=build_all - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "build_all.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "build_all.mak" CFG="build_all - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "build_all - Win32 Release" (based on "Win32 (x86) External Target")
!MESSAGE "build_all - Win32 Debug" (based on "Win32 (x86) External Target")
!MESSAGE "build_all - Win32 Release Static" (based on "Win32 (x86) External Target")
!MESSAGE "build_all - Win32 Debug Static" (based on "Win32 (x86) External Target")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
!IF "$(CFG)" == "build_all - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Cmd_Line "echo DB Release version built."
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "build_all - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Cmd_Line "echo DB Debug version built."
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "build_all - Win32 Release Static"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release_static"
# PROP BASE Intermediate_Dir "Release_static"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_static"
# PROP Intermediate_Dir "Release_static"
# PROP Cmd_Line "echo DB Release Static version built."
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "build_all - Win32 Debug Static"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug_static"
# PROP BASE Intermediate_Dir "Debug_Static"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug_static"
# PROP Intermediate_Dir "Debug_Static"
# PROP Cmd_Line "echo DB Debug Static version built."
# PROP Target_Dir ""
!ENDIF
# Begin Target
# Name "build_all - Win32 Release"
# Name "build_all - Win32 Debug"
# Name "build_all - Win32 Release Static"
# Name "build_all - Win32 Debug Static"
# End Target
# End Project

2242
db/build_win64/db.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,148 @@
# Microsoft Developer Studio Project File - Name="db_archive" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=db_archive - Win32 Debug Static
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "db_archive.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "db_archive.mak" CFG="db_archive - Win32 Debug Static"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "db_archive - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "db_archive - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE "db_archive - Win32 Release Static" (based on "Win32 (x86) Console Application")
!MESSAGE "db_archive - Win32 Debug Static" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "db_archive - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /machine:IA64
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:IA64 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "db_archive - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /pdbtype:sept
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /debug /machine:IA64 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "db_archive - Win32 Release Static"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_static"
# PROP Intermediate_Dir "Release_static"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:IA64
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:IA64
!ELSEIF "$(CFG)" == "db_archive - Win32 Debug Static"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug_static"
# PROP Intermediate_Dir "Debug_static"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MTd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /fixed:no
!ENDIF
# Begin Target
# Name "db_archive - Win32 Release"
# Name "db_archive - Win32 Debug"
# Name "db_archive - Win32 Release Static"
# Name "db_archive - Win32 Debug Static"
# Begin Source File
SOURCE=..\db_archive\db_archive.c
# End Source File
# Begin Source File
SOURCE=..\clib\getopt.c
# End Source File
# End Target
# End Project

View File

@ -0,0 +1,148 @@
# Microsoft Developer Studio Project File - Name="db_checkpoint" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=db_checkpoint - Win32 Debug Static
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "db_checkpoint.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "db_checkpoint.mak" CFG="db_checkpoint - Win32 Debug Static"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "db_checkpoint - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "db_checkpoint - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE "db_checkpoint - Win32 Release Static" (based on "Win32 (x86) Console Application")
!MESSAGE "db_checkpoint - Win32 Debug Static" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "db_checkpoint - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /machine:IA64
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:IA64 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "db_checkpoint - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /pdbtype:sept
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /debug /machine:IA64 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "db_checkpoint - Win32 Release Static"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_static"
# PROP Intermediate_Dir "Release_static"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:IA64
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:IA64
!ELSEIF "$(CFG)" == "db_checkpoint - Win32 Debug Static"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug_static"
# PROP Intermediate_Dir "Debug_static"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MTd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /fixed:no
!ENDIF
# Begin Target
# Name "db_checkpoint - Win32 Release"
# Name "db_checkpoint - Win32 Debug"
# Name "db_checkpoint - Win32 Release Static"
# Name "db_checkpoint - Win32 Debug Static"
# Begin Source File
SOURCE=..\db_checkpoint\db_checkpoint.c
# End Source File
# Begin Source File
SOURCE=..\clib\getopt.c
# End Source File
# End Target
# End Project

440
db/build_win64/db_config.h Normal file
View File

@ -0,0 +1,440 @@
/* DO NOT EDIT: automatically built by dist/s_win32. */
/* Define to 1 if you want to build a version for running the test suite. */
/* #undef CONFIG_TEST */
/* We use DB_WIN32 much as one would use _WIN32 -- to specify that we're using
an operating system environment that supports Win32 calls and semantics. We
don't use _WIN32 because Cygwin/GCC also defines _WIN32, even though
Cygwin/GCC closely emulates the Unix environment. */
#define DB_WIN32 1
/* Define to 1 if you want a debugging version. */
/* #undef DEBUG */
#if defined(_DEBUG)
#if !defined(DEBUG)
#define DEBUG 1
#endif
#endif
/* Define to 1 if you want a version that logs read operations. */
/* #undef DEBUG_ROP */
/* Define to 1 if you want a version that logs write operations. */
/* #undef DEBUG_WOP */
/* Define to 1 if you want a version with run-time diagnostic checking. */
/* #undef DIAGNOSTIC */
/* Define to 1 if you have the `clock_gettime' function. */
/* #undef HAVE_CLOCK_GETTIME */
/* Define to 1 if Berkeley DB release includes strong cryptography. */
#ifndef HAVE_SMALLBUILD
#define HAVE_CRYPTO 1
#endif
/* Define to 1 if you have the `directio' function. */
/* #undef HAVE_DIRECTIO */
/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
*/
/* #undef HAVE_DIRENT_H */
/* Define to 1 if you have the <dlfcn.h> header file. */
/* #undef HAVE_DLFCN_H */
/* Define to 1 if you have EXIT_SUCCESS/EXIT_FAILURE #defines. */
#define HAVE_EXIT_SUCCESS 1
/* Define to 1 if fcntl/F_SETFD denies child access to file descriptors. */
/* #undef HAVE_FCNTL_F_SETFD */
/* Define to 1 if you have the `fdatasync' function. */
/* #undef HAVE_FDATASYNC */
/* Define to 1 if allocated filesystem blocks are not zeroed. */
#define HAVE_FILESYSTEM_NOTZERO 1
/* Define to 1 if you have the `ftruncate' function. */
#define HAVE_FTRUNCATE 1
/* Define to 1 if you have the `getcwd' function. */
#define HAVE_GETCWD 1
/* Define to 1 if you have the `getopt' function. */
/* #undef HAVE_GETOPT */
/* Define to 1 if you have the `getrusage' function. */
/* #undef HAVE_GETRUSAGE */
/* Define to 1 if you have the `gettimeofday' function. */
/* #undef HAVE_GETTIMEOFDAY */
/* Define to 1 if you have the `getuid' function. */
/* #undef HAVE_GETUID */
/* Define to 1 if building Hash access method. */
#ifndef HAVE_SMALLBUILD
#define HAVE_HASH 1
#endif
/* Define to 1 if you have the <inttypes.h> header file. */
/* #undef HAVE_INTTYPES_H */
/* Define to 1 if you have the `nsl' library (-lnsl). */
/* #undef HAVE_LIBNSL */
/* Define to 1 if the system has the type `long long'. */
#define HAVE_LONG_LONG 1
/* Define to 1 if you have the `memcmp' function. */
#define HAVE_MEMCMP 1
/* Define to 1 if you have the `memcpy' function. */
#define HAVE_MEMCPY 1
/* Define to 1 if you have the `memmove' function. */
#define HAVE_MEMMOVE 1
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the `mlock' function. */
/* #undef HAVE_MLOCK */
/* Define to 1 if you have the `mmap' function. */
/* #undef HAVE_MMAP */
/* Define to 1 if you have the `munlock' function. */
/* #undef HAVE_MUNLOCK */
/* Define to 1 if you have the `munmap' function. */
/* #undef HAVE_MUNMAP */
/* Define to 1 to use the GCC compiler and 68K assembly language mutexes. */
/* #undef HAVE_MUTEX_68K_GCC_ASSEMBLY */
/* Define to 1 to use the AIX _check_lock mutexes. */
/* #undef HAVE_MUTEX_AIX_CHECK_LOCK */
/* Define to 1 to use the GCC compiler and Alpha assembly language mutexes. */
/* #undef HAVE_MUTEX_ALPHA_GCC_ASSEMBLY */
/* Define to 1 to use the GCC compiler and ARM assembly language mutexes. */
/* #undef HAVE_MUTEX_ARM_GCC_ASSEMBLY */
/* Define to 1 to use the Apple/Darwin _spin_lock_try mutexes. */
/* #undef HAVE_MUTEX_DARWIN_SPIN_LOCK_TRY */
/* Define to 1 to use the UNIX fcntl system call mutexes. */
/* #undef HAVE_MUTEX_FCNTL */
/* Define to 1 to use the GCC compiler and PaRisc assembly language mutexes.
*/
/* #undef HAVE_MUTEX_HPPA_GCC_ASSEMBLY */
/* Define to 1 to use the msem_XXX mutexes on HP-UX. */
/* #undef HAVE_MUTEX_HPPA_MSEM_INIT */
/* Define to 1 to use the GCC compiler and IA64 assembly language mutexes. */
/* #undef HAVE_MUTEX_IA64_GCC_ASSEMBLY */
/* Define to 1 to use the msem_XXX mutexes on systems other than HP-UX. */
/* #undef HAVE_MUTEX_MSEM_INIT */
/* Define to 1 to use the GCC compiler and PowerPC assembly language mutexes.
*/
/* #undef HAVE_MUTEX_PPC_GCC_ASSEMBLY */
/* Define to 1 to use POSIX 1003.1 pthread_XXX mutexes. */
/* #undef HAVE_MUTEX_PTHREADS */
/* Define to 1 to use Reliant UNIX initspin mutexes. */
/* #undef HAVE_MUTEX_RELIANTUNIX_INITSPIN */
/* Define to 1 to use the IBM C compiler and S/390 assembly language mutexes.
*/
/* #undef HAVE_MUTEX_S390_CC_ASSEMBLY */
/* Define to 1 to use the GCC compiler and S/390 assembly language mutexes. */
/* #undef HAVE_MUTEX_S390_GCC_ASSEMBLY */
/* Define to 1 to use the SCO compiler and x86 assembly language mutexes. */
/* #undef HAVE_MUTEX_SCO_X86_CC_ASSEMBLY */
/* Define to 1 to use the obsolete POSIX 1003.1 sema_XXX mutexes. */
/* #undef HAVE_MUTEX_SEMA_INIT */
/* Define to 1 to use the SGI XXX_lock mutexes. */
/* #undef HAVE_MUTEX_SGI_INIT_LOCK */
/* Define to 1 to use the Solaris _lock_XXX mutexes. */
/* #undef HAVE_MUTEX_SOLARIS_LOCK_TRY */
/* Define to 1 to use the Solaris lwp threads mutexes. */
/* #undef HAVE_MUTEX_SOLARIS_LWP */
/* Define to 1 to use the GCC compiler and Sparc assembly language mutexes. */
/* #undef HAVE_MUTEX_SPARC_GCC_ASSEMBLY */
/* Define to 1 if mutexes hold system resources. */
/* #undef HAVE_MUTEX_SYSTEM_RESOURCES */
/* Define to 1 if fast mutexes are available. */
#define HAVE_MUTEX_THREADS 1
/* Define to 1 to configure mutexes intra-process only. */
/* #undef HAVE_MUTEX_THREAD_ONLY */
/* Define to 1 to use the CC compiler and Tru64 assembly language mutexes. */
/* #undef HAVE_MUTEX_TRU64_CC_ASSEMBLY */
/* Define to 1 to use the UNIX International mutexes. */
/* #undef HAVE_MUTEX_UI_THREADS */
/* Define to 1 to use the UTS compiler and assembly language mutexes. */
/* #undef HAVE_MUTEX_UTS_CC_ASSEMBLY */
/* Define to 1 to use VMS mutexes. */
/* #undef HAVE_MUTEX_VMS */
/* Define to 1 to use VxWorks mutexes. */
/* #undef HAVE_MUTEX_VXWORKS */
/* Define to 1 to use the MSVC compiler and Windows mutexes. */
#define HAVE_MUTEX_WIN32 1
/* Define to 1 to use the GCC compiler and Windows mutexes. */
/* #undef HAVE_MUTEX_WIN32_GCC */
/* Define to 1 to use the GCC compiler and x86 assembly language mutexes. */
/* #undef HAVE_MUTEX_X86_GCC_ASSEMBLY */
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
/* #undef HAVE_NDIR_H */
/* Define to 1 if you have the O_DIRECT flag. */
/* #undef HAVE_O_DIRECT */
/* Define to 1 if you have the `pread' function. */
/* #undef HAVE_PREAD */
/* Define to 1 if you have the `pstat_getdynamic' function. */
/* #undef HAVE_PSTAT_GETDYNAMIC */
/* Define to 1 if you have the `pwrite' function. */
/* #undef HAVE_PWRITE */
/* Define to 1 if building on QNX. */
/* #undef HAVE_QNX */
/* Define to 1 if building Queue access method. */
#ifndef HAVE_SMALLBUILD
#define HAVE_QUEUE 1
#endif
/* Define to 1 if you have the `raise' function. */
#define HAVE_RAISE 1
/* Define to 1 if you have the `rand' function. */
#define HAVE_RAND 1
/* Define to 1 if building replication support. */
#ifndef HAVE_SMALLBUILD
#define HAVE_REPLICATION 1
#endif
/* Define to 1 if building RPC client/server. */
/* #undef HAVE_RPC */
/* Define to 1 if you have the `sched_yield' function. */
/* #undef HAVE_SCHED_YIELD */
/* Define to 1 if you have the `select' function. */
/* #undef HAVE_SELECT */
/* Define to 1 if building sequence support. */
#define HAVE_SEQUENCE 1
/* Define to 1 if you have the `shmget' function. */
/* #undef HAVE_SHMGET */
/* Define to 1 if you have the `snprintf' function. */
#define HAVE_SNPRINTF 1
/* Define to 1 if you have the `srand' function. */
#define HAVE_SRAND 1
/* Define to 1 if building statistics support. */
#define HAVE_STATISTICS 1
/* Define to 1 if you have the <stdint.h> header file. */
/* #undef HAVE_STDINT_H */
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the `strcasecmp' function. */
/* #undef HAVE_STRCASECMP */
/* Define to 1 if you have the `strdup' function. */
#define HAVE_STRDUP 1
/* Define to 1 if you have the `strerror' function. */
#define HAVE_STRERROR 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the `strtoul' function. */
#define HAVE_STRTOUL 1
/* Define to 1 if `st_blksize' is member of `struct stat'. */
/* #undef HAVE_STRUCT_STAT_ST_BLKSIZE */
/* Define to 1 if you have the `sysconf' function. */
/* #undef HAVE_SYSCONF */
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
*/
/* #undef HAVE_SYS_DIR_H */
/* Define to 1 if you have the <sys/fcntl.h> header file. */
#define HAVE_SYS_FCNTL_H 1
/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
*/
/* #undef HAVE_SYS_NDIR_H */
/* Define to 1 if you have the <sys/select.h> header file. */
/* #undef HAVE_SYS_SELECT_H */
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/time.h> header file. */
/* #undef HAVE_SYS_TIME_H */
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
/* #undef HAVE_UNISTD_H */
/* Define to 1 if unlink of file with open file descriptors will fail. */
/* #undef HAVE_UNLINK_WITH_OPEN_FAILURE */
/* Define to 1 if the system has the type `unsigned long long'. */
#define HAVE_UNSIGNED_LONG_LONG 1
/* Define to 1 if building access method verification support. */
#ifndef HAVE_SMALLBUILD
#define HAVE_VERIFY 1
#endif
/* Define to 1 if you have the `vsnprintf' function. */
#define HAVE_VSNPRINTF 1
/* Define to 1 if building VxWorks. */
/* #undef HAVE_VXWORKS */
/* Define to 1 if you have the `yield' function. */
/* #undef HAVE_YIELD */
/* Define to 1 if you have the `_fstati64' function. */
#define HAVE__FSTATI64 1
/* Define to a value if using non-standard mutex alignment. */
/* #undef MUTEX_ALIGN */
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "support@sleepycat.com"
/* Define to the full name of this package. */
#define PACKAGE_NAME "Berkeley DB"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "Berkeley DB 4.3.14"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "db-4.3.14"
/* Define to the version of this package. */
#define PACKAGE_VERSION "4.3.14"
/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
/* #undef STAT_MACROS_BROKEN */
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
/* #undef TIME_WITH_SYS_TIME */
/* Define to 1 to mask harmless uninitialized memory read/writes. */
/* #undef UMRW */
/* Number of bits in a file offset, on hosts where this is settable. */
/* #undef _FILE_OFFSET_BITS */
/* Define for large files, on AIX-style hosts. */
/* #undef _LARGE_FILES */
/* Define to empty if `const' does not conform to ANSI C. */
/* #undef const */
/*
* Exit success/failure macros.
*/
#ifndef HAVE_EXIT_SUCCESS
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0
#endif
/*
* Don't step on the namespace. Other libraries may have their own
* implementations of these functions, we don't want to use their
* implementations or force them to use ours based on the load order.
*/
#ifndef HAVE_GETCWD
#define getcwd __db_Cgetcwd
#endif
#ifndef HAVE_MEMCMP
#define memcmp __db_Cmemcmp
#endif
#ifndef HAVE_MEMCPY
#define memcpy __db_Cmemcpy
#endif
#ifndef HAVE_MEMMOVE
#define memmove __db_Cmemmove
#endif
#ifndef HAVE_RAISE
#define raise __db_Craise
#endif
#ifndef HAVE_SNPRINTF
#define snprintf __db_Csnprintf
#endif
#ifndef HAVE_STRCASECMP
#define strcasecmp __db_Cstrcasecmp
#define strncasecmp __db_Cstrncasecmp
#endif
#ifndef HAVE_STRERROR
#define strerror __db_Cstrerror
#endif
#ifndef HAVE_VSNPRINTF
#define vsnprintf __db_Cvsnprintf
#endif
#include "win_db.h"
/*
* Microsoft's compiler _doesn't_ define __STDC__ unless you invoke it with
* arguments turning OFF all vendor extensions. Even more unfortunately, if
* we do that, it fails to parse windows.h!!!!! So, we define __STDC__ here,
* after windows.h comes in. Note: the compiler knows we've defined it, and
* starts enforcing strict ANSI compliance from this point on.
*/
#define __STDC__ 1

1089
db/build_win64/db_cxx.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,148 @@
# Microsoft Developer Studio Project File - Name="db_deadlock" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=db_deadlock - Win32 Debug Static
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "db_deadlock.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "db_deadlock.mak" CFG="db_deadlock - Win32 Debug Static"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "db_deadlock - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "db_deadlock - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE "db_deadlock - Win32 Release Static" (based on "Win32 (x86) Console Application")
!MESSAGE "db_deadlock - Win32 Debug Static" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "db_deadlock - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /machine:IA64
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:IA64 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "db_deadlock - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /pdbtype:sept
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /debug /machine:IA64 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "db_deadlock - Win32 Release Static"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_static"
# PROP Intermediate_Dir "Release_static"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:IA64
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:IA64
!ELSEIF "$(CFG)" == "db_deadlock - Win32 Debug Static"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug_static"
# PROP Intermediate_Dir "Debug_static"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MTd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /fixed:no
!ENDIF
# Begin Target
# Name "db_deadlock - Win32 Release"
# Name "db_deadlock - Win32 Debug"
# Name "db_deadlock - Win32 Release Static"
# Name "db_deadlock - Win32 Debug Static"
# Begin Source File
SOURCE=..\db_deadlock\db_deadlock.c
# End Source File
# Begin Source File
SOURCE=..\clib\getopt.c
# End Source File
# End Target
# End Project

880
db/build_win64/db_dll.dsp Normal file
View File

@ -0,0 +1,880 @@
# Microsoft Developer Studio Project File - Name="db_dll" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=db_dll - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "db_dll.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "db_dll.mak" CFG="db_dll - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "db_dll - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "db_dll - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "db_dll - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /Ob2 /I "." /I ".." /D "DB_CREATE_DLL" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /machine:IA64
# ADD LINK32 /nologo /base:"0x13000000" /subsystem:windows /dll /machine:IA64 /out:"Release/libdb43.dll"
!ELSEIF "$(CFG)" == "db_dll - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 2
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
# ADD CPP /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /D "DB_CREATE_DLL" /D "CONFIG_TEST" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX"config.h" /FD /c
# SUBTRACT CPP /Fr
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /debug /machine:IA64 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x13000000" /subsystem:windows /dll /debug /machine:IA64 /out:"Debug/libdb43d.dll" /fixed:no
!ENDIF
# Begin Target
# Name "db_dll - Win32 Release"
# Name "db_dll - Win32 Debug"
# Begin Source File
SOURCE=..\btree\bt_compare.c
# End Source File
# Begin Source File
SOURCE=..\btree\bt_conv.c
# End Source File
# Begin Source File
SOURCE=..\btree\bt_curadj.c
# End Source File
# Begin Source File
SOURCE=..\btree\bt_cursor.c
# End Source File
# Begin Source File
SOURCE=..\btree\bt_delete.c
# End Source File
# Begin Source File
SOURCE=..\btree\bt_method.c
# End Source File
# Begin Source File
SOURCE=..\btree\bt_open.c
# End Source File
# Begin Source File
SOURCE=..\btree\bt_put.c
# End Source File
# Begin Source File
SOURCE=..\btree\bt_rec.c
# End Source File
# Begin Source File
SOURCE=..\btree\bt_reclaim.c
# End Source File
# Begin Source File
SOURCE=..\btree\bt_recno.c
# End Source File
# Begin Source File
SOURCE=..\btree\bt_rsearch.c
# End Source File
# Begin Source File
SOURCE=..\btree\bt_search.c
# End Source File
# Begin Source File
SOURCE=..\btree\bt_split.c
# End Source File
# Begin Source File
SOURCE=..\btree\bt_stat.c
# End Source File
# Begin Source File
SOURCE=..\btree\bt_upgrade.c
# End Source File
# Begin Source File
SOURCE=..\btree\bt_verify.c
# End Source File
# Begin Source File
SOURCE=..\btree\btree_auto.c
# End Source File
# Begin Source File
SOURCE=..\build_win32\libdb.def
# End Source File
# Begin Source File
SOURCE=..\build_win32\libdb.rc
# End Source File
# Begin Source File
SOURCE=..\clib\strcasecmp.c
# End Source File
# Begin Source File
SOURCE=..\common\db_byteorder.c
# End Source File
# Begin Source File
SOURCE=..\common\db_err.c
# End Source File
# Begin Source File
SOURCE=..\common\db_getlong.c
# End Source File
# Begin Source File
SOURCE=..\common\db_idspace.c
# End Source File
# Begin Source File
SOURCE=..\common\db_log2.c
# End Source File
# Begin Source File
SOURCE=..\common\util_cache.c
# End Source File
# Begin Source File
SOURCE=..\common\util_log.c
# End Source File
# Begin Source File
SOURCE=..\common\util_sig.c
# End Source File
# Begin Source File
SOURCE=..\crypto\aes_method.c
# End Source File
# Begin Source File
SOURCE=..\crypto\crypto.c
# End Source File
# Begin Source File
SOURCE=..\crypto\mersenne\mt19937db.c
# End Source File
# Begin Source File
SOURCE=..\crypto\rijndael\rijndael-alg-fst.c
# End Source File
# Begin Source File
SOURCE=..\crypto\rijndael\rijndael-api-fst.c
# End Source File
# Begin Source File
SOURCE=..\cxx\cxx_db.cpp
# End Source File
# Begin Source File
SOURCE=..\cxx\cxx_dbc.cpp
# End Source File
# Begin Source File
SOURCE=..\cxx\cxx_dbt.cpp
# End Source File
# Begin Source File
SOURCE=..\cxx\cxx_env.cpp
# End Source File
# Begin Source File
SOURCE=..\cxx\cxx_except.cpp
# End Source File
# Begin Source File
SOURCE=..\cxx\cxx_lock.cpp
# End Source File
# Begin Source File
SOURCE=..\cxx\cxx_logc.cpp
# End Source File
# Begin Source File
SOURCE=..\cxx\cxx_mpool.cpp
# End Source File
# Begin Source File
SOURCE=..\cxx\cxx_multi.cpp
# End Source File
# Begin Source File
SOURCE=..\cxx\cxx_seq.cpp
# End Source File
# Begin Source File
SOURCE=..\cxx\cxx_txn.cpp
# End Source File
# Begin Source File
SOURCE=..\db\crdel_auto.c
# End Source File
# Begin Source File
SOURCE=..\db\crdel_rec.c
# End Source File
# Begin Source File
SOURCE=..\db\db.c
# End Source File
# Begin Source File
SOURCE=..\db\db_am.c
# End Source File
# Begin Source File
SOURCE=..\db\db_auto.c
# End Source File
# Begin Source File
SOURCE=..\db\db_cam.c
# End Source File
# Begin Source File
SOURCE=..\db\db_conv.c
# End Source File
# Begin Source File
SOURCE=..\db\db_dispatch.c
# End Source File
# Begin Source File
SOURCE=..\db\db_dup.c
# End Source File
# Begin Source File
SOURCE=..\db\db_iface.c
# End Source File
# Begin Source File
SOURCE=..\db\db_join.c
# End Source File
# Begin Source File
SOURCE=..\db\db_meta.c
# End Source File
# Begin Source File
SOURCE=..\db\db_method.c
# End Source File
# Begin Source File
SOURCE=..\db\db_open.c
# End Source File
# Begin Source File
SOURCE=..\db\db_overflow.c
# End Source File
# Begin Source File
SOURCE=..\db\db_ovfl_vrfy.c
# End Source File
# Begin Source File
SOURCE=..\db\db_pr.c
# End Source File
# Begin Source File
SOURCE=..\db\db_rec.c
# End Source File
# Begin Source File
SOURCE=..\db\db_reclaim.c
# End Source File
# Begin Source File
SOURCE=..\db\db_remove.c
# End Source File
# Begin Source File
SOURCE=..\db\db_rename.c
# End Source File
# Begin Source File
SOURCE=..\db\db_ret.c
# End Source File
# Begin Source File
SOURCE=..\db\db_setid.c
# End Source File
# Begin Source File
SOURCE=..\db\db_setlsn.c
# End Source File
# Begin Source File
SOURCE=..\db\db_stati.c
# End Source File
# Begin Source File
SOURCE=..\db\db_truncate.c
# End Source File
# Begin Source File
SOURCE=..\db\db_upg.c
# End Source File
# Begin Source File
SOURCE=..\db\db_upg_opd.c
# End Source File
# Begin Source File
SOURCE=..\db\db_vrfy.c
# End Source File
# Begin Source File
SOURCE=..\db\db_vrfyutil.c
# End Source File
# Begin Source File
SOURCE=..\dbm\dbm.c
# End Source File
# Begin Source File
SOURCE=..\dbreg\dbreg.c
# End Source File
# Begin Source File
SOURCE=..\dbreg\dbreg_auto.c
# End Source File
# Begin Source File
SOURCE=..\dbreg\dbreg_rec.c
# End Source File
# Begin Source File
SOURCE=..\dbreg\dbreg_stat.c
# End Source File
# Begin Source File
SOURCE=..\dbreg\dbreg_util.c
# End Source File
# Begin Source File
SOURCE=..\env\db_salloc.c
# End Source File
# Begin Source File
SOURCE=..\env\db_shash.c
# End Source File
# Begin Source File
SOURCE=..\env\env_file.c
# End Source File
# Begin Source File
SOURCE=..\env\env_method.c
# End Source File
# Begin Source File
SOURCE=..\env\env_open.c
# End Source File
# Begin Source File
SOURCE=..\env\env_recover.c
# End Source File
# Begin Source File
SOURCE=..\env\env_region.c
# End Source File
# Begin Source File
SOURCE=..\env\env_stat.c
# End Source File
# Begin Source File
SOURCE=..\fileops\fileops_auto.c
# End Source File
# Begin Source File
SOURCE=..\fileops\fop_basic.c
# End Source File
# Begin Source File
SOURCE=..\fileops\fop_rec.c
# End Source File
# Begin Source File
SOURCE=..\fileops\fop_util.c
# End Source File
# Begin Source File
SOURCE=..\hash\hash.c
# End Source File
# Begin Source File
SOURCE=..\hash\hash_auto.c
# End Source File
# Begin Source File
SOURCE=..\hash\hash_conv.c
# End Source File
# Begin Source File
SOURCE=..\hash\hash_dup.c
# End Source File
# Begin Source File
SOURCE=..\hash\hash_func.c
# End Source File
# Begin Source File
SOURCE=..\hash\hash_meta.c
# End Source File
# Begin Source File
SOURCE=..\hash\hash_method.c
# End Source File
# Begin Source File
SOURCE=..\hash\hash_open.c
# End Source File
# Begin Source File
SOURCE=..\hash\hash_page.c
# End Source File
# Begin Source File
SOURCE=..\hash\hash_rec.c
# End Source File
# Begin Source File
SOURCE=..\hash\hash_reclaim.c
# End Source File
# Begin Source File
SOURCE=..\hash\hash_stat.c
# End Source File
# Begin Source File
SOURCE=..\hash\hash_upgrade.c
# End Source File
# Begin Source File
SOURCE=..\hash\hash_verify.c
# End Source File
# Begin Source File
SOURCE=..\hmac\hmac.c
# End Source File
# Begin Source File
SOURCE=..\hmac\sha1.c
# End Source File
# Begin Source File
SOURCE=..\hsearch\hsearch.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_deadlock.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_id.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_list.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_method.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_region.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_stat.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_timer.c
# End Source File
# Begin Source File
SOURCE=..\lock\lock_util.c
# End Source File
# Begin Source File
SOURCE=..\log\log.c
# End Source File
# Begin Source File
SOURCE=..\log\log_archive.c
# End Source File
# Begin Source File
SOURCE=..\log\log_compare.c
# End Source File
# Begin Source File
SOURCE=..\log\log_get.c
# End Source File
# Begin Source File
SOURCE=..\log\log_method.c
# End Source File
# Begin Source File
SOURCE=..\log\log_put.c
# End Source File
# Begin Source File
SOURCE=..\log\log_stat.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_alloc.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_bh.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_fget.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_fmethod.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_fopen.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_fput.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_fset.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_method.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_region.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_register.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_stat.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_sync.c
# End Source File
# Begin Source File
SOURCE=..\mp\mp_trickle.c
# End Source File
# Begin Source File
SOURCE=..\mutex\mut_win32.c
# End Source File
# Begin Source File
SOURCE=..\mutex\mutex.c
# End Source File
# Begin Source File
SOURCE=..\os\os_alloc.c
# End Source File
# Begin Source File
SOURCE=..\os\os_id.c
# End Source File
# Begin Source File
SOURCE=..\os\os_method.c
# End Source File
# Begin Source File
SOURCE=..\os\os_oflags.c
# End Source File
# Begin Source File
SOURCE=..\os\os_region.c
# End Source File
# Begin Source File
SOURCE=..\os\os_root.c
# End Source File
# Begin Source File
SOURCE=..\os\os_rpath.c
# End Source File
# Begin Source File
SOURCE=..\os\os_tmpdir.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_abs.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_clock.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_config.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_dir.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_errno.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_fid.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_fsync.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_handle.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_map.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_open.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_rename.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_rw.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_seek.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_sleep.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_spin.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_stat.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_truncate.c
# End Source File
# Begin Source File
SOURCE=..\os_win32\os_unlink.c
# End Source File
# Begin Source File
SOURCE=..\qam\qam.c
# End Source File
# Begin Source File
SOURCE=..\qam\qam_auto.c
# End Source File
# Begin Source File
SOURCE=..\qam\qam_conv.c
# End Source File
# Begin Source File
SOURCE=..\qam\qam_files.c
# End Source File
# Begin Source File
SOURCE=..\qam\qam_method.c
# End Source File
# Begin Source File
SOURCE=..\qam\qam_open.c
# End Source File
# Begin Source File
SOURCE=..\qam\qam_rec.c
# End Source File
# Begin Source File
SOURCE=..\qam\qam_stat.c
# End Source File
# Begin Source File
SOURCE=..\qam\qam_upgrade.c
# End Source File
# Begin Source File
SOURCE=..\qam\qam_verify.c
# End Source File
# Begin Source File
SOURCE=..\rep\rep_auto.c
# End Source File
# Begin Source File
SOURCE=..\rep\rep_backup.c
# End Source File
# Begin Source File
SOURCE=..\rep\rep_method.c
# End Source File
# Begin Source File
SOURCE=..\rep\rep_record.c
# End Source File
# Begin Source File
SOURCE=..\rep\rep_region.c
# End Source File
# Begin Source File
SOURCE=..\rep\rep_stat.c
# End Source File
# Begin Source File
SOURCE=..\rep\rep_util.c
# End Source File
# Begin Source File
SOURCE=..\sequence\seq_stat.c
# End Source File
# Begin Source File
SOURCE=..\sequence\sequence.c
# End Source File
# Begin Source File
SOURCE=..\txn\txn.c
# End Source File
# Begin Source File
SOURCE=..\txn\txn_auto.c
# End Source File
# Begin Source File
SOURCE=..\txn\txn_method.c
# End Source File
# Begin Source File
SOURCE=..\txn\txn_rec.c
# End Source File
# Begin Source File
SOURCE=..\txn\txn_recover.c
# End Source File
# Begin Source File
SOURCE=..\txn\txn_region.c
# End Source File
# Begin Source File
SOURCE=..\txn\txn_stat.c
# End Source File
# Begin Source File
SOURCE=..\txn\txn_util.c
# End Source File
# Begin Source File
SOURCE=..\xa\xa.c
# End Source File
# Begin Source File
SOURCE=..\xa\xa_db.c
# End Source File
# Begin Source File
SOURCE=..\xa\xa_map.c
# End Source File
# End Target
# End Project

148
db/build_win64/db_dump.dsp Normal file
View File

@ -0,0 +1,148 @@
# Microsoft Developer Studio Project File - Name="db_dump" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=db_dump - Win32 Debug Static
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "db_dump.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "db_dump.mak" CFG="db_dump - Win32 Debug Static"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "db_dump - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "db_dump - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE "db_dump - Win32 Release Static" (based on "Win32 (x86) Console Application")
!MESSAGE "db_dump - Win32 Debug Static" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "db_dump - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /machine:IA64
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:IA64 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "db_dump - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /pdbtype:sept
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /debug /machine:IA64 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "db_dump - Win32 Release Static"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_static"
# PROP Intermediate_Dir "Release_static"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:IA64
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:IA64
!ELSEIF "$(CFG)" == "db_dump - Win32 Debug Static"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug_static"
# PROP Intermediate_Dir "Debug_static"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MTd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /fixed:no
!ENDIF
# Begin Target
# Name "db_dump - Win32 Release"
# Name "db_dump - Win32 Debug"
# Name "db_dump - Win32 Release Static"
# Name "db_dump - Win32 Debug Static"
# Begin Source File
SOURCE=..\db_dump\db_dump.c
# End Source File
# Begin Source File
SOURCE=..\clib\getopt.c
# End Source File
# End Target
# End Project

588
db/build_win64/db_int.h Normal file
View File

@ -0,0 +1,588 @@
/* DO NOT EDIT: automatically built by dist/s_win32. */
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1996-2004
* Sleepycat Software. All rights reserved.
*
* $Id: db_int.h,v 11.17 2004/10/14 15:32:29 bostic Exp $
*/
#ifndef _DB_INTERNAL_H_
#define _DB_INTERNAL_H_
/*******************************************************
* System includes, db.h, a few general DB includes. The DB includes are
* here because it's OK if db_int.h includes queue structure declarations.
*******************************************************/
#ifndef NO_SYSTEM_INCLUDES
#if defined(STDC_HEADERS) || defined(__cplusplus)
#include <stdarg.h>
#else
#include <varargs.h>
#endif
#include <errno.h>
#endif
#include "db.h"
#include "dbinc/queue.h"
#include "dbinc/shqueue.h"
#if defined(__cplusplus)
extern "C" {
#endif
/*******************************************************
* General purpose constants and macros.
*******************************************************/
#ifndef UINT16_MAX
#define UINT16_MAX 65535 /* Maximum 16-bit unsigned. */
#endif
#ifndef UINT32_MAX
#define UINT32_MAX 4294967295U /* Maximum 32-bit unsigned. */
#endif
#if defined(HAVE_LONG_LONG) && defined(HAVE_UNSIGNED_LONG_LONG)
#undef INT64_MAX
#undef INT64_MIN
#undef UINT64_MAX
#ifdef DB_WIN32
#define INT64_MAX _I64_MAX
#define INT64_MIN _I64_MIN
#define UINT64_MAX _UI64_MAX
#define INT64_FMT "%l64d"
#define UINT64_FMT "%l64u"
#else
/*
* Override the system's 64-bit min/max constants. AIX's 32-bit compiler can
* handle 64-bit values, but the system's constants don't include the LL/ULL
* suffix, and so can't be compiled using the 32-bit compiler.
*/
#define INT64_MAX 9223372036854775807LL
#define INT64_MIN (-INT64_MAX-1)
#define UINT64_MAX 18446744073709551615ULL
#define INT64_FMT "%lld"
#define UINT64_FMT "%llu"
#endif /* DB_WIN32 */
#endif /* HAVE_LONG_LONG && HAVE_UNSIGNED_LONG_LONG */
#define MEGABYTE 1048576
#define GIGABYTE 1073741824
#define MS_PER_SEC 1000 /* Milliseconds in a second. */
#define USEC_PER_MS 1000 /* Microseconds in a millisecond. */
#define RECNO_OOB 0 /* Illegal record number. */
/* Test for a power-of-two (tests true for zero, which doesn't matter here). */
#define POWER_OF_TWO(x) (((x) & ((x) - 1)) == 0)
/* Test for valid page sizes. */
#define DB_MIN_PGSIZE 0x000200 /* Minimum page size (512). */
#define DB_MAX_PGSIZE 0x010000 /* Maximum page size (65536). */
#define IS_VALID_PAGESIZE(x) \
(POWER_OF_TWO(x) && (x) >= DB_MIN_PGSIZE && ((x) <= DB_MAX_PGSIZE))
/* Minimum number of pages cached, by default. */
#define DB_MINPAGECACHE 16
/*
* If we are unable to determine the underlying filesystem block size, use
* 8K on the grounds that most OS's use less than 8K for a VM page size.
*/
#define DB_DEF_IOSIZE (8 * 1024)
/* Align an integer to a specific boundary. */
#undef DB_ALIGN
#define DB_ALIGN(v, bound) \
(((v) + (bound) - 1) & ~(((uintmax_t)bound) - 1))
/* Increment a pointer to a specific boundary. */
#undef ALIGNP_INC
#define ALIGNP_INC(p, bound) \
(void *)(((uintptr_t)(p) + (bound) - 1) & ~(((uintptr_t)bound) - 1))
/* Decrement a pointer to a specific boundary. */
#undef ALIGNP_DEC
#define ALIGNP_DEC(p, bound) \
(void *)((uintptr_t)(p) & ~(((uintptr_t)bound) - 1))
/*
* Print an address as a u_long (a u_long is the largest type we can print
* portably). Most 64-bit systems have made longs 64-bits, so this should
* work.
*/
#define P_TO_ULONG(p) ((u_long)(uintptr_t)(p))
/*
* Convert a pointer to a small integral value.
*
* The (u_int16_t)(uintptr_t) cast avoids warnings: the (uintptr_t) cast
* converts the value to an integral type, and the (u_int16_t) cast converts
* it to a small integral type so we don't get complaints when we assign the
* final result to an integral type smaller than uintptr_t.
*/
#define P_TO_UINT32(p) ((u_int32_t)(uintptr_t)(p))
#define P_TO_UINT16(p) ((u_int16_t)(uintptr_t)(p))
/*
* There are several on-page structures that are declared to have a number of
* fields followed by a variable length array of items. The structure size
* without including the variable length array or the address of the first of
* those elements can be found using SSZ.
*
* This macro can also be used to find the offset of a structure element in a
* structure. This is used in various places to copy structure elements from
* unaligned memory references, e.g., pointers into a packed page.
*
* There are two versions because compilers object if you take the address of
* an array.
*/
#undef SSZ
#define SSZ(name, field) P_TO_UINT16(&(((name *)0)->field))
#undef SSZA
#define SSZA(name, field) P_TO_UINT16(&(((name *)0)->field[0]))
/* Structure used to print flag values. */
typedef struct __fn {
u_int32_t mask; /* Flag value. */
const char *name; /* Flag name. */
} FN;
/* Set, clear and test flags. */
#define FLD_CLR(fld, f) (fld) &= ~(f)
#define FLD_ISSET(fld, f) ((fld) & (f))
#define FLD_SET(fld, f) (fld) |= (f)
#define F_CLR(p, f) (p)->flags &= ~(f)
#define F_ISSET(p, f) ((p)->flags & (f))
#define F_SET(p, f) (p)->flags |= (f)
#define LF_CLR(f) ((flags) &= ~(f))
#define LF_ISSET(f) ((flags) & (f))
#define LF_SET(f) ((flags) |= (f))
/*
* Calculate a percentage. The values can overflow 32-bit integer arithmetic
* so we use floating point.
*
* When calculating a bytes-vs-page size percentage, we're getting the inverse
* of the percentage in all cases, that is, we want 100 minus the percentage we
* calculate.
*/
#define DB_PCT(v, total) \
((int)((total) == 0 ? 0 : ((double)(v) * 100) / (total)))
#define DB_PCT_PG(v, total, pgsize) \
((int)((total) == 0 ? 0 : \
100 - ((double)(v) * 100) / ((total) * (pgsize))))
/*
* Structure used for callback message aggregation.
*
* Display values in XXX_stat_print calls.
*/
typedef struct __db_msgbuf {
char *buf; /* Heap allocated buffer. */
char *cur; /* Current end of message. */
size_t len; /* Allocated length of buffer. */
} DB_MSGBUF;
#define DB_MSGBUF_INIT(a) do { \
(a)->buf = (a)->cur = NULL; \
(a)->len = 0; \
} while (0)
#define DB_MSGBUF_FLUSH(dbenv, a) do { \
if ((a)->buf != NULL) { \
if ((a)->cur != (a)->buf) \
__db_msg(dbenv, "%s", (a)->buf); \
__os_free(dbenv, (a)->buf); \
DB_MSGBUF_INIT(a); \
} \
} while (0)
#define STAT_FMT(msg, fmt, type, v) do { \
DB_MSGBUF __mb; \
DB_MSGBUF_INIT(&__mb); \
__db_msgadd(dbenv, &__mb, fmt, (type)(v)); \
__db_msgadd(dbenv, &__mb, "\t%s", msg); \
DB_MSGBUF_FLUSH(dbenv, &__mb); \
} while (0)
#define STAT_HEX(msg, v) \
__db_msg(dbenv, "%#lx\t%s", (u_long)(v), msg)
#define STAT_ISSET(msg, p) \
__db_msg(dbenv, "%sSet\t%s", (p) == NULL ? "!" : " ", msg)
#define STAT_LONG(msg, v) \
__db_msg(dbenv, "%ld\t%s", (long)(v), msg)
#define STAT_LSN(msg, lsnp) \
__db_msg(dbenv, "%lu/%lu\t%s", \
(u_long)(lsnp)->file, (u_long)(lsnp)->offset, msg)
#define STAT_STRING(msg, p) do { \
const char *__p = p; /* p may be a function call. */ \
__db_msg(dbenv, "%s\t%s", __p == NULL ? "!Set" : __p, msg); \
} while (0)
#define STAT_ULONG(msg, v) \
__db_msg(dbenv, "%lu\t%s", (u_long)(v), msg)
/*******************************************************
* API return values
*******************************************************/
/*
* Return values that are OK for each different call. Most calls have a
* standard 'return of 0 is only OK value', but some, like db->get have
* DB_NOTFOUND as a return value, but it really isn't an error.
*/
#define DB_RETOK_STD(ret) ((ret) == 0)
#define DB_RETOK_DBCDEL(ret) ((ret) == 0 || (ret) == DB_KEYEMPTY || \
(ret) == DB_NOTFOUND)
#define DB_RETOK_DBCGET(ret) ((ret) == 0 || (ret) == DB_KEYEMPTY || \
(ret) == DB_NOTFOUND)
#define DB_RETOK_DBCPUT(ret) ((ret) == 0 || (ret) == DB_KEYEXIST || \
(ret) == DB_NOTFOUND)
#define DB_RETOK_DBDEL(ret) DB_RETOK_DBCDEL(ret)
#define DB_RETOK_DBGET(ret) DB_RETOK_DBCGET(ret)
#define DB_RETOK_DBPUT(ret) ((ret) == 0 || (ret) == DB_KEYEXIST)
#define DB_RETOK_LGGET(ret) ((ret) == 0 || (ret) == DB_NOTFOUND)
#define DB_RETOK_MPGET(ret) ((ret) == 0 || (ret) == DB_PAGE_NOTFOUND)
#define DB_RETOK_REPPMSG(ret) ((ret) == 0 || \
(ret) == DB_REP_ISPERM || \
(ret) == DB_REP_NEWMASTER || \
(ret) == DB_REP_NEWSITE || \
(ret) == DB_REP_NOTPERM || \
(ret) == DB_REP_STARTUPDONE)
/* Find a reasonable operation-not-supported error. */
#ifdef EOPNOTSUPP
#define DB_OPNOTSUP EOPNOTSUPP
#else
#ifdef ENOTSUP
#define DB_OPNOTSUP ENOTSUP
#else
#define DB_OPNOTSUP EINVAL
#endif
#endif
/*******************************************************
* Files.
*******************************************************/
/*
* We use 1024 as the maximum path length. It's too hard to figure out what
* the real path length is, as it was traditionally stored in <sys/param.h>,
* and that file isn't always available.
*/
#undef MAXPATHLEN
#define MAXPATHLEN 1024
#define PATH_DOT "." /* Current working directory. */
/* Path separator character(s). */
#define PATH_SEPARATOR "\\/:"
/*******************************************************
* Environment.
*******************************************************/
/* Type passed to __db_appname(). */
typedef enum {
DB_APP_NONE=0, /* No type (region). */
DB_APP_DATA, /* Data file. */
DB_APP_LOG, /* Log file. */
DB_APP_TMP /* Temporary file. */
} APPNAME;
/*
* CDB_LOCKING CDB product locking.
* CRYPTO_ON Security has been configured.
* LOCKING_ON Locking has been configured.
* LOGGING_ON Logging has been configured.
* MPOOL_ON Memory pool has been configured.
* REP_ON Replication has been configured.
* RPC_ON RPC has been configured.
* TXN_ON Transactions have been configured.
*/
#define CDB_LOCKING(dbenv) F_ISSET(dbenv, DB_ENV_CDB)
#define CRYPTO_ON(dbenv) ((dbenv)->crypto_handle != NULL)
#define LOCKING_ON(dbenv) ((dbenv)->lk_handle != NULL)
#define LOGGING_ON(dbenv) ((dbenv)->lg_handle != NULL)
#define MPOOL_ON(dbenv) ((dbenv)->mp_handle != NULL)
#define REP_ON(dbenv) ((dbenv)->rep_handle != NULL)
#define RPC_ON(dbenv) ((dbenv)->cl_handle != NULL)
#define TXN_ON(dbenv) ((dbenv)->tx_handle != NULL)
/*
* STD_LOCKING Standard locking, that is, locking was configured and CDB
* was not. We do not do locking in off-page duplicate trees,
* so we check for that in the cursor first.
*/
#define STD_LOCKING(dbc) \
(!F_ISSET(dbc, DBC_OPD) && \
!CDB_LOCKING((dbc)->dbp->dbenv) && LOCKING_ON((dbc)->dbp->dbenv))
/*
* IS_RECOVERING: The system is running recovery.
*/
#define IS_RECOVERING(dbenv) \
(LOGGING_ON(dbenv) && \
F_ISSET((DB_LOG *)(dbenv)->lg_handle, DBLOG_RECOVER))
/* Initialization methods are often illegal before/after open is called. */
#define ENV_ILLEGAL_AFTER_OPEN(dbenv, name) \
if (F_ISSET((dbenv), DB_ENV_OPEN_CALLED)) \
return (__db_mi_open(dbenv, name, 1));
#define ENV_ILLEGAL_BEFORE_OPEN(dbenv, name) \
if (!F_ISSET((dbenv), DB_ENV_OPEN_CALLED)) \
return (__db_mi_open(dbenv, name, 0));
/* We're not actually user hostile, honest. */
#define ENV_REQUIRES_CONFIG(dbenv, handle, i, flags) \
if (handle == NULL) \
return (__db_env_config(dbenv, i, flags));
#define ENV_NOT_CONFIGURED(dbenv, handle, i, flags) \
if (F_ISSET((dbenv), DB_ENV_OPEN_CALLED)) \
ENV_REQUIRES_CONFIG(dbenv, handle, i, flags)
/*******************************************************
* Database Access Methods.
*******************************************************/
/*
* DB_IS_THREADED --
* The database handle is free-threaded (was opened with DB_THREAD).
*/
#define DB_IS_THREADED(dbp) \
((dbp)->mutexp != NULL)
/* Initialization methods are often illegal before/after open is called. */
#define DB_ILLEGAL_AFTER_OPEN(dbp, name) \
if (F_ISSET((dbp), DB_AM_OPEN_CALLED)) \
return (__db_mi_open((dbp)->dbenv, name, 1));
#define DB_ILLEGAL_BEFORE_OPEN(dbp, name) \
if (!F_ISSET((dbp), DB_AM_OPEN_CALLED)) \
return (__db_mi_open((dbp)->dbenv, name, 0));
/* Some initialization methods are illegal if environment isn't local. */
#define DB_ILLEGAL_IN_ENV(dbp, name) \
if (!F_ISSET((dbp)->dbenv, DB_ENV_DBLOCAL)) \
return (__db_mi_env((dbp)->dbenv, name));
#define DB_ILLEGAL_METHOD(dbp, flags) { \
int __ret; \
if ((__ret = __dbh_am_chk(dbp, flags)) != 0) \
return (__ret); \
}
/*
* Common DBC->internal fields. Each access method adds additional fields
* to this list, but the initial fields are common.
*/
#define __DBC_INTERNAL \
DBC *opd; /* Off-page duplicate cursor. */\
\
void *page; /* Referenced page. */ \
db_pgno_t root; /* Tree root. */ \
db_pgno_t pgno; /* Referenced page number. */ \
db_indx_t indx; /* Referenced key item index. */\
\
DB_LOCK lock; /* Cursor lock. */ \
db_lockmode_t lock_mode; /* Lock mode. */
struct __dbc_internal {
__DBC_INTERNAL
};
/* Actions that __db_master_update can take. */
typedef enum { MU_REMOVE, MU_RENAME, MU_OPEN } mu_action;
/*
* Access-method-common macro for determining whether a cursor
* has been initialized.
*/
#define IS_INITIALIZED(dbc) ((dbc)->internal->pgno != PGNO_INVALID)
/* Free the callback-allocated buffer, if necessary, hanging off of a DBT. */
#define FREE_IF_NEEDED(sdbp, dbt) \
if (F_ISSET((dbt), DB_DBT_APPMALLOC)) { \
__os_ufree((sdbp)->dbenv, (dbt)->data); \
F_CLR((dbt), DB_DBT_APPMALLOC); \
}
/*
* Use memory belonging to object "owner" to return the results of
* any no-DBT-flag get ops on cursor "dbc".
*/
#define SET_RET_MEM(dbc, owner) \
do { \
(dbc)->rskey = &(owner)->my_rskey; \
(dbc)->rkey = &(owner)->my_rkey; \
(dbc)->rdata = &(owner)->my_rdata; \
} while (0)
/* Use the return-data memory src is currently set to use in dest as well. */
#define COPY_RET_MEM(src, dest) \
do { \
(dest)->rskey = (src)->rskey; \
(dest)->rkey = (src)->rkey; \
(dest)->rdata = (src)->rdata; \
} while (0)
/* Reset the returned-memory pointers to their defaults. */
#define RESET_RET_MEM(dbc) \
do { \
(dbc)->rskey = &(dbc)->my_rskey; \
(dbc)->rkey = &(dbc)->my_rkey; \
(dbc)->rdata = &(dbc)->my_rdata; \
} while (0)
/*******************************************************
* Mpool.
*******************************************************/
/*
* File types for DB access methods. Negative numbers are reserved to DB.
*/
#define DB_FTYPE_SET -1 /* Call pgin/pgout functions. */
#define DB_FTYPE_NOTSET 0 /* Don't call... */
/* Structure used as the DB pgin/pgout pgcookie. */
typedef struct __dbpginfo {
size_t db_pagesize; /* Underlying page size. */
u_int32_t flags; /* Some DB_AM flags needed. */
DBTYPE type; /* DB type */
} DB_PGINFO;
/*******************************************************
* Log.
*******************************************************/
/* Initialize an LSN to 'zero'. */
#define ZERO_LSN(LSN) do { \
(LSN).file = 0; \
(LSN).offset = 0; \
} while (0)
#define IS_ZERO_LSN(LSN) ((LSN).file == 0)
#define IS_INIT_LSN(LSN) ((LSN).file == 1 && (LSN).offset == 0)
#define INIT_LSN(LSN) do { \
(LSN).file = 1; \
(LSN).offset = 0; \
} while (0)
#define MAX_LSN(LSN) do { \
(LSN).file = UINT32_MAX; \
(LSN).offset = UINT32_MAX; \
} while (0)
#define IS_MAX_LSN(LSN) \
((LSN).file == UINT32_MAX && (LSN).offset == UINT32_MAX)
/* If logging is turned off, smash the lsn. */
#define LSN_NOT_LOGGED(LSN) do { \
(LSN).file = 0; \
(LSN).offset = 1; \
} while (0)
#define IS_NOT_LOGGED_LSN(LSN) \
((LSN).file == 0 && (LSN).offset == 1)
/*******************************************************
* Txn.
*******************************************************/
#define DB_NONBLOCK(C) ((C)->txn != NULL && F_ISSET((C)->txn, TXN_NOWAIT))
#define NOWAIT_FLAG(txn) \
((txn) != NULL && F_ISSET((txn), TXN_NOWAIT) ? DB_LOCK_NOWAIT : 0)
#define IS_SUBTRANSACTION(txn) \
((txn) != NULL && (txn)->parent != NULL)
/*******************************************************
* Crypto.
*******************************************************/
#define DB_IV_BYTES 16 /* Bytes per IV */
#define DB_MAC_KEY 20 /* Bytes per MAC checksum */
/*******************************************************
* Secondaries over RPC.
*******************************************************/
#ifdef CONFIG_TEST
/*
* These are flags passed to DB->associate calls by the Tcl API if running
* over RPC. The RPC server will mask out these flags before making the real
* DB->associate call.
*
* These flags must coexist with the valid flags to DB->associate (currently
* DB_AUTO_COMMIT and DB_CREATE). DB_AUTO_COMMIT is in the group of
* high-order shared flags (0xff000000), and DB_CREATE is in the low-order
* group (0x00000fff), so we pick a range in between.
*/
#define DB_RPC2ND_MASK 0x00f00000 /* Reserved bits. */
#define DB_RPC2ND_REVERSEDATA 0x00100000 /* callback_n(0) _s_reversedata. */
#define DB_RPC2ND_NOOP 0x00200000 /* callback_n(1) _s_noop */
#define DB_RPC2ND_CONCATKEYDATA 0x00300000 /* callback_n(2) _s_concatkeydata */
#define DB_RPC2ND_CONCATDATAKEY 0x00400000 /* callback_n(3) _s_concatdatakey */
#define DB_RPC2ND_REVERSECONCAT 0x00500000 /* callback_n(4) _s_reverseconcat */
#define DB_RPC2ND_TRUNCDATA 0x00600000 /* callback_n(5) _s_truncdata */
#define DB_RPC2ND_CONSTANT 0x00700000 /* callback_n(6) _s_constant */
#define DB_RPC2ND_GETZIP 0x00800000 /* sj_getzip */
#define DB_RPC2ND_GETNAME 0x00900000 /* sj_getname */
#endif
/*******************************************************
* Forward structure declarations.
*******************************************************/
struct __db_reginfo_t; typedef struct __db_reginfo_t REGINFO;
struct __db_txnhead; typedef struct __db_txnhead DB_TXNHEAD;
struct __db_txnlist; typedef struct __db_txnlist DB_TXNLIST;
struct __vrfy_childinfo; typedef struct __vrfy_childinfo VRFY_CHILDINFO;
struct __vrfy_dbinfo; typedef struct __vrfy_dbinfo VRFY_DBINFO;
struct __vrfy_pageinfo; typedef struct __vrfy_pageinfo VRFY_PAGEINFO;
#if defined(__cplusplus)
}
#endif
/*******************************************************
* Remaining general DB includes.
*******************************************************/
#include "dbinc/globals.h"
#include "dbinc/debug.h"
#include "dbinc/mutex.h"
#include "dbinc/region.h"
#include "dbinc_auto/mutex_ext.h" /* XXX: Include after region.h. */
#include "dbinc_auto/env_ext.h"
#include "dbinc/os.h"
#include "dbinc/rep.h"
#include "dbinc_auto/clib_ext.h"
#include "dbinc_auto/common_ext.h"
/*******************************************************
* Remaining Log.
* These need to be defined after the general includes
* because they need rep.h from above.
*******************************************************/
/*
* Test if the environment is currently logging changes. If we're in recovery
* or we're a replication client, we don't need to log changes because they're
* already in the log, even though we have a fully functional log system.
*/
#define DBENV_LOGGING(dbenv) \
(LOGGING_ON(dbenv) && !IS_REP_CLIENT(dbenv) && \
(!IS_RECOVERING(dbenv)))
/*
* Test if we need to log a change. By default, we don't log operations without
* associated transactions, unless DIAGNOSTIC, DEBUG_ROP or DEBUG_WOP are on.
* This is because we want to get log records for read/write operations, and, if
* we trying to debug something, more information is always better.
*
* The DBC_RECOVER flag is set when we're in abort, as well as during recovery;
* thus DBC_LOGGING may be false for a particular dbc even when DBENV_LOGGING
* is true.
*
* We explicitly use LOGGING_ON/IS_REP_CLIENT here because we don't want to pull
* in the log headers, which IS_RECOVERING (and thus DBENV_LOGGING) rely on, and
* because DBC_RECOVER should be set anytime IS_RECOVERING would be true.
*/
#if defined(DIAGNOSTIC) || defined(DEBUG_ROP) || defined(DEBUG_WOP)
#define DBC_LOGGING(dbc) \
(LOGGING_ON((dbc)->dbp->dbenv) && \
!F_ISSET((dbc), DBC_RECOVER) && !IS_REP_CLIENT((dbc)->dbp->dbenv))
#else
#define DBC_LOGGING(dbc) \
((dbc)->txn != NULL && LOGGING_ON((dbc)->dbp->dbenv) && \
!F_ISSET((dbc), DBC_RECOVER) && !IS_REP_CLIENT((dbc)->dbp->dbenv))
#endif
#endif /* !_DB_INTERNAL_H_ */

132
db/build_win64/db_java.dsp Normal file
View File

@ -0,0 +1,132 @@
# Microsoft Developer Studio Project File - Name="db_java" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=db_java - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "db_java.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "db_java.mak" CFG="db_java - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "db_java - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "db_java - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "db_java - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /Ob2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "DB_CREATE_DLL" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /machine:IA64
# ADD LINK32 Release/libdb43.lib /nologo /base:"0x13000000" /subsystem:windows /dll /machine:IA64 /out:"Release/libdb_java43.dll"
# Begin Custom Build - Compiling java files using javac
ProjDir=.
InputPath=.\Release\libdb_java43.dll
SOURCE="$(InputPath)"
"force_compilation.txt" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
echo compiling Berkeley DB classes
mkdir "$(OUTDIR)\classes"
javac -O -d "$(OUTDIR)\classes" -classpath "$(OUTDIR)/classes" ..\java\src\com\sleepycat\db\*.java ..\java\src\com\sleepycat\db\internal\*.java ..\java\src\com\sleepycat\bind\*.java ..\java\src\com\sleepycat\bind\serial\*.java ..\java\src\com\sleepycat\bind\tuple\*.java ..\java\src\com\sleepycat\collections\*.java ..\java\src\com\sleepycat\compat\*.java ..\java\src\com\sleepycat\util\*.java
echo compiling examples
mkdir "$(OUTDIR)\classes.ex"
javac -O -d "$(OUTDIR)\classes.ex" -classpath "$(OUTDIR)\classes;$(OUTDIR)\classes.ex" ..\examples_java\src\com\sleepycat\examples\db\*.java ..\examples_java\src\com\sleepycat\examples\db\GettingStarted\*.java ..\examples_java\src\com\sleepycat\examples\collections\access\*.java ..\examples_java\src\com\sleepycat\examples\collections\hello\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\basic\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\entity\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\tuple\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\sentity\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\marshal\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\factory\*.java
echo creating jar files
jar cf "$(OUTDIR)\db.jar" -C "$(OUTDIR)\classes" .
jar cf "$(OUTDIR)\dbexamples.jar" -C "$(OUTDIR)\classes.ex" .
echo Java build finished
# End Custom Build
!ELSEIF "$(CFG)" == "db_java - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 2
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
# ADD CPP /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "DB_CREATE_DLL" /D "_WINDLL" /D "_AFXDLL" /YX"config.h" /FD /c
# SUBTRACT CPP /Fr
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /debug /machine:IA64 /pdbtype:sept
# ADD LINK32 Debug/libdb43d.lib /nologo /base:"0x13000000" /subsystem:windows /dll /debug /machine:IA64 /out:"Debug/libdb_java43d.dll" /fixed:no
# Begin Custom Build - Compiling java files using javac
ProjDir=.
InputPath=.\Debug\libdb_java43d.dll
SOURCE="$(InputPath)"
"force_compilation.txt" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
echo compiling Berkeley DB classes
mkdir "$(OUTDIR)\classes"
javac -g -d "$(OUTDIR)\classes" -classpath "$(OUTDIR)/classes" ..\java\src\com\sleepycat\db\*.java ..\java\src\com\sleepycat\db\internal\*.java ..\java\src\com\sleepycat\bind\*.java ..\java\src\com\sleepycat\bind\serial\*.java ..\java\src\com\sleepycat\bind\tuple\*.java ..\java\src\com\sleepycat\collections\*.java ..\java\src\com\sleepycat\compat\*.java ..\java\src\com\sleepycat\util\*.java
echo compiling examples
mkdir "$(OUTDIR)\classes.ex"
javac -g -d "$(OUTDIR)\classes.ex" -classpath "$(OUTDIR)\classes;$(OUTDIR)\classes.ex" ..\examples_java\src\com\sleepycat\examples\db\*.java ..\examples_java\src\com\sleepycat\examples\db\GettingStarted\*.java ..\examples_java\src\com\sleepycat\examples\collections\access\*.java ..\examples_java\src\com\sleepycat\examples\collections\hello\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\basic\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\entity\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\tuple\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\sentity\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\marshal\*.java ..\examples_java\src\com\sleepycat\examples\collections\ship\factory\*.java
echo creating jar files
jar cf "$(OUTDIR)\db.jar" -C "$(OUTDIR)\classes" .
jar cf "$(OUTDIR)\dbexamples.jar" -C "$(OUTDIR)\classes.ex" .
echo Java build finished
# End Custom Build
!ENDIF
# Begin Target
# Name "db_java - Win32 Release"
# Name "db_java - Win32 Debug"
# Begin Source File
SOURCE=..\libdb_java\db_java_wrap.c
# End Source File
# End Target
# End Project

92
db/build_win64/db_lib.dsp Normal file
View File

@ -0,0 +1,92 @@
# Microsoft Developer Studio Project File - Name="db_lib" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Generic Project" 0x010a
CFG=db_lib - Win32 Debug Static
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "db_lib.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "db_lib.mak" CFG="db_lib - Win32 Debug Static"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "db_lib - Win32 Release" (based on "Win32 (x86) Generic Project")
!MESSAGE "db_lib - Win32 Debug" (based on "Win32 (x86) Generic Project")
!MESSAGE "db_lib - Win32 Release Static" (based on "Win32 (x86) Generic Project")
!MESSAGE "db_lib - Win32 Debug Static" (based on "Win32 (x86) Generic Project")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
!IF "$(CFG)" == "db_lib - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "db_lib - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "db_lib - Win32 Release Static"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release_static"
# PROP BASE Intermediate_Dir "Release_static"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_static"
# PROP Intermediate_Dir "Release_static"
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "db_lib - Win32 Debug Static"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug_static"
# PROP BASE Intermediate_Dir "Debug_Static"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug_static"
# PROP Intermediate_Dir "Debug_Static"
# PROP Target_Dir ""
!ENDIF
# Begin Target
# Name "db_lib - Win32 Release"
# Name "db_lib - Win32 Debug"
# Name "db_lib - Win32 Release Static"
# Name "db_lib - Win32 Debug Static"
# End Target
# End Project

148
db/build_win64/db_load.dsp Normal file
View File

@ -0,0 +1,148 @@
# Microsoft Developer Studio Project File - Name="db_load" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=db_load - Win32 Debug Static
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "db_load.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "db_load.mak" CFG="db_load - Win32 Debug Static"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "db_load - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "db_load - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE "db_load - Win32 Release Static" (based on "Win32 (x86) Console Application")
!MESSAGE "db_load - Win32 Debug Static" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "db_load - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /machine:IA64
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:IA64 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "db_load - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /pdbtype:sept
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /debug /machine:IA64 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "db_load - Win32 Release Static"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_static"
# PROP Intermediate_Dir "Release_static"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:IA64
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:IA64
!ELSEIF "$(CFG)" == "db_load - Win32 Debug Static"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug_static"
# PROP Intermediate_Dir "Debug_static"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MTd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /fixed:no
!ENDIF
# Begin Target
# Name "db_load - Win32 Release"
# Name "db_load - Win32 Debug"
# Name "db_load - Win32 Release Static"
# Name "db_load - Win32 Debug Static"
# Begin Source File
SOURCE=..\db_load\db_load.c
# End Source File
# Begin Source File
SOURCE=..\clib\getopt.c
# End Source File
# End Target
# End Project

224
db/build_win64/db_perf.dsp Normal file
View File

@ -0,0 +1,224 @@
# Microsoft Developer Studio Project File - Name="db_perf" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=db_perf - Win32 Debug Static
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "db_perf.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "db_perf.mak" CFG="db_perf - Win32 Debug Static"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "db_perf - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "db_perf - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE "db_perf - Win32 Release Static" (based on "Win32 (x86) Console Application")
!MESSAGE "db_perf - Win32 Debug Static" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "db_perf - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /machine:IA64
# ADD LINK32 Release/libdb43.lib /nologo /subsystem:console /machine:IA64 /nodefaultlib:"libcmt"
!ELSEIF "$(CFG)" == "db_perf - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /pdbtype:sept
# ADD LINK32 Debug/libdb43d.lib /nologo /subsystem:console /debug /machine:IA64 /nodefaultlib:"libcmtd" /fixed:no
!ELSEIF "$(CFG)" == "db_perf - Win32 Release Static"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_static"
# PROP Intermediate_Dir "Release_static"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Release_static/libdb43.lib /nologo /subsystem:console /machine:IA64
# ADD LINK32 Release_static/libdb43s.lib /nologo /subsystem:console /machine:IA64
!ELSEIF "$(CFG)" == "db_perf - Win32 Debug Static"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug_static"
# PROP Intermediate_Dir "Debug_static"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MTd /W3 /GX /Z7 /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 Debug_static/libdb43d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /fixed:no
# ADD LINK32 Debug_static/libdb43sd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:IA64 /fixed:no
!ENDIF
# Begin Target
# Name "db_perf - Win32 Release"
# Name "db_perf - Win32 Debug"
# Name "db_perf - Win32 Release Static"
# Name "db_perf - Win32 Debug Static"
# Begin Source File
SOURCE=..\test_perf\db_perf.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_checkpoint.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_config.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_dbs.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_dead.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_debug.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_file.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_key.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_log.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_misc.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_op.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_parse.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_rand.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_spawn.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_stat.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_sync.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_thread.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_trickle.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_txn.c
# End Source File
# Begin Source File
SOURCE=..\test_perf\perf_util.c
# End Source File
# Begin Source File
SOURCE=..\clib\getopt.c
# End Source File
# End Target
# End Project

Some files were not shown because too many files have changed in this diff Show More