diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2026-05-11 23:10:27 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-11 23:10:27 -0300 |
| commit | e3d3e20dfea253de291d5b31059cd55c0eaabf02 (patch) | |
| tree | 82cf0d46ea3768171c8a87630cab5011d1ccf2a1 /lib/drl/executor.ml | |
| parent | 4fdf3392868c72ff4c33b70d165a177e97f2fece (diff) | |
| download | Sakura-e3d3e20dfea253de291d5b31059cd55c0eaabf02.tar.gz Sakura-e3d3e20dfea253de291d5b31059cd55c0eaabf02.zip | |
Multigroup unified reference for hierarchical access
Diffstat (limited to 'lib/drl/executor.ml')
| -rw-r--r-- | lib/drl/executor.ml | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/drl/executor.ml b/lib/drl/executor.ml index 1172553..41bdde5 100644 --- a/lib/drl/executor.ml +++ b/lib/drl/executor.ml @@ -24,22 +24,22 @@ module Make (Storage : Management.Physical.S) = struct let common = List.filter_map (fun (n, _) -> - if List.exists (fun (m, _) -> m = n) filter.Relation.schema then + if List.exists (fun (m, _) -> m = n) filter#schema then Some n else None) - source.Relation.schema + source#schema in - let source_attrs = List.map fst source.Relation.schema in + let source_attrs = List.map fst source#schema in Result.bind (wrap (Alg.equijoin storage common source filter)) (fun joined -> wrap (Alg.project storage source_attrs joined)) - let rec execute (storage : Storage.t) (db : Management.Database.t) - (q : Ast.query) : (Relation.t, error) Result.t = + let rec execute (storage : Storage.t) (db : Management.Multigroup.multigroup) + (q : Ast.query) : (Relation.ephemeral, error) Result.t = let ( >>= ) = Result.bind in match q with | Ast.Base name -> ( - match Ops.get_relation db ~name with + match Ops.get_relation db name with | None -> Error (RelationNotFound name) | Some rel -> Ok rel) | Ast.Const pairs -> |
