Skip to content

v0.37.0

Choose a tag to compare

@substrait-python-releaser substrait-python-releaser released this 18 Oct 06:52
· 9 commits to main since this release

0.37.0 (2026-10-18)

⚠ BREAKING CHANGES

  • following spec v0.105.0, avg over a decimal derives a
    nullable DECIMAL?<38,S> result. Following spec v0.106.0, the date
    and precision_time round_calendar overloads no longer take a
    trailing origin argument; plans must use the signatures without it.
  • project, select and aggregate grouping
    expressions now raise ValueError for an expression with two or more
    output names that do not match its output type, nested fields included,
    and for an expression with no output names; previously only the first
    name was kept. column() raises when an alias list has two or more
    names but not exactly one per field, and a single alias on a struct
    column now keeps its nested names (column("s", alias="z") gives ["z", "x", "y"] instead of ["z"]). Rename a column with a single alias, or
    pass a list that names every field in depth-first order.
  • deps: return type derivation expressions now bind ! tighter
    than AND and OR and group chained ? : conditionals to the right,
    following spec v0.104.0. User-defined extension YAMLs that relied on the
    previous grouping derive different return types.

Features

  • read and write detached expression subtrees (#317) (c946391)
  • read file-level extension descriptions (#316) (f850593)

Bug Fixes

  • carry struct columns' full names through select, project and aggregate (#313) (6905dd9)
  • extension_registry: load default extensions via iterdir() (#285) (6dc4111)
  • name the missing column in column-not-found errors and test on Python 3.14 (#306) (b60e8b4)
  • update ruff to 0.16 and address its lint findings (#305) (8277940)

Miscellaneous Chores

  • deps: bump substrait packages to 0.104.0 (#309) (46d10f6)