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.