From fb0ade9daf1e9d1cd0a29dd1abe87468ab03a174 Mon Sep 17 00:00:00 2001 From: Marcos Magueta Date: Sat, 22 Mar 2025 14:00:01 -0300 Subject: add relation type and format --- lib/planner.ml | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) (limited to 'lib/planner.ml') diff --git a/lib/planner.ml b/lib/planner.ml index 0d333f1..0470092 100644 --- a/lib/planner.ml +++ b/lib/planner.ml @@ -1,28 +1,33 @@ module type Action = sig (* Names of the attributes & The tuples *) type tuples = string list * bytes list list - val execute: tuples -> int + + val execute : tuples -> int end module Scan = struct open Disk - let execute commit locations (entity: string) = - Executor.read commit locations ~filename:("schema~" ^ entity) - |> function - | Some binary -> - begin - let relation = - Result.map_error (fun _ -> "Failed to deserialize relation from binary format.") - @@ Data_encoding.Binary.of_bytes Schema.Protocol.relation_encoding (Bytes.concat Bytes.empty binary) in - match relation with - | Ok relation -> - begin - let _attrs = List.map (fun (a: Schema.Protocol.attribute) -> relation.name ^ "/" ^ a.name) relation.attributes in - Executor.read commit locations ~filename:("schema~" ^ entity) - end - | Error err -> failwith err - end - | None -> failwith "" + + let execute commit locations (entity : string) = + Executor.read commit locations ~filename:("schema~" ^ entity) |> function + | Some binary -> ( + let relation = + Result.map_error (fun _ -> + "Failed to deserialize relation from binary format.") + @@ Data_encoding.Binary.of_bytes Schema.Protocol.relation_encoding + (Bytes.concat Bytes.empty binary) + in + match relation with + | Ok relation -> + let _attrs = + List.map + (fun (a : Schema.Protocol.attribute) -> + relation.name ^ "/" ^ a.name) + relation.attributes + in + Executor.read commit locations ~filename:("schema~" ^ entity) + | Error err -> failwith err) + | None -> failwith "" end module Join = struct -- cgit v1.2.3