Howard Chu
0ce6bb4be0
Add error checks to txn_commit
...
These ops could fail if the map is full.
2012-12-10 12:21:36 -08:00
Howard Chu
aff2693fc0
ITS#7455 simplify
...
Don't try to reclaim overflow pages while operating on
the freelist (for now). The circular dependencies are much like
the single-page case, but worse. Maybe look into this in the
future, but it's not absolutely necessary now.
2012-12-10 12:16:50 -08:00
Howard Chu
e26fc73417
ITS#7467 add verbose freelist info
2012-12-07 13:19:36 -08:00
Howard Chu
784757faa9
ITS#7465 fail if both -a and -s specified
2012-12-07 12:06:30 -08:00
Howard Chu
9a5d4370be
Yet more retries for overflow page scan
2012-12-06 17:39:49 -08:00
Howard Chu
5863d5cc61
Freelist fixes
...
Keep list sorted if it grows during a write. Don't free pghead until
we're sure our writes are all finished.
2012-12-06 09:05:30 -08:00
Howard Chu
7b10fdde00
Fix mdb_env_copy
...
Just write in 2^31 sized chunks
2012-12-04 06:30:22 -08:00
Howard Chu
04b7c42109
Rename mdb_open/close mdb_dbi_open/close
...
Avoid possible symbol clashes with MDB-Tools libmdb
2012-12-03 16:53:24 -08:00
Howard Chu
e545b742e5
Fix 5c1ee7f7ba
...
mdb_cursor_sibling() no longer pops cursor before returning.
2012-12-03 13:57:46 -08:00
Howard Chu
5af47adf6b
Fix mdb_midl_shrink
2012-12-03 13:57:28 -08:00
Howard Chu
d3f51fdcf7
More retries for overflow page scan
2012-11-30 12:54:19 -08:00
Howard Chu
98fe339089
Rename libmdb to liblmdb
2012-11-30 12:45:34 -08:00
Howard Chu
2a94ebced6
Add install target
2012-11-30 12:39:53 -08:00
Howard Chu
13f3bcd59c
Rename libmdb to liblmdb, lmdb.h
...
Avoid naming conflicts with other mdb* packages. Bump version to 0.9.5
2012-11-30 12:30:51 -08:00
Howard Chu
f165507199
ITS#7455 use freelist for overflow pages
2012-11-30 12:18:27 -08:00
Howard Chu
185136397d
Drop unneeded #include <time.h>
2012-11-28 15:34:44 -08:00
Howard Chu
049b145ec7
Doc layout tweaks
2012-11-28 15:34:19 -08:00
Hallvard Furuseth
97ed96206d
mdb_env_sync(,force=1): Override MDB_MAPASYNC.
...
With MDB_MAPASYNC, the API provided no way to ensure full sync.
2012-11-28 00:59:00 +01:00
Hallvard Furuseth
b9275c9991
mdb_cursor_dbi(): Assume valid args.
...
It returned 0, which is the freelist DBI and is valid for a few uses.
2012-11-28 00:59:00 +01:00
Hallvard Furuseth
7e620a34a2
API change: mdb_drop() only accepts del=0 or 1.
...
This allows for other flag values in the future.
2012-11-28 00:59:00 +01:00
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.
2012-11-28 00:59:00 +01:00
Hallvard Furuseth
6b56e0fab1
ITS#7453 Fix reset of MDB_NOSYNC/MDB_NOMETASYNC.
...
mdb_env_open() with these flags did not open a synchronizing
file descriptor. Thus disabling them later did not work.
2012-11-28 00:59:00 +01:00
Hallvard Furuseth
0201b9002c
Tweak MDB_FIXEDMAP handling.
...
Drop mmap()'s MAP_FIXED flag, so it returns another address instead
of unmapping existing overlapping pages. Verify the returned address.
2012-11-28 00:59:00 +01:00
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.
2012-11-28 00:59:00 +01:00
Howard Chu
bb36bdcd1c
ITS#7432 fix typo in mdb_midl_sort
...
Wasn't pushing the optimal half of the array onto the stack,
thus used more stack than expected -> overrun.
2012-11-05 05:06:06 -08:00
Howard Chu
0108327c27
Better fix for MDB_DEBUG tweak -- from hbf
2012-10-25 07:03:25 -07:00
Howard Chu
b68aa3f86b
Revert "MDB_DEBUG tweak for old compilers"
...
This reverts commit ef2092eac9
.
2012-10-25 06:54:09 -07:00
Howard Chu
ef2092eac9
MDB_DEBUG tweak for old compilers
2012-10-25 05:28:55 -07:00
Howard Chu
c2f15990c7
Fix flag checks in mdb_open
2012-10-23 04:48:04 -07:00
Howard Chu
f5b8d017df
fix Windows mdb_env_copy(), WriteFile overflow
2012-10-23 04:32:55 -07:00
Howard Chu
66f2b7b2ec
Make sure mdb_open flags are committed on main DB
...
If no data was modified in the txn, mdb_open flag changes were dropped.
2012-10-22 17:03:15 -07:00
Howard Chu
5f2ddb5532
Minor cleanup
2012-10-22 16:13:42 -07:00
Howard Chu
5c1ee7f7ba
Fix MDB_PREV
...
Could return 1 garbage record before actual data, if starting from EOF
2012-10-22 16:02:30 -07:00
Howard Chu
617769bce5
Tweak output, add free page info
2012-10-16 17:01:16 -07:00
Howard Chu
754cd88819
Add mdb_env_info() to retrieve interesting env params
2012-10-16 16:22:21 -07:00
Howard Chu
7f0771a3ed
Merge mdb_stata into mdb_stat
2012-10-16 15:37:29 -07:00
Howard Chu
65d40eb5d2
Make sure increases of mapsize are persisted
2012-10-16 14:53:25 -07:00
Hallvard Furuseth
94965307c8
ITS#7377 Errorcheck Windows calls and thread keys.
2012-10-15 17:04:48 +02:00
Hallvard Furuseth
88b7bb4639
Explicitly unlock the MDB lockfile on Windows.
2012-10-15 17:04:43 +02:00
Hallvard Furuseth
e9d87866c4
mdb_env_open(): Keep mdb_env_set_flags() flags.
2012-10-15 17:04:11 +02:00
Hallvard Furuseth
092f9a5c66
More for mdb_env_copy().
...
Fix #define _GNU_SOURCE = 1 to match any command line -D_GNU_SOURCE.
.gitignore += mdb_copy.
2012-10-15 17:03:46 +02:00
Hallvard Furuseth
462d9dfd10
Fix last commit.
...
Add flag MDB_ENV_ACTIVE instead of using the state of me_lfd.
Require MDB_RDONLY for MDB_ROFS. Swap reader/writer mutex lock.
2012-10-15 17:03:33 +02:00
Howard Chu
e40713b631
Support read access on read-only media
2012-10-13 04:05:00 -07:00
Howard Chu
f037dd2d19
Silence warning in prev commit
2012-10-11 16:47:56 -07:00
Howard Chu
ebb6859ea5
Add mdb_copy for backing up a DB environment
2012-10-11 12:24:01 -07:00
Hallvard Furuseth
756ce8e10c
Tweak MDB restrictions
2012-10-03 21:13:21 +02:00
Hallvard Furuseth
a3f33dd20e
Fix mdb_open() off-by-one error in maxdbs check
2012-10-03 18:08:56 +02:00
Hallvard Furuseth
38fb8e6eb1
ITS#7377 Wrap fcntl F_SETLK in EINTR loop too.
...
This can happen even on local filesystems.
2012-10-03 18:06:29 +02:00
Hallvard Furuseth
ab3fea51dc
ITS#7377 Catch ftruncate() error
2012-10-03 18:06:29 +02:00
Hallvard Furuseth
2b960613e0
ITS#7377 Document caveats/troubeshooting.
2012-10-03 18:04:07 +02:00