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
Psycopg 2.8.4
The release brings a few assorted bugfixes and adds support for Python 3.8 and PostgreSQL 12.
A more detailed changes list is
* Fixed building with Python 3.8.
* Don't swallow keyboard interrupts on connect when a password is specified in the connection string.
* Don't advance replication cursor when the message wasn't confirmed.
* Fixed inclusion of time.h on linux.
* Fixed int overflow for large values in Column.table_oid and Column.type_code.
* errorcodes map and errors classes updated to PostgreSQL 12.
* Wheel package compiled against OpenSSL 1.1.1d and PostgreSQL at least 11.4.
3.29.0:
Added constants:
SQLITE_DBCONFIG_DQS_DML, SQLITE_DBCONFIG_DQS_DDL, SQLITE_DBCONFIG_LEGACY_ALTER_TABLE
Updated Connection.config() with all current SQLITE_DBCONFIG constants. Also fixes APSW issue 249
2.13.0:
[SECURITY/BUGFIX] UI: Fix a Stored DOM XSS vulnerability with query history CVE-2019-10215.
[CHANGE] Metrics: renamed prometheus_sd_configs_failed_total to prometheus_sd_failed_configs and changed to Gauge
[ENHANCEMENT] Include the tsdb tool in builds.
[ENHANCEMENT] Service discovery: add new node address types for kubernetes.
[ENHANCEMENT] UI: show warnings if query have returned some warnings.
[ENHANCEMENT] Remote write: reduce memory usage of the series cache.
[ENHANCEMENT] Remote read: use remote read streaming to reduce memory usage.
[ENHANCEMENT] Metrics: added metrics for remote write max/min/desired shards to queue manager.
[ENHANCEMENT] Promtool: show the warnings during label query.
[ENHANCEMENT] Promtool: improve error messages when parsing bad rules.
[ENHANCEMENT] Promtool: more promlint rules.
[BUGFIX] Promtool: fix recording inconsistency due to duplicate labels.
[BUGFIX] UI: fixes service-discovery view when accessed from unhealthy targets.
[BUGFIX] Metrics format: OpenMetrics parser crashes on short input.
[BUGFIX] UI: avoid truncated Y-axis values.
3.3.11
* Further fix for the SSLError -> TimeoutError mapping to work
on obscure releases of Python 2.7.
3.3.10
* Fixed a potential error handling bug for the SSLError -> TimeoutError
mapping introduced in 3.3.9.
3.3.9
* Mapped Python 2.7 SSLError to TimeoutError where appropriate. Timeouts
should now consistently raise TimeoutErrors on Python 2.7 for both
unsecured and secured connections.
Changes in MySQL 5.7.28
Configuration Notes
It is now possible to compile MySQL 5.7 using OpenSSL 1.1.1, enabling compilation support for MySQL 5.7 against OpenSSL even when OpenSSL 1.0.2 reaches End of Life status at the end of 2019.
All MySQL 5.7 builds now use OpenSSL. MySQL no longer supports using yaSSL as the SSL library, and source distributions no longer include yaSSL.
The WITH_SSL CMake option no longer permits bundled (use yaSSL) as a valid value, and the default option value has changed from bundled to system (use the version of OpenSSL installed on the host system).
sys Schema Notes
The sys.schema_unused_indexes view now filters out unique indexes.
The sys.ps_is_consumer_enabled() function now produces an error rather than returning NULL if the argument is an unknown non-NULL consumer name.
Previously, sys schema sources were maintained in a separate Git repository. sys schema sources now are included with and maintained within MySQL source distributions (under scripts/sys_schema).
The sys.version view is deprecated and will be removed in a future MySQL version. Affected applications should be adjusted to use an alternative instead. For example, use the VERSION() function to retrieve the MySQL server version.
Bugs Fixed
InnoDB: An ALTER TABLE ... ENCRYPTION = 'Y' operation on a MyISAM table failed to raise an error indicating that the storage engine does not support encryption. The INPLACE algorithm did not check encryption support before updating metadata in the .frm file. To address this issue, an encryption support flag was added. The ALTER TABLE ... ENCRYPTION = 'Y' operation now checks the flag and reports an error if the storage engine does not support encryption.
InnoDB: Delete marked rows were able to acquire an external read lock before a partial rollback was completed. The external read lock prevented conversion of an implicit lock to an explicit lock during the partial rollback, causing an assertion failure.
InnoDB: A long running ALTER TABLE ... ADD INDEX operation with concurrent inserts caused semaphore waits.
Replication: A deadlock involving three threads could occur if a START SLAVE statement was issued to start the SQL thread on a slave while the SQL thread was still in the process of being stopped, and a request for the slave status was made at the same time. The issue has now been fixed by releasing a lock earlier while the SQL thread is being stopped.
Replication: A locking issue in the WAIT_FOR_EXECUTED_GTID_SET() function could cause the server to hang in certain circumstances. The issue has now been corrected.
Replication: On a multi-threaded slave with GTIDs in use and MASTER_AUTO_POSITION set to ON, following an unexpected halt the slave would attempt relay log recovery, which failed if relay logs had been lost, preventing replication from starting. However, this step was unnecessary as GTID auto-positioning can be used to restore any missing transactions. In a recovery situation, the slave now checks first whether MASTER_AUTO_POSITION is set to ON, and if it is, skips relay log recovery.
When generating C source from SQL scripts, Some utf8-encoded characters were split across lines. Thanks to Przemysław Skibiński for the patch.
For Solaris, mysqld.cc contained a prototype for memcntl() that is no longer needed. The prototype has been removed.
For Solaris, -DWITH_SSL=system did not work when compiling with GCC.
MySQL builds configured with -DWITHOUT_SERVER=1 failed.
For the keyring_aws plugin, some valid region values for the keyring_aws_region system variable were rejected.
For debug builds, an assertion could be raised during UNION queries when computing the combined data type of a GEOMETRY column and SELECT * FROM (SELECT NULL).
For authentication using an LDAP authentication plugin, if the user DN portion was empty and group mapping was configured, authentication assigned an incorrect user DN and skipped the user search.
mysqlpump produced an error when run against a server older than MySQL 5.7.
A possible integer overflow due to unsigned integer type casting could lead to later buffer overflow due to arbitrary size memory allocation.
Attempted use of a freed object during MeCab plugin initialization caused a segmentation fault.
For MySQL installed using RPM packages, an initialization script that tested server connectivity misbehaved if the client account authenticated using an LDAP authentication plugin.
Improper locking during storage engine initialization could cause a server exit.
On a GTID-enabled server, concurrent execution of DROP USER and a prepared statement that accessed a view could deadlock.
A query with a WHERE clause whose predicate contained a numeric value in scientific notation was not handled correctly.
VS2019 produced compilation errors with debug compilation selected due to use of the /ZI flag. Now /Z7 is used instead.
The client library could dereference a null pointer while fetching result set metadata from the server.
In READ UNCOMMITTED isolation level, a segmentation fault occurred under heavy load from memcached clients. An externally stored BLOB column that was being updated by one transaction was read by another transaction as having a NULL value and a non-zero data length.
Arguments for the TIMESTAMPADD() function could be reversed for prepared statements.
With the thread_pool plugin enabled, the sys.processlist and sys.session views displayed a thread name rather than the actual user name.
The delete_latency column in the sys.schema_index_statistics view incorrectly referred to the SUM_TIMER_INSERT column of the Performance Schema table_io_waits_summary_by_index_usage table rather than the SUM_TIMER_DELETE column.
In output from the sys.diagnostics() procedure, the latency column for the user_summary_by_file_io_type view was incorrectly displayed in raw picoseconds rather than as a formatted value.
MySQL Enterprise Encryption functions could apply Diffie-Hellman (DH) methods to non-DH keys, resulting in unpredictable results or server exit.
Password masking was incomplete for SHOW PROCESSLIST and some INFORMATION_SCHEMA and Performance Schema tables.
The -DWITH_EXAMPLE_STORAGE_ENGINE=1 CMake option was ignored but should not have been. If -DWITH_EXAMPLE_STORAGE_ENGINE=0 is given, the EXAMPLE storage engine is built as a plugin.
Changes in MySQL 5.6.46
Configuration Notes
It is now possible to compile MySQL 5.6 using OpenSSL 1.1.1, enabling compilation support for MySQL 5.6 against OpenSSL even when OpenSSL 1.0.2 reaches End of Life status at the end of 2019.
In addition, MySQL 5.6 now supports TLSv1.1 and TLSv1.2 protocols for encrypted connections. This applies to MySQL Server, MySQL clients such as mysql and mysqldump, and master/slave replication. Previously, MySQL 5.6 supported only TLSv1, so TLSv1.1/TLSv1.2 support enables use of more secure TLS protocols. It also enables connecting from MySQL 5.6 clients and replication slaves to MySQL 5.7 and higher servers that have TLSv1 disabled, which previously was not possible. It also means that MySQL 5.7 and higher clients that do not want to use TLSv1 can connect to MySQL 5.6 servers.
All MySQL 5.6 builds now use OpenSSL. MySQL no longer supports using yaSSL as the SSL library, and source distributions no longer include yaSSL.
The WITH_SSL CMake option no longer permits bundled (use yaSSL) as a valid value, and the default option value has changed from bundled to system (use the version of OpenSSL installed on the host system).
Bugs Fixed
Improper locking during storage engine initialization could cause a server exit.
A query with a WHERE clause whose predicate contained a numeric value in scientific notation was not handled correctly.
VS2019 produced compilation errors with debug compilation selected due to use of the /ZI flag. Now /Z7 is used instead.
Password masking was incomplete for SHOW PROCESSLIST and some INFORMATION_SCHEMA and Performance Schema tables.
The -DWITH_EXAMPLE_STORAGE_ENGINE=1 CMake option was ignored but should not have been. If -DWITH_EXAMPLE_STORAGE_ENGINE=0 is given, the EXAMPLE storage engine is built as a plugin.
SQLite Release 3.30.1:
Fix a bug in the query flattener that might cause a segfault for nested queries that use the new FILTER clause on aggregate functions.
Cherrypick fixes for other obscure problems found since the 3.30.0 release.
1.2.1
bug
[bug] [command]
Reverted the name change of the “revisions” argument to command.stamp() to “revision” as apparently applications are calling upon this argument as a keyword name. Pull request courtesy Thomas Bechtold. Special translations are also added to the command line interface so that it is still known as “revisions” in the CLI.
[bug] [tests]
Removed the “test requirements” from “setup.py test”, as this command now only emits a removal error in any case and these requirements are unused.
1.2.0
feature
[feature] [command]
Added new --purge flag to the alembic stamp command, which will unconditionally erase the version table before stamping anything. This is useful for development where non-existent version identifiers might be left within the table. Additionally, alembic.stamp now supports a list of revision identifiers, which are intended to allow setting up muliple heads at once. Overall handling of version identifiers within the alembic.stamp command has been improved with many new tests and use cases added.
[feature] [runtime]
Added new feature MigrationContext.autocommit_block(), a special directive which will provide for a non-transactional block inside of a migration script. The feature requres that: the database driver (e.g. DBAPI) supports the AUTOCOMMIT isolation mode. The directive also necessarily needs to COMMIT the existing transaction in progress in order to enter autocommit mode.
[feature] [commands]
Added “post write hooks” to revision generation. These allow custom logic to run after a revision Python script is generated, typically for the purpose of running code formatters such as “Black” or “autopep8”, but may be used for any arbitrary post-render hook as well, including custom Python functions or scripts. The hooks are enabled by providing a [post_write_hooks] section in the alembic.ini file. A single hook is provided which runs an arbitrary Python executable on the newly generated revision script, which can be configured to run code formatters such as Black; full examples are included in the documentation.
[feature] [environment]
Added new flag --package to alembic init. For environments where the Alembic migration files and such are within the package tree and importable as modules, this flag can be specified which will add the additional __init__.py files in the version location and the environment location.
1.3.10
mssql
[mssql] [bug]
Fixed bug in SQL Server dialect with new “max_identifier_length” feature where the mssql dialect already featured this flag, and the implementation did not accommodate for the new initialization hook correctly.
oracle
[oracle] [bug]
Fixed regression in Oracle dialect that was inadvertently using max identifier length of 128 characters on Oracle server 12.2 and greater even though the stated contract for the remainder of the 1.3 series is that this value stays at 30 until version SQLAlchemy 1.4. Also repaired issues with the retrieval of the “compatibility” version, and removed the warning emitted when the “v$parameter” view was not accessible as this was causing user confusion.
1.3.9
orm
[orm] [bug]
Fixed regression in selectinload loader strategy caused by 4775 (released in version 1.3.6) where a many-to-one attribute of None would no longer be populated by the loader. While this was usually not noticeable due to the lazyloader populating None upon get, it would lead to a detached instance error if the object were detached.
[orm] [bug]
Passing a plain string expression to Session.query() is deprecated, as all string coercions were removed in 4481 and this one should have been included. The literal_column() function may be used to produce a textual column expression.
[orm] [bug]
A warning is emitted for a condition in which the Session may implicitly swap an object out of the identity map for another one with the same primary key, detaching the old one, which can be an observed result of load operations which occur within the SessionEvents.after_flush() hook. The warning is intended to notify the user that some special condition has caused this to happen and that the previous object may not be in the expected state.
engine
[engine] [usecase]
Added new create_engine() parameter create_engine.max_identifier_length. This overrides the dialect-coded “max identifier length” in order to accommodate for databases that have recently changed this length and the SQLAlchemy dialect has not yet been adjusted to detect for that version. This parameter interacts with the existing create_engine.label_length parameter in that it establishes the maximum (and default) value for anonymously generated labels. Additionally, post-connection detection of max identifier lengths has been added to the dialect system. This feature is first being used by the Oracle dialect.
sql
[sql] [bug]
Characters that interfere with “pyformat” or “named” formats in bound parameters, namely %, (, ) and the space character, as well as a few other typically undesirable characters, are stripped early for a bindparam() that is using an anonymized name, which is typically generated automatically from a named column which itself includes these characters in its name and does not use a .key, so that they do not interfere either with the SQLAlchemy compiler’s use of string formatting or with the driver-level parsing of the parameter, both of which could be demonstrated before the fix. The change only applies to anonymized parameter names that are generated and consumed internally, not end-user defined names, so the change should have no impact on any existing code. Applies in particular to the psycopg2 driver which does not otherwise quote special parameter names, but also strips leading underscores to suit Oracle (but not yet leading numbers, as some anon parameters are currently entirely numeric/underscore based); Oracle in any case continues to quote parameter names that include special characters.
[sql] [usecase]
Added an explicit error message for the case when objects passed to Table are not SchemaItem objects, rather than resolving to an attribute error.
sqlite
[sqlite] [usecase]
Added support for sqlite “URI” connections, which allow for sqlite-specific flags to be passed in the query string such as “read only” for Python sqlite3 drivers that support this.
mssql
[mssql] [bug]
Added identifier quoting to the schema name applied to the “use” statement which is invoked when a SQL Server multipart schema name is used within a Table that is being reflected, as well as for Inspector methods such as Inspector.get_table_names(); this accommodates for special characters or spaces in the database name. Additionally, the “use” statement is not emitted if the current database matches the target owner database name being passed.
oracle
[oracle] [bug]
Restored adding cx_Oracle.DATETIME to the setinputsizes() call when a SQLAlchemy Date, DateTime or Time datatype is used, as some complex queries require this to be present. This was removed in the 1.2 series for arbitrary reasons.
[oracle] [usecase]
The Oracle dialect now emits a warning if Oracle version 12.2 or greater is used, and the create_engine.max_identifier_length parameter is not set. The version in this specific case defaults to that of the “compatibility” version set in the Oracle server configuration, not the actual server version. In version 1.4, the default max_identifier_length for 12.2 or greater will move to 128 characters. In order to maintain forwards compatibility, applications should set create_engine.max_identifier_length to 30 in order to maintain the same length behavior, or to 128 in order to test the upcoming behavior. This length determines among other things how generated constraint names are truncated for statements like CREATE CONSTRAINT and DROP CONSTRAINT, which means a the new length may produce a name-mismatch against a name that was generated with the old length, impacting database migrations.
misc
[bug] [tests]
Fixed unit test regression released in 1.3.8 that would cause failure for Oracle, SQL Server and other non-native ENUM platforms due to new enumeration tests added as part of 4285 enum sortability in the unit of work; the enumerations created constraints that were duplicated on name.
License is boutique and not in licenses/, so set to generic-nonlicense
for now. Set RESTRICTED due to entity use restrictions, and because
at least some entities/people may not distribute, set NO_*_ON_*.
(I hope this is what the package authors intended...)
asyncpg v0.19.0
Improvements
Add support for SCRAM-SHA-256 authentication.
Add PostgreSQL 12 support
Bug Fixes
Remove preexec_fn hack from test cluster management
Fix DeprecationWarning in the docstring of copy_from_query()
Allow specifying the target version when generating the release log
Check for .flake8 after importing flake8
Include .flake8 in PyPI tarball
fix timezone type label in docs
Fix _StatementCache.clear() PS memory leak
fix for warning_callback not yet defined
Fix assertion fail on copy_records_to_table
Do not look for a port in a Unix socket domain path
Unquote connection string components properly
Remove superfluous transaction from a cursor example
Release 12:
General performance improvements, including:
* Optimizations to space utilization and read/write performance for B-tree indexes
* Partitioning performance enhancements, including improved query performance on tables with thousands of partitions, improved insertion performance with INSERT and COPY, and the ability to execute ALTER TABLE ATTACH PARTITION without blocking queries
* Automatic (but overridable) inlining of common table expressions (CTEs)
* Reduction of WAL overhead for creation of GiST, GIN, and SP-GiST indexes
* Support for covering GiST indexes, via the INCLUDE clause
* Multi-column most-common-value (MCV) statistics can be defined via CREATE STATISTICS, to support better plans for queries that test several non-uniformly-distributed columns
Enhancements to administrative functionality, including:
* REINDEX CONCURRENTLY can rebuild an index without blocking writes to its table
* pg_checksums can enable/disable page checksums (used for detecting data corruption) in an offline cluster
* Progress reporting statistics for CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL, and pg_checksums
Support for the SQL/JSON path language
Stored generated columns
Nondeterministic ICU collations, enabling case-insensitive and accent-insensitive grouping and ordering
New authentication features, including:
* Encryption of TCP/IP connections when using GSSAPI authentication
* Discovery of LDAP servers using DNS SRV records
* Multi-factor authentication, using the clientcert=verify-full option combined with an additional authentication method in pg_hba.conf
SQLite Release 3.30.0
Add support for the FILTER clause on aggregate functions.
Add support for the NULLS FIRST and NULLS LAST syntax in ORDER BY clauses.
The index_info and index_xinfo pragmas are enhanced to provide information about the on-disk representation of WITHOUT ROWID tables.
Add the sqlite3_drop_modules() interface, allowing applications to disable automatically loaded virtual tables that they do not need.
Improvements to the .recover dot-command in the CLI so that it recovers more content from corrupt database files.
Enhance the RBU extension to support indexes on expressions.
Change the schema parser so that it will error out if any of the type, name, and tbl_name columns of the sqlite_master table have been corrupted and the database connection is not in writable_schema mode.
The PRAGMA function_list, PRAGMA module_list, and PRAGMA pragma_list commands are now enabled in all builds by default. Disable them using -DSQLITE_OMIT_INTROSPECTION_PRAGMAS.
Add the SQLITE_DBCONFIG_ENABLE_VIEW option for sqlite3_db_config().
Added the TCL Interface config method in order to be able to disable SQLITE_DBCONFIG_ENABLE_VIEW as well as control other sqlite3_db_config() options from TCL.
Added the SQLITE_DIRECTONLY flag for application-defined SQL functions to prevent those functions from being used inside triggers and views.
The legacy SQLITE_ENABLE_STAT3 compile-time option is now a no-op.
3.11.2
* Implement `hash` interface for `Alias` instances, allowing them to be used in
multi-source queries.
3.11.1
* Fix bug in new `_pk` / `get_id()` implementation for models that explicitly
have disabled a primary-key.
3.11.0
* Fixes 1991. This particular issue involves joining 3 models together in a
chain, where the outer two models are empty. Previously peewee would make the
middle model an empty model instance (since a link might be needed from the
source model to the outermost model). But since both were empty, it is more
correct to make the intervening model a NULL value on the foreign-key field
rather than an empty instance.
* An unrelated fix came out of the work on 1991 where hashing a model whose
primary-key happened to be a foreign-key could trigger the FK resolution
query. This patch fixes the `Model._pk` and `get_id()` interfaces so they
no longer introduce the possibility of accidentally resolving the FK.
* Allow `Field.contains()`, `startswith()` and `endswith()` to compare against
another column-like object or expression.
* Workaround for MySQL prior to 8 and MariaDB handling of union queries inside
of parenthesized expressions (like IN).
* Be more permissive in letting invalid values be stored in a field whose type
is INTEGER or REAL, since Sqlite allows this.
* `TimestampField` resolution cleanup. Now values 0 *and* 1 will resolve to a
timestamp resolution of 1 second. Values 2-6 specify the number of decimal
places (hundredths to microsecond), or alternatively the resolution can still
be provided as a power of 10, e.g. 10, 1000 (millisecond), 1e6 (microsecond).
* When self-referential foreign-keys are inherited, the foreign-key on the
subclass will also be self-referential (rather than pointing to the parent
model).
* Add TSV import/export option to the `dataset` extension.
* Add item interface to the `dataset.Table` class for doing primary-key lookup,
assignment, or deletion.
* Extend the mysql `ReconnectMixin` helper to work with mysql-connector.
* Fix mapping of double-precision float in postgres schema reflection.
Previously it mapped to single-precision, now it correctly uses a double.
* Fix issue where `PostgresqlExtDatabase` and `MySQLConnectorDatabase` did not
respect the `autoconnect` setting.
4.9.1 (2019-09-21)
- Routine fix for an issue that has been reported as CVE-2019-12922
- issue #15313 Added support for Twig 2
- issue #15315 Fix cannot edit or export column with default CURRENT_TIMESTAMP in MySQL >= 8.0.13
- issue Fix a TypeError in Import class with PHP 8
- issue #14270 Fix Middle-click on foreign key link broken
- issue #14363 Fix broken relational links in tables
- issue #14987 Fix weird error for empty collation
- issue #15334 Fix export of GIS visualisation not working (PNG, PDF, SVG)
- issue #14918 Use hex for the phpMyAdmin session token
- issue Added GB18030 Chinese collations description
- issue Added Russian, Swedish, Slovak and Chinese UCA 9.0.0 collations description
- issue Added description for the _ks (kana-sensitive) collation suffix
- issue Added description for the _nopad (NO PAD) collation suffix
- issue #15404 Remove array/string curly braces access
- issue #15427 Fixed "FilterLanguages" option does not work (configuration)
- issue #15202 Fixed creating user with single quote in password results in no password user
- issue #14950 Fixed left database overview "add column" triggers error
- issue #15363 Fix remove unexpected quotes on text fields (structure and insert)
- issue Fix NULL wrongly checked on field change
- issue #15388 Fix allow to rollback an empty statement
- issue #14291 Fixed incorrect linkage from one table's value to another table
- issue #15446 Fix tables added from other databases are not collapsing in the designer section
- issue #14945 Fix designer page save fails if dB name contains period
- issue Display an error when trying to import in designer a table that's already imported
- issue Fix many bugs when adding new tables to designer
- issue Update CodeMirror to v5.48.4
- issue Update jQuery Migrate to v3.1.0
- issue Update jQuery Validation to v1.19.1
- issue Update jQuery to v3.4.1
- issue Update js-cookie to v2.2.1
- issue Remove fieldset closing tag when setting global privileges
- issue #15425 Fix backslash in column name resulting an error in editing
- issue #15380 Fix Status - Advisor error
- issue #15439 Fix designer page status not updated when added a new table from another database
- issue #15440 Fix page number is not being updated in the URL after saving a designer's page
- issue Fix reloading a designer's page
- issue Fix designer full screen mode button and text stuck when exiting full-screen mode
3.4.23:
findAndModify ignores filter expressions that are not objects
Only acquire a collection IX lock to write the lastVote document
Recent service file change may cause cyclic dependencies
Rebuild mongodb by building.md and failed to build due to ModuleNotFoundError: No module named 'Cheetah' with MSVC on windows
Stop testing PyMongo with Python 2.6 in drivers-nightly
mongos should reset chunk size tracking information when autosplit = false or splitvector returns too few split points
Always waitUntilDurable when writing lastVote document
Fix issue with rename collection
WiredTigerLAS.wt grows when lagged node is in maintenance mode
Do not use a global variable to encode 'multikeyPath' information when writing out catalog documents
Add Ubuntu 14.04 to v3.4
Add DSI module to perf.yml
Add new shell startup banner
3.4.22:
Bump Windows package dependencies
Propagate ${branch_name} Evergreen expansion to fuzzer invocation
sys-perf: Use bootstrap.overrides in bootstrap.yml config file
Make sleep command check that server clock has advanced before returning
SysV init scripts should verify PIDfile exists instead of failing
Update Enterprise License
Make ReadWriteAbility::_canAcceptNonLocalWrites AtomicWord<bool> to prevent torn reads.
Choose clock source for reading current time dynamically at startup
Platform Support: Remove Enterprise RHEL 6.7 zSeries from 3.4 and 3.6
Ability to disable authorization via x509 extensions
Our init scripts check /proc/[pid]/stat should validate that `(${procname})` is the process' command name.
Disable SSL_MODE_RELEASE_BUFFERS in ASIO
ReplicationCoordinatorImpl::_random isn't robust to replica set members being started at the same time
Update banner inclusions for vendored tools
Temporarily handle ipv6 failures due to s390x machine without ipv6 enabled
MongoDB's yaml-cpp is rejected by latest MSVC
Reduce file handle usage in File based Sorter
FTDC is calling boost::filesystem without passing an error_code parameter
Symlink /data to Z instead of C
Add Evergreen task to sanity check fuzzer can parse JavaScript tests
Decrement egress counter when scoped connection not returned to the pool
scons should fail early if invoked with wrong Python interpreter
Attach IDs to users
Upgrade yaml-cpp >= 0.6.0
Implement ClockSource::waitForConditionUntil()
patch_files.txt doesn't distinguish between enterprise and community files
Remove npm test command from "run jstestfuzz" Evergreen function
systemd unit for mongod starts before multi.user target
Add requirements.txt for resmoke.py
=== 5.24.0 (2019-09-01)
* Add Database#skip_logging? private method designed for extensions to force query timing even if no logger is present (adam12) (#1640)
* Allow a hostname specified in a defaults_file in the mysql2 adapter, by not explicitly setting :host (sapio-bdeamer) (#1638)
* Convert all database array types to Ruby arrays in the jdbc adapter (jeremyevans)
* Add static_cache_cache plugin for caching rows for static_cache models to a file to avoid database queries during model initialization (jeremyevans)
* Add :cache_file plugin option to pg_auto_constraint_validations plugin, for caching metadata to a file for faster initialization (jeremyevans)
* Support :unique_deferrable and :primary_key_deferrable column options (jeremyevans)
* Support :generated_always_as column option on PostgreSQL 12+ (jeremyevans)
=== 5.23.0 (2019-08-01)
* Work around a bug on jdbc-sqlite3 3.27.2.1 when parsing schema for tables with columns with default values (jeremyevans)
* Work around a bug in jdbc-sqlite3 3.27.2.1 when in Database#foreign_key_list in the jdbc/sqlite3 adapter (jeremyevans)
* Make Dataset#execute* private methods respect explicit servers option, fixing Dataset#paged_each in the postgres adapter when sharding (jeremyevans) (#1632)
* Handle instances of subclasses of core classes when wrapping objects in the pg_json extension (jeremyevans) (#1631)
* Support :ansi Database option in the tinytds adapter (kenaniah) (#1629)
* Support cross-database and linked servers when parsing schema on Microsoft SQL Server (kenaniah) (#1629)
* Add insert_conflict plugin for automatically handling unique constraint conflicts when saving new model instances on PostgreSQL 9.5+ and SQLite 3.24.0+ (jeremyevans)
* Avoid errors when parsing schema in the mock sqlite adapter (jeremyevans)
* Avoid possible thread-safety issue in the timezones support (jeremyevans)
* Handle offsets when typecasting an array or hash to datetime when Sequel.datetime_class = Time (jeremyevans)
* Support Sequel.datetime_class = Time when using the named_timezones extension (jeremyevans)
Upstream changes:
1.60 - 2019-05-29
* No changes since 1.59_01
1.59_01 - 2019-04-28
* Add support for parsing PostgreSQL dollar-quoted strings
* Add support for materialized views in Oracle producer
* switched JSON backend from JSON.pm to JSON::MaybeXS
* Port Makefile.PL from Module::Install to Distar
* Synchronise the version number across all modules
Upstream changes:
1.64 2019-08-12
- Switched to a production version
1.63_05 2019-07-12
- Upgraded SQLite to 3.29.0
- Added sqlite_get_autocommit private method (GH#52)
- Addded new db_config constants, notably to prohibit
double-quoted string literals
1.63_04 2019-05-25
- Upgraded SQLite to 3.28.0
- Modified doc for sqlite_db_filename which actually returns undef
or an empty string (GH#50)
- Fixed ->quote($blob, SQL_BLOB) to quote correctly (GH#51, pali++)
1.63_03 2019-02-15
- Applied a patch to fix segmentation fault on 32-bit big-endian
platforms by Niko Tyni (GH#45)
1.63_02 2019-02-14
- Upgraded SQLite to 3.27.1
- Let a URI filename test skip if SQLite is compiled with URI filename
support (GH#47)
1.63_01 2019-01-26
- Made sure an internal hv is initialized (GH#45)
- Fixed a number of tests to skip
- Bumped up Test::More requirement
- Replaced bundled Test::NoWarnings with Test::FailWarnings
- Handle 'unknown' op in DBD::SQLite::VirtualTable::PerlData (Corion++)
Upstream changes:
1.49 2019-09-12T12:59:51Z
- Fixing tests that fail on some old versions of Perl
1.48 2019-09-12T06:34:47Z
- Added execution_history feature to enable tracking of multiple
executes for prepared statements.
- Added support for $dbh->table_info calls
- Fixed bug rt91055 "insert IGNORE" doesn't raise last_insert_id
- Fixed bug rt82243 Bug with Regex in DBD::Mock::Session
1.47 2019-09-06T10:03:39Z
- Applied Max Carey's patch from rt86294 adding support for
nested keys to fetchall_hashref
- Added experimental Connection Callbacks feature
- Fixed build for Perl v5.8
1.46 2019-09-04T12:02:08Z
- Added git-repo url to meta-data
- Fixed bug rt70587 Spelling Mistake
- Added regex support to mock_add_resultset
Update php-redis3 from release 3.1.3 to release 3.1.6.
* Changes between 3.1.3 and 3.1.4:
The primary new feature phpredis 3.1.4 is the ability to send MULTI .. EXEC blocks in pipeline mode. There are
also many bugfixes and minor improvements to the api, listed below:
* Allow mixing MULTI and PIPELINE modes (experimental)! [5874b0] (Pavlo Yatsukhnenko)
* Added integration for coverty static analysis and fixed several warnings
[faac8b0, eff7398, 4766c25, 0438ab4, 1e0b065, 733732a, 26eeda5, 735025, 42f1c9, af71d4] (Pavlo Yatsukhnenko)
* Fixed link to redis cluster documentation [3b0b06] (Pavlo Yatsukhnenko)
* Remove unused PHP_RINIT and PHP_RSHUTDOWN functions [c760bf] (Pavlo Yatsukhnenko)
* Removed duplicate HGET in redis array hash table, formatting [d0b9c5] (Pavlo Yatsukhnenko)
* Treat NULL bulk as success for session read [659450] (Pavlo Yatsukhnenko)
* Refactor redis_send_discard [ea15ce] (Pavlo Yatsukhnenko)
* Updated runtime exception handling [8dcaa4, 7c1407] (Pavlo Yatsukhnenko)
* Added a github issue template [61aba9] (Pavlo Yatsukhnenko)
* Initialize gc member of zend_string [37f569) (Pavlo Yatsukhnenko)
* Fix valgrind warnings [471ce07, 1ab89e1, b624a8b] (Pavlo Yatsukhnenko)
* Fix php5/php7 compatibility layer [1ab89e, 4e3225] (Pavlo Yatsukhnenko)
* Fix typo in README.markdown [e47e44] (Mark Shehata)
* Improve redis array rehash [577a91] (Pavlo Yatsukhnenko)
* Change redis array pure_cmds from zval to hashtable [a56ed7] (Pavlo Yatsukhnenko)
* Don't try to set TCP_NODELAY on a unix socket and don't warn on multiple
calls to pipeline [d11798, 77aeba] (Michael Grunder)
* Use zend_string rather than char* for various context fields (err, prefix, etc) [2bf7b2] (Pavlo Yatsukhnenko)
* Various other library fixes [142b51, 4452f6, e672f4, 658ee3, c9df77, 4a0a46] (Pavlo Yatsukhnenko)
* Changes between 3.1.4 and 3.1.5:
This is interim release which contains only bug fixes.
* Fix segfault when extending Redis class in PHP 5 [d23eff] (Pavlo Yatsukhnenko)
* Fix RedisCluster constructor with PHP 7 strict scalar type [5c21d7] (Pavlo Yatsukhnenko)
* Allow to use empty string as persistant_id [344de5] (Pavlo Yatsukhnenko)
* Fix cluster_init_seeds. [db1347] (@adlagares)
* Fix z_seeds may be a reference [42581a] (@janic716)
* PHP >=7.3 uses zend_string for php_url elements [b566fb] (@fmk)
* Changes between 3.1.5 and 3.1.6:
This release conains only fix of RedisArray distributor hashing function
which was broken in 3.1.4. Huge thanks to @rexchen123
Summary of changes between 2.1.x and 2.3.x are listed below. For a more
readable version please see the following URLs:
http://docs.couchdb.org/en/latest/whatsnew/2.3.htmlhttp://docs.couchdb.org/en/latest/whatsnew/2.2.htmlhttp://docs.couchdb.org/en/latest/whatsnew/2.1.html
2.3.x Branch Upgrade Notes
#1602: To improve security, there have been major changes in the configuration
of query servers, SSL support, and HTTP global handlers:
Query servers are NO LONGER DEFINED in the .ini files, and can no longer be
altered at run-time.
The JavaScript and CoffeeScript query servers continue to be enabled by
default. Setup differences have been moved from default.ini to the couchdb and
couchdb.cmd start scripts respectively.
Additional query servers can now be configured using environment variables:
export COUCHDB_QUERY_SERVER_PYTHON="/path/to/python/query/server.py with args"
couchdb
where the last segment in the environment variable (_PYTHON) matches the usual
lowercase(!) query language in the design doc language field (here, python.)
Multiple query servers can be configured by using more environment variables.
You can also override the default servers if you need to set command- line
options (such as couchjs stack size):
export COUCHDB_QUERY_SERVER_JAVASCRIPT="/path/to/couchjs /path/to/main.js -S <STACKSIZE>"
couchdb
The mango query server continues to be enabled by default. The Erlang query
server continues to be disabled by default. This change adds a
[native_query_servers] enable_erlang_query_server = BOOL setting (defaults to
false) to enable the Erlang query server.
If the legacy configuration for enabling the query server is detected, that is
counted as a true setting as well, so existing configurations continue to work
just fine.
SSL Support
Enabling SSL support in the ini file is now easier:
[ssl]
enable = true
If the legacy httpsd configuration is found in your ini file, this will still
enable SSL support, so existing configurations do not need to be changed.
HTTP global handlers
These are no longer defined in the default.ini file, but have been moved to the
couch.app context. If you need to customize your handlers, you can modify the
app context using a couchdb.config file as usual.
#1602: Also to improve security, the deprecated os_daemons and
couch_httpd_proxy functionality has been completely removed ahead of the
planned CouchDB 3.0 release. We recommend the use of OS-level daemons such as
runit, sysvinit, systemd, upstart, etc. to launch and maintain OS daemons
instead, and the use of a reverse proxy server in front of CouchDB (such as
haproxy) to proxy access to other services or domains alongside CouchDB.
#1543: The node-local (default port 5986) /_restart endpoint has been replaced
by the clustered (default port 5984) endpoint /_node/$node/_restart and
/_node/_local/_restart endpoints. The node-local endpoint has been removed.
#1764: All python scripts shipped with CouchDB, including couchup and the
dev/run development cluster script, now specify and require Python 3.x.
#1396: CouchDB is now compatible with Erlang 21.x.
#1680: The embedded version of rebar used to build CouchDB has been updated to
the last version of rebar2 available. This assists in building on non-x86
platforms.
#1857: Refuse building with known bad versions of Erlang.
2.2.x Branch Upgrade Notes
The minimum supported version of Erlang is now 17, not R16B03. Support for
Erlang 21 is still ongoing and will be provided in a future release.
The CouchDB replication client can now use the /_session endpoint when
authenticating against remote CouchDB instances, improving performance since
re-authorization does not have to be performed with every request. Because of
this performance improvement, it is recommended to increase the PBKDF2 work
factor beyond the default 10 to a modern default such as 10000. This is done
via the local ini file setting [couch_httpd_auth] iterations = 10000.
Do not do this if an older version of CouchDB is replicating TO this instance
or cluster regularly, since CouchDB < 2.2.0 must perform authentication on
every request and replication performance will suffer.
A future version will make this increased number of iterations a default.
#820, #1032: Multiple queries can now be made at the POST
/{db}/_all_docs/queries, POST /{db}/_design_docs/queries and POST
/{db}/_local_docs/queries endpoints. Also, a new endpoint POST
/{db}/_design/{ddoc}/_view/{view}/queries has been introduced to replace the
?queries parameter formerly provided for making multiple queries to a view. The
old ?queries parameter is now deprecated and will be removed in a future
release of CouchDB.
The maximum http request limit, which had been lowered in 2.1.0, has been
re-raised to a 4GB limit for now. (#1446). Ongoing discussion about the path
forward for future releases is available in #1200 and #1253.
#1118: The least recently used (LRU) cache of databases is now only updated on
database write, not read. This has lead to significant performance enhancements
on very busy clusters. To restore the previous behaviour, your local ini file
can contain the block [couchdb] update_lru_on_read = true.
#1153: The CouchDB replicator can now make use of the /_session endpoint rather
than relying entirely on HTTP basic authentication headers. This can greatly
improve replication performance. We encourage you to upgrade any nodes or
clusters that regularly act as replication clients to use this new feature,
which is enabled by default (#1462).
#1283: The [couchdb] enable_database_recovery feature, which only soft-deletes
databases in response to a DELETE /{db} call, is now documented in default.ini.
#1330: CouchDB externals and OS daemons are now officially deprecated and no
longer documented. Support for these features will be completely removed in a
future release of CouchDB (probably 3.0.0).
#1436: CouchDB proxy authentication now uses a proper chttpd_auth module,
simplifying configuration in local ini files. While this is not a backward-
compatible breaking change, it is best to update your local ini files to
reference the new {chttpd_auth, proxy_authentication_handler} handler rather
than the couch_httpd_auth version, as couch_httpd is in the process of being
deprecated completely.
#1476, #1477: The obsolete update_notification feature, which was replaced by
/{db}/_changes feeds c. CouchDB 1.2, has been completely removed. This feature
never worked in 2.0 for databases, only for shards, making it effectively
useless.
2.6.1:
- tested against pyasn1 0.4.7
- added eDirectory 9.1.4 (EDIR_9_1_4) to offline schemas
- added json converter for timedelta
- strip parameter defaults to False in utils.dn.parse_dn()
- escaped space is allowed as trailing character in attribute_value in utils.dn.parse_dn()
- connection.extend.standard.paged_search doesn't raise exceptions when raise_exceptions is False
- the Search operation returns the entries fetched by the server when size or time limits are reached even if raise_exceptions is set to True
- Handle the minimum value that can be stored in an Int64 in format_ad_timedelta
- EntryState: `entry_raw_attributes` is populated instead of `raw_attributes`
- Removed restriction to perform rename and move simultaneously in modify_dn
- fixed checking for hexdigits in parse_dn
- fixed escaping when multiple backslashes are present in parse_dn
- fixed multiple NoneType exceptions in entry_to_json()
- allowing Microsoft specific syntax (<WKGUID=xxx>) for WellKnownObjects in DN
- connection.extend.standard.paged_search() now follows referrals when auto_referrals=True
- fixed a bug in decoding replica list in connection.extend.novell.list_replicas()
- fixed a bug when adding duplicate alias in CaseInsensitiveWithAliasDict()
- added ignore_duplicates=False in set_aliases in CaseInsensitiveWithAliasDict() to ignore a duplicate alias (either in aliases or in keys)
- Schema info now uses CaseInsensitiveWithAlias dict as default so object and attributes can also be referentiated with OID
- added block mode and timeout parameters to next() method of persistent_search
- when using the pyasn1 decoder raw_dn is not returned as a pyasn1 object anymore but as bytes
- Return offset timezone aware datetime for max AD timestamp
1.1.0:
bug
[bug] [commands]
Fixed bug where the double-percent logic applied to some dialects such as psycopg2 would be rendered in --sql mode, by allowing dialect options to be passed through to the dialect used to generate SQL and then providing paramstyle="named" so that percent signs need not be doubled. For users having this issue, existing env.py scripts need to add dialect_opts={"paramstyle": "named"} to their offline context.configure(). See the alembic/templates/generic/env.py template for an example.
[bug] [py3k]
Fixed use of the deprecated “imp” module, which is used to detect pep3147 availability as well as to locate .pyc files, which started emitting deprecation warnings during the test suite. The warnings were not being emitted earlier during the test suite, the change is possibly due to changes in py.test itself but this is not clear. The check for pep3147 is set to True for any Python version 3.5 or greater now and importlib is used when available. Note that some dependencies such as distutils may still be emitting this warning. Tests are adjusted to accommodate for dependencies that emit the warning as well.
[bug] [mysql]
Fixed issue where emitting a change of column name for MySQL did not preserve the column comment, even if it were specified as existing_comment.
[bug] [setup]
Removed the “python setup.py test” feature in favor of a straight run of “tox”. Per Pypa / pytest developers, “setup.py” commands are in general headed towards deprecation in favor of tox. The tox.ini script has been updated such that running “tox” with no arguments will perform a single run of the test suite against the default installed Python interpreter.
usecase
[usecase] [commands]
The “alembic init” command will now proceed if the target directory exists as long as it’s still empty. Previously, it would not proceed if the directory existed. The new behavior is modeled from what git does, to accommodate for container or other deployments where an Alembic target directory may need to be already mounted instead of being created with alembic init. Pull request courtesy Aviskar KC.
misc
[change]
Alembic 1.1 bumps the minimum version of SQLAlchemy to 1.1. As was the case before, Python requirements remain at Python 2.7, or in the 3.x series Python 3.4.
[change] [internals]
The test suite for Alembic now makes use of SQLAlchemy’s testing framework directly. Previously, Alembic had its own version of this framework that was mostly copied from that of SQLAlchemy to enable testing with older SQLAlchemy versions. The majority of this code is now removed so that both projects can leverage improvements from a common testing framework.
1.3.8
orm
[orm] [bug]
Fixed bug where Load objects were not pickleable due to mapper/relationship state in the internal context dictionary. These objects are now converted to picklable using similar techniques as that of other elements within the loader option system that have long been serializable.
[orm] [usecase]
Added support for the use of an Enum datatype using Python pep-435 enumeration objects as values for use as a primary key column mapped by the ORM. As these values are not inherently sortable, as required by the ORM for primary keys, a new TypeEngine.sort_key_function attribute is added to the typing system which allows any SQL type to implement a sorting for Python objects of its type which is consulted by the unit of work. The Enum type then defines this using the database value of a given enumeration. The sorting scheme can be also be redefined by passing a callable to the Enum.sort_key_function parameter. Pull request courtesy Nicolas Caniart.
engine
[engine] [feature]
Added new parameter create_engine.hide_parameters which when set to True will cause SQL parameters to no longer be logged, nor rendered in the string representation of a StatementError object.
[engine] [bug]
Fixed an issue whereby if the dialect “initialize” process which occurs on first connect would encounter an unexpected exception, the initialize process would fail to complete and then no longer attempt on subsequent connection attempts, leaving the dialect in an un-initialized, or partially initialized state, within the scope of parameters that need to be established based on inspection of a live connection. The “invoke once” logic in the event system has been reworked to accommodate for this occurrence using new, private API features that establish an “exec once” hook that will continue to allow the initializer to fire off on subsequent connections, until it completes without raising an exception. This does not impact the behavior of the existing once=True flag within the event system.
postgresql
[postgresql] [bug]
Revised the approach for the just added support for the psycopg2 “execute_values()” feature added in 1.3.7. The approach relied upon a regular expression that would fail to match for a more complex INSERT statement such as one which had subqueries involved. The new approach matches exactly the string that was rendered as the VALUES clause.
[postgresql] [bug]
Fixed bug where Postgresql operators such as postgresql.ARRAY.Comparator.contains() and postgresql.ARRAY.Comparator.contained_by() would fail to function correctly for non-integer values when used against a postgresql.array object, due to an erroneous assert statement.
[postgresql] [usecase]
Added support for reflection of CHECK constraints that include the special PostgreSQL qualifier “NOT VALID”, which can be present for CHECK constraints that were added to an exsiting table with the directive that they not be applied to existing data in the table. The PostgreSQL dictionary for CHECK constraints as returned by Inspector.get_check_constraints() may include an additional entry dialect_options which within will contain an entry "not_valid": True if this symbol is detected. Pull request courtesy Bill Finn.
sqlite
[sqlite] [bug] [reflection]
Fixed bug where a FOREIGN KEY that was set up to refer to the parent table by table name only without the column names would not correctly be reflected as far as setting up the “referred columns”, since SQLite’s PRAGMA does not report on these columns if they weren’t given explicitly. For some reason this was harcoded to assume the name of the local column, which might work for some cases but is not correct. The new approach reflects the primary key of the referred table and uses the constraint columns list as the referred columns list, if the remote column(s) aren’t present in the reflected pragma directly.
1.3.7
Released: August 14, 2019
orm
[orm] [bug]
Fixed regression caused by new selectinload for many-to-one logic where a primaryjoin condition not based on real foreign keys would cause KeyError if a related object did not exist for a given key value on the parent object.
[orm] [bug]
Fixed bug where using Query.first() or a slice expression in conjunction with a query that has an expression based “offset” applied would raise TypeError, due to an “or” conditional against “offset” that did not expect it to be a SQL expression as opposed to an integer or None.
sql
[sql] [bug]
Fixed issue where Index object which contained a mixture of functional expressions which were not resolvable to a particular column, in combination with string-based column names, would fail to initialize its internal state correctly leading to failures during DDL compilation.
[sql] [bug]
Fixed bug where TypeEngine.column_expression() method would not be applied to subsequent SELECT statements inside of a UNION or other CompoundSelect, even though the SELECT statements are rendered at the topmost level of the statement. New logic now differentiates between rendering the column expression, which is needed for all SELECTs in the list, vs. gathering the returned data type for the result row, which is needed only for the first SELECT.
[sql] [bug]
Fixed issue where internal cloning of SELECT constructs could lead to a key error if the copy of the SELECT changed its state such that its list of columns changed. This was observed to be occurring in some ORM scenarios which may be unique to 1.3 and above, so is partially a regression fix.
postgresql
[postgresql] [usecase]
Added new dialect flag for the psycopg2 dialect, executemany_mode which supersedes the previous experimental use_batch_mode flag. executemany_mode supports both the “execute batch” and “execute values” functions provided by psycopg2, the latter which is used for compiled insert() constructs. Pull request courtesy Yuval Dinari.
See also
Psycopg2 Fast Execution Helpers
mysql
[mysql] [bug]
The MySQL dialects will emit “SET NAMES” at the start of a connection when charset is given to the MySQL driver, to appease an apparent behavior observed in MySQL 8.0 that raises a collation error when a UNION includes string columns unioned against columns of the form CAST(NULL AS CHAR(..)), which is what SQLAlchemy’s polymorphic_union function does. The issue seems to have affected PyMySQL for at least a year, however has recently appeared as of mysqlclient 1.4.4 based on changes in how this DBAPI creates a connection. As the presence of this directive impacts three separate MySQL charset settings which each have intricate effects based on their presense, SQLAlchemy will now emit the directive on new connections to ensure correct behavior.
[mysql] [bug]
Added another fix for an upstream MySQL 8 issue where a case sensitive table name is reported incorrectly in foreign key constraint reflection, this is an extension of the fix first added for 4344 which affects a case sensitive column name. The new issue occurs through MySQL 8.0.17, so the general logic of the 88718 fix remains in place.
See also
https://bugs.mysql.com/bug.php?id=96365 - upstream bug
[mysql] [usecase]
Added reserved words ARRAY and MEMBER to the MySQL reserved words list, as MySQL 8.0 has now made these reserved.
sqlite
[sqlite] [bug]
The dialects that support json are supposed to take arguments json_serializer and json_deserializer at the create_engine() level, however the SQLite dialect calls them _json_serilizer and _json_deserilalizer. The names have been corrected, the old names are accepted with a change warning, and these parameters are now documented as create_engine.json_serializer and create_engine.json_deserializer.
[sqlite] [bug]
Fixed bug where usage of “PRAGMA table_info” in SQLite dialect meant that reflection features to detect for table existence, list of table columns, and list of foreign keys, would default to any table in any attached database, when no schema name was given and the table did not exist in the base schema. The fix explicitly runs PRAGMA for the ‘main’ schema and then the ‘temp’ schema if the ‘main’ returned no rows, to maintain the behavior of tables + temp tables in the “no schema” namespace, attached tables only in the “schema” namespace.
mssql
[mssql] [usecase]
Added new mssql.try_cast() construct for SQL Server which emits “TRY_CAST” syntax. Pull request courtesy Leonel Atencio.
misc
[bug] [events]
Fixed issue in event system where using the once=True flag with dynamically generated listener functions would cause event registration of future events to fail if those listener functions were garbage collected after they were used, due to an assumption that a listened function is strongly referenced. The “once” wrapped is now modified to strongly reference the inner function persistently, and documentation is updated that using “once” does not imply automatic de-registration of listener functions.
1.3.6
orm
[orm] [feature]
Added new loader option method Load.options() which allows loader options to be constructed hierarchically, so that many sub-options can be applied to a particular path without needing to call defaultload() many times. Thanks to Alessio Bogon for the idea.
[orm] [bug]
Fixed regression caused by 4365 where a join from an entity to itself without using aliases no longer raises an informative error message, instead failing on an assertion. The informative error condition has been restored.
[orm] [bug]
Fixed an issue where the orm._ORMJoin.join() method, which is a not-internally-used ORM-level method that exposes what is normally an internal process of Query.join(), did not propagate the full and outerjoin keyword arguments correctly. Pull request courtesy Denis Kataev.
[orm] [bug]
Fixed bug where a many-to-one relationship that specified uselist=True would fail to update correctly during a primary key change where a related column needs to change.
[orm] [bug]
Fixed bug where the detection for many-to-one or one-to-one use with a “dynamic” relationship, which is an invalid configuration, would fail to raise if the relationship were configured with uselist=True. The current fix is that it warns, instead of raises, as this would otherwise be backwards incompatible, however in a future release it will be a raise.
[orm] [bug]
Fixed bug where a synonym created against a mapped attribute that does not exist yet, as is the case when it refers to backref before mappers are configured, would raise recursion errors when trying to test for attributes on it which ultimately don’t exist (as occurs when the classes are run through Sphinx autodoc), as the unconfigured state of the synonym would put it into an attribute not found loop.
[orm] [performance]
The optimization applied to selectin loading in 4340 where a JOIN is not needed to eagerly load related items is now applied to many-to-one relationships as well, so that only the related table is queried for a simple join condition. In this case, the related items are queried based on the value of a foreign key column on the parent; if these columns are deferred or otherwise not loaded on any of the parent objects in the collection, the loader falls back to the JOIN method.
engine
[engine] [bug]
Fixed bug where using reflection function such as MetaData.reflect() with an Engine object that had execution options applied to it would fail, as the resulting OptionEngine proxy object failed to include a .engine attribute used within the reflection routines.
sql
[sql] [bug]
Adjusted the initialization for Enum to minimize how often it invokes the .__members__ attribute of a given PEP-435 enumeration object, to suit the case where this attribute is expensive to invoke, as is the case for some popular third party enumeration libraries.
[sql] [bug] [postgresql]
oduce the correct operator precedence in combination with the array index operator.
[sql] [bug]
Fixed an unlikely issue where the “corresponding column” routine for unions and other CompoundSelect objects could return the wrong column in some overlapping column situtations, thus potentially impacting some ORM operations when set operations are in use, if the underlying select() constructs were used previously in other similar kinds of routines, due to a cached value not being cleared.
postgresql
[postgresql] [usecase]
Added support for reflection of indexes on PostgreSQL partitioned tables, which was added to PostgreSQL as of version 11.
[postgresql] [usecase]
Added support for multidimensional Postgresql array literals via nesting the postgresql.array object within another one. The multidimensional array type is detected automatically.
See also
postgresql.array
mysql
[mysql] [bug]
Fixed bug where the special logic to render “NULL” for the TIMESTAMP datatype when nullable=True would not work if the column’s datatype were a TypeDecorator or a Variant. The logic now ensures that it unwraps down to the original TIMESTAMP so that this special case NULL keyword is correctly rendered when requested.
[mysql] [bug]
Enhanced MySQL/MariaDB version string parsing to accommodate for exotic MariaDB version strings where the “MariaDB” word is embedded among other alphanumeric characters such as “MariaDBV1”. This detection is critical in order to correctly accommodate for API features that have split between MySQL and MariaDB such as the “transaction_isolation” system variable.
sqlite
[sqlite] [usecase]
Added support for composite (tuple) IN operators with SQLite, by rendering the VALUES keyword for this backend. As other backends such as DB2 are known to use the same syntax, the syntax is enabled in the base compiler using a dialect-level flag tuple_in_values. The change also includes support for “empty IN tuple” expressions for SQLite when using “in_()” between a tuple value and an empty set.
mssql
[mssql] [bug]
Ensured that the queries used to reflect indexes and view definitions will explicitly CAST string parameters into NVARCHAR, as many SQL Server drivers frequently treat string values, particularly those with non-ascii characters or larger string values, as TEXT which often don’t compare correctly against VARCHAR characters in SQL Server’s information schema tables for some reason. These CAST operations already take place for reflection queries against SQL Server information_schema. tables but were missing from three additional queries that are against sys. tables.
Version 3.9.1:
Bugfix for pg_error_field: make sure we do not feed null to newSVpv,
handle older versions of Postgres better.
Version 3.9.0:
- ShowErrorStatement works for "quickexec" do() calls
- Add :pg_limits to add constants such as PG_MAX_SMALLINT
- Add $dbh->pg_error_field() function
- Fix failing tests due to incorrect 'initdb' check
Version 3.8.1:
- Fix encoding of SQL_VARBINARY type in $dbh->quote() function
- Fix encoding in $dbh->do() function
- Fix E'' string escape handling on architectures with unsigned chars
- Minor fix to allow DBD::Pg to connect to PGbouncer's internal 'pgbouncer' database.
- Fix so table_info test works on non-empty databases
Version 3.8.0:
- Increase minimum supported PostgreSQL version to 8.0
- Add support for foreign tables in table_info() and column_info()
- Return the current database name as TABLE_CAT in info methods
- Handle backslash-escaped quotes in E'' strings
- Fix typo in Makefile.PL
- Fix parsing of PostgreSQL versions >= 10 on Debian/Ubuntu
- Fix client_min_messages=FATAL test when PostgreSQL caps it to ERROR
- Fix ->ping error detection on PostgreSQL 12
- Adjust tests for new pg_ctl output
- Adjust tests for removal of WITH OIDS in PostgreSQL 12
- Fix support for PostgreSQL versions back to 8.0
- Remove usage of deprecated pg_attrdef.adsrc and pg_constraint.consrc columns
- Fix typo in pg_placeholder_colons example
- Support GENERATED ... AS IDENTITY columns in last_insert_id()
* 3.3.8
* Fixed MONITOR parsing to properly parse IPv6 client addresses, unix
socket connections and commands issued from Lua.
* 3.3.7
* Fixed a regression introduced in 3.3.0 where socket.error exceptions
(or subclasses) could potentially be raised instead of
redis.exceptions.ConnectionError.
* 3.3.6
* Fixed a regression in 3.3.5 that caused PubSub.get_message() to raise
a socket.timeout exception when passing a timeout value.
* 3.3.5
* Fix an issue where socket.timeout errors could be handled by the wrong
exception handler in Python 2.7.
* 3.3.4
* More specifically identify nonblocking read errors for both SSL and
non-SSL connections. 3.3.1, 3.3.2 and 3.3.3 on Python 2.7 could
potentially mask a ConnectionError.
* 3.3.3
* The SSL module in Python < 2.7.9 handles non-blocking sockets
differently than 2.7.9+. This patch accommodates older versions
* 3.3.2
* Further fixed a regression introduced in 3.3.0 involving SSL and
non-blocking sockets.
* 3.3.1
* Fixed a regression introduced in 3.3.0 involving SSL and non-blocking
sockets.
* 3.3.0
* Resolve a race condition with the PubSubWorkerThread.
* Cleanup socket read error messages.
* Cleanup the Connection's selector correctly.
* Added a Monitor object to make working with MONITOR output easy.
* Internal cleanup: Removed the legacy Token class which was necessary
with older version of Python that are no longer supported.
* Response callbacks are now case insensitive. This allows users that
call Redis.execute_command() directly to pass lower-case command
names and still get reasonable responses.
* Added support for hiredis-py 1.0.0 encoding error support. This should
make the PythonParser and the HiredisParser behave identically
when encountering encoding errors.
* All authentication errors now properly raise AuthenticationError.
AuthenticationError is now a subclass of ConnectionError, which will
cause the connection to be disconnected and cleaned up appropriately.
* Add READONLY and READWRITE commands.
* Remove selectors in favor of nonblocking sockets. Selectors had
issues in some environments including eventlet and gevent. This should
resolve those issues with no other side effects.
* Fixed an issue with XCLAIM and previously claimed but not removed
messages.
* Allow for single connection client instances. These instances
are not thread safe but offer other benefits including a subtle
performance increase.
* Added extensive health checks that keep the connections lively.
Passing the "health_check_interval=N" option to the Redis client class
or to a ConnectionPool ensures that a round trip PING/PONG is successful
before any command if the underlying connection has been idle for more
than N seconds. ConnectionErrors and TimeoutErrors are automatically
retried once for health checks.
* Changed the PubSubWorkerThread to use a threading.Event object rather
than a boolean to control the thread's life cycle.
* Fixed a bug in Pipeline error handling that would incorrectly retry
ConnectionErrors.