Npgsql v5.0.0 Release Notes

Release Date: 2020-11-15 // 11 months 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)