|
| 1 | +# 1.0.0 (2025-05-14) |
| 2 | + |
| 3 | +## Added |
| 4 | + |
| 5 | +- Add support for statically compiling the duckdb library into the pg_duckdb extension. (#618) |
| 6 | +- Add support for `DOMAIN`, `VARINT`, `TIME`, `TIMETZ`, `BIT`, `VARBIT`, `UNION`, `MAP`, `STRUCT` types. (#532, #626, #627, #628, #636, #678, #689, #669) |
| 7 | +- Add support for installing community extensions. (#647) |
| 8 | +- Add support for DDL on DuckDB tables in transactions. (#632) |
| 9 | +- Make `duckdb.unresolved_type` support `min`, `date_trunc`, `length`, `regexp_replace`, `LIKE`, `ILIKE`, `SIMILAR TO`. (#643) |
| 10 | +- Add cast from `duckdb.unresolved_type` to `bytea`. (#643) |
| 11 | +- Add support for the DuckDB functions `strftime`, `strptime`, `epoch`, `epoch_ms`, `epoch_us`, `epoch_ns`, `time_bucket`. (#643) |
| 12 | +- Add support for using MotherDuck in multiple Postgres databases. (#544, #545) |
| 13 | +- Add ALTER TABLE support for DuckDB tables. (#652) |
| 14 | +- Add support to `COPY ... TO` and `COPY ... FROM` for DuckDB tables. (#665) |
| 15 | +- Add support for `EXPLAIN (FORMAT JSON)` for DuckDB queries. (#654) |
| 16 | +- Add support for single dimension `ARRAY` types from DuckDB, before only `LIST` was supported. (#655) |
| 17 | +- Add support for `TABLESAMPLE`. (#559) |
| 18 | +- Add `duckdb.extension_directory`, `duckdb.temporary_directory` and `duckdb.max_temporary_directory_size` settings. (#704) |
| 19 | +- Add source locations to error messages. (#758) |
| 20 | + |
| 21 | +## Changed |
| 22 | + |
| 23 | +- Update to DuckDB 1.3.0. (#754) |
| 24 | +- Change the way MotherDuck is configured. It's not done anymore through the Postgres configuration file. Instead, you should now enable MotherDuck using `CALL duckdb.enable_motherduck(...)` or equivalent `CREATE SERVER` and `CREATE USER MAPPING` commands. (#668) |
| 25 | +- Change the way secrets are added to DuckDB. You'll need to recreate your secrets using the new method `duckdb.create_simple_secret` or `duckdb.create_azure_secret` functions. Internally secrets are now stored `SERVER` and `USER MAPPING` for the `duckdb` foreign data wrapper. (#697) |
| 26 | +- Disallow DuckDB execution inside functions. This feature had issues and is intended to be re-enabled in a future release. (#764) |
| 27 | +- Don't convert Postgres NUMERICs with a precision that's unsupported in DuckDB to double by default. Instead it will throw an error. If you want the lossy conversion to DOUBLE to happen, you can enable `duckdb.convert_unsupported_numeric_to_double`. (#795) |
| 28 | +- Remove custom HTTP caching logic. (#644) |
| 29 | +- When creating a table in a `ddb$` schema that table now uses the `duckdb` table access method by default. (#650) |
| 30 | +- Do not allow creating non-`duckdb` tables in a `ddb$` schema. (#650) |
| 31 | +- When creating MotherDuck tables from Postgres, automatically make them be created by the table creation. Before you had to set the ROLE manually before issuing the CREATE TABLE command. (#650) |
| 32 | +- Add automated tests for MotherDuck integration. (#649) |
| 33 | +- Sync the Postgres timezone to DuckDB when initializing the DuckDB connection. This makes some date parsing/formatting behave better. (#643) |
| 34 | +- Support `FORMAT JSON` for `COPY` commands. (#665) |
| 35 | +- Force `COPY` to use DuckDB execution when using `duckdb.force_execution`. (#665) |
| 36 | +- Automatically use DuckDB execution for COPY when file extensions are used for filetypes that DuckDB understands (`.parquet`, `.json`, `.ndjson`, `jsonl`, `.gz`, `.zst`). (#665) |
| 37 | +- Return `TEXT` columns instead of `VARCHAR` columns when using DuckDB execution. (#583) |
| 38 | + |
| 39 | +## Fixed |
| 40 | + |
| 41 | +- Fix possible crash when querying two Postgres tables in the same query. (#604) |
| 42 | +- Fix crash when loading the `postgres` extension for DuckDB (a.k.a. postgres_scanner) into pg_duckdb (#607) |
| 43 | +- Do not set the `max_memory` in Postgres if `duckdb.max_memory`/`duckdb.memory_limit` is set to the empty string. (#614) |
| 44 | +- Handle PG columns with arrays with 0 dimensions correctly. We now assume such an array has a single dimension. (#616) |
| 45 | +- Fix valgrind issue in `DatumToString`. (#639) |
| 46 | +- Fix read of uninitialized memory when using DuckDB functions. (#638) |
| 47 | +- Fix escaping of MotherDuck schema names when syncing them. (#650) |
| 48 | +- Fix crash that could happen when EXPLAINing a prepared statement in certain cases. (#660) |
| 49 | +- Fix memory leak that could happen on query failure. (#663) |
| 50 | +- Add boundary checks when converting DuckDB date/timestamps to PG date/timestamps. DuckDB and Postgres don't support the exact same range of dates/timestamps, so now pg_duckdb only supports the intersection of these two ranges. (#653) |
| 51 | +- Fail nicely when syncing MotherDuck tables result in too long names being synced. (#680) TODO: FIX FOR TABLES CURRENTLY ONLY DONE FOR SCHEMAS |
| 52 | +- Disallow installing `pg_duckdb` in databases with different encoding than `UTF8`. (#703) |
| 53 | +- Fix crashes or data corruption that could occur when using `CREATE TABLE AS` and materialized views if DuckDB execution and Postgres execution did not agree on the types that a query would return. (#706) |
| 54 | +- Fix various issues when using functions that returned `duckdb.row` (like `read_csv` & `read_parquet`) in a CTE. (#718) |
| 55 | +- Fix a crash when using a `CREATE TABLE AS` statement in a `plpgqsl` function (#735) |
| 56 | +- Throw error when trying to change DuckDB settings after the DuckDB connection has been initialized. (#743) |
| 57 | +- Fix crash for CREATE TABLE ... AS EXECUTE (#757) |
| 58 | +- Handle issues when DuckDB query would return different types between planning and execution phase. (#759) |
| 59 | +- Disallow DuckDB tables as a partition. This wasn't supported, and would fail in weird ways when attempted. Now a clear error is thrown. (#778) |
| 60 | +- Fix memory leak when reading LIST/JSON/JSONB columns from Postgres tables. (#784) |
| 61 | + |
| 62 | + |
1 | 63 | # 0.3.1 (2025-02-13)
|
2 | 64 |
|
3 | 65 | ## Fixed
|
|
0 commit comments