Skip to main content

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.