Changelog of @hackage/beam-duckdb 0.3.1.0

Revision history for beam-duckdb

0.3.1.0 -- unreleased

  • Added support for beam-migrate: the new Database.Beam.DuckDB.Migrate module exposes a migrationBackend :: BeamMigrationBackend DuckDB DuckDBM value, along with other utilities. This brings DuckDB on par with beam-postgres and beam-sqlite for schema verification and migration script generation.
  • Added file-mode COPY ... TO 'file' / COPY ... FROM 'file' support via the new MonadBeamCopyTo / MonadBeamCopyFrom instances on DuckDBM. Smart constructors copyToCSV / copyToParquet / copyToJSON (and the symmetric copyFrom* plus *With variants) build the per-format options records. See Database.Beam.DuckDB.Syntax.Extensions.Copy.
  • Added instances for MonadBeamInsertReturning / MonadBeamUpdateReturning / MonadBeamDeleteReturning;
  • Added a BeamHasInsertOnConflict DuckDB instance, exposing insertOnConflict (and the anyConflict / conflictingFields / onConflictDoNothing / onConflictUpdateSet / onConflictUpdateSetWhere / onConflictUpdateAll / onConflictUpdateInstead combinators) for INSERT ... ON CONFLICT on DuckDB. DuckDB does not support partial-index conflict targets (INSERT docs, so conflictingFieldsWhere is not re-exported from Database.Beam.DuckDB; the conflictingFieldsWhere in that module is a shadowing shim that produces a compile-time TypeError pointing users at onConflictUpdateSetWhere. Importing conflictingFieldsWhere directly from Database.Beam.Backend.SQL.BeamExtensions still type-checks but raises an error at runtime.

0.3.0.0 -- 2026-04-28

  • Added a weekField definition to the IsSql92ExtractFieldSyntax instance for DuckDBExtractFieldSyntax, in support of the new backend-agnostic week_ extract field from beam-core.
  • Bumped the lower bound on beam-core to 0.11 and the lower bound on beam-migrate to 0.6.

0.2.0.0 -- 2026-03-07

  • Support for the SQL99 feature set, including support for regex matching via similarTo_ and common table expressions (both non-recursive and recursive);
  • Support for the SQL2003 feature set, including OLAP functionality such as windowed aggregation and FILTER;
  • Exposed the DataSource type, but without constructors. Use parquet, csv, or any of the other helper functions to construct a DataSource;
  • Fixed an issue where the SQL queries generated via allIn_ and anyIn_ were not supported by DuckDB.
  • Fixed an issue with HasSqlValueSyntax DuckDB instances overlapping. Users must now derive instances manually for custom types. This is a breaking change.

0.1.1.0 -- 2026-03-04

  • Fixed an issue with modeling boolean conditions, whereby, for example, checking if something was true was modeled as ... IS 1 (as for Sqlite), rather than ... IS TRUE (like Postgres).
  • Added a FromBackendRow DuckDB Scientific, HasSqlEqualityCheck DuckDB Scientific, and HasSqlQuantifiedEqualityCheck DuckDB Scientific instances, which are required to build the documentation.

0.1.0.0 -- 2026-02-26

  • First version. Released on an unsuspecting world.