38 static constexpr std::size_t PAGE_SIZE = 1;
85 std::vector<std::string>
args;
86 std::vector<Tuple> page;
87 std::size_t page_position = 0;
88 std::size_t fetch_offset = 0;
89 bool exhausted =
false;
Defines symbol visibility for the Relational NT public API.
Declares handle allocation and release for authorized object access.
Abstract KV storage backend consumed by CursorManager and Merkle.
Declares monitoring, pinning, cleanup, and contention operations.
Declares the registry responsible for runtime-managed database objects.
Shared enum types and core data types used by the runtime.
CursorManager(IStorageBackend &backend, LifecycleManager *lifecycles=nullptr, ObjectManager *objects=nullptr)
Constructs a CursorManager.
Definition CursorManager.cpp:7
Tuple * Next(cursor *cursor)
Pulls the next tuple from the cursor.
Definition CursorManager.cpp:97
cursor * Open(HandlerManager::handle *handle, const std::string &merkle_root="")
Opens a cursor on the relation referenced by the handle.
Definition CursorManager.cpp:46
void Close(cursor *cursor)
Closes the cursor and releases its resources.
Definition CursorManager.cpp:124
Contract between CursorManager / Merkle and a physical storage engine.
Definition IStorageBackend.h:31
Manages runtime lifecycle concerns for registry objects.
Definition LifecycleManager.h:25
Owns the registry used to locate and reference database objects.
Definition ObjectManager.h:27
A single row of data streamed lazily from the cursor layer.
Definition Types.h:136
Contains the Relational NT runtime managers and API facade.
Active scan state for a single relation.
Definition CursorManager.h:74
std::string merkle_root
Hex hash of the relation's Merkle B-tree root node.
Definition CursorManager.h:79
bool is_ephemeral
True for EPHEMERAL_RELATION cursors; selects the generator-driven page fetch path instead of Merkle B...
Definition CursorManager.h:94
ObjectManager::registry * pinned_snapshot
Borrowed pointer to the snapshot the cursor is pinning.
Definition CursorManager.h:109
ObjectManager::ephemeral_object_type::Generator generator
Generator function for ephemeral cursors.
Definition CursorManager.h:102
std::vector< std::string > args
Bound argument values for EPHEMERAL_RELATION cursors.
Definition CursorManager.h:85
Represents authorized access to an object in the registry.
Definition HandlerManager.h:54
std::function< std::vector< Tuple >( const std::vector< std::string > &args, std::size_t offset, std::size_t limit)> Generator
Produces a page of tuples for the given bound arguments.
Definition ObjectManager.h:234
Node in the object registry.
Definition ObjectManager.h:285