BerkeleyDB API

This CHICKEN binding for BerkeleyDB consists of a single module in a shared library of the same name. You can load the library and require the module using (require-extension berkeley-db)

Database Environments

current-database-environment A parameter holding the current database environment pointer or #f. (open-database-environment HOME [#:mode MODE] [#:password PASSWORD] [#:locking] [#:logging] [#:memory-pool] [#:replication] [#:transactions] [#:recover] [#:recover/fatal] [#:use-environment] [#:use-environment/root] [#:create] [#:lockdown] [#:failure-check] [#:private] [#:auto-commit] [#:direct-i/o] [#:synchronous-i/o] [#:multiversion] [#:no-mmap] [#:overwrite] [#:initialize-region] [#:timeout->not-granted] [#:asynchronous] [#:no-wait] [#:snapshot] [#:asynchronous-write] [#:encrypt/aes]) => ENVIRONMENT Creates a database environment and configures various settings through setup methods and the open method. Sets current-database-environment to the newly created environment. (close-database-environment [ENVIRONMENT] [#:synchronous]) => (void) Closes a database environment and destroys the handle. If no ENVIRONMENT is specified explicitly, closes the current environment and sets current-database-environment to #f.

Transactions

(with-transaction THUNK [#:read-committed] [#:read-uncommitted] [#:bulk] [#:asynchronous] [#:no-wait] [#:snapshot] [#:synchronous] [#:wait] [#:asynchronous-write]) => (values ...) Wraps a call to THUNK in a transaction setup with the optional flags. Returns whatever (THUNK) returns. The transaction is committed upon normal return from (THUNK) and aborted if (THUNK) throws an exception.

Database Files

(copy-database FILE TARGET [#:password PASSWORD] [#:auto-commit]) => (void) Copies a database from FILE to the TARGET directory. (rename-database FILE TARGET [DATABASE] [#:auto-commit]) => (void) Renames a database or database file. (delete-database FILE [DATABASE] [#:auto-commit]) => (void) Deletes a database or database file.

Databases

(open-database FILE [TYPE [DATABASE]] [#:mode MODE] [#:byte-order BYTE-ORDER] [#:page-size SIZE/BYTES] [#:heap-max-size SIZE/BYTES] [#:queue-extent-size SIZE/PAGES] [#:record-size SIZE/BYTES] [#:record-delimiter CHAR] [#:record-padding CHAR] [#:record-source FILE] [#:password PASSWORD] [#:auto-commit] [#:create] [#:exclusive] [#:multiversion] [#:no-mmap] [#:read-only] [#:read-uncommitted] [#:free-threaded] [#:truncate] [#:checksum] [#:encrypt] [#:transactions-not-durable] [#:duplicates] [#:duplicates/sorted] [#:no-reverse-splitting] [#:in-order] [#:renumber] [#:snapshot] [#:encrypt/aes] [#:serialize+deserialize WRITE+READ]) => DATABASE Creates a database and configures various settings through setup methods and the open method. The TYPE can be b-tree, hash-table, heap, queue, records or #f. If it is false, the database must exist and its type is detected automatically. If you want to store something else than blobs or strings in the database, use the WRITE+READ argument to pass a pair of write- and read-like procedures for serialization and deserialization of arbitrary values. (database-type DATABASE) => TYPE Determines the type of a database. (database-serializer DATABASE) => PROC Retrieves the serialization procedure associated with the database or #f in case the database just handles strings or blobs. (database-deserializer DATABASE) => PROC Retrieves the deserialization procedure associated with the database or #f in case the database just handles strings or blobs. (close-database DATABASE [#:asynchronous]) => (void) Closes a database and destroys the handle. (database-associate DATABASE PROC SECONDARY [FOREIGN] [#:create] [#:immutable] [#:abort] [#:cascade]) => (void) Associates a database with a secondary index and optionally associates the secondary index with a foreign key constraint. The serializers and deserializers of the linked databases, if configured, must be compatible. (database-ref DATABASE KEY [DEFAULT] [#:consume] [#:consume/wait] [#:ignore-lease] [#:read-committed] [#:read-uncommitted] [#:read-modify-write]) => VALUE Extracts a record from the database. If no record is found and DEFAULT is given, it is invoked in case it is a procedure and returned otherwise. (database-set! DATABASE KEY VALUE [#:append] [#:no-duplicate] [#:no-overwrite] [#:overwrite-duplicate] => RECNO | (void) (set! (database-ref DATABASE KEY) VALUE) => (void) Stores a record in the database. If the #:append mode of operation is selected, the key of the appended record is returned. (database-exists? DATABASE KEY [#:read-committed] [#:read-uncommitted] [#:read-modify-write]) => BOOLEAN Checks whether a key exists in the database. (database-delete! DATABASE KEY [#:consume]) Deletes a record from the database. (database-fold DATABASE PROC SEED [KEY] [#:range] [#:read-committed] [#:read-uncommitted] [#:snapshot]) => (PROC KEY VALUE (... (PROC KEY VALUE SEED))) Folds over the records in the database. If KEY is given, only fold over the records with matching key, unless #:range is also specified to start walking from the first index greater than or equal to KEY in a b-tree database. (database-walk DATABASE PROC [KEY] [#:range] [#:read-committed] [#:read-uncommitted] [#:snapshot]) => (void) Like database-fold, but discarding the result.