diff options
Diffstat (limited to 'lib/sql/hashs.ml')
-rw-r--r-- | lib/sql/hashs.ml | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/sql/hashs.ml b/lib/sql/hashs.ml index eced2b4..4df8ca1 100644 --- a/lib/sql/hashs.ml +++ b/lib/sql/hashs.ml @@ -5,7 +5,6 @@ before inserting the values. *) open StdLabels -module Table = ImportDataTypes.Table let ( let* ) = Result.bind @@ -21,16 +20,21 @@ let evaluate : ImportAnalyser.Dependency.t -> int = (* Extract all the references to this table *) let keys = List.map (ImportAnalyser.Dependency.keys table) - ~f:(fun ImportAnalyser.Dependency.{ name; columns; expression } -> + ~f:(fun + ImportAnalyser.Dependency.{ name; columns; expression; filters } -> + (* It’s better to explicitly ignore the fields we want to exclude than + using the pattern _ in the fuction definition. + + This way, adding a new field in the type will raise a compilation error. *) ignore columns; - (name, expression)) + (name, expression, filters)) in Hashtbl.hash keys let insert : 'a T.t -> ImportAnalyser.Dependency.t -> unit T.result = fun db table -> let source = ImportAnalyser.Dependency.table table in - let table_name = Table.name source in + let table_name = ImportDataTypes.Table.name source in let hash = evaluate table in @@ -56,7 +60,7 @@ let insert : 'a T.t -> ImportAnalyser.Dependency.t -> unit T.result = let query : 'a T.t -> ImportDataTypes.Table.t -> int option T.result = fun db table -> - let table_name = Table.name table in + let table_name = ImportDataTypes.Table.name table in let query = String.concat ~sep:"" [ "SELECT hash FROM 'hashes' WHERE hashes.'table' = '"; table_name; "'" ] |