1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00
samba-mirror/lib/ldb/ldb_sqlite3
Douglas Bagnall 7d6f36aae3 ldb: relatively efficient functions for finding duplicate values
ldb backends need to make sure they are not adding duplicate values to
multi-valued attributes in ADD and MODIFY operations. Until now they
have done this inefficiently using nested loops. Here we add common
functions that deal with large numbers of values in O(n log n) time,
but continue to use the simple methods for small numbers of values.

These functions take a struct ldb_context pointer and an options flag
arguments, although the ldb is not used, and only one bit of the
options has meaning. This is to allow further patches to switch on
schema-aware comparisons.

This entails an ABI jump to add the two new functions.

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2017-06-15 17:33:10 +02:00
..
base160.c
ldb_sqlite3.c ldb: relatively efficient functions for finding duplicate values 2017-06-15 17:33:10 +02:00
README
schema
trees.ps

trees.ps contains an explanation of the Genealogical Representation of Trees
in Databases which is being used in ldb_sqlite3.  Note that we use fgID
representation with 4 bytes per level, so we can represent 6.5E+08 subclasses
of any object class.  This should be adequate for our purposes. :-)

The following document is the primary basis for the schema currently being
used here:  http://www.research.ibm.com/journal/sj/392/shi.html