Tabular Editor 3.26.2 downloads:
- Download Tabular Editor 3.26.2 (x64) (recommended)
- Download Tabular Editor 3.26.2 (ARM64)
- Portable versions: x64, ARM64
- MSI version: x64, ARM64
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-5andclaude-opus-4-8, and OpenAI'sgpt-5.5/gpt-5.5-proalong with other current GPT-5 variants. Deprecated entries (such as the older Codex variants) were removed, and the default OpenAI model is nowgpt-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
TABLEREFparameter, etc.) - The semantic analyzer now reports an error when
IGNOREis used anywhere other than directly as an expression argument ofSUMMARIZECOLUMNS, matching engine behavior. - The semantic analyzer now supports the new optional component and escaping parameters introduced for the
NAMEOFfunction in Power BI Desktop April 2026. Valid component keywords areTABLE,COLUMN,MEASURE,CALENDAR,FULL,SELF,PARENT; valid escaping keywords areESCAPED,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.
commentbecomes the description on the model, dimensions, and measures.display_namebecomes the user-facing Name in the TOM model, with a fallback tonameif there is nodisplay_namedefined.- Measure and dimension
formattranslate 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 (includingNULL->BLANK()),/mapped to the blank-safeDIVIDE, 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:anddimensions: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 todimensions:for v1.1 and earlier: thefields: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 usesdimensions:(the spec marksfields:as preferred at v1.1+), and a symmetric warning surfaces when a pre-v1.1 view usesfields:.- The C# scripting surface renames
DimensiontoField(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.
- The C# scripting surface renames
- 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 supportedcardinality:field round-trips for both spec values (many_to_one,one_to_many) and the omitted form.
An unknown value falls back tomany_to_onewith a warning.- Joins declared
cardinality: one_to_manyare 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.
- Joins declared
- Importing a Databricks Metric View now carries the view's metadata into the semantic model.
Bugfixes in 3.26.2
-
Fixed AI chat failing with a
BadRequesterror ("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
NAMEOFandTABLEOFfunctions, 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
WINDOWfunction (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 MEASUREblocks when the home table cannot be resolved against the model. Previously this could turn a validMEASURE 'Sales'[Amount] = ...into the invalidMEASURE [Amount] = ..., breaking the statement. -
The semantic analyzer no longer reports a spurious error when a filter-removal function (
ALL,ALLSELECTED,REMOVEFILTERSorALLCROSSFILTERED) 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 aCALCULATEfilter argument. Invalid usage is still reported at invocation sites, and relationship modifiers (CROSSFILTER/USERELATIONSHIP) andKEEPFILTERSremain 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 toALL,ALLEXCEPT,ALLSELECTED,ALLNOBLANKROW,ALLCROSSFILTEREDorREMOVEFILTERS. -
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