Table of Contents

Tabular Editor 3.26.2

Tabular Editor 3.26.2 downloads:

If you haven't used Tabular Editor 3 before, you are eligible to a 30 day trial, which can be activated after installation. You can also purchase a license.

Check out our release blog to get a brief overview of the most important updates in this release.

Improvements in 3.26.2

  • Added a Move to group right-click submenu for tables in the TOM Explorer. The submenu lists existing Table Groups, a (New...) entry that creates a new group with the selected tables and opens the name editor, and a (None) entry that removes the Table Group assignment.

  • Refreshed the model presets in the AI Assistant preferences with the latest releases, so users can pick current models without typing a custom model ID. Added Anthropic's claude-fable-5 and claude-opus-4-8, and OpenAI's gpt-5.5/gpt-5.5-pro along with other current GPT-5 variants. Deprecated entries (such as the older Codex variants) were removed, and the default OpenAI model is now gpt-5.5.

  • Semantic Analyzer improvements

    • Added support for optional parameters with default expressions in DAX UDFs.
    • The Semantic Analyzer now emits suitable warning / error messages, when an UDF is called with a parameter that doesn't match its declared type (e.g. passing a scalar value to a TABLEREF parameter, etc.)
    • The semantic analyzer now reports an error when IGNORE is used anywhere other than directly as an expression argument of SUMMARIZECOLUMNS, matching engine behavior.
    • The semantic analyzer now supports the new optional component and escaping parameters introduced for the NAMEOF function in Power BI Desktop April 2026. Valid component keywords are TABLE, COLUMN, MEASURE, CALENDAR, FULL, SELF, PARENT; valid escaping keywords are ESCAPED, UNESCAPED, MINIMALLYESCAPED. The return type is unchanged (scalar string). For example, EVALUATE { NAMEOF([MyMeasure], TABLE, MINIMALLYESCAPED) } returns the table name component of a fully qualified measure reference.

  • Semantic Bridge improvements

    • Importing a Databricks Metric View now carries the view's metadata into the semantic model.
      • comment becomes the description on the model, dimensions, and measures.
      • display_name becomes the user-facing Name in the TOM model, with a fallback to name if there is no display_name defined.
      • Measure and dimension format translate to TOM FormatString, and the resulting column or measure DataType is inferred from the format (currency, percentage, date, etc.). Format specs without a clean TOM equivalent fall back to a sensible default and surface a warning.
    • SQL-to-DAX translation is improved: row counts (COUNT(*)), MEASURE(name) references, binary operations, literals (including NULL -> BLANK()), / mapped to the blank-safe DIVIDE, and parenthesis precedence all now translate cleanly.
      • Expressions outside the recognized set still fall back to the verbatim SQL with a warning.
      • Translated DAX is best-effort — review and validate before deploying.
    • Add support for snowflake schemas with nested joins.
    • YAML deserialization accepts both fields: and dimensions: at the top level: the Databricks v1.1 spec treats them as aliases. Round-trip preserves whichever keyword the source YAML used. Views created in TE3 (no source YAML) default to dimensions: for v1.1 and earlier: the fields: alias was introduced after the v1.1 spec was published, so we stay compatible with tooling that targets the original 1.1 spec. A deserialization warning surfaces when a v1.1+ view uses dimensions: (the spec marks fields: as preferred at v1.1+), and a symmetric warning surfaces when a pre-v1.1 view uses fields:.
      • The C# scripting surface renames Dimension to Field (view.Fields, view.AddField, Dimension -> Field, MakeValidationRuleForDimension -> MakeValidationRuleForField, ctx.DimensionNames -> ctx.FieldNames).
      • The legacy names remain as obsolete forwarders that continue to compile and run with deprecation warnings, so existing scripts and stored paths like Model.Dimensions["x"] still work.
    • Window measures (including the v1.1 offset: field) round-trip in YAML deserialization and serialization. We don't yet translate features the spec marks as experimental; the YAML round-trip preserves them so they're not lost.
    • Joins now support two new properties in the updated v1.1 spec:
      • rely: map is supported
      • cardinality: field round-trips for both spec values (many_to_one, one_to_many) and the omitted form. An unknown value falls back to many_to_one with a warning.
        • Joins declared cardinality: one_to_many are still imported, but the relationship to the source is intentionally skipped — the v1.1 spec treats these joins as independent fact sources aggregated separately at the source grain The joined table is still created so it appears in the resulting TOM model, without the relationships defined. A warning surfaces the gap on each affected join.

