Hallvard Furuseth
e9e3c9fb51
ITS#7377 mdb_env_init_meta(): Catch calloc error
2015-08-23 11:12:45 +02:00
Howard Chu
bc4c177b91
Doc tweak - MDB_RESERVE / DUPSORT incompat
...
For those people who insist on ignoring the obvious.
2015-08-22 14:00:12 +01:00
Howard Chu
c77fbc6f35
Another MDB_APPEND doc tweak
...
Missed this in 7ce29b9edb
2015-08-21 21:40:33 +01:00
Pavel Medvedev
10c808e4f9
ITS#8069 char* strings on Windows are ASCII
2015-08-19 17:21:16 +01:00
Pavel Medvedev
8d198fdd5a
ITS#8067 add ssize_t typedef for MSVC
2015-08-19 16:39:08 +01:00
Howard Chu
80e997a0eb
Bump version to 0.9.16
2015-08-14 01:01:40 +01:00
Howard Chu
c9d45600cd
ITS#8192 fix typo
2015-07-30 00:54:05 +01:00
Howard Chu
d4f9568249
ITS#8192 cleanup unused label on WIN32
2015-07-29 20:03:43 +01:00
Howard Chu
572aff7e80
ITS#8192 fix reference to EINTR on WIN32 from ITS#8106
2015-07-29 20:01:34 +01:00
Hallvard Furuseth
2c6c267a23
Simpler mdb_env_write_meta()
2015-07-26 07:20:19 +02:00
Hallvard Furuseth
af29f6a594
Kill magic numbers for NUM_METAS, databases
2015-07-26 07:16:41 +02:00
Hallvard Furuseth
4dea7d44fa
ITS#7377 Catch mdb_put() to blocked/read-only txns
...
...early enough that txn state is left unchanged.
2015-07-19 21:44:02 +02:00
Hallvard Furuseth
d7db12ad77
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.
2015-07-19 21:43:10 +02:00
Hallvard Furuseth
060b63a58d
Cleanup: Drop !mt_dbxs hack, use MDB_TXN_FINISHED
2015-07-19 21:31:54 +02:00
Hallvard Furuseth
3e301ec400
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.
2015-07-19 21:31:25 +02:00
Hallvard Furuseth
b6973a3324
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).
2015-07-19 21:30:12 +02:00
Hallvard Furuseth
90f6fc4ba7
ITS#8200 Fix mdb_midl_shrink() usage, return void
2015-07-19 21:18:31 +02:00
Hallvard Furuseth
91fc43f17c
Factor me_metas[toggle] out to mdb_env_pick_meta()
2015-07-11 21:10:33 +02:00
Hallvard Furuseth
62aabaa4aa
Simpler mdb_node_add()
2015-07-11 21:09:36 +02:00
Hallvard Furuseth
45e405528b
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.
2015-07-11 21:01:40 +02:00
Howard Chu
749633e48a
ITS#8190 fix cursor EOF bug
2015-07-07 13:42:41 +01:00
Hallvard Furuseth
ad87d6a3f4
More ESECT declarations
2015-07-04 13:50:21 +02:00
Hallvard Furuseth
ebb8b67109
Add DB_USRVALID, to avoid 'dbi == FREE_DBI' tests
2015-07-04 13:49:12 +02:00
Hallvard Furuseth
5cd5e928c1
Simpler flag/DBI checks and MDB_DEBUG
2015-07-04 13:48:07 +02:00
Hallvard Furuseth
4033f31acb
Simpler mdb_drop().
...
MDB_DBI_CHANGED(,MAIN_DBI) is never true.
2015-07-04 13:48:06 +02:00
Hallvard Furuseth
be0cdc1c9d
Simpler mdb_node_shrink()
2015-07-04 13:48:05 +02:00
Hallvard Furuseth
084d412f9b
Simpler mdb_txn_commit().
...
mt_env is always set.
Commit(mt_child) resets mt_child, so parent need not.
2015-07-04 13:48:04 +02:00
Hallvard Furuseth
5305871585
mdb_txn_begin() cleanup
2015-07-04 13:48:03 +02:00
Hallvard Furuseth
b6ac0cd90a
mdb_drop0(): Omit scanning DUPSORT sub-DB leaves
2015-07-04 13:48:02 +02:00
Hallvard Furuseth
f702e33b6c
Use mdb_cmp_long() for FREE_DBI
2015-07-04 13:48:01 +02:00
Hallvard Furuseth
11536bea25
mdb_env_get_flags(): Hide internal flags
2015-07-04 13:42:41 +02:00
Hallvard Furuseth
a937740aa0
ITS#7969 Wrap unportable __sync_synchronize in #if
2015-07-03 22:38:50 +02:00
Hallvard Furuseth
943b23f011
Restore support for Posix semaphores
2015-07-02 21:14:56 +02:00
Hallvard Furuseth
9574b65648
Fix mdb_mutex_t, add mdb_mutexref_t, drop MDB_MUTEX().
...
Fixes the types of Windows HANDLEs, they became HANDLE*.
MDB_MUTEX() took a magic r/w arg which it's nice to get rid of.
2015-07-02 21:06:35 +02:00
Hallvard Furuseth
8293b20cfe
Add MDB_USE_POSIX_MUTEX.
...
So far just to help aligning mdb.master and mdb.RE.
We'll make it an option later.
2015-07-02 21:06:27 +02:00
Howard Chu
7d162bcf31
CHANGES only belongs in mdb.RE
2015-07-02 18:03:36 +01:00
Howard Chu
bf55ce5545
Bump version to 0.9.15
...
(not really, since this is the dev/non-release branch)
2015-06-19 14:13:43 +01:00
Hallvard Furuseth
e95d57f39c
Use ftok() for semget(), and only lower mode bits
2015-06-02 20:51:03 +02:00
Hallvard Furuseth
68f64aa104
Clarify mdb_env_open() doc of 'mode' param
2015-06-02 20:49:33 +02:00
Hallvard Furuseth
579ad14d7c
ITS#8156 Fix MDB_MAXKEYSIZE doc
2015-05-28 20:51:24 +02:00
Hallvard Furuseth
aa16d7bc0a
ITS#8157 mdb_txn_renew0(): init after error checks
2015-05-27 22:26:54 +02:00
Hallvard Furuseth
8d1f6ca782
mdb_txn_renew(): Drop pointless diff from mdb.RE.
...
Makes the code friendlier to "git cherry-pick".
2015-05-27 22:23:50 +02:00
Hallvard Furuseth
02e8de5edb
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().
2015-05-20 04:04:38 +02:00
Hallvard Furuseth
77bdbdd9de
mtest*.c: Fix MDB_NOOVERWRITE, plug cursor leak
2015-05-20 03:17:47 +02:00
Hallvard Furuseth
9bb915675a
ITS#8117 Fix MDB_INTEGERDUP keysize doc + md_dcmp
2015-05-19 20:33:35 +02:00
Howard Chu
329e12e4c5
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.
2015-05-03 07:57:22 +01:00
Howard Chu
3d2202f31c
Revert "ITS#8117 cleanup prev commit"
...
This reverts commit ce7ba0ceb6 .
Revert "ITS#8117 fix INTEGERDUP compare"
This reverts commit ed13d4aa59 .
2015-05-03 07:56:40 +01:00
Howard Chu
ce7ba0ceb6
ITS#8117 cleanup prev commit
2015-04-29 17:28:21 +01:00
Howard Chu
ed13d4aa59
ITS#8117 fix INTEGERDUP compare
2015-04-29 17:13:55 +01:00
Howard Chu
f4cab2994f
ITS#8109 fix mdb_cursor_del0 on empty DB
2015-04-23 05:49:56 +01:00
Howard Chu
4c62fde880
ITS#8106 retry writes on EINTR
2015-04-17 18:32:54 +01:00
Howard Chu
ccf4d8b385
ITS#8062 also handle subcursors
2015-04-16 00:20:28 +01:00
Howard Chu
b0fca5b956
ITS#8062 fix rebalance
...
(Probably fixes the ITS, definitely fixes a bug) when collapsing
the root page, fixups of other cursors was incomplete.
2015-04-15 23:20:55 +01:00
Hallvard Furuseth
2f6877ff7b
Cleanup mtest* and sample-*.
...
Fix mdb_txn_begin(&read-only txn) calls. Test mdb_env_set_maxreaders().
Rename DBI open/close functions. Move mdb_dbi_close() out of txn.
2015-04-14 20:25:51 +02:00
Hallvard Furuseth
5224774f3c
Reformat mdb_dbi_open() doc for clarity
2015-04-14 20:24:30 +02:00
Hallvard Furuseth
6a86f22b2a
Cleanup MDB_env.me_txn0.
...
More fallout from 4d02c741b1 .
2015-04-08 21:52:05 +02:00
Hallvard Furuseth
8adee9464f
Fix per-txn MDB_NOMETASYNC, MDB_NOSYNC.
...
Fallout from 4d02c741b1 . The flags
were ignored: mdb_txn_renew0/begin cleared and/or did not set them.
2015-04-08 21:51:50 +02:00
Hallvard Furuseth
54516639ac
Renumber MDB_TXN_* flags, simplify flag code
2015-04-08 21:51:16 +02:00
Hallvard Furuseth
49bb9e82e8
mdb_txn_renew(): Clear error from previous txn
2015-04-08 21:47:24 +02:00
Howard Chu
d2dab3c905
ITS#8062 fix uninit'd cursor index
2015-03-18 19:26:21 +00:00
Howard Chu
04af46b1c1
ITS#8066 fix mdb_load with large values
2015-02-26 21:37:01 +00:00
Quanah Gibson-Mount
6fe12f3273
Happy New Year
2015-02-12 11:17:59 -06:00
Quanah Gibson-Mount
f526f1b9a3
Happy New Year
2015-02-12 10:46:33 -06:00
Howard Chu
8bb541bc40
Also support NOMETASYNC on txn_begin
2015-02-02 10:33:41 +00:00
Howard Chu
3368d1f5e2
Support MDB_NOSYNC on mdb_txn_begin()
2015-01-30 09:21:39 +00:00
Hallvard Furuseth
570ba6fb86
Fix EACCES description
2015-01-27 06:10:57 +01:00
Hallvard Furuseth
b2ab9910dd
ITS#7971 Fix reader allocation and me_numreaders
2015-01-17 06:32:12 +01:00
Hallvard Furuseth
404697b369
mdb_env_set_flags(): Reject CHANGELESS flags.
...
Reverts part of a2ac10107e .
MDB_ROBUST needed to be accepted, but that flag is gone.
2015-01-14 08:12:50 +01:00
Howard Chu
71741a6b08
Fix potential null deref (coverity)
2015-01-13 19:19:09 +00:00
Hallvard Furuseth
d711e357da
Whitespace (align with mdb.RE)
2015-01-12 21:02:29 +01:00
Hallvard Furuseth
631970e485
Make SysV semaphores robust. Cleanup MDB_ROBUST.
2015-01-12 21:02:29 +01:00
Hallvard Furuseth
9441012435
ITS#8021 doc: Don't mix MDB_WRITEMAP + non-WRITEMAP
2015-01-12 12:19:51 +01:00
Howard Chu
8b6c4250b1
More cleanup for fdatasync hack
2015-01-12 10:42:26 +00:00
Howard Chu
ea89e3d269
Tweak conditionals for fdatasync hack
2015-01-11 11:37:37 +00:00
Howard Chu
f83f62a7ae
ITS#8021 env_sync is invalid in RDONLY env
2015-01-09 11:25:52 +00:00
Howard Chu
462dc09745
fdatasync hack, again
...
Check for ext3/ext4 fs, then check kernel version.
2015-01-08 12:54:14 +00:00
Howard Chu
e86072a9c7
Revert "Note MDB_SAFE_FDATASYNC"
...
This reverts commit 293d6bb47f .
Revert "Simpler fdatasync hack"
This reverts commit 9585c01233 .
2015-01-08 12:17:58 +00:00
Howard Chu
293d6bb47f
Note MDB_SAFE_FDATASYNC
2015-01-08 11:43:57 +00:00
Howard Chu
9585c01233
Simpler fdatasync hack
2015-01-08 11:42:08 +00:00
Howard Chu
0ef1e0b16d
Revert "Fix prev commit for env_sync0"
...
This reverts commit 985bbbbdd5 .
Revert "Hack for potential ext3/ext4 corruption issue"
This reverts commit 0018eeb2c3 .
2015-01-08 11:29:30 +00:00
Howard Chu
985bbbbdd5
Fix prev commit for env_sync0
2014-12-21 00:13:50 +00:00
Howard Chu
0018eeb2c3
Hack for potential ext3/ext4 corruption issue
...
Use regular fsync() if we think this commit grew the DB file.
2014-12-18 04:38:53 +00:00
Howard Chu
7ce29b9edb
Fix MDB_APPEND doc
...
We actually compare the new key against the last key, to prevent
corruption.
2014-12-15 20:40:59 +00:00
Hallvard Furuseth
6c71173258
make clean: remove *.lo
2014-12-13 20:35:08 +01:00
Hallvard Furuseth
cccc947b4a
Try to avoid an invalid datafile after failed init
2014-12-08 09:56:36 +01:00
Howard Chu
9cc04f604f
Clarify mdb_dbi_open doc
...
The concurrency restriction is on threads within a single process.
Multiple processes can use mdb_dbi_open without affecting each other.
2014-12-08 03:21:09 +00:00
Hallvard Furuseth
03ddbcf37d
C90-compatible code for SysV semaphores
2014-12-05 21:00:21 +01:00
Leo Yuriev
1a7243b3f4
ITS#7987 fix excessive space for single write txn
2014-12-05 19:30:31 +00:00
Howard Chu
c36c167cc4
ITS#7994 fix prev commit
...
Strip docs promising behaviors that we don't promise to hold.
Strip MDB_txnid_t typedef.
2014-12-05 19:18:01 +00:00
David Barbour
b660491d3f
ITS#7994 Access to current transaction ID.
...
I, David Barbour, hereby place the following modifications to OpenLDAP
Software (and only these modifications) into the public domain. Hence,
these modifications may be freely used and/or redistributed for any
purpose with or without attribution and/or other notice.
2014-12-05 19:17:52 +00:00
Hallvard Furuseth
1413de3a04
Fix SysV semaphores - repair mti_txnid.
...
Similar to 443a7e40c4 .
2014-12-05 18:18:53 +01:00
Hallvard Furuseth
3e6ac6ef6b
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.
2014-12-03 12:37:55 +01:00
Hallvard Furuseth
c306423adf
Fix WIN32 -> _WIN32
2014-12-03 12:27:53 +01:00
Hallvard Furuseth
0697869d92
mdb_strerror: Silence warning @ Windows
2014-12-01 08:59:29 +01:00
Hallvard Furuseth
4376a19c5c
Fix comments
2014-12-01 08:59:29 +01:00
Hallvard Furuseth
4bda1d2461
Clean up SysV semaphore code.
...
Change MDB_LOCK_FORMAT to differ from Posix semaphores/mutexes.
Do not use array/member length 0 for MDB_txninfo.mt2.
2014-12-01 08:59:29 +01:00
Hallvard Furuseth
443a7e40c4
Fix robust mutexes - repair mti_txnid.
...
Broken by e3b6c359a9 , if
commit() crashes in write_meta before setting mti_txnid.
2014-12-01 08:59:29 +01:00
Hallvard Furuseth
42110d83a9
Simplify recent changes a bit.
2014-12-01 08:59:29 +01:00
Hallvard Furuseth
9a72292ac1
ITS#7961,#7987 Re-fix txn init.
...
More fallout from 4d02c741b1 :
Don't modify another thread's write txn. Reinit me_txn0 fully.
2014-11-28 16:32:23 +00:00
leo@yuriev.ru
9a8eb95674
ITS#7971 LMDB: clarification in mdb_txn_renew0().
2014-10-18 07:00:52 +01:00