Interface ITreeQueryProvider

Namespace: redb.Core.Query
Assembly: redb.Core.dll

Extended provider for executing tree LINQ queries.
Inherits base IRedbQueryProvider functionality and adds hierarchical constraint support.

public interface ITreeQueryProvider : IRedbQueryProvider

Properties

Cache

Metadata cache for this provider (domain-isolated).

GlobalMetadataCache Cache { get; }

Methods

CreateTreeQuery<TProps>(long, long?, bool, long?, int?)

Create tree query with hierarchical constraint support.

IRedbQueryable<TProps> CreateTreeQuery<TProps>(long schemeId, long? userId = null, bool checkPermissions = false, long? rootObjectId = null, int? maxDepth = null) where TProps : class, new()

ExecuteTreeDeleteAsync(long[])

Delete objects by ID array.

Task<int> ExecuteTreeDeleteAsync(long[] objectIds)

ExecuteTreeGroupedAggregateAsync<TProps>(TreeQueryContext<TProps>, IEnumerable<GroupFieldRequest>, IEnumerable<AggregateRequest>)

Execute GROUP BY aggregation with tree context (CTE for tree traversal).

Task<JsonDocument?> ExecuteTreeGroupedAggregateAsync<TProps>(TreeQueryContext<TProps> context, IEnumerable<GroupFieldRequest> groupFields, IEnumerable<AggregateRequest> aggregations) where TProps : class, new()

ExecuteTreeGroupedWindowQueryAsync<TProps>(TreeQueryContext<TProps>, IEnumerable<GroupFieldRequest>, IEnumerable<AggregateRequest>, IEnumerable<WindowFuncRequest>, IEnumerable<WindowFieldRequest>, IEnumerable<WindowOrderRequest>)

Execute GroupBy + Window Functions with tree context.

Task<JsonDocument?> ExecuteTreeGroupedWindowQueryAsync<TProps>(TreeQueryContext<TProps> context, IEnumerable<GroupFieldRequest> groupFields, IEnumerable<AggregateRequest> aggregations, IEnumerable<WindowFuncRequest> windowFuncs, IEnumerable<WindowFieldRequest> partitionBy, IEnumerable<WindowOrderRequest> orderBy) where TProps : class, new()

ExecuteTreeWindowQueryAsync<TProps>(TreeQueryContext<TProps>, IEnumerable<WindowFieldRequest>, IEnumerable<WindowFuncRequest>, IEnumerable<WindowFieldRequest>, IEnumerable<WindowOrderRequest>, string?)

Execute Window Functions query with tree context (CTE for tree traversal).

Task<JsonDocument?> ExecuteTreeWindowQueryAsync<TProps>(TreeQueryContext<TProps> context, IEnumerable<WindowFieldRequest> selectFields, IEnumerable<WindowFuncRequest> windowFuncs, IEnumerable<WindowFieldRequest> partitionBy, IEnumerable<WindowOrderRequest> orderBy, string? frameJson = null) where TProps : class, new()

GetIdsWithAncestorsAsync<TProps>(List<long>)

Get IDs of all objects and their parents to root via recursive CTE.

Task<List<long>> GetIdsWithAncestorsAsync<TProps>(List<long> filteredIds) where TProps : class, new()

GetTreeGroupBySqlPreviewAsync<TProps>(TreeQueryContext<TProps>, IEnumerable<GroupFieldRequest>, IEnumerable<AggregateRequest>)

Get SQL preview for tree GROUP BY query (for debugging).

Task<string> GetTreeGroupBySqlPreviewAsync<TProps>(TreeQueryContext<TProps> context, IEnumerable<GroupFieldRequest> groupFields, IEnumerable<AggregateRequest> aggregations) where TProps : class, new()

GetTreeGroupedWindowSqlPreviewAsync<TProps>(TreeQueryContext<TProps>, IEnumerable<GroupFieldRequest>, IEnumerable<AggregateRequest>, IEnumerable<WindowFuncRequest>, IEnumerable<WindowFieldRequest>, IEnumerable<WindowOrderRequest>)

Get SQL preview for tree GroupBy + Window query.

Task<string> GetTreeGroupedWindowSqlPreviewAsync<TProps>(TreeQueryContext<TProps> context, IEnumerable<GroupFieldRequest> groupFields, IEnumerable<AggregateRequest> aggregations, IEnumerable<WindowFuncRequest> windowFuncs, IEnumerable<WindowFieldRequest> partitionBy, IEnumerable<WindowOrderRequest> orderBy) where TProps : class, new()

GetTreeWindowSqlPreviewAsync<TProps>(TreeQueryContext<TProps>, IEnumerable<WindowFieldRequest>, IEnumerable<WindowFuncRequest>, IEnumerable<WindowFieldRequest>, IEnumerable<WindowOrderRequest>, string?)

Get SQL preview for tree window query (for debugging).

Task<string> GetTreeWindowSqlPreviewAsync<TProps>(TreeQueryContext<TProps> context, IEnumerable<WindowFieldRequest> selectFields, IEnumerable<WindowFuncRequest> windowFuncs, IEnumerable<WindowFieldRequest> partitionBy, IEnumerable<WindowOrderRequest> orderBy, string? frameJson = null) where TProps : class, new()

LoadObjectsByIdsAsync(List<long>, int?)

Load full untyped objects by ID list via v_objects_json.

Task<List<ITreeRedbObject>> LoadObjectsByIdsAsync(List<long> objectIds, int? propsDepth = null)

LoadObjectsByIdsAsync<TProps>(List<long>, int?)

Load full typed objects by ID list via v_objects_json.

Task<List<TreeRedbObject<TProps>>> LoadObjectsByIdsAsync<TProps>(List<long> objectIds, int? propsDepth = null) where TProps : class, new()