Commit Graph

301 Commits

Author SHA1 Message Date
Howard Chu
8f77043372 Fix cursor_set for dups
Also make sure dups are counted in md_entries
2011-09-01 16:31:10 -07:00
Howard Chu
edf9d8e51b Sorted dups fix
Write the first datum normally. Convert to a sub-db if
additional items for the same key are written.
2011-09-01 16:31:10 -07:00
Howard Chu
e15d4d16b6 Don't alloc in cursor_push/pop 2011-09-01 16:31:10 -07:00
Howard Chu
1ceae5c2c0 Fix multi-page commits 2011-09-01 16:31:10 -07:00
Howard Chu
6d924c1dda Fix overflow page read 2011-09-01 16:31:10 -07:00
Howard Chu
3dd815162c Sub-DB init/dirty fixes 2011-09-01 16:31:10 -07:00
Howard Chu
11308a190d Fix dupsort fetch 2011-09-01 16:31:10 -07:00
Howard Chu
697e00a8e2 More txn/cursor cleanup 2011-09-01 16:31:10 -07:00
Howard Chu
e29660566c Update DB tables on commit even if no dirty pages 2011-09-01 16:31:10 -07:00
Howard Chu
bab6be8077 Add mdb_strerror(), mdb_env_set_flags() 2011-09-01 16:31:10 -07:00
Howard Chu
9902a7764e allow silent commit of read-only TXNs 2011-09-01 16:31:10 -07:00
Howard Chu
9860d5a43f Protect err codes 2011-09-01 16:31:10 -07:00
Howard Chu
5e3a3db1f2 Error cleanup
Replace MDB_FAIL with more specific codes
Return MDB_PANIC after failure to write meta page
2011-09-01 16:31:09 -07:00
Howard Chu
5ef6c43acf Get rid of AC_MEMCPY 2011-09-01 16:31:09 -07:00
Howard Chu
1aa5105b67 Use IDL2 for dirty page list 2011-09-01 16:31:09 -07:00
Howard Chu
88a5f35c43 Use O_DSYNC on metafd.
Use sync writes in mtest.
2011-09-01 16:31:09 -07:00
Howard Chu
3e1c72a08e Minor cleanup 2011-09-01 16:31:09 -07:00
Howard Chu
19f5eebff8 Better defs for locker structures 2011-09-01 16:31:09 -07:00
Howard Chu
af0b49aa60 Silence stupid warning 2011-09-01 16:31:09 -07:00
Howard Chu
f9f0ec92a9 Add mdb_version() 2011-09-01 16:31:09 -07:00
Howard Chu
76d7ca8ce0 Rationalize mdbenv namespace 2011-09-01 16:31:09 -07:00
Howard Chu
c378b2525c Move MDB_VERSION to mdb.h, use major/minor/patch 2011-09-01 16:17:08 -07:00
Howard Chu
af70c0d9ce Tweak MDB_val to match struct berval 2011-09-01 16:17:08 -07:00
Howard Chu
985f765dc5 Rename idl to midl 2011-09-01 16:17:08 -07:00
Howard Chu
f5297dfc25 Add another FIXME comment 2011-09-01 16:17:07 -07:00
Howard Chu
35fca0f6af Add mtest2 and 3 2011-09-01 16:17:07 -07:00
Howard Chu
b070f7bff9 Portability tweak 2011-09-01 16:17:07 -07:00
Howard Chu
170703b0e4 Make a shared library too 2011-09-01 16:17:07 -07:00
Howard Chu
785d8e184c Start using as a library 2011-09-01 16:17:07 -07:00
Howard Chu
920115f747 Sorted dup fixes 2011-09-01 16:17:07 -07:00
Howard Chu
ce9456d95c Add MDB_INTEGERKEY db flag 2011-09-01 16:17:07 -07:00
Howard Chu
d499c244cd Allow setting DB flags on main DB 2011-09-01 16:17:07 -07:00
Howard Chu
2f7ddb4103 Cleanup, add mdb_cursor_count() 2011-09-01 16:17:07 -07:00
Howard Chu
2e776bd36e More DB checks 2011-09-01 16:17:07 -07:00
Howard Chu
b834dc05b3 Consolidate stat functions 2011-09-01 16:17:07 -07:00
Howard Chu
11204d176a Header cleanup 2011-09-01 16:17:07 -07:00
Howard Chu
40df306d52 More subDB fixes 2011-09-01 16:17:07 -07:00
Howard Chu
39817f6e85 Parameter cleanup 2011-09-01 16:17:07 -07:00
Howard Chu
819d98169e Valgrind complaints 2011-09-01 16:17:07 -07:00
Howard Chu
01c2f7816f More subDB stuff 2011-09-01 16:17:07 -07:00
Howard Chu
2fe9fbd1a3 Make sure subDB info is saved after writes 2011-09-01 16:17:07 -07:00
Howard Chu
314ac28938 Sorted dups basically completed, needs testing 2011-09-01 16:17:07 -07:00
Howard Chu
f586e57742 Added cursor_get for sorted dups 2011-09-01 16:17:07 -07:00
Howard Chu
f48f085ed8 Add mdb_get for sorted dups 2011-09-01 16:17:07 -07:00
Howard Chu
e3703ab58c Add mdb_del for sorted dups 2011-09-01 16:17:07 -07:00
Howard Chu
bb6a034e28 Add mdb_put for sorted dups 2011-09-01 16:17:07 -07:00
Howard Chu
51e210c604 Fix reader txn locking 2011-09-01 16:17:07 -07:00
Howard Chu
e3b668e84a Don't malloc the free_pgs list every time 2011-09-01 16:17:07 -07:00
Howard Chu
9f0b00b467 Setup context for sorted dups 2011-09-01 16:17:07 -07:00
Howard Chu
e5cf84495b Add explicit md_dirty flag to dbxs 2011-09-01 16:17:07 -07:00
Howard Chu
edf7869466 Add cursor_prev 2011-09-01 16:17:07 -07:00
Howard Chu
cc56ba04fb Use BDB cursor terminology 2011-09-01 16:17:07 -07:00
Howard Chu
60550e14ee Add some legalese
Note derived from Martin Hedenfalk's btree.c; the code
is significantly reworked but owes a lot to the original.
2011-09-01 16:17:07 -07:00
Howard Chu
36b0883564 Additional debug, fixes
Fixed order of mdb_del0 operations
Drop in-memory free list from env on txn_abort
2011-09-01 16:17:07 -07:00
Howard Chu
4ba37eed5e Save free-list in DB 2011-09-01 16:17:07 -07:00
Howard Chu
852ac0e3bc More sub-db stuff 2011-09-01 16:17:07 -07:00
Howard Chu
a687f2dc3c Use STAILQ instead of SIMPLEQ
For compat with ancient BSD. Will probably just copy <ldap_queue.h> instead.
2011-09-01 16:17:07 -07:00
Howard Chu
1f3fdc811e More subdb stuff, add cursor_last() 2011-09-01 16:17:07 -07:00
Howard Chu
9b4c689601 Tweak mt_dbxs array 2011-09-01 16:17:07 -07:00
Howard Chu
8211dd3960 Fix free page re-use 2011-09-01 16:17:07 -07:00
Howard Chu
415d98755d Fixup metapage writes 2011-09-01 16:17:06 -07:00
Howard Chu
4fd0f278d2 Tweaks to txn handling 2011-09-01 16:17:06 -07:00
Howard Chu
f89d0cc4b7 More subDBs, compiles now 2011-09-01 16:17:06 -07:00
Howard Chu
cb45191793 Start DB restructuring 2011-09-01 16:17:06 -07:00
Howard Chu
194334b2f7 Replace ulong with ULONG macro 2011-09-01 16:17:06 -07:00
Howard Chu
2766e88eeb More prep for subdatabases 2011-09-01 16:17:06 -07:00
Howard Chu
86e78566e3 Tweak comment about overflow allocations 2011-09-01 16:17:06 -07:00
Howard Chu
bc0ca49d16 Use an environment directory
Go back to using an mmap'd lock file
2011-09-01 16:17:06 -07:00
Howard Chu
5a72c6a294 No longer need -lssl 2011-09-01 15:53:33 -07:00
Howard Chu
5e6f32243c Fix db_stat stuff 2011-09-01 15:53:33 -07:00
Howard Chu
3f025d1d4c More fixes for seeking 2011-09-01 15:53:33 -07:00
Howard Chu
27ab75ef36 Re-use old pages 2011-09-01 15:53:33 -07:00
Howard Chu
661d4f80e3 Drop header page
it's useless, just use meta pages instead
2011-07-01 02:31:36 -07:00
Hallvard B Furuseth
c98c14fef5 Private: make.sh 2011-06-29 22:29:24 +02:00
Hallvard B Furuseth
63370215dd #define _XOPEN_SOURCE for random() 2011-06-29 22:29:24 +02:00
Hallvard B Furuseth
f88d626ff1 Drop unused vars 2011-06-29 22:29:24 +02:00
Hallvard B Furuseth
95c88a57b1 Warning cleanup: Make parent index unsigned 2011-06-29 22:29:24 +02:00
Hallvard B Furuseth
7c1e5e9540 Warning cleanup: printf(%p, struct*) 2011-06-29 22:29:24 +02:00
Hallvard B Furuseth
5fdbc54d76 Warning cleanup: if(rc = mdb_<func>()) & co 2011-06-29 22:29:24 +02:00
Hallvard B Furuseth
160585b1bc Warning cleanup: Drop unneeded 'unsigned >= 0' 2011-06-29 22:29:24 +02:00
Hallvard B Furuseth
bd2ceeb74e Fix P_INVALID signedness 2011-06-29 22:29:24 +02:00
Hallvard B Furuseth
f42f7f3442 Fix formats, reduce PAGEHDRSZ size_t->unsigned.
NUMKEYS was size_t due to PAGEHDRSZ; printing unsigned int is simpler.

