Skip to content

v0.4.0

Choose a tag to compare

@dannote dannote released this 29 May 21:27
· 65 commits to master since this release

Added

  • Added Duration.t() SQL parameter support.
  • Added Ecto time_bucket/2,3 compatibility for pinned Elixir durations, origins, and offsets.
  • Added typed Ecto series/1,3 helpers for DuckDB generate_series date/timestamp sources.
  • Added JSON SQL parameters/path helpers plus Ecto access syntax and type/2 casts.
  • Added Ecto regular-expression helpers for DuckDB regexp_* functions with compatible ~r modifier translation.
  • Added Ecto text helpers for common DuckDB string predicates and splitting functions.
  • Added a public API audit for 0.4.0 and locked accepted naming decisions.
  • Added case_when syntax for DuckDB CASE WHEN and atom date parts.
  • Added ordered list/2 and string_agg/3 with NULL ordering.
  • Added Ecto count(..., :distinct) and coalesce/2 SQL generation.
  • Added arg_max/3, arg_min/3, approximate aggregate, boolean aggregate, Bitwise-style bit aggregate, statistical, precise floating-point aggregate, weighted aggregate, product, and histogram helpers.
  • Added value window functions with fragment-backed frames and future-ready window frame helper macros.
  • Added direct and Ecto queryable SUMMARIZE profiling helpers.
  • Added DuckDB function snapshot task with normalized QuackDB type specs for overload auditing.
  • Added protocol coverage and quack-ts parity docs plus expanded type/null/append conformance coverage, including stricter variable-vector value count validation and nested dictionary/constant vector coverage.
  • Added source sampling, JSON source composition, lakehouse workflow docs, metadata examples, ordinary Elixir map encoding for explicit DuckDB MAP append columns, enumerable stream append, and Table.Reader input append.

Fixed

  • Rejected malformed Quack logical type objects that omit required type ids, metadata type tags, or child type fields.