aboutsummaryrefslogtreecommitdiffstats
path: root/lib/qualified_name.mli
diff options
context:
space:
mode:
Diffstat (limited to 'lib/qualified_name.mli')
-rw-r--r--lib/qualified_name.mli24
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