]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/metadata/sqlStatements.ml
added DROP statements to sqlStatements
[helm.git] / helm / ocaml / metadata / sqlStatements.ml
index 0c51feba6faef4fd405282566e4c6fd9e1f1fa3d..897e154891ca0c98321f8838350469aa597ee3f3 100644 (file)
@@ -4,49 +4,61 @@ type tbl = [ `RefObj| `RefSort| `RefRel| `ObjectName| `Owners| `Count]
 
 (* TABLES *)
 
-let sprintf_refObj_format name = [sprintf "
-CREATE TABLE %s (
+let sprintf_refObj_format name = [
+sprintf "CREATE TABLE %s (
     source varchar(255) binary not null,
     h_occurrence varchar(255) binary not null,
     h_position varchar(255) binary not null,
     h_depth integer
 );" name]
 
-let sprintf_refSort_format name = [sprintf "
-CREATE TABLE %s (
+let sprintf_refSort_format name = [
+sprintf "CREATE TABLE %s (
     source varchar(255) binary not null,
     h_position varchar(255) binary not null,
     h_depth integer not null,
     h_sort varchar(255) binary not null
 );" name]
 
-let sprintf_refRel_format name = [sprintf "
-CREATE TABLE %s (
+let sprintf_refRel_format name = [
+sprintf "CREATE TABLE %s (
     source varchar(255) binary not null,
     h_position varchar(255) binary not null,
     h_depth integer not null
 );" name]
 
-let sprintf_objectName_format name = [sprintf "
-CREATE TABLE %s (
+let sprintf_objectName_format name = [
+sprintf "CREATE TABLE %s (
     source varchar(255) binary not null,
     value varchar(255) binary not null
 );" name]
 
-let sprintf_owners_format name = [sprintf "
-CREATE TABLE %s (
+let sprintf_owners_format name = [
+sprintf "CREATE TABLE %s (
     source varchar(255) binary not null,
     owner varchar(255) binary not null
 );" name]
 
-let sprintf_count_format name = [sprintf "
-CREATE TABLE %s (
+let sprintf_count_format name = [
+sprintf "CREATE TABLE %s (
     source varchar(255) binary unique not null,
     conclusion smallint(6) not null,
     hypothesis smallint(6) not null,
     statement smallint(6) not null
 );" name]
 
+let sprintf_refObj_drop name = [sprintf "DROP TABLE %s;" name]
+
+let sprintf_refSort_drop name = [sprintf "DROP TABLE %s;" name]
+
+let sprintf_refRel_drop name = [sprintf "DROP TABLE %s;" name]
+
+let sprintf_objectName_drop name = [sprintf "DROP TABLE %s;" name]
+
+let sprintf_owners_drop name = [sprintf "DROP TABLE %s;" name]
+
+let sprintf_count_drop name = [sprintf "DROP TABLE %s;" name]
+
 (* INDEXES *)
 
 let sprintf_refObj_index name = [
@@ -71,9 +83,32 @@ sprintf "CREATE INDEX %s_conclusion ON %s (conclusion);" name name;
 sprintf "CREATE INDEX %s_hypothesis ON %s (hypothesis);" name name;
 sprintf "CREATE INDEX %s_statement ON %s (statement);" name name]
  
-
 let sprintf_refRel_index name = []
 
+let sprintf_refObj_index_drop name = [
+sprintf "DROP INDEX %s_source ON %s;" name name ;
+sprintf "DROP INDEX %s_target ON %s;" name name ;
+sprintf "DROP INDEX %s_position ON %s;" name name ]
+
+let sprintf_refSort_index_drop name = [sprintf "
+DROP INDEX %s_source ON %s;
+" name name]
+
+let sprintf_objectName_index_drop name = [
+sprintf " DROP INDEX %s_value ON %s;" name name]
+
+let sprintf_owners_index_drop name = [
+sprintf "DROP INDEX %s_owner ON %s;" name name ;
+sprintf "DROP INDEX %s_source ON %s;" name name] 
+
+let sprintf_count_index_drop name = [
+sprintf "DROP INDEX %s_source ON %s;" name name;
+sprintf "DROP INDEX %s_conclusion ON %s;" name name;
+sprintf "DROP INDEX %s_hypothesis ON %s;" name name;
+sprintf "DROP INDEX %s_statement ON %s;" name name]
+let sprintf_refRel_index_drop name = []
+
 (* FUNCTIONS *)
 
 let get_table_format t named =
@@ -93,10 +128,35 @@ let get_index_format t named =
   | `ObjectName -> sprintf_objectName_index named
   | `Owners -> sprintf_owners_index named
   | `Count -> sprintf_count_index named
+
+let get_table_drop t named =
+  match t with
+  | `RefObj -> sprintf_refObj_drop named
+  | `RefSort -> sprintf_refSort_drop named
+  | `RefRel -> sprintf_refRel_drop named
+  | `ObjectName -> sprintf_objectName_drop named
+  | `Owners -> sprintf_owners_drop named
+  | `Count -> sprintf_count_drop named
+
+let get_index_drop t named =
+  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
+  | `Owners -> sprintf_owners_index_drop named
+  | `Count -> sprintf_count_index_drop named
   
 let create_tables l =
   List.fold_left (fun s (name,table) ->  s @ get_table_format table name) [] l
 
 let create_indexes l =
   List.fold_left (fun s (name,table) ->  s @ get_index_format table name) [] 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
+