Npgsql v5.0.0 Release Notes

Release Date: 2020-11-15 // about 2 years ago

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 in Npgsql.NpgsqlReadBuffer.ReadAsync() (#3192)
    • Target netcoreapp3.1 instead of netcoreapp3.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 of NpgsqlDbColumn doesn't represent the actual attnum (#3068)
    • Override SqlState and IsTransient from DbException (#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 from NpgsqlException (#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 and NpgsqlParameter.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 with Stream/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 in NpgsqlBinaryImporter (#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)