]> matita.cs.unibo.it Git - helm.git/commitdiff
Incompatible syntax problem between MySql e Sqlite3 fixed.
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Thu, 14 Jun 2007 11:07:45 +0000 (11:07 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Thu, 14 Jun 2007 11:07:45 +0000 (11:07 +0000)
components/hmysql/hMysql.ml
components/hmysql/hSql.mli
components/hmysql/hSqlite3.ml
components/library/libraryClean.ml
components/library/libraryDb.ml
components/metadata/metadataDb.ml
components/metadata/metadataDeps.ml
components/whelp/whelp.ml

index 76702b524f3cb95786d20d51938a5afadf09ef6f..374ccc600174ca450ff9da5cd65d0bd3698d63a7 100644 (file)
@@ -88,7 +88,6 @@ let errno = function
       | Mysql.No_such_table -> No_such_table
       | Mysql.Table_exists_error -> Table_exists_error
       | Mysql.Dup_keyname -> Dup_keyname
-      | Mysql.No_such_table -> No_such_table
       | Mysql.No_such_index -> No_such_index
       | Mysql.Bad_table_error -> Bad_table_error
       | _ -> GENERIC_ERROR "Mysql_generic_error"
@@ -96,3 +95,4 @@ let errno = function
 
 let isMysql = true
 
+let escape_string_for_like = ("ESCAPE \"\\\\\"" : ('a,'b,'c,'a) format4);;
index 53600b5bf5ca9c90dbfbf21dd37c1b48ad3382a6..fb678fa5942eaf4e024b929d781ebb8e94fc6f87 100644 (file)
@@ -64,4 +64,6 @@ val errno : dbd -> error_code
 
 val escape: string -> string
 
+val escape_string_for_like: ('a,'b,'c,'a) format4
+
 val isMysql : bool
index da14a2f3fb6c5d79dfb09d00a178b03384fe7213..20e49451119fee9a5fca94f0db39a8f938124c47 100644 (file)
@@ -191,3 +191,5 @@ let errno = function
 ;;
 
 let isMysql = false
+
+let escape_string_for_like = ("ESCAPE \"\\\"" : ('a,'b,'c,'a) format4);;
index 0a19d8d5603451fa1e7ccd63e6e4a6170327ebd9..1b378e6c2a72f235ac9cdb62a0955ae7f6ba2334 100644 (file)
@@ -62,7 +62,7 @@ let one_step_depend suri =
           HLog.debug "Warning SELECT without REGEXP";
          sprintf
             ("SELECT source, h_occurrence FROM %s WHERE " ^^ 
-             "h_occurrence LIKE '%s%%' ESCAPE \"\\\"")
+             "h_occurrence LIKE '%s%%' " ^^ HSql.escape_string_for_like)
                  obj_tbl buri*)
                end
       in
@@ -103,7 +103,7 @@ let db_uris_of_baseuri buri =
     HLog.debug "Warning SELECT without REGEXP";
     sprintf
     ("SELECT source, h_occurrence FROM %s WHERE " ^^ 
-    "h_occurrence LIKE '%s%%' ESCAPE \"\\\" ")
+    "h_occurrence LIKE '%s%%' " ^^ HSql.escape_string_for_like)
     obj_tbl buri
     *)
    end
index db8a8a50627d9cb570bfa0a241a8a25730189e8c..e6af1eb814bf198e3f3d714eca0556450fbfdc63 100644 (file)
@@ -168,7 +168,8 @@ let xpointers_of_ind uri =
     Pcre.replace ~pat:"([^\\\\])_" ~templ:"$1\\_" (HSql.escape s)
   in
   let query = sprintf 
-    "SELECT source FROM %s WHERE source LIKE '%s#xpointer%%' ESCAPE \"\\\" " 
+    ("SELECT source FROM %s WHERE source LIKE '%s#xpointer%%' "
+     ^^ HSql.escape_string_for_like)
     name_tbl (escape (UriManager.string_of_uri uri))
   in
   let rc = HSql.exec dbd query in
index 9480484c00d0f9e879d4f5747cf011f86400ed9b..7678cd0b3109abde2204a8daf823a84d1bfca98c 100644 (file)
@@ -184,7 +184,9 @@ let clean ~(dbd:HSql.dbd) =
       Pcre.replace ~pat:"([^\\\\])_" ~templ:"$1\\_" (HSql.escape s)
     in
     let query s = 
-      sprintf "DELETE FROM %s WHERE source LIKE \"%s%%\" ESCAPE \"\\\" " 
+      sprintf
+       ("DELETE FROM %s WHERE source LIKE \"%s%%\" " ^^
+        HSql.escape_string_for_like)
         (tbl ()) (escape s)
     in
     List.iter
@@ -201,7 +203,9 @@ let unindex ~dbd ~uri =
       Pcre.replace ~pat:"([^\\\\])_" ~templ:"$1\\_" (HSql.escape s)
     in
     let query tbl =
-      sprintf "DELETE FROM %s WHERE source LIKE \"%s%%\" ESCAPE \"\\\" " 
+      sprintf
+       ("DELETE FROM %s WHERE source LIKE \"%s%%\" " ^^
+        HSql.escape_string_for_like)
        (tbl ()) (escape uri)
     in
     ignore (HSql.exec dbd (query tbl))
index bf1dc49e0ec2d8213577f31a275aa27e4e2ad1f2..13e1d23b49ce5260c6b4884d2e205d5551f625ba 100644 (file)
@@ -107,9 +107,10 @@ let sorted_uris_of_baseuri ~dbd baseuri =
    in
    let query =
       Printf.sprintf
-         ("SELECT source FROM %s WHERE source LIKE \"%s\" ESCAPE \"\\\" UNION "
-           ^^
-          "SELECT source FROM %s WHERE source LIKE \"%s\" ESCAPE \"\\\"")
+         ("SELECT source FROM %s WHERE source LIKE \"%s\" "
+          ^^ HSql.escape_string_for_like ^^ " UNION " ^^
+          "SELECT source FROM %s WHERE source LIKE \"%s\" "
+          ^^ HSql.escape_string_for_like)
          (MetadataTypes.name_tbl ()) sql_pat
          MetadataTypes.library_name_tbl sql_pat
    in
index eb1f2b6301c239611b7fa88eb7021ffe78333612..4a863eba8ea50ac9c6880045067b48b7b7c34096 100644 (file)
@@ -47,9 +47,11 @@ let locate ~(dbd:HSql.dbd) ?(vars = false) pat =
   let sql_pat = sqlpat_of_shellglob pat in
   let query =
         sprintf 
-          ("SELECT source FROM %s WHERE value LIKE \"%s\" ESCAPE \"\\\" "
-           ^^ "UNION " ^^
-           "SELECT source FROM %s WHERE value LIKE \"%s\" ESCAPE \"\\\" ")
+          ("SELECT source FROM %s WHERE value LIKE \"%s\" "
+           ^^ HSql.escape_string_for_like
+           ^^ " UNION " ^^
+           "SELECT source FROM %s WHERE value LIKE \"%s\" "
+           ^^ HSql.escape_string_for_like)
           (MetadataTypes.name_tbl ()) (escape sql_pat)
            MetadataTypes.library_name_tbl (escape sql_pat)
   in