Skip to content

v0.5.0

Choose a tag to compare

@dannote dannote released this 06 Jun 23:52
· 30 commits to master since this release

Added

  • Added schema-backed Ecto append support for subset columns/defaulted values and RETURNING through a temporary append table plus Ecto insert-from-query SQL generation.
  • Added support for using a QuackDB-backed Ecto repo directly with public QuackDB query and native append helpers.
  • Added Ecto exists/1 SQL generation and documented advanced join patterns for semi, anti, ASOF-style lateral, and positional joins.
  • Added DuckDB star/columns SQL expression helpers and Ecto macros for * EXCLUDE, * REPLACE, * RENAME, pattern stars, COLUMNS(...), and *COLUMNS(...), including pinned dynamic COLUMNS(?) selectors.
  • Added direct SQL and Ecto helpers for common DuckDB LIST operations including length, extraction, slicing, sorting, distinct/unique counts, position, intersection, and concatenation.
  • Added direct SQL and Ecto helpers for common DuckDB MAP and STRUCT operations with focused natural names plus explicit aliases for broad use QuackDB.Ecto imports.
  • Added raw SQL builders for DuckDB PIVOT, UNPIVOT, GROUPING SETS, ROLLUP, and CUBE syntax.
  • Added Ecto LIST lambda helpers for DuckDB list_filter, list_transform, and list_reduce using constrained Elixir fn syntax, including case_when support, with clear macro-time errors.

Changed

  • Integration tests now auto-start a shared local Quack server when DuckDB is available, while still honoring explicit QUACKDB_TEST_URI/QUACKDB_TEST_TOKEN configuration.
  • Improved QuackDB.Server startup readiness by detecting the quack_serve result row from DuckDB stdout, with HTTP polling retained as a fallback.
  • Consolidated Ecto type-to-DuckDB type mapping for migration DDL, schema DDL helpers, and native append inference.