*)
-
-
open Union;;
open Dbconn;;
open Utility;;
+let quoted s = Str.global_substitute (Str.regexp "'") (function _ -> "\\'") s
(* Cerca in una lista di assegnamenti (lista di coppie (path,path) dove path e'
di tipo (string * string list) quello relativo alla proprietà p e ne
;;
-let relation_ex inv rop path rset assl =
+let relation_ex handle inv rop path rset assl =
let relk = fst path in
match relk with
"refObj"
| "backPointer" -> (* proprieta` refObj e backPointer *)
- print_endline "IN BACKPOINTER";
+(* print_endline "IN BACKPOINTER"; *)
let prop = get_prop_id relk in
if assl = [] then (* se non ci sono assegnamenti *)
- let c = pgc () in
+ let c = MQIConn.pgc handle in
let rset_list = (* lista di singoletti:resource_set di un elemento *)
(List.fold_left (fun acc (uri,l) ->
- let tv = pgresult_to_string (c#exec ("select id from registry where uri='" ^ uri ^ "'")) in
+ let tv = pgresult_to_string (c#exec ("select id from registry where uri='" ^ quoted uri ^ "'")) in
let qq = "select uri from t" ^ tv ^ " where prop_id='" ^ prop ^ "' order by uri asc" in
- print_endline qq;
+(* print_endline qq; *)
let res = c#exec qq in
let l = (pgresult_to_string_list res) in
- List.iter print_endline l;
+(* List.iter print_endline l; *)
(List.map
(function
[uri] -> [(uri,[])]
else (* con assegnamenti *)
- let c = pgc () in
+ let c = MQIConn.pgc handle in
let rset_list = (* lista di singoletti:resource_set di un elemento *)
(List.fold_left (fun acc (uri,l) ->
- let tv = pgresult_to_string (c#exec ("select id from registry where uri='" ^ uri ^ "'")) in
+ let tv = pgresult_to_string (c#exec ("select id from registry where uri='" ^ quoted uri ^ "'")) in
let qq = "select uri, position, depth from t" ^ tv ^ " where prop_id='" ^ prop ^ "' order by uri asc" in
print_endline qq;
let res = c#exec qq in
[uri;position;depth] -> [(uri,[[((pos, []),[position])]])]
| _ -> assert false )
res#get_list) @ acc
- else (* voglio solo depth *)
+ else (* voglio solo depth *)
(List.map
(function
[uri;position;depth] -> [(uri,[[((dep, []),[depth])]])]
| "refRel" -> (* proprietà refRel *)
if assl = [] then [] (* se non ci sono assegnamenti *)
-(* let c = pgc () in
+(* let c = MQIConn.pgc handle in
let rset_list = (* lista di singoletti:resource_set di un elemento *)
(List.fold_left (fun acc (uri,l) ->
let qq = "select uri from hrefRel order by uri asc" in
else (* con assegnamenti *)
if inv then (* INVERSA *)
- let c = pgc () in
+ let c = MQIConn.pgc handle in
let rset_list = (* lista di singoletti:resource_set di un elemento *)
(List.fold_left (fun acc (uri,l) ->
let qq = "select uri, position, depth from hrefRel order by uri asc" in
in
edup rset_list
else (* DIRETTA, con risorsa nulla *)
- let c = pgc () in
+ let c = MQIConn.pgc handle in
let rset_list = (* lista di singoletti:resource_set di un elemento *)
(List.fold_left (fun acc (uri,l) ->
let qq = "select position, depth from hrefRel order by uri asc" in
| "refSort" -> (* proprietà refSort *)
if assl = [] then [] (* se non ci sono assegnamenti *)
-(* let c = pgc () in
+(* let c = MQIConn.pgc handle in
let rset_list = (* lista di singoletti:resource_set di un elemento *)
(List.fold_left (fun acc (uri,l) ->
let qq = "select uri from hrefSort order by uri asc" in
else (* con assegnamenti *)
if inv then (*INVERSA ----> SISTEMARE: vedi refRel!!!!*)
- let c = pgc () in
+ let c = MQIConn.pgc handle in
let rset_list = (* lista di singoletti:resource_set di un elemento *)
(List.fold_left (fun acc (uri,l) ->
let qq = "select uri, position, depth, sort from hrefSort order by uri asc" in
edup rset_list
else (* DIRETTA con risorsa vuota ----> SISTEMARE: vedi refRel!!!!*)
- let c = pgc () in
+ let c = MQIConn.pgc handle in
let rset_list = (* lista di singoletti:resource_set di un elemento *)
(List.fold_left (fun acc (uri,l) ->
let qq = "select position, depth, sort from hrefSort order by uri asc" in
(* prende un resource_set, una vvar (primo el. di assl) a cui associare la posizione, e la relazione (refObj o backPointer) e per ogni resource chiama la muse
NOTA: "rop" per ora non viene usato perche' vale sempre "ExactOp" *)
-let relation_galax_ex inv rop path rset assl = []
+let relation_galax_ex handle inv rop path rset assl = []
(*