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§
- Calculation
Group - The calculation group defined on a table.
- Calculation
Item - 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.
- DaxExpression
Ref - 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.
- Hierarchy
Level - One level of a hierarchy.
- Hierarchy
Ref - 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.
- MExpression
Ref - 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.
- Shared
Expression - A model-level shared M expression: a Power Query parameter or shared query.
- Table
- A table and everything defined on it.
- Table
Permission - A role’s permission on one table.
- Tabular
Database - 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§
- Column
Kind - How a column’s values are produced.
- DaxExpression
Kind - Which property of its owner a DAX expression came from — model-side or report-side.
- Expression
Owner - The model or report object an enumerated expression belongs to.
- Partition
Source - A partition’s source query, discriminated by query language.