ldb: make ldb a top level library for Samba 4.0
[samba.git] / lib / ldb / docs / design.txt
1 The list of indexed fields
2 --------------------------
3
4 dn=@INDEXLIST
5         list of field names that are indexed
6
7         contains fields of type @IDXATTR which contain attriute names
8         of indexed fields
9
10
11 Data records
12 ------------
13
14 for each user record in the db there is:
15     main record
16          key: DN=dn
17          data: packed attribute/value list
18
19     a index record for each indexed field in the record
20
21
22 Index Records
23 -------------
24
25 The index records contain the list of dn's that contain records
26 matching the index key
27
28 All index records are of the form:
29       dn=@INDEX:field:value
30
31 and contain fields of type @IDX which are the dns of the records
32 that have that value for some attribute
33
34
35 Search Expressions
36 ------------------
37
38 Very similar to LDAP search expressions, but does not allow ~=, <= or >=
39
40         attrib0 := (field=value)
41         attrib := attrib0 | (attrib&&attrib) | (attrib||attrib) | !attrib