A ref change was pushed to the OpenLDAP (openldap.git) repository.
It will be available in the public mirror shortly.

The annotated tag, LMDB_0.9.18 has been created
        at  627c85175007bdd95c87054e4816dcf46ddff75c (tag)
   tagging  ad8488cfac644d7a289e428ab3c403c859d844cb (commit)
 tagged by  Howard Chu
        on  Fri Feb 5 21:23:36 2016 +0000

- Log -----------------------------------------------------------------
Release 0.9.18

Alexey Naumov (1):
      Fix possible crash in DLL_THREAD_DETACH (explodes in .Net Framework)

Chris Mikkelson (2):
      ITS#7363 Use posix semaphores on apple and bsd systems.
      ITS#7364 Remove POSIX semaphores when the last user closes the mdb 
environment.

Claude Brisson (3):
      bugfix for mdb_cursor_put with MDB_MULTIPLE
      ITS#7570 fix MDB_GET_MULTIPLE and MDB_NEXT_MULTIPLE
      ITS#7681 fix mdb_cursor_set behaviour for MDB_SET_RANGE

David Barbour (1):
      ITS#7994 Access to current transaction ID.

David Wilson (1):
      ITS#7734 Add MDB_NORDAHEAD to CHANGELESS.

Hallvard B Furuseth (19):
      .gitignore
      Makefile
      DPRINTF(): Fix format, handle non-gcc, simplify.
      Fix memncmp(): Do not memcmp twice
      Compact memnrcmp, just for fun
      Fix formats, reduce PAGEHDRSZ size_t->unsigned.
      Fix P_INVALID signedness
      Warning cleanup: Drop unneeded 'unsigned >= 0'
      Warning cleanup: if(rc = mdb_<func>()) & co
      Warning cleanup: printf(%p, struct*)
      Warning cleanup: Make parent index unsigned
      Drop unused vars
      #define _XOPEN_SOURCE for random()
      Private: make.sh
      Drop gcc extension ,##__VA_ARGS__.  Add DPUTS().
      Macro cleanup: Parenthesize, simplify, remove a ;
      Simplify: Replace IDL*_CMP() with CMP()
      Wrap O_DSYNC in MDB_DSYNC.
      Avoid cast-away-const for errstr[]

