Skip to content

v0.6.0

Latest

Choose a tag to compare

@github-actions github-actions released this 04 Nov 20:02

Added

  • refresh.merge_max_fraction (default 0.25): an incremental table's change set is counted in the source
    before it is staged, and above this share of the table's rows the table is copied whole instead of
    merged. A customer (2026-11-03): a dbt --full-refresh restamped every row of three models, the
    watermark filter selected 100% of them, and the resulting MERGE ... UPDATE of a 6.25M-row table ran
    GizmoSQL out of memory (7.4 GiB) every hour for a day, while a whole copy of the same table takes a
    minute.

Fixed

  • DuckDB source: columns of type TIMETZ, BIT or BIGNUM (alone or nested, e.g. TIMETZ[]) are refused
    at plan time, naming each column, unless they are masked or excluded. DuckDB's Arrow export changed their
    values without an error: TIMETZ arrived as TIME without its UTC offset, BIT and BIGNUM as their
    internal bytes. Copy them as text with mask: {COL: {strategy: expression, sql: "CAST({column} AS VARCHAR)"}},
    or exclude them. A view with such a column is no longer materialized by views.on_failure: materialize
    unless it is masked the same way.

  • DuckDB source: tables and views in a DuckDB file's main schema were never listed, so db_schemas: [main]
    copied nothing (the plan only warned that the pattern matched no db_schema). DuckDB flags main as an
    internal schema, like information_schema, and internal schemas were left out.