Changes in MySQL 5.7.30:
JSON Notes
The rapidjson library included with MySQL has been upgraded to the GitHub snapshot of 16 January 2020. A fix for a compiler error encountered when building from the snapshot on Mac OS X has been added.
Packaging Notes
Binary packages that include curl rather than linking to the system curl library have been upgraded to use curl 7.69.0.
The bundled libedit library was upgraded to version 3.1.
Bugs Fixed
InnoDB: The row_upd_clust_rec_by_insert function, which marks a clustered index record as deleted and inserts an updated version of the record into the clustered index, passed an incorrect n_ext value (the total number of external fields) to lower level functions, causing an assertion failure.
InnoDB: An operation performed with the innodb_buffer_pool_evict debug variable set to uncompressed caused an assertion failure.
InnoDB: An add column operation caused an assertion failure. The failure was due to a dangling pointer.
InnoDB: Updating certain InnoDB system variables that take string values raised invalid read errors during Valgrind testing.
InnoDB: An insert statement on a table with a spatial index raised a record type mismatch assertion due to a tuple corruption.
InnoDB: A function that calculates undo log record size could calculate an incorrect length value in the case of a corrupted undo log record, resulting in a malloc failure. Assertion code was added to detect incorrect calculations.
Replication: While an SQL statement was in the process of being rewritten for the binary log so that sensitive information did not appear in plain text, if a SHOW PROCESSLIST statement was used to inspect the query, the query could become corrupted when it was written to the binary log, causing replication to stop. The process of rewriting the query is now kept private, and the query thread is updated only when rewriting is complete.
Replication: When a GRANT or REVOKE statement is only partially executed, an incident event is logged in the binary log, which makes the replication slave's applier thread stop so that the slave can be reconciled manually with the master. Previously, if a failed GRANT or REVOKE statement was the first statement executed in the session, no GTID was applied to the incident event (because the cache manager did not yet exist for the session), causing an error on the replication slave. Also, no incident event was logged in the situation where a GRANT statement created a user but then failed because the privileges had been specified incorrectly, again causing an error on the replication slave. Both these issues have now been fixed.
Replication: When a replication slave has a generated column that the master does not have in that table, with a secondary index on the generated column, the generated expression should be evaluated and the value stored by the storage engine in the secondary index. When row-based binary logging is in use, the replication slave assigns default values to any fields that are not in the master's definition of the table. In the case of a generated column, which does not have a default value, the slave was previously assigning a null or a zero value to the column. This value was then stored by the storage engine in the secondary index, causing both the table and the index to become corrupted. To fix this issue, generated columns in a table on a replication slave are now re-evaluated before the values are sent to the storage engine.
Replication: In the event of an unplanned disconnection of a replication slave from the master, the reference to the master's dump thread might not be removed from the list of registered slaves, in which case statements that accessed the list of slaves would fail. The issue has now been fixed.
Replication: With the settings binlog_format=MIXED, tx_isolation=READ-COMMITTED, and binlog_row_image=FULL, an INSERT ... SELECT query involving a transactional storage engine omitted any columns with a null value from the row image written to the binary log. This happened because when processing INSERT ... SELECT statements, the columns were marked for inserts before the binary logging format was selected. The issue has now been fixed.
The -libs-compat RPM package is now built with system zlib to avoid problems with unrestricted export of symbols in libmysqlclient.so.18.
The Event Scheduler had a memory leak.
Under certain circumstances, a memcached command could result in reading an uninitialized memory buffer, causing a failure.
Using ALTER USER to reset an account MAX_USER_CONNECTIONS value did not take effect until all current account connections terminated, if there were any.
A materialized subquery including a condition in which a column value was used as input to a nondeterministic function produced incorrect results.
CONCAT() and CONCAT_WS() could produce incorrect results in rare cases due to incorrect substring handling.
Scheduling of events could be disturbed by removing events.
Client programs could load authentication plugins from outside the plugin library.
The server did not handle correctly a UNION in which one of the queries contained a subquery that used ORDER BY.
A query with a WHERE clause whose predicate contained a numeric value in scientific notation was not handled correctly.
In addition, attempting to insert a particular integer specified as a string caused a server exit when the string-to-integer conversion was not successful.
Previously, mysqlpump read the [mysql_dump] and [client] groups from option files. mysqlpump now additionally reads the [mysqlpump] group. The [mysql_dump] group is still accepted but is deprecated.
A multi-table UPDATE statement which updated a table joined to a derived table that joined two other tables was not optimized properly as it had been in MySQL 5.6, instead being treated as if STRAIGHT_JOIN had been used with the subquery creating the derived table.
Thes are not supported by pkg_alternatives, and lead to breakage as found
in <http://mail-index.netbsd.org/tech-pkg/2020/05/06/msg023089.html>.
In many cases these were unnecessary anyway, as they match the corresponding
command that pkg_alternatives will have automatically detected manual page
entries for, plus many of them did not support PKGMANDIR.
In the one case (databases/py-peewee) where the manual page does not match
the command name, pkg_alternatives will need to be enhanced to support this
before it can be re-enabled.
Redis 6.0.1
===========
Upgrade urgency HIGH: This release fixes a crash when builiding against
Libc malloc.
Here we revert 8110ba888, an optimization that causes a crash due to a
bug in the code. It does not happen with the default allocator because of
differences between Jemalloc and libc malloc, so this escaped all our
testing but was reported by a user. We'll add back the original optimization
that was reverted here later, after checking what happens: it is not a
critical optimization.
Redis 6.0.0 GA
==============
Upgrade urgency CRITICAL: many bugs fixed compared to the last release
candidate. Better to upgrade if you see things
affecting your environment in the changelog.
Hi all, finally we have Redis 6.0.0 GA! Enjoy this new Redis release.
Most of the documentation was updated today so that you can likely
find what you are looking for about the new features at redis.io.
This is the list of what changed compared to the previoius release candidate:
* XCLAIM AOF/replicas propagation fixed.
* Client side caching: new NOLOOP option to avoid getting notified about
changes performed by ourselves.
* ACL GENPASS now uses HMAC-SHA256 and have an optional "bits" argument.
It means you can use it as a general purpose "secure random strings"
primitive!
* Cluster "SLOTS" subcommand memory optimization.
* The LCS command is now a subcommand of STRALGO.
* Meaningful offset for replicas as well. More successful partial
resynchronizations.
* Optimize memory usage of deferred replies.
* Faster CRC64 algorithm for faster RDB loading.
* XINFO STREAM FULL, a new subcommand to get the whole stream state.
* CLIENT KILL USER <username>.
* MIGRATE AUTH2 option, for ACL style authentication support.
* Other random bugfixes.
Update ruby-sequel to 5.32.0.
=== 5.32.0 (2020-05-01)
* Allow Database#create_table? work with :partition_of option on PostgreSQL (jeremyevans) (#1690)
* Add fiber_concurrency extension, for using Fiber.current instead of Thread.current for checking out connections (jeremyevans)
* Move most Sequel singleton methods into a module that extends Sequel for easier overriding (jeremyevans)
* Fix method visibility issues in model, plugin, extension, and adapter code (jeremyevans)
* Avoid defining conversion procs for PostgreSQL inet/cidr types in pg_inet extension when using sequel_pg 1.13.0+ (jeremyevans)
* Add run_transaction_hooks Database extension, allowing for running the transaction hooks before commit/rollback, for use with transactional testing (jeremyevans)
* Recognize timestamp(N) with time zone type (isc) (#1684)
UPdate ruby-moneta to 1.3.0.
1.3.0
* Transformer - add :each_key support (#170)
* Server - add :each_key support, use non-blocking IO (#165)
* Builder - dup options before passing to adapter/proxy (#174)
* Adapter::Couch - add HTTP basic auth support
* Support MRI 2.7.0 (#172)
* Minimum required MRI version is now 2.3.0 (#172)
mongod_options.cpp doesn't contain any pathnames anymore.
While here, the substitutions for /var looked suspicious but were ok
since everything happens in the mongodb/ subdirectory.
3.5.0:
* Removed exception trapping from __del__ methods. redis-py objects that
hold various resources implement __del__ cleanup methods to release
those resources when the object goes out of scope. This provides a
fallback for when these objects aren't explicitly closed by user code.
Prior to this change any errors encountered in closing these resources
would be hidden from the user.
* Expanded support for connection strings specifying a username connecting
to pre-v6 servers.
* Optimized Lock's blocking_timeout and sleep. If the lock cannot be
acquired and the sleep value would cause the loop to sleep beyond
blocking_timeout, fail immediately.
* Added support for passing Python memoryviews to Redis command args that
expect strings or bytes. The memoryview instance is sent directly to
the socket such that there are zero copies made of the underlying data
during command packing.
* HSET command now can accept multiple pairs. HMSET has been marked as
deprecated now.
* Don't manually DISCARD when encountering an ExecAbortError.
* Reset the watched state of pipelines after calling exec. This saves
a roundtrip to the server by not having to call UNWATCH within
Pipeline.reset().
* Added the KEEPTTL option for the SET command.
* Added the MEMORY STATS command.
* Lock.extend() now has a new option, `replace_ttl`. When False (the
default), Lock.extend() adds the `additional_time` to the lock's existing
TTL. When replace_ttl=True, the lock's existing TTL is replaced with
the value of `additional_time`.
* Add testing and support for PyPy.
Update ruby-sequel to 5.31.0.
=== 5.31.0 (2020-04-01)
* Fix alter_table drop_constraint :primary_key option on SQLite for non-integer primary keys (jeremyevans)
* Add skip_saving_columns plugin, which supports columns to skip when saving, and skips generated columns by default (joeosburn, jeremyevans) (#1681, #1682)
* Add support for creating partitioned tables in PostgreSQL 10+ using :partition_by and :partition_of options (jeremyevans)
* Dump generated columns as generated columns when using the schema_dumper with :same_db option on PostgreSQL 12+ (jeremyevans) (#1680)
* Ignore defaults for generated columns by default when using the schema dumper (jeremyevans) (#1680)
* Include generated columns in schema on SQLite 3.31+ (jeremyevans)
* Add :generated schema entry on PostgreSQL 12+ and SQLite 3.31+ for whether the columns is generated (jeremyevans)
* Add association_lazy_eager_option plugin for supporting :eager option for association method (jeremyevans)
* Add forbid_lazy_load plugin for forbidding lazy loading of associations, to help find N+1 issues (jeremyevans)
Update ruby-activeldap to 6.0.1.
## 6.0.1: 2020-04-21 {#release-6-0-1}
### Improvements
* Dropped support for Ruby 2.4.
* Stopped using paged results when we need only one entry.
[GitHub#173][Patch by Kevin McCormack]
### Thanks
* Kevin McCormack
## 6.0.0: 2020-04-16 {#release-6-0-0}
### Improvements
* Removed needless `rubyforge_project` from `.gemspec`.
[GitHub#167][Patch by Olle Jonsson]
* Added support for reusing parent configuration for omitted
configuration items when creating a connection per class or DN.
* jndi: Added support for processing DN that includes backslash.
* jndi: Added a CI job for JRuby 9.
[GitHub#170][Patch by Kevin McCormack]
* jndi: Added support for paged search.
[GitHub#171][Patch by Kevin McCormack]
* Added support for Active Model 6.
* `search`: Added `:used_paged_results` and `:page_size` options.
### Thanks
* Olle Jonsson
* Kevin McCormack
3.13.3
Allow arbitrary keyword arguments to be passed to DataSet constructor, which are then passed to the instrospector.
Allow scalar subqueries to be compared using numeric operands.
Fix bulk_create() when model being inserted uses FK identifiers.
Fix bulk_update() so that PK values are properly coerced to the right data-type (e.g. UUIDs to strings for Sqlite).
Allow array indices to be used as dict keys, e.g. for the purposes of updating a single array index value.
2.17.2:
[BUGFIX] Federation: Register federation metrics
[BUGFIX] PromQL: Fix panic in parser error handling
[BUGFIX] Rules: Fix reloads hanging when deleting a rule group that is being evaluated
[BUGFIX] TSDB: Fix a memory leak when prometheus starts with an empty TSDB WAL
[BUGFIX] TSDB: Make isolation more robust to panics in web handlers
I'm unable to find a useful changelog, so unfortunately if you want to see
what has changed since 6.4.0 then you'll need to head over to
https://www.elastic.co/guide/en/elasticsearch/reference/6.8/es-release-notes.html
and read each of the individual links for every single point release.
While here fix some build issues and pkglint warnings.
In previous commit, I imported the mariadb55-client files into the
mariadb55-server. This changes fixes that and brings the MariaDB 5.5.67
update I meant to commit.
This is an attempt to make a DataMapper for GObject. Mostly because I'm
sick of doing this by hand in C. It would be cool if it would work across
language boundries using GObject Introspection too.
1.4.2:
bug
[bug] [tests]
Fixed an issue that prevented the test suite from running with the recently released py.test 5.4.0.
[bug] [autogenerate] [mysql]
Fixed more false-positive failures produced by the new “compare type” logic first added in 605, particularly impacting MySQL string types regarding flags such as “charset” and “collation”.
[bug] [op directives] [oracle]
Fixed issue in Oracle backend where a table RENAME with a schema-qualified name would include the schema in the “to” portion, which is rejected by Oracle.
usecase
[usecase] [autogenerate]
Adjusted autogen comparison to accommodate for backends that support computed column reflection, dependent on SQLAlchemy version 1.3.16 or higher. This emits a warning if the SQL expression inside of a Computed value changes between the metadata and the database, as these expressions can’t be changed without dropping and recreating the column.
1.4.1
bug
[bug] [autogenerate]
Fixed regression caused by the new “type comparison” logic introduced in 1.4 as part of 605 where comparisons of MySQL “unsigned integer” datatypes would produce false positives, as the regular expression logic was not correctly parsing the “unsigned” token when MySQL’s default display width would be returned by the database. Pull request courtesy Paul Becotte.
[bug] [environment]
Error message for “path doesn’t exist” when loading up script environment now displays the absolute path. Pull request courtesy Rowan Hart.
[bug] [autogenerate]
Fixed regression in 1.4.0 due to 647 where unique constraint comparison with mixed case constraint names while not using a naming convention would produce false positives during autogenerate.
[bug] [environment]
The check for matched rowcount when the alembic_version table is updated or deleted from is now conditional based on whether or not the dialect supports the concept of “rowcount” for UPDATE or DELETE rows matched. Some third party dialects do not support this concept. Pull request courtesy Ke Zhu.
[bug] [operations]
Fixed long-standing bug where an inline column CHECK constraint would not be rendered within an “ADD COLUMN” operation. The DDL compiler is now consulted for inline constraints within the Operations.add_column() method as is done for regular CREATE TABLE operations.
1.3.16
orm
[orm] [bug]
Fixed bug in orm.selectinload() loading option where two or more loaders that represent different relationships with the same string key name as referenced from a single orm.with_polymorphic() construct with multiple subclass mappers would fail to invoke each subqueryload separately, instead making use of a single string-based slot that would prevent the other loaders from being invoked.
[orm] [bug]
Fixed issue where a lazyload that uses session-local “get” against a target many-to-one relationship where an object with the correct primary key is present, however it’s an instance of a sibling class, does not correctly return None as is the case when the lazy loader actually emits a load for that row.
[orm] [performance]
Modified the queries used by subqueryload and selectinload to no longer ORDER BY the primary key of the parent entity; this ordering was there to allow the rows as they come in to be copied into lists directly with a minimal level of Python-side collation. However, these ORDER BY clauses can negatively impact the performance of the query as in many scenarios these columns are derived from a subquery or are otherwise not actual primary key columns such that SQL planners cannot make use of indexes. The Python-side collation uses the native itertools.group_by() to collate the incoming rows, and has been modified to allow multiple row-groups-per-parent to be assembled together using list.extend(), which should still allow for relatively fast Python-side performance. There will still be an ORDER BY present for a relationship that includes an explicit order_by parameter, however this is the only ORDER BY that will be added to the query for both kinds of loading.
orm declarative
[bug] [declarative] [orm]
The string argument accepted as the first positional argument by the relationship() function when using the Declarative API is no longer interpreted using the Python eval() function; instead, the name is dot separated and the names are looked up directly in the name resolution dictionary without treating the value as a Python expression. However, passing a string argument to the other relationship() parameters that necessarily must accept Python expressions will still use eval(); the documentation has been clarified to ensure that there is no ambiguity that this is in use.
See also
Evaluation of relationship arguments - details on string evaluation
sql
[sql] [types]
Add ability to literal compile a DateTime, Date or :class:”Time” when using the string dialect for debugging purposes. This change does not impact real dialect implementation that retain their current behavior.
schema
[schema] [reflection]
Added support for reflection of “computed” columns, which are now returned as part of the structure returned by Inspector.get_columns(). When reflecting full Table objects, computed columns will be represented using the Computed construct.
postgresql
[postgresql] [bug]
Fixed issue where a “covering” index, e.g. those which have an INCLUDE clause, would be reflected including all the columns in INCLUDE clause as regular columns. A warning is now emitted if these additional columns are detected indicating that they are currently ignored. Note that full support for “covering” indexes is part of 4458. Pull request courtesy Marat Sharafutdinov.
mysql
[mysql] [bug]
Fixed issue in MySQL dialect when connecting to a psuedo-MySQL database such as that provided by ProxySQL, the up front check for isolation level when it returns no row will not prevent the dialect from continuing to connect. A warning is emitted that the isolation level could not be detected.
sqlite
[sqlite] [usecase]
Implemented AUTOCOMMIT isolation level for SQLite when using pysqlite.
mssql
[mssql] [usecase] [mysql] [oracle]
Added support for ColumnOperators.is_distinct_from() and ColumnOperators.isnot_distinct_from() to SQL Server, MySQL, and Oracle.
oracle
[oracle] [usecase]
Implemented AUTOCOMMIT isolation level for Oracle when using cx_Oracle. Also added a fixed default isolation level of READ COMMITTED for Oracle.
[oracle] [bug] [reflection]
Fixed regression / incorrect fix caused by fix for 5146 where the Oracle dialect reads from the “all_tab_comments” view to get table comments but fails to accommodate for the current owner of the table being requested, causing it to read the wrong comment if multiple tables of the same name exist in multiple schemas.
misc
[bug] [tests]
Fixed an issue that prevented the test suite from running with the recently released py.test 5.4.0.
[enum] [types]
The Enum type now supports the parameter Enum.length to specify the length of the VARCHAR column to create when using non native enums by setting Enum.native_enum to False
[installer]
Ensured that the “pyproject.toml” file is not included in builds, as the presence of this file indicates to pip that a pep-517 installation process should be used. As this mode of operation appears to be not well supported by current tools / distros, these problems are avoided within the scope of SQLAlchemy installation by omitting the file.
1.3.15
orm
[orm] [bug]
Adjusted the error message emitted by Query.join() when a left hand side can’t be located that the Query.select_from() method is the best way to resolve the issue. Also, within the 1.3 series, used a deterministic ordering when determining the FROM clause from a given column entity passed to Query so that the same expression is determined each time.
[orm] [bug]
Fixed regression in 1.3.14 due to 4849 where a sys.exc_info() call failed to be invoked correctly when a flush error would occur. Test coverage has been added for this exception case.
1.3.14
general
[general] [bug] [py3k]
Applied an explicit “cause” to most if not all internally raised exceptions that are raised from within an internal exception catch, to avoid misleading stacktraces that suggest an error within the handling of an exception. While it would be preferable to suppress the internally caught exception in the way that the __suppress_context__ attribute would, there does not as yet seem to be a way to do this without suppressing an enclosing user constructed context, so for now it exposes the internally caught exception as the cause so that full information about the context of the error is maintained.
orm
[orm] [usecase]
Added a new flag InstanceEvents.restore_load_context and SessionEvents.restore_load_context which apply to the InstanceEvents.load(), InstanceEvents.refresh(), and SessionEvents.loaded_as_persistent() events, which when set will restore the “load context” of the object after the event hook has been called. This ensures that the object remains within the “loader context” of the load operation that is already ongoing, rather than the object being transferred to a new load context due to refresh operations which may have occurred in the event. A warning is now emitted when this condition occurs, which recommends use of the flag to resolve this case. The flag is “opt-in” so that there is no risk introduced to existing applications.
The change additionally adds support for the raw=True flag to session lifecycle events.
[orm] [bug]
Fixed regression caused in 1.3.13 by 5056 where a refactor of the ORM path registry system made it such that a path could no longer be compared to an empty tuple, which can occur in a particular kind of joined eager loading path. The “empty tuple” use case has been resolved so that the path registry is compared to a path registry in all cases; the PathRegistry object itself now implements __eq__() and __ne__() methods which will take place for all equality comparisons and continue to succeed in the not anticipated case that a non- PathRegistry object is compared, while emitting a warning that this object should not be the subject of the comparison.
[orm] [bug]
Setting a relationship to viewonly=True which is also the target of a back_populates or backref configuration will now emit a warning and eventually be disallowed. back_populates refers specifically to mutation of an attribute or collection, which is disallowed when the attribute is subject to viewonly=True. The viewonly attribute is not subject to persistence behaviors which means it will not reflect correct results when it is locally mutated.
[orm] [bug]
Fixed an additional regression in the same area as that of 5080 introduced in 1.3.0b3 via 4468 where the ability to create a joined option across a with_polymorphic() into a relationship against the base class of that with_polymorphic, and then further into regular mapped relationships would fail as the base class component would not add itself to the load path in a way that could be located by the loader strategy. The changes applied in 5080 have been further refined to also accommodate this scenario.
engine
[engine] [bug]
Expanded the scope of cursor/connection cleanup when a statement is executed to include when the result object fails to be constructed, or an after_cursor_execute() event raises an error, or autocommit / autoclose fails. This allows the DBAPI cursor to be cleaned up on failure and for connectionless execution allows the connection to be closed out and returned to the connection pool, where previously it waiting until garbage collection would trigger a pool return.
sql
[sql] [bug] [postgresql]
Fixed bug where a CTE of an INSERT/UPDATE/DELETE that also uses RETURNING could then not be SELECTed from directly, as the internal state of the compiler would try to treat the outer SELECT as a DELETE statement itself and access nonexistent state.
postgresql
[postgresql] [bug]
Fixed issue where the “schema_translate_map” feature would not work with a PostgreSQL native enumeration type (i.e. Enum, postgresql.ENUM) in that while the “CREATE TYPE” statement would be emitted with the correct schema, the schema would not be rendered in the CREATE TABLE statement at the point at which the enumeration was referenced.
[postgresql] [bug] [reflection]
Fixed bug where PostgreSQL reflection of CHECK constraints would fail to parse the constraint if the SQL text contained newline characters. The regular expression has been adjusted to accommodate for this case. Pull request courtesy Eric Borczuk.
mysql
[mysql] [bug]
Fixed issue in MySQL mysql.Insert.on_duplicate_key_update() construct where using a SQL function or other composed expression for a column argument would not properly render the VALUES keyword surrounding the column itself.
mssql
[mssql] [bug]
Fixed issue where the mssql.DATETIMEOFFSET type would not accommodate for the None value, introduced as part of the series of fixes for this type first introduced in 4983, 5045. Additionally, added support for passing a backend-specific date formatted string through this type, as is typically allowed for date/time types on most other DBAPIs.
oracle
[oracle] [bug]
Fixed a reflection bug where table comments could only be retrieved for tables actually owned by the user but not for tables visible to the user but owned by someone else. Pull request courtesy Dave Hirschfeld.
misc
[usecase] [ext]
Added keyword arguments to the MutableList.sort() function so that a key function as well as the “reverse” keyword argument can be provided.
[bug] [performance]
Revised an internal change to the test system added as a result of 5085 where a testing-related module per dialect would be loaded unconditionally upon making use of that dialect, pulling in SQLAlchemy’s testing framework as well as the ORM into the module import space. This would only impact initial startup time and memory to a modest extent, however it’s best that these additional modules aren’t reverse-dependent on straight Core usage.
[bug] [installation]
Vendored the inspect.formatannotation function inside of sqlalchemy.util.compat, which is needed for the vendored version of inspect.formatargspec. The function is not documented in cPython and is not guaranteed to be available in future Python versions.
2.17.1:
[BUGFIX] TSDB: Fix query performance regression that increased memory and CPU usage
2.17.0:
[FEATURE] TSDB: Support isolation
[ENHANCEMENT] PromQL: Allow more keywords as metric names
[ENHANCEMENT] React UI: Add normalization of localhost URLs in targets page
[ENHANCEMENT] Remote read: Read from remote storage concurrently
[ENHANCEMENT] Rules: Mark deleted rule series as stale after a reload
[ENHANCEMENT] Scrape: Log scrape append failures as debug rather than warn
[ENHANCEMENT] TSDB: Improve query performance for queries that partially hit the head
[ENHANCEMENT] Consul SD: Expose service health as meta label
[ENHANCEMENT] EC2 SD: Expose EC2 instance lifecycle as meta label
[ENHANCEMENT] Kubernetes SD: Expose service type as meta label for K8s service role
[ENHANCEMENT] Kubernetes SD: Expose label_selector and field_selector
[ENHANCEMENT] Openstack SD: Expose hypervisor id as meta label
[BUGFIX] PromQL: Do not escape HTML-like chars in query log
[BUGFIX] React UI: Fix data table matrix values
[BUGFIX] React UI: Fix new targets page not loading when using non-ASCII characters
[BUGFIX] Remote read: Fix duplication of metrics read from remote storage with external labels
[BUGFIX] Remote write: Register WAL watcher and live reader metrics for all remotes, not just the first one
[BUGFIX] Scrape: Prevent removal of metric names upon relabeling
[BUGFIX] Scrape: Fix 'superfluous response.WriteHeader call' errors when scrape fails under some circonstances
[BUGFIX] Scrape: Fix crash when reloads are separated by two scrape intervals
4.9.5 (2020-03-20)
- issue [security] Fix SQL injection with certain usernames (PMASA-2020-2)
- issue [security] Fix SQL injection in particular search situations (PMASA-2020-3)
- issue [security] Fix SQL injection and XSS flaw (PMASA-2020-4)
- issue Deprecate "options" for the external transformation; options must now be hard-coded along with the program name directly in the file.
Several patches have been filed upstream. Note URLs, and
revise/expand comments. This is a comment-only change.
Thanks to Paul Ripke for filing issues upstream.
3.13.2
* Allow aggregate functions to support an `ORDER BY` clause, via the addition
of an `order_by()` method to the function (`fn`) instance.
* Fix `prefetch()` bug, where related "backref" instances were marked as dirty,
even though they had no changes.
* Support `LIMIT 0`. Previously a limit of 0 would be translated into
effectively an unlimited query on MySQL.
* Support indexing into arrays using expressions with Postgres array fields.
* Ensure postgres introspection methods return the columns for multi-column
indexes in the correct order.
* Add support for arrays of UUIDs to postgres introspection.
* Fix introspection of columns w/capitalized table names in postgres.
* Fix to ensure correct exception is raised in SqliteQueueDatabase when
iterating over cursor/result-set.
* Fix bug comparing subquery against a scalar value.
* Fix issue resolving composite primary-keys that include foreign-keys when
building the model-graph.
* Allow model-classes to be passed as arguments, e.g., to a table function.
* Ensure postgres `JSONField.concat()` accepts expressions as arguments.
4.2.5:
Unknown changes
4.2.4:
Issues fixed:
SERVER-44915: Extend $indexStats output to include full index options and shard name
SERVER-46121: mongos crashes with invariant error after changing taskExecutorPoolSize
SERVER-45137: Increasing memory allocation in Top::record with high rate of collection creates and drops
SERVER-44904: Startup recovery should not delete corrupt documents while rebuilding unfinished indexes
SERVER-44260: Transaction can conflict with previous transaction on the session if the all committed point is held back
SERVER-35050: Don’t abort collection clone due to negative document count
SERVER-39112: Primary drain mode can be unnecessarily slow
mongo-c-driver 1.16.2
libbson
No change since 1.16.1; released to keep pace with libmongoc's version.
libmongoc
It is my pleasure to announce the MongoDB C Driver 1.16.2.
Bug fixes:
Fix compilation with LibreSSL when configuring with -DENABLE_SSL=AUTO
Update ruby-pg to 1.2.3.
== v1.2.3 [2020-03-18] Michael Granger <ged@FaerieMUD.org>
Bugfixes:
- Fix possible segfault at `PG::Coder#encode`, `decode` or their implicit calls through
a typemap after GC.compact. #327
- Fix possible segfault in `PG::TypeMapByClass` after GC.compact. #328
Add ruby-activerecord60 package version 6.0.2.2.
= 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.0.
Update ruby-activerecord52 to 5.2.4.2.
## Rails 5.2.4.1 (December 18, 2019) ##
* No changes.
## Rails 5.2.4 (November 27, 2019) ##
* Fix circular `autosave: true` causes invalid records to be saved.
Prior to the fix, when there was a circular series of `autosave: true`
associations, the callback for a `has_many` association was run while
another instance of the same callback on the same association hadn't
finished running. When control returned to the first instance of the
callback, the instance variable had changed, and subsequent associated
records weren't saved correctly. Specifically, the ID field for the
`belongs_to` corresponding to the `has_many` was `nil`.
Fixes#28080.
*Larry Reid*
* PostgreSQL: Fix GROUP BY with ORDER BY virtual count attribute.
Fixes#36022.
*Ryuta Kamizono*
* Fix sqlite3 collation parsing when using decimal columns.
*Martin R. Schuster*
* Make ActiveRecord `ConnectionPool.connections` method thread-safe.
Fixes#36465.
*Jeff Doering*
* Assign all attributes before calling `build` to ensure the child record is visible in
`before_add` and `after_add` callbacks for `has_many :through` associations.
Fixes#33249.
*Ryan H. Kerr*
Changes in MySQL 5.6.47:
Bugs Fixed
Replication: When GTIDs are enabled on a replication master and slave, and the slave connects to the master with the MASTER_AUTO_POSITION=1 option set, the master must send the slave all the transactions that the slave has not already received, committed, or both. If any of the transactions that should be sent by the master have been already purged from the master's binary log, the master sends the error ER_MASTER_HAS_PURGED_REQUIRED_GTIDS (1789) to the slave, and replication does not start.
The message provided for the error ER_MASTER_HAS_PURGED_REQUIRED_GTIDS has been changed to provide advice on the correct action in this situation, which is for the slave to replicate the missing transactions from another source, or for the slave to be replaced by a new slave created from a more recent backup. The message advises that the master's binary log expiration period can be revised to avoid the situation in future. In addition, the master now identifies the GTIDs of the purged transactions and supplies them in its error log in the warning message ER_FOUND_MISSING_GTIDS (11809), so that you do not need to calculate the missing GTIDs manually.
With multiple sessions executing concurrent INSERT ... ON DUPLICATE KEY UPDATE statements into a table with an AUTO_INCREMENT column but not specifying the AUTO_INCREMENT value, inserts could fail with a unique index violation.
A SELECT using a WHERE condition of the form A AND (B OR C [OR ...]) resulting in an impossible range led to an unplanned exit of the server.
An incomplete connection packet could cause clients not to properly initialize the authentication plugin name.
Changes in MySQL 5.7.29:
Audit Log Notes
ANALYZE TABLE statements now produce read audit events.
Packaging Notes
Binary packages that include curl rather than linking to the system curl library have been upgraded to use curl 7.66.0.
Bugs Fixed
InnoDB: os_file_get_parent_dir warnings were encountered when compiling MySQL with GCC 9.2.0.
InnoDB: An internal function (btr_push_update_extern_fields()) used to fetch newly added externally stored fields and update them during a pessimistic update or when going back to a previous version of a record was no longer required. Newly added externally stored fields are updated by a different function. Also, the method used to determine the number of externally stored fields was corrected.
InnoDB: A comparison function found two records to be equal when attempting to merge non-leaf pages of a spatial index. The function was unable to handle this unexpected condition, which resulted in a long semaphore wait and an eventual assertion failure.
InnoDB: A tablespace import operation that failed due to the source and destination tables being defined with different DATA DIRECTORY clauses reported an insufficiently descriptive schema mismatch error. Moreover, if a .cfg file was not present, the same operation would raise an assertion failure. A more informative error message is now reported in both cases before the import operation is terminated due to the data directory mismatch.
InnoDB: Criteria used by the btr_cur_will_modify_tree() function, which detects whether a modifying record needs a modifying tree structure, was insufficient.
InnoDB: An ALTER TABLE ... DISCARD TABLESPACE operation caused a hang condition.
InnoDB: A code regression was addressed by prohibiting unnecessary implicit to explicit secondary index lock conversions for session temporary tables.
InnoDB: A tablespace import operation raised an assertion when the cursor was positioned on a corrupted page while purging delete-marked records. Instead of asserting when encountering a corrupted page, the import operation is now terminated and an error is reported.
Replication: When a member is joining or rejoining a replication group, if Group Replication detects an error in the distributed recovery process (during which the joining member receives state transfer from an existing online member), it automatically switches over to a new donor, and retries the state transfer. The number of times the joining member retries before giving up is set by the group_replication_recovery_retry_count system variable. The Performance Schema table replication_applier_status_by_worker displays the error that caused the last retry. Previously, this error was only shown if the group member was configured with parallel replication applier threads (as set by the slave_parallel_workers system variable). If the group member was configured with a single applier thread, the error was cleared after each retry by an internal RESET SLAVE operation, so it could not be viewed. This was also the case for the output of the SHOW SLAVE STATUS command whether there were single or multiple applier threads. The RESET SLAVE operation is now no longer carried out after retrying distributed recovery, so the error that caused the last retry can always be viewed.
Replication: A memory leak could occur when a failed replication group member tried to rejoin a minority group and was disallowed from doing so.
Replication: If a replication slave was set up using a CHANGE MASTER TO statement that did not specify the master log file name and master log position, then shut down before START SLAVE was issued, then restarted with the option --relay-log-recovery set, replication did not start. This happened because the receiver thread had not been started before relay log recovery was attempted, so no log rotation event was available in the relay log to provide the master log file name and master log position. In this situation, the slave now skips relay log recovery and logs a warning, then proceeds to start replication.
Replication: When GTIDs are enabled on a replication master and slave, and the slave connects to the master with the MASTER_AUTO_POSITION=1 option set, the master must send the slave all the transactions that the slave has not already received, committed, or both. If any of the transactions that should be sent by the master have been already purged from the master's binary log, the master sends the error ER_MASTER_HAS_PURGED_REQUIRED_GTIDS (1789) to the slave, and replication does not start.
The message provided for the error ER_MASTER_HAS_PURGED_REQUIRED_GTIDS has been changed to provide advice on the correct action in this situation, which is for the slave to replicate the missing transactions from another source, or for the slave to be replaced by a new slave created from a more recent backup. The message advises that the master's binary log expiration period can be revised to avoid the situation in future. In addition, the master now identifies the GTIDs of the purged transactions and supplies them in its error log in the warning message ER_FOUND_MISSING_GTIDS (11809), so that you do not need to calculate the missing GTIDs manually.
macOS: On macOS, configuring MySQL with -DWITH_SSL=system caused mysql_config output to incorrectly include internal CMake names for the static SSL libraries.
There could be a mismatch between the version of OpenSSL used to build the server and the version used for other parts of MySQL such as libraries or plugins. This could cause certain features not to work, such as the LDAP authentication plugins. Now the same version of OpenSSL is used for building everything.
Docker packages were missing the LDAP authentication plugins.
The original table name for a field in a derived table was not always displayed correctly.
MySQL Installer was unable to uninstall MySQL 5.7 on Windows Server 2012.
With multiple sessions executing concurrent INSERT ... ON DUPLICATE KEY UPDATE statements into a table with an AUTO_INCREMENT column but not specifying the AUTO_INCREMENT value, inserts could fail with a unique index violation.
With lower_case_table_names=2, SHOW TABLES could fail to display tables with uppercase names.
With keyring_encrypted_file_password set on the command line at server startup, the password value could be visible to system utilities.
With a LOCK TABLES statement in effect, a metadata change for the locked table could cause Performance Schema or SHOW queries for session variables to hang in the opening_tables state.
A SELECT using a WHERE condition of the form A AND (B OR C [OR ...]) resulting in an impossible range led to an unplanned exit of the server.
For JSON-format audit logging, the id field now may contain values larger than 65535. Previously, with heaving logging activity, more than 65536 queries per second could be executed, exceeding the 16 bits permitted for id values.
An incomplete connection packet could cause clients not to properly initialize the authentication plugin name.
Client programs that used the libmysqlclient C client library could exit upon receipt of an OK packet containing malformed session-tracking information.
Under certain conditions, enabling the read_only or super_read_only system variable did not block concurrent DDL statements executed by users without the SUPER privilege.
mysqlpump exits rather than dumping databases that contain an invalid view, by design, but it also failed if an invalid view existed but was not in any of the databases to be dumped.
3.31.1-r1
Various updates due to year change
Fix deprecated universal newline use in shell
Shell now uses pragma function_list to get list of functions for tab completion
Added constants:
SQLITE_DBCONFIG_TRUSTED_SCHEMA, SQLITE_DBCONFIG_LEGACY_FILE_FORMAT,
SQLITE_CONSTRAINT_PINNED, SQLITE_OK_SYMLINK, SQLITE_CANTOPEN_SYMLINK,
SQLITE_FCNTL_CKPT_DONE, SQLITE_OPEN_NOFOLLOW, SQLITE_VTAB_DIRECTONLY
Redis 5.0.8:
Upgrade urgency HIGH: This release fixes security issues.
This is a list of fixes in this release:
Fix Pi building needing -latomic, backport
fix impl of aof-child whitelist SIGUSR1 feature.
fix ThreadSafeContext lock/unlock function names
XREADGROUP should propagate XCALIM/SETID in MULTI/EXEC
Fix client flags to be int64 in module.c
Fix small bugs related to replica and monitor ambiguity
Fix lua related memory leak.
Free allocated sds in pfdebugCommand() to avoid memory leak.
Jump to right label on AOF parsing error.
Free fakeclient argv on AOF error.
Fix potential memory leak of rioWriteBulkStreamID().
Fix potential memory leak of clusterLoadConfig().
Fix bug on KEYS command where pattern starts with * followed by \x00 (null char).
Blocking XREAD[GROUP] should always reply with valid data (or timeout)
XCLAIM: Create the consumer only on successful claims.
Stream: Handle streamID-related edge cases
Fix ip and missing mode in RM_GetClusterNodeInfo().
Inline protocol: handle empty strings well.
Mark extern definition of SDS_NOINIT in sds.h
[FIX] revisit CVE-2015-8080 vulnerability
avoid sentinel changes promoted_slave to be its own replica.
Update ruby-sequel to 5.30.0.
=== 5.30.0 (2020-03-01)
* Remove specs and old release notes from the gem to reduce gem size by over 40% (jeremyevans)
* When using Database#transaction :retry_on, call :before_retry option if retrying even if :num_retries is nil (jcmfernandes) (#1678)
* Support generated columns on SQLite 3.31+ using :generated_always_as and :generated_type options (jeremyevans)
2.7:
- tested against Python 3.8.1 and pyasn1 0.4.8
- re-enabled ssl exception raising on bad certificate when only 1 server is present in the server pool
- removed Python 2.6 from Travis configuration
- added support for source specifications in LDAP connections
- added support for allowing special AD security identifier (SID) in DN
- fixed pickling of entry and attribute
- close connection when auto_bind fails
- operational attributes can be used in Abstraction Layer
- additional SSL options can be used in Tls object
- threading.Event replaces loop checking in async strategy. ASYNC strategy should be much faster now
- adding a key that is already an alias that contains other aliases in CaseInsensitiveWithAliasDict() now works properly
- when searching for GUID, UUID and SID the backslash character (0x5C) is properly managed
- LDIF output properly formatted when controls are missing
- operational attributes are not returned in MOCK strategies when not requested
- undecodable values are returned as raw bytes when using the pyasn1 decoder
For fdatasync, skip erroring on EBADF, rather than never trying it.
The issue might be use on a directory, but that's unclear.
It remains to document the patches, file them upstream, and record the
upstream tracker URLs.
Patches are due to Paul Ripke via pkgsrc-users.
Release 0.3.1:
Enhancements
* Add HQL keywords.
* Add support for time zone casts.
* Enhance formatting of AS keyword.
* Stabilize grouping engine when parsing invalid SQL statements.
Bug Fixes
* Fix splitting of SQL with multiple statements inside
parentheses.
* Correctly identify NULLS FIRST / NULLS LAST as keywords.
* Fix splitting of SQL statements that contain dollar signs in
identifiers.
* Remove support for parsing double slash comments introduced in
0.3.0 as it had some side-effects with other dialects and
doesn't seem to be widely used.
* Restrict detection of alias names to objects that acutally could
have an alias.
* Fix parsing of date/time literals.
* Fix initialization of TokenList.
* Fix parsing of LIKE.
* Improve parsing of identifiers
4.7.5:
Bugfixes
- Fixed creating and updating of MultiDict from a sequence of pairs and keyword arguments. Previously passing a list argument modified it inplace, and other sequences caused an error.
- Fixed comparing with mapping: an exception raised in the `__len__` method caused raising a SyntaxError.
- Fixed comparing with mapping: all exceptions raised in the `__getitem__` method were silenced.
2.16.0:
[FEATURE] React UI: Support local timezone on /graph
[FEATURE] PromQL: add absent_over_time query function
[FEATURE] Adding optional logging of queries to their own file
[ENHANCEMENT] React UI: Add support for rules page and "Xs ago" duration displays
[ENHANCEMENT] React UI: alerts page, replace filtering togglers tabs with checkboxes
[ENHANCEMENT] TSDB: Export metric for WAL write errors
[ENHANCEMENT] TSDB: Improve query performance for queries that only touch the most recent 2h of data.
[ENHANCEMENT] PromQL: Refactoring in parser errors to improve error messages
[ENHANCEMENT] PromQL: Support trailing commas in grouping opts
[ENHANCEMENT] Scrape: Reduce memory usage on reloads by reusing scrape cache
[ENHANCEMENT] Scrape: Add metrics to track bytes and entries in the metadata cache
[ENHANCEMENT] promtool: Add support for line-column numbers for invalid rules output
[ENHANCEMENT] Avoid restarting rule groups when it is unnecessary
[BUGFIX] React UI: Send cookies on fetch() on older browsers
[BUGFIX] React UI: adopt grafana flot fix for stacked graphs
[BUFGIX] React UI: broken graph page browser history so that back button works as expected
[BUGFIX] TSDB: ensure compactionsSkipped metric is registered, and log proper error if one is returned from head.Init
[BUGFIX] TSDB: return an error on ingesting series with duplicate labels
[BUGFIX] PromQL: Fix unary operator precedence
[BUGFIX] PromQL: Respect query.timeout even when we reach query.max-concurrency
[BUGFIX] PromQL: Fix string and parentheses handling in engine, which affected React UI
[BUGFIX] PromQL: Remove output labels returned by absent() if they are produced by multiple identical label matchers
[BUGFIX] Scrape: Validate that OpenMetrics input ends with
[BUGFIX] Remote read: return the correct error if configs can't be marshal'd to JSON
[BUGFIX] Remote write: Make remote client Store use passed context, which can affect shutdown timing
[BUGFIX] Remote write: Improve sharding calculation in cases where we would always be consistently behind by tracking pendingSamples
[BUGFIX] Ensure prometheus_rule_group metrics are deleted when a rule group is removed
1.4.0
[feature] [batch]
Added new parameters BatchOperations.add_column.insert_before, BatchOperations.add_column.insert_after which provide for establishing the specific position in which a new column should be placed. Also added Operations.batch_alter_table.partial_reordering which allows the complete set of columns to be reordered when the new table is created. Both operations apply only to when batch mode is recreating the whole table using recreate="always". Thanks to Marcin Szymanski for assistance with the implementation.
bug
[bug] [autogenerate]
Adjusted the unique constraint comparison logic in a similar manner as that of 421 did for indexes in order to take into account SQLAlchemy’s own truncation of long constraint names when a naming convention is in use. Without this step, a name that is truncated by SQLAlchemy based on a unique constraint naming convention or hardcoded name will not compare properly.
[bug] [autogenerate]
A major rework of the “type comparison” logic is in place which changes the entire approach by which column datatypes are compared. Types are now compared based on the DDL string generated by the metadata type vs. the datatype reflected from the database. This means we compare types based on what would actually render and additionally if elements of the types change like string length, those changes are detected as well. False positives like those generated between SQLAlchemy Boolean and MySQL TINYINT should also be resolved. Thanks very much to Paul Becotte for lots of hard work and patience on this one.
PostgreSQL 12.2, 11.7, 10.12, 9.6.17, 9.5.21, and 9.4.26
PostgreSQL 9.4 Now EOL
This is the last release for PostgreSQL 9.4, which will no longer receive security updates and bug fixes. PostgreSQL 9.4 introduced new features such as JSONB support, the ALTER SYSTEM command, the ability to stream logical changes to an output plugin, and more.
While we are very proud of this release, these features are also found in newer versions of PostgreSQL. Many of these features have also received improvements, and, per our versioning policy, it is time to retire PostgreSQL 9.4.
To receive continued support, we suggest that you make plans to upgrade to a newer, supported version of PostgreSQL. Please see the PostgreSQL versioning policy for more information.
Security Issues
CVE-2020-1720: ALTER ... DEPENDS ON EXTENSION is missing authorization checks.
Versions Affected: 9.6 - 12
The ALTER ... DEPENDS ON EXTENSION sub-commands do not perform authorization checks, which can allow an unprivileged user to drop any function, procedure, materialized view, index, or trigger under certain conditions. This attack is possible if an administrator has installed an extension and an unprivileged user can CREATE, or an extension owner either executes DROP EXTENSION predictably or can be convinced to execute DROP EXTENSION.
Bug Fixes and Improvements
This update also fixes over 75 bugs that were reported in the last several months. Some of these issues affect only version 12, but may also affect all supported versions.
Some of these fixes include:
Fix for partitioned tables with foreign-key references where TRUNCATE ... CASCADE would not remove all data. If you have previously used TRUNCATE ... CASCADE on a partitioned table with foreign-key references please see the "Updating" section for verification and cleanup steps.
Fix failure to add foreign key constraints to table with sub-partitions (aka a multi-level partitioned table). If you have previously used this functionality, you can fix it by either detaching and re-attaching the affected partition, or by dropping and re-adding the foreign key constraint to the parent table. You can find more information on how to perform these steps in the ALTER TABLE documentation.
Fix performance issue for partitioned tables introduced by the fix for CVE-2017-7484 that now allows the planner to use statistics on a child table for a column that the user is granted access to on the parent table when the query contains a leaky operator.
Several other fixes and changes for partitioned tables, including disallowing partition key expressions that return pseudo-types, such as RECORD.
Fix for logical replication subscribers for executing per-column UPDATE triggers.
Fix for several crashes and failures for logical replication subscribers and publishers.
Improve efficiency of logical replication with REPLICA IDENTITY FULL.
Ensure that calling pg_replication_slot_advance() on a physical replication slot will persist changes across restarts.
Several fixes for the walsender processes.
Improve performance of hash joins with very large inner relations.
Fix placement of "Subplans Removed" field in EXPLAIN output by placing it with its parent Append or MergeAppend plan.
Several fixes for parallel query plans.
Several fixes for query planner errors, including one that affected joins to single-row subqueries.
Several fixes for MCV extend statistics, including one for incorrect estimation for OR clauses.
Improve efficiency of parallel hash join on CPUs with many cores.
Ignore the CONCURRENTLY option when performing an index creation, drop, or reindex on a temporary table.
Fall back to non-parallel index builds when a parallelized CREATE INDEX has no free dynamic shared memory slots.
Several fixes for GiST & GIN indexes.
Fix possible crash in BRIN index operations with box, range and inet data types.
Fix support for BRIN hypothetical indexes.
Fix failure in ALTER TABLE when a column referenced in a GENERATED expression is added or changed in type earlier in the same ALTER TABLE statement.
Fix handling of multiple AFTER ROW triggers on a foreign table.
Fix off-by-one result for EXTRACT(ISOYEAR FROM timestamp) for BC dates.
Prevent unwanted lowercasing and truncation of RADIUS authentication parameters in the pg_hba.conf file.
Several fixes for GSSAPI support, including having libpq accept all GSS-related connection parameters even if the GSSAPI code is not compiled in.
Several fixes for pg_dump and pg_restore when run in parallel mode.
Fix crash with postgres_fdw when trying to execute a remote query on the remote server such as UPDATE remote_tab SET (x,y) = (SELECT ...).
Disallow NULL category values in the crosstab() function of contrib/tablefunc to prevent crashes.
Several fixes for Windows, including a race condition that could cause timing oddities with NOTIFY.
Several ecpg fixes.
OpenLDAP 2.4.49:
Added slapd-monitor database entry count for slapd-mdb
Fixed client tools to not add controls on cancel/abandon
Fixed client tools SyncInfo message to be LDIF compliant
Fixed libldap to correctly free sb
Fixed libldap descriptor leak if ldaps fails
Fixed libldap remove unnecessary global mutex for GnuTLS
Fixed slapd syntax evaluation of preferredDeliveryMethod
Fixed slapd to relax domainScope control check
Fixed slapd to have cleaner error handling during connection setup
Fixed slapd data check when processing cancel exop
Fixed slapd attribute description processing
Fixed slapd-ldap to set oldctrls correctly
Fixed slapd-mdb to honor unchecked limit with alias deref
Fixed slapd-mdb missing final commit with slapindex
Fixed slapd-mdb drop attr mappings added in an aborted txn
Fixed slapd-mdb nosync FLAG configuration handling
Fixed slapd-monitor global operation counter reporting
Fixed slapo-ppolicy when used with slapauth
Fixed slapo-ppolicy to add a missed normalised copy of pwdChangedTime
Fixed slapo-syncprov fix sessionlog init
Fixed slapo-unique loop termination
Build Environment
Fix mkdep to honor TMPDIR if set
Remove ICU library detection
Update config.guess and config.sub to support newer architectures
Disable ITS8521 regression test as it is no longer valid
Documentation
admin24 - Fix inconsistent whitespace in replication section
slapd-config(5)/slapd.conf(5) - Fix missing bold tag for keyword
slapd-ldap(5) - Document "tls none" option
slapo-ppolicy(5) - Correctly document pwdGraceAuthnLimit
Depend on py-gtk2 >= 2.24.0nb30, needs the fix to pango binding
Changes since 3.4.4:
2014-04-30
Version 3.4.9 of Gramps! "I am no longer infected", a maintenance release.
* Error converting python2 utf-8 strings to python3 str when loading data from database
* Gedcom input: SUBN and SUBM record handling
* [Gedcom] import/export round trip causes lost information
* [Gedcom] Gramps can't import estim. date period exported by itself
* [Gedcom] import deletes first char of notes
* [Gedcom] import of embedded notes attached to media does not work
* [Gedcom] NameError in importer
* [Gedcom] export does not export media attached to citations
* [Gedcom] Errors handling owner/submitter information
* [Gedcom] Event address is lost on import, i.e. disconnected from event
* [Gedcom] Entering a witness to an event such as marriage might be ignored
* [Gedcom] Importing file containing multibyte UTF-8 characters fails
* Event list in editors does not display content into 'Main Participants' column
* Fix 'Last Change' column into Person Selector
* Support creating directories in various scenarios
* tag_map is not initialized
* Fix bad handle in explanation note for unknown event
* Narrative website: Missing webpage for media with missing thumbnail on person page
* Enable the "default" CSS choice for the narrated web report
* Crash while scrolling in person view
* Crash when attempting to create Places Report
* Error in Session Log gramplet with no active person
* In Ahnentafel Report, Use Christening Date if no Birth Date Present
* Family with children but no parents is lost on filtered export
* Some labels now fit better on citations sidebar filter
* Can't disable box shadow in SVG descendant tree
* Descendant tree graphical report, syntax error in svg output
* Various problems with docgen.TextDoc.add_media_object
* Spurious spaces in CLI List Family Trees, tab delimited output. Print statements changed to assemble the whole line before output.
* GuiColorOption missing avail-changed event handler
* Regression: running gramps from crontab fails
* Better support for handling custom media attributes on edition
* DB lock not checked when opening database from the recent opened trees menu item
* List index out of range" on [initial CLI "gramps -t"]
* HTML View fails to load on Debian unstable
* Fix unknown gender relationships hander for the french locale
* Can't fill in calculated and estimated dates in czech locale
* Enhance Serbian date handler to handle Cyrillic dates
* Updated translations: cs, de, fr, hu, it
* Fix mac menubar setting
* Fix mac OsmGpsMaps setting
* Enable PIL with Freetype2 support on mac
2014-05-29
Version 3.4.8 of Gramps! "Forget about your sin, give the audience a grin", a maintenance release.
* Database corrupted - TypeError: unhashable type: 'list'
* Fix bug in abandon changes and quit
* Fix error when importing database from the CLI
* 'Display as' field in Name Editor reverts to Preferences default
* Geography does not communicate over proxy server with autorisation
* Event gramplet filter does not have field for primary role
* New HasDayOfWeek filter rule
* Error when leaving a Gramps type field blank in an editor
* Fix creation of events with same Gramps-ID
* Enhancements and consitency on events gramplet, selector and view
* Enhanced Citation Editor
* Fix update of active object after merge
* Do not drag and drop more than one data into editor tabs
* Media Editor error if Path value was changed to a non existing file
* Register history objects at startup
* Users should not be allowed to edit and delete 'default' style into Style Editor
* Missing closing bracket in Web_Basic-Spruce.css
* Some temporary files remains in /tmp with NarrativeWeb report
* Some fixes and enhancements
* No narrative.css File After Running Narrated Website Report
* Paper names and Styles values are now translated
* Translate some punctuation marks
* Fix Relationships handler for Portuguese
* Updated translations: ar, cs, de, es, fr, he, it, ru, sk, sv
2014-01-27
Version 3.4.7 of Gramps! "Ask me tomorrow, but not today", a maintenance release.
* Gramps project web hosting now has an HTTPS interface; the old HTTP URLs redirect to it.
* Development switched from SVN to git.
* Add new filter rule matching citations having a source with a <text> on a note
* Add primary role option to event filter
* Add Groups support and reduce number of lines in Event types selector
* Add 'Last Change' column on selectors, when missing
* Fix a filter rule on citation sidebar (Source:Note)
* Fix url in Welcome gramplet when detached
* Fix bug in associations filter
* Better support for objects having citations as subobjects
* Check Tag handling on people views
* Keep at least one column on views
* Reorder tool now updates citation IDs
* Performance improvement in ancestor filter
* Reduce number of columns in LDS temple selector
* Fix menu action for last recently opened family trees
* Fix minor visual issue on Merge Person dialog
* Use 'Bat Mitzvah' (en_US event name)
* "Add citation" missing in pop-up menu
* Fix HTML spacing on GraphViz output
* Enhancement on date validation into Date Editor
* Invalid dates (like 2013-02-30) no longer crash the date editor or file import.
* Fixed image handling in ODF docgen, thanks to Matthias Basler for the initial patch.
* Fixed GEDCOM export for family _UID, added support for _FSFTID, by Enno Borgsteede.
* Fixed bookmark handling in navigation views.
* Multiple maintainability and usability improvements.
* Translation updates and translation-related fixes.
2013-10-28
Version 3.4.6 of Gramps! "The Answer to the Ultimate Question", a maintenance release.
* Citation merge works better for all objects with citations
* Fixed citations attached to family events
* Fixed several crashes, hangs, and data corruption scenarios
* Fixed bugs in determining whether a person is alive, potentially resolving private data leak via export or report
* VCF export/import now support gender information
* Several bugs with filtering fixed, most filters now support regular expressions
* Fixed bug in Hebrew calendar date calculations
* Support space in Gramps ID with GEDCOM file format export/import
* Multiple fixes in gramplets
* Multiple fixes in the narrated website report
* Some fixes and improvements of the webapp
* Enhancements of the citation tree view (Sources category)
* Polish and consistency on Gramps XML export
* Bump XML schema to 1.5.1
* Fixed several long-standing problems with report generation
* Better support of RTL locales (Arabic, Hebrew, etc.) in GUI
* Platform-specific fixes for Mac and Windows
* New date handler for Arabic
* Translation updates and translation-related fixes
* Repaired and enhanced tests broken since 3.3.x, resulting in overall reliability improvements
2013-05-22
Version 3.4.5 of Gramps! "We have also developed a tomato which can eject itself when an accident is imminent", a maintenance release.
* problem after upgrading to 3.4.4 from 3.3.1
* ability to keep custom filename on output
* book report: sub reports forget/overwrite their settings when trying to re-configure them
* end of line report options window - changing output format cause change active tab to "Report Options"
* various updated translations: de, es, fr, nb, nl, pl, sk
mongo-c-driver 1.16.1
I'm pleased to announce version 1.16.1 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
libbson
It is my pleasure to announce libbson 1.16.1.
Features:
Add bson_isspace, a safer isspace alternative.
libmongoc
It is my pleasure to announce the MongoDB C Driver 1.16.1.
Bug fixes:
Fix listed library dependency on mongoc_static target when building with libmongocrypt.
Replace a call of free to bson_free.
Vendor Sphinx basic theme and correctly list static files for docs.
Fix a compilation warning introduced in 1.16.0.
mongo-c-driver 1.16.0
I'm pleased to announce version 1.16.0 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
libbson
It is my pleasure to announce libbson 1.16.0.
Bug fixes:
Fix crash if an empty BSON binary value is copied and then appended.
Fix out-of-bounds read when parsing JSON.
Fix out-of-bounds read when parsing base64.
libmongoc
It is my pleasure to announce the MongoDB C Driver 1.16.0.
Features:
Support Client-side Field Level Encryption.
Support ability to pass an index hint to update operations.
Add cmake export targets.
Bug fixes:
Fix a bug with Windows SSPI failing to authenticate with GSSAPI when using
pooled clients for certain operations.
Fix behavior for bulk writes that retry to keep track of the successful server.
Remove hard limit of 1024 characters for SRV response.
Fix racy crash when using client pool against a sharded cluster if a server is invalidated shortly before a new socket is opened against it.
Remove unnecessary library dependencies causing overlinking.
Ensure server proof has been validated during SCRAM conversation.
mongo-c-driver 1.15.3
I'm pleased to announce version 1.15.3 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
libbson
It is my pleasure to announce libbson 1.15.3.
No changes since 1.15.2; release to keep pace with libmongoc's version.
libmongoc
It is my pleasure to announce the MongoDB C Driver 1.15.3.
Bug fixes:
* Fix a hang on macOS when connecting to a server over TLS
* Add zstd as a dependency when libmongoc static library is compiled with zstd support
* Fix compilation on AIX 6.1
mongo-c-driver 1.15.2
I'm pleased to announce version 1.15.2 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
libbson
No changes since 1.15.1; release to keep pace with libmongoc's version.
libmongoc
Bug fixes:
Prevent mongoc_transaction_opts_set_max_commit_time_ms from applying to subsequent transactions that should be using the default.
Do not report the initial error if a retry for a change stream function (mongoc_collection_watch, mongoc_database_watch, or mongoc_client_watch) succeeds
mongo-c-driver 1.15.1
I'm pleased to announce version 1.15.1 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
libbson
No change since 1.15.0; released to keep pace with libmongoc's version.
libmongoc
It is my pleasure to announce the MongoDB C Driver 1.15.1.
Bug fixes:
Fix change stream resume logic when no documents received
Reduce the required cmake version to build with zstd support
Minor fixes to mongos pinning logic
Do not resume a change stream on NonResumableChangeStreamError
mongo-c-driver 1.15.0
I'm pleased to announce version 1.15.0 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
libbson
No change since 1.14.1; released to keep pace with libmongoc's version.
libmongoc
It is my pleasure to announce the MongoDB C Driver 1.15.0. This release adds
support for MongoDB 4.2 features.
Features:
Support for sharded transactions on MongoDB sharded clusters 4.2+.
Add convenient transaction runner (mongoc_client_session_with_transaction),
which accepts a callback and performs appropriate retry logic.
Add a new transaction option to specify maximum time to wait for a commit,
mongoc_transaction_opts_set_max_commit_time_ms.
Add URI option "retryReads=true" safely and automatically retries certain
read operations if the server is a MongoDB 3.6+. Note, this may require applications to adjust any custom retry logic to prevent inadvertently retrying for too long
Poll SRV records to mongos servers periodically.
Keep connections alive after a primary stepdown detected.
Standardizes URI options supported across all spec-compliant MongoDB drivers.
"retryWrites" URI option now defaults to true (requires crypto for session
support).
Send any aggregate with $out or $merge stage to a primary.
Add the ability to specify an aggregate pipeline as an update document.
Add a database aggregate helper, mongoc_database_aggregate.
Add option for change streams, "startAfter".
Add mongoc_change_stream_get_resume_token, which returns the resume token
which should be used to resume a change stream.
Add support for zstd compression.
Bug fixes:
Correctly report an error in mongoc_change_stream_next if the resume token
(_id) is not a document. Previously, an error was only reported if the
field was missing.
Fix mongoc_collection_update with MONGOC_UPDATE_MULTI_UPDATE,
mongoc_collection_remove, and mongoc_collection_delete when retryWrites
was enabled. They would fail previously.
Command options are now correctly taken into account when batching bulk
writes for OP_QUERY. It was possible to exceed the maximum document size
before.
Fix a crash if a multi-batch bulk write with OP_MSG errored on a batch.
Update ruby-sequel to 5.29.0.
=== 5.29.0 (2020-02-01)
* Recognize another disconnect error in the tinytds adapter (jeremyevans)
* Fix verbose warning in postgres adapter when using prepared statements and recent versions of ruby-pg (jeremyevans)
* Work correctly on Ruby 2.8+ by supporting second argument for initialize_clone (jeremyevans)
* Add empty_failure_backtraces plugin for empty backtraces for ValidationFailed and HookFailed exceptions, much faster on JRuby (jeremyevans)
* Add Dataset#json_serializer_opts to json_serializer plugin, allowing to set json_serializer options on a per-dataset basis (jeremyevans)
0.36.1:
- Added support for CASCADE option when dropping views
- Added `aliases` parameter to create_materialized_view function.
0.36.0:
- Removed explain and explain_analyze due to the internal changes in SQLAlchemy version 1.3.
0.35.0:
- Removed some deprecation warnings
- Added Int8RangeType
1.3.13
[orm] [bug] [engine]
Added test support and repaired a wide variety of unnecessary reference cycles created for short-lived objects, mostly in the area of ORM queries. Thanks much to Carson Ip for the help on this.
[orm] [bug]
Fixed regression in loader options introduced in 1.3.0b3 via 4468 where the ability to create a loader option using PropComparator.of_type() targeting an aliased entity that is an inheriting subclass of the entity which the preceding relationship refers to would fail to produce a matching path. See also 5082 fixed in this same release which involves a similar kind of issue.
[orm] [bug]
Fixed regression in joined eager loading introduced in 1.3.0b3 via 4468 where the ability to create a joined option across a with_polymorphic() into a polymorphic subclass using RelationshipProperty.of_type() and then further along regular mapped relationships would fail as the polymorphic subclass would not add itself to the load path in a way that could be located by the loader strategy. A tweak has been made to resolve this scenario.
[orm] [bug]
Repaired a warning in the ORM flush process that was not covered by test coverage when deleting objects that use the “version_id” feature. This warning is generally unreachable unless using a dialect that sets the “supports_sane_rowcount” flag to False, which is not typically the case however is possible for some MySQL configurations as well as older Firebird drivers, and likely some third party dialects.
[orm] [bug]
Fixed bug where usage of joined eager loading would not properly wrap the query inside of a subquery when Query.group_by() were used against the query. When any kind of result-limiting approach is used, such as DISTINCT, LIMIT, OFFSET, joined eager loading embeds the row-limited query inside of a subquery so that the collection results are not impacted. For some reason, the presence of GROUP BY was never included in this criterion, even though it has a similar effect as using DISTINCT. Additionally, the bug would prevent using GROUP BY at all for a joined eager load query for most database platforms which forbid non-aggregated, non-grouped columns from being in the query, as the additional columns for the joined eager load would not be accepted by the database.
[orm] [performance]
Identified a performance issue in the system by which a join is constructed based on a mapped relationship. The clause adaption system would be used for the majority of join expressions including in the common case where no adaptation is needed. The conditions under which this adaptation occur have been refined so that average non-aliased joins along a simple relationship without a “secondary” table use about 70% less function calls.
[engine] [bug]
Fixed issue where the collection of value processors on a Compiled object would be mutated when “expanding IN” parameters were used with a datatype that has bind value processors; in particular, this would mean that when using statement caching and/or baked queries, the same compiled._bind_processors collection would be mutated concurrently. Since these processors are the same function for a given bind parameter namespace every time, there was no actual negative effect of this issue, however, the execution of a Compiled object should never be causing any changes in its state, especially given that they are intended to be thread-safe and reusable once fully constructed.
[sql] [usecase]
A function created using GenericFunction can now specify that the name of the function should be rendered with or without quotes by assigning the quoted_name construct to the .name element of the object. Prior to 1.3.4, quoting was never applied to function names, and some quoting was introduced in 4467 but no means to force quoting for a mixed case name was available. Additionally, the quoted_name construct when used as the name will properly register its lowercase name in the function registry so that the name continues to be available via the func. registry.
[postgresql] [usecase]
Added support for prefixes to the CTE construct, to allow support for Postgresql 12 “MATERIALIZED” and “NOT MATERIALIZED” phrases. Pull request courtesy Marat Sharafutdinov.
[postgresql] [bug]
Fixed issue where the PostgreSQL dialect would fail to parse a reflected CHECK constraint that was a boolean-valued function (as opposed to a boolean-valued expression).
[postgresql] [tests]
Improved detection of two phase transactions requirement for the PostgreSQL database by testing that max_prepared_transactions is set to a value greater than 0. Pull request courtesy Federico Caselli.
[mssql] [bug]
Fixed issue where a timezone-aware datetime value being converted to string for use as a parameter value of a mssql.DATETIMEOFFSET column was omitting the fractional seconds.
[bug] [ext]
Fixed bug in sqlalchemy.ext.serializer where a unique BindParameter object could conflict with itself if it were present in the mapping itself, as well as the filter condition of the query, as one side would be used against the non-deserialized version and the other side would use the deserialized version. Logic is added to BindParameter similar to its “clone” method which will uniquify the parameter name upon deserialize so that it doesn’t conflict with its original.
[bug] [tests]
Fixed a few test failures which would occur on Windows due to SQLite file locking issues, as well as some timing issues in connection pool related tests; pull request courtesy Federico Caselli.
1.3.12
[orm] [bug]
Fixed issue involving lazy="raise" strategy where an ORM delete of an object would raise for a simple “use-get” style many-to-one relationship that had lazy=”raise” configured. This is inconsistent vs. the change introduced in 1.3 as part of 4353, where it was established that a history operation that does not expect emit SQL should bypass the lazy="raise" check, and instead effectively treat it as lazy="raise_on_sql" for this case. The fix adjusts the lazy loader strategy to not raise for the case where the lazy load was instructed that it should not emit SQL if the object were not present.
[orm] [bug]
Fixed regression introduced in 1.3.0 related to the association proxy refactor in 4351 that prevented composite() attributes from working in terms of an association proxy that references them.
[orm] [bug]
Setting persistence-related flags on relationship() while also setting viewonly=True will now emit a regular warning, as these flags do not make sense for a viewonly=True relationship. In particular, the “cascade” settings have their own warning that is generated based on the individual values, such as “delete, delete-orphan”, that should not apply to a viewonly relationship. Note however that in the case of “cascade”, these settings are still erroneously taking effect even though the relationship is set up as “viewonly”. In 1.4, all persistence-related cascade settings will be disallowed on a viewonly=True relationship in order to resolve this issue.
[orm] [bug] [py3k]
Fixed issue where when assigning a collection to itself as a slice, the mutation operation would fail as it would first erase the assigned collection inadvertently. As an assignment that does not change the contents should not generate events, the operation is now a no-op. Note that the fix only applies to Python 3; in Python 2, the __setitem__ hook isn’t called in this case; __setslice__ is used instead which recreates the list item-by-item in all cases.
[orm] [bug]
Fixed issue where by if the “begin” of a transaction failed at the Core engine/connection level, such as due to network error or database is locked for some transactional recipes, within the context of the Session procuring that connection from the conneciton pool and then immediately returning it, the ORM Session would not close the connection despite this connection not being stored within the state of that Session. This would lead to the connection being cleaned out by the connection pool weakref handler within garbage collection which is an unpreferred codepath that in some special configurations can emit errors in standard error.
[sql] [bug]
Fixed bug where “distinct” keyword passed to select() would not treat a string value as a “label reference” in the same way that the select.distinct() does; it would instead raise unconditionally. This keyword argument and the others passed to select() will ultimately be deprecated for SQLAlchemy 2.0.
[sql] [bug]
Changed the text of the exception for “Can’t resolve label reference” to include other kinds of label coercions, namely that “DISTINCT” is also in this category under the PostgreSQL dialect.
[sqlite] [bug]
Fixed issue to workaround SQLite’s behavior of assigning “numeric” affinity to JSON datatypes, first described at Support for SQLite JSON Added, which returns scalar numeric JSON values as a number and not as a string that can be JSON deserialized. The SQLite-specific JSON deserializer now gracefully degrades for this case as an exception and bypasses deserialization for single numeric values, as from a JSON perspective they are already deserialized.
[mssql] [bug]
Repaired support for the mssql.DATETIMEOFFSET datatype on PyODBC, by adding PyODBC-level result handlers as it does not include native support for this datatype. This includes usage of the Python 3 “timezone” tzinfo subclass in order to set up a timezone, which on Python 2 makes use of a minimal backport of “timezone” in sqlalchemy.util.
3.4.1
* Move the username argument in the Redis and Connection classes to the
end of the argument list. This helps those poor souls that specify all
their connection options as non-keyword arguments.
* Prior to ACL support, redis-py ignored the username component of
Connection URLs. With ACL support, usernames are no longer ignored and
are used to authenticate against an ACL rule. Some cloud vendors with
managed Redis instances (like Heroku) provide connection URLs with a
username component pre-ACL that is not intended to be used. Sending that
username to Redis servers < 6.0.0 results in an error. Attempt to detect
this condition and retry the AUTH command with only the password such
that authentication continues to work for these users.
* Removed the __eq__ hooks to Redis and ConnectionPool that were added
in 3.4.0. This ended up being a bad idea as two separate connection
pools be considered equal yet manage a completely separate set of
connections.
3.4.24:
Issues fixed:
SERVER-37772: Platform Support: Add Community & Enterprise RHEL 8 x64
SERVER-37135: TLSVersionCounts needs to track and report TLS 1.3
SERVER-36315: After stepdown the CSRS dist lock manager keeps trying to unlock locks
SERVER-37846: writeConcern can be satisfied with an arbiter if the write was committed
SERVER-38945: SSL performance regression
SERVER-40355: rs.config that contains an _id greater than the number of nodes will crash
SERVER-43151: Error in aggregation assertion at value.cpp:1368
SERVER-44050: Arrays along ‘hashed’ index key path are not correctly rejected
WT-4956: Handle the case where 4 billion updates are made to a page without eviction
4.2.3:
Issues fixed:
SERVER-42565: Aggregations and find commands sort missing fields differently’
SERVER-44174: $push and $addToSet should restrict memory usage
SERVER-40435: A clearJumboFlag command to clear the jumbo flag
SERVER-45270: Increased vulnerability to slow DNS
TOOLS-1952: Use –forceTableScan by default when running against WiredTiger nodes
TOOLS-2453: Index keys not escaped correctly
SERVER-45396: fix the “me” field in isMaster responses when using splithorizon
SERVER-45309: Ensure bind credentials live longer than LDAP operations
WT-5120: Checkpoint hangs when reconciliation doesn’t release the eviction generation
4.2.2:
Issues fixed:
SERVER-31083: Allow passing primary shard to “enableSharding” command for a new database
SERVER-33272: The DatabaseHolder::close() function no longer requires a global write lock and neither does the dropDatabase command
SERVER-44050: Arrays along ‘hashed’ index key path are not correctly rejected
SERVER-43882: Building indexes for startup recovery uses unowned RecordData after yielding its cursor
SERVER-44617: $regexFind crash when one of the capture group doesn’t match the input but pattern matches
SERVER-44721: Shell KMS AWS support cannot decrypt responses
WT-4961: Checkpoints with cache overflow must keep history for reads
4.2.1:
Issues fixed:
SERVER-37768: Platform Support: Add Community & Enterprise Debian 10 x64
SERVER-37772: Platform Support: Add Community & Enterprise RHEL 8 x64
SERVER-41506: Track metrics associated with a node calling an election
SERVER-41499: Track number of elections called for each reason in serverStatus
SERVER-42518: Wildcard index plans miss results when the query path has multiple subsequent array indexes
SERVER-42856: Transactions with write can be sent to the wrong shard
3.4.0
* Allow empty pipelines to be executed if there are WATCHed keys.
This is a convenient way to test if any of the watched keys changed
without actually running any other commands.
* Removed support for end of life Python 3.4.
* Added support for all ACL commands in Redis 6.
* Pipeline instances now always evaluate to True. Prior to this change,
pipeline instances relied on __len__ for boolean evaluation which
meant that pipelines with no commands on the stack would be considered
False.
* Client instances and Connection pools now support a 'client_name'
argument. If supplied, all connections created will call CLIENT SETNAME
as soon as the connection is opened.
* Added the 'ssl_check_hostname' argument to specify whether SSL
connections should require the server hostname to match the hostname
specified in the SSL cert. By default 'ssl_check_hostname' is False
for backwards compatibility.
* Slightly optimized command packing.
* Added support for the TYPE argument to SCAN.
* Better thread and fork safety in ConnectionPool and
BlockingConnectionPool. Added better locking to synchronize critical
sections rather than relying on CPython-specific implementation details
relating to atomic operations. Adjusted how the pools identify and
deal with a fork. Added a ChildDeadlockedError exception that is
raised by child processes in the very unlikely chance that a deadlock
is encountered.
This includes one breaking change: Data.to_string is now
Data.to_string_coerce.
There are also some updates to the build system, and general improvements
and bugfixes.
Changes in Version 3.10.1
-------------------------
Version 3.10.1 fixes the following issues discovered since the release of
3.10.0:
- Fix a TypeError logged to stderr that could be triggered during server
maintenance or during :meth:`pymongo.mongo_client.MongoClient.close`.
- Avoid creating new connections during
:meth:`pymongo.mongo_client.MongoClient.close`.
Issues Resolved
...............
See the `PyMongo 3.10.1 release notes in JIRA`_ for the list of resolved issues
in this release.
.. _PyMongo 3.10.1 release notes in JIRA: https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004&version=25039
Changes in Version 3.10.0
-------------------------
Version 3.10 includes a number of improvements and bug fixes. Highlights
include:
- Support for Client-Side Field Level Encryption with MongoDB 4.2. See
:doc:`examples/encryption` for examples.
- Support for Python 3.8.
- Added :attr:`pymongo.client_session.ClientSession.in_transaction`.
- Do not hold the Topology lock while creating connections in a MongoClient's
background thread. This change fixes a bug where application operations would
block while the background thread ensures that all server pools have
minPoolSize connections.
- Fix a UnicodeDecodeError bug when coercing a PyMongoError with a non-ascii
error message to unicode on Python 2.
- Fix an edge case bug where PyMongo could exceed the server's
maxMessageSizeBytes when generating a compressed bulk write command.
Issues Resolved
...............
See the `PyMongo 3.10 release notes in JIRA`_ for the list of resolved issues
in this release.
.. _PyMongo 3.10 release notes in JIRA: https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004&version=23944
Changes in Version 3.9.0
------------------------
Version 3.9 adds support for MongoDB 4.2. Highlights include:
- Support for MongoDB 4.2 sharded transactions. Sharded transactions have
the same API as replica set transactions. See :ref:`transactions-ref`.
- New method :meth:`pymongo.client_session.ClientSession.with_transaction` to
support conveniently running a transaction in a session with automatic
retries and at-most-once semantics.
- Initial support for client side field level encryption. See the docstring for
:class:`~pymongo.mongo_client.MongoClient`,
:class:`~pymongo.encryption_options.AutoEncryptionOpts`,
and :mod:`~pymongo.encryption` for details. **Note: Support for client side
encryption is in beta. Backwards-breaking changes may be made before the
final release.**
- Added the ``max_commit_time_ms`` parameter to
:meth:`~pymongo.client_session.ClientSession.start_transaction`.
- Implement the `URI options specification`_ in the
:meth:`~pymongo.mongo_client.MongoClient` constructor. Consequently, there are
a number of changes in connection options:
- The ``tlsInsecure`` option has been added.
- The ``tls`` option has been added. The older ``ssl`` option has been retained
as an alias to the new ``tls`` option.
- ``wTimeout`` has been deprecated in favor of ``wTimeoutMS``.
- ``wTimeoutMS`` now overrides ``wTimeout`` if the user provides both.
- ``j`` has been deprecated in favor of ``journal``.
- ``journal`` now overrides ``j`` if the user provides both.
- ``ssl_cert_reqs`` has been deprecated in favor of ``tlsAllowInvalidCertificates``.
Instead of ``ssl.CERT_NONE``, ``ssl.CERT_OPTIONAL`` and ``ssl.CERT_REQUIRED``, the
new option expects a boolean value - ``True`` is equivalent to ``ssl.CERT_NONE``,
while ``False`` is equivalent to ``ssl.CERT_REQUIRED``.
- ``ssl_match_hostname`` has been deprecated in favor of ``tlsAllowInvalidHostnames``.
- ``ssl_ca_certs`` has been deprecated in favor of ``tlsCAFile``.
- ``ssl_certfile`` has been deprecated in favor of ``tlsCertificateKeyFile``.
- ``ssl_pem_passphrase`` has been deprecated in favor of ``tlsCertificateKeyFilePassword``.
- ``waitQueueMultiple`` has been deprecated without replacement. This option
was a poor solution for putting an upper bound on queuing since it didn't
affect queuing in other parts of the driver.
- The ``retryWrites`` URI option now defaults to ``True``. Supported write
operations that fail with a retryable error will automatically be retried one
time, with at-most-once semantics.
- Support for retryable reads and the ``retryReads`` URI option which is
enabled by default. See the :class:`~pymongo.mongo_client.MongoClient`
documentation for details. Now that supported operations are retried
automatically and transparently, users should consider adjusting any custom
retry logic to prevent an application from inadvertently retrying for too
long.
- Support zstandard for wire protocol compression.
- Support for periodically polling DNS SRV records to update the mongos proxy
list without having to change client configuration.
- New method :meth:`pymongo.database.Database.aggregate` to support running
database level aggregations.
- Support for publishing Connection Monitoring and Pooling events via the new
:class:`~pymongo.monitoring.ConnectionPoolListener` class. See
:mod:`~pymongo.monitoring` for an example.
- :meth:`pymongo.collection.Collection.aggregate` and
:meth:`pymongo.database.Database.aggregate` now support the ``$merge`` pipeline
stage and use read preference
:attr:`~pymongo.read_preferences.ReadPreference.PRIMARY` if the ``$out`` or
``$merge`` pipeline stages are used.
- Support for specifying a pipeline or document in
:meth:`~pymongo.collection.Collection.update_one`,
:meth:`~pymongo.collection.Collection.update_many`,
:meth:`~pymongo.collection.Collection.find_one_and_update`,
:meth:`~pymongo.operations.UpdateOne`, and
:meth:`~pymongo.operations.UpdateMany`.
- New BSON utility functions :func:`~bson.encode` and :func:`~bson.decode`
- :class:`~bson.binary.Binary` now supports any bytes-like type that implements
the buffer protocol.
- Resume tokens can now be accessed from a ``ChangeStream`` cursor using the
:attr:`~pymongo.change_stream.ChangeStream.resume_token` attribute.
- Connections now survive primary step-down when using MongoDB 4.2+.
Applications should expect less socket connection turnover during
replica set elections.
Unavoidable breaking changes:
- Applications that use MongoDB with the MMAPv1 storage engine must now
explicitly disable retryable writes via the connection string
(e.g. ``MongoClient("mongodb://my.mongodb.cluster/db?retryWrites=false")``) or
the :class:`~pymongo.mongo_client.MongoClient` constructor's keyword argument
(e.g. ``MongoClient("mongodb://my.mongodb.cluster/db", retryWrites=False)``)
to avoid running into :class:`~pymongo.errors.OperationFailure` exceptions
during write operations. The MMAPv1 storage engine is deprecated and does
not support retryable writes which are now turned on by default.
- In order to ensure that the ``connectTimeoutMS`` URI option is honored when
connecting to clusters with a ``mongodb+srv://`` connection string, the
minimum required version of the optional ``dnspython`` dependency has been
bumped to 1.16.0. This is a breaking change for applications that use
PyMongo's SRV support with a version of ``dnspython`` older than 1.16.0.
.. _URI options specification: https://github.com/mongodb/specifications/blob/master/source/uri-options/uri-options.rst
Issues Resolved
...............
See the `PyMongo 3.9 release notes in JIRA`_ for the list of resolved issues
in this release.
.. _PyMongo 3.9 release notes in JIRA: https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004&version=21787
Changes in Version 3.8.0
------------------------
.. warning:: PyMongo no longer supports Python 2.6. RHEL 6 users should install
Python 2.7 or newer from `Red Hat Software Collections
<https://www.softwarecollections.org>`_. CentOS 6 users should install Python
2.7 or newer from `SCL
<https://wiki.centos.org/AdditionalResources/Repositories/SCL>`_
.. warning:: PyMongo no longer supports PyPy3 versions older than 3.5. Users
must upgrade to PyPy3.5+.
- :class:`~bson.objectid.ObjectId` now implements the `ObjectID specification
version 0.2 <https://github.com/mongodb/specifications/blob/master/source/objectid.rst>`_.
- For better performance and to better follow the GridFS spec,
:class:`~gridfs.grid_file.GridOut` now uses a single cursor to read all the
chunks in the file. Previously, each chunk in the file was queried
individually using :meth:`~pymongo.collection.Collection.find_one`.
- :meth:`gridfs.grid_file.GridOut.read` now only checks for extra chunks after
reading the entire file. Previously, this method would check for extra
chunks on every call.
- :meth:`~pymongo.database.Database.current_op` now always uses the
``Database``'s :attr:`~pymongo.database.Database.codec_options`
when decoding the command response. Previously the codec_options
was only used when the MongoDB server version was <= 3.0.
- Undeprecated :meth:`~pymongo.mongo_client.MongoClient.get_default_database`
and added the ``default`` parameter.
- TLS Renegotiation is now disabled when possible.
- Custom types can now be directly encoded to, and decoded from MongoDB using
the :class:`~bson.codec_options.TypeCodec` and
:class:`~bson.codec_options.TypeRegistry` APIs. For more information, see
the :doc:`custom type example <examples/custom_type>`.
- Attempting a multi-document transaction on a sharded cluster now raises a
:exc:`~pymongo.errors.ConfigurationError`.
- :meth:`pymongo.cursor.Cursor.distinct` and
:meth:`pymongo.cursor.Cursor.count` now send the Cursor's
:meth:`~pymongo.cursor.Cursor.comment` as the "comment" top-level
command option instead of "$comment". Also, note that "comment" must be a
string.
- Add the ``filter`` parameter to
:meth:`~pymongo.database.Database.list_collection_names`.
- Changes can now be requested from a ``ChangeStream`` cursor without blocking
indefinitely using the new
:meth:`pymongo.change_stream.ChangeStream.try_next` method.
- Fixed a reference leak bug when splitting a batched write command based on
maxWriteBatchSize or the max message size.
- Deprecated running find queries that set :meth:`~pymongo.cursor.Cursor.min`
and/or :meth:`~pymongo.cursor.Cursor.max` but do not also set a
:meth:`~pymongo.cursor.Cursor.hint` of which index to use. The find command
is expected to require a :meth:`~pymongo.cursor.Cursor.hint` when using
min/max starting in MongoDB 4.2.
- Documented support for the uuidRepresentation URI option, which has been
supported since PyMongo 2.7. Valid values are `pythonLegacy` (the default),
`javaLegacy`, `csharpLegacy` and `standard`. New applications should consider
setting this to `standard` for cross language compatibility.
- :class:`~bson.raw_bson.RawBSONDocument` now validates that the ``bson_bytes``
passed in represent a single bson document. Earlier versions would mistakenly
accept multiple bson documents.
- Iterating over a :class:`~bson.raw_bson.RawBSONDocument` now maintains the
same field order of the underlying raw BSON document.
- Applications can now register a custom server selector. For more information
see the :doc:`server selector example <examples/server_selection>`.
- The connection pool now implements a LIFO policy.
Unavoidable breaking changes:
- In order to follow the ObjectID Spec version 0.2, an ObjectId's 3-byte
machine identifier and 2-byte process id have been replaced with a single
5-byte random value generated per process. This is a breaking change for any
application that attempts to interpret those bytes.
SQLite Release 3.31.1:
Revert the data layout for an internal-use-only SQLite data structure. Applications that use SQLite should never reference internal SQLite data structures, but some do anyhow, and a change to one such data structure in 3.30.0 broke a popular and widely-deployed application. Reverting that change in SQLite, at least temporarily, gives developers of misbehaving applications time to fix their code.
Fix a typos in the sqlite3ext.h header file that prevented the sqlite3_stmt_isexplain() and sqlite3_value_frombind() interfaces from being called from run-time loadable extensions.
pkglint -r --network --only "migrate"
As a side-effect of migrating the homepages, pkglint also fixed a few
indentations in unrelated lines. These and the new homepages have been
checked manually.
SQLite Release 3.31.0:
Add support for generated columns.
Add the sqlite3_hard_heap_limit64() interface and the corresponding PRAGMA hard_heap_limit command.
Enhance the function_list pragma to show the number of arguments on each function, the type of function (scalar, aggregate, window), and the function property flags SQLITE_DETERMINISTIC, SQLITE_DIRECTONLY, SQLITE_INNOCUOUS, and/or SQLITE_SUBTYPE.
Add the aggregated mode feature to the DBSTAT virtual table.
Add the SQLITE_OPEN_NOFOLLOW option to sqlite3_open_v2() that prevents SQLite from opening symbolic links.
Added the "#-N" array notation for JSON function path arguments.
Added the SQLITE_DBCONFIG_TRUSTED_SCHEMA connection setting which is also controllable via the new trusted_schema pragma and at compile-time using the -DSQLITE_TRUSTED_SCHEMA compile-time option.
Added APIs sqlite3_filename_database(), sqlite3_filename_journal(), and sqlite3_filename_wal() which are useful for specialized extensions.
Add the sqlite3_uri_key() interface.
Upgraded the sqlite3_uri_parameter() function so that it works with the rollback journal or WAL filename in addition to the database filename.
Provide the ability to tag application-defined SQL functions with new properties SQLITE_INNOCUOUS or SQLITE_DIRECTONLY.
Add new verbs to sqlite3_vtab_config() so that the xConnect method of virtual tables can declare the virtual table as SQLITE_VTAB_INNOCUOUS or SQLITE_VTAB_DIRECTONLY.
Faster response to sqlite3_interrupt().
Added the uuid.c extension module implementing functions for processing RFC-4122 UUIDs.
The lookaside memory allocator is enhanced to support two separate memory pools with different sized allocations in each pool. This allows more memory allocations to be covered by lookaside while at the same time reducing the heap memory usage to 48KB per connection, down from 120KB.
The legacy_file_format pragma is deactivated. It is now a no-op. In its place, the SQLITE_DBCONFIG_LEGACY_FILE_FORMAT option to sqlite3_db_config() is provided. The legacy_file_format pragma is deactivated because (1) it is rarely useful and (2) it is incompatible with VACUUM in schemas that have tables with both generated columns and descending indexes.
4.9.4 (2020-01-07)
- issue #15724 Fix 2FA was disabled by a bug
- issue [security] Fix SQL injection vulnerability on the user accounts page (PMASA-2020-1)
4.9.3 (2019-12-26)
- issue #15570 Fix page contents go underneath of floating menubar in some cases
- issue #15591 Fix php notice 'Undefined index: foreign_keys_data' on relations view when the user has column access
- issue #15592 Fix php warning "error_reporting() has been disabled for security reasons"
- issue #15434 Fix middle click on table sort column name shows a blank page
- issue Fix php notice "Undefined index table_create_time" when setting displayed columns on results of a view
- issue #15571 Fix fatal error when trying to edit row with row checked and button under the table
- issue #15633 Fix designer set display field broken for php 5.x versions
- issue #15621 Support CloudFront-Forwarded-Proto header for Amazon CloudFront proxy
- issue Fix php 8.0 php notices - Undefined index on login page
- issue #15640 Fix php 7.4 error when trying to access array offset on value of type null on table browse
- issue #15641 Fix replication actions where broken (start slave, stop slave, reset, ...)
- issue #15608 Fix DisableIS is broken when with controluser configured (database list broken)
- issue #15614 Fix undefined offset on index page for MySQL 5.7.8 (server charset)
- issue #15692 Fix JavaScript error when user has not enough privilege to view query statistics.
- issue #14248 Fixed date selection in search menu missing higher Z-index value
- issue Fix Uncaught php TypeError on php 8.0 when adding a column to table create form
- issue #15682 Fix calendar not taking current time as default value
- issue #15636 Fix php error trying to access array offset on value o type null on replication GUI
- issue #15695 Fix input field for the time in datetime picker is disabled
pkglint --only "https instead of http" -r -F
With manual adjustments afterwards since pkglint 19.4.4 fixed a few
indentations in unrelated lines.
This mainly affects projects hosted at SourceForce, as well as
freedesktop.org, CTAN and GNU.
update ruby-arel-helpers to 2.11.0.
2.11.0
* Allow consumers of ArelHelpers::QueryBuilder to chain on falsy return
(@ramhoj #44).
- Add not_nil in front of builder methods to opt-in.
2.10.0
* Add support for Rails 6 rc2.
=== 5.28.0 (2020-01-01)
* Warn when calling Sequel::JDBC::Postgres::Dataset#with_fetch_size (jeremyevans) (#1665)
* Add exclude_or_null extension, for filtering datasets where the condition is false or NULL (jeremyevans)
* Add any_not_empty extension, for making Dataset#any? without a block mean !empty? (jeremyevans)
=== 5.27.0 (2019-12-01)
* Add Sequel::DEFAULT for a DEFAULT expression, useful for assigning to default values (jeremyevans)
* Make Postgres::ArrayOp#join in pg_array_ops extension work correctly on PostgreSQL <9.1 (jeremyevans)
* Make pg_enum extension work correctly on PostgreSQL 8.3-9.0 (jeremyevans)
* Emulate FILTER clause for aggregate functions using CASE on databases not supporting it directly (jeremyevans)
* Support ordering by NULLS FIRST/NULLS LAST without emulation on SQLite 3.30+ (jeremyevans)
== v1.2.2 [2020-01-06] Michael Granger <ged@FaerieMUD.org>
Enhancements:
- Add a binary gem for Ruby 2.7.
== v1.2.1 [2020-01-02] Michael Granger <ged@FaerieMUD.org>
Enhancements:
- Added internal API for sequel_pg compatibility.
== v1.2.0 [2019-12-20] Michael Granger <ged@FaerieMUD.org>
Repository:
- Our primary repository has been moved to Github https://github.com/ged/ruby-pg .
Most of the issues from https://bitbucket.org/ged/ruby-pg have been migrated. #43
API enhancements:
- Add PG::Result#field_name_type= and siblings to allow symbols to be used as field names. #306
- Add new methods for error reporting:
- PG::Connection#set_error_context_visibility
- PG::Result#verbose_error_message
- PG::Result#result_verbose_error_message (alias)
- Update errorcodes and error classes to PostgreSQL-12.0.
- New constants: PG_DIAG_SEVERITY_NONLOCALIZED, PQERRORS_SQLSTATE, PQSHOW_CONTEXT_NEVER, PQSHOW_CONTEXT_ERRORS, PQSHOW_CONTEXT_ALWAYS
Type cast enhancements:
- Add PG::TextEncoder::Record and PG::TextDecoder::Record for en/decoding of Composite Types. #258, #36
- Add PG::BasicTypeRegistry.register_coder to register instances instead of classes.
This is useful to register parametrized en/decoders like PG::TextDecoder::Record .
- Add PG::BasicTypeMapForQueries#encode_array_as= to switch between various interpretations of ruby arrays.
- Add Time, Array<Time>, Array<BigDecimal> and Array<IPAddr> encoders to PG::BasicTypeMapForQueries
- Exchange sprintf based float encoder by very fast own implementation with more natural format. #301
- Define encode and decode methods only in en/decoders that implement it, so that they can be queried by respond_to? .
- Improve PG::TypeMapByColumn#inspect
- Accept Integer and Float as input to TextEncoder::Numeric . #310
Other enhancements:
- Allocate the data part and the ruby object of PG::Result in one step, so that we don't need to check for valid data.
This removes PG::Result.allocate and PG::Result.new, which were callable but without any practical use. #42
- Make use of PQresultMemorySize() of PostgreSQL-12 and fall back to our internal estimator.
- Improve performance of PG::Result#stream_each_tuple .
- Store client encoding in data part of PG::Connection and PG::Result objects, so that we no longer use ruby's internal encoding bits. #280
- Update Windows fat binary gem to OpenSSL-1.1.1d and PostgreSQL-12.1.
- Add support for TruffleRuby. It is regulary tested as part of our CI.
- Enable +frozen_string_literal+ in all pg's ruby files
Bugfixes:
- Update the license in gemspec to "BSD-2-Clause".
It was incorrectly labeled "BSD-3-Clause". #40
- Respect PG::Coder#flags in PG::Coder#to_h.
- Fix PG::Result memsize reporting after #clear.
- Release field names to GC on PG::Result#clear.
- Fix double free in PG::Result#stream_each_tuple when an exception is raised in the block.
- Fix PG::Result#stream_each_tuple to deliver typemapped values.
- Fix encoding of Array<unknown> with PG::BasicTypeMapForQueries
Deprecated:
- Add a deprecation warning to PG::Connection#socket .
Removed:
- Remove PG::Connection#guess_result_memsize= which was temporary added in pg-1.1.
- Remove PG::Result.allocate and PG::Result.new (see enhancements).
- Remove support of tainted objects. #307
- Remove support of ruby-2.0 and 2.1. Minimum is ruby-2.2 now.
Documentation:
- Update description of connection params. See PG::Connection.new
- Link many method descriptions to corresponding libpq's documentation.
- Update sync_* and async_* query method descriptions and document the aliases.
The primary documentation is now at the async_* methods which are the default since pg-1.1.
- Fix documentation of many constants
0.5.3 (2019-11-27)
New Features
* Expose Windows client authentication (#1018)
Bug Fixes
* Support more MySQL encodings and warn rather than crash on unsupported
encodings (#1040)
Changes
* Precompiled mysql2 gem for Windows supports Ruby 2.2, 2.3, 2.4, 2.5,
2.6. Windows Ruby 2.0 and 2.1 are dropped.
* Keyword arguments have to be explicitly double-splatted in Ruby 2.7+
(#1084)
* Add Centos to CI matrix (#989, #1085)
* Remove spec from gem (#1044)
* Replace Win32API with Fiddle, update appveyor.yml (#1053)
* Update README to clarify the protocol value in DATABASE_URL (#1047)
* Improve performance to call Mysql2::Result#each and Mysql2::Result#fields
(#1046)
* Fix fragile specs due to clock skew and timeout/threads corruption (#1041)
* README updates (#1002, #1038)
libtcd provides a software API for reading and writing Tide Constituent
Database (TCD) files.
The TCD file format and schema are used by XTide to retrieve constituent
definitions (speeds, equilibrium arguments, and node factors), harmonic
constants, subordinate station offsets and associated metadata for use
in generating tide predictions.
The TCD file format and schema were originally designed by Jan Depner
to improve the performance of XTide and to meet additional requirements
of the U.S. Naval Oceanographic Office (NAVO). They are now maintained
primarily by David Flater.
The design goals for TCD included:
Available without installing heavy external packages.
Efficient for indexing and loading of stations.
Compact file format.
Translatable without loss from legacy XTide .txt and .xml files.
Exportable to legacy .txt and .xml formats.
Modifiable by end user using tideEditor.
Able to detect tampering (usually, misguided attempts to edit the
database in a word processor).
2.15.2:
[BUGFIX] TSDB: Fixed support for TSDB blocks built with Prometheus before 2.1.0.
[BUGFIX] TSDB: Fixed block compaction issues on Windows.
2.15.1:
[BUGFIX] Fixed race on concurrent queries against the same data.
2.15.0:
[CHANGE] Discovery: Removed prometheus_sd_kubernetes_cache_* metrics. Additionally prometheus_sd_kubernetes_workqueue_latency_seconds and prometheus_sd_kubernetes_workqueue_work_duration_seconds metrics now show correct values in seconds.
[CHANGE] Remote write: Changed query label on prometheus_remote_storage_* metrics to remote_name and url.
[FEATURE] API: Added new endpoint for exposing per metric metadata /metadata.
[ENHANCEMENT] TSDB: Significantly reduced memory footprint of loaded TSDB blocks.
[ENHANCEMENT] TSDB: Significantly optimized what we buffer during compaction which should result in lower memory footprint during compaction.
[ENHANCEMENT] TSDB: Improve replay latency.
[ENHANCEMENT] TSDB: WAL size is now used for size based retention calculation.
[ENHANCEMENT] Remote read: Added query grouping and range hints to the remote read request
[ENHANCEMENT] Remote write: Added prometheus_remote_storage_sent_bytes_total counter per queue.
[ENHANCEMENT] promql: Improved PromQL parser performance.
[ENHANCEMENT] React UI: Implemented missing pages like /targets
[ENHANCEMENT] promql: Prometheus now accepts spaces between time range and square bracket. e.g [ 5m]
[BUGFIX] Config: Fixed alertmanager configuration to not miss targets when configurations are similar.
[BUGFIX] Remote write: Value of prometheus_remote_storage_shards_desired gauge shows raw value of desired shards and it's updated correctly.
[BUGFIX] Rules: Prometheus now fails the evaluation of rules and alerts where metric results collide with labels specified in labels field.
[BUGFIX] API: Targets Metadata API /targets/metadata now accepts empty match_targets parameter as in the spec.
This retires an old "optimisation" that over time has created more
problems than it solved, including various questions from users about
the ignored patch failures.
4.7.3:
Features
- Implement ``__sizeof__`` function to correctly calculate all internal structures size.
- Expose ``getversion()`` function.
Bugfixes
- Fix crashes in ``popone``/``popall`` when default is returned.
Improved Documentation
- Corrected the documentation for ``MultiDict.extend()``
4.7.2:
Bugfixes
- Fix crashing when multidict is used pyinstaller
- Fix typing for `CIMultiDict.copy`
- Fix memory leak in ``MultiDict.copy()``
4.7.1:
Bugfixes
- `CIMultiDictProxy.copy` return object type `multidict._multidict.CIMultiDict`
- Make `CIMultiDict` subclassable again
- Fix regression, multidict can be constructed from arbitrary iterable of pairs again.
- `CIMultiDict.add` may be called with keyword arguments
Improved Documentation
- Mention ``MULTIDICT_NO_EXTENSIONS`` environment variable in docs.
- Document the fact that ``istr`` preserves the casing of argument untouched but uses internal lower-cased copy for keys comparison.
4.7.0:
Features
- Replace Cython optimization with pure C
- Implement ``__length_hint__()`` for iterators
- Support the MultiDict[str] generic specialization in the runtime.
- Embed pair_list_t structure into MultiDict Python object
- Embed multidict pairs for small dictionaries to amortize the memory usage.
- Support weak references to C Extension classes.
- Add docstrings to provided classes.
- Merge ``multidict._istr`` back with ``multidict._multidict``.
Bugfixes
- Explicitly call ``tp_free`` slot on deallocation.
- Return class from __class_getitem__ to simplify subclassing
3.13.1
Fix a regression when specifying keyword arguments to the atomic() or
transaction() helper methods. Note: this only occurs if you were using Sqlite
and were explicitly setting the lock_type= parameter.
3.13.0
CockroachDB support added
This will be a notable release as it adds support for
CockroachDB, a distributed, horizontally-scalable
SQL database.
CockroachDB usage overview
CockroachDB API documentation
Other features and fixes
Allow FOR UPDATE clause to specify one or more tables (FOR UPDATE OF...).
Support for Postgres LATERAL join.
Properly wrap exceptions raised during explicit commit/rollback in the appropriate peewee-specific exception class.
Capture original exception object and expose it as exc.orig on the wrapped exception.
Properly introspect SMALLINT columns in Postgres schema reflection.
More flexible handling of passing database-specific arguments to atomic() and transaction() context-manager/decorator.
Fix non-deterministic join ordering issue when using the filter() API across several tables
1.3.1
bug
[bug] [mssql]
Fixed bug in MSSQL dialect where the drop constraint execution steps used to remove server default or implicit foreign key constraint failed to take into account the schema name of the target table.
1.3.0
feature
[feature] [command]
Added support for ALEMBIC_CONFIG environment variable, refers to the location of the alembic configuration script in lieu of using the -c command line option.
bug
[bug] [autogenerate]
Fixed bug in new Variant autogenerate where the order of the arguments to Variant were mistakenly reversed.
misc
[change] [compatibility]
Some internal modifications have been made to how the names of indexes and unique constraints work to make use of new functions added in SQLAlchemy 1.4, so that SQLAlchemy has more flexibility over how naming conventions may be applied to these objects.
Release 1.3.11 has a significant number of bug fixes across all areas as well as new use case additions. While it is a "point release", it contains a few use case additions that amount to new features, as they are needed sooner than the 1.4 series will be ready. This includes new scalar accessors for JSON index expressions that work across all JSON-supporting backends as well as cross-dialect support for the "GENERATED ALWAYS AS" SQL construct, which allows for an automatically updated expression to be established within DDL in the database server.
4.9.2 (2019-11-21)
- issue #14184 Change the cookie name from phpMyAdmin to phpMyAdmin_https for HTTPS, fixes many "Failed to set session cookie" errors
- issue #15304 Fix ssl_use php error
- issue #14804 Fix undefined index: ssl_* variables
- issue #14245 Fix mysql 8.0.3 and above fails on advisor
- issue #15499 Fix unparenthesized php deprecation
- issue #15482 Fix URL encoding plus sign (+) in the table or DB name when configuring foreign keys
- issue #14898 Fixed bottom table in list in left panel blocked by horizontal scroll bar
- issue #15161 Fix text area overflows its parent element on "Query" page
- issue #15511 Fixed exporting users after a delete will delete all selected users on "Users" page
- issue #14598 Fixed checking referencial integrity on "Operations" page
- issue #14433 Fix "You do not have privileges to manipulate with the users!" on root superadmin
- issue #15391 Fix GIS polygon of a geometry field is not drawn on "GIS visualization"
- issue #15311 Fix adjust privileges on copy database fails with MariaDB
- issue #15477 Fix display referential integrity check for InnoDB
- issue #15236 Support phpunit 8 in our test suite to help packaging phpMyAdmin on Debian
- issue #15522 Fix missing image error fills logs, removed ic_b_info icon from icon list
- issue #15537 Fixed some issues with the sort by key selectors
- issue #15546 Fix operators precedence in DatabaseInterface class
- issue #14906 Test test suite on 32-bit systems
- issue Fix Long2IP transformation issue with PHP 7.1
- issue #14951 Fix moving columns with DEFAULT NULL doesn't work on MariaDB 10.2+
- issue #14951 Fix moving columns with INT AND DEFAULT CURRENT_TIMESTAMP doesn't work on MariaDB
- issue #12241 Fixed table alias is removed when exporting a query
- issue #15316 Fixed cross join clause is removed on export
- issue #14809 Fix error "is_uploaded_file() expects parameter 1 to be string" when inserting blobs from files
- issue #15127 Fix white square when refreshing designer or browsing other pages
- issue #13912 Detect when phpMyAdmin storage tables are not accessible, help users browse corrupt DBs
- issue #15465 Display profiling when query outputs no rows
- issue Fix setting and removing display field on Designer
- issue Added a warning when trying to set a display field on Designer and configuration storage is not setup
- issue #15327 Fix shift-click in Export misses a checkbox
- issue [security] Fix improperly sanitized data when showing the Git branch (thanks to Ali Hubail for this report)
- issue [security] Fix security weaknesses in Designer feature,including a flaw where an attacker could trigger an SQL injection attack (PMASA-2019-5)
2.14.0
[SECURITY/BUGFIX] UI: Ensure warnings from the API are escaped.
[FEATURE] API: /api/v1/status/runtimeinfo and /api/v1/status/buildinfo endpoints added for use by the React UI.
[FEATURE] React UI: implement the new experimental React based UI.
Can be found by under /new.
Not all pages are implemented yet.
[FEATURE] Status: Cardinality statistics added to the Runtime & Build Information page.
[ENHANCEMENT/BUGFIX] Remote write: fix delays in remote write after a compaction.
[ENHANCEMENT] UI: Alerts can be filtered by state.
[BUGFIX] API: lifecycle endpoints return 403 when not enabled.
[BUGFIX] Build: Fix Solaris build.
[BUGFIX] Promtool: Remove false duplicate rule warnings when checking rule files with alerts.
[BUGFIX] Remote write: restore use of deduplicating logger in remote write.
[BUGFIX] Remote write: do not reshard when unable to send samples.
[BUGFIX] Service discovery: errors are no longer logged on context cancellation.
[BUGFIX] UI: handle null response from API properly.
tiedot is a document database engine that uses JSON as document
notation; it has a powerful query processor that supports advanced set
operations; it can be embedded into your program, or run a stand-alone
server using HTTP for an API.
tiedot has fault-tolerant data structures that put your data safety
first, while easily scales to 4+ CPU cores.
tiedot has very stable performance, even with millions of records! It
consistently achieves high throughput - swallow more than 120k records
or 80k complicated queries per second with confidence.
### 0.14.0
**Fixes**:
* Catch a buffer overflow when formatting the error message
* Import latest upstream sds. This breaks applications that are linked against the old hiredis v0.13
* Fix warnings, when compiled with -Wshadow
* Make hiredis compile in Cygwin on Windows, now CI-tested
* Bulk and multi-bulk lengths less than -1 or greater than `LLONG_MAX` are now
protocol errors. This is consistent with the RESP specification. On 32-bit
platforms, the upper bound is lowered to `SIZE_MAX`.
**BREAKING CHANGES**:
* Change `redisReply.len` to `size_t`, as it denotes the the size of a string
User code should compare this to `size_t` values as well.
If it was used to compare to other values, casting might be necessary or can be removed, if casting was applied before.
* Remove backwards compatibility macro's
This removes the following old function aliases, use the new name now:
| Old | New |
| --------------------------- | ---------------------- |
| redisReplyReaderCreate | redisReaderCreate |
| redisReplyReaderCreate | redisReaderCreate |
| redisReplyReaderFree | redisReaderFree |
| redisReplyReaderFeed | redisReaderFeed |
| redisReplyReaderGetReply | redisReaderGetReply |
| redisReplyReaderSetPrivdata | redisReaderSetPrivdata |
| redisReplyReaderGetObject | redisReaderGetObject |
| redisReplyReaderGetError | redisReaderGetError |
* The `DEBUG` variable in the Makefile was renamed to `DEBUG_FLAGS`
Previously it broke some builds for people that had `DEBUG` set to some arbitrary value,
due to debugging other software.
By renaming we avoid unintentional name clashes.
Simply rename `DEBUG` to `DEBUG_FLAGS` in your environment to make it working again.
3.12.0
* Bulk insert (`insert_many()` and `insert_from()`) will now return the row
count instead of the last insert ID. If you are using Postgres, peewee will
continue to return a cursor that provides an iterator over the newly-inserted
primary-key values by default. This behavior is being retained by default for
compatibility. Postgres users can simply specify an empty `returning()` call
to disable the cursor and retrieve the rowcount instead.
* Migration extension now supports altering a column's data-type, via the new
`alter_column_type()` method.
* Added `Database.is_connection_usabe()` method, which attempts to look at the
status of the underlying DB-API connection to determine whether the
connection is usable.
* Common table expressions include a `materialized` parameter, which can be
used to control Postgres' optimization fencing around CTEs.
* Added `BloomFilter.from_buffer()` method for populating a bloom-filter from
the output of a previous call to the `to_buffer()` method.
* Fixed APSW extension's `commit()` and `rollback()` methods to no-op if the
database is in auto-commit mode.
* Added `generate_always=` option to the `IdentityField` (defaults to False).
asyncpg v0.20.0
Improvements
Support Python 3.8
Support PgBouncer by sending only a single SYNC message per query
Bug Fixes
Handle IP values with prefix in "inet" type as ipaddress.IPvXInterface
Close transport if connection times out
Use faster UUID codecs; make UUID decoding/encoding/operations 2-7x faster
Use loop.start_tls() to upgrade connections to SSL
Build
Bump Cython to 0.29.14
Hi all, Redis 5.0.7 fixes a number of bugs, none is very critical, however
there are a few that may have an impact. It's a good idea to upgrade.
There are fixes in the area of replication from modules commands and
callbacks, AOF fsync (non critical issue), memory leaks (very rare and small),
streams beahvior (non critical), and a potential crash in commands
processing multiple keys at the same time that is there for years, and happens
very rarely, but is not impossible to trigger.
PostgreSQL 12.1, 11.6, 10.11, 9.6.16, 9.5.20, and 9.4.25 Released!
PostgreSQL 9.4 EOL Approaching
PostgreSQL 9.4 will stop receiving fixes on February 13, 2020, which is the next planned cumulative update release. Please see our versioning policy for more information.
Bug Fixes and Improvements
This update also fixes over 50 bugs that were reported in the last several months. Some of these issues affect only version 12, but may also affect all supported versions.
Some of these fixes include:
Fix crash that occurs when ALTER TABLE adds a column without a default value along with other changes that require a table rewrite
Several fixes for REINDEX CONCURRENTLY.
Fix for VACUUM that would cause it to fail under a specific case involving a still-running transaction.
Fix for a memory leak that could occur when VACUUM runs on a GiST index.
Fix for an error that occurred when running CLUSTER on an expression index.
Fix failure for SET CONSTRAINTS ... DEFERRED on partitioned tables.
Several fixes for the creation and dropping of indexes on partitioned tables.
Fix for partition-wise joins that could lead to planner failures.
Ensure that offset expressions in WINDOW clauses are processed when a query's expressions are manipulated.
Fix misbehavior of bitshiftright() where it failed to zero out padding space in the last byte if the bit string length is not a multiple of 8. For how to correct your data, please see the "Updating" section.
Ensure an empty string that is evaluated by the position() functions returns 1, as per the SQL standard.
Fix for a parallel query failure when it is unable to request a background worker.
Fix crash triggered by a case involving a BEFORE UPDATE trigger.
Display the correct error when a query tries to access a TOAST table.
Allow encoding conversion to succeed on strings with output up to 1GB. Previously there was hard limit of 0.25GB on the input string.
Ensure that temporary WAL and history files are removed at the end of archive recovery.
Avoid failure in archive recovery if recovery_min_apply_delay is enabled.
Ignore restore_command, recovery_end_command, and recovery_min_apply_delay settings during crash recovery.
Several fixes for logical replication, including a failure when the publisher and subscriber had different REPLICA IDENTITY columns set.
Correctly timestamp replication messages for logical decoding, which in the broken case would lead to pg_stat_subscription.last_msg_send_time set to NULL.
Several fixes for libpq, including one that improves PostgreSQL 12 compatibility.
Several pg_upgrade fixes.
Fix how a parallel restore handles foreign key constraints on partitioned tables to ensure they are not created too soon.
pg_dump now outputs similarly named triggers and RLS policies in order based on table name, instead of OID.
Fix pg_rewind to not update the contents of pg_control when using the --dry-run option.
This update also contains tzdata release 2019c for DST law changes in Fiji and Norfolk Island. Historical corrections for Alberta, Austria, Belgium, British Columbia, Cambodia, Hong Kong, Indiana (Perry County), Kaliningrad, Kentucky, Michigan, Norfolk Island, South Korea, and Turkey.
What's new in 1.4.5
* The ``auth_plugin`` option is added.
What's new in 1.4.4
* ``charset`` option is passed to ``mysql_options(mysql, MYSQL_SET_CHARSET_NAME, charset)``
before ``mysql_real_connect`` is called.
This avoid extra ``SET NAMES <charset>`` query when creating connection.
What's new in 1.4.3
* ``--static`` build supports ``libmariadbclient.a``
* Try ``mariadb_config`` when ``mysql_config`` is not found
* Fixed warning happend in Python 3.8
* Fixed ``from MySQLdb import *``, while I don't recommend it.
* Fixed SEGV ``MySQLdb.escape_string("1")`` when libmariadb is used and
no connection is created.
* Fixed many circular references are created in ``Cursor.executemany()``.
What's new in 1.4.2
* Fix Django 1.11 compatibility.
mysqlclient 1.5 will not support Django 1.11. It is not because
mysqlclient will break backward compatibility, but Django used
unsupported APIs and Django 1.11 don't fix bugs including
compatibility issues.
What's new in 1.4.1
* Fix dict parameter support
What's new in 1.4.0
* Dropped Python 3.4 support.
* Removed ``threadsafe`` and ``embedded`` build options.
* Remove some deprecated cursor classes and methods.
* ``_mysql`` and ``_mysql_exceptions`` modules are moved under
``MySQLdb`` package.
* Remove ``errorhandler`` from Connection and Cursor classes.
* Remove context manager API from Connection. It was for transaction.
New context manager API for closing connection will be added in future version.
* Remove ``waiter`` option from Connection.
* Remove ``escape_sequence``, and ``escape_dict`` methods from Connection class.
* Remove automatic MySQL warning checking.
* Drop support for MySQL Connector/C with MySQL<5.1.12.
* Remove ``_mysql.NULL`` constant.
* Remove ``_mysql.thread_safe()`` function.
* Support non-ASCII field name with non-UTF-8 connection encoding.
* Optimize decoding speed of string and integer types.
* Remove ``MySQLdb.constants.REFRESH`` module.
* Remove support for old datetime format for MySQL < 4.1.
* Fix wrong errno is raised when ``mysql_real_connect`` is failed.
What's new in 1.3.14
* Support static linking of MariaDB Connector/C
* Better converter for Decimal and Float
* Add ``Connection._get_native_connection`` for XTA project
* Fix SEGV on MariaDB Connector/C when some methods of ``Connection``
objects are called after ``Connection.close()`` is called.
* Fix ``Connection.client_flag``
* Fix SSCursor may raise same exception twice
* This removed ``Cursor._last_executed`` which was duplicate of ``Cursor._executed``.
Both members are private. So this type of changes are not documented in changelog
generally. But Django used the private member for ``last_executed_query`` implementation.
If you use the method the method directly or indirectly, this version will break
your application. See https://code.djangoproject.com/ticket/30013
* ``waiter`` option is now deprecated.
* Fixed SSL support is not detected when built with MySQL < 5.1
what is new for perl v5.30.1
Incompatible Changes
There are no changes intentionally incompatible with 5.30.1. If any
exist, they are bugs, and we request that you submit a report. See
"Reporting Bugs" below.
Modules and Pragmata
Updated Modules and Pragmata
o Module::CoreList has been upgraded from version 5.20190522 to
5.20191110.
Documentation
Changes to Existing Documentation
We have attempted to update the documentation to reflect the changes
listed in this document. If you find any we have missed, send email to
perlbug@perl.org <mailto:perlbug@perl.org>.
Additionally, documentation has been updated to reference GitHub as the
new canonical repository and to describe the new GitHub pull request
workflow.
Configuration and Compilation
o The "ECHO" macro is now defined. This is used in a "dtrace" rule
that was originally changed for FreeBSD, and the FreeBSD make
apparently predefines it. The Solaris make does not predefine
"ECHO" which broke this rule on Solaris.
Testing
Tests were added and changed to reflect the other additions and changes
in this release.
Platform Support
Platform-Specific Notes
Win32
The locale tests could crash on Win32 due to a Windows bug, and
separately due to the CRT throwing an exception if the locale name
wasn't validly encoded in the current code page.
For the second we now decode the locale name ourselves, and always
decode it as UTF-8.
Selected Bug Fixes
o Setting $) now properly sets supplementary group ids, if you have
the necessary privileges.
o "readline @foo" now evaluates @foo in scalar context. Previously,
it would be evaluated in list context, and since readline() pops
only one argument from the stack, the stack could underflow, or be
left with unexpected values on it.
o sv_gets() now recovers better if the target SV is modified by a
signal handler.
o Matching a non-"SVf_UTF8" string against a regular expression
containing Unicode literals could leak an SV on each match attempt.
o "sprintf("%.*a", -10000, $x)" would cause a buffer overflow due to
mishandling of the negative precision value.
o "scalar()" on a reference could cause an erroneous assertion
failure during compilation.
Redis 5.0.6
Upgrade urgency CRITICAL: Only in case of exposed instances to untrusted users.
This Redis release, 5.0.6, is a bugfix and enhancement release. The most
important bugfix is a corruption related to the HyperLogLog. A malformed
HyperLogLog string could cause an invalid access to the memory. At a first
glance the vulnerability appears to be not exploitable but just a DoS. The
way to trigger the issue is complex, we'll not provide any information about
how to do that for the users safety.
Other significant changes in this release:
* New modules APIs merged from Redis unstable to Redis 5.
* Some memory optimization related to objects creation.
* Fixes to flushSlaveOutputBuffer() that make sure that SHUTDOWN will
transfer pending buffers to replicas.
2.13.1:
[BUGFIX] Fix panic in ARM builds of Prometheus.
[BUGFIX] promql: fix potential panic in the query logger.
[BUGFIX] Multiple errors of http: superfluous response.WriteHeader call in the logs.
Update ruby-sequel to 5.26.0.
=== 5.26.0 (2019-11-01)
* Recognize two additional foreign key constraint violation codes on MySQL 8.0.13+ (rianmcguire) (#1657)
* Support table aliases for single-table INSERT statements on PostgreSQL 9.5+ (jeremyevans) (#1656)
* Implement Sequel::Postgres::PGRange#hash so instances work correctly in hashes (jeremyevans) (#1648)
* Make dirty plugin work correctly with typecast_on_load plugin (jeremyevans) (#1647)
* Add support for :require_modification option when setting up nested_attributes (jeremyevans)
* Add support for SQL/JSON path expressions to the pg_json_ops extension, supported by PostgreSQL 12+ (jeremyevans)
0.63 21 July 2019
* added 000preret.t
Dump version info in "make test"
0.62 20 July 2019
* default to /usr/local/BerkeleyDB
fcc0ad8adf310f7c8cc65788806439f2f8c39f90
* __heap_exist prototype needed for db 5.2 or better
7fe4ad8d74190d7f41a816c79e5ccf044c02c7c9
* t/joint.: Silence Valgrinf
https://rt.cpan.org/Ticket/Display.html?id=125605
40d03924570f8516efe4a05982f402e8ce569637
* db_remove missing txn code
https://rt.cpan.org/Ticket/Display.html?id=124979
b91875a9f3f55bb779ad7a448c9fff0645d8a527
* Fix test failure when TRACE is enabled
bb80b7d0fb83643ccddd8243d4c6b6ab637428df
* Added BERKELEYDB_DEFINE_TRACE variable to allow TRACE to be enabled
from .travis file.
bd9ebf5aa149172afab55d6ba6f27d77cf08d91a
* Add test with BERKELEYDB_DEFINE_TRACE set to .travis
000b1d8dffe542d6476fe78f218cc95534f1c1c3
* my_db_strerror: Add missing dTHX declaration
Merge pull request https://github.com/pmqs/BerkeleyDB/pull/2
4273345d8eff5f521788b3c5e71fb291bf46a646
80ca9b77968ab84aaf8b546f2933d135202e16e0
* create .appveyor.yml
4e7b034ddbe76a7c2dcd189e1e0c935c1559aa2c
* sync dbinfo from DB_File
27b499fa9dbfca78adcc7a12ada43f0b05b6ece6
0.61 30 March 2019
* Fix a couple of typos
One's a copyright date out by 20 years.
The other one breaks builds with 5.2 竕、 BDB < 6.2.
Merge pull request https://github.com/pmqs/BerkeleyDB/pull/1
0.60 30 March 2019
* Moved source to github https://github.com/pmqs/BerkeleyDB
* Add META_MERGE to Makefile.PL
* Added meta-json.t & meta-yaml.t
0.58 23 January 2018
* please expose set_lg_filemode
[RT #124979]
0.57 23 January 2018
* Updates for BDB 6.3
0.56 5 January 2016
* Updates for BDB 6.2
The current code uses functions that are only available in newer releases of
Oracle Solaris, so disable for now to fix illumos and others. This could be
improved with proper feature tests.
repmgr 5.0 is a major release.
* Configuration file parsing has been made stricter
* Some "repmgr daemon ..." commands renamed
* Some deprecated command line options removed
* Support for PostgreSQL 12 added.
* The repmgr configuration file is now parsed using flex, meaning it will be parsed in the same way as PostgreSQL parses its own configuration files.
* repmgr standby clone: checks for availability of the repmgr extension on the upstream node have been improved and error messages improved.
* When executing repmgr remotely, if the repmgr log level was explicitly provided (with -L/--log-level), that log level will be passed to the remote repmgr.
* Bug fixes
Update ruby-sequel to 5.25.0.
=== 5.25.0 (2019-10-01)
* Fix Sequel::SQL::NumericMethods#coerce to not raise NoMethodError if super method is not defined (jeremyevans) (#1645)
* Allow setting a default for a column that already has a default on Microsoft SQL Server (jeremyevans)
* Fix keyword argument separation warnings on Ruby master branch in csv_serializer plugin (jeremyevans)
* Add association_multi_add_remove plugin for adding/removing multiple associated objects in a single method call (AlexWayfer, jeremyevans) (#1641, #1643)
* Make sharding plugin integrate with server_block extension (jeremyevans)
1.2.0
* Adapters::Sequel - fix for compatibility with new version of JDBC SQLite
* Adapters::Couch - refactor of error handling, #clear, #merge!, #slice, rev caching
* Fallback - add fallback proxy (#162)
* Pool - rewrite to enable limiting of size, gradual shrinking
* Enumerable - add proxy providing Enumerable API (using #each_key)
* Adapters::Couch, Adapters::RestClient - add Faraday :adapter option
* Adapters::Couch - add :full_commit and :batch options to some operations
* Adapters::LRUHash - rewrite to take advantage of ordered hashes
* Adapters::ActiveRecord - recover from deadlock during increment