QueryPlanContext
- Namespace:
PPDS.Dataverse.Query.Planning - Assembly:
PPDS.Dataverse - Kind: Class
Summary
Shared context for plan execution: pool, cancellation, statistics.
Members
Constructors
QueryPlanContext(IQueryExecutor queryExecutor, CancellationToken cancellationToken, QueryPlanStatistics statistics, IQueryProgressReporter progressReporter, ITdsQueryExecutor tdsQueryExecutor, IMetadataQueryExecutor metadataQueryExecutor, IBulkOperationExecutor bulkOperationExecutor, VariableScope variableScope, int maxMaterializationRows, QueryExecutionOptions executionOptions, ICachedMetadataProvider metadataProvider)
QueryPlanContext(IQueryExecutor queryExecutor, CancellationToken cancellationToken, QueryPlanStatistics statistics, IQueryProgressReporter progressReporter, ITdsQueryExecutor tdsQueryExecutor, IMetadataQueryExecutor metadataQueryExecutor, IBulkOperationExecutor bulkOperationExecutor, VariableScope variableScope, int maxMaterializationRows, QueryExecutionOptions executionOptions, ICachedMetadataProvider metadataProvider)
Initializes a new instance of the PPDS.Dataverse.Query.Planning.QueryPlanContext class.
Properties
BulkOperationExecutor
IBulkOperationExecutor BulkOperationExecutor { get; }
Optional bulk operation executor for DML operations (INSERT, UPDATE, DELETE).
CancellationToken
CancellationToken CancellationToken { get; }
Cancellation token for the entire plan execution.
ExecutionOptions
QueryExecutionOptions ExecutionOptions { get; }
Per-query execution options (bypass plugins/flows). Null means no overrides.
Consumed by PPDS.Dataverse.Query.Planning.Nodes.FetchXmlScanNode
when calling PPDS.Dataverse.Query.IQueryExecutor.ExecuteFetchXmlAsync(System.String,System.Nullable<System.Int32>,System.String,System.Boolean,PPDS.Dataverse.Query.QueryExecutionOptions,System.Threading.CancellationToken).
MaxMaterializationRows
int MaxMaterializationRows { get; }
Maximum rows a node may materialize in memory (e.g., for sorting or aggregation). Default is 500,000. Set to 0 for unlimited.
MetadataProvider
ICachedMetadataProvider MetadataProvider { get; }
Optional cached metadata provider. When supplied, DML nodes use this to coerce
SQL literals into Dataverse SDK types (EntityReference, OptionSetValue, etc.)
for lookup, choice, and money attributes. Null disables coercion (raw CLR values are
passed through to Entity[attr]).
MetadataQueryExecutor
IMetadataQueryExecutor MetadataQueryExecutor { get; }
Optional metadata query executor for metadata virtual tables (Phase 6).
ProgressReporter
IQueryProgressReporter ProgressReporter { get; }
Optional progress reporter for long-running operations.
QueryExecutor
IQueryExecutor QueryExecutor { get; }
Connection pool for executing FetchXML queries.
Statistics
QueryPlanStatistics Statistics { get; }
Mutable statistics: nodes report actual row counts and timing.
TdsQueryExecutor
ITdsQueryExecutor TdsQueryExecutor { get; }
Optional TDS Endpoint executor for direct SQL execution (Phase 3.5).
VariableScope
VariableScope VariableScope { get; }
Optional variable scope for resolving @variable references in expressions.