diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json
index 5aeda85..6113219 100644
--- a/dev/.documenter-siteinfo.json
+++ b/dev/.documenter-siteinfo.json
@@ -1 +1 @@
-{"documenter":{"julia_version":"1.10.3","generation_timestamp":"2024-05-20T19:02:56","documenter_version":"1.4.1"}}
\ No newline at end of file
+{"documenter":{"julia_version":"1.10.3","generation_timestamp":"2024-05-22T10:18:00","documenter_version":"1.4.1"}}
\ No newline at end of file
diff --git a/dev/api/BitemporalPostgres.DDL/index.html b/dev/api/BitemporalPostgres.DDL/index.html
index 79fb6cb..55d47e1 100644
--- a/dev/api/BitemporalPostgres.DDL/index.html
+++ b/dev/api/BitemporalPostgres.DDL/index.html
@@ -1,2 +1,2 @@
-
createvalidityintervals_constraints() Install the GIST constraint that prevents creation of overlapping intervals, i.e. that at most one version is valid for a given 2 dimensional point in transaction and reference time
createversionstrigger() propagate skalars refvalidfrom and refinvalidfrom to range ref_valid skalars are needed enable foreign key constraints, which in POSTGRES cannot be declared onto bounds of intervals directly.
createvalidityintervals_constraints() Install the GIST constraint that prevents creation of overlapping intervals, i.e. that at most one version is valid for a given 2 dimensional point in transaction and reference time
createversionstrigger() propagate skalars refvalidfrom and refinvalidfrom to range ref_valid skalars are needed enable foreign key constraints, which in POSTGRES cannot be declared onto bounds of intervals directly.
findcomponentrevision(t::Type{T},refcomponent::DbId,refversion::DbId,)::Vector{T} where {T<:ComponentRevision} retrieves the version_id of a bitemporal history asof tsdb as per tsw
findversion(refhistory::DbId, tsdb::ZonedDateTime, tsw::ZonedDateTime, committed::Integer=1)::DbId retrieves the versionid of a bitemporal history asof tsdb as per tsw
function get_revisionIfAny( ctype::Type{CT}, rtype::Type{RT}, hid::DbId, vid::DbId, )::Vector{RT} where {CT<:Component,RT<:ComponentRevision} retrieves the revision of the unique component of type CT in history hid if one exists as of version vid
An optional (unique) component may have a revision for a version later as vid. In such cases a component w/o valid revision is itself valid, just to be ignored for the current version.
function get_revisionIfAny(rtype::Type{RT}, hid::DbId, vid::DbId, )::Vector{RT} where {RT<:ComponentRevision} retrieves the revision of component cid if one exists as of version vid
An optional component may have a revision for a version later as vid. In such cases a component w/o valid revision is itself valid, just to be ignored for the current version.
gettypeofcomponent(component::T)::Type{R} where {T<:ComponentRevision,R<:Component} returns the actual subtype of Component that fits the actual type of ComponentRevision
gettypeofrevision(component::T)::Type{R} where {T<:Component,R<:ComponentRevision} returns the actual subtype of ComponentRevision that fits the actual type of Component
findcomponentrevision(t::Type{T},refcomponent::DbId,refversion::DbId,)::Vector{T} where {T<:ComponentRevision} retrieves the version_id of a bitemporal history asof tsdb as per tsw
findversion(refhistory::DbId, tsdb::ZonedDateTime, tsw::ZonedDateTime, committed::Integer=1)::DbId retrieves the versionid of a bitemporal history asof tsdb as per tsw
function get_revisionIfAny( ctype::Type{CT}, rtype::Type{RT}, hid::DbId, vid::DbId, )::Vector{RT} where {CT<:Component,RT<:ComponentRevision} retrieves the revision of the unique component of type CT in history hid if one exists as of version vid
An optional (unique) component may have a revision for a version later as vid. In such cases a component w/o valid revision is itself valid, just to be ignored for the current version.
function get_revisionIfAny(rtype::Type{RT}, hid::DbId, vid::DbId, )::Vector{RT} where {RT<:ComponentRevision} retrieves the revision of component cid if one exists as of version vid
An optional component may have a revision for a version later as vid. In such cases a component w/o valid revision is itself valid, just to be ignored for the current version.
gettypeofcomponent(component::T)::Type{R} where {T<:ComponentRevision,R<:Component} returns the actual subtype of Component that fits the actual type of ComponentRevision
gettypeofrevision(component::T)::Type{R} where {T<:Component,R<:ComponentRevision} returns the actual subtype of ComponentRevision that fits the actual type of Component
builds a forest of version nodes where
* eventual child node vectors denote mutations which have been retrospectively corrected by their predecessor
-see: Theory: Textual representation of mutation histories
function mktree(version::Integer, vidsDict::Dict{Integer,Integer}, treeDict::Dict{Integer,Vector{Integer}})::BitemporalPostgres.Node
builds a tree of versipon nodes with child node vectors denoting
mutations which have been retrospectively corrected by their parent = predecessor
-see: Theory: Textual representation of mutation histories
This document was generated with Documenter.jl version 1.4.1 on Wednesday 22 May 2024. Using Julia version 1.10.3.
diff --git a/dev/api/theory/index.html b/dev/api/theory/index.html
index 7e32a4f..21e02b6 100644
--- a/dev/api/theory/index.html
+++ b/dev/api/theory/index.html
@@ -51,4 +51,4 @@
JOIN PART_REVISION r ON r.ref_PART = p.id AND r.validity_range @> v.id
WHERE h.id = :history_id and p.id = :part_id AND i.tsr_world @> TIMESTAMPTZ:ts_world and i.tsr_db @> TIMESTAMPTZ :ts_db
POSTGRES also provides uniqueness constraints for GIST-indices, so that we can guarantee for every history, that its versions validity_intervals are unique, that is non overlapping. Inserting an overlapping interval fails constraint violation exception.
ADD CONSTRAINT bitemp EXCLUDE USING GIST (ref_version WITH =, is_committed WITH =, tsrworld WITH &&, tsrdb WITH &&)`
-