Release 14th February 2026
Change Control note Hiperspace --version 2.5.33 HiLang --version 2.5.33
Overview
Cube enhancements
@CubeDimension and @CubeHierarchy updated to better support generic access to Cube data from Graph Pivot-Table view.
@CubeDimensionname parameter now refers to the property that provides the name of the element in a Pivot-Table dimension.@CubeHierarchyhas additional parameters for Children and Level
Create GPU Accelerated Graph Search introduced a problem for cubes in that every single permutation of aggregate would be evaluated to produce the Graph cache resulting in:
- A dense MOLAP cube
- Expensive invalidation when cube facts change
The Cube model has been split into _Fact entity containing just base aggregates projected from @CubeFact elements, and _Cube elements that are calculated on demand for summaries.
Drilldown performed well when then was a very small number of dimensions and hierarchy levels, but poorly when the complexity increases. The mode has been changed from using Drilldown as an index for aggregate calculation to a scan of matching facts
Is Fact
IsFact attribute of _Cube and _Fact has been removed, as it is no longer needed. This is a help for BI access of Cube data via ODATA.
Cube Hierarchy
Keep hierarchy has been enhanced to include the name of the children property in addition to parent and add level to support aggregation of cube summaries
An example dimension is Organization that is structured as a hierarchy with Parent as a reference to the aggregation line, and Children as a collection of organization units below the current node. When referenced by a @CubeFact element, the aggregate values of all @CubeMeasures members show the aggregate value of the node and all child nodes
@CubeDimension, CubeHierarchy(Parent, Children, Tier)
entity Organization (Name : String) {Description : String, Parent : Organization, Tier : Int32} [Children : Organization (Parent = this)];
The generated code implements @CubeHierarchy using the ICubeHierarchy<TEntity> that now includes
| ┃ | Name | ┃ | Notes | ┃ |
|---|---|---|---|---|
| ┃ | Parent | ┃ | Reference to parent, that must be the same type as the element | ┃ |
| ┃ | Children | ┃ | Collection of child nodes that must be the same type as the element | ┃ |
| ┃ | AllPartents() | ┃ | Function that recursively yields the entire hierarchy upto root node | ┃ |
| ┃ | AllChildren() | ┃ | Function that recursively yields every child node and all their child nodes | ┃ |
| ┃ | Level | ┃ | Level in Hierarchy for Pivot Table views that have separate tabs for each level of the hierarchy | ┃ |
Cube Measure
@CubeMeasure has been enhanced include Population Standard Deviation and Ranked Percentile aggregates. Aggregate.StdDev and Aggregate. Percentile use the Vector pseudo-aggregate member that includes every observation in the _Fact element for precise aggregation at the summary level.
@CubeFact, DeltaIndex
aspect Valuation {@CubeMeasure(Aggregate.Sum) NPV : Decimal}
[@CubeMeasure(Aggregate.StdDev) Deviation = NPV, @CubeMeasure(Aggregate.Percentile, 95) PFE = NPV];
is equivalent to
| ┃ | Name | ┃ | Notes | ┃ |
|---|---|---|---|---|
| ┃ | NPV | ┃ | Total across dimensions, up through hierarchies | ┃ |
| ┃ | Deviation | ┃ | Populate standard deviation for all elements | ┃ |
| ┃ | PFE | ┃ | The top 95% of all simulated scenarios across the entire set at each level | ┃ |
When the Hiperspace is hosted using Hiperspace.DB the _Fact and _Cube elements are automatically recalculated:
- When a Fact changes the _Fact entity is recalculated with its dimension references
- When an element that a Fact is dependent on changes the _Fact entity is recalculated
- When a Dimension changes, any _Cube elements that reference it are recalculated.
Because _Facts and _Cubes are recalculated using a delta of changed elements in real-time, it is possible for Facts to be calculated from other aggregated Facts. Both Facts and Cubes track history through time (using GetVersions() functions)
Relase also includes updates to reference assemblies
Release 14th February 2026 Release 30th January 2026 Release 17th January 2026