Commit graph

479 commits

Author SHA1 Message Date
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
Hallvard Furuseth
e95d57f39c Use ftok() for semget(), and only lower mode bits 2015-06-02 20:51:03 +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
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
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
Quanah Gibson-Mount
6fe12f3273 Happy New Year 2015-02-12 11:17:59 -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
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
631970e485 Make SysV semaphores robust. Cleanup MDB_ROBUST. 2015-01-12 21:02:29 +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
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
Hallvard Furuseth
cccc947b4a Try to avoid an invalid datafile after failed init 2014-12-08 09:56:36 +01: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