Skip to main content

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).