let rec property_ex rop path inv = function
[] -> []
| s::tl -> let mprop = fst path in
- print_endline mprop;
+ prerr_endline mprop;
let l_sub_p = snd path in
let prop = (if (l_sub_p <> []) then List.hd l_sub_p
"refObj" (* in base al valore di prop restituisco i valori del relativo campo della tabella relativa all'uri rappresentata da s *)
| "backPointer" ->
- print_endline mprop;
+ prerr_endline mprop;
let mpid = getpid mprop in
let res =
let c = pgc () in
- let tv = pgresult_to_string (c#exec ("select distinct id from registry where uri='" ^ s ^ "' order by id")) in
+ let quoted_s =
+ Str.global_substitute (Str.regexp "'")
+ (function _ -> "\\'") s in
+ let tv = pgresult_to_string (c#exec ("select distinct id from registry where uri='" ^ quoted_s ^ "' order by id")) in
let q = "select distinct t" ^ tv ^ "." ^ prop ^ " from t" ^ tv ^ " where prop_id= '" ^ mpid ^ "' order by t" ^ tv ^ "." ^ prop in
- print_endline q;
+ prerr_endline q;
pgresult_to_string_list (c#exec q)
in
append (res,(property_ex rop path inv tl))
let res =
let c = pgc () in
let q = ("select distinct h" ^ mprop ^ ".uri from h" ^ mprop ^ " where h" ^ mprop ^ "." ^ prop ^ "= '" ^ s ^ "' order by h" ^ mprop ^ ".uri") in
- print_endline q;
+ prerr_endline q;
pgresult_to_string_list (c#exec q)
in
append (res,(property_ex rop path inv tl))
else
let res = (* restituisco il valore della prop relativo all'uri rappresentato da s*)
let c = pgc () in
- let q = ("select distinct h" ^ mprop ^ "." ^ prop ^" from h" ^ mprop ^ " where h" ^ mprop ^ ".uri = '" ^ s ^ "' order by h" ^ mprop ^ "." ^ prop) in
+ let quoted_s =
+ Str.global_substitute (Str.regexp "'")
+ (function _ -> "\\'") s in
+ let q = ("select distinct h" ^ mprop ^ "." ^ prop ^" from h" ^ mprop ^ " where h" ^ mprop ^ ".uri = '" ^ quoted_s ^ "' order by h" ^ mprop ^ "." ^ prop) in
pgresult_to_string_list (c#exec q)
in
append (res,(property_ex rop path inv tl))
| _ -> (* metadati DC !!!! Controllare se i nomi delle tabelle cominciano con h !!!!*)
- print_endline "DC";
+ prerr_endline "DC";
if inv then
let res =
let c = pgc () in
let q = ("select " ^ mprop ^ ".uri from " ^ mprop ^ " where " ^ mprop ^ ".value = '" ^ s ^ "'") in
- print_endline q;
+ prerr_endline q;
pgresult_to_string_list (c#exec q)
in
append (res,(property_ex rop path inv tl))
else
let res =
let c = pgc () in
- let q = ("select " ^ mprop ^ ".value from " ^ mprop ^ " where " ^ mprop ^ ".uri = '" ^ s ^ "'") in
+ let quoted_s =
+ Str.global_substitute (Str.regexp "'")
+ (function _ -> "\\'") s in
+ let q = ("select " ^ mprop ^ ".value from " ^ mprop ^ " where " ^ mprop ^ ".uri = '" ^ quoted_s ^ "'") in
pgresult_to_string_list (c#exec q)
in
append (res,(property_ex rop path inv tl))