aboutsummaryrefslogtreecommitdiffstats
path: root/include/Types.h
diff options
context:
space:
mode:
authorMarcos Magueta <maguetamarcos@gmail.com>2026-05-10 22:59:48 -0300
committerMarcos Magueta <maguetamarcos@gmail.com>2026-05-10 22:59:48 -0300
commit7d0fdcf2048bc736c82f84e92dcfc68b3d6ac45c (patch)
treea88d6d7cd3886c24bc48a7c4710db1eeffdd0e9a /include/Types.h
parentfcfbc5961017e3679c56d9d285a2a3d4d03f0f93 (diff)
downloadRNT-7d0fdcf2048bc736c82f84e92dcfc68b3d6ac45c.tar.gz
RNT-7d0fdcf2048bc736c82f84e92dcfc68b3d6ac45c.zip
add nested loop join strategy to VM and tests
Diffstat (limited to 'include/Types.h')
-rw-r--r--include/Types.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/include/Types.h b/include/Types.h
index c6f4b9f..3e38829 100644
--- a/include/Types.h
+++ b/include/Types.h
@@ -12,12 +12,19 @@
enum OBJECT_TYPE {
/** A database snapshot grouping relations and tuples. */
MULTIGROUP,
- /** A relation object. */
+ /** A relation object backed by physical storage. */
RELATION,
/** An attribute object (schema metadata). */
ATTRIBUTE,
/** A transaction object. */
- TRANSACTION
+ TRANSACTION,
+ /**
+ * A relation whose tuples are produced on demand by a generator function
+ * rather than read from physical storage. Cardinality may be finite (e.g.
+ * a projected stored relation) or AlephZero (e.g. the eq builtin). The
+ * object_type for this label must be an ephemeral_object_type.
+ */
+ EPHEMERAL_RELATION
};
/** @brief Operations that may be supported by an object type. */
@@ -76,6 +83,9 @@ namespace nt
void Reset() { position_ = 0; }
+ /** @brief Direct read-only access to all attributes without affecting position. */
+ const std::vector<Attribute>& attrs() const { return attributes_; }
+
private:
std::vector<Attribute> attributes_;
size_t position_ = 0;