summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/ldb_tdb
AgeCommit message (Collapse)AuthorFilesLines
2009-11-20ldb:ldb_tdb backend/indexes - Outside APIMatthias Dieter Wallnöfer3-28/+30
- The outside API contains "DN" string arguments: Bad. Since in this way we fully rely on the outside calls regarding the right DN format. Solution: Use always a "struct ldb_dn" entry. Since this one is interchangeable and we can handle it in our preferred way.
2009-11-20ldb:ldb_tdb backend/indexes - DN comparisonMatthias Dieter Wallnöfer1-4/+5
- DN comparison: The function doesn't seem that efficient. I "upgraded" it a bit to be more powerful (added a second length check and do both before the string comparison)
2009-11-20s4-ldb: fixed an issue in rename/modify indexingAndrew Tridgell1-16/+16
When we rename or modify a record, we need to update the indexes at the same time. It is important that we use the DN of the actual message that is stored in the database to do this, not the DN that was passed in by the user. If the two differ in case then the index records needs to use the 'real' record DN, as index handling is currently case sensitive.
2009-10-27ldb:tdb backend - be also here more careful with the result valueMatthias Dieter Wallnöfer1-2/+2
"msg_delete_attribute" doesn't return an LDB result constant.
2009-10-27s4:ldb Add detail to failures in the indexing codeAndrew Bartlett1-2/+8
2009-10-25Merge branch 'master' of ssh://git.samba.org/data/git/sambaAndrew Tridgell1-6/+6
2009-10-25s4-ldb: allow for unescaped '=' in a index DNAndrew Tridgell1-4/+0
The ldb_dn_explode code normally enforces all special characters, including a '=', must be escaped. Unfortunately this conflicts with the ltdb index DNs, which for binary attributes may be base64 encoded. This allows a unescaped '=' as a special case for index DNs.
2009-10-25ldb:backend "connect" functions - convert result values to LDB constantsMatthias Dieter Wallnöfer1-6/+6
I think this is better since "ldb_backend_connect" and "ldb_connect" which propagate those values should return only LDB constants. Therefore a conversion (especially for "-1") would be needed.
2009-10-25s4-ldb: ensure DNs pass validity tests in indexingAndrew Tridgell1-0/+4
2009-10-25s4-ldb: fixed string length handling on index recordsAndrew Tridgell1-2/+2
2009-10-25s4-ldb: don't allow modifies outside a transaction.Andrew Tridgell1-0/+8
2009-10-25s4-ldb: fixed re-index during a complex transactionAndrew Tridgell1-10/+31
We may have modified index objects in the in-memory index tdb
2009-10-22s4-ldb: added a TODO about checking the indexlistAndrew Tridgell1-0/+2
2009-10-22s4-ldb: fixed some memory leaks in new indexing codeAndrew Tridgell1-1/+3
2009-10-22s4-ldb: don't try to index non-indexed attributesAndrew Tridgell1-0/+4
2009-10-22s4-ldb: ensure new dn_list elements are not owned by callerAndrew Tridgell1-1/+1
2009-10-22s4-ldb: over-allocate index records to save on realloc costsAndrew Tridgell1-1/+5
2009-10-22s4-ldb: fixed tdb error handling in ldb_index.cAndrew Tridgell1-3/+8
2009-10-22s4-ldb: delete empty index recordsAndrew Tridgell1-0/+8
2009-10-22s4-ldb: do more validation of idxptr listsAndrew Tridgell1-12/+31
2009-10-22s4-ldb: expose ltdb_err_map and ltdb_delete_noindexAndrew Tridgell2-2/+5
These will be used by ldb_index.c
2009-10-22s4-ldb: when taking a list intersection, the result can be as long as the ↵Andrew Tridgell1-1/+1
first list Intuitively you would think it couldn't be longer than the minimum of the two lists, but we are deliberately allowing for duplicates at this level of the indexing code, which means the result can be longer
2009-10-22s4-ldb: ldb indexing rewrite - part1Andrew Tridgell4-909/+739
This gets rid of the @IDXPTR approach to in-transaction indexing, instead using an in-memory tdb to hold index values during a transaction. This also cleans up a lot of the internal indexing logic, hopefully making it easier to understand. One of the big changes is in memory management, with a lot more use made of talloc tricks to avoid copying dn lists, and shortcuts used to avoid high intersection and union calculation costs. The overall result is that a re-provision on my laptop goes from 48s to a bit over 10s.
2009-10-21s4:ldb Put ltdb_private under the 'module'Andrew Bartlett1-0/+1
This helps track the memory better, as we can then place it under the partition hirarchy. Andrew Bartlett
2009-10-12s4:ldb_tdb - Revert some introduced "trivial gotos"Matthias Dieter Wallnöfer1-21/+11
I hope that this makes abartlet & simo happy again (consider mailing list).
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.