[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
slapd.

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
need.

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:

	access_allowed
	acl_get_applicable
	attr_normalize
	attr_merge_fast
	attr_merge
	attr_find
	attr_delete
	attr_syntax
	at_canonical_name
	value_normalize
	value_cmp
	value_find

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.

Julio