X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Fmetadata%2FsqlStatements.ml;h=2164f5724b52fe50a39fcc9b782e69f4066b8bc9;hb=111df95ac03f2ee21dfa2422a7f531f675b1c16d;hp=5ba5429b71199b96b6b8e25d712a1b4a5ccd7508;hpb=2ce7fd1b8d48f86d1f93231fe35473551cd060e7;p=helm.git diff --git a/helm/software/components/metadata/sqlStatements.ml b/helm/software/components/metadata/sqlStatements.ml index 5ba5429b7..2164f5724 100644 --- a/helm/software/components/metadata/sqlStatements.ml +++ b/helm/software/components/metadata/sqlStatements.ml @@ -110,29 +110,30 @@ sprintf "CREATE INDEX %s_statement ON %s (statement);" name name] let sprintf_refRel_index name = [ sprintf "CREATE INDEX %s_index ON %s (source,h_position,h_depth);" name name] -let format_drop name sufix = - if HSql.isMysql then +let format_drop name sufix dtype dbd = + if HSql.isMysql dtype dbd then (sprintf "DROP INDEX %s_%s ON %s;" name sufix name) else (sprintf "DROP INDEX %s_%s;" name sufix);; -let sprintf_refObj_index_drop name = [(format_drop name "index")] +let sprintf_refObj_index_drop name dtype dbd= [(format_drop name "index" dtype dbd)] -let sprintf_refSort_index_drop name = [(format_drop name "index")] +let sprintf_refSort_index_drop name dtype dbd = [(format_drop name "index" dtype dbd)] -let sprintf_objectName_index_drop name = [(format_drop name "value")] +let sprintf_objectName_index_drop name dtype dbd = [(format_drop name "value" dtype dbd)] -let sprintf_hits_index_drop name = [ -(format_drop name "source"); -(format_drop name "no")] +let sprintf_hits_index_drop name dtype dbd = [ +(format_drop name "source" dtype dbd); +(format_drop name "no" dtype dbd)] -let sprintf_count_index_drop name = [ -(format_drop name "source"); -(format_drop name "conclusion"); -(format_drop name "hypothesis"); -(format_drop name "statement")] +let sprintf_count_index_drop name dtype dbd = [ +(format_drop name "source" dtype dbd); +(format_drop name "conclusion" dtype dbd); +(format_drop name "hypothesis" dtype dbd); +(format_drop name "statement" dtype dbd)] -let sprintf_refRel_index_drop name = [(format_drop name "index")] +let sprintf_refRel_index_drop name dtype dbd = + [(format_drop name "index" dtype dbd)] let sprintf_rename_table oldname newname = [ sprintf "RENAME TABLE %s TO %s;" oldname newname @@ -168,14 +169,14 @@ let get_table_drop t named = | `Hits -> sprintf_hits_drop named | `Count -> sprintf_count_drop named -let get_index_drop t named = +let get_index_drop t named dtype dbd = match t with - | `RefObj -> sprintf_refObj_index_drop named - | `RefSort -> sprintf_refSort_index_drop named - | `RefRel -> sprintf_refRel_index_drop named - | `ObjectName -> sprintf_objectName_index_drop named - | `Hits -> sprintf_hits_index_drop named - | `Count -> sprintf_count_index_drop named + | `RefObj -> sprintf_refObj_index_drop named dtype dbd + | `RefSort -> sprintf_refSort_index_drop named dtype dbd + | `RefRel -> sprintf_refRel_index_drop named dtype dbd + | `ObjectName -> sprintf_objectName_index_drop named dtype dbd + | `Hits -> sprintf_hits_index_drop named dtype dbd + | `Count -> sprintf_count_index_drop named dtype dbd let create_tables l = List.fold_left (fun s (name,table) -> s @ get_table_format table name) [] l @@ -186,8 +187,8 @@ let create_indexes l = let drop_tables l = List.fold_left (fun s (name,table) -> s @ get_table_drop table name) [] l -let drop_indexes l = - List.fold_left (fun s (name,table) -> s @ get_index_drop table name) [] l +let drop_indexes l dtype dbd= + List.fold_left (fun s (name,table) -> s @ get_index_drop table name dtype dbd) [] l let rename_tables l = List.fold_left (fun s (o,n) -> s @ sprintf_rename_table o n) [] l @@ -201,20 +202,20 @@ let fill_hits refObj hits = hits refObj ] -let move_content (name1, tbl1) (name2, tbl2) buri = +let move_content (name1, tbl1) (name2, tbl2) buri dtype dbd = let escape s = - Pcre.replace ~pat:"([^\\\\])_" ~templ:"$1\\_" (HSql.escape s) + Pcre.replace ~pat:"([^\\\\])_" ~templ:"$1\\_" (HSql.escape dtype dbd s) in assert (tbl1 = tbl2); sprintf "INSERT INTRO %s SELECT * FROM %s WHERE source LIKE \"%s%%\";" name2 name1 (escape buri) -let direct_deps refObj uri = +let direct_deps refObj uri dtype dbd = sprintf "SELECT * FROM %s WHERE source = \"%s\";" - (HSql.escape refObj) (UriManager.string_of_uri uri) + (HSql.escape dtype dbd refObj) (UriManager.string_of_uri uri) -let inverse_deps refObj uri = +let inverse_deps refObj uri dtype dbd = sprintf "SELECT * FROM %s WHERE h_occurrence = \"%s\";" - (HSql.escape refObj) (UriManager.string_of_uri uri) + (HSql.escape dtype dbd refObj) (UriManager.string_of_uri uri)