Hallvard Furuseth (308):
      libmdb/.gitignore += test[45], Doxygen output
      Cleanup mdb macros.
      C90 compatibility cleanup in mdb.
      Put MDB_node.<mn_lo,mn_hi> in host byte order.
      Check some mdb integer type assumptions
      Fix memn(r)cmp of key sizes > INT_MAX.  Simplify.
      explain mdl_midl_sort() istack size
      mdb type cleanup: Consistent reader count types.
      Add mdb.c:txnid_t for readability.
      Drop ULONG in favor of size_t.
      mdb integer type cleanup: Use MDB_dbi consistently.
      Restore missing LAZY_LOCKS semicolon.
      Fix mdb debug formats
      libmdb IDL cleanup.
      ITS#7191 Fix mdb_xcursor_init1() unaligned access
      Remove development file libmdb/make.sh
      Fix libmdb comments
      ITS#7191 Align dirty MDB pages on the stack
      Clean up MAP_FAILED handling in mdb.
      Fix valgrind call after malloc failure in  mdb.
      Tweak mdb comment with conflicting spec of 'ID'
      Fix MDB_txninfo.mt2 padding on Windows/Apple
      Fix MDB_DEBUG in last ITS#7299 commit.
      libmdb: Do not use the MDB_txbody.mtb_txnid field.
      libmdb: Set close-on-exec flag on lockfile
      libmdb: Don't open datafile twice when not needed.
      libmdb: Add C++ 'extern "C" {}' to *.h
      libmdb: MDB_FDATASYNC code cleanup.
      libmdb: signed meets unsigned warning cleanup
      libmdb: Simplify mdb_default_cmp. No real change.
      libmdb: Simplify pick_meta() from read_meta().
      libmdb: midl.h namespace cleanup.
      libmdb: Check sem_open() against SEM_FAILED.
      libmdb: Fix P_INVALID when pgno_t != unsigned long
      ITS#7363 Preprocessor namespace cleanup.
      MDB_WRITEMAP needs no DSYNC descriptor (me_mfd)
      Save pid in MDB_env instead of repeating getpid().
      Remove mdb data races. Use (txnid_t)-1 as "no ID".
      ITS#7377 Wrap sem_wait & file locks in EINTR loops
      ITS#7364 Always sem_unlink() in mdb_env_open().
      ITS#7364 Limit mdb lock upgrade before sem_unlink.
      ITS#7377 Catch MDB setup errors and clean up.
      ITS#7377 Catch MDB user errors.
      ITS#7377 Document caveats/troubeshooting.
      ITS#7377 Catch ftruncate() error
      ITS#7377 Wrap fcntl F_SETLK in EINTR loop too.
      Fix mdb_open() off-by-one error in maxdbs check
      Tweak MDB restrictions
      Fix last commit.
      More for mdb_env_copy().
      mdb_env_open(): Keep mdb_env_set_flags() flags.
      Explicitly unlock the MDB lockfile on Windows.
      ITS#7377 Errorcheck Windows calls and thread keys.
      Renumber MDB_NOSUBDIR. Check mdb_env_open() flags.
      Tweak MDB_FIXEDMAP handling.
      ITS#7453 Fix reset of MDB_NOSYNC/MDB_NOMETASYNC.
      API change: mdb_env_set_maxdbs(, *named* DBs).
      API change: mdb_drop() only accepts del=0 or 1.
      mdb_cursor_dbi(): Assume valid args.
      mdb_env_sync(,force=1): Override MDB_MAPASYNC.
      Delete liblmdb/mfree. It has moved into mdb_stat.
      Update MDB comments: Caveats, flags, etc.
      ITS#7512 Fix MDB page leak when malloc error.
      Freelist cleanup/streamlining
      ITS#7455 Save freelist in single-page chunks
      Add error code MDB_MAP_RESIZED.
      mdb_stat -ff[f]: show contiguous page spans.
      ITS#7517 Don't save dropped dirty MDB databases.
      ITS#7377 Catch MDB failure updating root pointers.
      ITS#7515 Fix MDB parent/child txn interaction.
      Revert "ITS#7515 update parent's mt_next_pgno on child commit"
      ITS#7485 Document key/data size limits in lmdb.h.
      ITS#7517 Document that dirty DBs may not be closed
      mdb_page_alloc(): Handle freeDB txnid range holes.
      ITS#7515 mdb_dbi_open(): Also open in parent txns.
      mdb_cursor_prev,mdb_cursor_next: Fix return value.
      Check DB flags when refreshing a stale MDB DBI.
      ITS#7512 Plug mdb_txn_abort(nested txn) page leaks.
      ITS#7515 Fix mdb_txn_commit(nested txn).
      Tweak prev commit: Restore if-test as an assert
      Tweak MDB_INCOMPATIBLE description
      Fix MDB_DEBUG compile when no varargs macros.
      Silence signedness warning
      Plug MDB memory leak of DB names.
      Clean up MDB_env setup.
      Cleanup for TLS key and read-only filesystem.
      Support mdb_txn_abort(a reset txn).
      Catch MDB txn reuse/sync errors.
      Tweak comments/readability.
      Plug mdb_cursor_renew() memleak
      Update fixes for dbi_open/close, ITS#7515.
      Cleaner "Support mdb_txn_abort(a reset txn)".
      Plug txn leak and MDB_NOTLS slot leaks on error.
      Close cursors when commit(writer). Factor out code.
      Allow mdb_cursor_close() after readonly txn ends.
      Update MDB doc: Cursors, DB handles, data lifetime
      mdb_dcmp(): Assume the database has MDB_DUPSORT.
      MDB warning cleanup.
      Simplify/cleanup mdb_cursor_init, C_ALLOCD.
      Fix mdb_env_close(unopened MDB_env).
      ITS#7515 Fix nested transaction error handling.
      ITS#7589 mdb_cursor_put(): Update ovpage nodesize.
      More ITS#7589: Fix prev commit.
      More ITS#7589 followup: OVPAGES() -> mp_pages.
      Tweak mdb_page_malloc(),mdb_page_get() semantics.
      ITS#7515 Fix nested txn touch of subpage/ovpage.
      ITS#7598 mdb_dbi_open(named DB): Check mainDB flags.
      ITS#7598 Tweak MDB_<NEXT/PREV>_NODUP,fix mdb_stat.
      mdb_stat cleanup.
      Factor out mdb_find_oldest,mdb_dlist_free,dirty_list.
      Drop unused liblmdb MIDL-range support.
      Drop me_pgfree, add mdb_freelist_save().
      More for ITS#7620 Fix mdb_ovpage_free().
      Don't #define _GNU_SOURCE if already defined.
      ITS#7594 Invalidate a dropped MDB DB's cursors.
      ITS#7594 Fix MDB cursor tracking with subDBs.
      Clean up mdb_page_touch(), mdb_page_copy().
      ITS#7515 Nested MDB txns: Inherit txn flags.
      ITS#7620: Keep empty IDLs. Tweak mdb_page_alloc().
      Simplify mdb_page_alloc().
      Rearrange MDB dirty page code.
      Factor out MDB variables/expressions, cleanup.
      Tweak MIDLs, catch errors.
      Catch more MDB errors. DPRINTF in mdb_env_reset0.
      Fix Windows I/O.
      Improve MDB error handling, drop seek calls.
      Tweak I/O, fix last commit.
      Makefile/user-macro comments.
      Factor out some vars, simplify.
      Fix alloc/free issues.
      Silence more uninit warnings
      Simplify MDB_cursor: Drop flags C_ALLOCD,C_SHADOW.
      ITS#7515 Fix tracking of parent txn's cursors.
      ITS#7515 Reject conflicting page versions.
      Do not follow uninited cursors' page pointers.
      Save freelist using proper mdb_cursor_put().
      Simplify: Always set C_UNTRACK for tracked cursors.
      Also set/clear P_KEEP in parent txn's cursors
      Clarify doc: mdb_copy, nested txns, mdb_drop().
      Tweak comments
      Silence warnings
      Fix mdb_reader_pid().
      MDB_LOCK_VERSION -> MDB_LOCK_FORMAT.
      Factor out MDB_env.
      Set MDB_TXN_ERROR when inconsistent txn state
      Fix page spilling when MDB_WRITEMAP.
      Fix mdb_ovpage_free() vs. spill.
      mdb_cursorpages_mark: Mark current txn and no more.
      Re-fix reader-pid code
      Replace unpredictable EINVAL error returns.
      mdb_txn_commit(): Always commit if MDB_TXN_SPILLS.
      Replace EINVALs with generalized MDB_INCOMPATIBLE.
      Refuse ops on bad txns
      Avoid compiling debug args with C90 compilers.
      Tweak ITS#7615 fix: Obey strict-aliasing rules.
      Simplify last commits
      mdb_page_spill(): Fix nested txn mt_dirty_room
      mdb_page_unspill(): Fix dirty_room in nested txn
      ITS#7682 mdb_env_copy(): Avoid Linux O_DIRECT bug.
      Update MDB documentation and comments.
      mdb_pages_xkeep(): Reformat, use common flag mask
      ITS#7515 mdb_pages_xkeep(): Careful about xcursors.
      ITS#7515 Fix mt_dirty_room in nested txns.
      ITS#7515 Fix mdb_txn_commit(nested txn with spills).
      ITS#7515 Fix mdb_page_unspill() in nested txn.
      mdb_page_unspill(): Rename local vars.
      Rename SWAP() to avoid conflict with sqlightning.
      Tweak MDB_DEBUG output
      Clean up and simplify mdb_page_search().
      Drop unneeded code.
      Set subDB DBI=parent DBI, fix MDB_DUPSORT delete.
      Set MDB_xcursor DB_DIRTY, clear md_name.
      Optimize code holding reader mutex
      mdb_node_add(): Plug page leak when MDB_PAGE_FULL.
      mdb_cursor_sibling(): Fix error result
      Maintain MDB_cursor.mc_top
      Add Caveat: Readers need write access. Whitespace.
      mdb_cursor_put(): Factor out code. Kill a label.
      ITS#7713 Handle bigger OS page sizes
      Fix MDB_MAXKEYSIZE doc: Account for MDB_DUPSORT.
      Add MDB_CLEANMEM option.
      Clean up mdb_copy.
      Warning cleanup.
      Add EVEN(): Micro-optimize "up to multiple of 2".
      put(MDB_MULTIPLE): Skip existing item cleanly.
      ITS#7589 Fix delete(uneven-sized MDB_DUPFIXED data).
      ITS#7589 Fix me_nodemax and related node sizes.
      Relax MDB_MAXKEYSIZE for existing data.
      Raise safe max MDB_MAXKEYSIZE.
      Support dynamic max MDB keysize.
      Fix mdb_reader_list() and its spec.
      Comment MDB_node, mdb_page_unspill, mdb_update_key
      Replace MDB_node.mn_offset[], to ease debugging.
      Fix commit "Raise safe max MDB_MAXKEYSIZE."
      Drop UNLOCK_MUTEX_R() on mdb_reader_pid() error
      ITS#7515 has been fixed.
      ITS#7665 Drop lmdb.h doc on non-overlapping flags.
      ITS#7772 Reduce spurious sub-page growth.
      Add mdb_dbg_pgno(): (sub)pagenum for debug output.
      sprintf format: pid_t need not be an int.
      ITS#7771 mdb_cursor_del0(): Fix xcursor tracking.
      mdb_page_malloc(): Move VGMEMP_ALLOC before memset
      Invalidate the txn on corruption/internal errors
      Wrap __func__ in mdb_func_
      ITS#7377 Invalidate txn on page-allocation errors
      Add mdb_env_<set,get>_userctx()
      ITS#7775 Add mdb_env_set_assert()
      ITS#7775 Drop <assert.h>, drop/replace assert()s.
      Revert "ITS#7772 Reduce spurious sub-page growth."
      ITS#7793 mdb_cursor_put(): Fix MDB_CURRENT.
      mtest[46]: Use different DBs when different flags.
      mtest*.c, sample-*.c: Add/note error checks.
      Doxygen fixes
      mdb_txn_renew0(): Fix un-mutexed me_flags update.
      mdb_page_list(): Support & display all page types
      More checks for closed DBIs and invalidated txns.
      Move code out of mdb_cursor_del0() and mdb_del().
      Don't use non-existent node info in branch/leaf2
      Handle more errors. Invalidate txn if needed.
      mtest: Accept an MDB_NOTFOUND case
      Tweak mdb_mid2l_insert() call from ITS#7775.
      Update MDB_PANIC description
      Revert "Update MDB_PANIC description" (thinko).
      ITS#7829 Simplify last commit
      More ITS#7793 Check key->mv_size with MDB_CURRENT.
      Document DBI issues, extend MDB_BAD_VALSIZE.
      ITS#7771 mdb_cursor_put doc: Cursor moves on error
      ITS#7861 Re-fix MDB_db.md_entries.
      ITS#7834 Fix MDB_MULTIPLE writing multiple keys.
      Simplify MDB_MULTIPLE
      Factor out MDB_TXN_ERROR
      More for big MDB_MAXKEYSIZE with MDB_DUPSORT.
      Factor out mdb_cmp_clong()
      Comment ~MDB_APPEND, from earlier commit message.
      Fix MDB_GET_MULTIPLE/MDB_NEXT_MULTIPLE doc.
      ITS#7793 Re-fix MDB_CURRENT doc: Match current item
      Fix mdb_page_loose() vs. mdb_page_flush().
      Fixes for loose pages
      ITS#7713 cleanups
      ITS#7789 Fix resize vs MDB_NOMETASYNC, and a comment.
      MDB_DEVEL doxygen fix
      MDB_MAXKEYSIZE = 0 (dynamic value) when MDB_DEVEL
      ITS#7789 Fix mdb_env_write_meta().
      Fix mdb_copy & co when MDB pagesize < OS pagesize
      Split out mdb_midl_xmerge, add MDB_IDL_ALLOCLEN
      Fix loose pages in mdb_freelist_save().
      Microoptimize loose pages
      ITS#7961,#7987 Re-fix txn init.
      Simplify recent changes a bit.
      Fix comments
      mdb_strerror: Silence warning @ Windows
      Fix WIN32 -> _WIN32
      make clean: remove *.lo
      ITS#8021 doc: Don't mix MDB_WRITEMAP + non-WRITEMAP
      Restrictive mdb_copy file mode.
      Fix EACCES description
      mdb_txn_renew(): Clear error from previous txn
      Reformat mdb_dbi_open() doc for clarity
      Cleanup mtest* and sample-*.
      ITS#8117 Fix MDB_INTEGERDUP keysize doc + md_dcmp
      mtest*.c: Fix MDB_NOOVERWRITE, plug cursor leak
      ITS#8157 mdb_txn_renew0(): init after error checks
      ITS#8157
      ITS#8156 Fix MDB_MAXKEYSIZE doc
      ITS#8156
      more CHANGES
      Clarify mdb_env_open() doc of 'mode' param
      Update for mdb_env_open
      ITS#8181 Verify that records are/aren't DBs.
      ITS#8200 Fix mdb_midl_shrink() usage, return void
      ITS#7377 mdb_env_init_meta(): Catch calloc error
      ITS#8263 streamline prev patch
      For ITS#7789: Ensure mapsize >= pages in use.
      Try to avoid an invalid datafile after failed init
      Copy some env flags to txn. Factor out flags.
      Cleanup MDB_env.me_txn0.
      Set/clear mp_pad, md_pad (MDB_DUPFIXED data size).
      Whitespace (align with mdb.master)
      Add MDB_USE_POSIX_MUTEX.
      Support robust mutexes/locks. Add mdb_mutex_t etc.
      mdb_env_get_flags(): Hide internal flags
      Use mdb_cmp_long() for FREE_DBI
      mdb_drop0(): Omit scanning DUPSORT sub-DB leaves
      mdb_txn_begin() cleanup
      Simpler mdb_txn_commit().
      Simpler mdb_node_shrink()
      Simpler mdb_drop().
      Simpler flag/DBI checks and MDB_DEBUG
      Add DB_USRVALID, to avoid 'dbi == FREE_DBI' tests
      More ESECT declarations
      Simpler mdb_node_add()
      Factor me_metas[toggle] out to mdb_env_pick_meta()
      Move code into mdb_txn_end(). Was mdb_txn_reset0.
      Catch most uses of finished/parent txns.
      Cleanup: Drop !mt_dbxs hack, use MDB_TXN_FINISHED
      ITS#7377 Always notice env error on txn startup.
      ITS#7377 Catch mdb_put() to blocked/read-only txns
      Kill magic numbers for NUM_METAS, databases
      Simpler mdb_env_write_meta()
      Fix typo in mdb_tassert().
      ITS#7209 Default MDB_DSYNC = O_SYNC if no O_DSYNC
      ITS#7209
      ITS#8312 Fix loose pages in commit(nested txn)
      CURSOR_TMP_[UN]TRACK() -> WITH_CURSOR_TRACKING()
      mdb_dbi_open(): Catch strdup failure
      ITS#8334 Fix MDB_APPENDDUP vs. rewrite(single item)
      ITS#8334, mdb_copy
      ITS#7992 Fix memleak in prev change

