Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
openldap
OpenLDAP
Commits
2e8a98e3
Commit
2e8a98e3
authored
Jan 14, 2002
by
Howard Chu
Browse files
Fix subtype indexing. Really really made it the default.
parent
c4164193
Changes
4
Hide whitespace changes
Inline
Side-by-side
servers/slapd/back-bdb/index.c
View file @
2e8a98e3
...
...
@@ -43,7 +43,7 @@ static slap_mask_t index_mask(
/* has language tag */
bdb_attr_mask
(
be
->
be_private
,
desc
->
ad_type
->
sat_ad
,
&
mask
);
if
(
!
(
mask
&
SLAP_INDEX_NOLANG
)
)
{
if
(
mask
&&
(
mask
^
SLAP_INDEX_NOLANG
)
)
{
*
atname
=
desc
->
ad_type
->
sat_cname
;
*
dbname
=
desc
->
ad_type
->
sat_cname
.
bv_val
;
return
mask
;
...
...
@@ -57,19 +57,11 @@ static slap_mask_t index_mask(
bdb_attr_mask
(
be
->
be_private
,
at
->
sat_ad
,
&
mask
);
if
(
mask
&
SLAP_INDEX_
AUTO_
SUBTYPES
)
{
if
(
mask
&
&
(
mask
^
SLAP_INDEX_
NO
SUBTYPES
)
)
{
*
atname
=
desc
->
ad_type
->
sat_cname
;
*
dbname
=
at
->
sat_cname
.
bv_val
;
return
mask
;
}
if
(
!
(
mask
&
SLAP_INDEX_NOSUBTYPES
)
)
{
*
atname
=
at
->
sat_cname
;
*
dbname
=
at
->
sat_cname
.
bv_val
;
return
mask
;
}
if
(
mask
)
break
;
}
return
0
;
...
...
@@ -299,7 +291,7 @@ static int index_at_values(
if
(
mask
)
{
*
dbnamep
=
type
->
sat_cname
.
bv_val
;
}
else
if
(
!
(
tmpmask
&
SLAP_INDEX_
AUTO_
SUBTYPES
)
)
{
}
else
if
(
tmpmask
^
SLAP_INDEX_
NO
SUBTYPES
)
{
mask
=
tmpmask
;
}
...
...
@@ -310,6 +302,7 @@ static int index_at_values(
mask
);
if
(
rc
)
return
rc
;
*
maskp
=
mask
;
}
if
(
lang
->
bv_len
)
{
...
...
servers/slapd/back-ldbm/index.c
View file @
2e8a98e3
...
...
@@ -39,7 +39,7 @@ static slap_mask_t index_mask(
/* has language tag */
attr_mask
(
be
->
be_private
,
desc
->
ad_type
->
sat_ad
,
&
mask
);
if
(
!
(
mask
&
SLAP_INDEX_NOLANG
)
)
{
if
(
mask
&&
(
mask
^
SLAP_INDEX_NOLANG
)
)
{
*
atname
=
desc
->
ad_type
->
sat_cname
;
*
dbname
=
desc
->
ad_type
->
sat_cname
.
bv_val
;
return
mask
;
...
...
@@ -47,25 +47,18 @@ static slap_mask_t index_mask(
}
/* see if supertype defined mask for its subtypes */
for
(
at
=
desc
->
ad_type
;
at
!=
NULL
;
at
=
at
->
sat_sup
)
{
for
(
at
=
desc
->
ad_type
->
sat_sup
;
at
!=
NULL
;
at
=
at
->
sat_sup
)
{
/* If no AD, we've never indexed this type */
if
(
!
at
->
sat_ad
)
continue
;
attr_mask
(
be
->
be_private
,
at
->
sat_ad
,
&
mask
);
if
(
mask
&
SLAP_INDEX_
AUTO_
SUBTYPES
)
{
if
(
mask
&
&
(
mask
^
SLAP_INDEX_
NO
SUBTYPES
)
)
{
*
atname
=
desc
->
ad_type
->
sat_cname
;
*
dbname
=
at
->
sat_cname
.
bv_val
;
return
mask
;
}
if
(
!
(
mask
&
SLAP_INDEX_NOSUBTYPES
)
)
{
*
atname
=
at
->
sat_cname
;
*
dbname
=
at
->
sat_cname
.
bv_val
;
return
mask
;
}
if
(
mask
)
break
;
}
return
0
;
...
...
@@ -264,7 +257,7 @@ static int index_at_values(
if
(
mask
)
{
*
dbnamep
=
type
->
sat_cname
.
bv_val
;
}
else
if
(
tmpmask
&
SLAP_INDEX_
AUTO_
SUBTYPES
)
{
}
else
if
(
tmpmask
^
SLAP_INDEX_
NO
SUBTYPES
)
{
mask
=
tmpmask
;
}
...
...
@@ -273,6 +266,7 @@ static int index_at_values(
&
type
->
sat_cname
,
vals
,
id
,
op
,
mask
);
*
maskp
=
mask
;
}
if
(
lang
->
bv_len
)
{
...
...
servers/slapd/index.c
View file @
2e8a98e3
...
...
@@ -56,8 +56,6 @@ int slap_str2index( const char *str, slap_mask_t *idx )
*
idx
=
SLAP_INDEX_NOLANG
;
}
else
if
(
strcasecmp
(
str
,
"nosubtypes"
)
==
0
)
{
*
idx
=
SLAP_INDEX_NOSUBTYPES
;
}
else
if
(
strcasecmp
(
str
,
"autosubtypes"
)
==
0
)
{
*
idx
=
SLAP_INDEX_AUTO_SUBTYPES
;
}
else
{
return
LDAP_OTHER
;
}
...
...
servers/slapd/slap.h
View file @
2e8a98e3
...
...
@@ -196,7 +196,6 @@ typedef struct slap_ssf_set {
#define SLAP_INDEX_FLAGS 0xF000UL
#define SLAP_INDEX_NOSUBTYPES 0x1000UL
/* don't use index w/ subtypes */
#define SLAP_INDEX_NOLANG 0x2000UL
/* don't use index w/ lang */
#define SLAP_INDEX_AUTO_SUBTYPES 0x4000UL
/* use mask with lang subtypes */
/*
* there is a single index for each attribute. these prefixes ensure
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment