diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2026-04-27 13:00:30 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-04-27 13:00:30 -0300 |
| commit | 56492ad5f6f09d8c9f337d42803b64d1b9f0668b (patch) | |
| tree | 0a41825d319fe47e037e2e30ed515c3c2d9b0d7d /lib/qualified_name.mli | |
| parent | 12f170f438f5909511da2f26c5d33a85acc1fe64 (diff) | |
| download | Sakura-56492ad5f6f09d8c9f337d42803b64d1b9f0668b.tar.gz Sakura-56492ad5f6f09d8c9f337d42803b64d1b9f0668b.zip | |
Introduce Multigroups (#65)
Diffstat (limited to 'lib/qualified_name.mli')
| -rw-r--r-- | lib/qualified_name.mli | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/qualified_name.mli b/lib/qualified_name.mli new file mode 100644 index 0000000..9bee0c9 --- /dev/null +++ b/lib/qualified_name.mli @@ -0,0 +1,24 @@ +(** Fully qualified relation name: [multigroup:schema:relation]. + + Unqualified names fill in defaults: empty multigroup, ["public"] schema. *) + +type t = { + multigroup : string; + schema : string; + relation : string; +} + +val default_schema : string + +(** Split on [:] with default filling. + - ["rel"] -> multigroup="", schema="public", relation="rel" + - ["s:rel"] -> multigroup="", schema="s", relation="rel" + - ["mg:s:rel"] -> multigroup="mg", schema="s", relation="rel" *) +val parse : string -> t + +val make : ?multigroup:string -> ?schema:string -> string -> t +val to_string : t -> string + +(** Composite key for [RelationMap] lookup within a single database: + ["schema:relation"]. *) +val to_key : t -> string |
