Skip to main content

CkArchiveColumnSpec

Namespace: Meshmakers.Octo.Runtime.Contracts.StreamData

Minimal projection of a CkArchive.columns[] entry — enough for the data-store provider to resolve types via the CK model and generate DDL.

A column is either ingested (CkArchiveColumnSpec.Path set, CkArchiveColumnSpec.Formula null) or computed (CkArchiveColumnSpec.Formula set, CkArchiveColumnSpec.Path empty): a formula referencing other columns of the same row by name, producing a value of CkArchiveColumnSpec.ResultType. Computed columns arrived with System.StreamData 1.5.0; on older models the computed fields are null.

public record CkArchiveColumnSpec : IEquatable<CkArchiveColumnSpec>

Inheritance ObjectCkArchiveColumnSpec
Implements IEquatable<CkArchiveColumnSpec>

Properties

Path

public string Path { get; set; }

Property Value

String

Indexed

public bool Indexed { get; set; }

Property Value

Boolean

Required

public bool Required { get; set; }

Property Value

Boolean

Name

Explicit output column name. For a computed column this is the formula-referenceable identifier (required); for an ingested column it is optional and the name derives from CkArchiveColumnSpec.Path.

public string Name { get; set; }

Property Value

String

Formula

The formula when this is a computed column (mXparser dialect, see the Formula Expressions reference). Null for ingested columns. Mutually exclusive with a non-empty CkArchiveColumnSpec.Path.

public string Formula { get; set; }

Property Value

String

ResultType

Declared output type the formula result is cast back to. Set for computed columns, null for ingested columns.

public Nullable<FormulaResultType> ResultType { get; set; }

Property Value

Nullable<FormulaResultType>

ComputedState

Engine-managed lifecycle state of a computed column. Null for ingested columns.

public Nullable<ComputedColumnState> ComputedState { get; set; }

Property Value

Nullable<ComputedColumnState>

ComputedVersion

Engine-managed physical-column version of a computed column (AB#4189 Phase 7). 0 means the physical column carries the column's base name (the canonical column name derived from CkArchiveColumnSpec.Name); a value N > 0 means the active physical column is {base}__v{N} — the result of one or more formula changes that each backfilled into a fresh versioned physical column and flipped this pointer atomically on completion. 0 for ingested columns. See System.StreamData 1.6.1.

public int ComputedVersion { get; set; }

Property Value

Int32

PendingFormula

Engine-managed transient marker for an in-progress formula change (AB#4189 Phase 7). While non-null, the column keeps serving its CkArchiveColumnSpec.Formula (active, at CkArchiveColumnSpec.ComputedVersion) and a backfill populates this new formula into the versioned physical column {base}__v{ComputedVersion+1}; ingest dual-writes both. Null in steady state. See System.StreamData 1.6.2.

public string PendingFormula { get; set; }

Property Value

String

IsComputed

True when this is a computed column (has a CkArchiveColumnSpec.Formula).

public bool IsComputed { get; }

Property Value

Boolean

HasPendingFormula

True when a formula change is mid-flight (a backfill is populating the new formula).

public bool HasPendingFormula { get; }

Property Value

Boolean

Constructors

CkArchiveColumnSpec(String, Boolean, Boolean)

Minimal projection of a CkArchive.columns[] entry — enough for the data-store provider to resolve types via the CK model and generate DDL.

A column is either ingested (CkArchiveColumnSpec.Path set, CkArchiveColumnSpec.Formula null) or computed (CkArchiveColumnSpec.Formula set, CkArchiveColumnSpec.Path empty): a formula referencing other columns of the same row by name, producing a value of CkArchiveColumnSpec.ResultType. Computed columns arrived with System.StreamData 1.5.0; on older models the computed fields are null.

public CkArchiveColumnSpec(string Path, bool Indexed, bool Required)

Parameters

Path String

Indexed Boolean

Required Boolean