Expand description
uni.create.vNode / uni.create.vEdge — ephemeral (transient,
in-query) graph entities. The APOC apoc.create.vNode /
apoc.create.vRelationship analogues from proposal §4.13.1.
Ephemeral identities are minted from
QueryProcedureHost::allocate_transient_id() and wrapped in
Vid::ephemeral / Eid::ephemeral so their high bit (M5g
EPHEMERAL_BIT) is set. Storage write entry points
(execute_set_items_locked, execute_delete_vertex,
execute_delete_edge_from_map) refuse any id with that bit set,
surfacing UniError::EphemeralWriteAttempt.
Yield shape (M5g):
uni.create.vNodedeclares a single canonicalvidInt64 field on its signature, tagged with_yield_kind = node_vid_source. That metadata tag opts the procedure into the planner’s node-shaped YIELD expansion: when the caller writesYIELD node, the planner rewrites the column projection to the canonical Node tuple (<n>._vid,<n>,<n>._labels,<n>.<prop>…). This is the same surface area asuni.vector.queryand friends — downstream CypherWITH node ... node.fooaccess works out of the box because the property columns are physically present on the row.uni.create.vEdgedeclares a singleedgefield whose Arrow type isStruct(_eid, _type_name, _src, _dst, properties)— the canonical edge-struct shape used by path materialization (df_graph::common::edge_struct_fields). Unit tests assert the struct directly; downstream edge-property access is out of scope for M5g (the round-trip target wasnode.foo, notrel.foo).
Structs§
Functions§
- register_
into - Register every
uni.create.v*procedure intor.