Bugfixes in 3.26.2

  • Fixed AI chat failing with a BadRequest error ("temperature is deprecated for this model") on Anthropic Claude Opus 4.7+ and Fable 5, which removed support for the temperature sampling parameter. The retry logic that transparently re-sends the request without an explicit temperature now recognizes this provider's phrasing in addition to the previously handled cases.

  • Calendars are now suggested in autocomplete for the NAMEOF and TABLEOF functions, alongside tables, columns, and measures. This includes calendars that have no time-unit columns configured (such as a freshly added, not-yet-configured calendar), which were previously omitted. Typing a quoted prefix (e.g. 'My Cal) now narrows the suggestions to matching calendars, the same way it does for tables.

  • Sorting and pagination in the table Data Preview are now more reliable across storage modes:

  • Sorting by a column that has no attribute hierarchy no longer returns rows in the wrong order. When possible, paging now uses the WINDOW function (on engines that support it, for tables with a primary key); otherwise the preview shows the first rows and indicates that scrolling is disabled.

  • Attribute-hierarchy availability is now read directly from the server, so it stays correct even after the model is processed outside of Tabular Editor.

  • DirectQuery tables correctly show the first rows (pagination isn't possible with DirectQuery) along with an informational message.

  • Preview metadata is cached for the session and only refreshed when you click Refresh, avoiding redundant server round-trips (including repeated row-count queries).

  • The DAX formatter no longer removes the table qualifier from DEFINE MEASURE blocks when the home table cannot be resolved against the model. Previously this could turn a valid MEASURE 'Sales'[Amount] = ... into the invalid MEASURE [Amount] = ..., breaking the statement.

  • The semantic analyzer no longer reports a spurious error when a filter-removal function (ALL, ALLSELECTED, REMOVEFILTERS or ALLCROSSFILTERED) is used as the top-level body expression of a DAX user-defined function, e.g. FUNCTION F = () => REMOVEFILTERS('Sales'). Such UDFs are valid when invoked as a CALCULATE filter argument. Invalid usage is still reported at invocation sites, and relationship modifiers (CROSSFILTER / USERELATIONSHIP) and KEEPFILTERS remain invalid as UDF bodies, matching engine behavior.

  • When renaming a table that's being referenced inside a NAMEOF function call, formula fixup now correctly updates the table reference.

  • The semantic analyzer no longer reports a spurious error when TABLEOF(...) is passed as a table reference argument to ALL, ALLEXCEPT, ALLSELECTED, ALLNOBLANKROW, ALLCROSSFILTERED or REMOVEFILTERS.

  • The Update Table Schema action now behaves correctly when invoked on a mix of object types, or when invoked on a Table Group.


Coming from Tabular Editor 2.x?

Watch this video to get a quick tour of the main features in Tabular Editor 3. Also, make sure to check our onboarding guide.

Tabular Editor 3 major features overview:

  • Fully customizable IDE, with multi-monitor, Hi-DPI support and themes
  • New powerful DAX code editor with auto-complete, syntax checking, code folding and much, much more
  • *Workspace mode, allowing you to save your changes to disk and synchronise model metadata to Analysis Services simultaneously
  • *Preview table data with infinite scrolling, create PivotGrids or write DAX queries to browse the model or test calculation logic
  • *Schedule data refreshes
  • Update Table Schemas on both Provider and Structured Data Sources (yes, even for M queries!)
  • Create data model diagrams
  • Create DAX scripts that allow you to edit multiple measures or other calculated objects in a single document
  • Record C# scripts and save as macros (formerly known as "Custom Actions")
  • VertiPaq Analyzer integration
  • DAX debugger
  • DAX Optimizer integration
  • Code Actions to easily refactor you DAX.

*=Only while connected to an instance of Analysis Services or Power BI