Commit graph

639 commits

Author SHA1 Message Date
Hallvard Furuseth
3dda2bfa4a doxygen cleanup 2016-12-07 19:04:19 +01:00
Hallvard Furuseth
72f875b48a Note functions which must set MDB_TXN_ERROR on failure
Other functions depend on them to do so.
For mdb_node_read(), instead remove such a dependence.
2016-12-07 18:55:21 +01:00
Hallvard Furuseth
08e4684d37 MDB_VL32 mdb_page_get(): Set MDB_TXN_ERROR on failure. 2016-12-02 07:00:08 +01:00
Hallvard Furuseth
a70200f15f Fix mdb_env_open() with MDB_VL32
Init me_rpmutex independently of MDB_NOLOCK.
Plug leaks on mdb_env_open() failure.
Tweak mdb_env_close0() to handle the rearranged mdb_env_open().
2016-12-02 05:22:11 +01:00
Hallvard Furuseth
f3ab0d23a4 Factor out refreshing sub-page pointers 2016-12-01 21:17:42 +01:00
Howard Chu
fa83b25ec5 More for ITS#8406
xcursor fixup depends on init state
2016-11-29 19:19:45 +00:00
Howard Chu
e58db7d556 More for ITS#8406
Revert excess cursor fixup
2016-11-12 23:11:20 +00:00
Hallvard Furuseth
f7e85d7804 Only set me_mfd if needed. Drop unused read access. 2016-10-04 21:16:27 +02:00
Hallvard Furuseth
6355dade31 ITS#8505 Protect parent from fork()-pthread_exit() 2016-10-04 21:16:27 +02:00
Hallvard Furuseth
04acac634a ITS#8505 Set FD_CLOEXEC for me_mfd,env_copy as well 2016-10-04 19:12:58 +02:00
Hallvard Furuseth
15666878af Move opening files to mdb_fopen()
No change in functionality.
2016-10-04 19:12:58 +02:00
Hallvard Furuseth
cdc3f9cc2d Factor filename handling out to mdb_fname_*()
No change in functionality, except needs less mallocing.
2016-09-25 15:40:08 +02:00
Hallvard Furuseth
67fb3c746a ITS#7992 Tighter utf8_to_utf16(), fix errcodes
The 0xFFFD check seems due to misleading MultiByteToWideChar() doc.
Bad UTF-8 gives 0xFFFD in the output string, not the return value.
2016-09-25 15:40:08 +02:00
Hallvard Furuseth
d87ee20e0b Clean up strange fcntl result check
...and check !MDB_CLOEXEC in an 'if' rather than '#if'
to match its non-zero usage.
2016-09-25 08:12:56 +02:00
Hallvard Furuseth
3dd2d207d7 Drop spurious Errcode() call 2016-09-25 08:12:56 +02:00
Hallvard Furuseth
cdcf9da600 ITS#7682 F_NOCACHE: Allow error, skip any O_DIRECT
We can run without F_NOCACHE if it fails. And we do not know
what combining it with O_DIRECT means, if a system has both.
2016-09-25 08:12:56 +02:00
Hallvard Furuseth
26e226b2a8 Silence warning for initializer "mdb_copy my = {0}"
1st struct member was not a scalar.
2016-09-03 09:41:30 +02:00
Howard Chu
45a88275d2 ITS#8489 reset cursor EOF flag in cursor_set
It usually gets done anyway, but one of the fastpath shortcuts
bypassed this step.
2016-09-01 00:41:35 +01:00
Hallvard Furuseth
da4443a9b3 Clean up MDB_USE_ROBUST #defines
Make explicit and default nonzero equivalent. Parenthesize.
2016-08-21 23:22:18 +02:00
Hallvard Furuseth
36d374ba9e Fix mdb_page_list() message 2016-08-21 23:20:22 +02:00
Howard Chu
7e2290c52b MDB_VL32 plug rpage leak
mdb_cursor_set wasn't unref'ing as intended.
2016-08-11 21:30:56 +01:00
Hallvard Furuseth
77d522d151 Comment MDB_page 2016-08-02 22:17:54 +02:00
Hallvard Furuseth
8670805b4f Doc fixes: VALID_FLAGS, mm_last_pg, mt_loose_count 2016-08-02 22:16:09 +02:00
Hallvard Furuseth
58b0ce50b3 mdb_size comments 2016-08-02 21:04:17 +02:00
Hallvard Furuseth
4d47e89f4d MDB_VL32: Switch to mdb_size_t formats PRIu64 & co
Drop macro Y=MDB_FMT_Y, add Yu/Yd=MDB_PRIy(). Replace
Y"d..." -> Yd"...", Y"u..." -> Yu"..." / MDB_SCNy(u)"...".
2016-08-02 21:02:35 +02:00
Hallvard Furuseth
65d9791ada Refactor mdb_page_get() 2016-07-23 12:45:46 +02:00
Hallvard Furuseth
f25d716513 Fix MDB_INTEGERKEY doc of integer types 2016-07-23 12:18:01 +02:00
Hallvard Furuseth
12ad38d67f Fix size_t/formats -> mdb_size_t for MDB_VL32 2016-07-23 12:16:20 +02:00
Hallvard Furuseth
dff8bafb36 Factor some MDB_VL32-related '#if's out to macros
Add MC_OVPG() + MC_SET_OVPG(), NEED_CMP_CLONG(), MDB_CURSOR_UNREF().
2016-07-23 12:11:34 +02:00
Hallvard Furuseth
32764bcb52 Factor out MDB_SIZE_MAX, MDB_FMT_Y, MDB_FMT_Z 2016-07-23 12:08:12 +02:00
Hallvard Furuseth
84610e65da Add error MDB_PROBLEM, replace some MDB_CORRUPTED
When problem is most likely in txn, not on disk.
2016-07-14 05:53:21 +02:00
Hallvard Furuseth
291c69ddbd ITS#8209 Tweak previous fixes
Some _aligned_malloc() doc seems to think arg NULL = user error.
Don't know if posix_memalign() pointer is defined after failure.
2016-06-29 06:25:37 +02:00
Hallvard Furuseth
5ea12b0be8 ITS#8209 MDB_CP_COMPACT: Handle empty or broken DB
Preserve DB flags (use metapage#1) when main DB is empty.
Fail if metapage root != actual root in output file.
2016-06-25 07:57:04 +02:00
Hallvard Furuseth
eb7bbed967 ITS#8209 MDB_CP_COMPACT fixes
Handle errors.  Fix cond_wait condition so mc_new
is the sole control var.  Drop specious cond_waits.
Do not look at 'mo' while copythr writes it.
2016-06-25 07:55:34 +02:00
Hallvard Furuseth
c4c7833d24 mdb_env_setup_locks: Plug mutexattr leak on error 2016-06-05 23:42:44 +02:00
Hallvard Furuseth
53a0fdf1be Init "locked" flag for SysV semaphores 2016-06-03 06:11:54 +02:00
Howard Chu
c367c1f696 ITS#8339 Solaris 10/11 robust mutex fixes
Check for PTHREAD_MUTEX_ROBUST_NP definition (this doesn't work
on Linux/glibc because they used an enum). Zero out mutex before
initing.
2016-06-02 21:01:27 +01:00
Howard Chu
b045bce260 ITS#8424 init cursor in mdb_env_cwalk 2016-05-15 00:44:54 +01:00
Hallvard Furuseth
e2b8b6448d Comment ovpage code in mdb_cursor_put() 2016-05-10 07:11:44 +02:00
Howard Chu
a04aad31c2 ITS#8412 fix NEXT_DUP after cursor_del 2016-04-26 12:52:21 +01:00
Howard Chu
37081325f7 ITS#8406 fix xcursors after cursor_del
Don't leave them uninit'd if they now point at a valid DUP node
2016-04-18 18:07:56 +01:00
Howard Chu
c8dbd772f7 mdb_drop optimization
If we know there are no sub-DBs and no overflow pages, skip leaf scan.
2016-04-09 20:42:45 +01:00
Howard Chu
8fff90db7e ITS#8393 fix MDB_GET_BOTH on non-dup record 2016-03-28 01:36:26 +01:00
Howard Chu
3f62b727cc Tweak MDB_PREV_MULTIPLE for uninit'd cursor 2016-02-16 23:38:43 +00:00
Howard Chu
d909ab2f36 Tweak Win32 errmsg buffer 2016-02-15 00:07:04 +00:00
Howard Chu
5ef1908224 ITS#8324 Map NTAPI result codes to WIN32 codes 2016-02-14 23:53:05 +00:00
Hallvard Furuseth
fcac8d0774 ITS#7992 Fix memleak in prev change 2016-02-04 03:23:13 +01:00
Howard Chu
5f5f4dab9c Happy New Year 2016-01-30 12:54:32 +00:00
Hallvard Furuseth
e394e023e4 Fix MDB_VL32 mdb_cursor_count()/entrycount types 2016-01-28 19:45:01 +01:00
Howard Chu
3f62ddc81c MDB_VL32 change overflow page scan
Just check the requested page, don't worry about any other pages
2016-01-28 14:23:02 +00:00