# Changelog ## Unreleased - Add support for reading and writing arrays. - Added `Database.DuckDB.Simple.Generic` with GHC generics helpers (`GToField`/`GFromField`) for encoding records as DuckDB STRUCTs and sum types as UNIONs, plus a `ViaDuckDB` newtype for convenient @DerivingVia@ support. - Added `DuckValue` instances for `[]`, `Array Int a`, and `Map k v` to enable lists, arrays, and maps as fields within generically-encoded structs and unions. - Documented struct/union generic support; added richer tests covering database round-trips and deriving-via examples. - Support decoding and binding STRUCT and UNION values via new `StructValue`/`UnionValue` helpers and corresponding `FromField`/`ToField` instances. ## 0.1.2.0 - Added LIST/MAP coverage note: LIST columns decode into Haskell lists and MAP columns into strict `Map k v`, with matching parameter bindings via `ToField`. - Taught `FromField` to interpret `FieldBigNum` as `Integer`/`Natural` and added matching `ToField` instances for `BigNum`, `Integer`, and `Natural` so BIGNUM parameters round-trip without truncation. - Added `duckdbColumnType` helper and `DuckDBColumnType` class, exposing the DuckDB column type associated with each `ToField` instance. - Fixed UUID decoding by undoing DuckDB’s upper-word bias and added a UUID round-trip regression test. - Fixed BIT encoding and decoding ## 0.1.1.2 - Broadened `FieldValue` and `FromField` coverage to handle all DuckDB scalar types, including intervals, HUGEINT/UHUGEINT, decimals (with metadata), time/timestamp with additional precisions, timezone-aware values, bit strings, bignums, and enums. - Fixed enum decoding for both query results and scalar-function inputs by honouring the logical type’s underlying storage width (uint8/uint16/uint32). - Ensured decimal vectors read accurate width/scale metadata when materializing results or invoking UDFs. - Added unsigned `ToField` bindings that route through DuckDB’s native uint creators and exposed `FromField Word`. - Expanded the test suite with regressions covering unsigned round-trips, huge integers, intervals, decimals, and timezone-aware values. ## 0.1.0.0 - Initial release