Heiko Becker (2):
      ITS#8168 Allow passing AR to make
      ITS#8169 Allow passing mandir to make install

Howard Chu (702):
      Checkpoint
      Use header when some fields are unspecified
      Use NOSYNC flag
      Return statistics for a DB
      Fix splits, cursor navigation, newpage flags
      Cursor testing
      Fix P_INVALID def
      Add locking support
      Use shmat for lock region instead of mmap
      Use toggling meta page instead of always appending
      Log txnID in msgs
      meta init
      Save a byte in nodesz
      More cursor tests, fail...
      Drop header page
      Re-use old pages
      More fixes for seeking
      Fix db_stat stuff
      No longer need -lssl
      Use an environment directory
      Tweak comment about overflow allocations
      More prep for subdatabases
      Replace ulong with ULONG macro
      Start DB restructuring
      More subDBs, compiles now
      Tweaks to txn handling
      Fixup metapage writes
      Fix free page re-use
      Tweak mt_dbxs array
      More subdb stuff, add cursor_last()
      Use STAILQ instead of SIMPLEQ
      More sub-db stuff
      Save free-list in DB
      Additional debug, fixes
      Add some legalese
      Use BDB cursor terminology
      Add cursor_prev
      Add explicit md_dirty flag to dbxs
      Setup context for sorted dups
      Don't malloc the free_pgs list every time
      Fix reader txn locking
      Add mdb_put for sorted dups
      Add mdb_del for sorted dups
      Add mdb_get for sorted dups
      Added cursor_get for sorted dups
      Sorted dups basically completed, needs testing
      Make sure subDB info is saved after writes
      More subDB stuff
      Valgrind complaints
      Parameter cleanup
      More subDB fixes
      Header cleanup
      Consolidate stat functions
      More DB checks
      Cleanup, add mdb_cursor_count()
      Allow setting DB flags on main DB
      Add MDB_INTEGERKEY db flag
      Sorted dup fixes
      Start using as a library
      Make a shared library too
      Portability tweak
      Add mtest2 and 3
      Add another FIXME comment
      Rename idl to midl
      Tweak MDB_val to match struct berval
      Move MDB_VERSION to mdb.h, use major/minor/patch
      Rationalize mdbenv namespace
      Add mdb_version()
      Silence stupid warning
      Better defs for locker structures
      Minor cleanup
      Use O_DSYNC on metafd.
      Use IDL2 for dirty page list
      Get rid of AC_MEMCPY
      Error cleanup
      Protect err codes
      allow silent commit of read-only TXNs
      Add mdb_strerror(), mdb_env_set_flags()
      Update DB tables on commit even if no dirty pages
      More txn/cursor cleanup
      Fix dupsort fetch
      Sub-DB init/dirty fixes
      Fix overflow page read
      Fix multi-page commits
      Don't alloc in cursor_push/pop
      Sorted dups fix
      Fix cursor_set for dups
      Keep re-using dpages instead of freeing them
      Set MINKEYS to 2
      First cut at DUPFIXED support
      Add txn_reset / txn_renew
      More debug output
      More debug, fix MDB_DEL_DUP
      Fix free page reclaim and dbs table update
      Fix update of big data items
      Fix mdb_split, tweak split_indx if space is tight
      Reduce excessive memcpy in mdb_split
      Tweak locks, fix race conditions
      Cleanup, fix freelist alloc
      API cleanup, doxygen docs for public API
      Ugly-as-sin initial Windows port
      Tweak docs
      Cleanup midl, start documenting internals
      Fix mdb_split, fix MDB_GET_BOTH
      Add MDB_{FIRST,LAST}_DUP for cursor_get
      Begin reimplementing basic ops as cursor ops
      Use cursor->mc_flags
      Cursors in-progress, broken
      Cursor stuff working, no major perf gain
      mdb_cmp refactoring
      Use mdb_midl_append/sort instead of _insert
      Minor cleanup
      Fix for mdb_cmp refactoring
      Change MDB_node to depend on 2-byte alignment
      Guarantee nodes are 2-byte aligned
      Fix search_node, add cintcmp
      Fix mdb_move_node again
      Cleanup unused code
      Further cursor-based restructuring
      Forgot to commit this
      Forgot to commit this
      Merge branch 'mdb.cursor' into mdb.master
      Fix previous commit
      Speedup cintcmp
      More docs
      More docs
      Partial revert, fix MDB_page definition
      Minor typos, additional clarification
      If put(NOOVERWRITE) exists, return existing data
      Fix 2e3bc39fa94f21d692d8e94183f57aef9122c487
      Merge branch 'mdb.master' of 