Instead increase PAGEFILL to long, since it involves a multiply.
Possibly uint32_t or something would be sufficient.
2011-06-29 22:29:24 +02:00
Hallvard B Furuseth
aed36f5780 Compact memnrcmp, just for fun 2011-06-29 22:26:32 +02:00
Hallvard B Furuseth
ab0d6fa05e Fix memncmp(): Do not memcmp twice 2011-06-29 22:26:32 +02:00
Hallvard B Furuseth
86b40907d4 DPRINTF(): Fix format, handle non-gcc, simplify.
Add C99-required 1st parameter.  Disable for for non-gcc.  Simplify.
GNU extension #define DPRINTF(<no 1st arg>...) -> GNU ext ,##__VA_ARGS__.
Fix __LINE__ format %ld -> %d.
2011-06-29 22:26:32 +02:00
Hallvard B Furuseth
84659a5bb6 Makefile 2011-06-29 22:26:32 +02:00
Hallvard B Furuseth
f73a992ac9 .gitignore 2011-06-29 22:26:32 +02:00
Howard Chu
2d4f522a73 More cursor tests, fail... 2011-06-29 01:55:53 -07:00
Howard Chu
bddc86c0ee Save a byte in nodesz 2011-06-29 01:55:07 -07:00
Howard Chu
3a62d59c45 meta init 2011-06-28 22:34:53 -07:00
Howard Chu
fe703b0ee0 Log txnID in msgs 2011-06-28 22:05:54 -07:00
Howard Chu
421ee6bb1d Use toggling meta page instead of always appending 2011-06-28 18:40:52 -07:00
Howard Chu
a37195f686 Use shmat for lock region instead of mmap 2011-06-28 14:22:22 -07:00
Howard Chu
f367441b69 Add locking support 2011-06-28 13:46:48 -07:00
Howard Chu
a4c3626267 Fix P_INVALID def 2011-06-28 02:57:02 -07:00
Howard Chu
7d678832a7 Cursor testing 2011-06-28 02:43:49 -07:00
Howard Chu
cd57e9741f Fix splits, cursor navigation, newpage flags 2011-06-28 02:40:46 -07:00
Howard Chu
11e80dae63 Return statistics for a DB
Eventually this will have to grow up to be like BDB db_stat...
2011-06-28 00:16:05 -07:00
Howard Chu
a2de260fb3 Use NOSYNC flag 2011-06-28 00:15:40 -07:00
Howard Chu
0c2610ebdd Use header when some fields are unspecified 2011-06-28 00:15:15 -07:00
Howard Chu
d620d4368a Checkpoint 2011-06-27 22:39:24 -07:00