Hallvard Furuseth
110fba2ef1
Add DB_USRVALID, to avoid 'dbi == FREE_DBI' tests
9 years ago
Hallvard Furuseth
b6f0179683
Simpler flag/DBI checks and MDB_DEBUG
9 years ago
Hallvard Furuseth
06df0a4655
Simpler mdb_drop().
...
MDB_DBI_CHANGED(,MAIN_DBI) is never true.
9 years ago
Hallvard Furuseth
e5f41ce56b
Simpler mdb_node_shrink()
9 years ago
Hallvard Furuseth
9d6c973f76
Simpler mdb_txn_commit().
...
mt_env is always set.
Commit(mt_child) resets mt_child, so parent need not.
9 years ago
Hallvard Furuseth
ee06adb311
mdb_txn_begin() cleanup
9 years ago
Hallvard Furuseth
cc2a50aca2
mdb_drop0(): Omit scanning DUPSORT sub-DB leaves
9 years ago
Hallvard Furuseth
70788bfe45
Use mdb_cmp_long() for FREE_DBI
9 years ago
Hallvard Furuseth
a36f7a7fc2
mdb_env_get_flags(): Hide internal flags
9 years ago
Hallvard Furuseth
600e2b6ce0
Support robust mutexes/locks. Add mdb_mutex_t etc.
9 years ago
Hallvard Furuseth
3a71450436
Add MDB_USE_POSIX_MUTEX.
...
So far just to help aligning mdb.master and mdb.RE.
We'll make it an option later.
9 years ago
Hallvard Furuseth
f25c4f0db9
Whitespace (align with mdb.master)
9 years ago
leo@yuriev.ru
086bc04cd2
ITS#7969 Use __sync_synchronize()
...
The rest of 9a80a8a8e8
plus commit a937740aa0
.
9 years ago
Hallvard Furuseth
3f6fa7aece
Set/clear mp_pad, md_pad (MDB_DUPFIXED data size).
...
mdb_xcursor_init1(): md_pad is only used when MDB_DUPFIXED.
mdb_page_split(): Copy mp_pad too. Used by mdb_page_list().
9 years ago
Hallvard Furuseth
c616689d9a
Cleanup MDB_env.me_txn0.
...
More fallout from 4d02c741b1
.
9 years ago
Hallvard Furuseth
c0170bc0ec
Copy some env flags to txn. Factor out flags.
...
Taken from mdb_txn_begin(,,MDB_NOMETASYNC, MDB_NOSYNC,,)
without adding those two flags yet, to align with mdb.master:
Part of 54516639ac
(Renumber...)
+ 8adee9464f
(Fix per-txn...).
9 years ago
leo@yuriev.ru
c65ca298b9
ITS#7971 mdb_txn_renew0(): Fix new readers slots.
...
commit 9a8eb95674
(mdb_txn_renew0)
plus b2ab9910dd
(reader allocation)
from mdb.master.
9 years ago
David Barbour
076b773d6b
ITS#7994 Access to current transaction ID.
...
commit b660491d3f
(mdb_txn_id())
plus c36c167cc4
(fix prev commit)
from mdb.master.
9 years ago
Hallvard Furuseth
f3d3f60e3d
Try to avoid an invalid datafile after failed init
9 years ago
Hallvard Furuseth
aa10c98f3f
For ITS#7789: Ensure mapsize >= pages in use.
...
Check new mapsizes against mm_last_pg. Move
mdb_env_init_meta0() so it can set mm_last_pg earlier.
9 years ago
Ignacio Casal Quinteiro
52446f93e7
ITS#8270 win32: fix conversion error with MSVC
9 years ago
Howard Chu
24add6589b
ITS#7771 fix cursor tracking on fake pages
...
node_del shifts nodes around, cursors pointing at fake pages
need to have their mc_pg[0] corrected.
9 years ago
Hallvard Furuseth
448b4c815a
ITS#8263 streamline prev patch
9 years ago
Howard Chu
7e3c532823
ITS#8263 fix cursor tracking in cursor_put
9 years ago
Howard Chu
9ed1e57440
ITS#8264 fix cursor_del cursor tracking
...
Some destination fixups need to happen immediately after nodes
are moved, before rebalancing
9 years ago
Howard Chu
8bdadf68c5
ITS#8258 fix rebalance/split
...
The tree height can also increase during rebalance, not just shrink.
This can happen if update_key needs to split a parent branch page.
9 years ago
Howard Chu
be1795a616
ITS#8221 fix typos
9 years ago
Howard Chu
4b01cb3727
ITS#8221 don't merge branch pages needlessly
9 years ago
Howard Chu
d84fae3fe3
ITS#8237 fix ITS#7589 regression
9 years ago
Hallvard Furuseth
7f151b1137
ITS#7377 mdb_env_init_meta(): Catch calloc error
9 years ago
Howard Chu
d139771b43
ITS#8192 fix reference to EINTR on WIN32 from ITS#8106
9 years ago
Hallvard Furuseth
4b58502c77
ITS#8200 Fix mdb_midl_shrink() usage, return void
9 years ago
Hallvard Furuseth
1fd0341f76
ITS#8181 Verify that records are/aren't DBs.
...
Except we don't catch the user passing F_SUBDATA to
mdb_cursor_<put/del>, like an internal LMDB call.
9 years ago
Howard Chu
7513bd4618
ITS#8190 fix cursor EOF bug
9 years ago
Hallvard Furuseth
a0b96697c5
ITS#8156 Fix MDB_MAXKEYSIZE doc
10 years ago
Hallvard Furuseth
6bfadb9178
ITS#8157 mdb_txn_renew0(): init after error checks
10 years ago
Hallvard Furuseth
822b2d502f
ITS#8117 Fix MDB_INTEGERDUP keysize doc + md_dcmp
10 years ago
Howard Chu
6bd97d4286
ITS#8117 better fix
...
Don't change mc_dbx because we would need to undo the change if
the txn aborts. Make the fix (for get) match existing code for put.
10 years ago
Howard Chu
7127753244
Revert "ITS#8117 cleanup prev commit"
...
This reverts commit 47c4e747a0
.
Revert "ITS#8117 fix INTEGERDUP compare"
This reverts commit ba45e0c05a
.
10 years ago
Howard Chu
47c4e747a0
ITS#8117 cleanup prev commit
10 years ago
Howard Chu
ba45e0c05a
ITS#8117 fix INTEGERDUP compare
10 years ago
Howard Chu
b7511480c5
ITS#8109 fix mdb_cursor_del0 on empty DB
10 years ago
Howard Chu
32d46d4ea2
ITS#8106 retry writes on EINTR
10 years ago
Hallvard Furuseth
f46b642b06
mdb_txn_renew(): Clear error from previous txn
10 years ago
Howard Chu
dce0911b17
ITS#8062 fix uninit'd cursor index
10 years ago
Howard Chu
b0032feb85
ITS#8062 also handle subcursors
10 years ago
Howard Chu
97c7b6151e
ITS#8062 fix rebalance
...
(Probably fixes the ITS, definitely fixes a bug) when collapsing
the root page, fixups of other cursors was incomplete.
10 years ago
Quanah Gibson-Mount
21a374f2d4
Happy New Year
10 years ago
leo@yuriev.ru
8230b1b630
ITS#7970 LMDB: Critical Heisenbug
...
Inconsistent reading & SIGSEGV due to the race condition.
10 years ago
leo@yuriev.ru
1e5d79831c
ITS#7969 LMDB: volatile.
...
Globally shared fields of meta-data were not 'volatile'.
Code from 9a80a8a8e8
,
except the unportable __synchronize().
10 years ago