summaryrefslogtreecommitdiffstats
path: root/lib/ldb/docs/design.txt
blob: 0bb278b5b428a465db11c1e5107ca67cecf23e3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
The list of indexed fields
--------------------------

dn=@INDEXLIST
	list of field names that are indexed

	contains fields of type @IDXATTR which contain attriute names
	of indexed fields


Data records
------------

for each user record in the db there is:
    main record
	 key: DN=dn
	 data: packed attribute/value list

    a index record for each indexed field in the record


Index Records
-------------

The index records contain the list of dn's that contain records
matching the index key

All index records are of the form:
      dn=@INDEX:field:value

and contain fields of type @IDX which are the dns of the records
that have that value for some attribute


Search Expressions
------------------

Very similar to LDAP search expressions, but does not allow ~=, <= or >=

	attrib0 := (field=value)
	attrib := attrib0 | (attrib&&attrib) | (attrib||attrib) | !attrib