ssh://git-master.openldap.org/~git/git/openldap into mdb.master
      One more sub-cursor fix
      More cursor_init cleanup
      Minor tweaks, update relfunc behavior
      cursor_set/search_node tweaks, use intcmp when possible
      Tweak search_node inner loop to avoid LEAF2 checks
      Namespace cleanup
      More docs
      Minor doc cleanup
      Add MacOSX support
      MacOSX semaphore names are limited to 31 chars
      Doc tweak - txn flags
      Use FNV-1A hash to generate unique mutex names
      New sorted-dup subpage support
      API change, consistency check
      Add mdb_drop() for deleting a DB
      Fix typo, minor cleanup
      Fix mdb_drop() if not deleting the DB record
      Fix 09006ccec7928c9cf53bca6abe741e8d4d466c98
      Fix last delete from a subpage
      Make sure 2 subpages fit in one real page
      Additional fix for prev commit
      Add support for nested transactions.
      Track changes to all cursors.
      Only free malloc'd cursors
      txn_abort/commit free all their cursors now.
      assert cleanup
      Reader table notes
      Add MDB_NOSUBDIR option
      Doc for the MDB_NOSUBDIR env option
      Make sure mdb_open actually got a sub-db record
      Tweak cursor adjustment code
      Add MDB_RESERVE mode
      Add mdb_cursor_txn() and mdb_cursor_dbi() for querying the cursor
      Fix 6e05ca17e988754ae90fde1921765ba130bb90b2
      Add MDB_APPEND to avoid splitting full pages
      Add rudimentary MDB_MULTIPLE support for puts
      Fix freelist bug on page split
      Don't use Append mode when splits are caused by sub-page inserts
      Fix subcursor initialization
      Fix page_split with MDB_RESERVE
      Android/ARM portability
      Fix mdb_drop return
      Add Solaris byte-order detection
      Add dummy DKEY define
      More pgno alignment tweaks
      More Solaris warning cleanup
      Fix size check
      Use <inttypes.h> instead of <stdint.h>
      Add MDB_FDATASYNC to allow override to fsync if needed.
      s/DEBUG/MDB_DEBUG/
      Alignment fixes for debug msgs
      More s/DEBUG/MDB_DEBUG/
      Add $(SOLIBS) macro for shared lib dependencies
      ITS#7121 fix page splits when data+key size is too large
      Happy New Year!
      ITS#7126 fix cursor tracking code
      ITS#7121 fix page splits when newindx == 0
      txn_commit must abort txn before returning errors
      Add valgrind support with -DUSE_VALGRIND
      Fix typo in e8e57be42107a877f604d0c4e67115ef37681a1b
      ITS#7160 get BYTE_ORDER def for HPUX (and Solaris)
      ITS#7196 use IOV_MAX if it's defined and small
      ITS#7190 fix merging of branch pages in deletes
      Fix typo in 7bc62c512824c0d54cc6885ea876c2764510eca2
      ITS#7191 more alignment tweaks
      Update overflow page count when freeing overflow page
      ITS#7213 fix page_split with MDB_APPEND
      ITS#7210 partial fix
      ITS#7210 additional freelist fixes
      Add mfree utility to show the freelist
      Fix uninit'd xcursor index
      Fix entry counts in cursor_put
      Partial revert of prev commit
      ITS#7210 fix leak of overflow pages in freelist
      ITS#7219 fix for odd-aligned keys in mdb_update_key()
      ITS#7219 fixup keysize in previous commit
      ITS#7229 more mdb_page_split fixes
      ITS#7230 check and strip 0 length IDLs from freelist
      ITS#7229 additional tweaks
      ITS#7238 doc clarification
      ITS#7210 fix check for freelist changes
      ITS#7229 more mdb_page_split tweaks
      ITS#7251 fix Apple/Windows shared mutex naming
      Further clarification of mdb_open()
      More freelist tweaks, avoid referencing freed page
      ITS#7266 fix rebalance for LEAF2 pages
      Fix mdb_open, re-use closed dbi slots
      Tweak prev commit, use first unused slot
      Partial revert of 13c663f666ac28d7a72cbe644d393fc8d2dd9881
      Tweak b802bcf7040110e1f0768d9d9ffa88dabd4bd5e7
      Add MDB_NOMETASYNC env option.
      Fix: avoid direct reference to meta pages
      Revert "libmdb: Do not use the MDB_txbody.mtb_txnid field."
      Drop me_toggle, unused
      Windows thread callback support
      Fix ID -> MDB_ID due to 20baad4a207db5d0e84fc3a7409f216aefa59385
      Fix darwin sem_open() names
      Don't use env-private copy of DB root nodes.
      Make sure cursor's DB is init'd if STALE.
      Append tweaks, page_split fixes
      Append mode still needs to detect duplicates
      Leave extra space when creating a fake page
      Skip unneeded calls to mdb_page_get in mdb_page_search
      Fix root split check in mdb_page_split
      Append mode should also detect keys that are too small
      Update sub-DBs before updating free list
      Fix 205bb17793e27be67098ccc80ee919165d7cb993
      Fix txn_commit error check
      Write optimization: avoid copying unused portions of pages.
      Minor cleanup
      Loop thru all DBs and show their stats
      ITS#7364 also close the mutexes as needed
      ITS#7369 abort txn before exiting
      Fix mdb_audit()
      In mdb_audit, change assert to fprintf
      More for 57b5fbea491c956ed7a4ab7d12d802de2b29455d
      Add MDB_WRITEMAP to use a writable mmap
      Add msync support for WRITEMAP option
      msync should default to fully synchronous
      Update comments, bump version
      ITS#7385 fix mdb_page_split (again)
      ITS#7383 More explicit error codes
      Add MDB_SET_KEY cursor op
      Shared lib should depend on pthread
      Add mdb_cursor_renew()
      More for ab04c50a32275e216b82edaeeed50208cf49336b
      More for ab04c50a32275e216b82edaeeed50208cf49336b
      More for 48ef27b6f5c804eca6a9d27f8dd2b4ded376f8af
      ITS#7394 ignore WRITEMAP if RDONLY
      Add MDB_GET_CURRENT
      ITS#7385, check further for bad splits
      Fix mdb_drop
      Fix prev commit
      Add mdb_copy for backing up a DB environment
      Silence warning in prev commit
      Support read access on read-only media
      Make sure increases of mapsize are persisted
      Merge mdb_stata into mdb_stat
      Add mdb_env_info() to retrieve interesting env params
      Tweak output, add free page info
      Fix MDB_PREV
      Minor cleanup
      Make sure mdb_open flags are committed on main DB
      fix Windows mdb_env_copy(), WriteFile overflow
      Fix flag checks in mdb_open
      MDB_DEBUG tweak for old compilers
      Revert "MDB_DEBUG tweak for old compilers"
      Better fix for MDB_DEBUG tweak -- from hbf
      ITS#7432 fix typo in mdb_midl_sort
      Doc layout tweaks
      Drop unneeded #include <time.h>
      ITS#7455 use freelist for overflow pages
      Rename libmdb to liblmdb, lmdb.h
      Add install target
      Rename libmdb to liblmdb
      More retries for overflow page scan
      Fix mdb_midl_shrink
      Fix 5c1ee7f7ba9580d5ff29e74cbb02eee335c33d94
      Rename mdb_open/close mdb_dbi_open/close
      Fix mdb_env_copy
      Freelist fixes
      Yet more retries for overflow page scan
      ITS#7465 fail if both -a and -s specified
      ITS#7467 add verbose freelist info
      ITS#7455 simplify
      Add error checks to txn_commit
      FIx prev commit
      Partially revert 65d40eb5d2c7c28df05e2c1d9b21d90e2a82e0b5
      More for prev commit
      Make sure init_meta is at beginning of file
      Update version date
      init_meta should write mapsize
      Add initial mdb utility manpages
      Fix typo
      ITS#7455 don't give up so soon
      Happy New Year
      ITS#7491 check for filled dirty page list
      One more rename
      ITS#7485 check maxkeysize in mdb_cursor_put
      ITS#7485 more size checks
      ITS#7485 data sizes limited to 32 bits
      Fix MDB_CURRENT updating for dupsort items
      ITS#7505 Fix mdb_update_key when key is too big
      ITS#7505 fix prev commit, partial revert
      ITS#7511 make sure cursor is marked valid after successful put
      ITS#7515 fix mdb_dbi_open/close
      NULL key is allowed for MDB_CURRENT
      Revert "ITS#7515 fix mdb_dbi_open/close"
      Don't memmove freelist entry when chunking it
      Don't limit retries when coalescing freelist
      ITS#7515 update parent's mt_next_pgno on child commit
      Update error code instances
      Add $(DESTDIR) to make install target
      Add sample apps for comparison/education purposes
      Delete obsolete @todo
      Install manpages too
      Use CC/LDFLAGS to link the shared lib
      ITS#7536 fix mdb_rebalance
      Turn off readahead on main mmap
      ITS#7377 Fix c0f3d9b9a8864e744a8d1eaffc99bc86026d5351
      Check for MADV_RANDOM
      Fix f97552a83abb085bc44b1b578e550d64c1313a4b
      Precalculate max size of a node
      ITS#7538 fallout from ITS#7536 fix.
      Silence stupid warnings
      ITS#7553 deinit cursor after deleting last node
      ITS#7553 better fix
      Fix CURSOR_LAST/CURSOR_PREV
      MSVC doesn't define mode_t
      Tweak mode_t def per Hallvard's suggestion
      ITS#7556 fix cursor_sibling for PREV
      More fixes for MDB_LAST
      Fix rebalance when collapsing root page
      Fix d3990eb2f8b2944782604a2ca7bd52e08c58fc3e
      Fix 6beaad52129da5353fd40c0ec48e6a78c4f71a2e
      ITS#7561 Fix mdb_drop bugs
      Fixes for dbi_open/close, ITS#7515
      Revert "Fix 6beaad52129da5353fd40c0ec48e6a78c4f71a2e"
      Fix 227329c8e1fb818548f1936f5dc1349ffd73352
      Revert "ITS#7570 fix MDB_GET_MULTIPLE and MDB_NEXT_MULTIPLE"
      Fix mdb_rebalance
      fix prev commit
      ITS#7574 blind fix
      Fix mdb_rebalance
      Add MDB_NOTLS envflag.
      Fix typo from 7aba5f5ab92a3fa92de001edb2c5ff4b04fd7d0d
      Fix MDB_LAST, reset cursor index
      Avoid assert
      Allow reading freelist while working on it
      Refactor mdb_midl_append, add mdb_midl_grow()
      Fix 66c839f0292d9aea12bf93ef6568ac2bd2ca0fc8
      Doxygen cleanup
      Fix mdb_page_split - nested split
      Include <netinet/in.h> for Solaris 8
      ITS#7594 De-init other subcursors in page_touch
      Add _M_IX86 macro for MSVC
      Add mdb_env_copyfd()
      Fix prev commit
      Add warning about interrupting copy
      Windows portability fixes for prev commit
      tweak mdb_copy, trap signals
      ITS#7594 better fix
      ITS#7594 more for subDB cursor fix
      Return fresh overflow pages to current pghead
      Make sure mdb_stat() gets valid data
      Fix CURSOR_NEXT/PREV on emptied DB
      Partial revert c2cac4588a40480c020d320b544bc5f8e72adb11
      ITS#7623 Clear P_SUBP on conversion from fake page
      Fix uninit warnings, lseek usage
      ITS#7635 fix read txn potential data race
      ITS#7635 simplify 9474c1a0b62cad57b62855d09a201670385caa80
      Tweaks for MDB_MULTIPLE
      Silence uninit warning in prev commit
      Fixup other cursors after delete op
      Cursors: Clear C_EOF when clearing C_INITIALIZED
      Fix rebalance/cursor adjust
      Fix env_read_header() on Windows
      Factor out parent
      Move code out to mdb_page_dirty()
      Delay touching pages until cursor is positioned.
      Spill pages, take 3
      Bump version to 0.9.7
      Tweak comments, defaults should be OK already
      Fix stale sub-cursor C_INIT flag
      More for stale sub-cursor flags
      Fix child txn dirty_room counts in spill/unspill
      Add mdb_dbi_flags()
      Add mdb_reader_list()
      Tweak mdb_stat(1)
      Tweak reader_list
      Split MDB_VERSION to MDB_DATA/MDB_LOCK VERSION
      Add mdb_reader_check()
      Tweak reader checks
      Get pid lock outside of rmutex
      Tweak reader_pid check
      ITS#7615 use shorter names for semaphores
      Tweak mdb_envinfo numreaders
      ITS#7652 fix I/O error checks
      Cleanup prev commit
      Fix typo in Win32 branch
      Tweak prev commit again
      Use proper printf format on Windows
      Add mdb_env_get_maxkeysize()
      Point to mdb.c for docs on macros in Makefile
      Fix obscure MDB_MULTIPLE bug
      Tweak NODUPDATA flag check
      Fix uninit'd mem ref in mdb_page_split
      ITS#7664 delete lockfile if there is no environment
      Revert "ITS#7664 delete lockfile if there is no environment"
      ITS#7664 better fix
      Silence warnings
      Update caveats now that mdb_reader_check exists
      Less aggressive page_spill
      Tweak prev commit
      ITS#7670 Tweak cursor_del0
      ITS#7671 always return the key for a dup val
      Speedup deletion from spill_pgs
      Cleanup prev commit
      Another take on spill_pgs and deletes
      ITS#7672 fix mdb_dbi_flags
      Allow mdb_env_set_mapsize() on an open environment
      Bump version to 0.9.8
      Add a changelog
      Remember if last cursor op was a delete
      More for 5f6fa8c04204888c4ff7ac6be1868d81ff4410a8
      updates
      Release 0.9.8
      ITS#7701 fix mdb_rebalance
      ITS#7681 fix 18a07eb7c2dc33372455a6040984cd6b699b41a5
      Add MDB_NORDLOCK to omit all reader table usage
      More doc for MDB_NORDLOCK
      s/MDB_NORDLOCK/MDB_NOLOCK/
      ITS#7715 always set filesize for WRITEMAP
      Fix mdb_env_set_mapsize()
      ITS#7718 invalidate cursor when DB gets emptied
      ITS#7722 fix page_merge for collapsing root
      Add MDB_USE_HASH
      ITS#7589 avoid wasting space in mdb_page_split
      ITS#7589 Cleanup unneeded vars in prev patch
      ITS#7589 Fix typo in prev commit
      ITS#7589 silence warnings
      ITS#7725 add MDB_NORDAHEAD flag for env_open
      Fix 01dfb2083dd690707a062cabb03801bfad1a6859
      Add mdb_env_get_fd()
      Bump to 0.9.9
      ITS#7733 check cursor index before cursor_del
      ITS#7736 fix regression in ITS#7733 patch
      ITS#7589 another mdb_page_split fix
      More for #7589
      Fix cursor_del0 cursor fixup
      Fix prev commit, cursor depth comparison
      Change default mem init behavior
      Clarify WRITEMAP / NOMEMINIT
      Windows/Win64/MSVC tweaks
      Bump to 0.9.10
      Doc tweak
      ITS#7756 keysizes were wrong in mdb_update_key
      Fix GET_BOTH_RANGE
      ITS#7775 cleanup unnecessary assert()s
      ITS#7775 Cleanup mdb_node_del()
      Make sure mapsize changes take effect on Windows.
      Note changes for LMDB 0.9.11
      Bump version to 0.9.11
      ITS#7815 fix mdb_page_split
      ITS#7815 more for page_split
      Rename samples
      Revert "ITS#7793 mdb_cursor_put(): Fix MDB_CURRENT."
      ITS#7828, #7793
      More for ITS#7793/7828
      ITS#7793/7828
      ITS#7829 fix rebalance
      ITS#7829 more for prev commit
      ITS#7829 more for mdb_rebalance
      Fix mdb_rebalance collapsing root
      ITS#7875 fix #7681 regression
      Bump version to 0.9.12
      Remove bogus file
      Shorten search for ovpage space
      Tweak prev patch for ovpage search
      Fix some overwrite quirks
      Tweak ovpage search
      Bump to 0.9.13
      Bump to 0.9.13
      Add mdb_dump, update copyrights
      Add mdb_load
      Fix unhex
      Fix multiple subDBs
      Fix lineno count
      Fix mdb_node_move
      Fix mdb_page_merge
      Handle loose pages
      Silence ptr arithmetic warnings
      More cleanup for page_merge, page_loosen
      More for page_loosen
      Flesh out mdb_cmp_cint for BigEndians
      ITS#7879 Windows build compatibility
      Doc updates
      More MDB -> LMDB renames
      More for mdb_page_loose
      Setup for gcov/coverage testing
      Trap signals
      ITS#7886 fix mdb_copy write size
      More gcov setup tweaks
      All diagnostics should go to stderr
      dump/load need mapsize etc.
      Add mdb_env_copy2()
      Don't check LEAF2 pages for subnodes
      Larger WBUF still better on large DB
      Fix subDB/ovpage copying
      Windows compat
      Fix envinfo to return fixed map address
      More copyfd2 tweaks
      More tweaks to copyfd2
      Rationalize mdb_env_copy2 API
      Play games with object file layout
      Windows fixes
      Compacting copy doesn't need to snapshot metas
      Set xcursor EOF after deleting last entry
      ITS#7713 handle 65536 byte page size
      Re-fix cursor EOF
      ITS#7892 Fix MacOSX section name
      Update LMDB version date/info
      ITS#7789 persist mapsize changes
      ITS#7789 update RESIZED errmsg text
      ITS#7825 add MDB_BAD_DBI error code
      ITS#7825 tweak prev commit
      ITS#7825 more
      Updates #7789, #7825
      ITS#7825 more
      Revert "ITS#7789 update RESIZED errmsg text"
      ITS#7789 more
      Fix loading of printable dump
      Windows compat
      Windows fixes
      Zero-init copy2 writebuf
      More for cursor EOF
      ITS#7896 fix for mdb_env_map
      Typo
      Silence prototype warnings
      Fix mdb_cursor_count, reject uninit'd cursor
      Fix env_open mode bits
      Revert ITS#7789 commits, let's try this again.
      ITS#7789 doc updates
      more for mdb_cursor_count
      Update date
      Fix MIPS cache coherency on Linux
      ITS#7913 mdb_cursor_get(*_DUP) cleanup
      More for MIPS
      ITS#7793 update branch key if needed
      ITS#7793 doc update, again
      ITS#7793 more for branch key update
      More for MIPS
      Just use memalign, not posix_memalign
      ITS#7917 fix mdb_dbi_open
      ITS#7917
      Partially revert ada26306992babeccad0c5443fbd76e28dd24cd6
      More for MIPS
      ITS#7913 cleanup
      Use a single write txn
      Remember oldest reader txnid
      More for me_pgoldest
      Release 0.9.14
      Silence some clang warnings
      Plug leak in 4d02c741b120786df1b87ee9ed49c1d3f9bc7522
      ITS#7943 reinit txn flags
      new date
      Android also only has memalign
      Free write mutex earlier in txn_reset0
      Must do dlist_free before releasing Wmutex
      Don't use -fPIC for static lib
      ITS#7952 .gitignore mdb_dump/load
      ITS#7953 .gitignore *.lo
      ITS#7955, #7671 fix MDB_PREV_DUP
      ITS#7956 fix compact of empty env
      ITS#7961 fix txn init
      ITS#7959 fix prev commit
      Clarify mdb_dbi_open doc
      Fix MDB_APPEND doc
      Update for 0.9.15
      Hack for potential ext3/ext4 corruption issue
      Update for fsync hack
      Fix prev commit for env_sync0
      Tweak fdatasync hack description
      Revert "Fix prev commit for env_sync0"
      fdatasync hack, again
      ITS#8021 env_sync is invalid in RDONLY env
      Tweak conditionals for fdatasync hack
      More cleanup for fdatasync hack
      Fix potential null deref (coverity)
      ITS#8066 fix mdb_load with large values
      ITS#8062 fix rebalance
      ITS#8062
      ITS#8062 also handle subcursors
      ITS#8062 fix uninit'd cursor index
      ITS#8106 retry writes on EINTR
      ITS#8106
      ITS#8109 fix mdb_cursor_del0 on empty DB
      ITS#8109
      ITS#8117 fix INTEGERDUP compare
      ITS#8117 cleanup prev commit
      ITS#8117
      Revert "ITS#8117 cleanup prev commit"
      ITS#8117 better fix
      Release 0.9.15
      Return to Release Engineering
      ITS#8190 fix cursor EOF bug
      Updated for ITS#8181, #8190, #8200
      ITS#8192 fix reference to EINTR on WIN32 from ITS#8106
      Release 0.9.16
      Another MDB_APPEND doc tweak
      Return to release engineering
      Doc tweak - MDB_RESERVE / DUPSORT incompat
      ITS#8237 fix ITS#7589 regression
      ITS#7377, 8237
      ITS#8221 don't merge branch pages needlessly
      ITS#8221, #8256
      ITS#8221 fix typos
      ITS#8259 fix usage ordering
      ITS#8258 fix rebalance/split
      ITS#8258
      ITS#8264 fix cursor_del cursor tracking
      ITS#8263 fix cursor tracking in cursor_put
      ITS#7771 fix cursor tracking on fake pages
      ITS#8263, 8264, 7771, 8270
      More misc updates
      Add MDB_NO_ROBUST to disable Robust Mutexes
      Use MDB_USE_ROBUST not MDB_NO_ROBUST
      ITS#8299 fix page_merge cursor fixup
      ITS#8238 fix DUPFIXED page_split
      ITS#8238, #8299
      ITS#8300 fix rebalance after node_move
      ITS#8300 fix node_move
      ITS#8300
      ITS#8300 more for node_move fixups
      ITS#8300 simplify
      ITS#8300 more for node_move
      ITS#8304 fix page_merge
      ITS#8304
      Tweak robust mutex detection for glibc
      ITS#8310 fix mdb_rebalance cursor fixup
      ITS#8310
      ITS#8311 fix page_split from update_key
      ITS#8311 add comment
      ITS#8311
      ITS#8313 more for ITS#8062
      ITS#8315 fix ovpage_free
      ITS#8312, 8313, 8315
      ITS#8316 cursor fixup in page_merge
      Refix root split check from 5da67968afb599697d7557c13b65fb961ec408dd
      Silence some valgrind uninit warnings
      ITS#8300 more for prev commit
      ITS#8321 Fix del/dupsort
      ITS#8321 don't skip fixups on splitting cursors
      ITS#8321 fix mdb_cursor_chk()
      ITS#8321 fix mdb_cursor_shadow()
      ITS#8321 fix mdb_cursor_put
      ITS#8321 track temporary cursors
      ITS#8321 simplify page_split fixups
      ITS#8321 reorganize page_split fixups
      ITS#8316, 8321
      ITS#8319, 8320
      ITS#8323 Fix nested commit
      ITS#8321 deinit empty cursors
      ITS#8321 Fix mdb_cursor_set
      ITS#8321 mdb_put cursor needs tracking too
      ITS#8321 page_touch - don't fixup the cursor we just touched
      ITS#8321 More cursor fixup
      Cleanup C_DEL flag usage
      ITS#8321 fix ambiguity in cursor_put fixup
      ITS#8323
      ITS#8168, 8169
      ITS#8321 cleanup unused var
      Release 0.9.17
      Return to releng
      ITS#8169 more Makefile tweaks
      ITS#8169, #8330
      ITS#7992 cleanup
      Add Getting Started doc
      ITS#7992 cleanup, new docs, mdb_dbi_open cleanup
      MDB_RESERVE doc
      ITS#8336 fix page_search_root assert on FreeDB
      ITS#8336
      MinGW warning cleanup: _MSC_VER -> _WIN32.
      Fixups for env_copy with large files
      Update WRITEMAP doc
      ITS#8355 fix subcursors
      ITS#8355, doc update
      ITS#8363 Fix off-by-one in mdb_midl_shrink
      ITS#8363
      Happy New Year
      Release 0.9.18

