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
a43fcad8c6
MDB_VL32: Match mdb_size_t type with format modifier.
...
When using format modifier "ll" or "I64", use the matching
type unsigned <long long / __int64> rather than uint64_t.
2016-07-23 12:43:16 +02:00
Hallvard Furuseth
f25d716513
Fix MDB_INTEGERKEY doc of integer types
2016-07-23 12:18:01 +02:00
Hallvard Furuseth
0842f998ee
Use mdb_size_t for line numbers in mdb_load
...
This matches the mdb_size_t entry counts.
2016-07-23 12:17:04 +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
e46d78b7b0
MDB_VL32 - increase max write txn size
2016-03-02 16:29:54 +00: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
Howard Chu
5bf313e820
ITS#8363 Fix off-by-one in mdb_midl_shrink
2016-01-28 04:21:32 +00:00
Howard Chu
6f653ca205
MDB_VL32 more for 1ba5adb2ec
...
fix 32bit overflow in set_mapsize
2016-01-27 11:48:22 +00:00
Howard Chu
8f88b1b0ba
ITS#8324 fix a6ccef73ed
...
Removing the WRITEMAP test dropped this into the MDB_VL32 code path,
which was wrong.
2016-01-26 22:13:01 +00:00
Howard Chu
8c215aa970
ITS#8355 fix subcursors
...
make sure C_DEL gets reset in subcursor after it moves.
2016-01-24 11:35:42 +00:00
Howard Chu
b5018e26bc
Update WRITEMAP doc
2016-01-23 16:51:42 +00:00
Howard Chu
20dec1f69b
WIN64 needs off_t redefined too
2016-01-20 01:30:57 +00:00
Howard Chu
a6ccef73ed
ITS#8324 fix c4e31434c7
...
Actually, there is no guarantee that Windows will map newly written
data, so we need VirtualAlloc even for non-WRITEMAP.
2016-01-16 17:13:25 +00:00
Hallvard Furuseth
d6995599b4
lmdb.h Caveats: Reserved vs. actual mem/disk usage
2016-01-12 23:18:06 +01:00
Howard Chu
15880014ba
ITS#8346 fix typo in prev commit
2016-01-12 07:13:48 +00:00
Howard Chu
a5bf1648c6
ITS#8347 fix off-by-one in VL32 purge
2016-01-11 20:25:33 +00:00
Howard Chu
447683a824
ITS#8346 free last txn0->mt_rpages in env_close
2016-01-11 20:17:42 +00:00
Howard Chu
27b1c5f366
Add MDB_PREV_MULTIPLE
...
Logical counterpart to GET_MULTIPLE, NEXT_MULTIPLE
2016-01-07 18:28:29 +00:00
Howard Chu
5db0b54ca1
Fixups for env_copy with large files
...
wsize was being truncated to 32bits on Windows.
Only try to write 1GB at a time on Windows64;
larger writes fail with ERROR_WORKING_SET_QUOTA.
2016-01-02 12:31:49 +00:00
Howard Chu
53f624bff0
MDB_VL32 fix cursor_unref - ignore cursor with empty stack
2015-12-28 20:31:09 +00:00
Howard Chu
1c2a5888cf
ITS#8342 MDB_VL32/WIN32 - close file mapping handle in env_close
2015-12-28 19:38:32 +00:00
Howard Chu
c3852f29af
MDB_VL32 tweak prev commit
2015-12-28 19:38:32 +00:00
Howard Chu
7b9928ced4
MDB_VL32 - prevent mixing with non-VL32 builds
2015-12-23 23:02:06 +00:00
Howard Chu
90d1ee279f
MDB_VL32 - Fix me_rpmutex usage
2015-12-22 20:24:26 +00:00
Howard Chu
825ab2ad52
MDB_RESERVE doc
...
Add mdb_put text to mdb_cursor_put description for people who
fail to draw logical conclusions.
2015-12-22 18:30:41 +00:00
Howard Chu
9d75a82ae1
MDB_VL32 - fix prev commit
...
Only tweak length for read-only envs
2015-12-22 06:13:25 +00:00
Howard Chu
5eb25c5cb9
MDB_VL32 - fix for Win32 read-only envs
...
We can't map with MEM_RESERVE because that requires write access
to the underlying file/section. Mapping with the default (MEM_COMMIT)
requires that we don't map past the end of the file.
2015-12-22 05:20:33 +00:00