Hiperspace.SQL 2.5.50

Prefix Reserved
dotnet add package Hiperspace.SQL --version 2.5.50
                    
NuGet\Install-Package Hiperspace.SQL -Version 2.5.50
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Hiperspace.SQL" Version="2.5.50" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Hiperspace.SQL" Version="2.5.50" />
                    
Directory.Packages.props
<PackageReference Include="Hiperspace.SQL" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Hiperspace.SQL --version 2.5.50
                    
#r "nuget: Hiperspace.SQL, 2.5.50"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Hiperspace.SQL@2.5.50
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Hiperspace.SQL&version=2.5.50
                    
Install as a Cake Addin
#tool nuget:?package=Hiperspace.SQL&version=2.5.50
                    
Install as a Cake Tool

Package Description

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.5.50 88 4/24/2026
2.5.47 95 4/15/2026
2.5.43 98 4/1/2026
2.5.39 97 3/20/2026
2.5.35 98 2/27/2026
2.5.33 108 2/14/2026
2.5.32 114 1/30/2026
2.5.29 110 1/17/2026
2.5.28 117 12/31/2025
2.5.26 200 12/21/2025
2.5.21 441 12/10/2025
2.5.18 684 12/3/2025
2.5.8 192 11/15/2025
2.5.2 227 11/6/2025
2.5.0 209 10/20/2025
2.4.6 210 9/23/2025
2.4.4 287 8/7/2025
2.4.2 177 7/28/2025
2.4.0 202 7/10/2025
2.3.8 192 7/1/2025
Loading failed

https://www.cepheis.com/hiperspace/20260424
# Overview
This release is a minor update to support the presentation Cube data in  Graph views with **Hiperspace.DB**, and minor updated to external references.
## Fact enhancement
A specific `ICubeFact<TFact>` inteface has been added to include `public IEnumerable<TFact> DrillDown(Type dimension);` for generic drilldown from one Cube to the next level when viewed in **Hiperspace.DB**.

The `ICubeDimension` interface now has a `GetCube()` function to get the named `ICubeFact` for use with a **PivotTable** view of the *Cube* through **Hiperspace.DB**.

## SubSpace enhancement
`SubSpaceParameters` has been enhanced to include `TransactionalPolicy`

|Policy|Notes|
|-|-|
|NotTransactional|Indicates that the Space is not transactional|
|Transactional|Specifies that a new transaction should be started|
|ParentTransaction|Indicates that the space participates in the transaction of its parent space|
|ContinueTransaction|Transaction is a continuation of a prior (long-running) transaction|

---

## Hilang enhancement
Added support sdupport for Cube aggregation of views in addition to {*entity, segment, aspect*}.

Consider the model where there are seperate *entitites* for {*FX, FI, EQ*} Trades that have different values for Entities, Bonds, Foreign Exchange, but can all be *viewed* as a Trade that has a booking_id, and a valuation (NPV).  This change adds support for **Cube** analytics of *views*  combining all trades in all entities that provide the view.

```
type Banking.TradeBase
(
Id : String
)
{
Book : Banking.Book,
@CubeMeasure(Aggregate.Sum)
NPV : Decimal
};

@CubeFact
view Banking.Trade : Banking.TradeBase;

entity Banking.FI.Trade : Banking.TradeBase = Banking.Trade();
entity Banking.FX.Trade : Banking.TradeBase = Banking.Trade();
entity Banking.EQ.Trade : Banking.TradeBase = Banking.Trade();

@CubeDimension
entity Banking.Book ( Id : String ) [ Trades : Banking.Trade (Book = this)];
```
When the schema is compiled with [HiLang](HiLang), `Banking.Book` has an additional property `Trade_Cube`  that aggregates NPV over the full set trades that can be *viewed* as a `Banking.Trade`.

### Enhanced List support
Keys in a hilang element can be:
* A Value including value elements defined in Hilang and primatives (e.g. String, Int32, Guid, etc)
* A Reference to an entity (only the Key-part of the referened entity is serialised)
* A List of Values (e.g. List<String>) but not a Set<> since a Set order can change

Key support for `List<>` in keys has been extended to include Keys of Lists of Values of Lists of Values, that can be placed in a `SortedSet`.  Examples include [FINIOS CDM](https://www.finos.org/common-domain-model) that supports complex identifiers that include list of identifiers

```
value CDM.PartyIdentifier ( identifier : String );
entity CDM.Party ( partyId : CDM.PartyIdentifier );
value CDM.PriceQuantity;
value CDM.AssetIdentifier
(
   identifer : String,
   version : Int32
);
value CDM.Identifer
(
   assignedIdentifier : List<CDM.AssetIdentifier>,
   issuerReference : CDM.Party,
   issuer : String
);
entity CDM.TradeLot
(
   lotIdentifier : List<CDM.Identifer>
)
{
   priceQuantity : List<CDM.PriceQuantity>
};
```
In this example `CDM.TradeLot` has a key that is a  `List<CDM.Identifer>` which itself contains a `List<CDM.AssetIdentifier>`.  Lists are supported in [HiLang](HiLang) models since the they can be unambiguously serialised to a store and retrived later.  **NB** `CDM.Identifer` contains a reference to `CDM.Party` which is a *entity* so only the *key* is stored, with `CDM.Party` retrived only when needed.