summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/ldb_tdb
AgeCommit message (Collapse)AuthorFilesLines
2009-10-12Allow (and ignore) distinguishedName on special recordsAndrew Bartlett1-0/+2
They are not stored, so we can ignore them (makes copying records much easier) Andrew Bartlett
2009-10-12s4:ldb Reload the 'ltdb_cache' when @OPTIONS changesAndrew Bartlett1-0/+7
(Otherwise setting the check base on search option is not applied until after a reload). Andrew Bartlett
2009-10-08s4:ldb_tdb - Rework/VariousMatthias Dieter Wallnöfer1-192/+200
- Unify the error handling method with "done" mark in all longer functions - Fix up result codes to match more the real MS AD - Some cosmetic fixups
2009-10-06s4-ldb: fixed error on single value errorAndrew Tridgell1-1/+1
When you try to add a 2nd value to a single valued attribute you get LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS. w2k8-r2 join to s4 relies on this error, doing a replace after it sees the error
2009-10-03s4:ldb_tdb - fix memory leaksMatthias Dieter Wallnöfer1-7/+12
2009-10-02s4:ldb Don't allow modifcation of distinguishedNameAndrew Bartlett1-1/+7
2009-10-02Revert "s4:ldb Fix ldb_list_find() folowing the change from char * to TDB_DATA"Andrew Tridgell1-4/+10
This reverts commit f0c2c9854c7659221fe9480110a7d9b2b48afbf9.
2009-10-02Revert "s4:ldb Remove LTDB_PACKING_FORMAT_NODN"Andrew Tridgell2-0/+16
This reverts commit bcbf0ae1e707c2355824800dc213d364070f070a.
2009-10-02Revert "s4-ldb: merged with master"Andrew Tridgell5-623/+523
This reverts commit 14c9070322d089dd96b389e8087c4f4bf1a6c7cc.
2009-10-02Revert "s4-ldb: overallocate idxptr to reduce memory fragmentation"Andrew Tridgell1-3/+1
This reverts commit e7846f69cacdd0551fcd777a71bf833a2fc9ca2b.
2009-10-02Revert "s4-ldb: fixed a memory leak"Andrew Tridgell1-6/+1
This reverts commit c7358d989034c9d936c04f2a7e4f89db252b798e.
2009-10-02s4-ldb: fixed a memory leakAndrew Tridgell1-1/+6
2009-10-02s4-ldb: overallocate idxptr to reduce memory fragmentationAndrew Tridgell1-1/+3
2009-10-02s4-ldb: merged with masterAndrew Bartlett5-523/+623
2009-10-02s4:ldb Remove LTDB_PACKING_FORMAT_NODNAndrew Bartlett2-16/+0
The restructured code makes this hader to support, and we have not had this kind of LDB for a very long time now. Andrew Bartlett
2009-10-02s4:ldb Fix ldb_list_find() folowing the change from char * to TDB_DATAAndrew Bartlett1-10/+4
(The format of index records in the internal manipulation changed) Andrew Bartlett
2009-09-23fixed spellingAndrew Tridgell1-1/+1
2009-09-21s4:ldb Add 'single-value' support to LDB.Andrew Bartlett1-2/+47
This is currently only triggered via Samba4's schema code.
2009-09-15s4-ldb: cope better with corruption of tdb recordsAndrew Tridgell4-5/+30
When doing an indexed search if we hit a corrupt record we abandoned the indexed search and did a full search. The problem was that we might have sent some records to the caller already, which means the caller ended up with duplicate records. Fix this by returning a search error if indexing returns an error and we have given any records to the caller.
2009-09-08s4/ldb: added --show-binary command line optionAndrew Tridgell1-1/+1
This add --show-binary to ldbsearch. When this flag is set, binary blobs will be shown as-is, instead of base64 encoded. This is useful for some XML encoded attributes, and will also be used as part of some NDR print formatting for attributes like repsTo.
2009-08-28s4:ldb Don't sleep(100) in this error case, but debug the LDIFAndrew Bartlett1-6/+6
2009-08-17s4:ldb Remove obsolete comment about ldb_tdb's sequence numAndrew Bartlett1-2/+0
2009-07-14remove all '\n' from ldb_debugSumit Bose4-8/+8
2009-06-04fixed ldb rename now that we have unique indexesAndrew Tridgell1-30/+11
With unique indexes, any rename of a record that has an attribute that is uniquely indexed needs to be done as a delete followed by an add, otherwse you'll get an error that the attribute value already exists.
2009-06-01use the unique flag on ldb attributes to optimise & clausesAndrew Tridgell1-46/+72
When a attribute is marked unique we know that if we find a match it will be the only possible match. This means that in a list of subtrees connected by an &, it is best to first load the index values for the unique entries, as if they find something then we know we won't have to look any further. This helps with searches like this: (&(objectclass=user)(samaccountname=tridge)) the old code would first have loaded the very large index for the objectclass=user attribute, and then loaded the single entry for samaccountname=tridge. Now we load the samaccountname=tridge entry first, notice that it gives us a single result, and stop, thereby skipping the load of the objectclass=user index record completely.
2009-06-01added support for unique indexing in ldbAndrew Tridgell1-7/+26
When a attribute is marked as LDB_ATTR_FLAG_UNIQUE_INDEX then attempts to add a 2nd record that has the same attribute value for this attribute as another record will fail. This provides a much more efficient mechanism for ensuring that attributes like objectGUID are unique
2009-05-28a useful debugging toolAndrew Tridgell1-0/+7
When looking at performance problems with ldb it can be useful to see which searches causes unindexed full searches. This makes it easy to enable that.
2009-05-28fixed one-level indexingAndrew Tridgell1-6/+2
one-level indexing was not always effective due to some broken logic in the indexing code. This change means that if normal indexing fails, we can still fall back on one-level indexing. This reduces the number of full unindexed searches in s4 quite a lot
2009-04-07don't load @ATTRIBUTES if we have an override handler in placeAndrew Tridgell1-0/+7
2009-03-31added support for a prepare_commit() op in ldb modulesAndrew Tridgell2-2/+32
This op will be used by the partition module to give us good transaction semantics across the 4 partitions that sam.ldb uses.
2009-03-10Fix extended operation return path.Simo Sorce1-8/+12
Extended operations return was not going thorugh the same patch as others leaving the ctx around. Plus we were neutralizing the spy too early so that it didn't set the request_terminated flag as it should have. This should hopefully fix the failures in the build farm.
2009-03-09Fix potential segfaults using freed memory.Simo Sorce4-10/+54
In some code paths ltdb_context was still referenced even after we were returned an error by one of the callbacks. Because the interface assumes that once an error is returned the ldb_request may be freed, and because the ltdb_context was allocated as a child of the request, this might cause access to freed memory. Allocate the ltdb_context on ldb, and keep track of what's going on with the request by adding a spy children on it. This way even if the request is freed before the ltdb_callback is called, we will safely free the ctx and just quietly return.
2009-02-23Fix headers, ldb_includes.h is a private header,Simo Sorce2-7/+2
do not reference it from ldb.h
2009-02-23Make all transactions nested in ldb. The current samba4 code expects thisSimo Sorce1-0/+2
behavior anyway, and given we can only have one transaction active per ldb context this is the only sane model we can support. Fix ldb_tdb transactions, we could return back with an error with neither committing nor canceling the actual tdb transaction in some error paths within the ltdb commit and cancel transaction paths. Added also some debugging to trace what was going on.
2009-01-30Fix the mess with ldb includes.Simo Sorce7-132/+207
Separate again the public from the private headers. Add a new header specific for modules. Also add service function for modules as now ldb_context and ldb_module are opaque structures for them.
2009-01-21s4:ldb: remove dependency to samba4's events wrapperStefan Metzmacher1-2/+2
metze
2008-12-29s4:lib/tevent: rename structsStefan Metzmacher2-7/+7
list="" list="$list event_context:tevent_context" list="$list fd_event:tevent_fd" list="$list timed_event:tevent_timer" for s in $list; do o=`echo $s | cut -d ':' -f1` n=`echo $s | cut -d ':' -f2` r=`git grep "struct $o" |cut -d ':' -f1 |sort -u` files=`echo "$r" | grep -v source3 | grep -v nsswitch | grep -v packaging4` for f in $files; do cat $f | sed -e "s/struct $o/struct $n/g" > $f.tmp mv $f.tmp $f done done metze
2008-12-19s4:cosmetic: Remove trailing tabs and spacesSimo Sorce1-59/+59
2008-12-19Small cosmetic LDB patch regarding return values.Matthias Dieter Wallnöfer1-4/+4
It changes some "return 0" in "return LDB_SUCCESS"
2008-12-18Rename ldb index pointer wrapper functionAndrew Bartlett1-8/+8
This also asserts that it is used only for index records. Andrew Bartlett
2008-12-17s4:ldb: make it possible to return per entry controlsAndrew Bartlett2-2/+2
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2008-12-17an experimental patch for fixing ldb bloatAndrew Tridgell3-9/+352
ldb indexing can cause huge files, and huge memory usage. This experiment allows us to keep indexes in memory during a transaction, then to write the indexes to disk when the transaction completes. The result is that the db is much smaller (we have seen improvements of about 100x in file size) and memory usage during large transactions is also greatly reduced Note that this patch uses the unusual strategy of putting pointers into a ldb (and thus into a tdb). This works because the pointers are only there during a transaction, so the pointers are not exposed to any other users of the database. The pointers allow us to avoid some really bad allocation problems with tdb record allocation during the re-indexing.
2008-12-16repack the ldb after re-indexingAndrew Tridgell1-0/+4
re-indexing in ldb is triggered on any modification to the @ATTRIBUTES or @INDEXLIST records. This happens to produce a worst-case fragmentation of the database, as all @INDEX records are deleted then re-created. By repacking after re-indexing we ensure that the database ends up without extreme fragmentation.
2008-11-17Remove timeout event once we are calling the callback.Andrew Bartlett2-4/+6
(Even if the callback takes some time, this isn't a ldb_tdb timeout any more) Andrew Bartlett
2008-10-20Make sure prototypes are always included, make some functions static andJelmer Vernooij2-3/+3
remove some unused functions.
2008-10-16Transform the sequence_number operation into a normal extended operation as ↵Simo Sorce3-49/+121
it should always have been. Make it also async so that it is not a special case.
2008-09-29LDB ASYNC: ldb_tdb backendSimo Sorce4-315/+242
2008-09-25Revert LDB return code patches from Matthias.Jelmer Vernooij5-49/+49
2008-09-24Cosmetic corrections for the LDB backend modulesMatthias Dieter Wallnöfer5-49/+49
This commit applies some cosmetic corrections for the LDB backend modules.
2008-09-18Generate with 1.3.36.Jelmer Vernooij1-0/+4