Relational NT
A relational database kernel shaped around NT-style object management.
Loading...
Searching...
No Matches
nt::ObjectManager::EphemeralRelation Class Reference

Registry object representing an ephemeral relation. More...

#include <ObjectManager.h>

Inheritance diagram for nt::ObjectManager::EphemeralRelation:
nt::ObjectManager::IObject

Public Attributes

std::string merkle_root
std::vector< std::string > dependencies

Detailed Description

Registry object representing an ephemeral relation.

Ephemeral relations have no tuple storage of their own; tuples are produced on demand by the generator function declared in the ephemeral_object_type descriptor. They compose into a multigroup's tree on equal footing with stored relations — only merkle_root participates in the Merkle<std::string> entry for this relation, regardless of how that root was derived.

merkle_root is the SHA256 hex digest derived from the generator's identity, the current schema, and the merkle_roots of the declared base relations. Any mutation to structure or rebinding of a base produces a new merkle_root, which then propagates into a new multigroup snapshot exactly like a tuple insertion in a stored relation.

dependencies lists the logical paths of base relations this ephemeral relation is defined atop of. The lifecycle manager Pins each entry while this object is alive, preventing GC of a stored relation that still backs an ephemeral one. The dependency list is also the foundation for attribute-level provenance tracking added later.

The merkle_root composition function is nt::Ephemeral::ComposeRoot (SHA256 over generator identity + schema + sorted base merkle_roots); nt::Ephemeral::Register is the writer path that populates both fields. See include/EphemeralRelation.h.


The documentation for this class was generated from the following file: