ingestr v1.0.49 - BigQuery Schema Evolution Guardrails

ingestr v1.0.49 was published on June 29, 2026, with a focused schema evolution fix for BigQuery merge reruns. The important change is that ingestr should no longer try to alter integer primary key columns during those reruns when a narrower integer override is involved.

The full release notes and downloads are on the GitHub release page.

BigQuery merge reruns avoid primary key churn

The clearest data pipeline fix in this release is the BigQuery merge behavior. The changelog says ingestr now avoids ALTER work on integer primary key columns during BigQuery merge reruns. That matters because primary keys are not just another type column in an ELT load. They define merge matching, dedupe behavior, and the shape of downstream joins.

The related commits also narrow how integer overrides are handled. The release maps int and integer overrides to int64, then skips an ALTER when the override would make an integer narrower. That is a practical guardrail for repeated loads where source metadata and destination column shape can disagree by width rather than by intent.

For operators, the point is not that schema evolution became broader. It became more careful. A rerun should not turn a stable BigQuery merge table into an avoidable schema operation just because the type override path saw a smaller integer name.

Destination logic is scoped more tightly

Several notes are about gating schema evolution behavior by destination. Numeric width suppression is now gated by destination scheme, the narrower integer skip is scoped to BigQuery, and override suppression is scoped to integer types. The changelog also calls out Snowflake and Trino as destinations that are now included in the gating logic.

This is a small but useful kind of correctness work. BigQuery, Snowflake, and Trino do not have identical type systems or identical tolerance for column changes. A rule that is valid for one destination can be wrong or too broad for another. The release moves those checks closer to the destination behavior instead of treating numeric width handling as one shared path.

The note about skipping float width overrides on collapsing destinations points in the same direction. ingestr is trying to avoid type churn where the destination cannot or should not preserve the exact source width. That is usually what platform teams want from an ingestion tool: preserve useful schema intent, but do not manufacture migration noise where the warehouse type model has already collapsed the difference.

Mongo driver update is dependency maintenance

The release also bumps go.mongodb.org/mongo-driver to v1.17.7. The changelog includes both the dependency bump and a license audit lock update for the same driver version.

There is no new Mongo source feature described in the notes. This should be read as dependency maintenance for users who run ingestr against MongoDB sources or who package ingestr in controlled build environments. The license audit lock update is operationally relevant because it keeps the dependency change and compliance metadata aligned in the same release.

There are also comment cleanup commits around DestinationScheme. Those are internal maintenance items. They may make the destination code easier to read, but the user visible behavior in this release comes from the schema evolution fixes and the Mongo driver update.

Upgrade notes

The release is not marked as a prerelease, and the notes do not list a breaking change or manual migration step. The sensible upgrade check is targeted: rerun a BigQuery merge pipeline that uses integer primary keys and explicit int or integer overrides, then confirm that repeated runs do not emit unexpected schema changes.

If the same ingestr deployment writes to Snowflake or Trino, review those jobs as well. The release mentions destination gating for both, so the risk is not a broad API break. It is destination specific schema behavior, which is exactly the kind of change that deserves a small regression run before promotion.

The full changelog remains the source of truth on the GitHub release page.

Where to get it