head	1.7;
access;
symbols
	rpm-4_4_8-release:1.6.2.1
	rpm-4_4_7-release:1.6.2.1
	db-4_5_20:1.7
	rpm-4_4_6-release:1.6.2.1
	rpm-4_4_5-release:1.6.2.1
	db-4_4_20:1.7
	rpm-4_4_4-release:1.6.2.1
	db-4_4_16:1.7
	rpm-4_4_3-release:1.6
	db-4_4_11:1.6
	db-4_3_29:1.6
	jbj_before_tklcpatches:1.6
	rpm-4_4_2-release:1.6
	pjones-sparse-experiment:1.6.0.4
	db-4_4_4:1.6
	rpm-4_4_1-release:1.6
	db-4_3_27:1.6
	rpm-4_4-release:1.6
	rpm-4_4:1.6.0.2
	db-4_3_21:1.6
	db-4_3_14:1.6
	db-4_2_52:1.5
	rpm-4_3_1-start:1.5
	rpm-4_3:1.5.0.2
	rpm-4_2_1-release:1.4
	rpm-4_1_1-release:1.4
	rpm-4_2-release:1.4
	rpm-4_2:1.4.0.2
	postmerge-db-4_1_24-release:1.4
	premerge-db-4_1_24-release:1.3
	db-4_1_24-release:1.1.1.4
	pre-db-4_1_24-release:1.1.1.3
	rpm-4_1-release:1.2
	postmerge-db-4_1_17:1.2
	premerge-db-4_1_17:1.2
	db-4_1_17:1.1.1.3
	pre-db-4_1_17:1.1.1.2
	rpm-4_1:1.2.0.2
	rpm-4_0_4-release:1.1.2.1
	jbj-before-beecrypt:1.1.2.1
	rpm-4_0:1.1.0.2
	postmerge-db-4_0_14:1.1.1.2
	premerge-db-4_0_14:1.1.1.2
	db-4_0_14:1.1.1.2
	pre-db-4_0_14:1.1.1.1
	postmerge-db-4_0_7:1.1.1.1
	premerge-db-4_0_7:1.1.1.1
	db-4_0_7:1.1.1.1
	db-3_2_9-vendor:1.1.1;
locks; strict;
comment	@# @;


1.7
date	2005.11.19.18.33.04;	author jbj;	state Exp;
branches;
next	1.6;

1.6
date	2004.10.16.01.32.05;	author jbj;	state Exp;
branches
	1.6.2.1;
next	1.5;

1.5
date	2003.12.15.21.44.26;	author jbj;	state Exp;
branches;
next	1.4;

1.4
date	2002.09.19.21.10.02;	author jbj;	state Exp;
branches;
next	1.3;

1.3
date	2002.08.14.17.24.37;	author jbj;	state Exp;
branches;
next	1.2;

1.2
date	2002.01.17.20.11.42;	author jbj;	state Exp;
branches;
next	1.1;

1.1
date	2001.10.15.03.47.27;	author jbj;	state Exp;
branches
	1.1.1.1
	1.1.2.1;
next	;

1.1.1.1
date	2001.10.15.03.47.27;	author jbj;	state Exp;
branches;
next	1.1.1.2;

1.1.1.2
date	2001.12.06.00.07.40;	author jbj;	state Exp;
branches;
next	1.1.1.3;

1.1.1.3
date	2002.08.14.16.31.59;	author jbj;	state Exp;
branches;
next	1.1.1.4;

1.1.1.4
date	2002.09.19.20.33.54;	author jbj;	state Exp;
branches;
next	;

1.1.2.1
date	2002.01.08.04.07.36;	author jbj;	state Exp;
branches;
next	;

1.6.2.1
date	2005.11.19.19.33.30;	author jbj;	state Exp;
branches;
next	;


desc
@@


1.7
log
@Upgrade to db-4.4.16.
@
text
@#!/usr/bin/perl

use ExtUtils::Constant qw(WriteConstants); 

use constant DEFINE => 'define' ;
use constant STRING => 'string' ;
use constant IGNORE => 'ignore' ;

