]> git.sur5r.net Git - openldap/commitdiff
blind update to new tests
authorPierangelo Masarati <ando@openldap.org>
Sat, 11 Sep 2004 11:05:01 +0000 (11:05 +0000)
committerPierangelo Masarati <ando@openldap.org>
Sat, 11 Sep 2004 11:05:01 +0000 (11:05 +0000)
servers/slapd/back-sql/rdbms_depend/mssql/backsql_create.sql
servers/slapd/back-sql/rdbms_depend/mssql/testdb_create.sql
servers/slapd/back-sql/rdbms_depend/mssql/testdb_data.sql
servers/slapd/back-sql/rdbms_depend/mssql/testdb_metadata.sql
servers/slapd/back-sql/rdbms_depend/oracle/testdb_create.sql
servers/slapd/back-sql/rdbms_depend/oracle/testdb_data.sql
servers/slapd/back-sql/rdbms_depend/oracle/testdb_metadata.sql

index ebbffbd0b9468f4f7b9032b7280d9029a2ef2d6b..1f1f6d2ee570eab5d6e10c6030d35198834fa9ec 100644 (file)
@@ -30,10 +30,10 @@ create table ldap_attr_mappings (
        oc_map_id int 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) NULL ,
        add_proc varchar (255) NULL ,
-       modify_proc varchar (255) NULL ,
        delete_proc varchar (255) NULL ,
        param_order int not null,
        expect_return int not null
@@ -97,4 +97,4 @@ create table ldap_entry_objclasses
  )
 GO
 
-create index entry_idx on ldap_entry_objclasses(entry_id);
\ No newline at end of file
+create index entry_idx on ldap_entry_objclasses(entry_id);
index 42bfe4d6242d65703aa4618d8c484a5969e03ed1..2034afd1d0ea2cd88b0fe3b9038e6a229ea83397 100644 (file)
@@ -22,7 +22,9 @@ GO
 
 CREATE TABLE persons (
        id int IDENTITY (1, 1) NOT NULL ,
-       name varchar (255) NULL 
+       name varchar (255) NULL ,
+       surname varchar (255) NULL ,
+       password varchar (64) NULL
 )
 GO
 
index 1daa348ed8f6f5423083cb86b06443e381e0763f..21a51efe8b35607a3bef106c1d85aa74ba2f1d73 100644 (file)
@@ -1,11 +1,11 @@
 set IDENTITY_INSERT institutes ON
-insert into institutes (id,name) values (1,'sql')
+insert into institutes (id,name) values (1,'Example')
 set IDENTITY_INSERT institutes OFF
 
 set IDENTITY_INSERT persons ON
-insert into persons (id,name) values (1,'Mitya Kovalev')
-insert into persons (id,name) values (2,'Torvlobnor Puzdoy')
-insert into persons (id,name) values (3,'Akakiy Zinberstein')
+insert into persons (id,name,surname,password) values (1,'Mitya','Kovalev','mit')
+insert into persons (id,name,surname) values (2,'Torvlobnor','Puzdoy')
+insert into persons (id,name,surname) values (3,'Akakiy','Zinberstein')
 set IDENTITY_INSERT persons OFF
 
 set IDENTITY_INSERT phones ON
index f360815355ce48748e9a3bb878aa606399d842a8..91d808d2dcb3d2ec6dabe190ed361bd7e4ef4caf 100644 (file)
@@ -3,7 +3,7 @@
 
 SET IDENTITY_INSERT ldap_oc_mappings ON
 insert into ldap_oc_mappings (id,name,keytbl,keycol,create_proc,delete_proc,expect_return)
-values (1,'inetorgperson','persons','id','{call create_person(?)}','{call delete_person(?)}',0)
+values (1,'inetOrgPerson','persons','id','{call create_person(?)}','{call delete_person(?)}',0)
 
 insert into ldap_oc_mappings (id,name,keytbl,keycol,create_proc,delete_proc,expect_return)
 values (2,'document','documents','id','{call create_document(?)}','{call delete_document(?)}',0)
@@ -14,45 +14,57 @@ SET IDENTITY_INSERT ldap_oc_mappings OFF
 
 
 SET IDENTITY_INSERT ldap_attr_mappings ON
-insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,modify_proc,delete_proc,param_order,expect_return)
-values (1,1,'cn','persons.name','persons',NULL,'{call set_person_name(?,?)}',
-        NULL,NULL,0,0)
+insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
+values (1,1,'cn','persons.name+'' ''+persons.surname','persons',NULL,
+       NULL,NULL,0,0)
 
-insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,modify_proc,delete_proc,param_order,expect_return)
+insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
 values (2,1,'telephoneNumber','phones.phone','persons,phones',
         'phones.pers_id=persons.id','{call add_phone(?,?)}',
-        NULL,'{call delete_phone(?,?)}',0,0)
-
-insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,modify_proc,delete_proc,param_order,expect_return)
-values (3,1,'sn','persons.name','persons',NULL,'{call set_person_name(?,?)}',
-        NULL,NULL,0,0)
-
-insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,modify_proc,delete_proc,param_order,expect_return)
-values (4,2,'description','documents.abstract','documents',NULL,'{call set_doc_abstract(?,?)}',
-        NULL,NULL,0,0)
-                     
-insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,modify_proc,delete_proc,param_order,expect_return)
-values (5,2,'documentTitle','documents.title','documents',NULL,'{call set_doc_title(?,?)}',
-        NULL,NULL,0,0)
-
--- insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,modify_proc,delete_proc,param_order,expect_return)
--- values (6,2,'documentAuthor','persons.name','persons,documents,authors_docs',
---         'persons.id=authors_docs.pers_id AND documents.id=authors_docs.doc_id',
---     NULL,NULL,NULL,0,0)
-
-insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,modify_proc,delete_proc,param_order,expect_return)
-values (7,3,'o','institutes.name','institutes',NULL,'{call set_org_name(?,?)}',
-        NULL,NULL,0,0)
-
-insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,modify_proc,delete_proc,param_order,expect_return)
-values (8,1,'documentDN','ldap_entries.dn','ldap_entries,documents,authors_docs,persons',
-        'ldap_entries.keyval=documents.id AND ldap_entries.oc_map_id=2 AND authors_docs.doc_id=documents.id AND authors_docs.pers_id=persons.id',
-       '{call make_doc_link(?,?)}',NULL,'{call del_doc_link(?,?)}',0,0)
-
-insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,modify_proc,delete_proc,param_order,expect_return)
-values (9,2,'documentAuthor','ldap_entries.dn','ldap_entries,documents,authors_docs,persons',
-        'ldap_entries.keyval=persons.id AND ldap_entries.oc_map_id=1 AND authors_docs.doc_id=documents.id AND authors_docs.pers_id=persons.id',
-       '{call make_author_link(?,?)}',NULL,'{call del_author_link(?,?)}',0,0)
+        '{call delete_phone(?,?)}',0,0)
+
+insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
+values (3,1,'givenName','persons.name','persons',NULL,
+       '{call set_person_name(?,?)}',NULL,0,0)
+
+insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
+values (4,1,'sn','persons.surname','persons',NULL,
+       '{call set_person_surname(?,?)}',NULL,0,0)
+
+insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
+values (5,1,'userPassword','persons.password','persons','persons.password IS NOT NULL',
+       '{call set_person_password(?,?)}','call del_person_password(?,?)',0,0)
+
+insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
+values (6,1,'seeAlso','seeAlso.dn','ldap_entries AS seeAlso,documents,authors_docs,persons',
+       'seeAlso.keyval=documents.id AND seeAlso.oc_map_id=2 AND authors_docs.doc_id=documents.id AND authors_docs.pers_id=persons.id',
+       NULL,NULL,0,0);
+
+insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
+values (7,2,'description','documents.abstract','documents',NULL,'{call set_doc_abstract(?,?)}',
+       NULL,0,0);
+
+insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
+values (8,2,'documentTitle','documents.title','documents',NULL, '{call set_doc_title(?,?)}',
+        NULL,0,0)
+
+insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
+values (9,2,'documentAuthor','documentAuthor.dn','ldap_entries AS documentAuthor,documents,authors_docs,persons',
+       'documentAuthor.keyval=persons.id AND documentAuthor.oc_map_id=1 AND authors_docs.doc_id=documents.id AND authors_docs.pers_id=persons.id',
+       'INSERT INTO authors_docs (pers_id,doc_id) VALUES ((SELECT ldap_entries.keyval FROM ldap_entries WHERE upper(?)=upper(ldap_entries.dn)),?)',
+       'DELETE FROM authors_docs WHERE authors_docs.pers_id=(SELECT ldap_entries.keyval FROM ldap_entries WHERE upper(?)=upper(ldap_entries.dn)) AND authors_docs.doc_id=?',3,0);
+
+insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
+values (10,2,'documentIdentifier','''document ''+text(documents.id)','documents',
+       NULL,NULL,NULL,0,0);
+
+insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
+values (11,3,'o','institutes.name','institutes',NULL,NULL,NULL,3,0);
+
+insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
+values (12,3,'dc','lower(institutes.name)','institutes,ldap_entries AS dcObject,ldap_entry_objclasses AS auxObjectClass',
+       'institutes.id=dcObject.keyval AND dcObject.oc_map_id=3 AND dcObject.id=auxObjectClass.entry_id AND auxObjectClass.oc_name=''dcObject''',
+       '{call set_org_name(?,?)}',NULL,3,0);
 
 SET IDENTITY_INSERT ldap_attr_mappings OFF
 
