mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-27 03:20:22 +08:00
05348c5fc5
- now all write operations appear to work correctly with PostgeSQL 7.0 - all write operations have been made transactional (atomic writes to entries are committed separately only in case of complete^1 success while all other operations are rolled-back by default) - more cleanup and handling of exceptional conditions TODO: - deen to check with different databases and more up to date versions of both unixODBC and PostgreSQL. ^1: attribute add/modify/delete operations silently succeed if the appropriate add/delete proc does not exist for each attribute; this may be correct to hide undesired/unimplemented correspondence between LDAP and SQL databases; however, a more appropriate LDAP behavior would be a failure with LDAP_UNAVAILABLE if a single write operation cannot be executed for such reason
58 lines
1.3 KiB
SQL
58 lines
1.3 KiB
SQL
drop table ldap_oc_mappings;
|
|
drop sequence ldap_oc_mappings_id_seq;
|
|
create table ldap_oc_mappings
|
|
(
|
|
id serial not null primary key,
|
|
name varchar(64) not null,
|
|
keytbl varchar(64) not null,
|
|
keycol varchar(64) not null,
|
|
create_proc varchar(255),
|
|
delete_proc varchar(255),
|
|
expect_return int not null
|
|
);
|
|
|
|
drop table ldap_attr_mappings;
|
|
drop sequence ldap_attr_mappings_id_seq;
|
|
create table ldap_attr_mappings
|
|
(
|
|
id serial not null primary key,
|
|
oc_map_id integer not null references ldap_oc_mappings(id),
|
|
name varchar(255) not null,
|
|
sel_expr varchar(255) not null,
|
|
sel_expr_u varchar(255),
|
|
from_tbls varchar(255) not null,
|
|
join_where varchar(255),
|
|
add_proc varchar(255),
|
|
delete_proc varchar(255),
|
|
param_order int not null,
|
|
expect_return int not null
|
|
);
|
|
|
|
drop table ldap_entries;
|
|
drop sequence ldap_entries_id_seq;
|
|
create table ldap_entries
|
|
(
|
|
id serial not null primary key,
|
|
dn varchar(255) not null,
|
|
oc_map_id integer not null references ldap_oc_mappings(id),
|
|
parent int NOT NULL,
|
|
keyval int NOT NULL,
|
|
UNIQUE ( oc_map_id, keyval ),
|
|
UNIQUE ( dn )
|
|
);
|
|
|
|
drop table ldap_referrals;
|
|
create table ldap_referrals
|
|
(
|
|
entry_id integer not null references ldap_entries(id),
|
|
url text not null
|
|
);
|
|
|
|
drop table ldap_entry_objclasses;
|
|
create table ldap_entry_objclasses
|
|
(
|
|
entry_id integer not null references ldap_entries(id),
|
|
oc_name varchar(64)
|
|
);
|
|
|