Howard Chu
f6b7277e9a
ITS#8310
10 years ago
Howard Chu
a90415f301
ITS#8310 fix mdb_rebalance cursor fixup
...
When collapsing root, must adjust entire cursor stack
10 years ago
Howard Chu
79b12bbd7b
Tweak robust mutex detection for glibc
10 years ago
Howard Chu
4e1ec79f0e
ITS#8304
10 years ago
Howard Chu
5d8f9ddf7e
ITS#8304 fix page_merge
...
Was using the pre-touch dst page pointer instead of the touched page
10 years ago
Howard Chu
712942d392
ITS#8300 more for node_move
...
When moving a node from one page to another, make sure other cursors'
parent index gets adjusted too.
10 years ago
Howard Chu
7d022e05a8
ITS#8300 simplify
10 years ago
Howard Chu
0db71b9f1a
ITS#8300 more for node_move fixups
...
When moving a node from the right neighbor, a different
adjustment is needed.
10 years ago
Howard Chu
e339fced30
ITS#8300
10 years ago
Howard Chu
9fc7c94aeb
ITS#8300 fix node_move
...
Don't adjust other cursors when we added a node on the right.
10 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.)
10 years ago
Howard Chu
4359ffe08f
ITS#8238, #8299
10 years ago
Howard Chu
17aab561f2
ITS#8238 fix DUPFIXED page_split
...
Parent mc_ki wasn't adjusted if new_indx was > split point
10 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.
10 years ago
Howard Chu
caca4d8be6
Use MDB_USE_ROBUST not MDB_NO_ROBUST
10 years ago
Howard Chu
447f552756
Add MDB_NO_ROBUST to disable Robust Mutexes
10 years ago
Howard Chu
550df2a583
More misc updates
10 years ago
Hallvard Furuseth
f1e07f9d14
Fix typo in mdb_tassert().
...
No effect on current code.
10 years ago
Pavel Medvedev
56adc467a6
ITS#8069 char* strings on Windows are ASCII
10 years ago
Pavel Medvedev
22958b0f9e
ITS#8067 add ssize_t typedef for MSVC
10 years ago
Hallvard Furuseth
de5b689308
Simpler mdb_env_write_meta()
10 years ago
Hallvard Furuseth
bde5c231bc
Kill magic numbers for NUM_METAS, databases
10 years ago
Hallvard Furuseth
8901d9cfbc
ITS#7377 Catch mdb_put() to blocked/read-only txns
...
...early enough that txn state is left unchanged.
10 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.
10 years ago
Hallvard Furuseth
602c978761
Cleanup: Drop !mt_dbxs hack, use MDB_TXN_FINISHED
10 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.
10 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).
10 years ago
Hallvard Furuseth
0cfc0a9736
Factor me_metas[toggle] out to mdb_env_pick_meta()
10 years ago
Hallvard Furuseth
490243424c
Simpler mdb_node_add()
10 years ago
Hallvard Furuseth
6318038138
More ESECT declarations
10 years ago
Hallvard Furuseth
110fba2ef1
Add DB_USRVALID, to avoid 'dbi == FREE_DBI' tests
10 years ago
Hallvard Furuseth
b6f0179683
Simpler flag/DBI checks and MDB_DEBUG
10 years ago
Hallvard Furuseth
06df0a4655
Simpler mdb_drop().
...
MDB_DBI_CHANGED(,MAIN_DBI) is never true.
10 years ago
Hallvard Furuseth
e5f41ce56b
Simpler mdb_node_shrink()
10 years ago
Hallvard Furuseth
9d6c973f76
Simpler mdb_txn_commit().
...
mt_env is always set.
Commit(mt_child) resets mt_child, so parent need not.
10 years ago
Hallvard Furuseth
ee06adb311
mdb_txn_begin() cleanup
10 years ago
Hallvard Furuseth
cc2a50aca2
mdb_drop0(): Omit scanning DUPSORT sub-DB leaves
10 years ago
Hallvard Furuseth
70788bfe45
Use mdb_cmp_long() for FREE_DBI
10 years ago
Hallvard Furuseth
a36f7a7fc2
mdb_env_get_flags(): Hide internal flags
10 years ago
Hallvard Furuseth
600e2b6ce0
Support robust mutexes/locks. Add mdb_mutex_t etc.
10 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.
10 years ago
Hallvard Furuseth
f25c4f0db9
Whitespace (align with mdb.master)
10 years ago
leo@yuriev.ru
086bc04cd2
ITS#7969 Use __sync_synchronize()
...
The rest of 9a80a8a8e8
plus commit a937740aa0
.
10 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().
10 years ago
Hallvard Furuseth
c616689d9a
Cleanup MDB_env.me_txn0.
...
More fallout from 4d02c741b1
.
10 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...).
10 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.
10 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.
10 years ago
Hallvard Furuseth
f3d3f60e3d
Try to avoid an invalid datafile after failed init
10 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.
10 years ago