Changelog for duckdb-simple-0.1.5.0
Changelog
0.1.5.0
- Raise the supported DuckDB runtime baseline to
1.5.0+ via the duckdb-ffi-1.5 dependency line.
- Add DuckDB 1.5 high-level wrappers for startup config inspection and connection setup, catalog lookup, file-system handles, copy-function registration, and custom log storage registration.
- Extend scalar-function support with
createFunctionWithState, allowing thread-local per-worker execution state backed by the new DuckDB 1.5 scalar init API.
- Deduplicate shared helpers (
withClientContext, destroyValue, destroyLogicalType, etc.) into Internal.hs.
- Update the test suite for DuckDB 1.5 behavior, including
TIME_NS decoding and new wrapper coverage for copy/logging/config/catalog/file-system helpers.
0.1.2.3
- Move DuckDBColumnType requirement for ToField to DuckValue
0.1.2.2
- 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