@@ -60,32 +72,34 @@ SET IDENTITY_INSERT ldap_attr_mappings OFF
 
 SET IDENTITY_INSERT ldap_entries ON
 insert into ldap_entries (id,dn,oc_map_id,parent,keyval)
-values (1,'o=sql,c=RU',3,0,1)
+values (1,'dc=example,dc=com',3,0,1)
 
 insert into ldap_entries (id,dn,oc_map_id,parent,keyval)
-values (2,'cn=Mitya Kovalev,o=sql,c=RU',1,1,1)
+values (2,'cn=Mitya Kovalev,dc=example,dc=com',1,1,1)
 
 insert into ldap_entries (id,dn,oc_map_id,parent,keyval)
-values (3,'cn=Torvlobnor Puzdoy,o=sql,c=RU',1,1,2)
+values (3,'cn=Torvlobnor Puzdoy,dc=example,dc=com',1,1,2)
 
 insert into ldap_entries (id,dn,oc_map_id,parent,keyval)
-values (4,'cn=Akakiy Zinberstein,o=sql,c=RU',1,1,3)
+values (4,'cn=Akakiy Zinberstein,dc=example,dc=com',1,1,3)
 
 insert into ldap_entries (id,dn,oc_map_id,parent,keyval)
-values (5,'documentTitle=book1,o=sql,c=RU',2,1,1)
+values (5,'documentTitle=book1,dc=example,dc=com',2,1,1)
 
 insert into ldap_entries (id,dn,oc_map_id,parent,keyval)
-values (6,'documentTitle=book2,o=sql,c=RU',2,1,2)
+values (6,'documentTitle=book2,dc=example,dc=com',2,1,2)
 
 SET IDENTITY_INSERT ldap_entries OFF
 
 -- referrals
+insert into ldap_entry_objclasses (entry_id,oc_name)
+values (1,'dcObject');
 
 insert into ldap_entry_objclasses (entry_id,oc_name)
 values (4,'referral');
 
 insert into ldap_referrals (entry_id,url)
-values (4,'http://localhost');
+values (4,'http://localhost/');
 
 -- support procedures
 
@@ -93,88 +107,92 @@ SET QUOTED_IDENTIFIER  OFF    SET ANSI_NULLS  ON
 GO
 
 
-CREATE PROCEDURE add_phone @pers_id int, @phone varchar(255) AS
-INSERT INTO ldap.phones (pers_id,phone) VALUES (@pers_id,@phone)
-GO
-
 CREATE PROCEDURE create_person @@keyval int OUTPUT AS
