PostgreSQL 13.3, 12.7, 11.12, 10.17, and 9.6.22 Released!
Posted on 2021-05-13 by PostgreSQL Global Development Group
PostgreSQL Project Security
The PostgreSQL Global Development Group has released an update to all supported versions of our database system, including 13.3, 12.7, 11.12, 10.17, and 9.6.22. This release closes three security vulnerabilities and fixes over 45 bugs reported over the last three months.
For the full list of changes, please review the release notes.
Security Issues
CVE-2021-32027: Buffer overrun from integer overflow in array subscripting calculations
Versions Affected: 9.6 - 13. The security team typically does not test unsupported versions, but this problem is quite old.
While modifying certain SQL array values, missing bounds checks let authenticated database users write arbitrary bytes to a wide area of server memory.
The PostgreSQL project thanks Tom Lane for reporting this problem.
CVE-2021-32028: Memory disclosure in INSERT ... ON CONFLICT ... DO UPDATE
Versions Affected: 9.6 - 13. The security team typically does not test unsupported versions. The feature first appeared in 9.5.
Using an INSERT ... ON CONFLICT ... DO UPDATE command on a purpose-crafted table, an attacker can read arbitrary bytes of server memory. In the default configuration, any authenticated database user can create prerequisite objects and complete this attack at will. A user lacking the CREATE and TEMPORARY privileges on all databases and the CREATE privilege on all schemas cannot use this attack at will.
The PostgreSQL project thanks Andres Freund for reporting this problem.
CVE-2021-32029: Memory disclosure in partitioned-table UPDATE ... RETURNING
Versions Affected: 11 - 13
Using an UPDATE ... RETURNING on a purpose-crafted partitioned table, an attacker can read arbitrary bytes of server memory. In the default configuration, any authenticated database user can create prerequisite objects and complete this attack at will. A user lacking the CREATE and TEMPORARY privileges on all databases and the CREATE privilege on all schemas typically cannot use this attack at will.
The PostgreSQL project thanks Tom Lane for reporting this problem.
Bug Fixes and Improvements
This update fixes over 45 bugs that were reported in the last several months. Some of these issues only affect version 13, but could also apply to other supported versions.
Some of these fixes include:
Fix potential incorrect computation of UPDATE ... RETURNING outputs for joined, cross-partition updates.
Fix ALTER TABLE ... ALTER CONSTRAINT when used on foreign-key constraints on partitioned tables. The command would fail to adjust the DEFERRABLE and/or INITIALLY DEFERRED properties of the constraints and triggers of leaf partitions, leading to unexpected behavior. After updating to this version, you can execute the ALTER TABLE ... ALTER CONSTRAINT command to fix any misbehaving partitioned tables.
Ensure that when a child table is attached with ALTER TABLE ... INHERIT that generated columns in the parent are generated in the same way in the child.
Forbid marking an identity column as NULL.
Allow ALTER ROLE ... SET/ALTER DATABASE ... SET to set the role, session_authorization, and temp_buffers parameters.
Ensure that REINDEX CONCURRENTLY preserves any statistics target set for the index.
Fix an issue where, in some cases, saving records within AFTER triggers could cause crashes.
Fix how to_char() handles Roman-numeral month format codes with negative intervals.
Fix use of uninitialized value while parsing an \{m,n\} quantifier in a BRE-mode regular expression.
Fix "could not find pathkey item to sort" planner errors that occur in some situations when the sort key involves an aggregate or window function.
Fix issue with BRIN index bitmap scans that could lead to "could not open file" errors.
Fix potentially wrong answers from GIN tsvector index searches when there are many matching records.
Fixes for COMMIT AND CHAIN functionality on both the server and psql.
Avoid incorrect timeline change while recovering uncommitted two-phase transactions from WAL, which could lead to consistency issues and the inability to restart the server.
Ensure thatwal_sync_method is set to fdatasync by default on newer FreeBSD releases.
Disable the vacuum_cleanup_index_scale_factor parameter and storage option.
Fix several memory leaks in the server, including one with SSL/TLS parameter initialization.
Restore the previous behavior of \connect service=XYZ to psql, i.e. disallow environmental variables (e.g. PGPORT) from overriding entries in the service file.
Fix how pg_dump handles generated columns in partitioned tables.
Add additional checks to pg_upgrade for user tables containing non-upgradable data types.
On Windows, initdb now prints instructions about how to start the server with pg_ctl using backslash separators.
Fix pg_waldump to count XACT records correctly when generating per-record statistics.
package is experimental right now - it was confirmed working on NetBSD
and compile on macOS only for now
8.0 brings many improvements over 5.7, following is shortened list, more details
are available on https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html
- transactional data dictionary
- atomic DDL
- integrated upgrade procedure
- security and account management improvements
- resource groups and threads (thread affinity needs some work for NetBSD)
- table encryption management
- loads of innodb enhancements
- default character set utf8mb4
- JSON enhancements
- CTE, Window functions
- lateral derived tables
- reworked regular experssion support
- internal temporary tables
- HASH JOIN optimization
- EXPLAIN ANALYZE
- time zone support for TIMESTAMP and DATETIME
- optimizer hints for FORCE INDEX, IGNORE INDEX
- XML enhancements
- single preparation of statements
- single RIGHT JOIN as LEFT JOIN handling
- derived condition pushdown optimization
Number of features were also deprecated, check the release notes for that
Real changes are in www/ruby-actionpack61 only.
## Rails 6.1.3.2 (May 05, 2021) ##
* Prevent open redirects by correctly escaping the host allow list
CVE-2021-22903
* Prevent catastrophic backtracking during mime parsing
CVE-2021-22902
* Prevent regex DoS in HTTP token authentication
CVE-2021-22904
* Prevent string polymorphic route arguments.
`url_for` supports building polymorphic URLs via an array
of arguments (usually symbols and records). If a developer passes a
user input array, strings can result in unwanted route helper calls.
CVE-2021-22885
*Gannon McGibbon*
Real changes are in www/ruby-actionpack60 only.
## Rails 6.0.3.7 (May 05, 2021) ##
* Prevent catastrophic backtracking during mime parsing
CVE-2021-22902
* Prevent regex DoS in HTTP token authentication
CVE-2021-22904
* Prevent string polymorphic route arguments.
`url_for` supports building polymorphic URLs via an array
of arguments (usually symbols and records). If a developer passes a
user input array, strings can result in unwanted route helper calls.
CVE-2021-22885
*Gannon McGibbon*
Support for Alpha was removed in 2014. This removed the spinlock and
memory barrier implementations, meaning Postgresql on Alpha no longer
compiles cleanly with the default options. According to the commit
message the code was "unlikely to currently work correctly".
Enthusiasts may wish to re-add Alpha support, but it should likely
only be done with proper testing to avoid data loss in the case someone
uses it.
5.44.0 (2021-05-01)
* Add concurrent_eager_loading plugin, for eager loading multiple
associations concurrently using separate threads (jeremyevans)
* Support :weeks as a interval unit in the date_arithmetic extension
(jeremyevans) (#1759)
* Raise an exception if an interval hash with an unsupported key is passed
in the date_arithmetic extension (jeremyevans) (#1759)
* Support dropping non-composite unique constraints on SQLite (jeremyevans)
(#1755)
================================================================================
Redis 6.2.3 Released Mon May 3 19:00:00 IST 2021
================================================================================
Upgrade urgency: SECURITY, Contains fixes to security issues that affect
authenticated client connections. LOW otherwise.
Integer overflow in STRALGO LCS command (CVE-2021-29477):
An integer overflow bug in Redis version 6.0 or newer could be exploited using
the STRALGO LCS command to corrupt the heap and potentially result in remote
code execution. The integer overflow bug exists in all versions of Redis
starting with 6.0.
Integer overflow in COPY command for large intsets (CVE-2021-29478):
An integer overflow bug in Redis 6.2 could be exploited to corrupt the heap and
potentially result with remote code execution. The vulnerability involves
changing the default set-max-intset-entries configuration value, creating a
large set key that consists of integer values and using the COPY command to
duplicate it. The integer overflow bug exists in all versions of Redis starting
with 2.6, where it could result with a corrupted RDB or DUMP payload, but not
exploited through COPY (which did not exist before 6.2).
Bug fixes that are only applicable to previous releases of Redis 6.2:
* Fix memory leak in moduleDefragGlobals
* Fix memory leak when doing lazy freeing client tracking table
* Block abusive replicas from sending command that could assert and crash redis
Other bug fixes:
* Use a monotonic clock to check for Lua script timeout
* redis-cli: Do not use unix socket when we got redirected in cluster mode
Modules:
* Fix RM_GetClusterNodeInfo() to correctly populate master id
Now it should be more obvious when a package needs it as a dependency,
as it will fail loudly if it isn't declared as a tool.
While here, some duplicate dependencies on itstool were removed from the
MATE packages
Based on a diff provided by Mustafa Dogan.
4.2.1 and 4.2.2 are bugfix releases.
4.2 contains new features and enhancements, including:
Some items in the configuration file pgpool.conf are vastly
enhanced for easier configuration and administration.
Implement logging_collector for easier log management.
Implement log_disconnections to collect disconnection logs.
Implement pg_enc and pg_md5 to allow to register multiple
passwords at once.
Allow to show statistics of health check by using SHOW
POOL_HEALTH_CHECK_STATS command, and also allow to show statistics
of issued SQL by using SHOW POOL_BACKEND_STATS command.
New PCP command pcp_reload_config is added.
Now it is possible to omit write_function_list and
read_only_function_list by looking at system catalog information.
Add new clustering mode snapshot_isolation_mode which guarantees
not only data modifications to multiple PostgreSQL but read
consistency.
Support LDAP authentication between clients and Pgpool-II.
Add ssl_crl_file and ssl_passphrase_command to SSL configuration.
Import PostgreSQL 13's SQL parser.
Major Features
Add distributed restore point functionality
SkipScan to speed up SELECT DISTINCT
Bugfixes
Refactor and harden size and stats functions
Reduce memory usage for distributed inserts
Fix extremely slow multi-node order by queries
Fix chunk index column name mapping
Keep Append pathkeys in ChunkAppend
Redis 6.2.2
===========
Upgrade urgency: HIGH, if you're using ACL and pub/sub, CONFIG REWRITE, or
suffering from performance regression. see below.
Bug fixes for regressions in previous releases of Redis 6.2:
* Fix BGSAVE, AOFRW, and replication slowdown due to child reporting CoW
* Fix short busy loop when timer event is about to fire
* Fix default user, overwritten and reset users losing pubsub channel permissions
* Fix config rewrite with an empty `save` config resulsing in default `save` values
* Fix not starting on alpine/libmusl without IPv6
* Fix issues with propagation and MULTI/EXEC in modules
Several issues around nested calls and thread safe contexts
Bug fixes that are only applicable to previous releases of Redis 6.2:
* ACL Pub/Sub channels permission handling for save/load scenario
* Fix early rejection of PUBLISH inside MULTI-EXEC transaction
* Fix missing SLOWLOG records for blocked commands
* Allow RESET command during busy scripts
* Fix some error replies were not counted on stats
Bug fixes:
* Add a timeout mechanism for replicas stuck in fullsync
* Process HELLO command even if the default user has no permissions
* Client issuing a long running script and using a pipeline, got disconnected
* Fix script kill to work also on scripts that use `pcall`
* Fix list-compress-depth may compress more node than required
* Fix redis-cli handling of rediss:// URL scheme
* Cluster: Skip unnecessary check which may prevent failure detection
* Cluster: Fix hang manual failover when replica just started
* Sentinel: Fix info-refresh time field before sentinel get first response
* Sentinel: Fix possible crash on failed connection attempt
* Systemd: Send the readiness notification when a replica is ready to accept connections
Command behavior changes:
* ZADD: fix wrong reply when INCR used with GT/LT which blocked the update
It was responding with the incremented value rather than nil
* XAUTOCLAIM: fix response to return the next available id as the cursor
Previous behavior was retuning the last one which was already scanned
* XAUTOCLAIM: fix JUSTID to prevent incrementing delivery_count
New config options:
* Add cluster-allow-replica-migration config option
* Add replica-announced config option
* Add support for plaintext clients in TLS cluster
* Add support for reading encrypted keyfiles
Improvements:
* Fix performance regression in BRPOP on Redis 6.0
* Avoid adding slowlog entries for config with sensitive data
* Improve redis-cli non-binary safe string handling
* Optimize CLUSTER SLOTS reply
* Handle remaining fsync errors
Info fields and introspection changes:
* Strip % sign from current_fork_perc info field
* Fix RSS memory info on FreeBSD
* Fix client_recent_max_input/output_buffer in 'INFO CLIENTS' when all clients drop
* Fix invalid master_link_down_since_seconds in info replication
Platform and deployment-related changes:
* Fix FreeBSD <12.x builds
Modules:
* Add macros for RedisModule_log logging levels
* Add RedisModule_GetAbsExpire / RedisModule_SetAbsExpire
* Add a module type for key space notification
* Set module eviction context flag only in masters
* Fix unusable RedisModule_IsAOFClient API
* Fix missing EXEC on modules propagation after failed EVAL execution
* Fix edge-case when a module client is unblocked
Changes in MySQL 5.7.34 (2021-04-20, General Availability)
Configuration Notes
The CMAKE_BUILD_TYPE CMake option now supports a Release build type, which is like the RelWithDebInfo build type but omits debugging information to reduce the build size.
Packaging Notes
The bundled libedit library was upgraded to version 20190324-3.1.
Binary packages that include curl rather than linking to the system curl library have been upgraded to use curl 7.74.0.
Security Notes
The linked OpenSSL library for MySQL Server has been updated to version 1.1.1k. Issues fixed in the new OpenSSL version are described at https://www.openssl.org/news/cl111.txt and https://www.openssl.org/news/vulnerabilities.html.
Functionality Added or Changed
Microsoft Windows: The named_pipe_full_access_group system variable now defaults to an empty string (''), making named pipe connections secure. Previously, '*everyone*' was the default value. A valid Windows local group name may be substituted.
Bugs Fixed
InnoDB: The introduction of sharded rw_lock_stats counters in MySQL 5.7 caused a regression in CPU cache efficiency. To address this issue in MySQL 5.7, the sharding method was changed. For optimal performance, the rw_lock_stats counter is removed in MySQL 8.0.
InnoDB: A delete operation on a parent table that initiated a cascading update on a child table with an indexed virtual column and indexed foreign key constraint column caused a virtual column corruption.
InnoDB: An adaptive hash index (AHI) latch was held in shared mode by a thread truncating a large table, causing mutex waits for other threads. The AHI latch was not required and has been removed.
InnoDB: The open and close sequence for table share instances (m_share objects) and dictionary table instances was modified to prevent accessing old m_share objects that could point to stale dictionary indexes.
Thanks to Yuxiang Jiang for the contribution.
InnoDB: An online ALTER TABLE operation failed with an “Incorrect key file for table” error due to an unnecessary encryption status check that was performed when reading online DDL row logs.
Replication: If all previous binary log files were purged at startup because their retention period had expired, the new binary log file contained an empty Previous_gtids event, which could cause errors in replication. The order of initialization has now been changed so that previous binary log files are only purged after the previous GTID set has been written to the new binary log file that is created at startup.
Replication: An assertion was raised in debug builds relating to lost GTIDs if binary log files were removed at startup because their retention period had expired.
Replication: A deadlock could occur if the binary log file was rotated while system variables were being updated and read by different clients.
Replication: The output of a SHOW PROCESSLIST statement for a replica’s SQL thread sometimes showed the last query as currently being applied when the replica was actually caught up.
A query string was displayed before it had been rewritten.
For builds compiled using the libedit library, if the mysql client was invoked with the --default-character-set=utf8 option, libedit rejected input of multibyte characters.
On Windows, large result sets could cause the mysql client to exit unexpectedly.
Improper locking on an internal queue could cause mysqlpump to exit unexpectedly.
It is now possible to use START REPLICA SQL_THREAD and STOP REPLICA SQL_THREAD statements for the group_replication_applier channel when Group Replication is stopped. This enables an operator to apply any remaining unapplied transactions on a server that left the group, without having to rejoin the server to the group.
When the mysql client was used in batch mode, its parser could be confused by USE followed by DROP DATABASE when the USE database name was quoted.
While optimizing the ORDER BY clause of a subquery there was a possibility of cleaning up a subquery tree referenced in the outer SELECT, which could lead to a premature exit.
A malformed name in the mysql.func system table could cause unexpected server behavior.
Sessions could disable their own auditing.
Mishandling of stored program local variables could lead to unexpected server behavior.
Uninstalling a plugin could affect subsequent execution of prepared statements.
version 3.35.5:
Fix defects in the new ALTER TABLE DROP COLUMN feature that could corrupt the database file.
Fix an obscure query optimizer problem that might cause an incorrect query result.
3.35.4-r1
Updates for SQLite download url (the year is part of the urls).
Added enable flag for built-in SQL math functions, and enable it by default with –enable-all-extensions.
Use the newer buffer API for Python 3 (old API removed in Python 3.10).
Real changes are in devel/devel/ruby-activestorage61 only.
## Rails 6.1.3.1 (March 26, 2021) ##
* Marcel is upgraded to version 1.0.0 to avoid a dependency on GPL-licensed
mime types data.
*George Claghorn*
Real changes are in devel/ruby-activestorage60 only.
## Rails 6.0.3.6 (March 26, 2021) ##
* Marcel is upgraded to version 1.0.0 to avoid a dependency on GPL-licensed
mime types data.
*George Claghorn*
Real changes are in devel/ruby-activestorage52 only.
## Rails 5.2.5 (March 26, 2021) ##
* Marcel is upgraded to version 1.0.0 to avoid a dependency on GPL-licensed
mime types data.
*George Claghorn*
* The Poppler PDF previewer renders a preview image using the original
document's crop box rather than its media box, hiding print margins. This
matches the behavior of the MuPDF previewer.
*Vincent Robert*
Prometheus is now built and supporting Go 1.16.
Note that from this release Prometheus is using Alertmanager v2 by default.
[CHANGE] Alerting: Using Alertmanager v2 API by default.
[CHANGE] Prometheus/Promtool: As agreed on dev summit, binaries are now printing help and usage to stdout instead of stderr.
[FEATURE] Remote: Add support for AWS SigV4 auth method for remote_write.
[FEATURE] Scaleway Discovery: Add Scaleway Service Discovery.
[FEATURE] PromQL: Allow negative offsets. Behind --enable-feature=promql-negative-offset flag.
[FEATURE] experimental Exemplars: Add in-memory storage for exemplars. Behind --enable-feature=exemplar-storage flag.
[FEATURE] UI: Add advanced auto-completion, syntax highlighting and linting to graph page query input.
[ENHANCEMENT] Digital Ocean Discovery: Add __meta_digitalocean_image label.
[ENHANCEMENT] PromQL: Add last_over_time, sgn, clamp functions.
[ENHANCEMENT] Scrape: Add support for specifying type of Authorization header credentials with Bearer by default.
[ENHANCEMENT] Scrape: Add follow_redirects option to scrape configuration.
[ENHANCEMENT] Remote: Allow retries on HTTP 429 response code for remote_write. Disabled by default. See configuration docs for details.
[ENHANCEMENT] Remote: Allow configuring custom headers for remote_read. See configuration docs for details.
[ENHANCEMENT] UI: Hitting Enter now triggers new query.
[ENHANCEMENT] UI: Better handling of long rule and names on the /rules and /targets pages.
[ENHANCEMENT] UI: Add collapse/expand all button on the /targets page.
[BUGFIX] TSDB: Eager deletion of removable blocks on every compaction, saving disk peak space usage.
[BUGFIX] PromQL: Fix parser support for special characters.
[BUGFIX] Rules: Update rule health for append/commit fails.
3.35.4
Fix a defect in the query planner optimization identified by item 8b above.
Fix a defect in the new RETURNING syntax.
Fix the new RETURNING feature so that it raises an error if one of the terms in the RETURNING clause references a unknown table, instead of silently ignoring that error.
Fix an assertion associated with aggregate function processing that was incorrectly triggered by the push-down optimization.
This release incorporates the following changes:
* Add support for Postgres 13
* Add provisional support for Postgres 14
* Upgrade Jquery library to 3.4.1 (Nirgal)
* Allow users to see group owned databases when using "owned only"
* Fix bug where sorting on selects dumped you to the table screen (MichaMEG)
* This release drops support for PHP 7.1
* This will be the last release to support PHP 7.
Release 7.12.1 incorporated the following changes:
* Fix a number of issues related to changes in Postgres 12.
* Fix an issue with truncation of long multibyte strings
* Removal of broken tree branches from table/view browse option
* Properly escape identifiers when browsing tables/views/schemas
* Add support for granting USAGE on sequences
Release 7.12.0 incorporated the following changes:
* PHP 7.1 is now the default version for development
* Added support for all current versions of PostgreSQL (including 12)
* Updated some internal libraries, fixed additional bugs, and merged in patches
Finally, release 5.6 added support for all recent versions of Postgres (at
least 9.3 - 12devel). It also fixed a number of minor bugs and included several
language fixes.
changes in version 3.35.3
Enhance the OP_OpenDup opcode of the bytecode engine so that it works even if the cursor being duplicated itself came from OP_OpenDup. Fix for ticket bb8a9fd4a9b7fce5. This problem only came to light due to the recent MATERIALIZED hint enhancement.
When materializing correlated common table expressions, do so separately for each use case, as that is required for correctness. This fixes a problem that was introduced by the MATERIALIZED hint enhancement.
Fix a problem in the filename normalizer of the unix VFS.
Fix the "box" output mode in the CLI so that it works with statements that returns one or more rows of zero columns (such as PRAGMA incremental_vacuum). Forum post afbbcb5b72.
Improvements to error messages generated by faulty common table expressions. Forum post aa5a0431c99e.
Fix some incorrect assert() statements.
Fix to the SELECT statement syntax diagram so that the FROM clause syntax is shown correctly. Forum post 9ed02582fe.
Fix the EBCDIC character classifier so that it understands newlines as whitespace. Forum post 58540ce22dcd.
Improvements the xBestIndex method in the implementation of the (unsupported) wholenumber virtual table extension so that it does a better job of convincing the query planner to avoid trying to materialize a table with an infinite number of rows.
==============================
Release Notes for Samba 4.13.7
March 24, 2021
==============================
This is a follow-up release to depend on the correct ldb version. This is only
needed when building against a system ldb library.
This is a security release in order to address the following defects:
o CVE-2020-27840: Heap corruption via crafted DN strings.
o CVE-2021-20277: Out of bounds read in AD DC LDAP server.
=======
Details
=======
o CVE-2020-27840:
An anonymous attacker can crash the Samba AD DC LDAP server by sending easily
crafted DNs as part of a bind request. More serious heap corruption is likely
also possible.
o CVE-2021-20277:
User-controlled LDAP filter strings against the AD DC LDAP server may crash
the LDAP server.
For more details, please refer to the security advisories.
Changes since 4.13.6
--------------------
o Release with dependency on ldb version 2.2.1.
3.14.4
This release contains an important fix for a regression introduced by commit
ebe3ad5, which affected the way model instances are converted to parameters for
use in expressions within a query. The bug could manifest when code uses model
instances as parameters in expressions against fields that are not
foreign-keys.
Changes in version 3.35.2:
Fix a problem in the appendvfs.c extension that was introduced into version 3.35.0.
Ensure that date/time functions with no arguments (which generate responses that depend on the current time) are treated as non-deterministic functions. Ticket 2c6c8689fb5f3d2f
Fix a problem in the sqldiff utility program having to do with unusual whitespace characters in a virtual table definition.
Limit the new UNION ALL optimization described by item 8c in the 3.35.0 release so that it does not try to make too many new subqueries. See forum thread 140a67d3d2 for details.
3.35.1:
Fix a bug in the new DROP COLUMN feature when used on columns that are indexed and that are quoted in the index definition.
Documentation improvements.
OpenLDAP 2.4.58
Fixed slapd validity checks for issuerAndThisUpdateCheck
Fixed slapd to alloc new conn struct after freeing old one
Fixed slapd syncrepl to check all contextCSNs
Fixed slapd-bdb lockdetect config
SQLite Release 3.35.0 On 2021-03-12
Added built-in SQL math functions(). (Requires the -DSQLITE_ENABLE_MATH_FUNCTIONS compile-time option.)
Added support for ALTER TABLE DROP COLUMN.
Generalize UPSERT:
Allow multiple ON CONFLICT clauses that are evaluated in order,
The final ON CONFLICT clause may omit the conflict target and yet still use DO UPDATE.
Add support for the RETURNING clause on DELETE, INSERT, and UPDATE statements.
Use less memory when running VACUUM on databases containing very large TEXT or BLOB values. It is no longer necessary to hold the entire TEXT or BLOB in memory all at once.
Add support for the MATERIALIZED and NOT MATERIALIZED hints when specifying common table expressions. The default behavior was formerly NOT MATERIALIZED, but is now changed to MATERIALIZED for CTEs that are used more than once.
The SQLITE_DBCONFIG_ENABLE_TRIGGER and SQLITE_DBCONFIG_ENABLE_VIEW settings are modified so that they only control triggers and views in the main database schema or in attached database schemas and not in the TEMP schema. TEMP triggers and views are always allowed.
Query planner/optimizer improvements:
Enhancements to the min/max optimization so that it works better with the IN operator and the OP_SeekScan optimization of the previous release.
Attempt to process EXISTS operators in the WHERE clause as if they were IN operators, in cases where this is a valid transformation and seems likely to improve performance.
Allow UNION ALL sub-queries to be flattened even if the parent query is a join.
Use an index, if appropriate, on IS NOT NULL expressions in the WHERE clause, even if STAT4 is disabled.
Expressions of the form "x IS NULL" or "x IS NOT NULL" might be converted to simply FALSE or TRUE, if "x" is a column that has a "NOT NULL" constraint and is not involved in an outer join.
Avoid checking foreign key constraints on an UPDATE statement if the UPDATE does not modify any columns associated with the foreign key.
Allow WHERE terms to be pushed down into sub-queries that contain window functions, as long as the WHERE term is made up of entirely of constants and copies of expressions found in the PARTITION BY clauses of all window functions in the sub-query.
CLI enhancements:
Enhance the ".stats" command to accept new arguments "stmt" and "vmstep", causing prepare statement statistics and only the virtual-machine step count to be shown, respectively.
Add the ".filectrl data_version" command.
Enhance the ".once" and ".output" commands so that if the destination argument begins with "|" (indicating that output is redirected into a pipe) then the argument does not need to be quoted.
Bug fixes:
Fix a potential NULL pointer dereference when processing a syntactically incorrect SELECT statement with a correlated WHERE clause and a "HAVING 0" clause. (Also fixed in the 3.34.1 patch release.)
Fix a bug in the IN-operator optimization of version 3.33.0 that can cause an incorrect answer.
Fix incorrect answers from the LIKE operator if the pattern ends with "%" and there is an "ESCAPE '_'" clause.
3.14.3
This release contains a single fix for ensuring NULL values are inserted when
issuing a bulk-insert of heterogeneous dictionaries which may be missing
explicit NULL values.
Update php-redis to latest version 5.3.3, switch php-redis for php56 to
php73 and php74.
Changes are too many to write here, but php-redis supports redis 6.
For more information, please refer <https://pecl.php.net/package-changelog.php?package=redis>.
5.42.0 (2021-03-01)
* Make the ado timestamp conversion proc a normal conversion proc that can
be overridden similar to other conversion procs (jeremyevans)
* Add :reject_nil option to the nested_attributes method, to ignore calls
where nil is passed as the associated object data (jeremyevans)
* Add async_thread_pool plugin for easier async usage with model classes and
support for async destroy, with_pk, and with_pk! methods (jeremyevans)
* Add async_thread_pool Database extension for executing queries
asynchronously using a thread pool (jeremyevans)
* Fix possible thread safety issue in Database#extension that could allow
Module#extended to be called twice with the same Database instance
(jeremyevans)
* Support cases where validations make modifications beyond setting errors
in Model#freeze (jeremyevans)
* Add Model#to_json_data to the json_serializer plugin, returning a JSON
data structure (jeremyevans)
3.14.2
This is a small release mainly to get some fixes out.
* Support for named `Check` and foreign-key constraints.
* Better foreign-key introspection for CockroachDB (and Postgres).
* Register UUID adapter for Postgres.
* Add `fn.array_agg()` to blacklist for automatic value coercion.
Redis 6.2.1
Upgrade urgency: LOW.
Bug fixes:
* Fix sanitize-dump-payload for stream with deleted records
* Prevent client-query-buffer-limit config from being set to lower than 1mb
Improvements:
* Make port, tls-port and bind config options modifiable at runtime
Platform and deployment-related changes:
* Fix compilation error on non-glibc systems if jemalloc is not used
* Improved memory consumption and memory usage tracking on FreeBSD
* Fix compilation on ARM64 MacOS with jemalloc
Modules:
* New Module API for getting user name of a client
* Optimize RM_Call by utilizing a shared reusable client
* Fix crash running CLIENT INFO via RM_Call
Redis 6.2.0 GA Released Tue Feb 22 14:00:00 IST 2021
================================================================================
Upgrade urgency: SECURITY if you use 32bit build of redis (see bellow), MODERATE
if you used earlier versions of Redis 6.2, LOW otherwise.
Integer overflow on 32-bit systems (CVE-2021-21309):
Redis 4.0 or newer uses a configurable limit for the maximum supported bulk
input size. By default, it is 512MB which is a safe value for all platforms.
If the limit is significantly increased, receiving a large request from a client
may trigger several integer overflow scenarios, which would result with buffer
overflow and heap corruption.
Bug fixes:
* Avoid 32-bit overflows when proto-max-bulk-len is set high
* Fix broken protocol in client tracking tracking-redir-broken message
* Avoid unsafe field name characters in INFO commandstats, errorstats, modules
* XINFO able to access expired keys during CLIENT PAUSE WRITE
* Fix allowed length for REPLCONF ip-address, needed due to Sentinel's support for hostnames
* Fix broken protocol in redis-benchmark when used with -a or --dbnum
* XADD counts deleted records too when considering switching to a new listpack
Bug fixes that are only applicable to previous releases of Redis 6.2:
* Fixes in GEOSEARCH bybox (accuracy and mismatch between width and height)
* Fix risk of OOM panic in HRANDFIELD, ZRANDMEMBER commands with huge negative count
* Fix duplicate replicas issue in Sentinel, needed due to hostname support
* Fix Sentinel configuration rewrite
Command behavior changes:
* SRANDMEMBER uses RESP3 array type instead of set type
* EXPIRE, EXPIREAT, SETEX, GETEX: Return error when provided expire time overflows
Other behavior changes:
* Remove ACL subcommand validation if fully added command exists.
Improvements:
* Optimize sorting in GEORADIUS / GEOSEARCH with COUNT
* Optimize HRANDFIELD and ZRANDMEMBER case 4 when ziplist encoded
* Optimize in-place replacement of elements in HSET, HINCRBY, LSET
* Remove redundant list to store pubsub patterns
* Add --insecure option to command line tools
Info fields and introspection changes:
* Add INFO fields to track progress of BGSAVE, AOFRW, replication
Modules:
* RM_ZsetRem: Delete key if empty, the bug could leave empty zset keys
* RM_HashSet: Add COUNT_ALL flag and set errno
Redis 6.2 RC3 Released Tue Feb 1 14:00:00 IST 2021
================================================================================
Upgrade urgency LOW: This is the third Release Candidate of Redis 6.2.
New commands / args:
* Add HRANDFIELD and ZRANDMEMBER commands
* Add FAILOVER command
* Add GETEX, GETDEL commands
* Add PXAT/EXAT arguments to SET command
* Add SYNC arg to FLUSHALL and FLUSHDB, and ASYNC/SYNC arg to SCRIPT FLUSH
Sentinel:
* Add hostname support to Sentinel
* Prevent file descriptors from leaking into Sentinel scripts
* Fix config file line order dependency and config rewrite sequence
New configuration options:
* Add set-proc-title config option to disable changes to the process title
* Add proc-title-template option to control what's shown in the process title
* Add lazyfree-lazy-user-flush config option to control FLUSHALL, FLUSHDB and SCRIPT FLUSH
Bug fixes:
* AOF: recover from last write error by turning on/off appendonly config
* Exit on fsync error when the AOF fsync policy is 'always'
* Avoid assertions (on older kernels) when testing arm64 CoW bug
* CONFIG REWRITE should honor umask settings
* Fix firstkey,lastkey,step in COMMAND command for some commands
Special considerations:
* Fix misleading description of the save configuration directive
Improvements:
* A way to get RDB file via replication without excessive replication buffers
* Optimize performance of clusterGenNodesDescription for large clusters
Info fields and introspection changes:
* SLOWLOG and LATENCY monitor include unblocking time of blocked commands
Modules:
* Add modules API for streams
* Add event for fork child birth and termination
* Add RM_BlockedClientMeasureTime* etc, to track background processing in commandstats
* Fix bug in v6.2, wrong value passed to the new unlink callback
* Fix bug in v6.2, modules blocked on keys unblock on commands like LPUSH
Redis 6.2 RC2 Released Tue Jan 12 16:17:20 IST 2021
================================================================================
Upgrade urgency LOW: This is the second Release Candidate of Redis 6.2.
IMPORTANT: If you're running Redis on ARM64 or a big-endian system, upgrade may
have significant implications. Please be sure to read the notes below.
New commands / args:
* Add the REV, BYLEX and BYSCORE arguments to ZRANGE, and the ZRANGESTORE command
* Add the XAUTOCLAIM command
* Add the MINID trimming strategy and the LIMIT argument to XADD and XTRIM
* Add the ANY argument to GEOSEARCH and GEORADIUS
* Add the CH, NX, XX arguments to GEOADD
* Add the COUNT argument to LPOP and RPOP
* Add the WRITE argument to CLIENT PAUSE for pausing write commands exclusively
* Change the proto-ver argument of HELLO to optional
* Add the CLIENT TRACKINGINFO subcommand
Command behavior changes:
* CLIENT TRACKING yields an error when given overlapping BCAST prefixes
* SWAPDB invalidates WATCHed keys
* SORT command behaves differently when used on a writable replica
Other behavior changes:
* Avoid propagating MULTI/EXEC for read-only transactions
* Remove the read-only flag from TIME, ECHO, ROLE, LASTSAVE
* Fix the command flags of PFDEBUG
* Tracking clients will no longer receive unnecessary key invalidation messages after FLUSHDB
* Sentinel: Fix missing updates to the config file after SENTINEL SET command
Bug fixes with compatibility implications (bugs introduced in Redis 6.0):
* Fix RDB CRC64 checksum on big-endian systems
If you're using big-endian please consider the compatibility implications with
RESTORE, replication and persistence.
* Fix wrong order of key/value in Lua's map response
If your scripts use redis.setresp() or return a map (new in Redis 6.0), please
consider the implications.
Bug fixes that are only applicable to previous releases of Redis 6.2:
* Resolve rare assertions in active defragmentation while loading
Bug fixes:
* Fix the selection of a random element from large hash tables
* Fix an issue where a forked process deletes the parent's pidfile
* Fix crashes when enabling io-threads-do-reads
* Fix a crash in redis-cli after executing cluster backup
* Fix redis-benchmark to use an IP address for the first cluster node
* Fix saving of strings larger than 2GB into RDB files
Additional improvements:
* Improve replication handshake time
* Release client tracking table memory asynchronously in cases where the DB is also freed asynchronously
* Avoid wasteful transient memory allocation in certain cases
* Handle binary string values by the 'requirepass' and 'masterauth' configs
Platform and deployment-related changes:
* Install redis-check-rdb and redis-check-aof as symlinks to redis-server
* Add a check for an ARM64 Linux kernel bug
Due to the potential severity of this issue, Redis will refuse to run on
affected platforms by default.
Info fields and introspection changes:
* Add the errorstats section to the INFO command
* Add the failed_calls and rejected_calls fields INFO's commandstats section
* Report child copy-on-write metrics continuously
Module API changes:
* Add the RedisModule_SendChildCOWInfo API
* Add the may-replicate command flag
Redis 6.2 RC1 Released Mon Dec 14 11:50:00 IST 2020
================================================================================
Upgrade urgency LOW: This is the first Release Candidate of Redis 6.2.
Introduction to the Redis 6.2 release
=====================================
This release is the first significant Redis release managed by the core team
under the new project governance model.
Redis 6.2 includes many new commands and improvements, but no big features. It
mainly makes Redis more complete and addresses issues that have been requested
by many users frequently or for a long time.
Many of these changes were not eligible for 6.0.x for several reasons:
1. They are not backward compatible, which is always the case with new or
extended commands (that cannot be replicated to an older replica).
2. They require a longer release-candidate test cycle.
New commands / args:
* Add SMISMEMBER command that checks multiple members
* Add ZMSCORE command that returns an array of scores
* Add LMOVE and BLMOVE commands that pop and push arbitrarily
* Add RESET command that resets client connection state
* Add COPY command that copies keys
* Add ZDIFF and ZDIFFSTORE commands
* Add ZINTER and ZUNION commands
* Add GEOSEARCH/GEOSEARCHSTORE commands for bounding box spatial queries
* Add GET parameter to SET command, for more powerful GETSET
* Add exclusive range query to XPENDING
* Add exclusive range query to X[REV]RANGE
* Add GT and LT options to ZADD for conditional score updates
* Add CLIENT INFO and CLIENT LIST for specific ids
* Add IDLE argument to XPENDING command
* Add local address to CLIENT LIST, and a CLIENT KILL filter.
* Add NOMKSTREAM option to XADD command
* Add command introspection to Sentinel
* Add SENTINEL MYID subcommand
New features:
* Dump payload sanitization: prevent corrupt payload causing crashes
Has flags to enable full O(N) validation (disabled by default).
* ACL patterns for Pub/Sub channels
* Support ACL for Sentinel mode
* Support getting configuration from both stdin and file at the same time
Lets you avoid storing secrets on the disk.
New features in CLI tools:
* redis-cli RESP3 push support
* redis-cli cluster import support source and target that require auth
* redis-cli URIs able to provide user name in addition to password
* redis-cli/redis-benchmark allow specifying the prefered ciphers/ciphersuites
* redis-cli add -e option to exit with code when command execution fails
Command behavior changes:
* EXISTS should not alter LRU
In Redis 5.0 and 6.0 it would have touched the LRU/LFU of the key.
* OBJECT should not reveal logically expired keys
Will now behave the same TYPE or any other non-DEBUG command.
* Improve db id range check for SELECT and MOVE
Changes the error message text on a wrong db index.
* Modify AUTH / HELLO error message
Changes the error message text when the user isn't found or is disabled.
* BITOPS length limited to proto_max_bulk_len rather than 512MB
The limit is now configurable like in SETRANGE, and APPEND.
* GEORADIUS[BYMEMBER] can fail with -OOM if Redis is over the memory limit
Other behavior changes:
* Optionally (default) fail to start if requested bind address is not available
If you rely on Redis starting successfully even if one of the bind addresses
is not available, you'll need to tune the new config.
* Limit the main db dictionaries expansion to prevent key eviction
In the past big dictionary rehashing could result in massive data eviction.
Now this rehashing is delayed (up to a limit), which can result in performance
loss due to hash collisions.
* CONFIG REWRITE is atomic and safer, but requires write access to the config file's folder
This change was already present in 6.0.9, but was missing from the release
notes.
* A new incremental eviction mechanism that reduces latency on eviction spikes
In pathological cases this can cause memory to grow uncontrolled and may require
specific tuning.
* Not resetting "save" config when Redis is started with command line arguments.
In case you provide command line arguments without "save" and count on it
being disabled, Now the defaults "save" config will kick in.
* Update memory metrics for INFO during loading
* When "supervised" config is enabled, it takes precedence over "daemonize".
* Assertion and panic, print crash log without generating SIGSEGV
* Added crash log report on SIGABRT, instead of silently exiting
* Disable THP (Transparent Huge Pages) if enabled
If you deliberately enabled it, you'll need to config Redis to keep it.
Bug fixes:
* Handle output buffer limits for module blocked clients
Could result in a module sending reply to a blocked client to go beyond the
limit.
* Fix setproctitle related crashes.
Caused various crashes on startup, mainly on Apple M1 chips or under
instrumentation.
* A module doing RM_Call could cause replicas to get nested MULTI
* Backup/restore cluster mode keys to slots map for repl-diskless-load=swapdb
In cluster mode with repl-diskless-load, when loading failed, slot map
wouldn't have been restored.
* Fix oom-score-adj-values range, and bug when used in config file
Enabling setting this in the config file in a line after enabling it, would
have been buggy.
* Reset average ttl when empty databases
Just causing misleading metric in INFO
* Disable rehash when Redis has child process
This could have caused excessive CoW during BGSAVE, replication or AOFRW.
* Further improved ACL algorithm for picking categories
Output of ACL GETUSER is now more similar to the one provided by ACL SETUSER.
* Fix bug with module GIL being released prematurely
Could in theory (and rarely) cause multi-threaded modules to corrupt memory.
* Fix cluster redirect for module command with no firstkey.
* Reduce effect of client tracking causing feedback loop in key eviction
* Kill disk-based fork child when all replicas drop and 'save' is not enabled
* Rewritten commands (modified for propagation) are logged as their original command
* Fix cluster access to unaligned memory (SIGBUS on old ARM)
* If diskless repl child is killed, make sure to reap the child pid
* Broadcast a PONG message when slot's migration is over, may reduce MOVED responses
Other improvements:
* TLS Support in redis-benchmark
* Accelerate diskless master connections, and general re-connections
* Run active defrag while blocked / loading
* Performance and memory reporting improvement - sds take control of its internal fragmentation
* Speedup cluster failover.
Platform / toolchain support related improvements:
* Optionally (not by default) use H/W Monotonic clock for faster time sampling
* Remove the requirements for C11 and _Atomic supporting compiler
This would allow to more easily build and use Redis on older systems and
compilers again.
* Fix crash log registers output on ARM.
* Raspberry build fix.
* Setting process title support for Haiku.
* DragonFlyBSD RSS memory sampling support.
New configuration options:
* Enable configuring OpenSSL using the standard openssl.cnf
* oom-score-adj-values config can now take absolute values (besides relative ones)
* TLS: Add different client cert support.
* Note that a few other changes listed above added their config options.
Info fields and introspection changes:
* Add INFO fields to track diskless and disk-based replication progress
* Add INFO field for main thread cpu time, and scrape system time.
* Add total_forks to INFO STATS
* Add maxclients and cluster_connections to INFO CLIENTS
* Add tracking bcast flag and client redirection in client list
* Fixed INFO client_recent_max_input_buffer includes argv array
* Note that a few other changes listed above added their info fields.
Module API changes:
* Add CTX_FLAGS_DENY_BLOCKING as a unified the way to know if blocking is allowed
* Add data type callbacks for lazy free effort, and unlink
* Add data type callback for COPY command
* Add callbacks for defrag support.
* Add module event for repl-diskless-load swapdb
Module related fixes:
* Moved RMAPI_FUNC_SUPPORTED so that it's usable
* Improve timer accuracy
* Allow '\0' inside of result of RM_CreateStringPrintf
Rails 6.1.3 (February 17, 2021)
[ActionPack]
* Re-define routes when not set correctly via inheritance.
*John Hawthorn*
[ActiveRecord]
* Fix the MySQL adapter to always set the right collation and charset
to the connection session.
*Rafael Mendonça França*
* Fix MySQL adapter handling of time objects when prepared statements
are enabled.
*Rafael Mendonça França*
* Fix scoping in enum fields using conditions that would generate
an IN clause.
*Ryuta Kamizono*
* Skip optimised #exist? query when #include? is called on a relation
with a having clause
Relations that have aliased select values AND a having clause that
references an aliased select value would generate an error when
#include? was called, due to an optimisation that would generate
call #exists? on the relation instead, which effectively alters
the select values of the query (and thus removes the aliased select
values), but leaves the having clause intact. Because the having
clause is then referencing an aliased column that is no longer
present in the simplified query, an ActiveRecord::InvalidStatement
error was raised.
An sample query affected by this problem:
Author.select('COUNT(*) as total_posts', 'authors.*')
.joins(:posts)
.group(:id)
.having('total_posts > 2')
.include?(Author.first)
This change adds an addition check to the condition that skips the
simplified #exists? query, which simply checks for the presence of
a having clause.
Fixes#41417
*Michael Smart*
* Increment postgres prepared statement counter before making a
prepared statement, so if the statement is aborted without Rails
knowledge (e.g., if app gets kill -9d during long-running query or
due to Rack::Timeout), app won't end up in perpetual crash state for
being inconsistent with Postgres.
*wbharding*, *Martin Tepper*
mongo-c-driver 1.17.4
libbson
It is my pleasure to announce libbson 1.17.4.
No changes since 1.17.3; release to keep pace with libmongoc's version.
libmongoc
It is my pleasure to announce the MongoDB C Driver 1.17.4.
Bug fixes:
Fix crash on macOS on client pool shutdown.
Fix spacing in extended JSON output for numberLong.
Clear error in mongoc_collection_find_and_modify_with_opts on a successful retry.
SQL Relay 1.8.0
This release mainly lays the groundwork for some future features, including a generic import/export framework. Some notable progress was also made on the JDBC driver, though it's still not finished. The most significant (finshed) new feature is an aes128 password encryption module.
There are some bugfixes as well. A long-standing issue with postgresql that could cause results from multiple open cursors to get confused has been resolved. A subtle error that could cause counting of bind variables on the client-side to hang has been fixed. A long-standing, but apparently obscure, issue that could cause tables from other MySQL schemas to be included in a "show tables" command has been fixed. As well as various other issues.
Full ChangeLog follows:
unattended tests
added sqlrresultsetdomnode class to c++ client API
fixed datedelimiters parameter
added support for SQLParamOptions with SQLUINTEGER arguments
sqlr-import detects uppercase .CSV suffix now
fixed a csv number-detection but in sqlr-import
fixed a delete[] of a const in sqlr-import
it's possible to specify a commitcount of 0 with sqlr-import now
moved sqlrimportxml/csv classes into libsqlrclient
moved sqlrexportxml/csv classes into libsqlrclient
csv import/export is consistent now
added some event methods to sqlrexport
migrated parsedatetime functions to rudiments datetime class
different postgresql cursors use different stmtNames now
sqlrimportcsv can create a primary key that's not in the CSV now
sqlrexportcsv quotes 12+ digit numbers now
fixed subtle, count-related issues when validating bind variables on the client side, that could cause a hang
added an aes128 pwdenc module
applied a patch to fix a crash in the debug logger (missing "%s")
added a tweak to getsitearchdir.rb to fix incorrect lib/lib64 reporting on some centos x64 systems
fixed mysql getColumnList to distinquish proper db/schema
SQL Relay 1.7.0
This release adds 2 significant features: support for the PostgreSQL client-server protocol, and a "replay" module to help automatically recover from deadlocks and lock-timeouts, but also has the usual assortment of minor bugfixes and internal changes.
Full ChangeLog follows:
added postgresql protocol module
updated postgresql connection module to get column info pre-execute
fixed postgresql connection module type oid bug
added tag filter/moduledata
added moduledata(s)::closeResultSet()/endTransaction()/endSession()
mysql protocol returns empty lobs correctly now (not as nulls)
configure replaces -lfbclient with -lgds on freebsd/firebird-2.0.3
fixed a bug that could cause sqlr-stop to try to kill pid 0
fixed unixodbc detection on solaris 11.4
added configure test for PQdescribePrepared
test improvements
documentation improvements
split sqlrelay-crash directive into its own module
deprecated drop-in replacement libraries in favor of protocol support
fixed various mysql 4.x bugs
sqlr-status creates statistics on heap now instead of stack, to work on platforms with a small default ulimit stack
mysql stored procedure test is bypassed for older mysql
tls test is bypassed for older openssl
added NULL handoff socket workaround
improved shutdown/crash handlers for sqlr-listener/connection
fixed hang when more-than-one address was specified in the instance:addresses attribute
*_null used instead of *_unset on PHP 7.4
SQL Relay 1.6.0
This release mainly addresses some recently discovered regressions, but also adds some internal features that required the minor version to be bumped.
ChangeLog follows:
added begin, commit, rollback events
fixed array_init() calls for php-7.3
integrated my_bool fix for mysql 8.0.1+
mysql sslmode=require/prefer + bad sslca/sslcapath generates warning rather than error now (like the mysql cli)
refactored various routines that parse bind variables out of queries
added bindvariabledelimiters config option to define supported bind variable delimiters
added fakeinputbindvariablesunicodestrings config option
added bind variable delimiters config methods to c++ api
replay trigger can now run a query (eg. "show engine innodb status") and log the reslits to a file when a replay condition occurs
replay trigger doesn't log/replay selects by defalit now (but this is configurable)
updated normalize translation to support queries containing binary data
fixed a backslash-escape bug in the normalize translation
refactored some sqlrclient api private methods
refactored various bind-manipliation/detection methods
sqlr-listener creates tmpdir now on start, if it doesn't exist (because this is often in /run, which is often a tmpfs)
postgresql connection modlie forces re-fetch of column data after execute now
everything uses charstring::isYes/isNo now, instead of direct comparisons against "yes" or "no"
fixed subtle sqlexecdirect bug
fixed subtle sqlserver max-varchar bind length bug
fixed various subtle sqlserver bugs where column-info isn't valid until after execute
odbc connection modlie sets column precision = column length if column precision = -1
when using odbc on front and back end, the object type works in SQLTables now
reslit set translations work with "show databases/tables/etc." queries with an ODBC backend now
increased oid buffer sizes in postgresql connection
fixed typemangling->tablemangling typo in postgresql connection - tablemangling sholid work without typemangling now
fixed a '...\\''...' parsing bug
non-odbc connection modlies now return odbc-compatible(ish) table lists
client info is no longer reset during endSession
fixed a bug that colid cause sqlite "show tables like '...'" to crash
fixed odbc unicode nlil user/password bug
fixed PyString_AsString for python 3.<3
fixed bug that caused some MSSQL lobs to sometimes be returned as nlils when using ODBC on the backend
fixed bug that caused some MSSQL date fields to get returned as garbage
fixed a few older sqlrclient compatibility bugs
fixed SQLFetch parameter type mismatch in ODBC api
removed a non-c++17-compliant "register" from custom_nw logger
added support for nodejs 12
SQLDriverConnect can take an inline DSN now
fixed odbc maxcolumncount=-1 crash
odbc, db2, and informix set bind format error now
The PostgreSQL Global Development Group has released an update to all supported versions of our database system, including 13.2, 12.6, 11.11, 10.16, 9.6.21, and 9.5.25. This release closes two security vulnerabilities and fixes over 80 bugs reported over the last three months.
Additionally, this is the final release of PostgreSQL 9.5. If you are running PostgreSQL 9.5 in a production environment, we suggest that you make plans to upgrade.
For the full list of changes, please review the release notes.
Security Issues
CVE-2021-3393: Partition constraint violation errors leak values of denied columns
Versions Affected: 11 - 13.
A user having an UPDATE privilege on a partitioned table but lacking the SELECT privilege on some column may be able to acquire denied-column values from an error message. This is similar to CVE-2014-8161, but the conditions to exploit are more rare.
The PostgreSQL project thanks Heikki Linnakangas for reporting this problem.
CVE-2021-20229: Single-column SELECT privilege enables reading all columns
Versions Affected: 13.
A user having a SELECT privilege on an individual column can craft a special query that returns all columns of the table.
Additionally, a stored view that uses column-level privileges will have incomplete column-usage bitmaps. In installations that depend on column-level permissions for security, it is recommended to execute CREATE OR REPLACE on all user-defined views to force them to be re-parsed.
The PostgreSQL project thanks Sven Klemm for reporting this problem.
Bug Fixes and Improvements
This update fixes over 80 bugs that were reported in the last several months. Some of these issues only affect version 13, but could also apply to other supported versions.
Some of these fixes include:
Fix an issue with GiST indexes where concurrent insertions could lead to a corrupt index with entries placed in the wrong pages. You should REINDEX any affected GiST indexes.
Fix CREATE INDEX CONCURRENTLY to ensure rows from concurrent prepared transactions are included in the index. Installations that have enabled prepared transactions should REINDEX any concurrently-built indexes.
Fix for possible incorrect query results when a hash aggregation is spilled to disk.
Fix edge case in incremental sort that could lead to sorting results incorrectly or a "retrieved too many tuples in a bounded sort" error.
Avoid crash when a CALL or DO statement that performs a transaction rollback is executed via extended query protocol, such as from prepared statements.
Fix a failure when a PL/pgSQL procedure used CALL on another procedure that has OUT parameters that executed a COMMIT or ROLLBACK.
Remove errors from BEFORE UPDATE triggers on partitioned tables for restrictions that no longer apply.
Several fixes for queries with joins that could lead to error messages such as "no relation entry for relid N" or "failed to build any N-way joins".
Do not consider parallel-restricted or set-returning functions in an ORDER BY expressions when trying to parallelize sorts.
Fix ALTER DEFAULT PRIVILEGES to handle duplicate arguments safely.
Several fixes in behavior when wal_level is set to minimal, including when tables are rewritten within a transaction.
Several fixes for CREATE TABLE LIKE.
Ensure that allocated disk space for a dropped relation (e.g. a table) is released promptly when a transaction is committed.
Fix progress reporting for CLUSTER.
Fix handling of backslash-escaped multibyte characters in COPY FROM.
Fix recently-introduced race conditions in LISTEN/NOTIFY queue handling.
Allow the jsonb concatenation operator (||) to handle all combinations of JSON data types.
Fix WAL-reading logic so that standbys can handle timeline switches correctly. This issue could have shown itself with errors like "requested WAL segment has already been removed".
Several leak fixes for the walsender process around logical decoding and replication.
Ensure that a nonempty value of krb_server_keyfile always overrides any setting of KRB5_KTNAME in the server environment
Several fixes for GSS encryption support.
Ensure the \connect command allows the use of a password in the connection_string argument.
Fix assorted bugs with the \help command.
Several fixes for pg_dump.
Ensure that pg_rewind accounts for all WAL when rewinding a standby server.
Fix memory leak in contrib/auto_explain.
Ensure all postgres_fdw connections are closed if the a user mapping or foreign server object those connections depend on are dropped.
Fix JIT compilation to be compatible with LLVM 11 and LLVM 12.
This update also contains tzdata release 2021a for DST law changes in Russia (Volgograd zone) and South Sudan, plus historical corrections for Australia, Bahamas, Belize, Bermuda, Ghana, Israel, Kenya, Nigeria, Palestine, Seychelles, and Vanuatu.
Notably, the Australia/Currie zone has been corrected to the point where it is identical to Australia/Hobart.
For the full list of changes available, please review the release notes.
PostgreSQL 9.5 is EOL
This is the final release of PostgreSQL 9.5. If you are running PostgreSQL 9.5 in a production environment, we suggest that you make plans to upgrade to a newer, supported version of PostgreSQL. Please see our versioning policy for more information.
Active Record -- Object-relational mapping put on rails
Active Record connects classes to relational database tables to establish an
almost zero-configuration persistence layer for applications. The library
provides a base class that, when subclassed, sets up a mapping between the new
class and an existing table in the database. In context of an application,
these classes are commonly referred to as *models*. Models can also be
connected to other models; this is done by defining *associations*.
This is for Ruby on Rails 6.1.
2.9:
- new feature: SafeRestartable strategy (SAFE_RESTARTABLE) for using a restartable Connection object in a multi-threading program
- tested against Python 3.9
- added requirements-dev.txt
- fixed logging unicode exceptions in python2.7
- added more granular control over use of reverse dns with Kerberos (thanks Azaria)
- support MS Active Directory persistent search (thanks eLeX)
- added support for LDAP signing when using DIGEST-MD5 authentication (thanks Augustin-FL)
- check only for searchResEntries in LDIF conversion (thanks Jay)
- modify-increment now works properly in mock strategies (thanks Saint-Marcel)
- objectGUID are now converted properly (thanks Janne)
- default timeout in asynchronous strategies raised to 20 seconds
2.24.1
[ENHANCEMENT] Cache basic authentication results to significantly improve performance of HTTP endpoints (via an update of prometheus/exporter-toolkit).
[BUGFIX] Prevent user enumeration by timing requests sent to authenticated HTTP endpoints (via an update of prometheus/exporter-toolkit).
2.24.0
[FEATURE] Add TLS and basic authentication to HTTP endpoints.
[FEATURE] promtool: Add check web-config subcommand to check web config files.
[FEATURE] promtool: Add tsdb create-blocks-from openmetrics subcommand to backfill metrics data from an OpenMetrics file.
[ENHANCEMENT] HTTP API: Fast-fail queries with only empty matchers.
[ENHANCEMENT] HTTP API: Support matchers for labels API.
[ENHANCEMENT] promtool: Improve checking of URLs passed on the command line.
[ENHANCEMENT] SD: Expose IPv6 as a label in EC2 SD.
[ENHANCEMENT] SD: Reuse EC2 client, reducing frequency of requesting credentials.
[ENHANCEMENT] TSDB: Add logging when compaction takes more than the block time range.
[ENHANCEMENT] TSDB: Avoid unnecessary GC runs after compaction.
[BUGFIX] HTTP API: Avoid double-closing of channel when quitting multiple times via HTTP.
[BUGFIX] SD: Ignore CNAME records in DNS SD to avoid spurious Invalid SRV record warnings.
[BUGFIX] SD: Avoid config error triggered by valid label selectors in Kubernetes SD.
timescale-license is very hard to understand, but there is clearly no
grant of permission to distribute derived works. Permission is
perhaps granted to distribute unmodified versions, but it's
conditioned on compliance with hard to understand terms and limited
based on purpose of use.
Version 3.2.2 Released on 1 April 2020
Fixed: Removed Thread.h from the public API.
Version 3.2.1 Released on 6 March 2020
New: Include Library version number in zdb.h
Fixed: Simplified test/zdbpp.cpp and added missing header
Fixed: Improved support for MySQL 8 and MariaDB
Version 3.2 Released on 3 Apr 2019
New: C++17 support via zdbpp.h which is distributed with libzdb for more
idiomatic use of libzdb from C++.
New: Support prefetch rows for MySQL and Oracle. Either programatically
via Connection_setFetchSize() or via ResultSet_setFetchSize() or
via a new global fetch-size URL option.
New: MySQL 5.7 and later. Added session query timeout accessible via
Connection_setQueryTimeout()
New: MySQL 8. Added a new URL option auth-plugin which specify the
authentication plugin to use when connecting to a MySQL server.
New: Oracle: Added a new URL option sysdba for connecting with
sysdba privileges.
Fixed: Revert previous fix (#8) and remove last SQL terminator character ';'
in statements, except if preceded with END; to allow for ending a
pl/sql block.
Fixed: Oracle: Set SQL null value in prepared statement
Fixed: Oracle: Handle date/time literal values
Adds support for Multinode TimescaleDB.
Improved promQL query latency by 4x in some cases.
Reduced I/O used by the PostgreSQL stats collector substantially by
changing autovacuum settings.
Fixed metrics produced by Promscale itself
PromQL engine supports @ modifier which is disabled by default.
(see promql-evaluation-flags)
Added configuration for query timeout and default step interval
Improved UX
Notes for people upgrading from 0.1.4 and before
The CLI and ENV option install-timescaledb was renamed to install-extension
Two new flags are added upgrade-extensions by default set to true will
upgrade extensions if newer versions are available and
upgrade-prerelease-extensions by default set to false enabling it will
upgrade extensions to pre-prelease versions if pre-release versions are
available.
We have changed the namespace of the metrics Promscale itself exposes from
ts_prom to promscale. We have also updated the PromQL engine based metrics
to have namespace as promscale instead of prometheus. So, metrics like
prometheus_engine_query_duration_seconds will now be
promscale_engine_query_duration_seconds.
If running into ERROR: out of shared memory (SQLSTATE 53200) during upgrade,
please increase your max_locks_per_transaction setting.
Notes for people upgrading timescaleDB 1.x -> 2.x
You should run
SELECT remove_compression_policy(format('prom_data.%I', table_name),
if_exists=>true) FROM _prom_catalog.metric;
after the upgrade. This cleans up the old way of running compression jobs,
compression will still work (just in the new way).
Prom-Migrator
Adds support for concurrent pulling and pushing to improve migration
throughput. (Please note concurrent push is disabled by default as we've
seem some issues migrating data to Thanos concurrently, which we are still
working out).
TimescaleDB 2.0 adds the much-anticipated support for distributed
hypertables (multi-node TimescaleDB), as well as new features and
enhancements to core functionality to give users better clarity and
more control and flexibility over their data.
This release also adds:
- Support for user-defined actions, allowing users to define,
customize, and schedule automated tasks, which can be run by the
built-in jobs scheduling framework now exposed to users.
- Significant changes to continuous aggregates, which now separate the
view creation from the policy. Users can now refresh individual
regions of the continuous aggregate materialized view, or schedule
automated refreshing via policy.
- Redesigned informational views, including new (and more general)
views for information about hypertable's dimensions and chunks,
policies and user-defined actions, as well as support for multi-node
TimescaleDB.
- Moving all formerly enterprise features into our Community Edition,
and updating Timescale License, which now provides additional (more
permissive) rights to users and developers.
Some of the changes above (e.g., continuous aggregates, updated
informational views) do introduce breaking changes to APIs and are not
backwards compatible. While the update scripts in TimescaleDB 2.0 will
upgrade databases running TimescaleDB 1.x automatically, some of these
API and feature changes may require changes to clients and/or upstream
scripts that rely on the previous APIs. Before upgrading, we recommend
reviewing upgrade documentation at docs.timescale.com for more details.
databases/ruby-activerecord60:
## Rails 6.0.3.5 (February 10, 2021) ##
* Fix possible DoS vector in PostgreSQL money type
Carefully crafted input can cause a DoS via the regular expressions used
for validating the money format in the PostgreSQL adapter. This patch
fixes the regexp.
Thanks to @dee-see from Hackerone for this patch!
[CVE-2021-22880]
*Aaron Patterson*
www/ruby-actionpack60
## Rails 6.0.3.5 (February 10, 2021) ##
* Prevent open redirect when allowed host starts with a dot
[CVE-2021-22881]
Thanks to @tktech (https://hackerone.com/tktech) for reporting this
issue and the patch!
*Aaron Patterson*
## Rails 5.2.4.5 (February 10, 2021) ##
* Fix possible DoS vector in PostgreSQL money type
Carefully crafted input can cause a DoS via the regular expressions used
for validating the money format in the PostgreSQL adapter. This patch
fixes the regexp.
Thanks to @dee-see from Hackerone for this patch!
[CVE-2021-22880]
*Aaron Patterson*
This is a MySQL metric exporter for Prometheus.
I've had this sitting in my tree since pkgsrc-2019Q4, it currently only has
SMF support, someone is more than welcome to add an rc.d script for it.
Upstream changes:
1.414 2020-10-21
* re-release 1.413_001 without further changes
1.413_001 2020-09-28
* Spell check
* Be specific in which files to skip from the distribution
* Author fixes
* Makefile.PL: port WriteMakefile1 from Hash::Merge
* .travis.yml: update for Xenial VMs
* cleanup MANIFEST.SKIP
* bump copyright year
* SQL::Parser correctly parse VALUES and SET clauses containing function invocations with several arguments
patch provided by Edgar J. Holleis
v0.22.0
A new asyncpg release is here.
Notable additions include Python 3.9 support, support for recently added
PostgreSQL types like jsonpath, and last but not least, vastly
improved executemany() performance. Importantly, executemany() is
also now atomic, which means that either all iterations succeed, or
none at all, whereas previously partial results would have remained in
place, unless executemany() was called in a transaction.
There is also the usual assortment of improvements and bugfixes, see the
details below.
This is the last release of asyncpg that supports Python 3.5, which has
reached EOL last September.
Improvements
Vastly speedup executemany by batching protocol messages
Allow using custom Record class
Add Python 3.9 support
Prefer SSL connections by default
Add codecs for a bunch of new builtin types
Expose Pool as asyncpg.Pool
Avoid unnecessary overhead during connection reset
3.14.1
This release contains primarily bugfixes.
Properly delegate to a foreign-key field's db_value() function when converting model instances.
Strip quote marks and parentheses from column names returned by sqlite cursor when a function-call is projected without an alias.
Fix DataSet.create_index() method.
Fix column-to-model mapping in model-select from subquery with joins.
Improvements to foreign-key lazy-loading.
Preserve and handle CHECK() constraints in Sqlite migrator.
Add stddev aggregate function to collection of sqlite user-defined funcs.
Changes in MySQL 5.6.51
Security Notes
The linked OpenSSL library for MySQL Server has been updated to version 1.1.1i. Issues fixed in the new OpenSSL version are described at https://www.openssl.org/news/cl111.txt and https://www.openssl.org/news/vulnerabilities.html.
Bugs Fixed
InnoDB: The full-text search synchronization thread attempted to read a previously-freed word from the index cache.
The server did not handle all cases of the WHERE_CONDITION optimization correctly.
Privileges for some INFORMATION_SCHEMA tables were checked incorrectly.
In certain cases, the server did not handle multiply-nested subqueries correctly.
A buffer overflow in the client library was fixed.
0.16.21
- Fixed validating JSON before decoding.
- Add model method `update_or_create`.
- Add `batch_size` parameter for `bulk_create` method.
- Fix save with F expression and field with source_field.
Changes in MySQL 5.7.33
Optimizer Notes
MySQL attempts to use an ordered index for any ORDER BY or GROUP BY query that has a LIMIT clause, overriding any other choices made by the optimizer, whenever it determines that this would result in faster execution. Because the algorithm for making this determination makes certain assumptions about data distribution and other conditions, it may not always be completely correct, and it is possible in some cases that choosing a different optimization for such queries can provide better performance. To handle such occurrences, it is now possible to disable this optimization by setting the optimizer_switch system variable's prefer_ordering_index flag to off.
For more information about this flag and examples of its use, see Switchable Optimizations, and LIMIT Query Optimization.
Our thanks to Jeremy Cole for the contribution.
Security Notes
The linked OpenSSL library for MySQL Server has been updated to version 1.1.1i. Issues fixed in the new OpenSSL version are described at https://www.openssl.org/news/cl111.txt and https://www.openssl.org/news/vulnerabilities.html.
Functionality Added or Changed
When invoked with the --all-databases option, mysqldump now dumps the mysql database first, so that when the dump file is reloaded, any accounts named in the DEFINER clause of other objects will already have been created.
Bugs Fixed
InnoDB: The full-text search synchronization thread attempted to read a previously-freed word from the index cache.
InnoDB: Calls to numa_all_nodes_ptr were replaced by the numa_get_mems_allowed() function. Thanks to Daniel Black for the contribution.
Replication: When the system variable transaction_write_set_extraction=XXHASH64 is set, which is the default in MySQL 8.0 and a requirement for Group Replication, the collection of writes for a transaction previously had no upper size limit. Now, for standard source to replica replication, the numeric limit on write sets specified by binlog_transaction_dependency_history_size is applied, after which the write set information is discarded but the transaction continues to execute. Because the write set information is then unavailable for the dependency calculation, the transaction is marked as non-concurrent, and is processed sequentially on the replica. For Group Replication, the process of extracting the writes from a transaction is required for conflict detection and certification on all group members, so the write set information cannot be discarded if the transaction is to complete. The byte limit set by group_replication_transaction_size_limit is applied instead of the numeric limit, and if the limit is exceeded, the transaction fails to execute.
Replication: As the number of replicas replicating from a semisynchronous source server increased, locking contention could result in a performance degradation. The locking mechanisms used by the plugins have been changed to use shared locks where possible, avoid unnecessary lock acquisitions, and limit callbacks. The new behaviors can be implemented by enabling the following system variables:
replication_sender_observe_commit_only=1 limits callbacks.
replication_optimize_for_static_plugin_config=1 adds shared locks and avoids unnecessary lock acquisitions. This system variable must be disabled if you want to uninstall the plugin.
Both system variables can be enabled before or after installing the semisynchronous replication plugin, and can be enabled while replication is running. Semisynchronous replication source servers can also get performance benefits from enabling these system variables, because they use the same locking mechanisms as the replicas.
Replication: On a multi-threaded replica where the commit order is preserved, worker threads must wait for all transactions that occur earlier in the relay log to commit before committing their own transactions. If a deadlock occurs because a thread waiting to commit a transaction later in the commit order has locked rows needed by a transaction earlier in the commit order, a deadlock detection algorithm signals the waiting thread to roll back its transaction. Previously, if transaction retries were not available, the worker thread that rolled back its transaction would exit immediately without signalling other worker threads in the commit order, which could stall replication. A worker thread in this situation now waits for its turn to call the rollback function, which means it signals the other threads correctly.
Replication: GTIDs are only available on a server instance up to the number of non-negative values for a signed 64-bit integer (2 to the power of 63 minus 1). If you set the value of gtid_purged to a number that approaches this limit, subsequent commits can cause the server to run out of GTIDs and take the action specified by binlog_error_action. From MySQL 8.0.23, a warning message is issued when the server instance is approaching the limit.
Microsoft Windows: On Windows, running the MySQL server as a service caused shared-memory connections to fail.
The server did not handle all cases of the WHERE_CONDITION optimization correctly.
For the engines which support primary key extension, when the total key length exceeded MAX_KEY_LENGTH or the number of key parts exceeded MAX_REF_PARTS, key parts of primary keys which did not fit within these limits were not added to the secondary key, but key parts of primary keys were unconditionally marked as part of secondary keys.
This led to a situation in which the secondary key was treated as a covering index, which meant sometimes the wrong access method was chosen.
This is fixed by modifying the way in which key parts of primary keys are added to secondary keys so that those which do not fit within which do not fit within the limits mentioned previously mentioned are cleared.
Privileges for some INFORMATION_SCHEMA tables were checked incorrectly.
In certain cases, the server did not handle multiply-nested subqueries correctly.
Certain accounts could cause server startup failure if the skip_name_resolve system variable was enabled.
Client programs could unexpectedly exit if communication packets contained bad data.
A buffer overflow in the client library was fixed.
mysql_config_editor incorrectly treated # in password values as a comment character.
Changes in Version 3.11.3
-------------------------
Issues Resolved
Version 3.11.3 fixes a bug that prevented PyMongo from retrying writes after
a ``writeConcernError`` on MongoDB 4.4+
5.41.0 (2021-02-01)
* Have explicit :text option for a String column take priority over :size
option on PostgreSQL (jeremyevans) (#1750)
* Support a :skip_invalid option in auto_validations plugin for not adding
errors to a column that already has an error (jeremyevans)
* Support a :skip_invalid option in validation_helpers for not adding an
error to a column that already has an error (jeremyevans)
* Support :adder, :remover, and :clearer association options that use
keyword arguments in Ruby 2.7+ (jeremyevans)
* Make pg_interval use the same number of seconds per year and per month
as ActiveSupport::Duration when using ActiveSupport 5.1+ (jeremyevans)
4.2.12
Issues fixed in 4.2.12:
SERVER-40361: Reduce memory footprint of plan cache entries
SERVER-47863: Initial Sync Progress Metrics
SERVER-48471: Hashed indexes may be incorrectly marked multikey and be ineligible as a shard key
SERVER-50769: server restarted after expr{“expr”:”_currentApplyOps.getArrayLength() > 0”,”file”:”src/mongo/db/pipeline/document_source_change_stream_transform.cpp”,”line”:535}}
SERVER-52654: new signing keys not generated by the monitoring-keys-for-HMAC thread
SERVER-52879: Periodic operation latency spikes every 5 minutes due to closing idle cached WT sessions
This version of couchdb, as well as the current version of couchdb 3.x, is
incompatible with OTP 23. While here fix hardcoded paths in patch-aa, making
it clear that this package can't be all that popular ;-)
Bump PKGREVISION for good measure even though this package previously could not
build, in case someone still has a version from before lang/erlang was bumped
lying around.
1.5.2
[bug] [regression] [versioning]
Fixed regression where new “loop detection” feature introduced in 757 produced false positives for revision names that have overlapping substrings between revision number and down revision and/or dependency, if the downrev/dependency were not in sequence form.
[bug] [environment]
Fixed regression where Alembic would fail to create a transaction properly if the sqlalchemy.engine.Connection were a so-called “branched” connection, that is, one where the .connect() method had been called to create a “sub” connection.
1.5.1
[bug] [commands] [installation]
Fixed installation issue where the “templates” directory was not being installed, preventing commands like “list_templates” and “init” from working.
1.5.0
[changed] [environment]
To accommodate SQLAlchemy 1.4 and 2.0, the migration model now no longer assumes that the SQLAlchemy Connection will autocommit an individual operation. This essentially means that for databases that use non-transactional DDL (pysqlite current driver behavior, MySQL), there is still a BEGIN/COMMIT block that will surround each individual migration. Databases that support transactional DDL should continue to have the same flow, either per migration or per-entire run, depending on the value of the Environment.configure.transaction_per_migration flag.
[changed] [environment]
A CommandError is raised if a sqlalchemy.engine.Engine is passed to the MigrationContext.configure() method instead of a sqlalchemy.engine.Connection object. Previously, this would be a warning only.
[changed]
Alembic 1.5.0 now supports Python 2.7 and Python 3.6 and above, as well as SQLAlchemy 1.3.0 and above. Support is removed for Python 3 versions prior to 3.6 and SQLAlchemy versions prior to the 1.3 series.
OpenLDAP 2.4.57 Release (2021/01/18)
Fixed ldapexop to use correct return code
Fixed slapd to remove asserts in UUIDNormalize
Fixed slapd to remove assert in csnValidate
Fixed slapd validity checks for issuerAndThisUpdateCheck
Fixed slapd validity checks for serialNumberAndIssuerCheck
Fixed slapd AVA sort with invalid RDN
Fixed slapd ldap_X509dn2bv to check for invalid BER after RDN count
Fixed slapd saslauthz to remove asserts in validation
Fixed slapd saslauthz to use slap_sl_free on normalized DN
Fixed slapd saslauthz SEGV in slap_parse_user
Fixed slapd modrdn memory leak
Fixed slapd double-free in vrfilter
Fixed slapd cancel operation to correctly terminate
Fixed slapd-ldap fix binds on retry with closed connection
Fixed slapo-syncprov to ignore duplicate sessionlog entries
Changes in version 3.34.1:
Fix a potential use-after-free bug when processing a a subquery with both a correlated WHERE clause and a "HAVING 0" clause and where the parent query is an aggregate.
Fix documentation typos
Fix minor problems in extensions.
1.3.22
oracle
[oracle] [bug]
Fixed regression which occured due to 5755 which implemented isolation level support for Oracle. It has been reported that many Oracle accounts don’t actually have permission to query the v$transaction view so this feature has been altered to gracefully fallback when it fails upon database connect, where the dialect will assume “READ COMMITTED” is the default isolation level as was the case prior to SQLAlchemy 1.3.21. However, explicit use of the Connection.get_isolation_level() method must now necessarily raise an exception, as Oracle databases with this restriction explicitly disallow the user from reading the current isolation level.
Redis 6.0.10
============
Upgrade urgency MODERATE: several bugs with moderate impact are fixed,
Here is a comprehensive list of changes in this release compared to 6.0.9.
Command behavior changes:
* SWAPDB invalidates WATCHed keys
* SORT command behaves differently when used on a writable replica
* EXISTS should not alter LRU
In Redis 5.0 and 6.0 it would have touched the LRU/LFU of the key.
* OBJECT should not reveal logically expired keys
Will now behave the same TYPE or any other non-DEBUG command.
* GEORADIUS[BYMEMBER] can fail with -OOM if Redis is over the memory limit
Other behavior changes:
* Sentinel: Fix missing updates to the config file after SENTINEL SET command
* CONFIG REWRITE is atomic and safer, but requires write access to the config file's folder
This change was already present in 6.0.9, but was missing from the release notes.
Bug fixes with compatibility implications (bugs introduced in Redis 6.0):
* Fix RDB CRC64 checksum on big-endian systems
If you're using big-endian please consider the compatibility implications with
RESTORE, replication and persistence.
* Fix wrong order of key/value in Lua's map response
If your scripts use redis.setresp() or return a map (new in Redis 6.0), please
consider the implications.
Bug fixes:
* Fix an issue where a forked process deletes the parent's pidfile
* Fix crashes when enabling io-threads-do-reads
* Fix a crash in redis-cli after executing cluster backup
* Handle output buffer limits for module blocked clients
Could result in a module sending reply to a blocked client to go beyond the limit.
* Fix setproctitle related crashes.
Caused various crashes on startup, mainly on Apple M1 chips or under instrumentation.
* Backup/restore cluster mode keys to slots map for repl-diskless-load=swapdb
In cluster mode with repl-diskless-load, when loading failed, slot map wouldn't
have been restored.
* Fix oom-score-adj-values range, and bug when used in config file
Enabling setting this in the config file in a line after enabling it, would
have been buggy.
* Reset average ttl when empty databases
Just causing misleading metric in INFO
* Disable rehash when Redis has child process
This could have caused excessive CoW during BGSAVE, replication or AOFRW.
* Further improved ACL algorithm for picking categories
Output of ACL GETUSER is now more similar to the one provided by ACL SETUSER.
* Fix bug with module GIL being released prematurely
Could in theory (and rarely) cause multi-threaded modules to corrupt memory.
* Reduce effect of client tracking causing feedback loop in key eviction
* Fix cluster access to unaligned memory (SIGBUS on old ARM)
* Fix saving of strings larger than 2GB into RDB files
Additional improvements:
* Avoid wasteful transient memory allocation in certain cases
Platform / toolchain support related improvements:
* Fix crash log registers output on ARM.
* Add a check for an ARM64 Linux kernel bug
Due to the potential severity of this issue, Redis will print log warning on startup.
* Raspberry build fix.
New configuration options:
* oom-score-adj-values config can now take absolute values (besides relative ones)
Module related fixes:
* Moved RMAPI_FUNC_SUPPORTED so that it's usable
* Improve timer accuracy
* Allow '\0' inside of result of RM_CreateStringPrintf
5.3.14
Security Notes:
Functionality added or changed:
* Unit tests will allocate/deallocate STMT/DBC/ENV for each test
* Added processing of new UTF8MB4 collations
Bugs fixed:
* myodbc-installer does not show all DSN options (Bug #29753227/95290)
* MASTER: Crash noticed in SQLSetPos (Bug #29630465)
Built using MySQL 5.7.28
5.3.13
Security Notes:
* Connector/ODBC 5.3.13 Commercial upgrades the linked OpenSSL
library to version 1.0.2r which has been publicly reported
as not vulnerable to CVE-2019-1559
(Bug #29489006, CVE-2019-1559)
Functionality added or changed:
Bugs fixed:
* SQL_NO_DATA when fetching VARCHAR(500) with filter
(Bug# 29512548/94545)
Built using MySQL 5.7.26
5.3.12
Security Notes:
Functionality added or changed:
* New connection option for ODBC driver to enable LOAD DATA LOCAL INFILE
Bugs fixed:
* Dynamic linking is broken in MyODBC 5.3.11 (Bug# 28609434/92319)
* Crash in SQLBulkOperations when NO_SSPS is set to 0 (Bug #28289320)
Built using MySQL 5.7.25
5.3.11
Security Notes:
* Fix issues found by Fortify (WL #11829)
Functionality added or changed:
* Fixes in ODBC 5.3 from 8.0 code merge (WL #12199)
* Make sure ODBC 5.3 works with new 8.0 auth. mechanism. (WL #11962)
Bugs fixed:
* Source character set not supported by client error on SHOW TABLES command
(Bug# 28116892/90984)
* SQLColAttribute/SQL_DESC_TYPE_NAME text instead of longtext for
longtext col (Bug# 11761407/53900)
* Connector uses UTF8 charset instead of UTF8MB4 (Bug# 28204756)
* SQLMoreResults does not set statement errors correctly
(Bug# 11757423/49466)
* Master: Connection fails for cache256 user when GET_SERVER_PUBLIC_KEY=1
(Bug# 28359632)
Built using MySQL 5.7.23
5.3.10
Security Notes:
Functionality added or changed:
* Build ODBC Connector with libmysqlclient linked dynamically (WL #11105)
Bugs fixed:
* ODBC Driver issue with SELECT for UPDATE (Bug# 26646688/87457)
* Contribution: Compilation fixes for MySQL 5.5 (Bug# 26633971/87413)
* Contribution: Fix truncated "SSL Certificate Authority" label
(Bug# 26579169/87325)
* OpenRecordset leaking memory client side on Windows ODBC Client
(Bug# 27155880/86473)
* MySQL Connector/ODBC 5.2.5 - Command Timeout does not work
(Bug# 26474362/69416)
* Calling MySQLDrivercConnect with a NULL pcbConnStrOut causes a crash
(Bug# 27101767/88371)
Built using MySQL 5.7.20
5.3.9
Security Notes:
Functionality added or changed:
* Added two new CMake build options. STATIC_MSVCRT to switch /MT and /MD
compiler options in Windows. WITH_NODEFAULTLIB to specify the
/NODEFAULTLIB linker option. (WL# 10890)
Bugs fixed:
* Segmentation fault in SQLFetch() when used with dynamic cursor
(Bug# 18805392)
* SQLExecute() after SQLFreeStmt(SQL_RESET_PARAMS) results
in assert failure (Bug# 19148246)
* SQLForeignKeys() crashing when SQL_MODE='ANSI_QUOTES'
(Bug# 18641824)
* SQLForeignKeys() returns empty result with NO_I_S=0
(Bug# 26388694)
Built using MySQL 5.7.19
----
5.3.8
Security Notes:
* Connector/ODBC 5.3.8 Commercial upgrades the linked OpenSSL
library to version 1.0.2k which has been publicly reported
as not vulnerable to CVE-2017-3732
(http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3732)
(Bug #25615448, CVE-2017-3732)
Functionality added or changed:
* Added a new connection option NO_DATE_OVERFLOW to control returning
of errors when the TIMESTAMP structure used for DATE column contains
non-zero time part (Bug# 25386024)
Bugs fixed:
* SQL_ATTR_MAX_ROWS applies to all result sets on the statement,
and not connection (Bug# 17259397/69554)
* SQLTABLES patch (Bug 13914518) has to be extended for NO_I_S case
(Bug# 14005343)
* Connector/ODBC does not send correct error message when 2006 error occurs
(Bug #25671389)
* Error in Windows Setup Wizard Custom Setup Dialog
(Bug# 25247807/84190)
* Contents in embedded help for myodbc-installer are outdated
(Bug# 18896110/72852)
* SQLGetData() with invalid column number crashes (Bug# 18636600)
* Assert failure in SQLSetDescField() API (Bug# 18641633)
* Metadata functions crash when the catalog/table/column name is long
(Bug #18796005)
* Prefetch causes syntax errors in select queries with parameters
(Bug# 17386788)
Built using MySQL 5.7.18
----
5.3.7
Security Notes:
* Connector/ODBC 5.3.7 Commercial upgrades the linked OpenSSL
library to version 1.0.2j which has been publicly reported
as not vulnerable to CVE-2016-6304
(http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6304)
(Bug #24753385, CVE-2016-6304)
Functionality added or changed:
* Added new options to control TLS versions for connecting:
NO_TLS_1_0, NO_TLS_1_1, NO_TLS_1_2. By Default all TLS versions are enabled
and options allow to disable using of a particular TLS version.
(Bug# 23496903/81640)
* Added a new option SSLMODE to set the SSL mode before connection is made.
The option value can be set to any of the follwing: DISABLED, PREFERRED,
REQUIRED, VERIFY_CA, VERIFY_IDENTITY. This option will override
the deprecated SSLVERIFY and SSL_ENFORCE.
(Bug# 23497043/81641)
Bugs fixed:
* Assertion in ODBC Driver when calling mysql_stmt_close() on a broken
connection (Bug# 25109356/83858)
* Connector ODBC does not build with newer CMake (Bug# 22746557)
* Installation fails in OSX El Capitan (23123503/81113)
Built using MySQL 5.7.17.
----
5.3.6
Functionality added or changed:
* Keywords specific to MySQL server 5.7 (WL#7992)
* Implement SQL_ATTR_QUERY_TIMEOUT statement attribute (WL#7991)
* Added DEFAULT_AUTH and PLUGIN_DIR options in connection parameters.
* Added DISABLE_SSL_DEFAULT connection parameter to disable
connecting through SSL by default.
* Added SSL_ENFORCE connection parameter to enforce SSL connection.
Bugs fixed:
* ODBC Driver not parsing comments correctly (Bug# 16613308/53891)
* Calling SQLGetDiagField with DIAGIDENTIFIER SQL_DIAG_ROW_COUNT always
returns 0 (Bug #11750296/40771)
* ADO hangs when using MySQL ODBC 5.3 ANSI Driver with French characters
(Bug# 20526062)
* Connector/ODBC fails to build when using libmysqlclient 5.7
(Bug# 20685833/76261)
* malloc/free mismatch in MySqlGetPrivateProvileStringW
(Bug# 21074676/76984)
----
5.3.5
Security Notes:
* Connector/ODBC 5.3.5 Commercial upgrades the linked OpenSSL
library to version 1.0.1m which has been publicly reported
as not vulnerable to CVE-2015-0286
(http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0286).
Since the only change in Connector/ODBC 5.3.5 is the inclusion
of OpenSSL libraries publicly reported as unaffected by
CVE-2015-0286, and since Oracle-produced MySQL Community
builds use YaSSL libraries which have been reported as not
affected by CVE-2015-0286, Oracle will not produce builds for
Connector/ODBC Community for version 5.3.5. This means the
Community edition of Connector/ODBC will skip version 5.3.5.
(Bug #20747740, CVE-2015-0286)
----
5.3.4
Functionality added or changed:
* New ODBC connection option to specify the location of RSA public key
(WL #7911)
Bugs fixed:
* SSL CA Path cannot be selected in Linux GUI (Bug #18813389/72716)
----
5.3.3
Functionality added or changed:
Bugs fixed:
* Seg Fault in SQLForeignKeys() when column name contains special characters
(Bug #18286118)
* Add NULL handle checks in ODBC API functions (WL #7807)
----
=== 5.40.0 (2021-01-01)
* Support UPDATE FROM syntax in SQLite 3.33.0+ (jeremyevans)
* Have pg_interval extension work with ActiveSupport 6.1 (jeremyevans)
* Have date_arithmetic extension work with ActiveSupport 6.1 (jeremyevans)
* Avoid method redefinition warnings in verbose warning mode (jeremyevans)
=== 5.39.0 (2020-12-01)
* Support :clustered option for primary key and unique constraints on Microsoft SQL Server (jeremyevans)
* Do not modify the size of binary columns when using set_column_allow_null on Microsoft SQL Server (jeremyevans) (#1736)
* Add a fork safety guide with more detail on how to use Sequel with libraries that fork (janko) (#1733)
* Make the roots_dataset method in the tree plugin work with queries using joins (jeremyevans) (#1731)
* Make Database#tables return partitioned tables on PostgreSQL 10+ (epoberezhny) (#1729, #1730)
=== 5.38.0 (2020-11-01)
* Do not add new Database instances to Sequel::DATABASES if the test connection fails (jeremyevans) (#1727)
* Support the newer com.mysql.cj.jdbc.Driver in the jdbc/mysql adapter (jeremyevans)
* Do not swallow disconnect errors in Database#create_or_replace_view or Database#create_table* on Oracle (jeremyevans)
* Only rescue non-disconnect Sequel::DatabaseErrors in Postgres::Database#server_version (jeremyevans) (#1724)
* Make the single_table_inheritance and prepared_statements plugins work if loaded into the same class (jeremyevans) (#1721)
## 6.1.0: 2020-12-24 {#release-6-1-0}
### Improvements
* Changed to use `:use_paged_results` option value by default.
[GitHub#189][Reported by Kevin McCormack]
### Thanks
* Kevin McCormack
## 6.0.4: 2020-12-06 {#release-6-0-4}
### Improvements
* Enabled concurrency by default.
[GitHub#188][Reported by Kevin McCormack]
7.3.0
- `stream_to` now quotes and escapes its table name.
- Removed `transaction_base::classname()`. Did anyone ever use it?
- Internal reorg of the `transaction` and `transactionfocus` hierarchies.
- Removed the only case of virtual inheritance, related to `namedclass`.
- Internal `concat()` for faster, simpler string concatentation.
- Fix compile omission in string conversions for `nullptr_t`.
- `pqxx::size_buffer()` can now size multiple values at once.
- `multi_to_string()` to convert multiple values into one `std::string`.
- Implicit `zview` constructor from `char const *`. (#389)
- Many `std::string&` parameters are now `zview` or `std::string_view`.
- Now checking statement parameter lengths for overflow.
- `#include <array>` in connection.cxx. (#394)
7.2.1
- Fix infinite loop in converting `char *` to string. (#377)
- Deprecated `namedclass`.
- Convert an entire row using `row::as<type...>()`.
- Internal rework of `field::to()` and `field::as()` functions.
- Some more warning options in maintainer mode.
- Removed the old, DocBook-based tutorial.
- Fixed wrong `query` and SQLSTATE params to some exceptions. (#378)
Version 1.19 - 2020-12-23
* Pre-read the memory mapped regions on systems that support it.
This speeds up operations on big databases.
* gdbmtool: tagged initialization of structured data
Initializers for structured data can be given in tagged form, e.g.:
store somekey { status=2, id={a,u,x}, name="foo" }
* Bugfixes:
** Preserve locking type during database reorganization
3.34.0-r1
Windows MSI installer files are now provided in addition to the exe files (APSW issue 294), as well as wheels for Python 3.6+. Python 3.9 binaries are also now available. The wheels can be installed via pip.
Added Connection.txn_state()
Added constants:
SQLITE_IOERR_CORRUPTFS
0.16.19
- Replace set `TZ` environment variable to `TIMEZONE` to avoid affecting global timezone.
- Allow passing module objects to `models_paths` param of `Tortoise.init_models()`.
- Implement `PydanticMeta.backward_relations`.
- Allow overriding `PydanticMeta` in `PydanticModelCreator`.
- Fixed make_native typo to make_naive in timezone module
- 0.49 | 2020-11-13
- dependency clarified: state range
Previously, the README file intimated that any Guile 1.4.x and
later would work w/ Guile-PG. This has now been clarified to
state the actual working range (1.4.x to 2.0.x, inclusive).
We have plans for adding support for 2.2.x (and maybe 3.x) in
the near to middling future.
See also file test/OK.
- Guile "auto-compilation" suppressed
In all three phases: configuration, build, and test, Guile 2.x
"auto-compilation" of .scm to .go files is suppressed by setting
the env var ‘GUILE_AUTO_COMPILE=0’.
We will do intentional compilation at some point, as soon as we
figure out how to DTRT. See project CMOD-PLAY for experiments.
packaging changes: PostgresQL 9.5 is no longer supported.
Upstream NEWS:
PostGIS 3.1.0
2020/12/18
This version requires PostgreSQL 9.6 or higher and GEOS 3.6 or higher
Additional features are enabled if you are running GEOS 3.9.
* Breaking changes *
- #4737, Bump minimum protobuf-c requirement to 1.1.0 (Raúl Marín)
The configure step will now fail if the requirement isn't
met or explicitly disabled (--without-protobuf)
- #4258, Separated postgis_sfcgal from postgis
into its own lib file and extension (Regina Obe)
- #4577, Drop support for PostgreSQL 9.5 (Raúl Marín)
- #4601, ST_TileEnvelope signature changed.
- #3057, ST_Force3D, ST_Force3DZ, ST_Force3DM and ST_Force4D signatures changed.
* Deprecated signatures *
- Function postgis_svn_version() replaced by postgis_lib_revision()
(Sandro Santilli)
- #4214, Deprecated ST_Count(tablename,...), ST_ApproxCount(tablename, ...)
ST_SummaryStats(tablename, ..),
ST_Histogram(tablename, ...), ST_ApproxHistogram(tablename, ...),
ST_Quantile(tablename, ...), ST_ApproxQuantile(tablename, ...) removed.
(Darafei Praliaskouski)
* New features*
- #4687, (GEOS 3.9+) MaximumInscribedCircle (Paul Ramsey)
- (GEOS 3.9+) Optional gridSize parameter to ST_Union, ST_UnaryUnion,
ST_Difference, ST_Intersection, ST_SymDifference, ST_Subdivide
for overlay with exact tolerance (Sandro Santilli)
- #4624, ST_HexagonGrid and ST_SquareGrid, set returning functions to
generate tilings of the plane (Paul Ramsey)
- #4624, ST_Hexagon and ST_Square, shape generators (Paul Ramsey)
- #4804, (GEOS 3.9+) ST_ReducePrecision allows valid precision reduction
(Paul Ramsey)
- #4710, ST_ClusterKMeans now works with 3D geometries (Darafei Praliaskouski)
- #4801, ST_ClusterKMeans supports weights in POINT[Z]M geometries
(Darafei Praliaskouski)
- #4805, _ST_SortableHash exposed to work around parallel soring performance issue
in Postgres. If your table is huge, use ORDER BY _ST_SortableHash(geom)
instead of ORDER BY geom to make parallel sort faster (Darafei Praliaskouski)
- #4625, Correlation statistics now calculated.
Run ANALYZE for BRIN indexes to start kicking in.
(Darafei Praliaskouski)
- #4698, Add a precision parameter to ST_AsEWKT (Raúl Marín)
* Enhancements *
- #4789, Sped up TopoJSON output for areal TopoGeometry with
many holes (Sandro Santilli)
- #4758, Improved topology noding robustness (Sandro Santilli)
- Make ST_Subdivide interruptable (Sandro Santilli)
- #4660, Changes in double / coordinate printing (Raúl Marín)
- Use the shortest representation (enough to guarantee roundtrip).
- Uses scientific notation for absolute numbers smaller than 1e-8.
The previous behaviour was to output 0 for absolute values smaller than
1e-12 and fixed notation for anything bigger than that.
- Uses scientific notation for absolute numbers greater than 1e+15
(same behaviour).
- The precision parameter now also affects the scientific notation
(before it was fixed [5-8]).
- All output functions now respect the requested precision (without
any limits).
- The default precision is the same (9 for GeoJSON, 15 for everything else).
- #4746, Micro optimizations to the serialization process (Raúl Marín)
- #4623, Optimize varlena returning functions (Raúl Marín)
- #4615, Speed up geojson output (Raúl Marín)
- #4737, Improve performance and reduce memory usage in ST_AsMVT, especially in
queries involving parallelism (Raúl Marín)
- #4719, Fail fast when srids don't match ST_Intersection(geometry,raster)
Also schema qualify calls in function. (Regina Obe)
- #4784, Add ST_CollectionExtract(geometry) with default behaviour of
extracting the components of highest coordinate dimension. (Paul Ramsey)
- #4675, topology.GetRingEdges now implemented in C (Sandro Santilli)
- #4672, Cache getSRSbySRID and getSRIDbySRS for better performance (Raúl Marín)
- #4676, #4657 Avoid decompressing toasted geometries to read only the header
(Raúl Marín)
- #4677, Share gserialized objects between different cache types (Raúl Marín)
- #4601, Add ST_TileEnvelope margin argument (Yuri Astrakhan)
- #2972, Add quiet mode (-q) to pgsql2shp (Kristian Thy)
- #3057, Optional value params for Force3D*, Force4D functions (Kristian Thy)
- #4569, Allow unknown SRID geometry insertion into typmod SRID column (Paul Ramsey)
- #4149, ST_Simplify(geom, 0) is now O(N).
ST_Affine (ST_Translate, ST_TransScale, ST_Rotate) optimized.
ST_SnapToGrid optimized. (Darafei Praliaskouski)
- #4656, Cast a geojson_text::geometry for implicit GeoJSON ingestion (Raúl Marín)
1.3.21
orm
[orm] [bug]
Added a comprehensive check and an informative error message for the case where a mapped class, or a string mapped class name, is passed to relationship.secondary. This is an extremely common error which warrants a clear message.
Additionally, added a new rule to the class registry resolution such that with regards to the relationship.secondary parameter, if a mapped class and its table are of the identical string name, the Table will be favored when resolving this parameter. In all other cases, the class continues to be favored if a class and table share the identical name.
[orm] [bug]
Fixed bug in Query.update() where objects in the _ormsession.Session that were already expired would be unnecessarily SELECTed individually when they were refreshed by the “evaluate”synchronize strategy.
[orm] [bug]
Fixed bug involving the restore_load_context option of ORM events such as InstanceEvents.load() such that the flag would not be carried along to subclasses which were mapped after the event handler were first established.
sql
[sql] [bug]
A warning is emmitted if a returning() method such as Insert.returning() is called multiple times, as this does not yet support additive operation. Version 1.4 will support additive operation for this. Additionally, any combination of the Insert.returning() and ValuesBase.return_defaults() methods now raises an error as these methods are mutually exclusive; previously the operation would fail silently.
[sql] [bug]
Fixed structural compiler issue where some constructs such as MySQL / PostgreSQL “on conflict / on duplicate key” would rely upon the state of the Compiler object being fixed against their statement as the top level statement, which would fail in cases where those statements are branched from a different context, such as a DDL construct linked to a SQL statement.
postgresql
[postgresql] [usecase]
Added new parameter ExcludeConstraint.ops to the ExcludeConstraint object, to support operator class specification with this constraint. Pull request courtesy Alon Menczer.
[postgresql] [bug] [mysql]
Fixed regression introduced in 1.3.2 for the PostgreSQL dialect, also copied out to the MySQL dialect’s feature in 1.3.18, where usage of a non Table construct such as text() as the argument to Select.with_for_update.of would fail to be accommodated correctly within the PostgreSQL or MySQL compilers.
mysql
[mysql] [bug] [reflection]
Fixed issue where reflecting a server default on MariaDB only that contained a decimal point in the value would fail to be reflected correctly, leading towards a reflected table that lacked any server default.
[mysql] [sql]
Added missing keywords to the RESERVED_WORDS list for the MySQL dialect: action, level, mode, status, text, time. Pull request courtesy Oscar Batori.
sqlite
[sqlite] [usecase]
Added sqlite_with_rowid=False dialect keyword to enable creating tables as CREATE TABLE … WITHOUT ROWID. Patch courtesy Sean Anderson.
mssql
[mssql] [bug]
Fixed bug where a CREATE INDEX statement was rendered incorrectly when both mssql-include and mssql_where were specified. Pull request courtesy @Adiorz.
[mssql] [bug]
Added SQL Server code “01000” to the list of disconnect codes.
[mssql] [reflection] [sqlite]
Fixed issue with composite primary key columns not being reported in the correct order. Patch courtesy @fulpm.
oracle
[oracle] [usecase]
Implemented support for the SERIALIZABLE isolation level for Oracle databases, as well as a real implementation for Connection.get_isolation_level().
2.23.0:
[CHANGE] UI: Make the React UI default.
[CHANGE] Remote write: The following metrics were removed/renamed in remote write.
prometheus_remote_storage_succeeded_samples_total was removed and prometheus_remote_storage_samples_total was introduced for all the samples attempted to send.
prometheus_remote_storage_sent_bytes_total was removed and replaced with prometheus_remote_storage_samples_bytes_total and prometheus_remote_storage_metadata_bytes_total.
prometheus_remote_storage_failed_samples_total -> prometheus_remote_storage_samples_failed_total .
prometheus_remote_storage_retried_samples_total -> prometheus_remote_storage_samples_retried_total.
prometheus_remote_storage_dropped_samples_total -> prometheus_remote_storage_samples_dropped_total.
prometheus_remote_storage_pending_samples -> prometheus_remote_storage_samples_pending.
[CHANGE] Remote: Do not collect non-initialized timestamp metrics.
[FEATURE] [EXPERIMENTAL] Remote write: Allow metric metadata to be propagated via remote write. The following new metrics were introduced: prometheus_remote_storage_metadata_total, prometheus_remote_storage_metadata_failed_total, prometheus_remote_storage_metadata_retried_total, prometheus_remote_storage_metadata_bytes_total.
[ENHANCEMENT] Remote write: Added a metric prometheus_remote_storage_max_samples_per_send for remote write.
[ENHANCEMENT] TSDB: Make the snapshot directory name always the same length.
[ENHANCEMENT] TSDB: Create a checkpoint only once at the end of all head compactions.
[ENHANCEMENT] TSDB: Avoid Series API from hitting the chunks.
[ENHANCEMENT] TSDB: Cache label name and last value when adding series during compactions making compactions faster.
[ENHANCEMENT] PromQL: Improved performance of Hash method making queries a bit faster.
[ENHANCEMENT] promtool: tsdb list now prints block sizes.
[ENHANCEMENT] promtool: Calculate mint and maxt per test avoiding unnecessary calculations.
[ENHANCEMENT] SD: Add filtering of services to Docker Swarm SD.
[BUGFIX] React UI: Fix button display when there are no panels.
[BUGFIX] PromQL: Fix timestamp() method for vector selector inside parenthesis.
[BUGFIX] PromQL: Don't include rendered expression on PromQL parse errors.
[BUGFIX] web: Fix panic with double close() of channel on calling /-/quit/.
[BUGFIX] TSDB: Fixed WAL corruption on partial writes within a page causing invalid checksum error on WAL replay.
[BUGFIX] Update config metrics prometheus_config_last_reload_successful and prometheus_config_last_reload_success_timestamp_seconds right after initial validation before starting TSDB.
[BUGFIX] promtool: Correctly detect duplicate label names in exposition.
Changes in Version 3.11.2
Issues Resolved
Version 3.11.2 includes a number of bugfixes. Highlights include:
Fixed a memory leak caused by failing SDAM monitor checks on Python 3 (PYTHON-2433).
Fixed a regression that changed the string representation of BulkWriteError (PYTHON-2438).
Fixed a bug that made it impossible to use bson.codec_options.CodecOptions.with_options() and with_options() on some early versions of Python 3.4 and Python 3.5 due to a bug in the standard library implementation of collections.namedtuple._asdict() (PYTHON-2440).
Fixed a bug that resulted in a TypeError exception when a PyOpenSSL socket was configured with a timeout of None (PYTHON-2443).
Changes in Version 3.11.1
Version 3.11.1 adds support for Python 3.9 and includes a number of bugfixes. Highlights include:
Support for Python 3.9.
Initial support for Azure and GCP KMS providers for client side field level encryption is in beta. See the docstring for MongoClient, AutoEncryptionOpts, and encryption. Note: Backwards-breaking changes may be made before the final release.
Fixed a bug where the bson.json_util.JSONOptions API did not match the bson.codec_options.CodecOptions API due to the absence of a bson.json_util.JSONOptions.with_options() method. This method has now been added.
Fixed a bug which made it impossible to serialize BulkWriteError instances using pickle.
Fixed a bug wherein PyMongo did not always discard an implicit session after encountering a network error.
Fixed a bug where connections created in the background were not authenticated.
Fixed a memory leak in the bson module when using a TypeRegistry.
Changes in Version 3.11.0
Version 3.11 adds support for MongoDB 4.4 and includes a number of bug fixes. Highlights include:
Support for OCSP (Online Certificate Status Protocol).
Support for PyOpenSSL as an alternative TLS implementation. PyOpenSSL is required for OCSP support. It will also be installed when using the “tls” extra if the version of Python in use is older than 2.7.9.
Support for the MONGODB-AWS authentication mechanism.
Support for the directConnection URI option and kwarg to MongoClient.
Support for speculative authentication attempts in connection handshakes which reduces the number of network roundtrips needed to authenticate new connections on MongoDB 4.4+.
Support for creating collections in multi-document transactions with create_collection() on MongoDB 4.4+.
Added index hinting support to the replace_one(), update_one(), update_many(), find_one_and_replace(), find_one_and_update(), delete_one(), delete_many(), and find_one_and_delete() commands.
Added index hinting support to the ReplaceOne, UpdateOne, UpdateMany, DeleteOne, and DeleteMany bulk operations.
Added support for bson.binary.UuidRepresentation.UNSPECIFIED and MongoClient(uuidRepresentation='unspecified') which will become the default UUID representation starting in PyMongo 4.0. See Handling UUID Data for details.
Added the background parameter to pymongo.database.Database.validate_collection(). For a description of this parameter see the MongoDB documentation for the validate command.
Added the allow_disk_use parameters to pymongo.collection.Collection.find().
Added the hedge parameter to PrimaryPreferred, Secondary, SecondaryPreferred, Nearest to support disabling (or explicitly enabling) hedged reads in MongoDB 4.4+.
Fixed a bug in change streams that could cause PyMongo to miss some change documents when resuming a stream that was started without a resume token and whose first batch did not contain any change documents.
Fixed an bug where using gevent.Timeout to timeout an operation could lead to a deadlock.
Deprecations:
Deprecated the oplog_replay parameter to pymongo.collection.Collection.find(). Starting in MongoDB 4.4, the server optimizes queries against the oplog collection without requiring the user to set this flag.
Deprecated pymongo.collection.Collection.reindex(). Use command() to run the reIndex command instead.
Deprecated pymongo.mongo_client.MongoClient.fsync(). Use command() to run the fsync command instead.
Deprecated pymongo.mongo_client.MongoClient.unlock(). Use command() to run the fsyncUnlock command instead. See the documentation for more information.
Deprecated pymongo.mongo_client.MongoClient.is_locked. Use command() to run the currentOp command instead. See the documentation for more information.
Unavoidable breaking changes:
GridFSBucket and GridFS do not support multi-document transactions. Running a GridFS operation in a transaction now always raises the following error: InvalidOperation: GridFS does not support multi-document transactions
repmgr 5.2.1 is a minor release.
A.1.1. Improvements
repmgr standby clone: option --recovery-min-apply-delay added, overriding any setting present in repmgr.conf.
A.1.2. Bug fixes
Configuration: fix parsing of replication_type configuration parameter.
repmgr standby clone: handle case where postgresql.auto.conf is absent on the source node.
repmgr standby clone: in PostgreSQL 11 and later, an existing data directory's permissions will not be changed to 0700 if they are already set to 0750.
repmgrd: prevent termination when local node not available and standby_disconnect_on_failover is set.
repmgrd: ensure reconnect_interval is correctly handled.
repmgr witness --help: fix witness unregister description.
Slony 2.2.10 now available
The next bug fix release in the 2.2.x series is now available. This release includes the following
* Remove unsupported warning with PG13
5.1.0 (2020-12-03)
==================
Features
--------
- Support ``GenericAliases`` (``MultiDict[str]``) for Python 3.9+
Bugfixes
--------
- Synchronize the declared supported Python versions in ``setup.py`` with actually supported and tested ones.
Slony 2.2.9 now available
The next bug fix release in the 2.2.x series is now available. This release includes the following
* fix slonik_build_env.pl so it works with PG11+
* Remove unsupported warning with PG12
* Fix compiler warnings with -fno-common
wal2json is an output plugin for logical decoding. It means that the plugin
have access to tuples produced by INSERT and UPDATE. Also, UPDATE/DELETE old
row versions can be accessed depending on the configured replica identity.
Changes can be consumed using the streaming protocol (logical replication
slots) or by a special SQL API.
4.2.11:
Issues fixed in 4.2.11:
SERVER-43664: Speedup WiredTiger storage engine startup for many tables by optimizing WiredTigerUtil::setTableLogging()
SERVER-45938: Allow matching O/OU/DC in client x509 cert if clusterMode:keyFile
SERVER-48523: Unconditionally check the first entry in the oplog when attempting to resume a change stream
SERVER-51120: Find queries with SORT_MERGE incorrectly sort the results when the collation is specified
WT-6507: Exit cache eviction worker after our operation has timed out
All JIRA issues closed in 4.2.11
4.2.10:
Issues fixed in 4.2.10:
SERVER-26726: Check number of arguments for createIndex() and throw error if more than two arguments
SERVER-31368: Log time spent waiting for other shards in merge cursors aggregation stage
SERVER-37422: Log balancer start and stop events in the actionlog
SERVER-40317: $facet execution has no limit on how much memory it can consume
SERVER-43233: Add ability to request only specific attribute(s) for the LDAP groups
SERVER-47469: applyOps does not take exclusive lock for views operation
SERVER-50463: Make PooledLDAPConnection::refresh take self-ownership
SERVER-51041: Throttle starting transactions for secondary reads
All JIRA issues closed in 4.2.10
4.2.9:
Issues fixed in 4.2.9:
SERVER-44051: getShardDistribution() does not report “Collection XYZ is not sharded” on dropped but previously sharded collections
SERVER-45610: Some reads work while system is RECOVERING
SERVER-47714: Secondary asserts on system.profile collection with WiredTigerRecordStore::insertRecord 95: Operation not supported
SERVER-48067: Reduce memory consumption for unique index builds with large numbers of non-unique keys
SERVER-49233: Introduce a flag to toggle the logic for bumping collection’s major version during split
WT-6480: Fix a bug where files without block modification information were repeatedly copied at each incremental backup
All JIRA issues closed in 4.2.9
4.2.8:
Issues fixed in 4.2.8:
SERVER-46897: REMOVED node may never send heartbeat to fetch newest config
SERVER-47799: AsyncRequestsSender should update replica set monitor in between retries for InterruptedAtShutdown
SERVER-47994: Fix for numerical overflow in GeoHash
SERVER-48307: 3 Transactions that write to exactly one shard and read from one or more other shards may incorrectly indicate failure on retry after successful commit
WT-6366: Off-by-one overflow in block-modification bitmaps for incremental backup
All JIRA issues closed in 4.2.8