Howard Chu
c2f15990c7
Fix flag checks in mdb_open
12 years ago
Howard Chu
f5b8d017df
fix Windows mdb_env_copy(), WriteFile overflow
12 years ago
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.
12 years ago
Howard Chu
5f2ddb5532
Minor cleanup
12 years ago
Howard Chu
5c1ee7f7ba
Fix MDB_PREV
...
Could return 1 garbage record before actual data, if starting from EOF
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
Howard Chu
65d40eb5d2
Make sure increases of mapsize are persisted
12 years ago
Hallvard Furuseth
94965307c8
ITS#7377 Errorcheck Windows calls and thread keys.
12 years ago
Hallvard Furuseth
88b7bb4639
Explicitly unlock the MDB lockfile on Windows.
12 years ago
Hallvard Furuseth
e9d87866c4
mdb_env_open(): Keep mdb_env_set_flags() flags.
12 years ago
Hallvard Furuseth
092f9a5c66
More for mdb_env_copy().
...
Fix #define _GNU_SOURCE = 1 to match any command line -D_GNU_SOURCE.
.gitignore += mdb_copy.
12 years ago
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.
12 years ago
Howard Chu
e40713b631
Support read access on read-only media
12 years ago
Howard Chu
f037dd2d19
Silence warning in prev commit
12 years ago
Howard Chu
ebb6859ea5
Add mdb_copy for backing up a DB environment
12 years ago
Hallvard Furuseth
a3f33dd20e
Fix mdb_open() off-by-one error in maxdbs check
12 years ago
Hallvard Furuseth
38fb8e6eb1
ITS#7377 Wrap fcntl F_SETLK in EINTR loop too.
...
This can happen even on local filesystems.
12 years ago
Hallvard Furuseth
ab3fea51dc
ITS#7377 Catch ftruncate() error
12 years ago
Howard Chu
7333b6bdc9
Fix prev commit
...
It only worked if the freelist was already non-empty
12 years ago
Howard Chu
cd228b4722
Fix mdb_drop
...
if it was the only operation in a txn, it would be ignored.
12 years ago
Howard Chu
0c4c6fe72a
ITS#7385, check further for bad splits
...
More for 48ef27b6f5
Our definition of "large" data item needs to be smaller to
handle more cases where a bad split is possible
12 years ago
Howard Chu
ba6c3281a1
Add MDB_GET_CURRENT
...
return whatever the cursor is currently pointing at
12 years ago
Howard Chu
d13ca0de4f
ITS#7394 ignore WRITEMAP if RDONLY
12 years ago
Howard Chu
0a359fb629
More for 48ef27b6f5
...
page_split with newindex > split_indx
12 years ago
Hallvard Furuseth
c67ea9c060
ITS#7377 Catch MDB user errors.
12 years ago
Hallvard Furuseth
c0f3d9b9a8
ITS#7377 Catch MDB setup errors and clean up.
12 years ago
Hallvard Furuseth
fe1b3794de
ITS#7364 Limit mdb lock upgrade before sem_unlink.
...
Do not try shared lock when closing or after error. Track file lock
state to decide. Change meaning of *excl to reflect file lock state.
12 years ago
Hallvard Furuseth
c760e536ec
ITS#7364 Always sem_unlink() in mdb_env_open().
...
Drop the sem_unlink() error checks, which could prevent the 2nd
unlink. Instead use O_EXCL in sem_open().
This makes "open+close the database" the API for trying to clean
away the old semaphores, if they were left behind by a previous run.
12 years ago
Hallvard Furuseth
31be24896b
ITS#7377 Wrap sem_wait & file locks in EINTR loops
12 years ago
Hallvard Furuseth
a35f9b2a53
Remove mdb data races. Use (txnid_t)-1 as "no ID".
...
Avoid race between numreaders++ and reading numreaders at cleanup. Make
the un-mutexed reset of reader table entry, atomic: Reset mr_pid only.
Instead check mr_pid != 0 in mdb_page_alloc()'s scan for readers.
(txnid_t)-1 as "no ID"-mark avoids a check for mr_txnid != 0.
The scan can stop when seeing an old reader.
12 years ago
Hallvard Furuseth
38cc1e96b4
Save pid in MDB_env instead of repeating getpid().
...
An open MDB environment does not survive or catch fork(),
so repeating getpid() was pointless.
12 years ago
Hallvard Furuseth
20a216fcc9
MDB_WRITEMAP needs no DSYNC descriptor (me_mfd)
12 years ago
Hallvard Furuseth
588a84a5ae
ITS#7363 Preprocessor namespace cleanup.
...
Rename USE_POSIX_SEM to MDB_USE_POSIX_SEM.
Separate MDB_FDATASYNC from MDB_USE_POSIX_SEM.
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
48ef27b6f5
ITS#7385 fix mdb_page_split (again)
...
More for d793594173
ITS#7229
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
14a08f877f
More for 57b5fbea49
...
Fix abort of child txn
12 years ago
Hallvard Furuseth
4608cd9552
libmdb: Fix P_INVALID when pgno_t != unsigned long
12 years ago
Hallvard Furuseth
3e3c785034
libmdb: Check sem_open() against SEM_FAILED.
12 years ago
Howard Chu
4bc18a5dd3
In mdb_audit, change assert to fprintf
12 years ago
Howard Chu
85ae5011e7
Fix mdb_audit()
...
due to a0993354a6
12 years ago
Howard Chu
916995236e
ITS#7364 also close the mutexes as needed
...
Otherwise a process that opens and closes an env more than once
will leak mutex handles. (WIN32/BSD)
12 years ago
Chris Mikkelson
46cf442700
ITS#7364 Remove POSIX semaphores when the last user closes the mdb environment.
12 years ago
Chris Mikkelson
9f983b7999
ITS#7363 Use posix semaphores on apple and bsd systems.
12 years ago