From 3d828e15aa6d919eee55f8aa803f3512991e6693 Mon Sep 17 00:00:00 2001 From: Ferruccio Guidi Date: Tue, 4 Feb 2003 19:08:28 +0000 Subject: [PATCH] SQL quoting fixed in relation.ml --- helm/ocaml/mathql_interpreter/relation.ml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/helm/ocaml/mathql_interpreter/relation.ml b/helm/ocaml/mathql_interpreter/relation.ml index 96b97f657..f2402688d 100644 --- a/helm/ocaml/mathql_interpreter/relation.ml +++ b/helm/ocaml/mathql_interpreter/relation.ml @@ -36,6 +36,7 @@ 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 @@ -71,7 +72,7 @@ let relation_ex inv rop path rset assl = let c = pgc () 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; *) let res = c#exec qq in @@ -98,7 +99,7 @@ let relation_ex inv rop path rset assl = let c = pgc () 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 @@ -117,7 +118,7 @@ let relation_ex inv rop path rset assl = [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])]])] -- 2.39.2