Howard Chu
9fc7c94aeb
ITS#8300 fix node_move
...
Don't adjust other cursors when we added a node on the right.
9 years ago
Howard Chu
af45cf3a04
ITS#8300 fix rebalance after node_move
...
ITS#8258, ITS#7829 fixes checked parent index to see if we were moving
from a left neighbor. Should have just checked to see if current index
was 0, meaning we added on the left. (Parent index may not tell us
anything meaningful after a nested rebalance.)
9 years ago
Howard Chu
17aab561f2
ITS#8238 fix DUPFIXED page_split
...
Parent mc_ki wasn't adjusted if new_indx was > split point
9 years ago
Howard Chu
c62b77b661
ITS#8299 fix page_merge cursor fixup
...
The parent's mc_ki has changed. We need to fix that up as well
in other cursors.
9 years ago
Howard Chu
caca4d8be6
Use MDB_USE_ROBUST not MDB_NO_ROBUST
9 years ago
Howard Chu
447f552756
Add MDB_NO_ROBUST to disable Robust Mutexes
9 years ago
Hallvard Furuseth
f1e07f9d14
Fix typo in mdb_tassert().
...
No effect on current code.
9 years ago
Pavel Medvedev
56adc467a6
ITS#8069 char* strings on Windows are ASCII
9 years ago
Pavel Medvedev
22958b0f9e
ITS#8067 add ssize_t typedef for MSVC
9 years ago
Hallvard Furuseth
de5b689308
Simpler mdb_env_write_meta()
9 years ago
Hallvard Furuseth
bde5c231bc
Kill magic numbers for NUM_METAS, databases
9 years ago
Hallvard Furuseth
8901d9cfbc
ITS#7377 Catch mdb_put() to blocked/read-only txns
...
...early enough that txn state is left unchanged.
9 years ago
Hallvard Furuseth
01342bd5d2
ITS#7377 Always notice env error on txn startup.
...
Move the check to the end of txn startup. Catches env
breakage which happens while the new txn waits for a lock.
9 years ago
Hallvard Furuseth
602c978761
Cleanup: Drop !mt_dbxs hack, use MDB_TXN_FINISHED
9 years ago
Hallvard Furuseth
a3ae2e7db1
Catch most uses of finished/parent txns.
...
* Add MDB_TXN_FINISHED, MDB_TXN_HAS_CHILD, MDB_TXN_BLOCKED.
* Clear mt_numdbs in writers, for TXN_DBI_EXIST() to catch.
We already do in readers.
9 years ago
Hallvard Furuseth
9266843fa6
Move code into mdb_txn_end(). Was mdb_txn_reset0.
...
Side effects:
* Clean txn up a bit even before freeing it.
* Tweak DEBUG output at txn end. Add DEBUG after commit(writer).
9 years ago
Hallvard Furuseth
0cfc0a9736
Factor me_metas[toggle] out to mdb_env_pick_meta()
9 years ago
Hallvard Furuseth
490243424c
Simpler mdb_node_add()
9 years ago
Hallvard Furuseth
6318038138
More ESECT declarations
9 years ago
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