%constants = (


	#########
	# 2.0.3
	#########

	DBM_INSERT                 => IGNORE,
	DBM_REPLACE                => IGNORE,
	DBM_SUFFIX                 => IGNORE,
	DB_AFTER                   => DEFINE,
	DB_AM_DUP                  => IGNORE,
	DB_AM_INMEM                => IGNORE,
	DB_AM_LOCKING              => IGNORE,
	DB_AM_LOGGING              => IGNORE,
	DB_AM_MLOCAL               => IGNORE,
	DB_AM_PGDEF                => IGNORE,
	DB_AM_RDONLY               => IGNORE,
	DB_AM_RECOVER              => IGNORE,
	DB_AM_SWAP                 => IGNORE,
	DB_AM_TXN                  => IGNORE,
	DB_APP_INIT                => DEFINE,
	DB_BEFORE                  => DEFINE,
	DB_BTREEMAGIC              => DEFINE,
	DB_BTREEVERSION            => DEFINE,
	DB_BT_DELIMITER            => IGNORE,
	DB_BT_EOF                  => IGNORE,
	DB_BT_FIXEDLEN             => IGNORE,
	DB_BT_PAD                  => IGNORE,
	DB_BT_SNAPSHOT             => IGNORE,
	DB_CHECKPOINT              => DEFINE,
	DB_CREATE                  => DEFINE,
	DB_CURRENT                 => DEFINE,
	DB_DBT_INTERNAL            => IGNORE,
	DB_DBT_MALLOC              => IGNORE,
	DB_DBT_PARTIAL             => IGNORE,
	DB_DBT_USERMEM             => IGNORE,
	DB_DELETED                 => DEFINE,
	DB_DELIMITER               => DEFINE,
	DB_DUP                     => DEFINE,
	DB_EXCL                    => DEFINE,
	DB_FIRST                   => DEFINE,
	DB_FIXEDLEN                => DEFINE,
	DB_FLUSH                   => DEFINE,
	DB_HASHMAGIC               => DEFINE,
	DB_HASHVERSION             => DEFINE,
	DB_HS_DIRTYMETA            => IGNORE,
	DB_INCOMPLETE              => DEFINE,
	DB_INIT_LOCK               => DEFINE,
	DB_INIT_LOG                => DEFINE,
	DB_INIT_MPOOL              => DEFINE,
	DB_INIT_TXN                => DEFINE,
	DB_KEYEXIST                => DEFINE,
	DB_KEYFIRST                => DEFINE,
	DB_KEYLAST                 => DEFINE,
	DB_LAST                    => DEFINE,
	DB_LOCKMAGIC               => DEFINE,
	DB_LOCKVERSION             => DEFINE,
	DB_LOCK_DEADLOCK           => DEFINE,
	DB_LOCK_NOTGRANTED         => DEFINE,
	DB_LOCK_NOTHELD            => DEFINE,
	DB_LOCK_NOWAIT             => DEFINE,
	DB_LOCK_RIW_N              => DEFINE,
	DB_LOCK_RW_N               => DEFINE,
	DB_LOGMAGIC                => DEFINE,
	DB_LOGVERSION              => DEFINE,
	DB_MAX_PAGES               => DEFINE,
	DB_MAX_RECORDS             => DEFINE,
	DB_MPOOL_CLEAN             => DEFINE,
	DB_MPOOL_CREATE            => DEFINE,
	DB_MPOOL_DIRTY             => DEFINE,
	DB_MPOOL_DISCARD           => DEFINE,
	DB_MPOOL_LAST              => DEFINE,
	DB_MPOOL_NEW               => DEFINE,
	DB_MPOOL_PRIVATE           => DEFINE,
	DB_MUTEXDEBUG              => DEFINE,
	DB_NEEDSPLIT               => DEFINE,
	DB_NEXT                    => DEFINE,
	DB_NOOVERWRITE             => DEFINE,
	DB_NORECURSE               => DEFINE,
	DB_NOSYNC                  => DEFINE,
	DB_NOTFOUND                => DEFINE,
	DB_PAD                     => DEFINE,
	DB_PREV                    => DEFINE,
	DB_RDONLY                  => DEFINE,
	DB_REGISTERED              => DEFINE,
	DB_RE_MODIFIED             => IGNORE,
	DB_SEQUENTIAL              => DEFINE,
	DB_SET                     => DEFINE,
	DB_SET_RANGE               => DEFINE,
	DB_SNAPSHOT                => DEFINE,
	DB_SWAPBYTES               => DEFINE,
	DB_TEMPORARY               => DEFINE,
	DB_TRUNCATE                => DEFINE,
	DB_TXNMAGIC                => DEFINE,
	DB_TXNVERSION              => DEFINE,
	DB_TXN_BACKWARD_ROLL       => DEFINE,
	DB_TXN_FORWARD_ROLL        => DEFINE,
	DB_TXN_LOCK_2PL            => DEFINE,
	DB_TXN_LOCK_MASK           => DEFINE,
	DB_TXN_LOCK_OPTIMISTIC     => DEFINE,
	DB_TXN_LOG_MASK            => DEFINE,
	DB_TXN_LOG_REDO            => DEFINE,
	DB_TXN_LOG_UNDO            => DEFINE,
	DB_TXN_LOG_UNDOREDO        => DEFINE,
	DB_TXN_OPENFILES           => DEFINE,
	DB_TXN_REDO                => DEFINE,
	DB_TXN_UNDO                => DEFINE,
	DB_USE_ENVIRON             => DEFINE,
	DB_USE_ENVIRON_ROOT        => DEFINE,
	DB_VERSION_MAJOR           => DEFINE,
	DB_VERSION_MINOR           => DEFINE,
	DB_VERSION_PATCH           => DEFINE,
	DB_VERSION_STRING          => STRING,
	_DB_H_                     => IGNORE,
	__BIT_TYPES_DEFINED__      => IGNORE,
	const                      => IGNORE,

	# enum DBTYPE
	DB_BTREE                   => '2.0.3',
	DB_HASH                    => '2.0.3',
	DB_RECNO                   => '2.0.3',
	DB_UNKNOWN                 => '2.0.3',

	# enum db_lockop_t
	DB_LOCK_DUMP               => '2.0.3',
	DB_LOCK_GET                => '2.0.3',
	DB_LOCK_PUT                => '2.0.3',
	DB_LOCK_PUT_ALL            => '2.0.3',
	DB_LOCK_PUT_OBJ            => '2.0.3',

	# enum db_lockmode_t
	DB_LOCK_NG                 => IGNORE, # 2.0.3
	DB_LOCK_READ               => IGNORE, # 2.0.3
	DB_LOCK_WRITE              => IGNORE, # 2.0.3
	DB_LOCK_IREAD              => IGNORE, # 2.0.3
	DB_LOCK_IWRITE             => IGNORE, # 2.0.3
	DB_LOCK_IWR                => IGNORE, # 2.0.3

	# enum ACTION
	FIND                       => IGNORE, # 2.0.3
	ENTER                      => IGNORE, # 2.0.3

	#########
	# 2.1.0
	#########

	DB_NOMMAP                  => DEFINE,

	#########
	# 2.2.6
	#########

	DB_AM_THREAD               => IGNORE,
	DB_ARCH_ABS                => DEFINE,
	DB_ARCH_DATA               => DEFINE,
	DB_ARCH_LOG                => DEFINE,
	DB_LOCK_CONFLICT           => DEFINE,
	DB_LOCK_DEFAULT            => DEFINE,
	DB_LOCK_NORUN              => DEFINE,
	DB_LOCK_OLDEST             => DEFINE,
	DB_LOCK_RANDOM             => DEFINE,
	DB_LOCK_YOUNGEST           => DEFINE,
	DB_RECOVER                 => DEFINE,
	DB_RECOVER_FATAL           => DEFINE,
	DB_THREAD                  => DEFINE,
	DB_TXN_NOSYNC              => DEFINE,

	#########
	# 2.3.0
	#########

	DB_BTREEOLDVER             => DEFINE,
	DB_BT_RECNUM               => IGNORE,
	DB_FILE_ID_LEN             => DEFINE,
	DB_GETREC                  => DEFINE,
	DB_HASHOLDVER              => DEFINE,
	DB_KEYEMPTY                => DEFINE,
	DB_LOGOLDVER               => DEFINE,
	DB_RECNUM                  => DEFINE,
	DB_RECORDCOUNT             => DEFINE,
	DB_RENUMBER                => DEFINE,
	DB_RE_DELIMITER            => IGNORE,
	DB_RE_FIXEDLEN             => IGNORE,
	DB_RE_PAD                  => IGNORE,
	DB_RE_RENUMBER             => IGNORE,
	DB_RE_SNAPSHOT             => IGNORE,

	#########
	# 2.3.10
	#########

	DB_APPEND                  => DEFINE,
	DB_GET_RECNO               => DEFINE,
	DB_SET_RECNO               => DEFINE,
	DB_TXN_CKP                 => DEFINE,

	#########
	# 2.3.11
	#########

	DB_ENV_APPINIT             => DEFINE,
	DB_ENV_STANDALONE          => DEFINE,
	DB_ENV_THREAD              => DEFINE,

	#########
	# 2.3.12
	#########

	DB_FUNC_CALLOC             => IGNORE,
	DB_FUNC_CLOSE              => IGNORE,
	DB_FUNC_DIRFREE            => IGNORE,
	DB_FUNC_DIRLIST            => IGNORE,
	DB_FUNC_EXISTS             => IGNORE,
	DB_FUNC_FREE               => IGNORE,
	DB_FUNC_FSYNC              => IGNORE,
	DB_FUNC_IOINFO             => IGNORE,
	DB_FUNC_MALLOC             => IGNORE,
	DB_FUNC_MAP                => IGNORE,
	DB_FUNC_OPEN               => IGNORE,
	DB_FUNC_READ               => IGNORE,
	DB_FUNC_REALLOC            => IGNORE,
	DB_FUNC_SEEK               => IGNORE,
	DB_FUNC_SLEEP              => IGNORE,
	DB_FUNC_STRDUP             => IGNORE,
	DB_FUNC_UNLINK             => IGNORE,
	DB_FUNC_UNMAP              => IGNORE,
	DB_FUNC_WRITE              => IGNORE,
	DB_FUNC_YIELD              => IGNORE,

	#########
	# 2.3.14
	#########

	DB_TSL_SPINS               => IGNORE,

	#########
	# 2.3.16
	#########

	DB_DBM_HSEARCH             => IGNORE,
	firstkey                   => IGNORE,
	hdestroy                   => IGNORE,

	#########
	# 2.4.10
	#########

	DB_CURLSN                  => DEFINE,
	DB_FUNC_RUNLINK            => IGNORE,
	DB_REGION_ANON             => DEFINE,
	DB_REGION_INIT             => DEFINE,
	DB_REGION_NAME             => DEFINE,
	DB_TXN_LOCK_OPTIMIST       => DEFINE,
	__CURRENTLY_UNUSED         => IGNORE,

	# enum db_status_t
	DB_LSTAT_ABORTED           => IGNORE, # 2.4.10
	DB_LSTAT_ERR               => IGNORE, # 2.4.10
	DB_LSTAT_FREE              => IGNORE, # 2.4.10
	DB_LSTAT_HELD              => IGNORE, # 2.4.10
	DB_LSTAT_NOGRANT           => IGNORE, # 2.4.10
	DB_LSTAT_PENDING           => IGNORE, # 2.4.10
	DB_LSTAT_WAITING           => IGNORE, # 2.4.10

	#########
	# 2.4.14
	#########

	DB_MUTEXLOCKS              => DEFINE,
	DB_PAGEYIELD               => DEFINE,
	__UNUSED_100               => IGNORE,
	__UNUSED_4000              => IGNORE,

	#########
	# 2.5.9
	#########

	DBC_CONTINUE               => IGNORE,
	DBC_KEYSET                 => IGNORE,
	DBC_RECOVER                => IGNORE,
	DBC_RMW                    => IGNORE,
	DB_DBM_ERROR               => IGNORE,
	DB_DUPSORT                 => DEFINE,
	DB_GET_BOTH                => DEFINE,
	DB_JOIN_ITEM               => DEFINE,
	DB_NEXT_DUP                => DEFINE,
	DB_OPFLAGS_MASK            => DEFINE,
	DB_RMW                     => DEFINE,
	DB_RUNRECOVERY             => DEFINE,
	dbmclose                   => IGNORE,

	#########
	# 2.6.4
	#########

	DBC_WRITER                 => IGNORE,
	DB_AM_CDB                  => IGNORE,
	DB_ENV_CDB                 => DEFINE,
	DB_INIT_CDB                => DEFINE,
	DB_LOCK_UPGRADE            => DEFINE,
	DB_WRITELOCK               => DEFINE,

	#########
	# 2.7.1
	#########


	# enum db_lockop_t
	DB_LOCK_INHERIT            => '2.7.1',

	#########
	# 2.7.7
	#########

	DB_FCNTL_LOCKING           => DEFINE,

	#########
	# 3.0.55
	#########

	DBC_WRITECURSOR            => IGNORE,
	DB_AM_DISCARD              => IGNORE,
	DB_AM_SUBDB                => IGNORE,
	DB_BT_REVSPLIT             => IGNORE,
	DB_CONSUME                 => DEFINE,
	DB_CXX_NO_EXCEPTIONS       => DEFINE,
	DB_DBT_REALLOC             => IGNORE,
	DB_DUPCURSOR               => DEFINE,
	DB_ENV_CREATE              => DEFINE,
	DB_ENV_DBLOCAL             => DEFINE,
	DB_ENV_LOCKDOWN            => DEFINE,
	DB_ENV_LOCKING             => DEFINE,
	DB_ENV_LOGGING             => DEFINE,
	DB_ENV_NOMMAP              => DEFINE,
	DB_ENV_OPEN_CALLED         => DEFINE,
	DB_ENV_PRIVATE             => DEFINE,
	DB_ENV_SYSTEM_MEM          => DEFINE,
	DB_ENV_TXN                 => DEFINE,
	DB_ENV_TXN_NOSYNC          => DEFINE,
	DB_ENV_USER_ALLOC          => DEFINE,
	DB_FORCE                   => DEFINE,
	DB_LOCKDOWN                => DEFINE,
	DB_LOCK_RECORD             => DEFINE,
	DB_LOGFILEID_INVALID       => DEFINE,
	DB_MPOOL_NEW_GROUP         => DEFINE,
	DB_NEXT_NODUP              => DEFINE,
	DB_OK_BTREE                => DEFINE,
	DB_OK_HASH                 => DEFINE,
	DB_OK_QUEUE                => DEFINE,
	DB_OK_RECNO                => DEFINE,
	DB_OLD_VERSION             => DEFINE,
	DB_OPEN_CALLED             => DEFINE,
	DB_PAGE_LOCK               => DEFINE,
	DB_POSITION                => DEFINE,
	DB_POSITIONI               => DEFINE,
	DB_PRIVATE                 => DEFINE,
	DB_QAMMAGIC                => DEFINE,
	DB_QAMOLDVER               => DEFINE,
	DB_QAMVERSION              => DEFINE,
	DB_RECORD_LOCK             => DEFINE,
	DB_REVSPLITOFF             => DEFINE,
	DB_SYSTEM_MEM              => DEFINE,
	DB_TEST_POSTLOG            => DEFINE,
	DB_TEST_POSTLOGMETA        => DEFINE,
	DB_TEST_POSTOPEN           => DEFINE,
	DB_TEST_POSTRENAME         => DEFINE,
	DB_TEST_POSTSYNC           => DEFINE,
	DB_TEST_PREOPEN            => DEFINE,
	DB_TEST_PRERENAME          => DEFINE,
	DB_TXN_NOWAIT              => DEFINE,
	DB_TXN_SYNC                => DEFINE,
	DB_UPGRADE                 => DEFINE,
	DB_VERB_CHKPOINT           => DEFINE,
	DB_VERB_DEADLOCK           => DEFINE,
	DB_VERB_RECOVERY           => DEFINE,
	DB_VERB_WAITSFOR           => DEFINE,
	DB_WRITECURSOR             => DEFINE,
	DB_XA_CREATE               => DEFINE,

	# enum DBTYPE
	DB_QUEUE                   => '3.0.55',

	#########
	# 3.1.14
	#########

	DBC_ACTIVE                 => IGNORE,
	DBC_OPD                    => IGNORE,
	DBC_TRANSIENT              => IGNORE,
	DBC_WRITEDUP               => IGNORE,
	DB_AGGRESSIVE              => DEFINE,
	DB_AM_DUPSORT              => IGNORE,
	DB_CACHED_COUNTS           => DEFINE,
	DB_CLIENT                  => DEFINE,
	DB_DBT_DUPOK               => IGNORE,
	DB_DBT_ISSET               => IGNORE,
	DB_ENV_RPCCLIENT           => DEFINE,
	DB_GET_BOTHC               => DEFINE,
	DB_JOIN_NOSORT             => DEFINE,
	DB_NODUPDATA               => DEFINE,
	DB_NOORDERCHK              => DEFINE,
	DB_NOSERVER                => DEFINE,
	DB_NOSERVER_HOME           => DEFINE,
	DB_NOSERVER_ID             => DEFINE,
	DB_ODDFILESIZE             => DEFINE,
	DB_ORDERCHKONLY            => DEFINE,
	DB_PREV_NODUP              => DEFINE,
	DB_PR_HEADERS              => DEFINE,
	DB_PR_PAGE                 => DEFINE,
	DB_PR_RECOVERYTEST         => DEFINE,
	DB_RDWRMASTER              => DEFINE,
	DB_SALVAGE                 => DEFINE,
	DB_VERIFY_BAD              => DEFINE,
	DB_VERIFY_FATAL            => DEFINE,
	DB_VRFY_FLAGMASK           => DEFINE,

	# enum db_recops
	DB_TXN_ABORT               => '3.1.14',
	DB_TXN_BACKWARD_ROLL       => '3.1.14',
	DB_TXN_FORWARD_ROLL        => '3.1.14',
	DB_TXN_OPENFILES           => '3.1.14',

	#########
	# 3.2.9
	#########

	DBC_COMPENSATE             => IGNORE,
	DB_ALREADY_ABORTED         => DEFINE,
	DB_AM_VERIFYING            => IGNORE,
	DB_CDB_ALLDB               => DEFINE,
	DB_CONSUME_WAIT            => DEFINE,
	DB_ENV_CDB_ALLDB           => DEFINE,
	DB_EXTENT                  => DEFINE,
	DB_JAVA_CALLBACK           => DEFINE,
	DB_JOINENV                 => DEFINE,
	DB_LOCK_SWITCH             => DEFINE,
	DB_MPOOL_EXTENT            => DEFINE,
	DB_REGION_MAGIC            => DEFINE,
	DB_VERIFY                  => DEFINE,

	# enum db_lockmode_t
	DB_LOCK_WAIT               => IGNORE, # 3.2.9

	#########
	# 3.3.11
	#########

	DBC_DIRTY_READ             => IGNORE,
	DBC_MULTIPLE               => IGNORE,
	DBC_MULTIPLE_KEY           => IGNORE,
	DB_AM_DIRTY                => IGNORE,
	DB_AM_SECONDARY            => IGNORE,
	DB_COMMIT                  => DEFINE,
	DB_DBT_APPMALLOC           => IGNORE,
	DB_DIRTY_READ              => DEFINE,
	DB_DONOTINDEX              => DEFINE,
	DB_ENV_PANIC_OK            => DEFINE,
	DB_ENV_RPCCLIENT_GIVEN     => DEFINE,
	DB_FAST_STAT               => DEFINE,
	DB_LOCK_MAXLOCKS           => DEFINE,
	DB_LOCK_MINLOCKS           => DEFINE,
	DB_LOCK_MINWRITE           => DEFINE,
	DB_MULTIPLE                => DEFINE,
	DB_MULTIPLE_KEY            => DEFINE,
	DB_PAGE_NOTFOUND           => DEFINE,
	DB_RPC_SERVERPROG          => DEFINE,
	DB_RPC_SERVERVERS          => DEFINE,
	DB_SECONDARY_BAD           => DEFINE,
	DB_SURPRISE_KID            => DEFINE,
	DB_TEST_POSTDESTROY        => DEFINE,
	DB_TEST_PREDESTROY         => DEFINE,
	DB_UPDATE_SECONDARY        => DEFINE,
	DB_XIDDATASIZE             => DEFINE,

	# enum db_recops
	DB_TXN_POPENFILES          => '3.3.11',

	# enum db_lockop_t
	DB_LOCK_UPGRADE_WRITE      => '3.3.11',

	# enum db_lockmode_t
	DB_LOCK_DIRTY              => IGNORE, # 3.3.11
	DB_LOCK_WWRITE             => IGNORE, # 3.3.11

	#########
	# 4.0.14
	#########

	DB_APPLY_LOGREG            => DEFINE,
	DB_CL_WRITER               => DEFINE,
	DB_EID_BROADCAST           => DEFINE,
	DB_EID_INVALID             => DEFINE,
	DB_ENV_NOLOCKING           => DEFINE,
	DB_ENV_NOPANIC             => DEFINE,
	DB_ENV_REGION_INIT         => DEFINE,
	DB_ENV_REP_CLIENT          => DEFINE,
	DB_ENV_REP_LOGSONLY        => DEFINE,
	DB_ENV_REP_MASTER          => DEFINE,
	DB_ENV_YIELDCPU            => DEFINE,
	DB_GET_BOTH_RANGE          => DEFINE,
	DB_LOCK_EXPIRE             => DEFINE,
	DB_LOCK_FREE_LOCKER        => DEFINE,
	DB_LOCK_SET_TIMEOUT        => DEFINE,
	DB_LOGC_BUF_SIZE           => DEFINE,
	DB_LOG_DISK                => DEFINE,
	DB_LOG_LOCKED              => DEFINE,
	DB_LOG_SILENT_ERR          => DEFINE,
	DB_NOLOCKING               => DEFINE,
	DB_NOPANIC                 => DEFINE,
	DB_PANIC_ENVIRONMENT       => DEFINE,
	DB_REP_CLIENT              => DEFINE,
	DB_REP_DUPMASTER           => DEFINE,
	DB_REP_HOLDELECTION        => DEFINE,
	DB_REP_LOGSONLY            => DEFINE,
	DB_REP_MASTER              => DEFINE,
	DB_REP_NEWMASTER           => DEFINE,
	DB_REP_NEWSITE             => DEFINE,
	DB_REP_OUTDATED            => DEFINE,
	DB_REP_PERMANENT           => DEFINE,
	DB_REP_UNAVAIL             => DEFINE,
	DB_SET_LOCK_TIMEOUT        => DEFINE,
	DB_SET_TXN_NOW             => DEFINE,
	DB_SET_TXN_TIMEOUT         => DEFINE,
	DB_STAT_CLEAR              => DEFINE,
	DB_TIMEOUT                 => DEFINE,
	DB_VERB_REPLICATION        => DEFINE,
	DB_YIELDCPU                => DEFINE,
	MP_FLUSH                   => IGNORE,
	MP_OPEN_CALLED             => IGNORE,
	MP_READONLY                => IGNORE,
	MP_UPGRADE                 => IGNORE,
	MP_UPGRADE_FAIL            => IGNORE,
	TXN_CHILDCOMMIT            => IGNORE,
	TXN_COMPENSATE             => IGNORE,
	TXN_DIRTY_READ             => IGNORE,
	TXN_LOCKTIMEOUT            => IGNORE,
	TXN_MALLOC                 => IGNORE,
	TXN_NOSYNC                 => IGNORE,
	TXN_NOWAIT                 => IGNORE,
	TXN_SYNC                   => IGNORE,

	# enum db_recops
	DB_TXN_APPLY               => '4.0.14',

	# enum db_lockop_t
	DB_LOCK_GET_TIMEOUT        => '4.0.14',
	DB_LOCK_PUT_READ           => '4.0.14',
	DB_LOCK_TIMEOUT            => '4.0.14',

	# enum db_status_t
	DB_LSTAT_EXPIRED           => IGNORE, # 4.0.14

	#########
	# 4.1.24
	#########

	DBC_OWN_LID                => IGNORE,
	DB_AM_CHKSUM               => IGNORE,
	DB_AM_CL_WRITER            => IGNORE,
	DB_AM_COMPENSATE           => IGNORE,
	DB_AM_CREATED              => IGNORE,
	DB_AM_CREATED_MSTR         => IGNORE,
	DB_AM_DBM_ERROR            => IGNORE,
	DB_AM_DELIMITER            => IGNORE,
	DB_AM_ENCRYPT              => IGNORE,
	DB_AM_FIXEDLEN             => IGNORE,
	DB_AM_IN_RENAME            => IGNORE,
	DB_AM_OPEN_CALLED          => IGNORE,
	DB_AM_PAD                  => IGNORE,
	DB_AM_RECNUM               => IGNORE,
	DB_AM_RENUMBER             => IGNORE,
	DB_AM_REVSPLITOFF          => IGNORE,
	DB_AM_SNAPSHOT             => IGNORE,
	DB_AUTO_COMMIT             => DEFINE,
	DB_CHKSUM_SHA1             => DEFINE,
	DB_DIRECT                  => DEFINE,
	DB_DIRECT_DB               => DEFINE,
	DB_DIRECT_LOG              => DEFINE,
	DB_ENCRYPT                 => DEFINE,
	DB_ENCRYPT_AES             => DEFINE,
	DB_ENV_AUTO_COMMIT         => DEFINE,
	DB_ENV_DIRECT_DB           => DEFINE,
	DB_ENV_DIRECT_LOG          => DEFINE,
	DB_ENV_FATAL               => DEFINE,
	DB_ENV_OVERWRITE           => DEFINE,
	DB_ENV_TXN_WRITE_NOSYNC    => DEFINE,
	DB_HANDLE_LOCK             => DEFINE,
	DB_LOCK_NOTEXIST           => DEFINE,
	DB_LOCK_REMOVE             => DEFINE,
	DB_NOCOPY                  => DEFINE,
	DB_OVERWRITE               => DEFINE,
	DB_PERMANENT               => DEFINE,
	DB_PRINTABLE               => DEFINE,
	DB_RENAMEMAGIC             => DEFINE,
	DB_TEST_ELECTINIT          => DEFINE,
	DB_TEST_ELECTSEND          => DEFINE,
	DB_TEST_ELECTVOTE1         => DEFINE,
	DB_TEST_ELECTVOTE2         => DEFINE,
	DB_TEST_ELECTWAIT1         => DEFINE,
	DB_TEST_ELECTWAIT2         => DEFINE,
	DB_TEST_SUBDB_LOCKS        => DEFINE,
	DB_TXN_LOCK                => DEFINE,
	DB_TXN_WRITE_NOSYNC        => DEFINE,
	DB_WRITEOPEN               => DEFINE,
	DB_WRNOSYNC                => DEFINE,
	_DB_EXT_PROT_IN_           => IGNORE,

	# enum db_lockop_t
	DB_LOCK_TRADE              => '4.1.24',

	# enum db_status_t
	DB_LSTAT_NOTEXIST          => IGNORE, # 4.1.24

	# enum DB_CACHE_PRIORITY
	DB_PRIORITY_VERY_LOW       => '4.1.24',
	DB_PRIORITY_LOW            => '4.1.24',
	DB_PRIORITY_DEFAULT        => '4.1.24',
	DB_PRIORITY_HIGH           => '4.1.24',
	DB_PRIORITY_VERY_HIGH      => '4.1.24',

	# enum db_recops
	DB_TXN_BACKWARD_ALLOC      => '4.1.24',
	DB_TXN_PRINT               => '4.1.24',

	#########
	# 4.2.50
	#########

	DB_AM_NOT_DURABLE          => IGNORE,
	DB_AM_REPLICATION          => IGNORE,
	DB_ARCH_REMOVE             => DEFINE,
	DB_CHKSUM                  => DEFINE,
	DB_ENV_LOG_AUTOREMOVE      => DEFINE,
	DB_ENV_TIME_NOTGRANTED     => DEFINE,
	DB_ENV_TXN_NOT_DURABLE     => DEFINE,
	DB_FILEOPEN                => DEFINE,
	DB_INIT_REP                => DEFINE,
	DB_LOG_AUTOREMOVE          => DEFINE,
	DB_LOG_CHKPNT              => DEFINE,
	DB_LOG_COMMIT              => DEFINE,
	DB_LOG_NOCOPY              => DEFINE,
	DB_LOG_NOT_DURABLE         => DEFINE,
	DB_LOG_PERM                => DEFINE,
	DB_LOG_WRNOSYNC            => DEFINE,
	DB_MPOOL_NOFILE            => DEFINE,
	DB_MPOOL_UNLINK            => DEFINE,
	DB_NO_AUTO_COMMIT          => DEFINE,
	DB_REP_CREATE              => DEFINE,
	DB_REP_HANDLE_DEAD         => DEFINE,
	DB_REP_ISPERM              => DEFINE,
	DB_REP_NOBUFFER            => DEFINE,
	DB_REP_NOTPERM             => DEFINE,
	DB_RPCCLIENT               => DEFINE,
	DB_TIME_NOTGRANTED         => DEFINE,
	DB_TXN_NOT_DURABLE         => DEFINE,
	DB_debug_FLAG              => DEFINE,
	DB_user_BEGIN              => DEFINE,
	MP_FILEID_SET              => IGNORE,
	TXN_RESTORED               => IGNORE,

	#########
	# 4.3.21
	#########

	DBC_DEGREE_2               => IGNORE,
	DB_AM_INORDER              => IGNORE,
	DB_BUFFER_SMALL            => DEFINE,
	DB_DEGREE_2                => DEFINE,
	DB_DSYNC_LOG               => DEFINE,
	DB_DURABLE_UNKNOWN         => DEFINE,
	DB_ENV_DSYNC_LOG           => DEFINE,
	DB_ENV_LOG_INMEMORY        => DEFINE,
	DB_INORDER                 => DEFINE,
	DB_LOCK_ABORT              => DEFINE,
	DB_LOCK_MAXWRITE           => DEFINE,
	DB_LOG_BUFFER_FULL         => DEFINE,
	DB_LOG_INMEMORY            => DEFINE,
	DB_LOG_RESEND              => DEFINE,
	DB_MPOOL_FREE              => DEFINE,
	DB_REP_EGENCHG             => DEFINE,
	DB_REP_LOGREADY            => DEFINE,
	DB_REP_PAGEDONE            => DEFINE,
	DB_REP_STARTUPDONE         => DEFINE,
	DB_SEQUENCE_VERSION        => DEFINE,
	DB_SEQ_DEC                 => DEFINE,
	DB_SEQ_INC                 => DEFINE,
	DB_SEQ_RANGE_SET           => DEFINE,
	DB_SEQ_WRAP                => DEFINE,
	DB_STAT_ALL                => DEFINE,
	DB_STAT_LOCK_CONF          => DEFINE,
	DB_STAT_LOCK_LOCKERS       => DEFINE,
	DB_STAT_LOCK_OBJECTS       => DEFINE,
	DB_STAT_LOCK_PARAMS        => DEFINE,
	DB_STAT_MEMP_HASH          => DEFINE,
	DB_STAT_SUBSYSTEM          => DEFINE,
	DB_UNREF                   => DEFINE,
	DB_VERSION_MISMATCH        => DEFINE,
	TXN_DEADLOCK               => IGNORE,
	TXN_DEGREE_2               => IGNORE,

	#########
	# 4.3.28
	#########

	DB_SEQUENCE_OLDVER         => DEFINE,

	#########
	# 4.4.9
	#########

	DBC_READ_COMMITTED         => IGNORE,
	DBC_READ_UNCOMMITTED       => IGNORE,
	DB_AM_READ_UNCOMMITTED     => IGNORE,
	DB_ASSOC_IMMUTABLE_KEY     => DEFINE,
	DB_COMPACT_FLAGS           => DEFINE,
	DB_FREELIST_ONLY           => DEFINE,
	DB_FREE_SPACE              => DEFINE,
	DB_IMMUTABLE_KEY           => DEFINE,
	DB_MUTEX_ALLOCATED         => DEFINE,
	DB_MUTEX_LOGICAL_LOCK      => DEFINE,
	DB_MUTEX_SELF_BLOCK        => DEFINE,
	DB_MUTEX_THREAD            => DEFINE,
	DB_READ_COMMITTED          => DEFINE,
	DB_READ_UNCOMMITTED        => DEFINE,
	DB_REGISTER                => DEFINE,
	DB_REP_ANYWHERE            => DEFINE,
	DB_REP_BULKOVF             => DEFINE,
	DB_REP_IGNORE              => DEFINE,
	DB_REP_LOCKOUT             => DEFINE,
	DB_REP_REREQUEST           => DEFINE,
	DB_SEQ_WRAPPED             => DEFINE,
	DB_VERB_REGISTER           => DEFINE,
	REP_CONF_AUTOINIT          => DEFINE,
	REP_CONF_BULK              => DEFINE,
	REP_CONF_DELAYCLIENT       => DEFINE,
	REP_CONF_NOWAIT            => DEFINE,
	TXN_READ_COMMITTED         => IGNORE,
	TXN_READ_UNCOMMITTED       => IGNORE,
	TXN_SYNC_FLAGS             => IGNORE,
	TXN_WRITE_NOSYNC           => IGNORE,

	# enum db_lockmode_t
	DB_LOCK_READ_UNCOMMITTED   => IGNORE, # 4.4.9
	) ;

