1LMDB 0.9 Change Log
2
3LMDB 0.9.29 Release (2021/03/16)
4	ITS#9461 refix ITS#9376
5	ITS#9500 fix regression from ITS#8662
6
7LMDB 0.9.28 Release (2021/02/04)
8	ITS#8662 add -a append option to mdb_load
9
10LMDB 0.9.27 Release (2020/10/26)
11	ITS#9376 fix repeated DUPSORT cursor deletes
12
13LMDB 0.9.26 Release (2020/08/11)
14	ITS#9278 fix robust mutex cleanup for FreeBSD
15
16LMDB 0.9.25 Release (2020/01/30)
17	ITS#9068 fix mdb_dump/load backslashes in printable content
18	ITS#9118 add MAP_NOSYNC for FreeBSD
19	ITS#9155 free mt_spill_pgs in non-nested txn on end
20
21LMDB 0.9.24 Release (2019/07/24)
22	ITS#8969 Tweak mdb_page_split
23	ITS#8975 WIN32 fix writemap set_mapsize crash
24	ITS#9007 Fix loose pages in WRITEMAP
25
26LMDB 0.9.23 Release (2018/12/19)
27	ITS#8756 Fix loose pages in dirty list
28	ITS#8831 Fix mdb_load flag init
29	ITS#8844 Fix mdb_env_close in forked process
30	Documentation
31		ITS#8857 mdb_cursor_del doesn't invalidate cursor
32		ITS#8908 GET_MULTIPLE etc don't change passed in key
33
34LMDB 0.9.22 Release (2018/03/22)
35	Fix MDB_DUPSORT alignment bug (ITS#8819)
36	Fix regression with new db from 0.9.19 (ITS#8760)
37	Fix liblmdb to build on Solaris (ITS#8612)
38	Fix delete behavior with DUPSORT DB (ITS#8622)
39	Fix mdb_cursor_get/mdb_cursor_del behavior (ITS#8722)
40
41LMDB 0.9.21 Release (2017/06/01)
42	Fix xcursor after cursor_del (ITS#8622)
43
44LMDB 0.9.20 (Withdrawn)
45	Fix mdb_load with escaped plaintext (ITS#8558)
46	Fix mdb_cursor_last / mdb_put interaction (ITS#8557)
47
48LMDB 0.9.19 Release (2016/12/28)
49	Fix mdb_env_cwalk cursor init (ITS#8424)
50	Fix robust mutexes on Solaris 10/11 (ITS#8339)
51	Tweak Win32 error message buffer
52	Fix MDB_GET_BOTH on non-dup record (ITS#8393)
53	Optimize mdb_drop
54	Fix xcursors after mdb_cursor_del (ITS#8406)
55	Fix MDB_NEXT_DUP after mdb_cursor_del (ITS#8412)
56	Fix mdb_cursor_put resetting C_EOF (ITS#8489)
57	Fix mdb_env_copyfd2 to return EPIPE on SIGPIPE (ITS#8504)
58	Fix mdb_env_copy with empty DB (ITS#8209)
59	Fix behaviors with fork (ITS#8505)
60	Fix mdb_dbi_open with mainDB cursors (ITS#8542)
61	Fix robust mutexes on kFreeBSD (ITS#8554)
62	Fix utf8_to_utf16 error checks (ITS#7992)
63	Fix F_NOCACHE on MacOS, error is non-fatal (ITS#7682)
64	Build
65		Make shared lib suffix overridable (ITS#8481)
66	Documentation
67		Cleanup doxygen nits
68		Note reserved vs actual mem/disk usage
69
70
71LMDB 0.9.18 Release (2016/02/05)
72	Fix robust mutex detection on glibc 2.10-11 (ITS#8330)
73	Fix page_search_root assert on FreeDB (ITS#8336)
74	Fix MDB_APPENDDUP vs. rewrite(single item) (ITS#8334)
75	Fix mdb_copy of large files on Windows
76	Fix subcursor move after delete (ITS#8355)
77	Fix mdb_midl_shirnk off-by-one (ITS#8363)
78	Check for utf8_to_utf16 failures (ITS#7992)
79	Catch strdup failure in mdb_dbi_open
80	Build
81		Additional makefile var tweaks (ITS#8169)
82	Documentation
83		Add Getting Started page
84		Update WRITEMAP description
85
86
87LMDB 0.9.17 Release (2015/11/30)
88	Fix ITS#7377 catch calloc failure
89	Fix ITS#8237 regression from ITS#7589
90	Fix ITS#8238 page_split for DUPFIXED pages
91	Fix ITS#8221 MDB_PAGE_FULL on delete/rebalance
92	Fix ITS#8258 rebalance/split assert
93	Fix ITS#8263 cursor_put cursor tracking
94	Fix ITS#8264 cursor_del cursor tracking
95	Fix ITS#8310 cursor_del cursor tracking
96	Fix ITS#8299 mdb_del cursor tracking
97	Fix ITS#8300 mdb_del cursor tracking
98	Fix ITS#8304 mdb_del cursor tracking
99	Fix ITS#7771 fakepage cursor tracking
100	Fix ITS#7789 ensure mapsize >= pages in use
101	Fix ITS#7971 mdb_txn_renew0() new reader slots
102	Fix ITS#7969 use __sync_synchronize on non-x86
103	Fix ITS#8311 page_split from update_key
104	Fix ITS#8312 loose pages in nested txn
105	Fix ITS#8313 mdb_rebalance dummy cursor
106	Fix ITS#8315 dirty_room in nested txn
107	Fix ITS#8323 dirty_list in nested txn
108	Fix ITS#8316 page_merge cursor tracking
109	Fix ITS#8321 cursor tracking
110	Fix ITS#8319 mdb_load error messages
111	Fix ITS#8320 mdb_load plaintext input
112	Added mdb_txn_id() (ITS#7994)
113	Added robust mutex support
114	Miscellaneous cleanup/simplification
115	Build
116		Create install dirs if needed (ITS#8256)
117		Fix ThreadProc decl on Win32/MSVC (ITS#8270)
118		Added ssize_t typedef for MSVC (ITS#8067)
119		Use ANSI apis on Windows (ITS#8069)
120		Use O_SYNC if O_DSYNC,MDB_DSYNC are not defined (ITS#7209)
121		Allow passing AR to make (ITS#8168)
122		Allow passing mandir to make install (ITS#8169)
123
124LMDB 0.9.16 Release (2015/08/14)
125	Fix cursor EOF bug (ITS#8190)
126	Fix handling of subDB records (ITS#8181)
127	Fix mdb_midl_shrink() usage (ITS#8200)
128
129LMDB 0.9.15 Release (2015/06/19)
130	Fix txn init (ITS#7961,#7987)
131	Fix MDB_PREV_DUP (ITS#7955,#7671)
132	Fix compact of empty env (ITS#7956)
133	Fix mdb_copy file mode
134	Fix mdb_env_close() after failed mdb_env_open()
135	Fix mdb_rebalance collapsing root (ITS#8062)
136	Fix mdb_load with large values (ITS#8066)
137	Fix to retry writes on EINTR (ITS#8106)
138	Fix mdb_cursor_del on empty DB (ITS#8109)
139	Fix MDB_INTEGERDUP key compare (ITS#8117)
140	Fix error handling (ITS#7959,#8157,etc.)
141	Fix race conditions (ITS#7969,7970)
142	Added workaround for fdatasync bug in ext3fs
143	Build
144		Don't use -fPIC for static lib
145		Update .gitignore (ITS#7952,#7953)
146		Cleanup for "make test" (ITS#7841), "make clean", mtest*.c
147		Misc. Android/Windows cleanup
148	Documentation
149		Fix MDB_APPEND doc
150		Fix MDB_MAXKEYSIZE doc (ITS#8156)
151		Fix mdb_cursor_put,mdb_cursor_del EACCES description
152		Fix mdb_env_sync(MDB_RDONLY env) doc (ITS#8021)
153		Clarify MDB_WRITEMAP doc (ITS#8021)
154		Clarify mdb_env_open doc
155		Clarify mdb_dbi_open doc
156
157LMDB 0.9.14 Release (2014/09/20)
158	Fix to support 64K page size (ITS#7713)
159	Fix to persist decreased as well as increased mapsizes (ITS#7789)
160	Fix cursor bug when deleting last node of a DUPSORT key
161	Fix mdb_env_info to return FIXEDMAP address
162	Fix ambiguous error code from writing to closed DBI (ITS#7825)
163	Fix mdb_copy copying past end of file (ITS#7886)
164	Fix cursor bugs from page_merge/rebalance
165	Fix to dirty fewer pages in deletes (mdb_page_loose())
166	Fix mdb_dbi_open creating subDBs (ITS#7917)
167	Fix mdb_cursor_get(_DUP) with single value (ITS#7913)
168	Fix Windows compat issues in mtests (ITS#7879)
169	Add compacting variant of mdb_copy
170	Add BigEndian integer key compare code
171	Add mdb_dump/mdb_load utilities
172
173LMDB 0.9.13 Release (2014/06/18)
174	Fix mdb_page_alloc unlimited overflow page search
175	Documentation
176		Re-fix MDB_CURRENT doc (ITS#7793)
177		Fix MDB_GET_MULTIPLE/MDB_NEXT_MULTIPLE doc
178
179LMDB 0.9.12 Release (2014/06/13)
180	Fix MDB_GET_BOTH regression (ITS#7875,#7681)
181	Fix MDB_MULTIPLE writing multiple keys (ITS#7834)
182	Fix mdb_rebalance (ITS#7829)
183	Fix mdb_page_split (ITS#7815)
184	Fix md_entries count (ITS#7861,#7828,#7793)
185	Fix MDB_CURRENT (ITS#7793)
186	Fix possible crash on Windows DLL detach
187	Misc code cleanup
188	Documentation
189		mdb_cursor_put: cursor moves on error (ITS#7771)
190
191
192LMDB 0.9.11 Release (2014/01/15)
193	Add mdb_env_set_assert() (ITS#7775)
194	Fix: invalidate txn on page allocation errors (ITS#7377)
195	Fix xcursor tracking in mdb_cursor_del0() (ITS#7771)
196	Fix corruption from deletes (ITS#7756)
197	Fix Windows/MSVC build issues
198	Raise safe limit of max MDB_MAXKEYSIZE
199	Misc code cleanup
200	Documentation
201		Remove spurious note about non-overlapping flags (ITS#7665)
202
203LMDB 0.9.10 Release (2013/11/12)
204	Add MDB_NOMEMINIT option
205	Fix mdb_page_split() again (ITS#7589)
206	Fix MDB_NORDAHEAD definition (ITS#7734)
207	Fix mdb_cursor_del() positioning (ITS#7733)
208	Partial fix for larger page sizes (ITS#7713)
209	Fix Windows64/MSVC build issues
210
211LMDB 0.9.9 Release (2013/10/24)
212	Add mdb_env_get_fd()
213	Add MDB_NORDAHEAD option
214	Add MDB_NOLOCK option
215	Avoid wasting space in mdb_page_split() (ITS#7589)
216	Fix mdb_page_merge() cursor fixup (ITS#7722)
217	Fix mdb_cursor_del() on last delete (ITS#7718)
218	Fix adding WRITEMAP on existing env (ITS#7715)
219	Fix nested txns (ITS#7515)
220	Fix mdb_env_copy() O_DIRECT bug (ITS#7682)
221	Fix mdb_cursor_set(SET_RANGE) return code (ITS#7681)
222	Fix mdb_rebalance() cursor fixup (ITS#7701)
223	Misc code cleanup
224	Documentation
225		Note that by default, readers need write access
226
227
228LMDB 0.9.8 Release (2013/09/09)
229	Allow mdb_env_set_mapsize() on an open environment
230	Fix mdb_dbi_flags() (ITS#7672)
231	Fix mdb_page_unspill() in nested txns
232	Fix mdb_cursor_get(CURRENT|NEXT) after a delete
233	Fix mdb_cursor_get(DUP) to always return key (ITS#7671)
234	Fix mdb_cursor_del() to always advance to next item (ITS#7670)
235	Fix mdb_cursor_set(SET_RANGE) for tree with single page (ITS#7681)
236	Fix mdb_env_copy() retry open if O_DIRECT fails (ITS#7682)
237	Tweak mdb_page_spill() to be less aggressive
238	Documentation
239		Update caveats since mdb_reader_check() added in 0.9.7
240
241LMDB 0.9.7 Release (2013/08/17)
242	Don't leave stale lockfile on failed RDONLY open (ITS#7664)
243	Fix mdb_page_split() ref beyond cursor depth
244	Fix read txn data race (ITS#7635)
245	Fix mdb_rebalance (ITS#7536, #7538)
246	Fix mdb_drop() (ITS#7561)
247	Misc DEBUG macro fixes
248	Add MDB_NOTLS envflag
249	Add mdb_env_copyfd()
250	Add mdb_txn_env() (ITS#7660)
251	Add mdb_dbi_flags() (ITS#7661)
252	Add mdb_env_get_maxkeysize()
253	Add mdb_env_reader_list()/mdb_env_reader_check()
254	Add mdb_page_spill/unspill, remove hard txn size limit
255	Use shorter names for semaphores (ITS#7615)
256	Build
257		Fix install target (ITS#7656)
258	Documentation
259		Misc updates for cursors, DB handles, data lifetime
260
261LMDB 0.9.6 Release (2013/02/25)
262	Many fixes/enhancements
263
264LMDB 0.9.5 Release (2012/11/30)
265	Renamed from libmdb to liblmdb
266	Many fixes/enhancements
267