ClientWindowNode
- Namespace:
PPDS.Dataverse.Query.Planning.Nodes - Assembly:
PPDS.Dataverse - Kind: Class
- Implements:
IQueryPlanNode
Summary
Computes window functions (ROW_NUMBER, RANK, DENSE_RANK, aggregate OVER) client-side. Materializes all input rows, partitions them, sorts within partitions, and computes window function values. All rows are emitted with additional window columns added.
Members
Constructors
ClientWindowNode(IQueryPlanNode input, IReadOnlyList<WindowDefinition> windows, int maxMaterializationRows)
ClientWindowNode(IQueryPlanNode input, IReadOnlyList<WindowDefinition> windows, int maxMaterializationRows)
Initializes a new instance of the PPDS.Dataverse.Query.Planning.Nodes.ClientWindowNode 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.
EstimatedRows
long EstimatedRows { get; }
Estimated row count (for cost-based decisions). -1 if unknown.
Input
IQueryPlanNode Input { get; }
The child node that produces input rows.
MaxMaterializationRows
int MaxMaterializationRows { get; }
Maximum rows to materialize before throwing. 0 = unlimited.
Windows
IReadOnlyList<WindowDefinition> Windows { get; }
The window function definitions to compute.