Skip to main content

Module model

Module model 

Source
Expand description

Format-agnostic tabular AST: the normalized shape every source format (TMDL, TMSL model.bim, .pbix DataModelSchema) is parsed into.

The types here are plain data with no parsing or I/O behaviour. Their only logic is the expression enumeration at the bottom of this module (TabularDatabase::dax_expressions and TabularDatabase::m_expressions), which is the single place that knows where expressions live. The graph layer consumes those two functions instead of walking the AST itself, so a new expression-bearing field cannot be silently omitted from reachability analysis.

Name-based lookup lives in the index submodule; the handle accessors on TabularDatabase (table, column, … and object_id) turn the handles it hands out back into borrowed AST nodes.

String fields hold names with their original casing and compare case-sensitively. Case-insensitive comparison is the job of crate::identity::NameKey, which these names are converted into when they become graph nodes.

Modules§

index
Case-insensitive name lookup over a TabularDatabase.

Structs§

CalculationGroup
The calculation group defined on a table.
CalculationItem
One item of a calculation group.
Calendar
A calendar (TOM calendar) defined on a table, binding groups of its columns.
Column
A column of a table.
DaxExpressionRef
Borrowed view of one DAX expression owned by a model object.
Function
A user-defined DAX function (TOM function). Referenced from DAX by name; its body can be the sole reference keeping another object alive — and the function itself can be dead.
Hierarchy
A user-defined hierarchy on a table.
HierarchyLevel
One level of a hierarchy.
HierarchyRef
A table-qualified reference to a hierarchy defined on another table.
Kpi
KPI expressions are DAX and can be the sole reference keeping an object alive.
MExpressionRef
Borrowed view of one M expression owned by a model object.
Measure
A DAX measure.
Partition
A partition supplying a table’s rows.
Relationship
A relationship between a column of one table and a column of another.
Role
A row-level-security role.
SharedExpression
A model-level shared M expression: a Power Query parameter or shared query.
Table
A table and everything defined on it.
TablePermission
A role’s permission on one table.
TabularDatabase
Normalized semantic model, regardless of source format (TMDL, model.bim, .pbix DataModelSchema). Downstream code never branches on source format.
Variation
A column variation (TOM variation): the model’s declaration that the owning column is served by a hierarchy on another table — for auto date/time, a hidden relationship to an engine-generated LocalDateTable_*.

Enums§

ColumnKind
How a column’s values are produced.
DaxExpressionKind
Which property of its owner a DAX expression came from — model-side or report-side.
ExpressionOwner
The model or report object an enumerated expression belongs to.
PartitionSource
A partition’s source query, discriminated by query language.