sub enum_Macro
{
    my $str = shift ;
    my ($major, $minor, $patch) = split /\./, $str ;

    my $macro = 
    "#if (DB_VERSION_MAJOR > $major) || \\\n" .
    "    (DB_VERSION_MAJOR == $major && DB_VERSION_MINOR > $minor) || \\\n" .
    "    (DB_VERSION_MAJOR == $major && DB_VERSION_MINOR == $minor && \\\n" .
    "     DB_VERSION_PATCH >= $patch)\n" ;

    return $macro;

}

sub OutputXS
{

    my @@names = () ;

    foreach my $key (sort keys %constants)
    {
        my $val = $constants{$key} ;
        next if $val eq IGNORE;

        if ($val eq STRING)
          { push @@names, { name => $key, type => "PV" } }
        elsif ($val eq DEFINE)
          { push @@names, $key }
        else
          { push @@names, { name => $key, macro => [enum_Macro($val), "#endif\n"] } }
    }

    warn "Updating constants.xs & constants.h...\n";
    WriteConstants(
              NAME    => BerkeleyDB,
              NAMES   => \@@names,
              C_FILE  => 'constants.h',
              XS_FILE => 'constants.xs',
          ) ;
}

sub OutputPM
{
    my $filename = 'BerkeleyDB.pm';
    warn "Updating $filename...\n";
    open IN, "<$filename" || die "Cannot open $filename: $!\n";
    open OUT, ">$filename.tmp" || die "Cannot open $filename.tmp: $!\n";

    my $START = '@@EXPORT = qw(' ;
    my $START_re = quotemeta $START ;
    my $END = ');';
    my $END_re = quotemeta $END ;

    # skip to the @@EXPORT declaration
    OUTER: while (<IN>)
    {
        if ( /^\s*$START_re/ )
        {
            # skip to the end marker.
            while (<IN>) 
                { last OUTER if /^\s*$END_re/ }
        }
        print OUT ;
    }
    
    print OUT "$START\n";
    foreach my $key (sort keys %constants)
    {
        next if $constants{$key} eq IGNORE;
	print OUT "\t$key\n";
    }
    print OUT "\t$END\n";
    
    while (<IN>)
    {
        print OUT ;
    }

    close IN;
    close OUT;

    rename $filename, "$filename.bak" || die "Cannot rename $filename: $!\n" ;
    rename "$filename.tmp", $filename || die "Cannot rename $filename.tmp: $!\n" ;
}

OutputXS() ;
OutputPM() ;
@


1.6
log
@... and in with the New ...
@
text
@d671 1
a671 1
	# 4.3.12
d710 43
@


1.6.2.1
log
@- upgrade to db-4.4.16.
@
text
@d671 1
a671 1
	# 4.3.21
a709 43
	#########
	# 4.3.28
	#########

	DB_SEQUENCE_OLDVER         => DEFINE,

	#########
	# 4.4.9
	#########

	DBC_READ_COMMITTED         => IGNORE,
	DBC_READ_UNCOMMITTED       => IGNORE,
	DB_AM_READ_UNCOMMITTED     => IGNORE,
	DB_ASSOC_IMMUTABLE_KEY     => DEFINE,
	DB_COMPACT_FLAGS           => DEFINE,
	DB_FREELIST_ONLY           => DEFINE,
	DB_FREE_SPACE              => DEFINE,
	DB_IMMUTABLE_KEY           => DEFINE,
	DB_MUTEX_ALLOCATED         => DEFINE,
	DB_MUTEX_LOGICAL_LOCK      => DEFINE,
	DB_MUTEX_SELF_BLOCK        => DEFINE,
	DB_MUTEX_THREAD            => DEFINE,
	DB_READ_COMMITTED          => DEFINE,
	DB_READ_UNCOMMITTED        => DEFINE,
	DB_REGISTER                => DEFINE,
	DB_REP_ANYWHERE            => DEFINE,
	DB_REP_BULKOVF             => DEFINE,
	DB_REP_IGNORE              => DEFINE,
	DB_REP_LOCKOUT             => DEFINE,
	DB_REP_REREQUEST           => DEFINE,
	DB_SEQ_WRAPPED             => DEFINE,
	DB_VERB_REGISTER           => DEFINE,
	REP_CONF_AUTOINIT          => DEFINE,
	REP_CONF_BULK              => DEFINE,
	REP_CONF_DELAYCLIENT       => DEFINE,
	REP_CONF_NOWAIT            => DEFINE,
	TXN_READ_COMMITTED         => IGNORE,
	TXN_READ_UNCOMMITTED       => IGNORE,
	TXN_SYNC_FLAGS             => IGNORE,
	TXN_WRITE_NOSYNC           => IGNORE,

	# enum db_lockmode_t
	DB_LOCK_READ_UNCOMMITTED   => IGNORE, # 4.4.9
@


1.5
log
@- upgrade to db-4.2.52.
@
text
@d11 1
d13 1
a13 1
	# 2.0.0
d96 1
d101 1
d128 4
a131 4
	DB_BTREE                   => '2.0.0',
	DB_HASH                    => '2.0.0',
	DB_RECNO                   => '2.0.0',
	DB_UNKNOWN                 => '2.0.0',
d134 5
a138 5
	DB_LOCK_DUMP               => '2.0.0',
	DB_LOCK_GET                => '2.0.0',
	DB_LOCK_PUT                => '2.0.0',
	DB_LOCK_PUT_ALL            => '2.0.0',
	DB_LOCK_PUT_OBJ            => '2.0.0',
d141 6
a146 6
	DB_LOCK_NG                 => IGNORE, # 2.0.0
	DB_LOCK_READ               => IGNORE, # 2.0.0
	DB_LOCK_WRITE              => IGNORE, # 2.0.0
	DB_LOCK_IREAD              => IGNORE, # 2.0.0
	DB_LOCK_IWRITE             => IGNORE, # 2.0.0
	DB_LOCK_IWR                => IGNORE, # 2.0.0
d149 2
a150 9
	FIND                       => IGNORE, # 2.0.0
	ENTER                      => IGNORE, # 2.0.0

	#########
	# 2.0.3
	#########

	DB_SEQUENTIAL              => DEFINE,
	DB_TEMPORARY               => DEFINE,
d198 1
a198 1
	# 2.3.1
d201 1
a203 11

	#########
	# 2.3.3
	#########

	DB_APPEND                  => DEFINE,

	#########
	# 2.3.6
	#########