Ignacio Casal Quinteiro (1):
      ITS#8270 win32: fix conversion error with MSVC

Jean-Christophe DUBOIS (1):
      ITS#7959 Check fstat return value

John Hewson (1):
      ITS#7656 fix install target

Kurt Zeilenga (1):
      Happy New Year!

Leo Yuriev (2):
      ITS#7841 trivial cleanup
      ITS#7987 fix excessive space for single write txn

Luke Yeager (1):
      ITS#8256 Create install directories if needed

Ondrej Kuznik (1):
      ITS#7369 mdb_stat: cleanup in case something went wrong.

Orivej Desh (2):
      ITS#8319 mdb_load: explain readline and mdb_cursor_put errors
      ITS#8320 mdb_load: fix loading data from simple text files

Oskari Timperi (1):
      ITS#7992 assume Windows paths are UTF-8

Pavel Medvedev (2):
      ITS#8067 add ssize_t typedef for MSVC
      ITS#8069 char* strings on Windows are ASCII

Quanah Gibson-Mount (4):
      Change retry to num times 60.  Testing shows that on a known dataset, 
this has the same growth behavior as 2.4.39, while num times 20 resulted in 
significant growth.
      Happy New Year
      Happy New Year
      ITS#8066

Salvador Ortiz (4):
      mdb_del must ignore data if db not opened with MDB_DUPSORT
      ITS#7661 mdb_dbi_flags(): Allow main DBI
      ITS#7660 Add mdb_txn_env to API
      ITS#7682 In mdb_env_copy retry open if O_DIRECT fails

Sebastien Launay (1):
      ITS#8330 Fix robust mutex detection for glibc 2.10 and 2.11

[email protected] (4):
      ITS#7969 LMDB: volatile.
      ITS#7970 LMDB: Critical Heisenbug
      ITS#7971 mdb_txn_renew0(): Fix new readers slots.
      ITS#7969 Use __sync_synchronize()

-----------------------------------------------------------------------


--- 
http://www.openldap.org/devel/gitweb.cgi?p=openldap.git

Reply via email to