let mpid = getpid mprop in
let res =
let c = pgc () in
- let tv = pgresult_to_string (c#exec ("select id from registry where uri='" ^ s ^ "'")) in
- let q = "select t" ^ tv ^ "." ^ prop ^ " from t" ^ tv ^ " where prop_id= '" ^ mpid ^ "'" in
+ let tv = pgresult_to_string (c#exec ("select distinct id from registry where uri='" ^ 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;
pgresult_to_string_list (c#exec q)
in
if inv then (* restituisco gli uri che il valore della prop richiesta uguale a s *)
let res =
let c = pgc () in
- let q = ("select h" ^ mprop ^ ".uri from h" ^ mprop ^ " where h" ^ mprop ^ "." ^ prop ^ "= '" ^ s ^ "'") 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;
pgresult_to_string_list (c#exec q)
in
else
let res = (* restituisco il valore della prop relativo all'uri rappresentato da s*)
let c = pgc () in
- let q = ("select h" ^ mprop ^ "." ^ prop ^" from h" ^ mprop ^ " where h" ^ mprop ^ ".uri = '" ^ s ^ "'") in
+ let q = ("select distinct h" ^ mprop ^ "." ^ prop ^" from h" ^ mprop ^ " where h" ^ mprop ^ ".uri = '" ^ 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 !!!!*)