Hallvard Furuseth
f97552a83a
Check DB flags when refreshing a stale MDB DBI.
...
It's hairy to figure out when a DBI is valid. Catch destructive
user errors, and flags which another process changed under us.
12 years ago
Hallvard Furuseth
e4af9ee5da
ITS#7515 mdb_dbi_open(): Also open in parent txns.
...
This makes aborting nested and non-nested txns more
similar: The new DBI is available to the surrounding
context (parent txn and MDB_env respectively).
12 years ago
Hallvard Furuseth
f19655eabc
ITS#7517 Document that dirty DBs may not be closed
12 years ago
Hallvard Furuseth
8ad25001ff
ITS#7485 Document key/data size limits in lmdb.h.
...
mdb.c already describes them. The user doc should too.
12 years ago
Hallvard Furuseth
7aba5f5ab9
Add error code MDB_MAP_RESIZED.
12 years ago
Hallvard Furuseth
7fdf672041
Update MDB comments: Caveats, flags, etc.
12 years ago
Howard Chu
53cf2eed90
ITS#7491 check for filled dirty page list
...
Very large single transactions will fail. It's not just a problem when
nested transactions are used. We could make this dynamically sized,
but I'm not sure what the point is.
12 years ago
Howard Chu
fed573cb86
Happy New Year
12 years ago
Howard Chu
0702fbd688
Update version date
12 years ago
Howard Chu
e74d70e88e
Partially revert 65d40eb5d2
...
Allow both increasing and decreasing the environment size.
But don't allow decreasing below the currently occupied space.
12 years ago
Howard Chu
04b7c42109
Rename mdb_open/close mdb_dbi_open/close
...
Avoid possible symbol clashes with MDB-Tools libmdb
12 years ago
Howard Chu
98fe339089
Rename libmdb to liblmdb
12 years ago
Howard Chu
13f3bcd59c
Rename libmdb to liblmdb, lmdb.h
...
Avoid naming conflicts with other mdb* packages. Bump version to 0.9.5
12 years ago
Howard Chu
049b145ec7
Doc layout tweaks
12 years ago
Hallvard Furuseth
97ed96206d
mdb_env_sync(,force=1): Override MDB_MAPASYNC.
...
With MDB_MAPASYNC, the API provided no way to ensure full sync.
12 years ago
Hallvard Furuseth
7e620a34a2
API change: mdb_drop() only accepts del=0 or 1.
...
This allows for other flag values in the future.
12 years ago
Hallvard Furuseth
d903bed218
API change: mdb_env_set_maxdbs(, *named* DBs).
...
Let the user specify the number of databases he will actually
use. Adding 2 for FREE_DBI and MAIN_DBI is an internal matter.
12 years ago
Hallvard Furuseth
52e3adbdec
Renumber MDB_NOSUBDIR. Check mdb_env_open() flags.
...
MDB_NOSUBDIR was == MDB_REVERSEKEY. That affected the freelist:
Env flags are stored in mm_flags alias mm_dbs[FREE_DBI].md_flags.
It stays a persistent flag, in case mdb_env_open someday wants
to pick/verify which lockfile to use with the datafile.
Catch bad flags so they will no longer make it into the data file.
12 years ago
Howard Chu
617769bce5
Tweak output, add free page info
12 years ago
Howard Chu
754cd88819
Add mdb_env_info() to retrieve interesting env params
12 years ago
Hallvard Furuseth
e9d87866c4
mdb_env_open(): Keep mdb_env_set_flags() flags.
12 years ago
Howard Chu
ebb6859ea5
Add mdb_copy for backing up a DB environment
12 years ago
Hallvard Furuseth
756ce8e10c
Tweak MDB restrictions
12 years ago
Hallvard Furuseth
2b960613e0
ITS#7377 Document caveats/troubeshooting.
12 years ago
Howard Chu
ba6c3281a1
Add MDB_GET_CURRENT
...
return whatever the cursor is currently pointing at
12 years ago
Howard Chu
8bb10add24
More for ab04c50a32
...
Fix typos, error code ranges
12 years ago
Howard Chu
acbff5b1ea
Add mdb_cursor_renew()
...
Allow cursors on read-only txns to be reused with later txns.
12 years ago
Howard Chu
c542442c9f
Add MDB_SET_KEY cursor op
...
Overwrites the passed in key with the DB's key
12 years ago
Howard Chu
ab04c50a32
ITS#7383 More explicit error codes
12 years ago
Howard Chu
de77882898
Update comments, bump version
...
Note read-write vs read-only mmap tradeoffs.
12 years ago
Howard Chu
2e677bcb99
msync should default to fully synchronous
12 years ago
Howard Chu
1c733bdc4e
Add msync support for WRITEMAP option
12 years ago
Howard Chu
d8a89464cd
Add MDB_WRITEMAP to use a writable mmap
12 years ago
Howard Chu
d53644f682
Minor cleanup
12 years ago
Howard Chu
14fb1f59c7
Append tweaks, page_split fixes
...
Append mode now does no key comparisons, input must be in sorted order.
page_split was not updating cursor parents correctly.
13 years ago
Howard Chu
df7ddb6bf4
Add MDB_NOMETASYNC env option.
...
Just a trial. This may not make sense if we decide to split the
meta pages into their own separate file, to allow meta traffic to
reside on a separate spindle.
13 years ago
Howard Chu
fadf75a9cb
Further clarification of mdb_open()
13 years ago
Hallvard Furuseth
592b3f8727
libmdb: Add C++ 'extern "C" {}' to *.h
13 years ago
Howard Chu
191d78948b
ITS#7238 doc clarification
13 years ago
Hallvard Furuseth
d50d57ed63
Fix libmdb comments
13 years ago
Howard Chu
3d6b924c25
txn_commit must abort txn before returning errors
...
Fix for failure when committing a txn that is a child of
some parent txn.
13 years ago
Howard Chu
713bf092b6
Happy New Year!
13 years ago
Howard Chu
85bfb3c1d1
Add rudimentary MDB_MULTIPLE support for puts
...
Only for DUPFIXED DBs. Still could do better.
13 years ago
Howard Chu
fa3c2945f5
Add MDB_APPEND to avoid splitting full pages
13 years ago
Howard Chu
28b8aaeb96
Add mdb_cursor_txn() and mdb_cursor_dbi() for querying the cursor
13 years ago
Howard Chu
6e05ca17e9
Add MDB_RESERVE mode
...
When putting a record, just make space for the data, don't copy it.
(Not compatible with MDB_DUPSORT, since the actual data is needed
to determine the insert location.)
13 years ago
Howard Chu
fa0d64242b
Doc for the MDB_NOSUBDIR env option
13 years ago
Howard Chu
7a40080dd1
Add MDB_NOSUBDIR option
...
Create the data file using exactly the given pathname, and
the lock file using a suffix on the data file name.
13 years ago
Howard Chu
619e671f1c
txn_abort/commit free all their cursors now.
13 years ago
Howard Chu
b9d13a29e6
Track changes to all cursors.
...
For any change to a page or node, update all other cursors pointing
at the same page (or node). Cursors are now stored in a linked list
off their owning transaction. Cursors are all closed when the transaction
ends. Cursors in parent transactions are updated when their child
transaction commits.
13 years ago