Skip to main content

LogicalOperator

Enum LogicalOperator 

Source
pub enum LogicalOperator {
Show 48 variants NodeScan(NodeScanOp), EdgeScan(EdgeScanOp), Expand(ExpandOp), Filter(FilterOp), Project(ProjectOp), Join(JoinOp), Aggregate(AggregateOp), Limit(LimitOp), Skip(SkipOp), Sort(SortOp), Distinct(DistinctOp), CreateNode(CreateNodeOp), CreateEdge(CreateEdgeOp), DeleteNode(DeleteNodeOp), DeleteEdge(DeleteEdgeOp), SetProperty(SetPropertyOp), AddLabel(AddLabelOp), RemoveLabel(RemoveLabelOp), Return(ReturnOp), Empty, TripleScan(TripleScanOp), Union(UnionOp), LeftJoin(LeftJoinOp), AntiJoin(AntiJoinOp), Bind(BindOp), Unwind(UnwindOp), MapCollect(MapCollectOp), Merge(MergeOp), MergeRelationship(MergeRelationshipOp), ShortestPath(ShortestPathOp), InsertTriple(InsertTripleOp), DeleteTriple(DeleteTripleOp), Modify(ModifyOp), ClearGraph(ClearGraphOp), CreateGraph(CreateGraphOp), DropGraph(DropGraphOp), LoadGraph(LoadGraphOp), CopyGraph(CopyGraphOp), MoveGraph(MoveGraphOp), AddGraph(AddGraphOp), VectorScan(VectorScanOp), VectorJoin(VectorJoinOp), Except(ExceptOp), Intersect(IntersectOp), Otherwise(OtherwiseOp), Apply(ApplyOp), CreatePropertyGraph(CreatePropertyGraphOp), CallProcedure(CallProcedureOp),
}
Expand description

A logical operator in the query plan.

Variants§

§

NodeScan(NodeScanOp)

Scan all nodes, optionally filtered by label.

§

EdgeScan(EdgeScanOp)

Scan all edges, optionally filtered by type.

§

Expand(ExpandOp)

Expand from nodes to neighbors via edges.

§

Filter(FilterOp)

Filter rows based on a predicate.

§

Project(ProjectOp)

Project specific columns.

§

Join(JoinOp)

Join two inputs.

§

Aggregate(AggregateOp)

Aggregate with grouping.

§

Limit(LimitOp)

Limit the number of results.

§

Skip(SkipOp)

Skip a number of results.

§

Sort(SortOp)

Sort results.

§

Distinct(DistinctOp)

Remove duplicate results.

§

CreateNode(CreateNodeOp)

Create a new node.

§

CreateEdge(CreateEdgeOp)

Create a new edge.

§

DeleteNode(DeleteNodeOp)

Delete a node.

§

DeleteEdge(DeleteEdgeOp)

Delete an edge.

§

SetProperty(SetPropertyOp)

Set properties on a node or edge.

§

AddLabel(AddLabelOp)

Add labels to a node.

§

RemoveLabel(RemoveLabelOp)

Remove labels from a node.

§

Return(ReturnOp)

Return results (terminal operator).

§

Empty

Empty result set.

§

TripleScan(TripleScanOp)

Scan RDF triples matching a pattern.

§

Union(UnionOp)

Union of multiple result sets.

§

LeftJoin(LeftJoinOp)

Left outer join for OPTIONAL patterns.

§

AntiJoin(AntiJoinOp)

Anti-join for MINUS patterns.

§

Bind(BindOp)

Bind a variable to an expression.

§

Unwind(UnwindOp)

Unwind a list into individual rows.

§

MapCollect(MapCollectOp)

Collect grouped key-value rows into a single Map value. Used for Gremlin groupCount() semantics.

§

Merge(MergeOp)

Merge a node pattern (match or create).

§

MergeRelationship(MergeRelationshipOp)

Merge a relationship pattern (match or create).

§

ShortestPath(ShortestPathOp)

Find shortest path between nodes.

§

InsertTriple(InsertTripleOp)

Insert RDF triples.

§

DeleteTriple(DeleteTripleOp)

Delete RDF triples.

§

Modify(ModifyOp)

SPARQL MODIFY operation (DELETE/INSERT WHERE). Evaluates WHERE once, applies DELETE templates, then INSERT templates.

§

ClearGraph(ClearGraphOp)

Clear a graph (remove all triples).

§

CreateGraph(CreateGraphOp)

Create a new named graph.

§

DropGraph(DropGraphOp)

Drop (remove) a named graph.

§

LoadGraph(LoadGraphOp)

Load data from a URL into a graph.

§

CopyGraph(CopyGraphOp)

Copy triples from one graph to another.

§

MoveGraph(MoveGraphOp)

Move triples from one graph to another.

§

AddGraph(AddGraphOp)

Add (merge) triples from one graph to another.

§

VectorScan(VectorScanOp)

Scan using vector similarity search.

§

VectorJoin(VectorJoinOp)

Join graph patterns with vector similarity search.

Computes vector distances between entities from the left input and a query vector, then joins with similarity scores. Useful for:

  • Filtering graph traversal results by vector similarity
  • Computing aggregated embeddings and finding similar entities
  • Combining multiple vector sources with graph structure
§

Except(ExceptOp)

Set difference: rows in left that are not in right.

§

Intersect(IntersectOp)

Set intersection: rows common to all inputs.

§

Otherwise(OtherwiseOp)

Fallback: use left result if non-empty, otherwise right.

§

Apply(ApplyOp)

Apply (lateral join): evaluate a subplan per input row.

§

CreatePropertyGraph(CreatePropertyGraphOp)

Define a property graph schema (SQL/PGQ DDL).

§

CallProcedure(CallProcedureOp)

Invoke a stored procedure (CALL … YIELD).

Implementations§

Source§

impl LogicalOperator

Source

pub fn has_mutations(&self) -> bool

Returns true if this operator or any of its children perform mutations.

Trait Implementations§

Source§

impl Clone for LogicalOperator

Source§

fn clone(&self) -> LogicalOperator

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for LogicalOperator

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more