diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2026-03-08 20:36:51 -0300 |
|---|---|---|
| committer | Marcos Magueta <maguetamarcos@gmail.com> | 2026-03-08 20:36:51 -0300 |
| commit | 88dc315e454a695426becf928aef46668f9db0dc (patch) | |
| tree | 2f4cfa8487c80bbbb5976e37bc955351b70cafa4 /lib/management/database.ml | |
| parent | e10acd09faf53c636b653c4df034716545db5fab (diff) | |
| download | Sakura-88dc315e454a695426becf928aef46668f9db0dc.tar.gz Sakura-88dc315e454a695426becf928aef46668f9db0dc.zip | |
server
Diffstat (limited to 'lib/management/database.ml')
| -rw-r--r-- | lib/management/database.ml | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/management/database.ml b/lib/management/database.ml index e4705e5..08e03b8 100644 --- a/lib/management/database.ml +++ b/lib/management/database.ml @@ -72,7 +72,13 @@ let has_relation db name = (** Add a relation to the database *) let add_relation db ~(relation : Relation.t) = - let relation_hash = Option.get relation.hash in + let relation_hash = match relation.hash with + | Some h -> h + | None -> + let tree = Option.value relation.tree ~default:Merkle.empty in + Hashing.hash_relation ~name:relation.name ~schema:relation.schema ~tree + in + let relation = { relation with hash = Some relation_hash } in let tree = Merkle.insert relation_hash db.tree in let relations = RelationMap.add relation.name relation db.relations in update_state db ~relations ~tree |
