From a35e7fb82163277258201a609857057f34abfef1 Mon Sep 17 00:00:00 2001 From: Brar Piening Date: Sun, 1 Nov 2026 14:25:34 +0100 Subject: [PATCH] Document the replication fixes in 10.0.4 Co-Authored-By: Claude Opus 5.5 --- conceptual/Npgsql/release-notes/10.0.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/conceptual/Npgsql/release-notes/10.0.md b/conceptual/Npgsql/release-notes/10.0.md index f9891b6b..11903b8b 100644 --- a/conceptual/Npgsql/release-notes/10.0.md +++ b/conceptual/Npgsql/release-notes/10.0.md @@ -62,6 +62,13 @@ Thanks to [@kirkbrauer](https://github.com/kirkbrauer) for contributing this fea * The built-in geometry types (e.g. `NpgsqlBox`) can now be deconstructed. Thanks [@ddas09](https://github.com/ddas09) for contributing! * The new `IDbTypeResolver` now allows remapping DbType values to arbitrary PostgreSQL types. +## Replication fixes in 10.0.4 + +Npgsql 10.0.4 fixes how the replication APIs send names and option values. This changes behavior that existing code may depend on: + +* Npgsql now quotes slot and output plugin names, and escapes quotes in option names, option values and publication names, so all valid names work (e.g. slot names starting with a digit) and no name can change the replication command. Slot and plugin names are still folded to lower case, as before. If you escaped quotes in option values or publication names yourself, stop doing so. +* The low-level `StartLogicalReplication()` now throws `ArgumentException` if pgoutput's `proto_version` or `publication_names` option is given without a value, which crashes the walsender and with it every other session of the server (PostgreSQL bug #19795). + ## Breaking changes ### .NET 6 is no longer supported