]> git.sur5r.net Git - openldap/blob - servers/slapd/back-sql/schema-map.h
added back-sql files
[openldap] / servers / slapd / back-sql / schema-map.h
1 #ifndef __BACKSQL_SCHEMA_MAP_H__
2 #define __BACKSQL_SCHEMA_MAP_H__
3
4 typedef struct
5 {
6  char *name;
7  char *keytbl;
8  char *keycol;
9  char *create_proc;//expected to return keyval of newly created entry
10  char *delete_proc;//supposed to expect keyval as parameter and delete all the attributes as well
11  unsigned long id;
12  Avlnode *attrs;
13 }backsql_oc_map_rec;
14
15 typedef struct
16 {
17  char *name;//literal name of corresponding LDAP attribute type
18  char *from_tbls;
19  char *join_where;
20  char *sel_expr;
21  char *add_proc; //supposed to expect 2 binded values: entry keyval and attr. value to add, like "add_name(?,?)"
22  char *modify_proc; //supposed to expect two binded values: entry keyval and old and new values of attr
23  char *delete_proc; //supposed to expect 2 binded values: entry keyval and attr. value to delete
24  char *query; //for optimization purposes attribute load query is preconstructed from parts on schemamap load time
25 }backsql_at_map_rec;
26
27 int backsql_load_schema_map(backsql_info *si,SQLHDBC dbh);
28 backsql_oc_map_rec* backsql_oc_with_name(backsql_info *si,char* objclass);
29 backsql_oc_map_rec* backsql_oc_with_id(backsql_info *si,unsigned long id);
30 backsql_at_map_rec* backsql_at_with_name(backsql_oc_map_rec* objclass,char* attr);
31 int backsql_destroy_schema_map(backsql_info *si);
32
33 #endif