Skip to content

Commit 5840b38

Browse files
committed
Add changelog for 1.0
1 parent 3df76dd commit 5840b38

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

CHANGELOG.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,65 @@
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+
163
# 0.3.1 (2025-02-13)
264

365
## Fixed

0 commit comments

Comments
 (0)