use crate::define_logical_plan_node;
use crate::define_logical_plan_node_with_deps;
use crate::planning::plan::core::nodes::data_modification::{
CopyTarget, EdgeDeleteInfo, EdgeInsertInfo, IndexDeleteInfo, UpdateTargetType,
VertexDeleteInfo, VertexInsertInfo,
};
define_logical_plan_node! {
pub struct LogicalInsertVerticesNode {
info: VertexInsertInfo,
}
enum: InsertVertices
input: ZeroInputNode
}
define_logical_plan_node! {
pub struct LogicalInsertEdgesNode {
info: EdgeInsertInfo,
}
enum: InsertEdges
input: ZeroInputNode
}
define_logical_plan_node! {
pub struct LogicalUpdateNode {
info: UpdateTargetType,
}
enum: Update
input: ZeroInputNode
}
define_logical_plan_node! {
pub struct LogicalDeleteVerticesNode {
info: VertexDeleteInfo,
}
enum: DeleteVertices
input: ZeroInputNode
}
define_logical_plan_node! {
pub struct LogicalDeleteEdgesNode {
info: EdgeDeleteInfo,
}
enum: DeleteEdges
input: ZeroInputNode
}
define_logical_plan_node! {
pub struct LogicalDeleteIndexNode {
info: IndexDeleteInfo,
}
enum: DeleteIndex
input: ZeroInputNode
}
define_logical_plan_node_with_deps! {
pub struct LogicalPipeDeleteVerticesNode {
info: VertexDeleteInfo,
}
enum: PipeDeleteVertices
input: SingleInputNode
}
define_logical_plan_node_with_deps! {
pub struct LogicalPipeDeleteEdgesNode {
info: EdgeDeleteInfo,
}
enum: PipeDeleteEdges
input: SingleInputNode
}
define_logical_plan_node! {
pub struct LogicalCopyFromNode {
space_name: String,
target: CopyTarget,
file_paths: Vec<String>,
by_column: bool,
header: bool,
delimiter: char,
batch_size: usize,
}
enum: CopyFrom
input: ZeroInputNode
}
define_logical_plan_node! {
pub struct LogicalCopyToNode {
space_name: String,
target: CopyTarget,
file_path: String,
header: bool,
delimiter: char,
}
enum: CopyTo
input: ZeroInputNode
}