d284 1
a284 1
	# 2.5.2
d292 1
d294 1
a301 7
	# 2.5.9
	#########

	DB_DUPSORT                 => DEFINE,
	DB_JOIN_ITEM               => DEFINE,

	#########
d393 1
a393 1
	# 3.1.12
d427 4
a430 4
	DB_TXN_ABORT               => '3.1.12',
	DB_TXN_BACKWARD_ROLL       => '3.1.12',
	DB_TXN_FORWARD_ROLL        => '3.1.12',
	DB_TXN_OPENFILES           => '3.1.12',
d433 1
a433 1
	# 3.2.3
d437 1
d440 1
d443 1
a447 1
	DB_UNRESOLVED_CHILD        => DEFINE,
a449 17
	# enum db_notices
	DB_NOTICE_LOGFILE_CHANGED  => IGNORE, # 3.2.3

	#########
	# 3.2.6
	#########

	DB_ALREADY_ABORTED         => DEFINE,
	DB_CONSUME_WAIT            => DEFINE,
	DB_JAVA_CALLBACK           => DEFINE,
	DB_TEST_POSTEXTDELETE      => DEFINE,
	DB_TEST_POSTEXTOPEN        => DEFINE,
	DB_TEST_POSTEXTUNLINK      => DEFINE,
	DB_TEST_PREEXTDELETE       => DEFINE,
	DB_TEST_PREEXTOPEN         => DEFINE,
	DB_TEST_PREEXTUNLINK       => DEFINE,

d451 1
a451 1
	DB_LOCK_WAIT               => IGNORE, # 3.2.6
d454 1
a454 1
	# 3.3.4
d477 4
d485 1
a485 1
	DB_TXN_POPENFILES          => '3.3.4',
d488 1
a488 1
	DB_LOCK_UPGRADE_WRITE      => '3.3.4',
d491 2
a492 2
	DB_LOCK_DIRTY              => IGNORE, # 3.3.4
	DB_LOCK_WWRITE             => IGNORE, # 3.3.4
d495 1
a495 10
	# 3.3.11
	#########

	DB_SECONDARY_BAD           => DEFINE,
	DB_SURPRISE_KID            => DEFINE,
	DB_TEST_POSTDESTROY        => DEFINE,
	DB_TEST_PREDESTROY         => DEFINE,

	#########
	# 4.0.7
a498 1
	DB_BROADCAST_EID           => DEFINE,
d500 2
a509 1
	DB_INVALID_EID             => DEFINE,
d535 1
d552 1
a552 1
	DB_TXN_APPLY               => '4.0.7',
d555 3
a557 3
	DB_LOCK_GET_TIMEOUT        => '4.0.7',
	DB_LOCK_PUT_READ           => '4.0.7',
	DB_LOCK_TIMEOUT            => '4.0.7',
d560 1
a560 9
	DB_LSTAT_EXPIRED           => IGNORE, # 4.0.7

	#########
	# 4.0.14
	#########

	DB_EID_BROADCAST           => DEFINE,
	DB_EID_INVALID             => DEFINE,
	DB_VERB_REPLICATION        => DEFINE,
d563 1
a563 1
	# 4.1.17
d618 1
a618 1
	DB_LOCK_TRADE              => '4.1.17',
d621 1
a621 1
	DB_LSTAT_NOTEXIST          => IGNORE, # 4.1.17
d624 5
a628 5
	DB_PRIORITY_VERY_LOW       => '4.1.17',
	DB_PRIORITY_LOW            => '4.1.17',
	DB_PRIORITY_DEFAULT        => '4.1.17',
	DB_PRIORITY_HIGH           => '4.1.17',
	DB_PRIORITY_VERY_HIGH      => '4.1.17',
d631 2
a632 4
	DB_TXN_BACKWARD_ALLOC      => '4.1.17',
	DB_TXN_GETPGNOS            => '4.1.17',
	DB_TXN_PRINT               => '4.1.17',

d635 1
a635 1
	# 4.2.41
d669 40
@


1.4
log
@Conflict resolved.
@
text
@d681 37
@


1.3
log
@db-4.1.17 orphans.
@
text
@d609 1
a609 1
	# 4.1.12
d636 1
d650 6
d664 1
a664 1
	DB_LOCK_TRADE              => '4.1.12',
d667 1
a667 1
	DB_LSTAT_NOTEXIST          => IGNORE, # 4.1.12
d670 5
a674 5
	DB_PRIORITY_VERY_LOW       => '4.1.12',
	DB_PRIORITY_LOW            => '4.1.12',
	DB_PRIORITY_DEFAULT        => '4.1.12',
	DB_PRIORITY_HIGH           => '4.1.12',
	DB_PRIORITY_VERY_HIGH      => '4.1.12',
d677 4
a680 2
	DB_TXN_GETPGNOS            => '4.1.12',
	DB_TXN_PRINT               => '4.1.12',
@


