[Date Prev][Date Next] [Chronological] [Thread] [Top]

Heads up: new schema support

I have started working in the third step in schema support.  The first
step concerned the library.  The second step did minimal support in

Now this is where things get ugly.  There will be lots of changes to
slapd internals and the backends.  I cannot do any more incremental
commits and will wait until I have all pieces before committing, something
that should happen sometime next week, if my copious free time allows.
Or maybe I will create a branch and commit to it until everything works
again and then merge.  I think the latter is preferrable.

So that you have an idea of what is coming, I'll give a summary of
likely changes, based on what I have already done and what I think I will

First, all old syntax concepts are gone.  SYNTAX_CES and friends as well
as all structures and interfaces using syntax masks (usually referred
simply as 'syntax') are gone.  In most cases, they are replaced by
a MatchingRule pointer.  In a few cases, they are replaced by an
AttributeType pointer.  Also, some arrays that represent attribute
types as char ** will be changed to be AttributeType * instead.

Types changed or likely to change:

	typedef struct attr { ... } Attribute;

Interfaces changed or likely to change:


Changes in these areas will generate secondary changes in many other
places.  I'd like to change more things, but I will try to strike a
balance and leave some changes for a possible future step.

When all this is finished, we will have a basis for extending syntaxes
and matching rules from loadable modules, we will be able to implement
extensibleMatch both with builtin or dynamically loaded matchingRule's
and be able to implement all defined matching rules properly instead
of mapping them to a very limited set of concepts.  We will also have
a basis for implementing attribute subtyping as well as implementing
concepts such as SINGLE-VALUE, NO-USER-MODIFICATION and attribute
type usage.  Well, COLLECTIVE would be great too.