-INSERT INTO ldap.persons (name) VALUES ('');
-set @@keyval=(SELECT MAX(id) FROM ldap.persons)
+INSERT INTO example.persons (name) VALUES ('');
+set @@keyval=(SELECT MAX(id) FROM example.persons)
 GO
 
 CREATE PROCEDURE delete_person @keyval int AS
-DELETE FROM ldap.phones WHERE pers_id=@keyval;
-DELETE FROM ldap.authors_docs WHERE pers_id=@keyval;
-DELETE FROM ldap.persons WHERE id=@keyval;
+DELETE FROM example.phones WHERE pers_id=@keyval;
+DELETE FROM example.authors_docs WHERE pers_id=@keyval;
+DELETE FROM example.persons WHERE id=@keyval;
 GO
 
 CREATE PROCEDURE create_org @@keyval int OUTPUT AS
-INSERT INTO ldap.institutes (name) VALUES ('');
-set @@keyval=(SELECT MAX(id) FROM ldap.institutes)
+INSERT INTO example.institutes (name) VALUES ('');
+set @@keyval=(SELECT MAX(id) FROM example.institutes)
 GO
 
-CREATE PROCEDURE create_document @@keyval int OUTPUT AS
-INSERT INTO ldap.documents (title) VALUES ('');
-set @@keyval=(SELECT MAX(id) FROM ldap.documents)
+CREATE PROCEDURE delete_org @keyval int AS
+DELETE FROM example.institutes WHERE id=@keyval;
 GO
 
-CREATE PROCEDURE delete_org @keyval int AS
-DELETE FROM ldap.institutes WHERE id=@keyval;
+CREATE PROCEDURE create_document @@keyval int OUTPUT AS
+INSERT INTO example.documents (title) VALUES ('');
+set @@keyval=(SELECT MAX(id) FROM example.documents)
 GO
 
 CREATE PROCEDURE delete_document @keyval int AS
-DELETE FROM ldap.authors_docs WHERE doc_id=@keyval;
-DELETE FROM ldap.documents WHERE id=@keyval;
+DELETE FROM example.authors_docs WHERE doc_id=@keyval;
+DELETE FROM example.documents WHERE id=@keyval;
+GO
+
+CREATE PROCEDURE add_phone @pers_id int, @phone varchar(255) AS
+INSERT INTO example.phones (pers_id,phone) VALUES (@pers_id,@phone)
 GO
 
 CREATE PROCEDURE delete_phone @keyval int,@phone varchar(64) AS
-DELETE FROM ldap.phones WHERE pers_id=@keyval AND phone=@phone;
+DELETE FROM example.phones WHERE pers_id=@keyval AND phone=@phone;
 GO
 
 CREATE PROCEDURE set_person_name @keyval int, @new_name varchar(255)  AS
-UPDATE ldap.persons SET name=@new_name WHERE id=@keyval;
+UPDATE example.persons SET name=@new_name WHERE id=@keyval;
+GO
+
+CREATE PROCEDURE set_person_surname @keyval int, @new_surname varchar(255)  AS
+UPDATE example.persons SET surname=@new_surname WHERE id=@keyval;
 GO
 
 CREATE PROCEDURE set_org_name @keyval int, @new_name varchar(255)  AS
-UPDATE ldap.institutes SET name=@new_name WHERE id=@keyval;
+UPDATE example.institutes SET name=@new_name WHERE id=@keyval;
 GO
 
 CREATE PROCEDURE set_doc_title @keyval int, @new_title varchar(255)  AS
-UPDATE ldap.documents SET title=@new_title WHERE id=@keyval;
+UPDATE example.documents SET title=@new_title WHERE id=@keyval;
 GO
 
 CREATE PROCEDURE set_doc_abstract @keyval int, @new_abstract varchar(255)  AS
-UPDATE ldap.documents SET abstract=@new_abstract WHERE id=@keyval;
+UPDATE example.documents SET abstract=@new_abstract WHERE id=@keyval;
 GO
 
 CREATE PROCEDURE make_author_link @keyval int, @author_dn varchar(255)  AS
 DECLARE @per_id int;
