|
|
|
use libc::{c_int, c_uint};
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//// Environment Flags
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/// mmap at a fixed address (experimental)
|
|
|
|
pub const MDB_FIXEDMAP: c_uint = 0x01;
|
|
|
|
/// no environment directory
|
|
|
|
pub const MDB_NOSUBDIR: c_uint = 0x4000;
|
|
|
|
/// don't fsync after commit
|
|
|
|
pub const MDB_NOSYNC: c_uint = 0x10000;
|
|
|
|
/// read only
|
|
|
|
pub const MDB_RDONLY: c_uint = 0x20000;
|
|
|
|
/// don't fsync metapage after commit
|
|
|
|
pub const MDB_NOMETASYNC: c_uint = 0x40000;
|
|
|
|
/// use writable mmap
|
|
|
|
pub const MDB_WRITEMAP: c_uint = 0x80000;
|
|
|
|
/// use asynchronous msync when #MDB_WRITEMAP is used
|
|
|
|
pub const MDB_MAPASYNC: c_uint = 0x100000;
|
|
|
|
/// tie reader locktable slots to #MDB_txn objects instead of to threads
|
|
|
|
pub const MDB_NOTLS: c_uint = 0x200000;
|
|
|
|
/// don't do any locking, caller must manage their own locks
|
|
|
|
pub const MDB_NOLOCK: c_uint = 0x400000;
|
|
|
|
/// don't do readahead (no effect on Windows)
|
|
|
|
pub const MDB_NORDAHEAD: c_uint = 0x800000;
|
|
|
|
/// don't initialize malloc'd memory before writing to datafile
|
|
|
|
pub const MDB_NOMEMINIT: c_uint = 0x1000000;
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//// Database Flags
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/// use reverse string keys
|
|
|
|
pub const MDB_REVERSEKEY: c_uint = 0x02;
|
|
|
|
/// use sorted duplicates
|
|
|
|
pub const MDB_DUPSORT: c_uint = 0x04;
|
|
|
|
/// numeric keys in native byte order. The keys must all be of the same size.
|
|
|
|
pub const MDB_INTEGERKEY: c_uint = 0x08;
|
|
|
|
/// with `MDB_DUPSORT`, sorted dup items have fixed size.
|
|
|
|
pub const MDB_DUPFIXED: c_uint = 0x10;
|
|
|
|
/// with `MDB_DUPSORT`, dups are numeric in native byte order.
|
|
|
|
pub const MDB_INTEGERDUP: c_uint = 0x20;
|
|
|
|
/// with #MDB_DUPSORT, use reverse string dups.
|
|
|
|
pub const MDB_REVERSEDUP: c_uint = 0x40;
|
|
|
|
/// create DB if not already existing.
|
|
|
|
pub const MDB_CREATE: c_uint = 0x40000;
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//// Write Flags
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/// For put: Don't write if the key already exists.
|
|
|
|
pub const MDB_NOOVERWRITE: c_uint = 0x10;
|
|
|
|
/// Only for `MDB_DUPSORT`.
|
|
|
|
///
|
|
|
|
/// For put: don't write if the key and data pair already exist.
|
|
|
|
/// For `mdb_cursor_del`: remove all duplicate data items.
|
|
|
|
pub const MDB_NODUPDATA: c_uint = 0x20;
|
|
|
|
/// For `mdb_cursor_put`: overwrite the current key/data pair.
|
|
|
|
pub const MDB_CURRENT: c_uint = 0x40;
|
|
|
|
/// For put: Just reserve space for data, don't copy it. Return a pointer to the reserved space.
|
|
|
|
pub const MDB_RESERVE: c_uint = 0x10000;
|
|
|
|
/// Data is being appended, don't split full pages.
|
|
|
|
pub const MDB_APPEND: c_uint = 0x20000;
|
|
|
|
/// Duplicate data is being appended, don't split full pages.
|
|
|
|
pub const MDB_APPENDDUP: c_uint = 0x40000;
|
|
|
|
/// Store multiple data items in one call. Only for #MDB_DUPFIXED.
|
|
|
|
pub const MDB_MULTIPLE: c_uint = 0x80000;
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//// Copy Flags
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/// Compacting copy: Omit free space from copy, and renumber all pages sequentially.
|
|
|
|
pub const MDB_CP_COMPACT: c_uint = 0x01;
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//// Return Codes
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/// Successful result.
|
|
|
|
pub const MDB_SUCCESS: c_int = 0;
|
|
|
|
|
|
|
|
/// key/data pair already exists.
|
|
|
|
pub const MDB_KEYEXIST: c_int = -30799;
|
|
|
|
|
|
|
|
/// key/data pair not found (EOF).
|
|
|
|
pub const MDB_NOTFOUND: c_int = -30798;
|
|
|
|
|
|
|
|
/// Requested page not found - this usually indicates corruption.
|
|
|
|
pub const MDB_PAGE_NOTFOUND: c_int = -30797;
|
|
|
|
|
|
|
|
/// Located page was wrong type.
|
|
|
|
pub const MDB_CORRUPTED: c_int = -30796;
|
|
|
|
|
|
|
|
/// Update of meta page failed or environment had fatal error.
|
|
|
|
pub const MDB_PANIC : c_int = -30795;
|
|
|
|
|
|
|
|
/// Environment version mismatch.
|
|
|
|
pub const MDB_VERSION_MISMATCH: c_int = -30794;
|
|
|
|
|
|
|
|
/// File is not a valid LMDB file.
|
|
|
|
pub const MDB_INVALID: c_int = -30793;
|
|
|
|
|
|
|
|
/// Environment mapsize reached.
|
|
|
|
pub const MDB_MAP_FULL: c_int = -30792;
|
|
|
|
|
|
|
|
/// Environment maxdbs reached.
|
|
|
|
pub const MDB_DBS_FULL: c_int = -30791;
|
|
|
|
|
|
|
|
/// Environment maxreaders reached.
|
|
|
|
pub const MDB_READERS_FULL: c_int = -30790;
|
|
|
|
|
|
|
|
/// Too many TLS keys in use - Windows only.
|
|
|
|
pub const MDB_TLS_FULL: c_int = -30789;
|
|
|
|
|
|
|
|
/// Txn has too many dirty pages.
|
|
|
|
pub const MDB_TXN_FULL: c_int = -30788;
|
|
|
|
|
|
|
|
/// Cursor stack too deep - internal error.
|
|
|
|
pub const MDB_CURSOR_FULL: c_int = -30787;
|
|
|
|
|
|
|
|
/// Page has not enough space - internal error.
|
|
|
|
pub const MDB_PAGE_FULL: c_int = -30786;
|
|
|
|
|
|
|
|
/// Database contents grew beyond environment mapsize.
|
|
|
|
pub const MDB_MAP_RESIZED: c_int = -30785;
|
|
|
|
|
|
|
|
/// MDB_INCOMPATIBLE: Operation and DB incompatible, or DB flags changed.
|
|
|
|
pub const MDB_INCOMPATIBLE: c_int = -30784;
|
|
|
|
|
|
|
|
/// Invalid reuse of reader locktable slot.
|
|
|
|
pub const MDB_BAD_RSLOT: c_int = -30783;
|
|
|
|
|
|
|
|
/// Transaction cannot recover - it must be aborted.
|
|
|
|
pub const MDB_BAD_TXN: c_int = -30782;
|
|
|
|
|
|
|
|
/// Unsupported size of key/DB name/data, or wrong DUPFIXED size.
|
|
|
|
pub const MDB_BAD_VALSIZE: c_int = -30781;
|
|
|
|
|
|
|
|
/// The specified DBI was changed unexpectedly.
|
|
|
|
pub const MDB_BAD_DBI: c_int = -30780;
|
|
|
|
|
|
|
|
/// The last defined error code.
|
|
|
|
pub const MDB_LAST_ERRCODE: c_int = MDB_BAD_DBI;
|