Relationship-scope analogue of PointIndexSpec. Same
single-property shape; the index lives under a separate CF so
node and edge spatial entries can’t alias and the two can be
dropped independently.
Relationship-scope analogue of PropertyIndexSpec. Same
properties: Vec<String> shape, same composite semantics, same
byte-level on-disk compatibility for length-1 entries.
Declarative spec for a point / spatial index on a single
Property::Point property. A point index accelerates bounding-box
containment and distance-radius queries via a Z-order (Morton)
cell quantizer — points map to sortable u64 cell IDs, so bbox
queries reduce to a cell-range scan plus a per-row precision
filter.
Declarative spec for a property constraint. Unlike
PropertyIndexSpec, constraints carry a user-facing name —
DROP CONSTRAINT takes a name, not a (scope, properties, kind)
tuple, so the registry keys on name for lookup. When the user
omits the name, StorageEngine::create_property_constraint fills
in a deterministic one derived from the other fields.
Declarative spec for a single-property equality index. An index is
uniquely identified by its (label, properties) pair — users don’t
name them, which keeps DROP/SHOW behavior simple and matches the
way the planner looks them up when deciding whether to emit
IndexSeek.
Operator-tunable rocksdb options. Defaults match what
RocksDbStorageEngine::open applied historically (modest
max_open_files, capped LOG retention) — production
deployments override via the [storage] config section.
Scope a constraint applies to. Node(label) covers every node
carrying the label; Relationship(edge_type) covers every edge
with the given type. Kept as an enum rather than a plain string
so future scope extensions (e.g. specific pattern shapes) land
additively.
A single mutation that can be combined with others into an atomic
StorageEngine::apply_batch call. Backend-neutral: the enum only
names what to do to the graph, not how the backend persists it.
Lets callers commit a sequence of mutations as one atomic write —
useful for giving multi-write Cypher queries crash-atomic local
persistence.
Kind of single-property constraint. Unique comes from
REQUIRE n.prop IS UNIQUE, NotNull from REQUIRE n.prop IS NOT NULL, and PropertyType(t) from REQUIRE n.prop IS :: <TYPE>.
PropertyType carries the target type so a single constraint-kind
enum covers all four flavours without blowing up into one variant
per type.
Property types recognised by IS :: <TYPE>. Covers the four
primitive Cypher types used in practice; temporal / spatial / list
/ map type constraints are a follow-up.