DmlExecuteNode
- Namespace:
PPDS.Dataverse.Query.Planning.Nodes - Assembly:
PPDS.Dataverse - Kind: Class
- Implements:
IQueryPlanNode
Summary
Executes DML operations (INSERT, UPDATE, DELETE) using BulkOperationExecutor. Returns a single row with the affected row count.
Members
Methods
Delete
DmlExecuteNode Delete(string entityLogicalName, IQueryPlanNode sourceNode, int rowCap)
Creates a DmlExecuteNode for DELETE.
ExecuteAsync
IAsyncEnumerable<QueryRow> ExecuteAsync(QueryPlanContext context, CancellationToken cancellationToken)
Execute this node, producing rows.
InsertSelect
DmlExecuteNode InsertSelect(string entityLogicalName, IReadOnlyList<string> columns, IQueryPlanNode sourceNode, IReadOnlyList<string> sourceColumns, int rowCap)
Creates a DmlExecuteNode for INSERT SELECT.
InsertValues
DmlExecuteNode InsertValues(string entityLogicalName, IReadOnlyList<string> columns, IReadOnlyList<IReadOnlyList<CompiledScalarExpression>> valueRows, int rowCap)
Creates a DmlExecuteNode for INSERT VALUES.
Update
DmlExecuteNode Update(string entityLogicalName, IQueryPlanNode sourceNode, IReadOnlyList<CompiledSetClause> setClauses, int rowCap)
Creates a DmlExecuteNode for UPDATE.
Properties
Children
IReadOnlyList<IQueryPlanNode> Children { get; }
Child nodes (inputs to this operator).
Description
string Description { get; }
Human-readable description for EXPLAIN output.
EntityLogicalName
string EntityLogicalName { get; }
The target entity logical name.
EstimatedRows
long EstimatedRows { get; }
Estimated row count (for cost-based decisions). -1 if unknown.
InsertColumns
IReadOnlyList<string> InsertColumns { get; }
Column names for INSERT statements.
InsertValueRows
IReadOnlyList<IReadOnlyList<CompiledScalarExpression>> InsertValueRows { get; }
Value rows for INSERT VALUES statements (compiled delegates).
Operation
DmlOperation Operation { get; }
The type of DML operation.
RowCap
int RowCap { get; }
Row cap from DML safety guard.
SetClauses
IReadOnlyList<CompiledSetClause> SetClauses { get; }
SET clauses for UPDATE statements (compiled delegates).
SourceColumns
IReadOnlyList<string> SourceColumns { get; }
Source column names for INSERT...SELECT ordinal mapping.
SourceNode
IQueryPlanNode SourceNode { get; }
Source node that produces rows (for INSERT...SELECT, UPDATE, DELETE).