Skip to main content

TdsScanNode

  • Namespace: PPDS.Dataverse.Query.Planning.Nodes
  • Assembly: PPDS.Dataverse
  • Kind: Class
  • Implements: IQueryPlanNode

Summary

Executes a SQL query directly against the Dataverse TDS Endpoint. Leaf node in the execution plan tree — bypasses FetchXML transpilation and sends the original SQL over the TDS wire protocol (port 5558).

Members

Constructors

TdsScanNode(string sql, string entityLogicalName, ITdsQueryExecutor tdsExecutor, Nullable<int> maxRows)

TdsScanNode(string sql, string entityLogicalName, ITdsQueryExecutor tdsExecutor, Nullable<int> maxRows)

Initializes a new instance of the PPDS.Dataverse.Query.Planning.Nodes.TdsScanNode class.

Methods

ExecuteAsync

IAsyncEnumerable<QueryRow> ExecuteAsync(QueryPlanContext context, CancellationToken cancellationToken)

Execute this node, producing rows.

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 entity logical name being queried.

EstimatedRows

long EstimatedRows { get; }

Estimated row count (for cost-based decisions). -1 if unknown.

MaxRows

Nullable<int> MaxRows { get; }

Maximum rows to return, if any.

Sql

string Sql { get; }

The original SQL query to execute via TDS.

TdsExecutor

ITdsQueryExecutor TdsExecutor { get; }

The TDS query executor for SQL execution.