-SET @per_id=(SELECT keyval FROM ldap.ldap_entries 
+SET @per_id=(SELECT keyval FROM example.ldap_entries 
           WHERE oc_map_id=1 AND dn=@author_dn);
 IF NOT (@per_id IS NULL)
- INSERT INTO ldap.authors_docs (doc_id,pers_id) VALUES (@keyval,@per_id);
+ INSERT INTO example.authors_docs (doc_id,pers_id) VALUES (@keyval,@per_id);
 GO
 
 CREATE PROCEDURE make_doc_link @keyval int, @doc_dn varchar(255)  AS
 DECLARE @doc_id int;
-SET @doc_id=(SELECT keyval FROM ldap.ldap_entries 
+SET @doc_id=(SELECT keyval FROM example.ldap_entries 
           WHERE oc_map_id=2 AND dn=@doc_dn);
 IF NOT (@doc_id IS NULL)
- INSERT INTO ldap.authors_docs (pers_id,doc_id) VALUES (@keyval,@doc_id);
+ INSERT INTO example.authors_docs (pers_id,doc_id) VALUES (@keyval,@doc_id);
 GO
 
 CREATE PROCEDURE del_doc_link @keyval int, @doc_dn varchar(255)  AS
 DECLARE @doc_id int;
-SET @doc_id=(SELECT keyval FROM ldap.ldap_entries 
+SET @doc_id=(SELECT keyval FROM example.ldap_entries 
           WHERE oc_map_id=2 AND dn=@doc_dn);
 IF NOT (@doc_id IS NULL)
-DELETE FROM ldap.authors_docs WHERE pers_id=@keyval AND doc_id=@doc_id;
+DELETE FROM example.authors_docs WHERE pers_id=@keyval AND doc_id=@doc_id;
 GO
 
 CREATE PROCEDURE del_author_link @keyval int, @author_dn varchar(255)  AS
 DECLARE @per_id int;
-SET @per_id=(SELECT keyval FROM ldap.ldap_entries 
+SET @per_id=(SELECT keyval FROM example.ldap_entries 
           WHERE oc_map_id=1 AND dn=@author_dn);
 IF NOT (@per_id IS NULL)
- DELETE FROM ldap.authors_docs WHERE doc_id=@keyval AND pers_id=@per_id;
+ DELETE FROM example.authors_docs WHERE doc_id=@keyval AND pers_id=@per_id;
 GO
index 36859d1b761cc905dc1e3bc525b1f3ddf7c7b896..710a5faebd540e04e22bc0c02759f5fb4c289912 100644 (file)
@@ -1,6 +1,8 @@
 CREATE TABLE persons (
        id NUMBER NOT NULL,
-       name varchar2(255) NOT NULL
+       name varchar2(255) NOT NULL,
+       surname varchar2(255) NOT NULL,
+       password varchar2(64) NOT NULL
 );
 
 CREATE TABLE institutes (
index 439bacca3b26bfcdf54e994b48e3bfc117df2a8f..4fc1977c5d5f11633c4eaa62caf301f69376c40e 100644 (file)
@@ -1,10 +1,10 @@
-insert into institutes (id,name) values (institute_ids.nextval,'sql');
+insert into institutes (id,name) values (institute_ids.nextval,'example');
 
-insert into persons (id,name) values (person_ids.nextval,'Mitya Kovalev');
+insert into persons (id,name,surname,password) values (person_ids.nextval,'Mitya','Kovalev','mit');
 
-insert into persons (id,name) values (person_ids.nextval,'Torvlobnor Puzdoy');
+insert into persons (id,name,surname) values (person_ids.nextval,'Torvlobnor','Puzdoy');
 
-insert into persons (id,name) values (person_ids.nextval,'Akakiy Zinberstein');
+insert into persons (id,name,surname) values (person_ids.nextval,'Akakiy','Zinberstein');
 
 
 insert into phones (id,phone,pers_id) values (phone_ids.nextval,'332-2334',1);
index 75543232f0f89ceec167a78ca25429bd7d066fe6..d0c3186f49dd31a96d4a58af972f98864295c0dd 100644 (file)
@@ -9,7 +9,7 @@
 --     delete_proc     a procedure to delete the entry; it takes "keytbl.keycol" of the row to be deleted
 --     expect_return   a bitmap that marks whether create_proc (1) and delete_proc (2) return a value or not
 insert into ldap_oc_mappings (id,name,keytbl,keycol,create_proc,delete_proc,expect_return)
-values (1,'person','persons','id','call create_person(?)','call delete_person(?)',0);
+values (1,'inetOrgPerson','persons','id','call create_person(?)','call delete_person(?)',0);
 
 insert into ldap_oc_mappings (id,name,keytbl,keycol,create_proc,delete_proc,expect_return)
 values (2,'document','documents','id','call create_document(?)','call delete_document(?)',0);
@@ -29,8 +29,8 @@ values (3,'organization','institutes','id','call create_org(?)','call delete_org
 --     param_order     a mask that marks if the "keytbl.keycol" value comes before or after the value in add_proc (1) and delete_proc (2)
 --     expect_return   a mask that marks whether add_proc (1) and delete_proc(2) are expected to return a value or not
 insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
-values (1,1,'cn','persons.name','persons',NULL,'call set_person_name(?,?)',
-        NULL,0,0);
+values (1,1,'cn','persons.name||'' ''||persons.surname','persons',NULL,
+       NULL,NULL,0,0);
 
 insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
 values (2,1,'telephoneNumber','phones.phone','persons,phones',
@@ -38,36 +38,45 @@ values (2,1,'telephoneNumber','phones.phone','persons,phones',
         'call delete_phone(?,?)',0,0);
 
 insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
-values (3,1,'sn','persons.name','persons',NULL,'call set_person_name(?,?)',
+values (3,1,'givenName','persons.name','persons',NULL,'call set_person_name(?,?)',
         NULL,0,0);
 
 insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
-values (4,2,'abstract','documents.abstract','documents',NULL,'call set_doc_abstract(?,?)',
+values (4,1,'sn','persons.surname','persons',NULL,'call set_person_surname(?,?)',
         NULL,0,0);
 
 insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
-values (5,2,'documentTitle','documents.title','documents',NULL,'call set_doc_title(?,?)',
+values (5,1,'userPassword','persons.password','persons',
+       'persons.password IS NOT NULL','call set_person_password(?,?)',
         NULL,0,0);
 
--- insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)                         
--- values (6,2,'documentAuthor','persons.name','persons,documents,authors_docs',
---         'persons.id=authors_docs.pers_id AND documents.id=authors_docs.doc_id',
---     NULL,NULL,0,0);
+insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
+values (6,1,'seeAlso','seeAlso.dn','ldap_entries seeAlso,documents,authors_docs,persons',
+       'seeAlso.keyval=documents.id AND seeAlso.oc_map_id=2 AND authors_docs.doc_id=documents.id AND authors_docs.pers_id=persons.id',
+       NULL,NULL,0,0);
 
 insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
-values (7,3,'o','institutes.name','institutes',NULL,'call set_org_name(?,?)',
-        NULL,0,0);
+values (7,2,'description','documents.abstract','documents',NULL,'call set_doc_abstract(?,?)',
+       NULL,0,0);
 
 insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
-values (8,1,'documentDN','ldap_entries.dn','ldap_entries,documents,authors_docs,persons',
-        'ldap_entries.keyval=documents.id AND ldap_entries.oc_map_id=2 AND authors_docs.doc_id=documents.id AND authors_docs.pers_id=persons.id',
-       '?=call make_doc_link(?,?)','?=call del_doc_link(?,?)',0,3);
+values (8,2,'documentTitle','documents.title','documents',NULL,'call set_doc_title(?,?)',NULL,0,0);
 
 insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
-values (9,2,'documentAuthor','ldap_entries.dn','ldap_entries,documents,authors_docs,persons',
-        'ldap_entries.keyval=persons.id AND ldap_entries.oc_map_id=1 AND authors_docs.doc_id=documents.id AND authors_docs.pers_id=persons.id',
+values (9,2,'documentAuthor','documentAuthor.dn','ldap_entries documentAuthor,documents,authors_docs,persons',
+       'documentAuthor.keyval=persons.id AND documentAuthor.oc_map_id=1 AND authors_docs.doc_id=documents.id AND authors_docs.pers_id=persons.id',
        '?=call make_author_link(?,?)','?=call del_author_link(?,?)',0,3);
 
+insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
+values (10,2,'documentIdentifier','''document ''||text(documents.id)','documents',NULL,NULL,NULL,0,0);
+
+insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
+values (11,3,'o','institutes.name','institutes',NULL,'call set_org_name(?,?)',NULL,0,0);
+
+insert into ldap_attr_mappings (id,oc_map_id,name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return)
+values (12,3,'dc','lower(institutes.name)','institutes,ldap_entries dcObject,ldap_entry_objclasses auxObjectClass',
+       'institutes.id=dcObject.keyval AND dcObject.oc_map_id=3 AND dcObject.id=auxObjectClass.entry_id AND auxObjectClass.oc_name=''dcObject''',
+       NULL,NULL,0,0);
 
 -- entries mapping: each entry must appear in this table, with a unique DN rooted at the database naming context
 --     id              a unique number > 0 identifying the entry
@@ -76,26 +85,29 @@ values (9,2,'documentAuthor','ldap_entries.dn','ldap_entries,documents,authors_d
 --     parent          the "ldap_entries.id" of the parent of this objectClass; 0 if it is the "suffix" of the database
 --     keyval          the value of the "keytbl.keycol" defined for this objectClass
 insert into ldap_entries (id,dn,oc_map_id,parent,keyval)
-values (ldap_entry_ids.nextval,'o=sql,c=RU',3,0,1);
+values (ldap_entry_ids.nextval,'dc=example,dc=com',3,0,1);
 
 insert into ldap_entries (id,dn,oc_map_id,parent,keyval)
-values (ldap_entry_ids.nextval,'cn=Mitya Kovalev,o=sql,c=RU',1,1,1);
+values (ldap_entry_ids.nextval,'cn=Mitya Kovalev,dc=example,dc=com',1,1,1);
 
 insert into ldap_entries (id,dn,oc_map_id,parent,keyval)
-values (ldap_entry_ids.nextval,'cn=Torvlobnor Puzdoy,o=sql,c=RU',1,1,2);
+values (ldap_entry_ids.nextval,'cn=Torvlobnor Puzdoy,dc=example,dc=com',1,1,2);
 
 insert into ldap_entries (id,dn,oc_map_id,parent,keyval)
-values (ldap_entry_ids.nextval,'cn=Akakiy Zinberstein,o=sql,c=RU',1,1,3);
+values (ldap_entry_ids.nextval,'cn=Akakiy Zinberstein,dc=example,dc=com',1,1,3);
 
 insert into ldap_entries (id,dn,oc_map_id,parent,keyval)
-values (ldap_entry_ids.nextval,'documentTitle=book1,o=sql,c=RU',2,1,1);
+values (ldap_entry_ids.nextval,'documentTitle=book1,dc=example,dc=com',2,1,1);
 
 insert into ldap_entries (id,dn,oc_map_id,parent,keyval)
-values (ldap_entry_ids.nextval,'documentTitle=book2,o=sql,c=RU',2,1,2);
+values (ldap_entry_ids.nextval,'documentTitle=book2,dc=example,dc=com',2,1,2);
 
 -- objectClass mapping: entries that have multiple objectClass instances are listed here with the objectClass name (view them as auxiliary objectClass)
 --     entry_id        the "ldap_entries.id" of the entry this objectClass value must be added
 --     oc_name         the name of the objectClass; it MUST match the name of an objectClass that is loaded in slapd's schema
+insert into ldap_entry_objclasses (entry_id,oc_name)
+values (1,'dcObject');
+
 insert into ldap_entry_objclasses (entry_id,oc_name)
 values (4,'referral');
 
@@ -103,7 +115,7 @@ values (4,'referral');
 --     entry_id        the "ldap_entries.id" of the entry that should be treated as a referral
 --     url             the URI of the referral
 insert into ldap_referrals (entry_id,url)
-values (4,'http://localhost');
+values (4,'http://localhost/');
 
 
 -- procedures