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