Skip to main content

uni_query/query/df_graph/
mutation_remove.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright 2024-2026 Dragonscale Team
3
4//! DataFusion ExecutionPlan for Cypher REMOVE clauses.
5//!
6//! Thin wrapper around [`MutationExec`] with a typed constructor that builds
7//! the correct [`MutationKind::Remove`] variant.
8
9use super::mutation_common::{MutationContext, MutationExec, MutationKind};
10use datafusion::physical_plan::ExecutionPlan;
11use std::sync::Arc;
12use uni_cypher::ast::RemoveItem;
13
14/// Type alias for a REMOVE mutation execution plan.
15pub type MutationRemoveExec = MutationExec;
16
17/// Create a new `MutationExec` configured for a REMOVE clause.
18pub fn new_remove_exec(
19    input: Arc<dyn ExecutionPlan>,
20    items: Vec<RemoveItem>,
21    mutation_ctx: Arc<MutationContext>,
22) -> MutationRemoveExec {
23    MutationExec::new(
24        input,
25        MutationKind::Remove { items },
26        "MutationRemoveExec",
27        mutation_ctx,
28    )
29}