Howard Chu
3630066843
Fix MIPS cache coherency on Linux
...
MIPS chips require manual control of on-chip caches. The cacheflush
syscall being used here only exists on MIPS Linux, other OSs will
require revisiting.
10 years ago
Howard Chu
082bac1492
more for mdb_cursor_count
...
return MDB_NOTFOUND if the cursor is empty
10 years ago
Hallvard Furuseth
6cb1166635
Fix mdb_copy & co when MDB pagesize < OS pagesize
10 years ago
Hallvard Furuseth
81b502e17e
ITS#7789 Fix mdb_env_write_meta().
...
Always write mapsize = max(other metapage:mapsize, env:mapsize).
10 years ago
Howard Chu
7ef970436d
Revert ITS#7789 commits, let's try this again.
...
Revert "ITS#7789 Fix resize vs MDB_NOMETASYNC, and a comment."
Revert "ITS#7789 more"
Revert "Revert "ITS#7789 update RESIZED errmsg text""
Revert "ITS#7789 update RESIZED errmsg text"
Revert "ITS#7789 persist mapsize changes"
This reverts commit 02285aca58
.
This reverts commit 38e71c68de
.
This reverts commit a5e4eecb1e
.
This reverts commit d8e18551c3
.
This reverts commit 5926e54bba
.
10 years ago
Howard Chu
58e9c3add8
Fix mdb_cursor_count, reject uninit'd cursor
10 years ago
Howard Chu
9049efe493
ITS#7896 fix for mdb_env_map
...
Don't pass non-NULL map address unless MDB_FIXEDMAP was used.
11 years ago
Howard Chu
886ee41d55
More for cursor EOF
...
Must also set in sub-cursor if deleting entire subDB
11 years ago
Howard Chu
7f038d0f15
Zero-init copy2 writebuf
11 years ago
Hallvard Furuseth
2825ad64c2
MDB_MAXKEYSIZE = 0 (dynamic value) when MDB_DEVEL
11 years ago
Hallvard Furuseth
b3dedde612
MDB_DEVEL doxygen fix
11 years ago
Hallvard Furuseth
02285aca58
ITS#7789 Fix resize vs MDB_NOMETASYNC, and a comment.
11 years ago
Howard Chu
bda6a60ad4
Windows fixes
...
Always set the filesize when opening for writes. Otherwise
can't use backups from mdb_copy.
11 years ago
Howard Chu
f3573a7383
Windows compat
...
We mainly use Win32 functions, so cannot just use C-runtime strerror
to return error messages. We have to use Win32-specific messages.
Unfortunately, we document the API to return C-runtime error codes,
so we can't just switch to all Win32 error codes.
11 years ago
Howard Chu
38e71c68de
ITS#7789 more
...
persist size changes from env_open() as well. This was the
original behavior.
11 years ago
Howard Chu
a5e4eecb1e
Revert "ITS#7789 update RESIZED errmsg text"
...
This reverts commit d8e18551c3
.
And partially reverts mapsize check. Only mapsize increases are relevant.
11 years ago
Howard Chu
d5371347e8
ITS#7825 more
...
Set read txn's dbiseqs to env's. Set child txn's dbiseqs to parent's.
Simplify DBI_CHANGED test, no need to check md_name. No-op dbi_close
of already closed handle.
11 years ago
Howard Chu
276aa55969
ITS#7825 more
...
only update dbiseq in dbi_open on write txns
11 years ago
Howard Chu
04851e442f
ITS#7825 tweak prev commit
...
dbiseqs are only checked in write txns so omit from read txns
11 years ago
Howard Chu
0401f2deed
ITS#7825 add MDB_BAD_DBI error code
...
Use DBI sequence numbers to detect DBIs being closed while in use.
11 years ago
Howard Chu
d8e18551c3
ITS#7789 update RESIZED errmsg text
11 years ago
Howard Chu
5926e54bba
ITS#7789 persist mapsize changes
...
Write decreases too, not just increases. Check for any size change
that was not requested by this process.
11 years ago
Howard Chu
2f04728471
ITS#7892 Fix MacOSX section name
11 years ago
Hallvard Furuseth
e1a676eb18
ITS#7713 cleanups
...
'#ifdef MDB_DEVEL' -> '#if MDB_DEVEL'
Fix comments, use actual PAGEBASE macro as originally intended.
Actually enable 64K pages. Set MDB_DATA_VERSION for testing only.
11 years ago
Hallvard Furuseth
6ed295b256
Fixes for loose pages
...
mdb_txn_commit(child): Give loose pages to parent.
Use a pointer beyond the page header instead of mp_next, so
we will not need to save/restore mp_pgno. This avoids a crash
caused by references to mp_pgno.
11 years ago
Howard Chu
b3e8c71dc7
Re-fix cursor EOF
...
Fix in 534dcc7212
was in wrong place
11 years ago
Howard Chu
68e6faad5c
ITS#7713 handle 65536 byte page size
...
Fix mp_lower/mp_upper to exclude PAGEHDRSZ, which means our
max mp_upper is now pagesize - PAGEHDRSZ and won't overflow.
Currently must define MDB_DEVEL to use. Will be default for
LMDB 1.0/OpenLDAP 2.5
11 years ago
Howard Chu
534dcc7212
Set xcursor EOF after deleting last entry
11 years ago
Howard Chu
1ac5147fc1
Compacting copy doesn't need to snapshot metas
11 years ago
Howard Chu
61f7ec9bfa
Windows fixes
11 years ago
Howard Chu
7d996d7f3d
Play games with object file layout
...
Use gcc section attribute to keep less frequently used functions
away from main code.
11 years ago
Howard Chu
3e98addbe2
Rationalize mdb_env_copy2 API
11 years ago
Howard Chu
059b357d1a
More tweaks to copyfd2
...
Make sure the writer thread starts and stops when we expect it to.
11 years ago
Howard Chu
03f0ecb001
More copyfd2 tweaks
11 years ago
Howard Chu
6043103c13
Fix envinfo to return fixed map address
11 years ago
Howard Chu
64191264b8
Windows compat
11 years ago
Howard Chu
8836b78e94
Fix subDB/ovpage copying
11 years ago
Howard Chu
af3c340758
Larger WBUF still better on large DB
11 years ago
Howard Chu
342cd72f25
Don't check LEAF2 pages for subnodes
11 years ago
Howard Chu
4009c9ae65
Add mdb_env_copy2()
...
And mdb_env_copyfd2(). Perform compaction on the copy. Trims out
freed pages and renumbers data pages in sequential order. This is
more CPU-intensive since it copies and modifies data pages.
11 years ago
Howard Chu
b09e46904c
ITS#7886 fix mdb_copy write size
...
Don't try to write past end of file
11 years ago
Hallvard Furuseth
91d8ad1d3c
Fix mdb_page_loose() vs. mdb_page_flush().
...
Do not overwrite loose pages' mp_pgno with mp_next.
mdb_page_flush() will use mp_pgno to rebuild dirty_list.
11 years ago
Howard Chu
a3e5539505
More for mdb_page_loose
...
Require that the page is dirty in the current txn,
not a parent txn.
11 years ago
Howard Chu
7fe85f5c82
More MDB -> LMDB renames
11 years ago
Howard Chu
225bcae3e7
Flesh out mdb_cmp_cint for BigEndians
11 years ago
Howard Chu
aa89ca31b3
More for page_loosen
...
Don't try this when working on the FreeDB. Again,
too much hassle to unkink the recursions...
11 years ago
Howard Chu
d9423e13f8
More cleanup for page_merge, page_loosen
...
Only loosen src page if it's actually dirty.
Refactor page refs in page_merge.
11 years ago
Howard Chu
7cab7b95e2
Handle loose pages
...
Pages that were dirtied and deleted in the same txn should be
reused, instead of consuming freeDB pages.
11 years ago
Howard Chu
eebbd22c2f
Fix mdb_page_merge
...
Similar to prev commit for mdb_node_move, the call of
mdb_page_serch_lowest() was leaving csrc unusable.
11 years ago
Howard Chu
79e8462d74
Fix mdb_node_move
...
Was leaving stale info in dst cursor
11 years ago