Commit graph

18 commits

Author SHA1 Message Date
obache
b5273fa5e2 .so in PLIST are handled by framework, no need to take care here anymore. 2013-03-03 11:55:12 +00:00
jperkin
a9ddf0d2ca Make packaging the (considerable amount of) documentation optional.
Without docs, the resulting binary package is 4MB instead of 22MB.
2013-03-01 16:10:23 +00:00
obache
fc4aef6c04 On Cygwin, shared libraries will be installed in `bin', and symbolic links
will not be created.
2013-02-24 06:55:29 +00:00
adam
b8f5b7fb0f Changes 4.8.30:
* The log file format changed in 11gR2.
* Replication Manager sites can specify one or more possible client-to-client
  peers.
* Added resource management feature in all Berkeley DB APIs to automatically
  manage cursor and database handles by closing them when they are not
  required, if they are not yet closed.
* Added a SQL interface to the Berkeley DB library. The interface is based on -
  and a drop-in-replacement for - the SQLite API. It can be accessed via a
  command line utility, a C API, or existing APIs built for SQLite.
* Added hash databases support to the DB->compact interface.
* Renamed the "db_sql" utility to "db_sql_codegen". This utility is not built
  by default. To build this utility, enter --enable-sql_codegen as an argument
  to configure.
* Added transactional support in db_sql_codegen utility. Specify TRANSACTIONAL
  or NONTRANSACTIONAL in hint comments in SQL statement, db_sql_codegen
  enable/disable transaction in generated code accordingly.
* Added the feature read-your-writes consistency that allows client application
  to check, or wait for a specific transaction to be replicated from the master
  before reading database.
* Added DB log verification feature, accessible via the API and a new utility.
  This feature can help debugging and analysis.
* Added support for applications to assign master/client role explicitly at any
  time. Replication Manager can now be configured not to initiate elections.
* more...
2010-06-02 12:06:21 +00:00
joerg
0268c554bd Remove @dirrm entries from PLISTs 2009-06-14 17:38:38 +00:00
wiz
05d07eb4c8 Update to 4.7.25.1:
Berkeley DB 4.7.25 Change Log

Database or Log File On-Disk Format Changes:

  1. The log file format changed in 4.7.

New Features:

  1. The lock manager may now be fully partitioned, improving performance
     on some multi-CPU systems. [#15880]
  2. Replication groups are now architecture-neutral, supporting
     connections between differing architectures (big-endian or
     little-endian, independent of structure padding). [#15787] [#15840]
  3. Java: A new Direct Persistence Layer adds a built-in Plain Old Java
     Object (POJO)-based persistent object model, which provides support
     for complex object models without compromises in performance. For an
     introduction to the Direct Persistence Layer API, see Getting Started
     with Data Storage. [#15936]
  4. Add the DB_ENV->set_intermediate_dir_mode method to support the
     creation of intermediate directories needed during recovery. [#15097]
  5. The DB_ENV->failchk method can now abort transactions for threads,
     which have failed while blocked on a concurrency lock. This
     significantly decreases the need for database environment recovery
     after thread of control failure. [#15626]
  6. Replication Manager clients now can be configured to monitor the
     connection to the master using heartbeat messages, in order to
     promptly discover connection failures. [#15714]
  7. The logging system may now be configured to pre-zero log files when
     they are created, improving performance on some systems. [#15758]

Database Environment Changes:

  1. Restructure aborted page allocation handling on systems without an
     ftruncate system call. This enables the Berkeley DB High Availability
     product on systems, which do not support ftruncate. [#15602]
  2. Fix a bug where closing a database handle after aborting a transaction
     which included a failed open of that handle could result in
     application failure. [#15650]
  3. Fix minor memory leaks when closing a private database environment.
     [#15663]
  4. Fix a bug leading to a panic of "unpinned page returned" if a cursor
     was used for a delete multiple times and deadlocked during one of the
     deletes. [#15944]
  5. Optionally signal processes still running in the environment before
     running recovery. [#15984]

Concurrent Data Store Changes:

 None.

General Access Method Changes:

  1. Fix a bug where closing a database handle after aborting a transaction
     which included a failed open of that database handle could result in
     application failure. [#15650]
  2. Fix a bug that could cause panic in a database environment configured
     with POSIX-style thread locking, if a database open failed. [#15662]
  3. Fix bug in the DB->compact method which could cause a panic if a
     thread was about to release a page while another thread was truncating
     the database file. [#15671]
  4. Fix an obscure case of interaction between a cursor scan and delete
     that was prematurely returning DB_NOTFOUND. [#15785]
  5. Fix a bug in the DB->compact method where if read-uncommitted was
     configured, a reader reading uncommitted data my see an inconsistent
     entry between when the compact method detects an error and when it
     aborts the enclosing transaction. [#15856]
  6. Fix a bug in the DB->compact method where a thread of control mail
     fail if two threads are compacting the same section of a Recno
     database. [#15856]
  7. Fix a bug in DB->compact method, avoid an assertion failure when zero
     pages can be freed. [#15965]
  8. Fix a bug return a non-zero error when DB->truncate is called with
     open cursors. [#15973]
  9. Fix a bug add HANDLE_DEAD checking for DB cursors. [#15990]
 10. Fix a bug to now generate errors when DB_SEQUENCE->stat is called
     without first opening the sequence. [#15995]
 11. Fix a bug to no longer dereference a pointer into a hash structure,
     when hash functionality is disabled.  [#16095]

Btree Access Method Changes:

 None.

Hash Access Method Changes:

  1. Fix a bug where a database store into a Hash database could
     self-deadlock in a database environment configured for the Berkeley DB
     Concurrent Data Store product, and with a free-threaded DB_ENV or DB
     handle. [#15718]

Queue Access Method Changes:

  1. Fix a bug that could cause a put or delete of a queue element to
     return a DB_NOTGRANTED error, if blocked. [#15933]

Recno Access Method Changes:

  1. Expose db_env_set_func_malloc, db_env_set_func_realloc, and
     db_env_set_func_free through the Windows API for the DB dll. [#16045]

C-specific API Changes:

 None.

Java-specific API Changes:

  1. Fix a bug where enabling MVCC on a database through the Java API was
     ignored. [#15644]
  2. Fixed memory leak bugs in error message buffering in the Java API.
     [#15843]
  3. Fix a bug where Java SecondaryConfig was not setting
     SecondaryMultiKeyCreator from the underlying db handle [OTN FORUM}
  4. Fix a bug so that getStartupComplete will now return a boolean instead
     of an int. [#16067]
  5. Fix a bug in the Java API, where Berkeley DB would hang on exit when
     using replication. [#16142]

Direct Persistence Layer (DPL), Bindings and Collections API:

  1. A new Direct Persistence Layer adds a built-in Plain Old Java Object
     (POJO)-based persistent object model, which provides support for
     complex object models without compromises in performance. For an
     introduction to the Direct Persistence Layer API, see Getting Started
     with Data Storage. [#15936]
  2.  Fixed a bug in the remove method of the Iterator instances returned
     by the StoredCollection.iterator method in the collections package.
     This bug caused ArrayIndexOutOfBoundsException in some cases when
     calling next, previous, hasNext or hasPrevious after calling remove.
     (Note that this issue does not apply to StoredIterator instances
     returned by the StoredCollection.storedIterator method.) This bug was
     reported in this forum thread:
     http://forums.oracle.com/forums/thread.jspa?messageID=2187896
     [#15858]
  3. Fixed a bug in the remove method of the StoredIterator instances
     returned by StoredCollection.storedIterator method in the collections
     package. If the sequence of methods next-remove-previous was called,
     previous would sometimes return the removed record. If the sequence of
     methods previous-remove-next was called, next would sometimes return
     the removed record. (Note that this issue does not apply to Iterator
     instances returned by the StoredCollection.iterator method.) [#15909]
  4. Fixed a bug that causes a memory leak for applications where many
     Environment objects are opened and closed and the CurrentTransaction
     or TransactionRunner class is used. The problem was reported in this
     JE Forum thread:
     http://forums.oracle.com/forums/thread.jspa?messageID=1782659 [#15444]
  5. Added StoredContainer.areKeyRangesAllowed method.  Key ranges and the
     methods in SortedMap and SortedSet such as subMap and subSet are now
     explicitly disallowed for RECNO and QUEUE databases -- they are only
     supported for BTREE databases.  Before, using key ranges in a RECNO or
     QUEUE database did not work, but was not explicitly prohibited in the
     Collections API. [#15936]

Tcl-specific API Changes:

  1. The Berkeley DB Tcl API does not attempt to avoid evaluating input as
     Tcl commands. For this reason, it may be dangerous to pass unreviewed
     user input through the Berkeley DB Tcl API, as the input may
     subsequently be evaluated as a Tcl command. To minimize the
     effectiveness of a Tcl injection attack, the Berkeley DB Tcl API in
     the 4.7 release routine resets process' effective user and group IDs
     to the real user and group IDs. [#15597]

RPC-specific Client/Server Changes:

 None.

Replication Changes:

  1. Fix a bug where a master failure resulted in multiple attempts to
     perform a "fast election"; subsequent elections, when necessary, now
     use the normal nsites value. [#15099]
  2. Replication performance enhancements to speed up failover. [#15490]
  3. Fix a bug where replication could self-block in a database environment
     configured for in-memory logging. [#15503]
  4. Fix a bug where replication would attempt to read log file version
     numbers in a database configured for in-memory logging. [#15503]
  5. Fix a bug where log files were not removed during client
     initialization in a database configured for in-memory logging.
     [#15503]
  6. The 4.7 release no longer supports live replication upgrade from the
     4.2 or 4.3 releases, only from the 4.4 and later releases. [#15602]
  7. Fix a bug where replication could re-request missing records on every
     arriving record. [#15629]
  8. Change the DB_ENV->rep_set_request method to use time, not the number
     of messages, when re-requesting missed messages on a replication
     client. [#15629]
  9. Fix a minor memory leak on the master when updating a client during
     internal initialization. [#15634]
 10. Fix a bug where a client error when syncing with a new replication
     group master could result in an inability to ever re-join the group.
     [#15648]
 11. Change dbenv->rep_set_request to use time-based values instead of
     counters. [#15682]
 12. Fix a bug where a LOCK_NOTGRANTED error could be returned from the
     DB_ENV->rep_process_message method, instead of being handled
     internally by replication. [#15685]
 13. Fix a bug where the Replication Manager would reject a fresh
     connection from a remote site that had crashed and restarted,
     displaying the message: "redundant incoming connection will be
     ignored". [#15731]
 14. The Replication Manager now supports dynamic negotiation of the best
     available wire protocol version, on a per-connection basis. [#15783]
 15. Fix a bug, which could lead to slow performance of internal
     initialization under the Replication Manager, as evidenced by "queue
     limit exceeded" messages in verbose replication diagnostic output.
     [#15788]
 16. Fix a bug where replication control message were not portable between
     replication clients with different endian architectures. [#15793]
 17. Add a configuration option to turn off Replication Manager's special
     handling of elections in 2-site groups. [#15873]
 18. Fix a bug making it impossible to call replicationManagerAddRemoteSite
     in the Java API after having called replicationManagerStart. [#15875]
 19. Fix a bug where the DB_EVENT_REP_STARTUPDONE event could be triggered
     too early. [#15887]
 20. Fix a bug where the rcvd_ts timestamp is reset when the user just
     changes the threshold. [#15895]
 21. Fix a bug where the master in a 2-site replication group might wait
     for client acknowledgement, even when there was no client connected.
     [#15927]
 22. Fix a bug, clean up and restart internal init if master log is gone.
     [#16006]
 23. Fix a bug, ignore page messages that are from an old internal init.
     [#16075] [#16059]
 24. Fix a bug where checkpoint records do not indicate a database was a
     named in-memory database. [#16076]
 25. Fix a bug with in-memory replication, where we returned with the log
     region mutex held in an error path, leading to self-deadlock. [#16088]
 26. Fix a bug which causes the DB_REP_CHECKPOINT_DELAY setting in
     rep_set_timeout() to be interpreted in seconds, rather than
     microseconds. [#16153]

XA Resource Manager Changes:

  1. Fix a bug where the DB_ENV->failchk method and replication in general
     could fail in database environments configured for XA. [#15654]

Locking Subsystem Changes:

  1. Fix a bug causing a lock or transaction timeout to not be set properly
     after the first timeout triggers on a particular lock id. [#15847]
  2. Fix a bug that would cause a trap if DB_ENV->lock_id_free was passed
     an invalid locker id. [#16005]
  3. Fix a bug when thread tracking is enabled where an attempt is made to
     release a mutex that is not lock. [#16011]

Logging Subsystem Changes:

  1. Fix a bug, handle zero-length log records doing HA sync with in-memory
     logs. [#15838]
  2. Fix a bug that could cause DB_ENV->failcheck to leak log region
     memory. [#15925]
  3. Fix a bug where the abort of a transaction that opened a database
     could leak log region memory. [#15953]
  4. Fix a bug that could leak memory in the DB_ENV->log_archive interface
     if a log file was not found. [#16013]

Memory Pool Subsystem Changes:

  1. Fix multiple MVCC bugs including a race, which could result in
     incorrect data being returned to the application. [#15653]
  2. Fixed a bug that left an active file in the buffer pool after a
     database create was aborted. [#15918]
  3. Fix a bug where there could be uneven distribution of pages if a
     single database and multiple cache regions are configured. [#16015]
  4. Fix a bug where DB_MPOOLFILE->set_maxsize was dropping the wrong mutex
     after open. [#16050]

Mutex Subsystem Changes:

  1. Fix a bug where mutex contention in database environments configured
     for hybrid mutex support could result in performance degradation.
     [#15646]
  2. Set the DB_MUTEX_PROCESS_ONLY flag on all mutexes in private
     environments, they can't be shared and so we can use the faster,
     intra-process only mutex implementations [#16025]
  3. Fix a bug so that mutexes are now removed from the environment
     signature if mutexes are disabled. [#16042]

Transaction Subsystem Changes:

  1. Fix a bug that could cause a checkpoint to selfblock attempting to
     flush a file, when the file handle was closed by another thread during
     the flush. [#15692]
  2. Fix a bug that could cause DB_ENV->failcheck to hang if there were
     pending prepared transactions in the environment. [#15925]
  3. Prepared transactions will now use the sync setting from the
     environment.  Default to flushing the log on commit (was nosync).
     [#15995]
  4. If __txn_getactive fails, we now return with the log region mutex
     held.  This is not a bus since __txn_getactive cannot really fail.
     [#16088]

Utility Changes:

  1. Update db_stat with -x option for mutex stats
  2. Fix an incorrect assumption about buffer size when getting an overflow
     page in db_verify.  [#16064]

Configuration, Documentation, Sample Application, Portability and Build
Changes:

  1. Fix an installation bug where the Berkeley DB PHP header file was not
     installed in the correct place.
  2. Merge the run-time configuration sleep and yield functions. [#15037]
  3. Fix Handle_DEAD and other expected replication errors in the C++
     sample application ReqQuoteExample.cpp. [15568]
  4. Add support for monotonic timers. [#15670]
  5. Fix bugs where applications using the db_env_func_map and
     db_env_func_unmap run-time configuration functions could not join
     existing database environments, or open multiple DB_ENV handles for a
     single environment. [#15930]
  6. Add documentation about building Berkeley DB for VxWorks 6.x.
  7. Remove the HAVE_FINE_GRAINED_LOCK_MANAGER flag, it is obsolete in 4.7.
  8. Fix a bug in ex_rep, add a missing break which could cause a segment
     fault.
  9. Fix build warnings from 64 bit Windows build. [#16029]
 10. Fix an alignment bug on ARM Linux.  Force the assignment to use
     memcpy.  [#16125]
 11. Fix a bug in the Windows specific code of ex_sequence.c, where there
     was an invalide printf specifier.  [#16131]
 12. Improve the timer in ex_tpcb to use high resolution timers.  [#16154]
 13. Mention in the documentation that env->open() requires DB_THREAD to be
     specified when using repmgr. [#16163]
 14. Disable support for mmap on Windows CE.  The only affect is that we do
     not attempt to mmap small read only databases into the mpool. [#16169]
2008-09-06 20:53:51 +00:00
adam
4901698707 Changes 4.6.21:
* Fix a bug where mutex contention in database environments configured for
  hybrid mutex support could result in performance degradation.
* Fix a bug where closing a database handle after aborting a transaction
  which included a failed open of that database handle could result in
  application failure.
* Fix multiple MVCC bugs including a race which could result in incorrect
  data being returned to the application.
* Fix a bug where a database store into a Hash database could self-deadlock
  in a database environment configured for the Berkeley DB Concurrent Data
  Store product and with a free-threaded DB_ENV or DB handle.
* Fix an installation bug where Berkeley DB's PHP header file was not installed
  in the correct place.
2008-01-10 21:55:51 +00:00
wiz
5898e428d0 Update to 4.5.20.2:
Multi-Version Concurrency Control (MVCC)
improves performance of highly concurrent, mixed read/write systems
by giving each user their own snapshot of the database and managing
concurrent changes by many users

Non-stop Upgrades
enables a replicated Oracle Berkeley DB system to be upgraded
without downtime. For customers that must maintain 99.999 percent
system uptime, this allows them to upgrade the Oracle Berkeley DB
database without taking down the entire system

Replication Framework
provides a pre-built and supported set of functions for quickly
building replicated or highly available systems, simplifying and
accelerating their development effort
2007-06-08 12:23:50 +00:00
wiz
4892cc8c94 Update to 4.4.20:
Changes since Berkeley DB 4.4.16:

1. Add support for Visual Studio 2005. [#13521]

2. Fix a bug with in-memory transaction logs when files wrapped
around the buffer. [#13589]

3. Fix a bug where we needed to close replication's open files during
replication initialization. [#13623]

4. Fix a bug which could leave locks in the environment if database
compaction was run in a transactional environment on a non-transactional
database. This might have also have triggered deadlocks if the database
was opened transactionally. [#13680]

5. Fix a bug where setting the DB_REGISTER flag could result in
unnecessarily running recovery, or corruption of the registry file on
Windows systems. [#13789]

6. Fix a bug in Database.compact that could cause JVM crashes or
NullPointerException. [#13791]

7. Fix a bug that would cause a trap if an environment was opened
specifying DB_REGISTER and the environment directory could not be found.
[#13793]

8. Fix a buffer overflow bug when displaying process and thread IDs
in the Berkeley DB statistics output. [#13796]

9. Fix a bug where if there is insufficient memory for a database key
in a DBT configured to return a key value into user-specified memory, the
cursor is moved forward to the next entry in the database, which can cause
applications to skip key/data pairs. [#13815]

10. Fix a bug that could cause the loss of an update to a QUEUE database
in a hot backup. [#13823]

11. Fix a bug where retrieval from a secondary index could result in a
core dump. [#13843]

12. Fix a bug that could cause part of the free list to become unlinked
if a btree compaction was rolled back due to a transaction abort. [#13891]

13. Fix a bug with in-memory logging that could cause a race condition to
corrupt the logs. [#13919]

[no shlib major bump this time, yay]
2006-02-05 00:12:54 +00:00
wiz
2ebb45f403 Update to 4.4.16:
New in Berkeley DB 4.4:

  * In-memory replication
  * Client-to-client replication
  * Delayed client synchronization
  * Synchronization throttling
  * Master election speed-ups
  * Hot backup utility
  * Online Btree compaction
  * Online Btree disk space reclamation
  * Online abandoned lock removal
  * Automated recovery serialization
  * Transactional Application Developer's Guide
2006-01-06 15:08:46 +00:00
jlam
0360ff8bd5 Update databases/db4 to 4.3.21. Changes from version 4.2.25 include:
* Automatic initialization of replication clients
* Replication election process is now Paxos compliant
* In memory transaction logs allowing in memory databases
* Enhanced Java API nearly identical to that of our Java Edition
* Native support for sequence number generation
* Degree 2 transaction isolation
* Mutex statistics can now be easily gathered and recorded
* Support for Itanium2 chips running Windows XP
2004-12-27 04:27:49 +00:00
agc
43321a5469 The mechanical PLIST changes were a bit too aggressive - restore some
files and symlinks mistakenly removed.
2004-09-23 16:55:09 +00:00
jlam
1a280185e1 Mechanical changes to package PLISTs to make use of LIBTOOLIZE_PLIST.
All library names listed by *.la files no longer need to be listed
in the PLIST, e.g., instead of:

	lib/libfoo.a
	lib/libfoo.la
	lib/libfoo.so
	lib/libfoo.so.0
	lib/libfoo.so.0.1

one simply needs:

	lib/libfoo.la

and bsd.pkg.mk will automatically ensure that the additional library
names are listed in the installed package +CONTENTS file.

Also make LIBTOOLIZE_PLIST default to "yes".
2004-09-22 08:09:14 +00:00
jlam
e6aa5ca27d Move the HTML documentation into ${PREFIX}/share/doc/html. Bump the
PKGREVISION due to user-visible difference.
2004-06-28 22:11:37 +00:00
jlam
eccb01de96 Build databases/db4 with the DB-1.85 compatability layer and bump the
PKGREVISION.  This allows using db4 as BDB_DEFAULT for packages that
USE_DB185.
2004-03-12 21:35:58 +00:00
epg
62d66bbfd4 Update to 4.2.52.
Clean up Makefile.

Set MAINTAINER to tech-pkg@NetBSD.org (previous maintainer, Alex
Newman, says he no longer maintains this).

Changes are too many to list.
2003-12-07 00:51:07 +00:00
wiz
346ac2bdac Update to 4.1.25, based on PR 20289 by Daniel Farrugia.
Database or Log File On-Disk Format Changes:

 1. All of the access method database formats changed in the Berkeley
 DB 4.1 release (Btree/Recno: version 8 to version 9, Hash: version
 7 to version 8, and Queue: version 3 to version 4). The format
 changes are entirely backward compatible, and no database upgrades
 are needed.

Major New Features:

 1. Berkeley DB now includes support for database encryption using
 the AES encryption standard. [#1797]

 2. Berkeley DB now includes support for database page checksums
 to allow detection of database corruption during I/O. [#1797]

 3. The shared memory buffer pool code base was substantially
 reworked in the 4.1 release to improve concurrent throughput.
 [#4655]

General Environment Changes:

 1. Allow applications to specify transaction handles to the DB->open method call, so database creation can be grouped with other Berkeley DB calls in a single transaction. [#4257]
 2. Add the DB_ENV->remove and DB_ENV->rename method calls that support transactional protection of database removal and renaming. [#4257]
 3. Add the DB_ENV->set_flags flags DB_DIRECT_DB and DB_DIRECT_LOG, which disable the system's buffer cache where possible. [#4526]
 4. Unlock the pthread mutex if pthread_cond_wait() returns an error. [#4872]
 5. Fix a memory leak caused by running recovery. [#4913]
 6. Fix a bug in which closing an environment with open database handles could result in application crashes. [#4991]
 7. Fix a bug where DB_CONFIG files were ignored if the database environment defaulted to the application's current working directory. [#5265]
 8. Fix a bug where transaction abort or commit could fail to destroy the handle. [#5633]
 9. Fix a set of bugs where the Berkeley DB API could return DB_RUNRECOVERY without panic-ing the database environment itself or calling the application's panic-callback function. [#5743]
10. Fix a bug in where DB=>rename and DB->remove method calls could leak a transaction and its locks. [#5824]
11. Fix a bug where recovery feedback could return values greater than 100. [#6193]
12. Fix a bug where a page allocated by a transaction, eventually aborted because of application or system failure, could appear twice in the free list, if catastrophic recovery was performed. [#6222]
13. Add a new flag, DB_AUTO_COMMIT, that wraps all database modification operations inside a transaction, to the DB_ENV->set_flags method. [#6395]
14. Fix a bug where recovery could fail when upgrading between releases. [#6372]
15. Fix a recovery bug where pages that were repeatedly freed and allocated could be lost. [#6479] [#6501]
16. Change DB_CONFIG reading to handle non-<newline> terminated last line. [#6490]

General Access Method Changes:

 1. Allow applications to specify transaction handles to the DB->associate method call, so secondary index creation can be grouped with other Berkeley DB calls in a single transaction. [#4185]
 2. Add a new flag, DB_AUTO_COMMIT, that wraps single database operations inside a transaction. This flag is supported by the DB->del, DB->open, DB->put, DB->truncate,DB_ENV->remove, and DB_ENV->rename methods. [#4257]
 3. The DB_EXCL DB->open method flag has been enhanced to work on subdatabases. [#4257]
 4. Fix a bug in which a DB->put(DB_APPEND) could result in leaked memory or a corruption in the returned record number. [#5002]
 5. Fix a bug in the database salvage code that could leave pages pinned in the cache. [#5037]
 6. Add a flag to the DB->verify method to output salvaged key/data pairs in printable characters. [#5037]
 7. Fix a bug in which DB->verify() might continue and report extraneous database corruption after a fatal error. [#5131]
 8. Fix a bug where calling the DB->stat method before the DB->open method could drop core. [#5190]
 9. Fix a bug in which a DB->get, DBcursor->c_get, or DBcursor->c_pget on a secondary index, in the Concurrent Data Store product, could result in a deadlock. [#5192]
10. Fix a bug in which DB->verify() could correctly report errors but still return success. [#5297]
11. Add support for the DB->set_cache_priority interface, that allows applications to set the underlying cache priority for their database files. [#5375]
12. Fix a bug where calling DBcursor->c_pget with a database that is not a secondary index would drop core. [#5391]
13. Fix a bug where a bug in the DB->truncate method could cause recovery to fail. [#5679]
14. Fix a bug where DB_GET_RECNO would fail if specified to a secondary index. [#5811]
15. Fix a bug where building a secondary index for an existing primary database could fail in Concurrent Data Store environments. [#5811]
16. Fix a bug where the DB->rename method could fail, causing a problem during recovery. [#5893]
17. Fix a bug in which a DB->get or DB->pget call on a secondary index could fail when done with a handle shared among multiple threads. [#5899]
18. Fix a bug in which a DB->put operation on a database with off-page duplicates could leak a duplicate cursor, thereby preventing transactions being able to commit. [#5936]
19. Fix a bug where overflow page reference counts were not properly maintained when databases were truncated. [#6168]
20. Fix a bug where the bulk get APIs could allocate large amounts of heap memory. [#6439] [#6520]

Btree Access Method Changes:

 1. Fix a bug that prevented loads of sorted data, with duplicates at the end of the tree, from creating compact trees. [#4926]
 2. No longer return a copy of the key if the DB_GET_BOTH or DB_GET_BOTH_RANGE flags are specified. [#4470]
 3. Fix a bug where the fast-search code could hold an unlocked reference to a page, which could lead to recovery failure. [#5518]
 4. Fix a bug where some cursor operations on a database, for which the bt_minkey size had been specified, could fail to use the correct overflow key/data item size. [#6183]
 5. Fix a bug where the recovery of an aborted transaction that did a reverse Btree split might leave a page in an inconsistent state. [#6393]

Hash Access Method Changes:

 1. Fix bugs that could cause hash recovery to drop core. [#4978]
 2. Use access method flags instead of interface flags to check for readonly access to a hash database with an application-specified hash function. [#5121]
 3. Fix a bug where a hash database allocation of a new set of buckets may be improperly recovered by catastrophic recovery if the transaction is split across log files and the beginning segment of the transaction is not included in the set of logs to be recovered. [#5942]
 4. Fix a bug where aborting particular hash allocations could lead to a database on which the verifier would loop infinitely. [#5966]
 5. Fix a bug where a memory allocation failure could result in a system hang. [#5988]
 6. Remove nelem from the Hash access method statistics (the value was incorrect once items had been added or removed from the database). [#6101]
 7. Fix a bug where a page allocated by an aborted transaction might not be placed on the free list by recovery, if the file holding the page was created as part of recovery, and a later page was part of a hash bucket allocation. [#6184]
 8. Fix a bug where allocated pages could be improperly recovered on systems that require explicit zero-ing of filesystem pages. [#6534]

Queue Access Method Changes:

 1. No longer return a copy of the key if the DB_SET_RANGE flag is specified. [#4470]
 2. Fix a bug where DBcursor->c_get (with DB_MULTIPLE or DB_MULTIPLE_KEY specified) could fail on a Queue database if the record numbers had wrapped. [#6397]

Recno Access Method Changes:

 1. No longer return a copy of the key if the DB_GET_BOTH or DB_GET_BOTH_RANGE flags are specified. [#4470]
 2. Fix a bug where non-transactional locking applications could leak locks when modifying Recno databases. [#5766]
 3. Fix a bug where DBcursor->c_get with the DB_GET_RECNO flag would panic the environment if the cursor was uninitialized. [#5935]
 4. Fix a bug where deleting pages from a three-level Recno tree could cause the database environment to panic. [#6232]

C++-specific API Changes:

 1. C++ DbLock::put is replaced by DbEnv::lock_put to match the C and Java API change in Release 4.0. [#5170]
 2. Declared destructors and methods within Db and DbEnv classes to be virtual, making subclassing safer. [#5264]
 3. Fixed a bug where Dbt objects with no flags set would not be filled with data by some operations. [#5706]
 4. Added DbDeadlockException, DbRunRecoveryException, and DbLockNotGrantedException classes to C++, and throw them accordingly. [#6134]
 5. Added C++ methods to support remaining conversions between C++ classes and C structs where appropriate. In particular, DbTxn/DB_TXN conversions and DbMpoolFile/DB_MPOOLFILE were added. [#6278]
 6. Fix a bug in DbEnv::~DbEnv() that could cause memory corruption if a DbEnv was deleted without being closed. [#6342]
 7. Reordered C++ class declarations to avoid a GCC g++ warning about function inlining. [#6406]
 8. Fix a bug in the DbEnv destructor that could cause memory corruption when an environment was destroyed without closing first. [#6342]
 9. Change DbEnv and Db destructor behavior to close the handle if it was not already closed. [#6342]

Java-specific API Changes:

 1. Added check for system property "sleepycat.Berkeley DB.libfile" that can be used to specify a complete pathname for the JNI shared library. This is needed as a workaround on Mac OS X, where libtool cannot currently create a library with a .jnilib extension which is what the current JDK expects by default. [#5664]
 2. Fixed handling of JVM out of memory conditions, when some JNI methods return NULL. When the JVM runs out of memory, calls should consistently fail with OutOfMemoryErrors. [#5995]
 3. Added Dbt.get_object and Dbt.set_object convenience routines to the Java API to make using serialization easier. [#6113]
 4. Fixed a bug that prevented Java's Db.set_feedback from working, fixed document for Java's Db.set_feedback, some callback methods were misnamed. [#6137]
 5. Fix a NullPointerException in Db.finalize() if the database had been closed. [#6504]
 6. Marked DbEnv constructor with "throws DbException". [#6342]

Tcl-specific API Changes:

    None.

RPC-specific Client/Server Changes:

 1. Fix a bug where Db and DbEnv handles were not thread-safe. [#6102]

Replication Changes:

 1. A large number of replication bugs were fixed in this release. The replication support is now believed to be production quality.
 2. Add the DB_ENV->set_rep_limit interface, allowing applications to limit the data sent in response to a single DB_ENV->rep_process_message call. [#5999]
 3. Add the DB_ENV->set_rep_stat interface, returning information from the replication subsystem [#5919]

XA Resource Manager Changes:

 1. Added support for multi-threaded XA. Environments can now have multiple XA transactions active. db_env_xa_attach() can be used to get a DB_TXN that corresponds to the XA transaction in the current thread. [#5049]
 2. Added a com.sleepycat.Berkeley DB.xa package that implements J2EE support for XA. This includes new DbXAResource, DbXid classes that implement the XAResource and Xid interfaces. [#5049]
 3. Fix a bug where aborting a prepared transaction after recovery may fail. [#6383]
 4. Fix a bug where recovery might fail if a prepared transaction had previously extended the size of a file and then was aborted. [#6387]
 5. Fix a bug where if the commit of a prepared transaction fails the transaction would be aborted. [#6389]

Locking Subsystem Changes:

 1. Fix a bug where lock counts were incorrect if a lock request returned DB_LOCK_NOTGRANTED or an error occurred. [#4923]
 2. Fix a bug where lock downgrades were counted as releases, so the lock release statistics could be wrong. [#5762]
 3. Fix a bug where the lock and transaction timeout values could not be reset by threads of control joining Berkeley DB database environments. [#5996]
 4. Fix a bug where applications using lock and/or transaction timeouts could hit a race condition that would lead to a segmentation fault. [#6061]

Logging Subsystem Changes:

 1. DB_ENV->log_register and DB_ENV->log_unregister have been removed from the interface. [#0046]
 2. Fix a bug where creating a database environment with a non-existent logging directory could drop core. [#5833]
 3. Add support allowing applications to change the log file size in existing database environments. [#4875]
 4. Fix a bug where a write error on a log record spanning a buffer could cause transaction abort to fail and the database environment to panic. [#5830]

Memory Pool Subsystem Changes:

 1. The DB_INCOMPLETE error has been removed, as cache flushing can no longer return without completing. [#4655]
 2. Fix a bug where Berkeley DB might refuse to open a file if the open was attempted while another thread was writing a large buffer. [#4885]
 3. Prefer clean buffers to dirty buffers when selecting a buffer for eviction. [#4934]
 4. Fix a bug where transaction checkpoint might miss flushing a buffer to disk. [#5033]
 5. Fix a bug where Berkeley DB applications could run out of file descriptors. [#5535]
 6. Fix bugs where Berkeley DB could self-deadlock on systems requiring mutex resource reclamation after application failure. [#5722] [#6523]

Transaction Subsystem Changes:

 1. Go back only one checkpoint, not two, when performing normal recovery. [#4284]
 2. Fix a bug where an abort of a transaction could fail if there was no disk space for the log. [#5740]
 3. Fix a bug where the checkpoint log-sequence-number could reference a non-existent log record. [#5789]
 4. Fix a bug where subtransactions which allocated pages from the filesystem and subsequently aborted could cause other pages allocated by sibling transactions to not be freed if the parent transaction then aborted. [#5903]
 5. Fix a bug where transactions doing multiple updates to a queue database which spanned a checkpoint could be improperly handled by recovery. [#5898]

Utility Changes:

 1. Fix a bug where the -p option could not be specified with the -R or -r options. [#5037]
 2. The utilities were modified to correctly size their private caches in order to handle databases with large page sizes. [#5055]
 3. Fix a bug in which utilities run with the -N option would fail to ignore the environment's panic flag. [#5082]
 4. Fix a bug where invalid log records could cause db_printlog to drop core. [#5173]
 5. Add a new option to the db_verify utility to support verification of files that include databases having non-standard sorting or hash functions. [#5237]

Configuration, Documentation, Portability and Build Changes:

 1. Replace test-and-set mutexes on Windows with a new mutex implementation that signals an event to wake blocked threads. [#4413]
 2. Support configuration of POSIX pthread mutexes on systems where the pthread mutexes do not support inter-process locks. [#4942]
 3. Add mutex support for the ARM architecture using the gcc compiler. [#5018]
 4. On Windows NT/2000/XP, switched to atomic seek-and-read/write operations to improve performance of concurrent reads [#0654].
 5. Support cross-compilation using the GNU compiler tool chain. [#4558]
 6. Fix a bug where libraries were always installed read-only. [#5096]
 7. Fix a bug where temporary files on VxWorks could fail. [#5160]
 8. Fix a bug where Berkeley DB did not install correctly if the system cp utility did not support the -f option. [#5111]
 9. Correct the documentation for the Queue access method statistics field qs_cur_recno to be the "Next available record number". [#5190]
10. Fix a bug where file rename could fail on Windows/9X. [#5223]
11. Removed support for Microsoft Visual Studio 5.0 [#5231]
12. Switched to using HANDLEs for all I/O operations on Windows to overcome a hard limit of 2048 open file descriptors in Microsoft's C runtime library. [#5249]
13. Fix a bug where Berkeley DB error message routines could drop core on the PowerPC and UltraSPARC architectures. [#5331]
14. Rename OSTREAMCLASS to __DB_OSTREAMCLASS in db_cxx.h to avoid stepping on application name space. [#5402]
15. Support Linux on the S/390 architecture. [#5608]
16. Work around a bug in Solaris where the pthread_cond_wait call could return because a signal was delivered to the application. [#5640]
17. Fix build line for loadable libraries to include -module to support Mac OS X. [#5664]
18. Fix a bug in the PPC mutex support for the Mac OS X system. [#5781]
19. Added support for Java on Mac OS X. A workaround on the Java command line is currently necessary; it is documented. [#5664]
20. Added support for Tcl on Mac OS X. [#5664]
21. Update Windows build instructions to cover Visual C++ .NET. [#5684]
22. AIX configuration changes for building on AIX 4.3.3 and 5 with both standard and Visual Age compilers. [#5779]
23. Add a new UNIX configuration argument, --with-mutex=MUTEX, to allow applications to select a mutex implementation. [#6040]
24. Changed libtool and configure so we can now correctly build and install Tcl and Java loadable shared libraries that work on Mac OS X. [#6117]
25. Fix mutex alignment problems on historic HP-UX releases that could make multi-process applications fail. [#6250]
26. Installed static .a archives on Mac OS X need to be built with the ranlib -c option so linked applications will not see undefined __db_jump errors. [#6215]
27. Upgrade pthread and mmap support in the uClibc library to support Berkeley DB. [#6268]
28. Fixed error in determining include directories during configuration for --enable-java. The error can cause compilation errors on certain systems with newer versions of gcc. [#6445]
2003-06-10 09:54:41 +00:00
uebayasi
5a667bb687 Initial import of Sleepycat db4 provided by Alex Newman <dolemite@wuli.nu>
in pkg/16075.

From DESCR:

	Berkeley DB is an embeddable database system that supports keyed
	access to data. The software is distributed in source code form,
	and developers can compile and link the source code into a single
	library for inclusion directly in their applications.
2002-03-30 05:35:57 +00:00