Monthly Merge Report - September 2025

September saw strong momentum in SQLMesh and SQLGlot innovation with significant contributions from the Tobiko and Fivetran teams, with a focus on reliability, dbt integration, and type inference improvements.

Enhanced dbt Integration

SQLMesh made significant strides in dbt compatibility. PR #5420 introduced the ability to select models based on their original dbt names rather than SQLMesh-generated names. This seemingly small change makes a big difference for teams working with dbt projects in SQLMesh. Now teams can continue using familiar naming patterns.

The team improved metadata handling with PR #5412, which propagates dbt node information through to SQLMesh.

For dbt macro resolution, PR #5349 fixed an issue where the root package wasn't being searched, preventing frustrating "macro not found" errors. PR #5427 made the loader more resilient, converting hard errors into warnings, providing more durable project loading.

Full refresh support landed in PR #5370, implementing the --full-refresh flag in sqlmesh_dbt. This brings SQLMesh's dbt adapter closer to feature parity with dbt Core, allowing teams to force complete table rebuilds when needed.

Smarter Virtual Data Environments

SQLMesh's Virtual Data Environment (VDE) received focused attention this month. PR #5419 added support for seed model schema changes in dev-only VDE mode, addressing a pain point when iterating on seed data structures. 

The team introduced breaking changes detection for version switching. PR #5374 categorizes indirect materialized view changes as breaking. This prevents silent version drift and makes switching between versions safer by ensuring teams understand the full impact of their changes.

SQLMesh Reliability & Guardrails

September's release cycle emphasized stability with bug fixes across multiple areas. 

  • PR #5413 exempted seed models from migration, avoiding unintended modifications
  • PR #5422 fixed incorrect reporting of physical table deletions for symbolic and audit model snapshots
  • PR #5389 resolved a regression that prevented view snapshots from being migrated

Schema migrations became more resilient with PR #5395, which made table schema migrations retriable to handle transient failures. PR #5398 prevents unnecessary seed backfills, ensuring seeds only rebuild when data actually changes.

Warehouse-specific improvements included PR #5425 uniformly lowercases Snowflake column names to avoid case-sensitive mismatches, and PR #5428, which added support for BigQuery tables sourcing from Snowflake.

Performance Optimizations

PR #5277 introduced intelligent model evaluation skipping. SQLMesh now avoids evaluating models when all upstream external models remain unchanged, shortening development cycles significantly.

PR #5416 optimized snapshot traversal during operations like migrations and restatements, limiting traversal to only target snapshots instead of processing all snapshots.

Configuration & Developer Experience

Several quality-of-life improvements landed this month:

  • PR #5382 added catalog type overrides for more flexible warehouse configurations
  • PR #5348 improved CLI --explain output for restatements, making plan impacts clearer
  • PR #5397 sorted nested AttributeDicts before comparison to prevent spurious visual diffs

SQLGlot: Comprehensive Type Inference for Snowflake

The SQLGlot team, particularly contributors from Fivetran, delivered extensive type annotation coverage for Snowflake functions. This work spanned several releases:

Encoding & Decoding Functions:

String & Regular Expression Functions:

Compression & Hashing Functions:

Advanced Functions:

These annotations make Snowflake queries more reliable by enabling SQLGlot to accurately predict function output types during transpilation.

New Dialect Support

PR #5946 introduced a SQLGlot dialect, Solr.

SingleStore received significant attention with improvements spanning JSON operations (PR #5817, PR #5818), time functions (PR #5816), and statistical helpers. The dialect now properly handles computed columns (PR #5878) and vector types (PR #5854).

BigQuery & Cross-Dialect Improvements

BigQuery gained support for several ML functions:

Parser improvements included better handling of UPDATE clauses (PR #5958), UNNEST as table sources in DuckDB (PR #5953), and proper generation of inferred STRUCT data types for Snowflake (PR #5954).

The Road Ahead

September's 106 pull requests across SQLMesh and SQLGlot demonstrate sustained commitment to both projects. SQLMesh's enhanced dbt compatibility and VDE refinements position it well for enterprise adoption, while SQLGlot's comprehensive type inference work and new dialect support expand its capabilities across the SQL ecosystem.

The message remains clear: both projects are actively maintained and continuously improving. Whether you're working with dbt, building data pipelines, or transpiling SQL across dialects, these tools keep getting better.

🤝 Join the Movement

These improvements came from our vibrant community. Special thanks to all contributors who made the innovation in September possible. Your bug reports, feature requests, and pull requests drive progress for everyone.

🔮 Looking Ahead

October promises more exciting developments across both projects. Stay tuned for exciting updates!

Questions? Feedback? Reach out and join our community Slack.