Npgsql v5.0.0 Release Notes
Release Date: 2020-11-15 // over 4 years ago-
🚀 See the release notes.
The full list of changes is available here.
Previous changes from v5.0.0-preview1
-
🛠 The preview version contains the following fixes and improvements:
- Timeouts not fully applied when opening connections (#3227)
- Connection state is incorrect after double close (#3209)
- ✂ Remove the
Npgsql.RawPostgis
plugin (#3201) - ✅ Mock PostgreSQL for better testing (#3193)
Debug.Assert
failure inNpgsql.NpgsqlReadBuffer.ReadAsync()
(#3192)- Target
netcoreapp3.1
instead ofnetcoreapp3.0
(#3160) - 🖐 Handle timeouts for
NpgsqlConnector.DoWaitAsync()
(#3140) - 🔀 Make an exception for a timeout of a sync query the same way as for an async one (#3132)
- Annotate for nullability matching
System.Data
(#3120) - ➕ Add tests to check that some column schema data isn't available without KeyInfo (#3073)
ColumnAttributeNumber
ofNpgsqlDbColumn
doesn't represent the actual attnum (#3068)- Override
SqlState
andIsTransient
fromDbException
(#3058) ColumnName
shouldn't be null in reader schema (#3044)- Missing
NoResetOnClose
behavior in dev (#3030) - 🔒 Rewrite pool without lock-free primitives (#3024)
- Introduce async schema APIs on connection and reader (#2976)
- Schema returns only indexes visible according to the current search path (#2958)
- Provide async version of
NpgsqlCommand.Unprepare
(#2943) - 👌 Support Unix-domain sockets on Windows builds ≥ 17093 (#2942)
- 👍 Allow setting runtime configuration parameters in the connection string and via an environment variable (#2938)
- ⬇️ Drop support for non-standard-conforming strings (#2931)
- StatementType is always Select when specifying SchemaOnly (#2873)
- 👉 Make
NpgsqlOperationInProgressException
inherit fromNpgsqlException
(#2864) - ⏱ Socket async cancellation and timeout during connection (#2860)
- ✂ Remove .NET Framework performance counters (#2851)
- 👉 Make it easier to specify root CA, private key, certificate (#2834)
- In type loading, arrays of table composites being loaded although they shouldn't be (#2815)
- Array values aren't logged (#2793)
- Map
ImmutableDictionary<string, string?>
to store (#2775) - 🛠 Fixes to NpgsqlConnection.DataSource (#2763)
- Setting to
null
should set to empty string:NpgsqlCommand.CommandText
andNpgsqlParameter.SourceColumn
(#2761) - 👍 Allow any type to be read as binary (#2756)
- Return PG arrays over non-null domains as non-nullable C# arrays (#2720)
- PGPASS should be checked after all other methods (#2695)
- Throw if the connection string specified PGPASS file doesn't exist (#2694)
- 👻
NpgsqlDataReader
exception in ExecuteScalar is hidden by exception in Dispose (#2621) - Proposal: change main development branch from dev to main (#2548)
- Implement new
jsonpath
datatype (#2504) GetFieldValue()
should work withStream
/TextReader
(#2446)- Implement async cancellation (#2437)
- 👌 Support range with more than one CLR type (#2436)
- ⬇️ Drop unmapped composite support (#2403)
- ➕ Add support for
Span<byte>
overloads in binary streams (#2393) - Drop support of deprecated
ssl_renegotiation_limit
(#2388) - Manage oversize buffers with
ArrayPool
(#2326) - 👻 Executing a command with empty 'CommandText' should raise an exception (#2323)
- 🌲 Npgsql logging doesn't log queries duration time (#2282)
- The number of affected rows is not captured/exposed when a
COPY
completes inNpgsqlBinaryImporter
(#2112) - Implement multiplexing (#1982)
- 👍 Portable support for TCP keepalive (#1936)
- Implement PostgreSQL 11 SCRAM channel binding (#1922)
- Legacy PG type names are returned from
GetSchema
(#1886) - Option to close physical connections past a certain age (#1810)
- ⏱ Trigger backend cancellation when a (frontend) timeout occurs (#1567)
- Frontend timeouts for async methods (#607)
- 👌 Support for nullable arrays (#443)
- ⬇ Decreased memory usage in name translator (#2697)
- 🛠 Fix corner case bug in
ArrayHandler.ReadList<TRequestedElement>()
(#2745) - Get PG long version and detect CockroachDB (#2947)
- 🛠 Fixed pruning of connections and idlecount in
ConnectorPool
is now kept in sync with correct amount (#3114)\ - ➕ Added heuristic to detect aliased columns (#3021)