1.2
log
@Resync with db-4.0.14 (and what's on the rpm-4_0 branch).
@
text
@d600 72
d707 1
d718 5
d729 1
a729 1
    OUTER: while (<>)
d734 1
a734 1
            while (<>) 
d737 1
a737 1
        print ;
d740 1
a740 1
    print "$START\n";
d744 1
a744 1
	print "\t$key\n";
d746 1
a746 1
    print "\t$END\n";
d748 1
a748 1
    while (<>)
d750 1
a750 1
        print ;
d752 6
d760 2
a761 3
my $opt = shift ;
OutputXS() if $opt =~ /^xs/i ;
OutputPM() if $opt =~ /^pm/i ;
@


1.1
log
@Initial revision
@
text
@d3 6
d10 590
a599 137
	# Symbol		   0 = define, 1 = enum
	DB_AFTER		=> 0,
	DB_APPEND		=> 0,
	DB_ARCH_ABS		=> 0,
	DB_ARCH_DATA		=> 0,
	DB_ARCH_LOG		=> 0,
	DB_BEFORE		=> 0,
	DB_BTREE		=> 1,
	DB_BTREEMAGIC		=> 0,
	DB_BTREEOLDVER		=> 0,
	DB_BTREEVERSION  	=> 0,
	DB_CHECKPOINT		=> 0,
	DB_CONSUME		=> 0,
	DB_CREATE		=> 0,
	DB_CURLSN		=> 0,
	DB_CURRENT		=> 0,
	DB_DBT_MALLOC		=> 0,
	DB_DBT_PARTIAL		=> 0,
	DB_DBT_USERMEM		=> 0,
	DB_DELETED		=> 0,
	DB_DELIMITER		=> 0,
	DB_DUP			=> 0,
	DB_DUPSORT		=> 0,
	DB_ENV_APPINIT		=> 0,
	DB_ENV_STANDALONE	=> 0,
	DB_ENV_THREAD		=> 0,
	DB_EXCL			=> 0,
	DB_FILE_ID_LEN		=> 0,
	DB_FIRST		=> 0,
	DB_FIXEDLEN		=> 0,
	DB_FLUSH		=> 0,
	DB_FORCE		=> 0,
	DB_GET_BOTH		=> 0,
	DB_GET_RECNO		=> 0,
	DB_HASH			=> 1,
	DB_HASHMAGIC		=> 0,
	DB_HASHOLDVER		=> 0,
	DB_HASHVERSION 		=> 0,
	DB_INCOMPLETE		=> 0,
	DB_INIT_CDB		=> 0,
	DB_INIT_LOCK		=> 0,
	DB_INIT_LOG		=> 0,
	DB_INIT_MPOOL		=> 0,
	DB_INIT_TXN		=> 0,
	DB_JOIN_ITEM		=> 0,
	DB_KEYEMPTY		=> 0,
	DB_KEYEXIST		=> 0,
	DB_KEYFIRST		=> 0,
	DB_KEYLAST		=> 0,
	DB_LAST			=> 0,
	DB_LOCK_CONFLICT	=> 0,
	DB_LOCK_DEADLOCK	=> 0,
	DB_LOCK_DEFAULT		=> 0,
	DB_LOCK_GET		=> 1,
	DB_LOCK_NORUN		=> 0,
	DB_LOCK_NOTGRANTED	=> 0,
	DB_LOCK_NOTHELD		=> 0,
	DB_LOCK_NOWAIT		=> 0,
	DB_LOCK_OLDEST		=> 0,
	DB_LOCK_RANDOM		=> 0,
	DB_LOCK_RIW_N		=> 0,
	DB_LOCK_RW_N		=> 0,
	DB_LOCK_YOUNGEST	=> 0,
	DB_LOCKMAGIC		=> 0,
	DB_LOCKVERSION 		=> 0,
	DB_LOGMAGIC		=> 0,
	DB_LOGOLDVER  		=> 0,
	DB_MAX_PAGES		=> 0,
	DB_MAX_RECORDS		=> 0,
	DB_MPOOL_CLEAN		=> 0,
	DB_MPOOL_CREATE		=> 0,
	DB_MPOOL_DIRTY		=> 0,
	DB_MPOOL_DISCARD	=> 0,
	DB_MPOOL_LAST		=> 0,
	DB_MPOOL_NEW		=> 0,
	DB_MPOOL_PRIVATE	=> 0,
	DB_MUTEXDEBUG		=> 0,
	DB_MUTEXLOCKS		=> 0,
	DB_NEEDSPLIT		=> 0,
	DB_NEXT			=> 0,
	DB_NEXT_DUP		=> 0,
	DB_NOMMAP		=> 0,
	DB_NOOVERWRITE		=> 0,
	DB_NOSYNC		=> 0,
	DB_NOTFOUND		=> 0,
	DB_PAD			=> 0,
	DB_PAGEYIELD		=> 0,
	DB_POSITION		=> 0,
	DB_PREV			=> 0,
	DB_PRIVATE		=> 0,
	DB_QUEUE		=> 1,
	DB_RDONLY		=> 0,
	DB_RECNO		=> 1,
	DB_RECNUM		=> 0,
	DB_RECORDCOUNT		=> 0,
	DB_RECOVER		=> 0,
	DB_RECOVER_FATAL	=> 0,
	DB_REGISTERED		=> 0,
	DB_RENUMBER		=> 0,
	DB_RMW			=> 0,
	DB_RUNRECOVERY		=> 0,
	DB_SEQUENTIAL		=> 0,
	DB_SET			=> 0,
	DB_SET_RANGE		=> 0,
	DB_SET_RECNO		=> 0,
	DB_SNAPSHOT		=> 0,
	DB_SWAPBYTES		=> 0,
	DB_TEMPORARY		=> 0,
	DB_THREAD		=> 0,
	DB_TRUNCATE		=> 0,
	DB_TXN_ABORT		=> 1,
	DB_TXN_BACKWARD_ROLL	=> 1,
	DB_TXN_CKP		=> 0,
	DB_TXN_FORWARD_ROLL	=> 1,
	DB_TXN_LOCK_2PL		=> 0,
	DB_TXN_LOCK_MASK	=> 0,
	DB_TXN_LOCK_OPTIMISTIC	=> 0,
	DB_TXN_LOG_MASK		=> 0,
	DB_TXN_LOG_REDO		=> 0,
	DB_TXN_LOG_UNDO		=> 0,
	DB_TXN_LOG_UNDOREDO	=> 0,
	DB_TXN_NOSYNC		=> 0,
	DB_TXN_NOWAIT		=> 0,
	DB_TXN_SYNC		=> 0,
	DB_TXN_OPENFILES	=> 1,
	DB_TXN_REDO		=> 0,
	DB_TXN_UNDO		=> 0,
	DB_TXNMAGIC		=> 0,
	DB_TXNVERSION		=> 0,
	DB_TXN_LOCK_OPTIMIST	=> 0,
	DB_UNKNOWN		=> 1,
	DB_USE_ENVIRON		=> 0,
	DB_USE_ENVIRON_ROOT	=> 0,
	DB_VERSION_MAJOR	=> 0,
	DB_VERSION_MINOR	=> 0,
	DB_VERSION_PATCH	=> 0,
	DB_WRITECURSOR		=> 0,
d602 15
d619 3
a621 9
    # skip to the marker
    if (0) {
        while (<>)
        {
            last if /^MARKER/ ;
            print ;
        }
    }
    
d624 2
a625 1
        my $isEnum = $constants{$key} ;
d627 6
a632 25
	if ($isEnum) {
            print <<EOM
        if (strEQ(name, "$key"))
            return $key;
EOM
	}
	else
	{
            print <<EOM
        if (strEQ(name, "$key"))
#ifdef $key
            return $key;
#else
            goto not_there;
#endif
EOM
	}
    
    }
    
    if (0) {
        while (<>)
        {
	    print ;
        }
d634 7
d645 9
a653 3
    # skip to the marker
    if (0) {
        while (<>)
d655 3
a657 2
            last if /^MARKER/ ;
            print ;
d659 1
d662 1
d665 1
d668 1
d670 3
a672 5
    if (0) {
        while (<>)
        {
	    print ;
        }
d676 3
a678 2
OutputXS() if $ARGV[0] =~ /xs/i ;
OutputPM() if $ARGV[0] =~ /pm/i ;
@


1.1.2.1
log
@Update to db-4.0.14.
@
text
@a2 6
use ExtUtils::Constant qw(WriteConstants); 

use constant DEFINE => 'define' ;
use constant STRING => 'string' ;
use constant IGNORE => 'ignore' ;

d4 137
a140 590

	#########
	# 2.0.0
	#########

	DBM_INSERT                 => IGNORE,
	DBM_REPLACE                => IGNORE,
	DBM_SUFFIX                 => IGNORE,
	DB_AFTER                   => DEFINE,
	DB_AM_DUP                  => IGNORE,
	DB_AM_INMEM                => IGNORE,
	DB_AM_LOCKING              => IGNORE,
	DB_AM_LOGGING              => IGNORE,
	DB_AM_MLOCAL               => IGNORE,
	DB_AM_PGDEF                => IGNORE,
	DB_AM_RDONLY               => IGNORE,
	DB_AM_RECOVER              => IGNORE,
	DB_AM_SWAP                 => IGNORE,
	DB_AM_TXN                  => IGNORE,
	DB_APP_INIT                => DEFINE,
	DB_BEFORE                  => DEFINE,
	DB_BTREEMAGIC              => DEFINE,
	DB_BTREEVERSION            => DEFINE,
	DB_BT_DELIMITER            => IGNORE,
	DB_BT_EOF                  => IGNORE,
	DB_BT_FIXEDLEN             => IGNORE,
	DB_BT_PAD                  => IGNORE,
	DB_BT_SNAPSHOT             => IGNORE,
	DB_CHECKPOINT              => DEFINE,
	DB_CREATE                  => DEFINE,
	DB_CURRENT                 => DEFINE,
	DB_DBT_INTERNAL            => IGNORE,
	DB_DBT_MALLOC              => IGNORE,
	DB_DBT_PARTIAL             => IGNORE,
	DB_DBT_USERMEM             => IGNORE,
	DB_DELETED                 => DEFINE,
	DB_DELIMITER               => DEFINE,
	DB_DUP                     => DEFINE,
	DB_EXCL                    => DEFINE,
	DB_FIRST                   => DEFINE,
	DB_FIXEDLEN                => DEFINE,
	DB_FLUSH                   => DEFINE,
	DB_HASHMAGIC               => DEFINE,
	DB_HASHVERSION             => DEFINE,
	DB_HS_DIRTYMETA            => IGNORE,
	DB_INCOMPLETE              => DEFINE,
	DB_INIT_LOCK               => DEFINE,
	DB_INIT_LOG                => DEFINE,
	DB_INIT_MPOOL              => DEFINE,
	DB_INIT_TXN                => DEFINE,
	DB_KEYEXIST                => DEFINE,
	DB_KEYFIRST                => DEFINE,
	DB_KEYLAST                 => DEFINE,
	DB_LAST                    => DEFINE,
	DB_LOCKMAGIC               => DEFINE,
	DB_LOCKVERSION             => DEFINE,
	DB_LOCK_DEADLOCK           => DEFINE,
	DB_LOCK_NOTGRANTED         => DEFINE,
	DB_LOCK_NOTHELD            => DEFINE,
	DB_LOCK_NOWAIT             => DEFINE,
	DB_LOCK_RIW_N              => DEFINE,
	DB_LOCK_RW_N               => DEFINE,
	DB_LOGMAGIC                => DEFINE,
	DB_LOGVERSION              => DEFINE,
	DB_MAX_PAGES               => DEFINE,
	DB_MAX_RECORDS             => DEFINE,
	DB_MPOOL_CLEAN             => DEFINE,
	DB_MPOOL_CREATE            => DEFINE,
	DB_MPOOL_DIRTY             => DEFINE,
	DB_MPOOL_DISCARD           => DEFINE,
	DB_MPOOL_LAST              => DEFINE,
	DB_MPOOL_NEW               => DEFINE,
	DB_MPOOL_PRIVATE           => DEFINE,
	DB_MUTEXDEBUG              => DEFINE,
	DB_NEEDSPLIT               => DEFINE,
	DB_NEXT                    => DEFINE,
	DB_NOOVERWRITE             => DEFINE,
	DB_NORECURSE               => DEFINE,
	DB_NOSYNC                  => DEFINE,
	DB_NOTFOUND                => DEFINE,
	DB_PAD                     => DEFINE,
	DB_PREV                    => DEFINE,
	DB_RDONLY                  => DEFINE,
	DB_REGISTERED              => DEFINE,
	DB_RE_MODIFIED             => IGNORE,
	DB_SET                     => DEFINE,
	DB_SET_RANGE               => DEFINE,
	DB_SNAPSHOT                => DEFINE,
	DB_SWAPBYTES               => DEFINE,
	DB_TRUNCATE                => DEFINE,
	DB_TXNMAGIC                => DEFINE,
	DB_TXNVERSION              => DEFINE,
	DB_TXN_BACKWARD_ROLL       => DEFINE,
	DB_TXN_FORWARD_ROLL        => DEFINE,
	DB_TXN_LOCK_2PL            => DEFINE,
	DB_TXN_LOCK_MASK           => DEFINE,
	DB_TXN_LOCK_OPTIMISTIC     => DEFINE,
	DB_TXN_LOG_MASK            => DEFINE,
	DB_TXN_LOG_REDO            => DEFINE,
	DB_TXN_LOG_UNDO            => DEFINE,
	DB_TXN_LOG_UNDOREDO        => DEFINE,
	DB_TXN_OPENFILES           => DEFINE,
	DB_TXN_REDO                => DEFINE,
	DB_TXN_UNDO                => DEFINE,
	DB_USE_ENVIRON             => DEFINE,
	DB_USE_ENVIRON_ROOT        => DEFINE,
	DB_VERSION_MAJOR           => DEFINE,
	DB_VERSION_MINOR           => DEFINE,
	DB_VERSION_PATCH           => DEFINE,
	DB_VERSION_STRING          => STRING,
	_DB_H_                     => IGNORE,
	__BIT_TYPES_DEFINED__      => IGNORE,
	const                      => IGNORE,

	# enum DBTYPE
	DB_BTREE                   => '2.0.0',
	DB_HASH                    => '2.0.0',
	DB_RECNO                   => '2.0.0',
	DB_UNKNOWN                 => '2.0.0',

	# enum db_lockop_t
	DB_LOCK_DUMP               => '2.0.0',
	DB_LOCK_GET                => '2.0.0',
	DB_LOCK_PUT                => '2.0.0',
	DB_LOCK_PUT_ALL            => '2.0.0',
	DB_LOCK_PUT_OBJ            => '2.0.0',

	# enum db_lockmode_t
	DB_LOCK_NG                 => IGNORE, # 2.0.0
	DB_LOCK_READ               => IGNORE, # 2.0.0
	DB_LOCK_WRITE              => IGNORE, # 2.0.0
	DB_LOCK_IREAD              => IGNORE, # 2.0.0
	DB_LOCK_IWRITE             => IGNORE, # 2.0.0
	DB_LOCK_IWR                => IGNORE, # 2.0.0

	# enum ACTION
	FIND                       => IGNORE, # 2.0.0
	ENTER                      => IGNORE, # 2.0.0

	#########
	# 2.0.3
	#########

	DB_SEQUENTIAL              => DEFINE,
	DB_TEMPORARY               => DEFINE,

	#########
	# 2.1.0
	#########

	DB_NOMMAP                  => DEFINE,

	#########
	# 2.2.6
	#########

	DB_AM_THREAD               => IGNORE,
	DB_ARCH_ABS                => DEFINE,
	DB_ARCH_DATA               => DEFINE,
	DB_ARCH_LOG                => DEFINE,
	DB_LOCK_CONFLICT           => DEFINE,
	DB_LOCK_DEFAULT            => DEFINE,
	DB_LOCK_NORUN              => DEFINE,
	DB_LOCK_OLDEST             => DEFINE,
	DB_LOCK_RANDOM             => DEFINE,
	DB_LOCK_YOUNGEST           => DEFINE,
	DB_RECOVER                 => DEFINE,
	DB_RECOVER_FATAL           => DEFINE,
	DB_THREAD                  => DEFINE,
	DB_TXN_NOSYNC              => DEFINE,

	#########
	# 2.3.0
	#########

	DB_BTREEOLDVER             => DEFINE,
	DB_BT_RECNUM               => IGNORE,
	DB_FILE_ID_LEN             => DEFINE,
	DB_GETREC                  => DEFINE,
	DB_HASHOLDVER              => DEFINE,
	DB_KEYEMPTY                => DEFINE,
	DB_LOGOLDVER               => DEFINE,
	DB_RECNUM                  => DEFINE,
	DB_RECORDCOUNT             => DEFINE,
	DB_RENUMBER                => DEFINE,
	DB_RE_DELIMITER            => IGNORE,
	DB_RE_FIXEDLEN             => IGNORE,
	DB_RE_PAD                  => IGNORE,
	DB_RE_RENUMBER             => IGNORE,
	DB_RE_SNAPSHOT             => IGNORE,

	#########
	# 2.3.1
	#########

	DB_GET_RECNO               => DEFINE,
	DB_SET_RECNO               => DEFINE,

	#########
	# 2.3.3
	#########

	DB_APPEND                  => DEFINE,

	#########
	# 2.3.6
	#########

	DB_TXN_CKP                 => DEFINE,

	#########
	# 2.3.11
	#########

	DB_ENV_APPINIT             => DEFINE,
	DB_ENV_STANDALONE          => DEFINE,
	DB_ENV_THREAD              => DEFINE,

	#########
	# 2.3.12
	#########

	DB_FUNC_CALLOC             => IGNORE,
	DB_FUNC_CLOSE              => IGNORE,
	DB_FUNC_DIRFREE            => IGNORE,
	DB_FUNC_DIRLIST            => IGNORE,
	DB_FUNC_EXISTS             => IGNORE,
	DB_FUNC_FREE               => IGNORE,
	DB_FUNC_FSYNC              => IGNORE,
	DB_FUNC_IOINFO             => IGNORE,
	DB_FUNC_MALLOC             => IGNORE,
	DB_FUNC_MAP                => IGNORE,
	DB_FUNC_OPEN               => IGNORE,
	DB_FUNC_READ               => IGNORE,
	DB_FUNC_REALLOC            => IGNORE,
	DB_FUNC_SEEK               => IGNORE,
	DB_FUNC_SLEEP              => IGNORE,
	DB_FUNC_STRDUP             => IGNORE,
	DB_FUNC_UNLINK             => IGNORE,
	DB_FUNC_UNMAP              => IGNORE,
	DB_FUNC_WRITE              => IGNORE,
	DB_FUNC_YIELD              => IGNORE,

	#########
	# 2.3.14
	#########

	DB_TSL_SPINS               => IGNORE,

	#########
	# 2.3.16
	#########

	DB_DBM_HSEARCH             => IGNORE,
	firstkey                   => IGNORE,
	hdestroy                   => IGNORE,

	#########
	# 2.4.10
	#########

	DB_CURLSN                  => DEFINE,
	DB_FUNC_RUNLINK            => IGNORE,
	DB_REGION_ANON             => DEFINE,
	DB_REGION_INIT             => DEFINE,
	DB_REGION_NAME             => DEFINE,
	DB_TXN_LOCK_OPTIMIST       => DEFINE,
	__CURRENTLY_UNUSED         => IGNORE,

	# enum db_status_t
	DB_LSTAT_ABORTED           => IGNORE, # 2.4.10
	DB_LSTAT_ERR               => IGNORE, # 2.4.10
	DB_LSTAT_FREE              => IGNORE, # 2.4.10
	DB_LSTAT_HELD              => IGNORE, # 2.4.10
	DB_LSTAT_NOGRANT           => IGNORE, # 2.4.10
	DB_LSTAT_PENDING           => IGNORE, # 2.4.10
	DB_LSTAT_WAITING           => IGNORE, # 2.4.10

	#########
	# 2.4.14
	#########

	DB_MUTEXLOCKS              => DEFINE,
	DB_PAGEYIELD               => DEFINE,
	__UNUSED_100               => IGNORE,
	__UNUSED_4000              => IGNORE,

	#########
	# 2.5.2
	#########

	DBC_CONTINUE               => IGNORE,
	DBC_KEYSET                 => IGNORE,
	DBC_RECOVER                => IGNORE,
	DBC_RMW                    => IGNORE,
	DB_DBM_ERROR               => IGNORE,
	DB_GET_BOTH                => DEFINE,
	DB_NEXT_DUP                => DEFINE,
	DB_OPFLAGS_MASK            => DEFINE,
	DB_RMW                     => DEFINE,
	DB_RUNRECOVERY             => DEFINE,
	dbmclose                   => IGNORE,

	#########
	# 2.5.9
	#########

	DB_DUPSORT                 => DEFINE,
	DB_JOIN_ITEM               => DEFINE,

	#########
	# 2.6.4
	#########

	DBC_WRITER                 => IGNORE,
	DB_AM_CDB                  => IGNORE,
	DB_ENV_CDB                 => DEFINE,
	DB_INIT_CDB                => DEFINE,
	DB_LOCK_UPGRADE            => DEFINE,
	DB_WRITELOCK               => DEFINE,

	#########
	# 2.7.1
	#########


	# enum db_lockop_t
	DB_LOCK_INHERIT            => '2.7.1',

	#########
	# 2.7.7
	#########

	DB_FCNTL_LOCKING           => DEFINE,

	#########
	# 3.0.55
	#########

	DBC_WRITECURSOR            => IGNORE,
	DB_AM_DISCARD              => IGNORE,
	DB_AM_SUBDB                => IGNORE,
	DB_BT_REVSPLIT             => IGNORE,
	DB_CONSUME                 => DEFINE,
	DB_CXX_NO_EXCEPTIONS       => DEFINE,
	DB_DBT_REALLOC             => IGNORE,
	DB_DUPCURSOR               => DEFINE,
	DB_ENV_CREATE              => DEFINE,
	DB_ENV_DBLOCAL             => DEFINE,
	DB_ENV_LOCKDOWN            => DEFINE,
	DB_ENV_LOCKING             => DEFINE,
	DB_ENV_LOGGING             => DEFINE,
	DB_ENV_NOMMAP              => DEFINE,
	DB_ENV_OPEN_CALLED         => DEFINE,
	DB_ENV_PRIVATE             => DEFINE,
	DB_ENV_SYSTEM_MEM          => DEFINE,
	DB_ENV_TXN                 => DEFINE,
	DB_ENV_TXN_NOSYNC          => DEFINE,
	DB_ENV_USER_ALLOC          => DEFINE,
	DB_FORCE                   => DEFINE,
	DB_LOCKDOWN                => DEFINE,
	DB_LOCK_RECORD             => DEFINE,
	DB_LOGFILEID_INVALID       => DEFINE,
	DB_MPOOL_NEW_GROUP         => DEFINE,
	DB_NEXT_NODUP              => DEFINE,
	DB_OK_BTREE                => DEFINE,
	DB_OK_HASH                 => DEFINE,
	DB_OK_QUEUE                => DEFINE,
	DB_OK_RECNO                => DEFINE,
	DB_OLD_VERSION             => DEFINE,
	DB_OPEN_CALLED             => DEFINE,
	DB_PAGE_LOCK               => DEFINE,
	DB_POSITION                => DEFINE,
	DB_POSITIONI               => DEFINE,
	DB_PRIVATE                 => DEFINE,
	DB_QAMMAGIC                => DEFINE,
	DB_QAMOLDVER               => DEFINE,
	DB_QAMVERSION              => DEFINE,
	DB_RECORD_LOCK             => DEFINE,
	DB_REVSPLITOFF             => DEFINE,
	DB_SYSTEM_MEM              => DEFINE,
	DB_TEST_POSTLOG            => DEFINE,
	DB_TEST_POSTLOGMETA        => DEFINE,
	DB_TEST_POSTOPEN           => DEFINE,
	DB_TEST_POSTRENAME         => DEFINE,
	DB_TEST_POSTSYNC           => DEFINE,
	DB_TEST_PREOPEN            => DEFINE,
	DB_TEST_PRERENAME          => DEFINE,
	DB_TXN_NOWAIT              => DEFINE,
	DB_TXN_SYNC                => DEFINE,
	DB_UPGRADE                 => DEFINE,
	DB_VERB_CHKPOINT           => DEFINE,
	DB_VERB_DEADLOCK           => DEFINE,
	DB_VERB_RECOVERY           => DEFINE,
	DB_VERB_WAITSFOR           => DEFINE,
	DB_WRITECURSOR             => DEFINE,
	DB_XA_CREATE               => DEFINE,

	# enum DBTYPE
	DB_QUEUE                   => '3.0.55',

	#########
	# 3.1.12
	#########

	DBC_ACTIVE                 => IGNORE,
	DBC_OPD                    => IGNORE,
	DBC_TRANSIENT              => IGNORE,
	DBC_WRITEDUP               => IGNORE,
	DB_AGGRESSIVE              => DEFINE,
	DB_AM_DUPSORT              => IGNORE,
	DB_CACHED_COUNTS           => DEFINE,
	DB_CLIENT                  => DEFINE,
	DB_DBT_DUPOK               => IGNORE,
	DB_DBT_ISSET               => IGNORE,
	DB_ENV_RPCCLIENT           => DEFINE,
	DB_GET_BOTHC               => DEFINE,
	DB_JOIN_NOSORT             => DEFINE,
	DB_NODUPDATA               => DEFINE,
	DB_NOORDERCHK              => DEFINE,
	DB_NOSERVER                => DEFINE,
	DB_NOSERVER_HOME           => DEFINE,
	DB_NOSERVER_ID             => DEFINE,
	DB_ODDFILESIZE             => DEFINE,
	DB_ORDERCHKONLY            => DEFINE,
	DB_PREV_NODUP              => DEFINE,
	DB_PR_HEADERS              => DEFINE,
	DB_PR_PAGE                 => DEFINE,
	DB_PR_RECOVERYTEST         => DEFINE,
	DB_RDWRMASTER              => DEFINE,
	DB_SALVAGE                 => DEFINE,
	DB_VERIFY_BAD              => DEFINE,
	DB_VERIFY_FATAL            => DEFINE,
	DB_VRFY_FLAGMASK           => DEFINE,

	# enum db_recops
	DB_TXN_ABORT               => '3.1.12',
	DB_TXN_BACKWARD_ROLL       => '3.1.12',
	DB_TXN_FORWARD_ROLL        => '3.1.12',
	DB_TXN_OPENFILES           => '3.1.12',

	#########
	# 3.2.3
	#########

	DBC_COMPENSATE             => IGNORE,
	DB_AM_VERIFYING            => IGNORE,
	DB_CDB_ALLDB               => DEFINE,
	DB_ENV_CDB_ALLDB           => DEFINE,
	DB_EXTENT                  => DEFINE,
	DB_JOINENV                 => DEFINE,
	DB_LOCK_SWITCH             => DEFINE,
	DB_MPOOL_EXTENT            => DEFINE,
	DB_REGION_MAGIC            => DEFINE,
	DB_UNRESOLVED_CHILD        => DEFINE,
	DB_VERIFY                  => DEFINE,

	# enum db_notices
	DB_NOTICE_LOGFILE_CHANGED  => IGNORE, # 3.2.3

	#########
	# 3.2.6
	#########

	DB_ALREADY_ABORTED         => DEFINE,
	DB_CONSUME_WAIT            => DEFINE,
	DB_JAVA_CALLBACK           => DEFINE,
	DB_TEST_POSTEXTDELETE      => DEFINE,
	DB_TEST_POSTEXTOPEN        => DEFINE,
	DB_TEST_POSTEXTUNLINK      => DEFINE,
	DB_TEST_PREEXTDELETE       => DEFINE,
	DB_TEST_PREEXTOPEN         => DEFINE,
	DB_TEST_PREEXTUNLINK       => DEFINE,

	# enum db_lockmode_t
	DB_LOCK_WAIT               => IGNORE, # 3.2.6

	#########
	# 3.3.4
	#########

	DBC_DIRTY_READ             => IGNORE,
	DBC_MULTIPLE               => IGNORE,
	DBC_MULTIPLE_KEY           => IGNORE,
	DB_AM_DIRTY                => IGNORE,
	DB_AM_SECONDARY            => IGNORE,
	DB_COMMIT                  => DEFINE,
	DB_DBT_APPMALLOC           => IGNORE,
	DB_DIRTY_READ              => DEFINE,
	DB_DONOTINDEX              => DEFINE,
	DB_ENV_PANIC_OK            => DEFINE,
	DB_ENV_RPCCLIENT_GIVEN     => DEFINE,
	DB_FAST_STAT               => DEFINE,
	DB_LOCK_MAXLOCKS           => DEFINE,
	DB_LOCK_MINLOCKS           => DEFINE,
	DB_LOCK_MINWRITE           => DEFINE,
	DB_MULTIPLE                => DEFINE,
	DB_MULTIPLE_KEY            => DEFINE,
	DB_PAGE_NOTFOUND           => DEFINE,
	DB_RPC_SERVERPROG          => DEFINE,
	DB_RPC_SERVERVERS          => DEFINE,
	DB_UPDATE_SECONDARY        => DEFINE,
	DB_XIDDATASIZE             => DEFINE,

	# enum db_recops
	DB_TXN_POPENFILES          => '3.3.4',

	# enum db_lockop_t
	DB_LOCK_UPGRADE_WRITE      => '3.3.4',

	# enum db_lockmode_t
	DB_LOCK_DIRTY              => IGNORE, # 3.3.4
	DB_LOCK_WWRITE             => IGNORE, # 3.3.4

	#########
	# 3.3.11
	#########

	DB_SECONDARY_BAD           => DEFINE,
	DB_SURPRISE_KID            => DEFINE,
	DB_TEST_POSTDESTROY        => DEFINE,
	DB_TEST_PREDESTROY         => DEFINE,

	#########
	# 4.0.7
	#########

	DB_APPLY_LOGREG            => DEFINE,
	DB_BROADCAST_EID           => DEFINE,
	DB_CL_WRITER               => DEFINE,
	DB_ENV_NOLOCKING           => DEFINE,
	DB_ENV_NOPANIC             => DEFINE,
	DB_ENV_REGION_INIT         => DEFINE,
	DB_ENV_REP_CLIENT          => DEFINE,
	DB_ENV_REP_LOGSONLY        => DEFINE,
	DB_ENV_REP_MASTER          => DEFINE,
	DB_ENV_YIELDCPU            => DEFINE,
	DB_GET_BOTH_RANGE          => DEFINE,
	DB_INVALID_EID             => DEFINE,
	DB_LOCK_EXPIRE             => DEFINE,
	DB_LOCK_FREE_LOCKER        => DEFINE,
	DB_LOCK_SET_TIMEOUT        => DEFINE,
	DB_LOGC_BUF_SIZE           => DEFINE,
	DB_LOG_DISK                => DEFINE,
	DB_LOG_LOCKED              => DEFINE,
	DB_LOG_SILENT_ERR          => DEFINE,
	DB_NOLOCKING               => DEFINE,
	DB_NOPANIC                 => DEFINE,
	DB_PANIC_ENVIRONMENT       => DEFINE,
	DB_REP_CLIENT              => DEFINE,
	DB_REP_DUPMASTER           => DEFINE,
	DB_REP_HOLDELECTION        => DEFINE,
	DB_REP_LOGSONLY            => DEFINE,
	DB_REP_MASTER              => DEFINE,
	DB_REP_NEWMASTER           => DEFINE,
	DB_REP_NEWSITE             => DEFINE,
	DB_REP_OUTDATED            => DEFINE,
	DB_REP_PERMANENT           => DEFINE,
	DB_REP_UNAVAIL             => DEFINE,
	DB_SET_LOCK_TIMEOUT        => DEFINE,
	DB_SET_TXN_NOW             => DEFINE,
	DB_SET_TXN_TIMEOUT         => DEFINE,
	DB_STAT_CLEAR              => DEFINE,
	DB_TIMEOUT                 => DEFINE,
	DB_YIELDCPU                => DEFINE,
	MP_FLUSH                   => IGNORE,
	MP_OPEN_CALLED             => IGNORE,
	MP_READONLY                => IGNORE,
	MP_UPGRADE                 => IGNORE,
	MP_UPGRADE_FAIL            => IGNORE,
	TXN_CHILDCOMMIT            => IGNORE,
	TXN_COMPENSATE             => IGNORE,
	TXN_DIRTY_READ             => IGNORE,
	TXN_LOCKTIMEOUT            => IGNORE,
	TXN_MALLOC                 => IGNORE,
	TXN_NOSYNC                 => IGNORE,
	TXN_NOWAIT                 => IGNORE,
	TXN_SYNC                   => IGNORE,

	# enum db_recops
	DB_TXN_APPLY               => '4.0.7',

	# enum db_lockop_t
	DB_LOCK_GET_TIMEOUT        => '4.0.7',
	DB_LOCK_PUT_READ           => '4.0.7',
	DB_LOCK_TIMEOUT            => '4.0.7',

	# enum db_status_t
	DB_LSTAT_EXPIRED           => IGNORE, # 4.0.7

a142 15
sub enum_Macro
{
    my $str = shift ;
    my ($major, $minor, $patch) = split /\./, $str ;

    my $macro = 
    "#if (DB_VERSION_MAJOR > $major) || \\\n" .
    "    (DB_VERSION_MAJOR == $major && DB_VERSION_MINOR > $minor) || \\\n" .
    "    (DB_VERSION_MAJOR == $major && DB_VERSION_MINOR == $minor && \\\n" .
    "     DB_VERSION_PATCH >= $patch)\n" ;

    return $macro;

}

d145 9
a153 3

    my @@names = () ;

d156 1
a156 2
        my $val = $constants{$key} ;
        next if $val eq IGNORE;
d158 25
a182 6
        if ($val eq STRING)
          { push @@names, { name => $key, type => "PV" } }
        elsif ($val eq DEFINE)
          { push @@names, $key }
        else
          { push @@names, { name => $key, macro => [enum_Macro($val), "#endif\n"] } }
a183 7

    WriteConstants(
              NAME    => BerkeleyDB,
              NAMES   => \@@names,
              C_FILE  => 'constants.h',
              XS_FILE => 'constants.xs',
          ) ;
d188 3
a190 9
    my $START = '@@EXPORT = qw(' ;
    my $START_re = quotemeta $START ;
    my $END = ');';
    my $END_re = quotemeta $END ;

    # skip to the @@EXPORT declaration
    OUTER: while (<>)
    {
        if ( /^\s*$START_re/ )
d192 2
a193 3
            # skip to the end marker.
            while (<>) 
                { last OUTER if /^\s*$END_re/ }
a194 1
        print ;
a196 1
    print "$START\n";
a198 1
        next if $constants{$key} eq IGNORE;
a200 1
    print "\t$END\n";
d202 5
a206 3
    while (<>)
    {
        print ;
d210 2
a211 3
my $opt = shift ;
OutputXS() if $opt =~ /^xs/i ;
OutputPM() if $opt =~ /^pm/i ;
@


1.1.1.1
log
@track: auto import
@
text
@@


1.1.1.2
log
@track: auto import
@
text
@a2 6
use ExtUtils::Constant qw(WriteConstants); 

use constant DEFINE => 'define' ;
use constant STRING => 'string' ;
use constant IGNORE => 'ignore' ;

d4 137
a140 590

	#########
	# 2.0.0
	#########

	DBM_INSERT                 => IGNORE,
	DBM_REPLACE                => IGNORE,
	DBM_SUFFIX                 => IGNORE,
	DB_AFTER                   => DEFINE,
	DB_AM_DUP                  => IGNORE,
	DB_AM_INMEM                => IGNORE,
	DB_AM_LOCKING              => IGNORE,
	DB_AM_LOGGING              => IGNORE,
	DB_AM_MLOCAL               => IGNORE,
	DB_AM_PGDEF                => IGNORE,
	DB_AM_RDONLY               => IGNORE,
	DB_AM_RECOVER              => IGNORE,
	DB_AM_SWAP                 => IGNORE,
	DB_AM_TXN                  => IGNORE,
	DB_APP_INIT                => DEFINE,
	DB_BEFORE                  => DEFINE,
	DB_BTREEMAGIC              => DEFINE,
	DB_BTREEVERSION            => DEFINE,
	DB_BT_DELIMITER            => IGNORE,
	DB_BT_EOF                  => IGNORE,
	DB_BT_FIXEDLEN             => IGNORE,
	DB_BT_PAD                  => IGNORE,
	DB_BT_SNAPSHOT             => IGNORE,
	DB_CHECKPOINT              => DEFINE,
	DB_CREATE                  => DEFINE,
	DB_CURRENT                 => DEFINE,
	DB_DBT_INTERNAL            => IGNORE,
	DB_DBT_MALLOC              => IGNORE,
	DB_DBT_PARTIAL             => IGNORE,
	DB_DBT_USERMEM             => IGNORE,
	DB_DELETED                 => DEFINE,
	DB_DELIMITER               => DEFINE,
	DB_DUP                     => DEFINE,
	DB_EXCL                    => DEFINE,
	DB_FIRST                   => DEFINE,
	DB_FIXEDLEN                => DEFINE,
	DB_FLUSH                   => DEFINE,
	DB_HASHMAGIC               => DEFINE,
	DB_HASHVERSION             => DEFINE,
	DB_HS_DIRTYMETA            => IGNORE,
	DB_INCOMPLETE              => DEFINE,
	DB_INIT_LOCK               => DEFINE,
	DB_INIT_LOG                => DEFINE,
	DB_INIT_MPOOL              => DEFINE,
	DB_INIT_TXN                => DEFINE,
	DB_KEYEXIST                => DEFINE,
	DB_KEYFIRST                => DEFINE,
	DB_KEYLAST                 => DEFINE,
	DB_LAST                    => DEFINE,
	DB_LOCKMAGIC               => DEFINE,
	DB_LOCKVERSION             => DEFINE,
	DB_LOCK_DEADLOCK           => DEFINE,
	DB_LOCK_NOTGRANTED         => DEFINE,
	DB_LOCK_NOTHELD            => DEFINE,
	DB_LOCK_NOWAIT             => DEFINE,
	DB_LOCK_RIW_N              => DEFINE,
	DB_LOCK_RW_N               => DEFINE,
	DB_LOGMAGIC                => DEFINE,
	DB_LOGVERSION              => DEFINE,
	DB_MAX_PAGES               => DEFINE,
	DB_MAX_RECORDS             => DEFINE,
	DB_MPOOL_CLEAN             => DEFINE,
	DB_MPOOL_CREATE            => DEFINE,
	DB_MPOOL_DIRTY             => DEFINE,
	DB_MPOOL_DISCARD           => DEFINE,
	DB_MPOOL_LAST              => DEFINE,
	DB_MPOOL_NEW               => DEFINE,
	DB_MPOOL_PRIVATE           => DEFINE,
	DB_MUTEXDEBUG              => DEFINE,
	DB_NEEDSPLIT               => DEFINE,
	DB_NEXT                    => DEFINE,
	DB_NOOVERWRITE             => DEFINE,
	DB_NORECURSE               => DEFINE,
	DB_NOSYNC                  => DEFINE,
	DB_NOTFOUND                => DEFINE,
	DB_PAD                     => DEFINE,
	DB_PREV                    => DEFINE,
	DB_RDONLY                  => DEFINE,
	DB_REGISTERED              => DEFINE,
	DB_RE_MODIFIED             => IGNORE,
	DB_SET                     => DEFINE,
	DB_SET_RANGE               => DEFINE,
	DB_SNAPSHOT                => DEFINE,
	DB_SWAPBYTES               => DEFINE,
	DB_TRUNCATE                => DEFINE,
	DB_TXNMAGIC                => DEFINE,
	DB_TXNVERSION              => DEFINE,
	DB_TXN_BACKWARD_ROLL       => DEFINE,
	DB_TXN_FORWARD_ROLL        => DEFINE,
	DB_TXN_LOCK_2PL            => DEFINE,
	DB_TXN_LOCK_MASK           => DEFINE,
	DB_TXN_LOCK_OPTIMISTIC     => DEFINE,
	DB_TXN_LOG_MASK            => DEFINE,
	DB_TXN_LOG_REDO            => DEFINE,
	DB_TXN_LOG_UNDO            => DEFINE,
	DB_TXN_LOG_UNDOREDO        => DEFINE,
	DB_TXN_OPENFILES           => DEFINE,
	DB_TXN_REDO                => DEFINE,
	DB_TXN_UNDO                => DEFINE,
	DB_USE_ENVIRON             => DEFINE,
	DB_USE_ENVIRON_ROOT        => DEFINE,
	DB_VERSION_MAJOR           => DEFINE,
	DB_VERSION_MINOR           => DEFINE,
	DB_VERSION_PATCH           => DEFINE,
	DB_VERSION_STRING          => STRING,
	_DB_H_                     => IGNORE,
	__BIT_TYPES_DEFINED__      => IGNORE,
	const                      => IGNORE,

	# enum DBTYPE
	DB_BTREE                   => '2.0.0',
	DB_HASH                    => '2.0.0',
	DB_RECNO                   => '2.0.0',
	DB_UNKNOWN                 => '2.0.0',

	# enum db_lockop_t
	DB_LOCK_DUMP               => '2.0.0',
	DB_LOCK_GET                => '2.0.0',
	DB_LOCK_PUT                => '2.0.0',
	DB_LOCK_PUT_ALL            => '2.0.0',
	DB_LOCK_PUT_OBJ            => '2.0.0',

	# enum db_lockmode_t
	DB_LOCK_NG                 => IGNORE, # 2.0.0
	DB_LOCK_READ               => IGNORE, # 2.0.0
	DB_LOCK_WRITE              => IGNORE, # 2.0.0
	DB_LOCK_IREAD              => IGNORE, # 2.0.0
	DB_LOCK_IWRITE             => IGNORE, # 2.0.0
	DB_LOCK_IWR                => IGNORE, # 2.0.0

	# enum ACTION
	FIND                       => IGNORE, # 2.0.0
	ENTER                      => IGNORE, # 2.0.0

	#########
	# 2.0.3
	#########

	DB_SEQUENTIAL              => DEFINE,
	DB_TEMPORARY               => DEFINE,

	#########
	# 2.1.0
	#########

	DB_NOMMAP                  => DEFINE,

	#########
	# 2.2.6
	#########

	DB_AM_THREAD               => IGNORE,
	DB_ARCH_ABS                => DEFINE,
	DB_ARCH_DATA               => DEFINE,
	DB_ARCH_LOG                => DEFINE,
	DB_LOCK_CONFLICT           => DEFINE,
	DB_LOCK_DEFAULT            => DEFINE,
	DB_LOCK_NORUN              => DEFINE,
	DB_LOCK_OLDEST             => DEFINE,
	DB_LOCK_RANDOM             => DEFINE,
	DB_LOCK_YOUNGEST           => DEFINE,
	DB_RECOVER                 => DEFINE,
	DB_RECOVER_FATAL           => DEFINE,
	DB_THREAD                  => DEFINE,
	DB_TXN_NOSYNC              => DEFINE,

	#########
	# 2.3.0
	#########

	DB_BTREEOLDVER             => DEFINE,
	DB_BT_RECNUM               => IGNORE,
	DB_FILE_ID_LEN             => DEFINE,
	DB_GETREC                  => DEFINE,
	DB_HASHOLDVER              => DEFINE,
	DB_KEYEMPTY                => DEFINE,
	DB_LOGOLDVER               => DEFINE,
	DB_RECNUM                  => DEFINE,
	DB_RECORDCOUNT             => DEFINE,
	DB_RENUMBER                => DEFINE,
	DB_RE_DELIMITER            => IGNORE,
	DB_RE_FIXEDLEN             => IGNORE,
	DB_RE_PAD                  => IGNORE,
	DB_RE_RENUMBER             => IGNORE,
	DB_RE_SNAPSHOT             => IGNORE,

	#########
	# 2.3.1
	#########

	DB_GET_RECNO               => DEFINE,
	DB_SET_RECNO               => DEFINE,

	#########
	# 2.3.3
	#########

	DB_APPEND                  => DEFINE,

	#########
	# 2.3.6
	#########

	DB_TXN_CKP                 => DEFINE,

	#########
	# 2.3.11
	#########

	DB_ENV_APPINIT             => DEFINE,
	DB_ENV_STANDALONE          => DEFINE,
	DB_ENV_THREAD              => DEFINE,

	#########
	# 2.3.12
	#########

	DB_FUNC_CALLOC             => IGNORE,
	DB_FUNC_CLOSE              => IGNORE,
	DB_FUNC_DIRFREE            => IGNORE,
	DB_FUNC_DIRLIST            => IGNORE,
	DB_FUNC_EXISTS             => IGNORE,
	DB_FUNC_FREE               => IGNORE,
	DB_FUNC_FSYNC              => IGNORE,
	DB_FUNC_IOINFO             => IGNORE,
	DB_FUNC_MALLOC             => IGNORE,
	DB_FUNC_MAP                => IGNORE,
	DB_FUNC_OPEN               => IGNORE,
	DB_FUNC_READ               => IGNORE,
	DB_FUNC_REALLOC            => IGNORE,
	DB_FUNC_SEEK               => IGNORE,
	DB_FUNC_SLEEP              => IGNORE,
	DB_FUNC_STRDUP             => IGNORE,
	DB_FUNC_UNLINK             => IGNORE,
	DB_FUNC_UNMAP              => IGNORE,
	DB_FUNC_WRITE              => IGNORE,
	DB_FUNC_YIELD              => IGNORE,

	#########
	# 2.3.14
	#########

	DB_TSL_SPINS               => IGNORE,

	#########
	# 2.3.16
	#########

	DB_DBM_HSEARCH             => IGNORE,
	firstkey                   => IGNORE,
	hdestroy                   => IGNORE,

	#########
	# 2.4.10
	#########

	DB_CURLSN                  => DEFINE,
	DB_FUNC_RUNLINK            => IGNORE,
	DB_REGION_ANON             => DEFINE,
	DB_REGION_INIT             => DEFINE,
	DB_REGION_NAME             => DEFINE,
	DB_TXN_LOCK_OPTIMIST       => DEFINE,
	__CURRENTLY_UNUSED         => IGNORE,

	# enum db_status_t
	DB_LSTAT_ABORTED           => IGNORE, # 2.4.10
	DB_LSTAT_ERR               => IGNORE, # 2.4.10
	DB_LSTAT_FREE              => IGNORE, # 2.4.10
	DB_LSTAT_HELD              => IGNORE, # 2.4.10
	DB_LSTAT_NOGRANT           => IGNORE, # 2.4.10
	DB_LSTAT_PENDING           => IGNORE, # 2.4.10
	DB_LSTAT_WAITING           => IGNORE, # 2.4.10

	#########
	# 2.4.14
	#########

	DB_MUTEXLOCKS              => DEFINE,
	DB_PAGEYIELD               => DEFINE,
	__UNUSED_100               => IGNORE,
	__UNUSED_4000              => IGNORE,

	#########
	# 2.5.2
	#########

	DBC_CONTINUE               => IGNORE,
	DBC_KEYSET                 => IGNORE,
	DBC_RECOVER                => IGNORE,
	DBC_RMW                    => IGNORE,
	DB_DBM_ERROR               => IGNORE,
	DB_GET_BOTH                => DEFINE,
	DB_NEXT_DUP                => DEFINE,
	DB_OPFLAGS_MASK            => DEFINE,
	DB_RMW                     => DEFINE,
	DB_RUNRECOVERY             => DEFINE,
	dbmclose                   => IGNORE,

	#########
	# 2.5.9
	#########

	DB_DUPSORT                 => DEFINE,
	DB_JOIN_ITEM               => DEFINE,

	#########
	# 2.6.4
	#########

	DBC_WRITER                 => IGNORE,
	DB_AM_CDB                  => IGNORE,
	DB_ENV_CDB                 => DEFINE,
	DB_INIT_CDB                => DEFINE,
	DB_LOCK_UPGRADE            => DEFINE,
	DB_WRITELOCK               => DEFINE,

	#########
	# 2.7.1
	#########


	# enum db_lockop_t
	DB_LOCK_INHERIT            => '2.7.1',

	#########
	# 2.7.7
	#########

	DB_FCNTL_LOCKING           => DEFINE,

	#########
	# 3.0.55
	#########

	DBC_WRITECURSOR            => IGNORE,
	DB_AM_DISCARD              => IGNORE,
	DB_AM_SUBDB                => IGNORE,
	DB_BT_REVSPLIT             => IGNORE,
	DB_CONSUME                 => DEFINE,
	DB_CXX_NO_EXCEPTIONS       => DEFINE,
	DB_DBT_REALLOC             => IGNORE,
	DB_DUPCURSOR               => DEFINE,
	DB_ENV_CREATE              => DEFINE,
	DB_ENV_DBLOCAL             => DEFINE,
	DB_ENV_LOCKDOWN            => DEFINE,
	DB_ENV_LOCKING             => DEFINE,
	DB_ENV_LOGGING             => DEFINE,
	DB_ENV_NOMMAP              => DEFINE,
	DB_ENV_OPEN_CALLED         => DEFINE,
	DB_ENV_PRIVATE             => DEFINE,
	DB_ENV_SYSTEM_MEM          => DEFINE,
	DB_ENV_TXN                 => DEFINE,
	DB_ENV_TXN_NOSYNC          => DEFINE,
	DB_ENV_USER_ALLOC          => DEFINE,
	DB_FORCE                   => DEFINE,
	DB_LOCKDOWN                => DEFINE,
	DB_LOCK_RECORD             => DEFINE,
	DB_LOGFILEID_INVALID       => DEFINE,
	DB_MPOOL_NEW_GROUP         => DEFINE,
	DB_NEXT_NODUP              => DEFINE,
	DB_OK_BTREE                => DEFINE,
	DB_OK_HASH                 => DEFINE,
	DB_OK_QUEUE                => DEFINE,
	DB_OK_RECNO                => DEFINE,
	DB_OLD_VERSION             => DEFINE,
	DB_OPEN_CALLED             => DEFINE,
	DB_PAGE_LOCK               => DEFINE,
	DB_POSITION                => DEFINE,
	DB_POSITIONI               => DEFINE,
	DB_PRIVATE                 => DEFINE,
	DB_QAMMAGIC                => DEFINE,
	DB_QAMOLDVER               => DEFINE,
	DB_QAMVERSION              => DEFINE,
	DB_RECORD_LOCK             => DEFINE,
	DB_REVSPLITOFF             => DEFINE,
	DB_SYSTEM_MEM              => DEFINE,
	DB_TEST_POSTLOG            => DEFINE,
	DB_TEST_POSTLOGMETA        => DEFINE,
	DB_TEST_POSTOPEN           => DEFINE,
	DB_TEST_POSTRENAME         => DEFINE,
	DB_TEST_POSTSYNC           => DEFINE,
	DB_TEST_PREOPEN            => DEFINE,
	DB_TEST_PRERENAME          => DEFINE,
	DB_TXN_NOWAIT              => DEFINE,
	DB_TXN_SYNC                => DEFINE,
	DB_UPGRADE                 => DEFINE,
	DB_VERB_CHKPOINT           => DEFINE,
	DB_VERB_DEADLOCK           => DEFINE,
	DB_VERB_RECOVERY           => DEFINE,
	DB_VERB_WAITSFOR           => DEFINE,
	DB_WRITECURSOR             => DEFINE,
	DB_XA_CREATE               => DEFINE,

	# enum DBTYPE
	DB_QUEUE                   => '3.0.55',

	#########
	# 3.1.12
	#########

	DBC_ACTIVE                 => IGNORE,
	DBC_OPD                    => IGNORE,
	DBC_TRANSIENT              => IGNORE,
	DBC_WRITEDUP               => IGNORE,
	DB_AGGRESSIVE              => DEFINE,
	DB_AM_DUPSORT              => IGNORE,
	DB_CACHED_COUNTS           => DEFINE,
	DB_CLIENT                  => DEFINE,
	DB_DBT_DUPOK               => IGNORE,
	DB_DBT_ISSET               => IGNORE,
	DB_ENV_RPCCLIENT           => DEFINE,
	DB_GET_BOTHC               => DEFINE,
	DB_JOIN_NOSORT             => DEFINE,
	DB_NODUPDATA               => DEFINE,
	DB_NOORDERCHK              => DEFINE,
	DB_NOSERVER                => DEFINE,
	DB_NOSERVER_HOME           => DEFINE,
	DB_NOSERVER_ID             => DEFINE,
	DB_ODDFILESIZE             => DEFINE,
	DB_ORDERCHKONLY            => DEFINE,
	DB_PREV_NODUP              => DEFINE,
	DB_PR_HEADERS              => DEFINE,
	DB_PR_PAGE                 => DEFINE,
	DB_PR_RECOVERYTEST         => DEFINE,
	DB_RDWRMASTER              => DEFINE,
	DB_SALVAGE                 => DEFINE,
	DB_VERIFY_BAD              => DEFINE,
	DB_VERIFY_FATAL            => DEFINE,
	DB_VRFY_FLAGMASK           => DEFINE,

	# enum db_recops
	DB_TXN_ABORT               => '3.1.12',
	DB_TXN_BACKWARD_ROLL       => '3.1.12',
	DB_TXN_FORWARD_ROLL        => '3.1.12',
	DB_TXN_OPENFILES           => '3.1.12',

	#########
	# 3.2.3
	#########

	DBC_COMPENSATE             => IGNORE,
	DB_AM_VERIFYING            => IGNORE,
	DB_CDB_ALLDB               => DEFINE,
	DB_ENV_CDB_ALLDB           => DEFINE,
	DB_EXTENT                  => DEFINE,
	DB_JOINENV                 => DEFINE,
	DB_LOCK_SWITCH             => DEFINE,
	DB_MPOOL_EXTENT            => DEFINE,
	DB_REGION_MAGIC            => DEFINE,
	DB_UNRESOLVED_CHILD        => DEFINE,
	DB_VERIFY                  => DEFINE,

	# enum db_notices
	DB_NOTICE_LOGFILE_CHANGED  => IGNORE, # 3.2.3

	#########
	# 3.2.6
	#########

	DB_ALREADY_ABORTED         => DEFINE,
	DB_CONSUME_WAIT            => DEFINE,
	DB_JAVA_CALLBACK           => DEFINE,
	DB_TEST_POSTEXTDELETE      => DEFINE,
	DB_TEST_POSTEXTOPEN        => DEFINE,
	DB_TEST_POSTEXTUNLINK      => DEFINE,
	DB_TEST_PREEXTDELETE       => DEFINE,
	DB_TEST_PREEXTOPEN         => DEFINE,
	DB_TEST_PREEXTUNLINK       => DEFINE,

	# enum db_lockmode_t
	DB_LOCK_WAIT               => IGNORE, # 3.2.6

	#########
	# 3.3.4
	#########

	DBC_DIRTY_READ             => IGNORE,
	DBC_MULTIPLE               => IGNORE,
	DBC_MULTIPLE_KEY           => IGNORE,
	DB_AM_DIRTY                => IGNORE,
	DB_AM_SECONDARY            => IGNORE,
	DB_COMMIT                  => DEFINE,
	DB_DBT_APPMALLOC           => IGNORE,
	DB_DIRTY_READ              => DEFINE,
	DB_DONOTINDEX              => DEFINE,
	DB_ENV_PANIC_OK            => DEFINE,
	DB_ENV_RPCCLIENT_GIVEN     => DEFINE,
	DB_FAST_STAT               => DEFINE,
	DB_LOCK_MAXLOCKS           => DEFINE,
	DB_LOCK_MINLOCKS           => DEFINE,
	DB_LOCK_MINWRITE           => DEFINE,
	DB_MULTIPLE                => DEFINE,
	DB_MULTIPLE_KEY            => DEFINE,
	DB_PAGE_NOTFOUND           => DEFINE,
	DB_RPC_SERVERPROG          => DEFINE,
	DB_RPC_SERVERVERS          => DEFINE,
	DB_UPDATE_SECONDARY        => DEFINE,
	DB_XIDDATASIZE             => DEFINE,

	# enum db_recops
	DB_TXN_POPENFILES          => '3.3.4',

	# enum db_lockop_t
	DB_LOCK_UPGRADE_WRITE      => '3.3.4',

	# enum db_lockmode_t
	DB_LOCK_DIRTY              => IGNORE, # 3.3.4
	DB_LOCK_WWRITE             => IGNORE, # 3.3.4

	#########
	# 3.3.11
	#########

	DB_SECONDARY_BAD           => DEFINE,
	DB_SURPRISE_KID            => DEFINE,
	DB_TEST_POSTDESTROY        => DEFINE,
	DB_TEST_PREDESTROY         => DEFINE,

	#########
	# 4.0.7
	#########

	DB_APPLY_LOGREG            => DEFINE,
	DB_BROADCAST_EID           => DEFINE,
	DB_CL_WRITER               => DEFINE,
	DB_ENV_NOLOCKING           => DEFINE,
	DB_ENV_NOPANIC             => DEFINE,
	DB_ENV_REGION_INIT         => DEFINE,
	DB_ENV_REP_CLIENT          => DEFINE,
	DB_ENV_REP_LOGSONLY        => DEFINE,
	DB_ENV_REP_MASTER          => DEFINE,
	DB_ENV_YIELDCPU            => DEFINE,
	DB_GET_BOTH_RANGE          => DEFINE,
	DB_INVALID_EID             => DEFINE,
	DB_LOCK_EXPIRE             => DEFINE,
	DB_LOCK_FREE_LOCKER        => DEFINE,
	DB_LOCK_SET_TIMEOUT        => DEFINE,
	DB_LOGC_BUF_SIZE           => DEFINE,
	DB_LOG_DISK                => DEFINE,
	DB_LOG_LOCKED              => DEFINE,
	DB_LOG_SILENT_ERR          => DEFINE,
	DB_NOLOCKING               => DEFINE,
	DB_NOPANIC                 => DEFINE,
	DB_PANIC_ENVIRONMENT       => DEFINE,
	DB_REP_CLIENT              => DEFINE,
	DB_REP_DUPMASTER           => DEFINE,
	DB_REP_HOLDELECTION        => DEFINE,
	DB_REP_LOGSONLY            => DEFINE,
	DB_REP_MASTER              => DEFINE,
	DB_REP_NEWMASTER           => DEFINE,
	DB_REP_NEWSITE             => DEFINE,
	DB_REP_OUTDATED            => DEFINE,
	DB_REP_PERMANENT           => DEFINE,
	DB_REP_UNAVAIL             => DEFINE,
	DB_SET_LOCK_TIMEOUT        => DEFINE,
	DB_SET_TXN_NOW             => DEFINE,
	DB_SET_TXN_TIMEOUT         => DEFINE,
	DB_STAT_CLEAR              => DEFINE,
	DB_TIMEOUT                 => DEFINE,
	DB_YIELDCPU                => DEFINE,
	MP_FLUSH                   => IGNORE,
	MP_OPEN_CALLED             => IGNORE,
	MP_READONLY                => IGNORE,
	MP_UPGRADE                 => IGNORE,
	MP_UPGRADE_FAIL            => IGNORE,
	TXN_CHILDCOMMIT            => IGNORE,
	TXN_COMPENSATE             => IGNORE,
	TXN_DIRTY_READ             => IGNORE,
	TXN_LOCKTIMEOUT            => IGNORE,
	TXN_MALLOC                 => IGNORE,
	TXN_NOSYNC                 => IGNORE,
	TXN_NOWAIT                 => IGNORE,
	TXN_SYNC                   => IGNORE,

	# enum db_recops
	DB_TXN_APPLY               => '4.0.7',

	# enum db_lockop_t
	DB_LOCK_GET_TIMEOUT        => '4.0.7',
	DB_LOCK_PUT_READ           => '4.0.7',
	DB_LOCK_TIMEOUT            => '4.0.7',

	# enum db_status_t
	DB_LSTAT_EXPIRED           => IGNORE, # 4.0.7

a142 15
sub enum_Macro
{
    my $str = shift ;
    my ($major, $minor, $patch) = split /\./, $str ;

    my $macro = 
    "#if (DB_VERSION_MAJOR > $major) || \\\n" .
    "    (DB_VERSION_MAJOR == $major && DB_VERSION_MINOR > $minor) || \\\n" .
    "    (DB_VERSION_MAJOR == $major && DB_VERSION_MINOR == $minor && \\\n" .
    "     DB_VERSION_PATCH >= $patch)\n" ;

    return $macro;

}

d145 9
a153 3

    my @@names = () ;

d156 1
a156 2
        my $val = $constants{$key} ;
        next if $val eq IGNORE;
d158 25
a182 6
        if ($val eq STRING)
          { push @@names, { name => $key, type => "PV" } }
        elsif ($val eq DEFINE)
          { push @@names, $key }
        else
          { push @@names, { name => $key, macro => [enum_Macro($val), "#endif\n"] } }
a183 7

    WriteConstants(
              NAME    => BerkeleyDB,
              NAMES   => \@@names,
              C_FILE  => 'constants.h',
              XS_FILE => 'constants.xs',
          ) ;
d188 3
a190 9
    my $START = '@@EXPORT = qw(' ;
    my $START_re = quotemeta $START ;
    my $END = ');';
    my $END_re = quotemeta $END ;

    # skip to the @@EXPORT declaration
    OUTER: while (<>)
    {
        if ( /^\s*$START_re/ )
d192 2
a193 3
            # skip to the end marker.
            while (<>) 
                { last OUTER if /^\s*$END_re/ }
a194 1
        print ;
a196 1
    print "$START\n";
a198 1
        next if $constants{$key} eq IGNORE;
a200 1
    print "\t$END\n";
d202 5
a206 3
    while (<>)
    {
        print ;
d210 2
a211 3
my $opt = shift ;
OutputXS() if $opt =~ /^xs/i ;
OutputPM() if $opt =~ /^pm/i ;
@


1.1.1.3
log
@track: auto import
@
text
@a599 72
	#########
	# 4.0.14
	#########

	DB_EID_BROADCAST           => DEFINE,
	DB_EID_INVALID             => DEFINE,
	DB_VERB_REPLICATION        => DEFINE,

	#########
	# 4.1.12
	#########

	DBC_OWN_LID                => IGNORE,
	DB_AM_CHKSUM               => IGNORE,
	DB_AM_CL_WRITER            => IGNORE,
	DB_AM_COMPENSATE           => IGNORE,
	DB_AM_CREATED              => IGNORE,
	DB_AM_CREATED_MSTR         => IGNORE,
	DB_AM_DBM_ERROR            => IGNORE,
	DB_AM_DELIMITER            => IGNORE,
	DB_AM_ENCRYPT              => IGNORE,
	DB_AM_FIXEDLEN             => IGNORE,
	DB_AM_IN_RENAME            => IGNORE,
	DB_AM_OPEN_CALLED          => IGNORE,
	DB_AM_PAD                  => IGNORE,
	DB_AM_RECNUM               => IGNORE,
	DB_AM_RENUMBER             => IGNORE,
	DB_AM_REVSPLITOFF          => IGNORE,
	DB_AM_SNAPSHOT             => IGNORE,
	DB_AUTO_COMMIT             => DEFINE,
	DB_CHKSUM_SHA1             => DEFINE,
	DB_DIRECT                  => DEFINE,
	DB_DIRECT_DB               => DEFINE,
	DB_DIRECT_LOG              => DEFINE,
	DB_ENCRYPT                 => DEFINE,
	DB_ENCRYPT_AES             => DEFINE,
	DB_ENV_DIRECT_DB           => DEFINE,
	DB_ENV_DIRECT_LOG          => DEFINE,
	DB_ENV_FATAL               => DEFINE,
	DB_ENV_OVERWRITE           => DEFINE,
	DB_ENV_TXN_WRITE_NOSYNC    => DEFINE,
	DB_HANDLE_LOCK             => DEFINE,
	DB_LOCK_NOTEXIST           => DEFINE,
	DB_LOCK_REMOVE             => DEFINE,
	DB_NOCOPY                  => DEFINE,
	DB_OVERWRITE               => DEFINE,
	DB_PERMANENT               => DEFINE,
	DB_PRINTABLE               => DEFINE,
	DB_RENAMEMAGIC             => DEFINE,
	DB_TEST_SUBDB_LOCKS        => DEFINE,
	DB_TXN_LOCK                => DEFINE,
	DB_TXN_WRITE_NOSYNC        => DEFINE,
	DB_WRITEOPEN               => DEFINE,
	DB_WRNOSYNC                => DEFINE,
	_DB_EXT_PROT_IN_           => IGNORE,

	# enum db_lockop_t
	DB_LOCK_TRADE              => '4.1.12',

	# enum db_status_t
	DB_LSTAT_NOTEXIST          => IGNORE, # 4.1.12

	# enum DB_CACHE_PRIORITY
	DB_PRIORITY_VERY_LOW       => '4.1.12',
	DB_PRIORITY_LOW            => '4.1.12',
	DB_PRIORITY_DEFAULT        => '4.1.12',
	DB_PRIORITY_HIGH           => '4.1.12',
	DB_PRIORITY_VERY_HIGH      => '4.1.12',

	# enum db_recops
	DB_TXN_GETPGNOS            => '4.1.12',
	DB_TXN_PRINT               => '4.1.12',
a634 1
    warn "Updating constants.xs & constants.h...\n";
a644 5
    my $filename = 'BerkeleyDB.pm';
    warn "Updating $filename...\n";
    open IN, "<$filename" || die "Cannot open $filename: $!\n";
    open OUT, ">$filename.tmp" || die "Cannot open $filename.tmp: $!\n";

d651 1
a651 1
    OUTER: while (<IN>)
d656 1
a656 1
            while (<IN>) 
d659 1
a659 1
        print OUT ;
d662 1
a662 1
    print OUT "$START\n";
d666 1
a666 1
	print OUT "\t$key\n";
d668 1
a668 1
    print OUT "\t$END\n";
d670 1
a670 1
    while (<IN>)
d672 1
a672 1
        print OUT ;
a673 6

    close IN;
    close OUT;

    rename $filename, "$filename.bak" || die "Cannot rename $filename: $!\n" ;
    rename "$filename.tmp", $filename || die "Cannot rename $filename.tmp: $!\n" ;
d676 3
a678 2
OutputXS() ;
OutputPM() ;
@


1.1.1.4
log
@track: auto import
@
text
@d609 1
a609 1
	# 4.1.17
a635 1
	DB_ENV_AUTO_COMMIT         => DEFINE,
a648 6
	DB_TEST_ELECTINIT          => DEFINE,
	DB_TEST_ELECTSEND          => DEFINE,
	DB_TEST_ELECTVOTE1         => DEFINE,
	DB_TEST_ELECTVOTE2         => DEFINE,
	DB_TEST_ELECTWAIT1         => DEFINE,
	DB_TEST_ELECTWAIT2         => DEFINE,
d657 1
a657 1
	DB_LOCK_TRADE              => '4.1.17',
d660 1
a660 1
	DB_LSTAT_NOTEXIST          => IGNORE, # 4.1.17
d663 5
a667 5
	DB_PRIORITY_VERY_LOW       => '4.1.17',
	DB_PRIORITY_LOW            => '4.1.17',
	DB_PRIORITY_DEFAULT        => '4.1.17',
	DB_PRIORITY_HIGH           => '4.1.17',
	DB_PRIORITY_VERY_HIGH      => '4.1.17',
d670 2
a671 4
	DB_TXN_BACKWARD_ALLOC      => '4.1.17',
	DB_TXN_GETPGNOS            => '4.1.17',
	DB_TXN_PRINT               => '4.1.17',

@


