Version 2.5:
- Add support for PostgreSQL 11
- Add check-backup command to verify that WAL files required for
consistency of a base backup are present in the archive. Barman now
adds a new state (WAITING_FOR_WALS) after completing a base backup,
and sets it to DONE once it has verified that all WAL files from
start to the end of the backup exist. This command is included in
the regular cron maintenance job. Barman now notifies users
attempting to recover a backup that is in WAITING_FOR_WALS state.
- Allow switch-xlog --archive to work on a standby (just for the
archive part)
- Bug fixes:
- Fix decoding errors reading external commands output
- Fix documentation regarding WAL streaming and backup from
standby
2.5.2:
- when starting tls before binding the connection is automatically open
- fixed changelog date
- support for AD timedeltas
- fixed WhoAmI in mock strategies
- prevent unnecessary exception in extend/standard/ModifyPassword
- added support for external gssapi credentials to be passed to the sasl connection
- added support for gssapi store in sasl connection
- fixed LdifProducer
- fixed NTLM bind
- server state in ServerPool is now a namedtuple "ServerState"
- fixed error when adding member to AD group with unsafe DN
- properly restore lazy status in reusable strategy
- ServerState namedtuple converted to class in core/pooling
- empty schema doesn't raise exception in Abstraction Layer
LMDB 0.9.23:
Fix loose pages in dirty list
Fix mdb_load flag init
Fix mdb_env_close in forked process
Documentation
mdb_cursor_del doesn't invalidate cursor
GET_MULTIPLE etc don't change passed in key
OpenLDAP 2.4.47:
Added slapd-sock DN qualifier for subtrees to be processed
Added slapd-sock ability to send extended operations to external listeners
Fixed liblber to avoid incremental access to user-supplied bv in dupbv
Fixed libldap dn to domain parsing with bad input
Fixed slapd slapcat to correctly honor -g option
Fixed slapd to correctly handle NO_SUCH_OBJECT with dynamic groups
Fixed slapd to check status of rdnNormalize
Fixed slapd cn=config when modifying slapo-syncprov config
Fixed slapd sasl authz-policy "all" behavior
Fixed slapd sasl minor typo
Fixed slapd to correctly hide hidden DBs in the rootDSE
Fixed slapd domainScope control to match Microsoft specification
Fixed slapd-bdb/hdb/mdb to not convert certain IDLs to ranges
Fixed slapo-accesslog deadlock during cleanup
Fixed slapo-memberof cn=config modifications
Fixed slapo-ppolicy with multimaster replication
Fixed slapo-syncprov with NULL modlist
Build Environment
Added slapd reproducible build support
Fixed missing includes with OpenSSL 1.0.2
Contrib
Fixed slapo-pbkdf2 hash generation
Documentation
admin24 fixed minor typo
3.8.0
**New features**
* Postgres BinaryJSONField now supports has_key(), concat() and
remove() methods (though remove may require pg10+).
* Add python_value() method to the SQL-function helper fn, to allow
specifying a custom function for mapping database values to Python values.
**Changes**
* Better support for UPDATE ... FROM queries, and more generally, more robust
support for UPDATE and RETURNING clauses. This means that the
QualifiedNames helper is no longer needed for certain types of queries.
* The SqlCipherDatabase no longer accepts a kdf_iter parameter. To
configure the various SQLCipher encryption settings, specify the setting
values as pragmas when initializing the database.
* Introspection will now, by default, only strip "_id" from introspected column
names if those columns are foreign-keys.
* Allow UUIDField and BinaryUUIDField to accept hexadecimal UUID strings as
well as raw binary UUID bytestrings (in addition to UUID instances, which
are already supported).
* Allow ForeignKeyField to be created without an index.
* Allow multiple calls to cast() to be chained.
* Add logic to ensure foreign-key constraint names that exceed 64 characters
are truncated using the same logic as is currently in place for long indexes.
* ManyToManyField supports foreign-keys to fields other than primary-keys.
* When linked against SQLite 3.26 or newer, support SQLITE_CONSTRAINT to
designate invalid queries against virtual tables.
* SQL-generation changes to aid in supporting using queries within expressions
following the SELECT statement.
**Bugfixes**
* Fixed bug in order_by_extend(), thanks @nhatHero.
* Fixed bug where the DataSet CSV import/export did not support non-ASCII
characters in Python 3.x.
* Fixed bug where model_to_dict would attempt to traverse explicitly disabled
foreign-key backrefs.
* Fixed bug when attempting to migrate SQLite tables that have a field whose
column-name begins with "primary_".
* Fixed bug with inheriting deferred foreign-keys.
* 3.0.1
* Fixed regression with UnixDomainSocketConnection caused by 3.0.0.
* Fixed an issue with the new asynchronous flag on flushdb and flushall.
* Updated Lock.locked() method to indicate whether *any* process has
acquired the lock, not just the current one. This is in line with
the behavior of threading.Lock.
* 3.0.0
BACKWARDS INCOMPATIBLE CHANGES
* When using a Lock as a context manager and the lock fails to be acquired
a LockError is now raised. This prevents the code block inside the
context manager from being executed if the lock could not be acquired.
* Renamed LuaLock to Lock.
* Removed the pipeline based Lock implementation in favor of the LuaLock
implementation.
* Only bytes, strings and numbers (ints, longs and floats) are acceptable
for keys and values. Previously redis-py attempted to cast other types
to str() and store the result. This caused must confusion and frustration
when passing boolean values (cast to 'True' and 'False') or None values
(cast to 'None'). It is now the user's responsibility to cast all
key names and values to bytes, strings or numbers before passing the
value to redis-py.
* The StrictRedis class has been renamed to Redis. StrictRedis will
continue to exist as an alias of Redis for the forseeable future.
* The legacy Redis client class has been removed. It caused much confusion
to users.
* ZINCRBY arguments 'value' and 'amount' have swapped order to match the
the Redis server. The new argument order is: keyname, amount, value.
* MGET no longer raises an error if zero keys are passed in. Instead an
empty list is returned.
* MSET and MSETNX now require all keys/values to be specified in a single
dictionary argument named mapping. This was changed to allow for future
options to these commands in the future.
* ZADD now requires all element names/scores be specified in a single
dictionary argument named mapping. This was required to allow the NX,
XX, CH and INCR options to be specified.
* Removed support for EOL Python 2.6 and 3.3.
OTHER CHANGES
* Added missing DECRBY command.
* CLUSTER INFO and CLUSTER NODES respones are now properly decoded to
strings.
* Added a 'locked()' method to Lock objects. This method returns True
if the lock has been acquired and owned by the current process,
otherwise False.
* EXISTS now supports multiple keys. It's return value is now the number
of keys in the list that exist.
* Ensure all commands can accept key names as bytes. This fixes issues
with BLPOP, BRPOP and SORT.
* All errors resulting from bad user input are raised as DataError
exceptions. DataError is a subclass of RedisError so this should be
transparent to anyone previously catching these.
* Added support for NX, XX, CH and INCR options to ZADD
* Added support for the MIGRATE command
* Added support for the MEMORY USAGE and MEMORY PURGE commands.
* Added support for the 'asynchronous' argument to FLUSHDB and FLUSHALL
commands.
* Added support for the BITFIELD command.
* Improved performance on pipeline requests with large chunks of data.
* Fixed test suite to not fail if another client is connected to the
server the tests are running against.
* Added support for SWAPDB.
* Added support for all STREAM commands.
* SHUTDOWN now accepts the 'save' and 'nosave' arguments.
* Added support for ZPOPMAX, ZPOPMIN, BZPOPMAX, BZPOPMIN.
* Added support for the 'type' argument in CLIENT LIST.
* Added support for CLIENT PAUSE.
* Added support for CLIENT ID and CLIENT UNBLOCK.
* GEODIST now returns a None value when referencing a place that does
not exist.
* Added a ping() method to pubsub objects.
* Fixed a bug with keys in the INFO dict that contained ':' symbols.
* ssl_cert_reqs now has a default value of 'required' by default. This
should make connecting to a remote Redis server over SSL more secure.
* Fixed the select system call retry compatibility with Python 2.x.
* max_connections is now a valid querystring argument for creating
connection pools from URLs.
* Added the UNLINK command.
* Added socket_type option to Connection for configurability.
* Lock.do_acquire now atomically sets acquires the lock and sets the
expire value via set(nx=True, px=timeout).
* Added 'count' argument to SPOP.
* Fixed an issue parsing client_list respones that contained an '='.
Redis 5.0.3
===========
Upgrade urgency HIGH: Redis 5 is consolidating, upgrading is a good idea.
However there is nothing very critical here, but certain
issues resolved could lead to very rare crashes.
Welcome to Redis 5.0.3, several interesting bug fixes here:
* Redis no longer panics when you send data to a replica-mode connection that
is in MONITOR or SYNC mode.
* Fixes to certain sorted set edge cases. You are unlikely to ever notice those
issues, but now it is more correct.
* Certain BSD variants now are better supported: build & register logging
on crash.
* The networking core now recovers if an IPv6 address is listed in bind but
is actually not able to work because there is no such protocol in the
system.
* redis-cli cluster mode improved in many ways. Especially the fix subcommand
work was enhanced to cover other edge cases that were still not covered
after the work done for Redis 5.
* MEMORY USAGE is now more accurate.
* DEBUG DIGEST-VALUE added in case you want to make sure a given set of keys
(and not the whole DB) are excatly the same between two instances.
* Fix a potential crash in the networking code related to recent changes
to the way the reply is consumed.
* Reject EXEC containing write commands against an instance that changed role
from master to replica during our transaction.
* Fix a crash in KEYS and other commands using pattern matching, in an edge
case where the pattern contains a zero byte.
* Fix eviction during AOF loading due to maxmemory triggered by commands
executed in loading state.
Redis 5.0.2
===========
Upgrade urgency: CRITICAL if you use streams and consumer groups.
HIGH if you use redis-cli with Redis Cluster.
LOW otherwise.
Welcome to Redis 5.0.2. This release fixes two issues with Streams consumer
groups, where items could be returned duplicated by XREADGROUP when accessing
the history, and another bug where XREADGROUP can report some history even
if the comsumer pending list is empty. Both problems were addressed and unit
tests to avoid regressions implemented. Moreover this release fixes some
issue with redis-cli when in cluster mode. Finally some FreeBSD and DragonFly
build problems are now resolved. The list of the commits is below.
Redis 5.0.1
===========
Upgrade urgency: URGENT if you use Redis Streams. MODERATE otherwise.
Hi all, this is the first patch level release of Redis 5. It contains
both fixes and improvements. Here there is a list of the major ones, however
read the commit messages at the end of the changelog if you want to know
more about the smaller things. Let's start with the new features:
* Sentinel now supports authentication! Check the Sentinel official doc
for more info.
* Redis-cli cluster "fix" is now able to fix a big number of clusters put
in a bad condition. Previously many corner cases were not covered.
Now the critical fixes:
1. Fix RESTORE mismatch reply when certain keys already expired.
2. Fix an XCLAIM non trivial issue: sometimes the command returned a wrong
entry or desynchronized the protocol.
And now the other fixes:
3. Stack trace generation on the Raspberry PI (and 32bit ARM) fixed.
4. Don't evict expired keys when the KEYS command is called, in order to
avoid a mass deletion event. However expired keys are not displayed
by KEYS as usually.
5. Improvements in the computation of the memory used, when estimating
the AOF buffers.
6. XRANGE COUNT of 0 fixed.
7. "key misses" stats accounting fixed. Many cache misses were not counted.
8. When in MULTI state, return OOM while accumulating commands and there
is no longer memory available.
9. Fix build on FreeBSD and possibly others.
10. Fix a crash in Redis modules, thread safe context reply accumulation.
11. Fix a race condition when producing the RDB file for full SYNC.
12. Disable protected mode in Sentinel.
13. More commands now have the HELP subcommand.
14. Fixed an issue about adaptive server HZ timer.
15. Fix cluster-replica-no-failover option name.
Redis 5.0.0
===========
Upgrade urgency CRITICAL: Several fixes to streams AOF and replication.
1. The new Stream data type. https://redis.io/topics/streams-intro
2. New Redis modules APIs: Timers, Cluster and Dictionary APIs.
3. RDB now store LFU and LRU information.
4. The cluster manager was ported from Ruby (redis-trib.rb) to C code
inside redis-cli. Check `redis-cli --cluster help` for more info.
5. New sorted set commands: ZPOPMIN/MAX and blocking variants.
6. Active defragmentation version 2.
7. Improvemenets in HyperLogLog implementations.
8. Better memory reporting capabilities.
9. Many commands with sub-commands now have an HELP subcommand.
10. Better performances when clients connect and disconnect often.
11. Many bug fixes and other random improvements.
12. Jemalloc was upgraded to version 5.1
13. CLIENT UNBLOCK and CLIENT ID.
14. The LOLWUT command was added. http://antirez.com/news/123
15. We no longer use the "slave" word if not for API backward compatibility.
16. Differnet optimizations in the networking layer.
17. Lua improvements:
- Better propagation of Lua scripts to replicas / AOF.
- Lua scripts can now timeout and get in -BUSY state in the replica as well.
18. Dynamic HZ to balance idle CPU usage with responsiveness.
19. The Redis core was refactored and improved in many ways.
1.2.15
orm
[orm] [bug] Fixed bug where the ORM annotations could be incorrect for the primaryjoin/secondaryjoin a relationship if one used the pattern ForeignKey(SomeClass.id) in the declarative mappings. This pattern would leak undesired annotations into the join conditions which can break aliasing operations done within Query that are not supposed to impact elements in that join condition. These annotations are now removed up front if present.
[orm] [bug] In continuing with a similar theme as that of very recent 4349, repaired issue with RelationshipProperty.Comparator.any() and RelationshipProperty.Comparator.has() where the “secondary” selectable needs to be explicitly part of the FROM clause in the EXISTS subquery to suit the case where this “secondary” is a Join object.
[orm] [bug] Fixed regression caused by 4349 where adding the “secondary” table to the FROM clause for a dynamic loader would affect the ability of the Query to make a subsequent join to another entity. The fix adds the primary entity as the first element of the FROM list since Query.join() wants to jump from that. Version 1.3 will have a more comprehensive solution to this problem as well.
[orm] [bug] Fixed bug where chaining of mapper options using RelationshipProperty.of_type() in conjunction with a chained option that refers to an attribute name by string only would fail to locate the attribute.
orm declarative
[bug] [declarative] [orm] A warning is emitted in the case that a column() object is applied to a declarative class, as it seems likely this intended to be a Column object.
misc
Added support for the write_timeout flag accepted by mysqlclient and pymysql to be passed in the URL string.
Fixed issue where reflection of a PostgreSQL domain that is expressed as an array would fail to be recognized.
Build 124 (2018-08-20)
Enhancements
- WbExport can now write .xlsm files ("XLSX with Macros")
- In the auto-completion popup for columns, the column's data type is now displayed
- For PostgreSQL, row-level policies created for a table are now shown in the generated DDL
- Added auto-completion support for Oracle's SHOW command
- Added auto-completion support for PostgreSQL's SHOW, SET and RESET commands
- Added support for new features in PostgreSQL 11
- Improved support for Greenplum
- It's now possible to lock a result not only through the GUI, but also through the annotation WbKeepResult
- It's now possible to define global SSH hosts that can be selected for each connection profile
- It's now possible to display the column's table in a query result if the JDBC driver provides that information
- When importing Excel sheets it's now possible to disable the automatic re-calculation of formulas
- It's now possible to use multiple profile files by specifying a directory through the -profileStorage parameter
- It's now possible to define environment variables for the programs started through WbSysExec
- For PostgreSQL, user defined collations are now shown in the DbExplorer and DbTree
- For PostgreSQL, Oracle and SQL Server time zone information can now be displayed for columns that contain that information (TIMESTAMP WITH TIME ZONE or datetimeoffset)
- For DB2 for I, variables are now shown in the DbExplorer and DbTree
- For DB2 for I, the character set of columns (CCSID) is now shown in the generated DDL statements.
- It's now possible to use the schema filter expressions from the connection profile as parameters to the JDBC API call to speed up schema retrieval.
- It's now possible to define more flexible filters for the DbExplorer's table list
Bug fixes
- For Postgres, WbCopy was not able to write values into TIMESTAMPTZ column.
- For Oracle versions 10 or lower, the source of materialized views was no longer displayed.
- For Oracle, when displaying the procedures in the DbExplorer and choosing "*" for the schema, the procedure owner was no longer shown in the list of procedures.
- For SQL Server, the DROP statement generated for sequences was not correct.
- If the option "Always allow "Execute selected" was disabled, directly after opening the window "Execute Selected" would still run all statements.
- Running a macro by using the macro's name did not work if there was a comment preceding the macro's name in the editor.
- When a result was locked ("Keep result") subsequent new result tabs were not always activated automatically.
- When connecting to a profile with a corrupted workspace, the main window was not usable any more.
- Additional libraries were no longer loaded when starting SQL Workbench/J using "java -jar sqlworkbench.jar"
- When multiple columns where selected in a result, the "Filter by value" was applied using only the first selected column.
- The -commitEvery parameter for WbImport and WbCopy did not work
- When using WbConnect with nested WbIncludes, the connection would not be closed if an error occurred
- When using "Check foreign keys" in the dialog to drop multiple objects, non-table objects were removed.
- "Save As" did not use the profile's default directory
- The default directory of the profile was not used when opening files
- Implemented a workaround for SQLite, so that invalid DATE values could be read from columns defined as DATE.
- When using "quoteCharEscaping=duplicate" with WbImport, empty strings or strings that only contained a single (escaped) quote character were not imported correctly.
- In case of an error, the cursor in the editor was no longer moved to the error position.
- For PostgreSQL, the generated DDL for foreign servers was incorrect
- For Oracle, NUMBER columns without precision were exported with a decimal separator to Excel files.
- Showing rowcounts in the DbExplorer did not work.
- For Oracle, the result of functions returning a refcursor was not displayed correctly.
Build 123 (2017-09-25)
Enhancements
- It's now possible to jump between statements in the editor.
- For Postgres global objects are now shown in the DbTree and DbExplorer
- WbExport now supports specifying a format pattern when exporting numbers to text files.
- Expandable macros now also support placeholders for the selected text and statement.
- WbDataDiff can now optionally create INSERT statements for tables that do not exist in the target database.
- Added support for new Postgres 10 features (partitioning, identity columns)
- For Firebird, DOMAINs are now included in the dependency display
- WbImport now also supports the -skipTargetCheck option
- It's now possible to define a default directory for a connection profile that is used e.g. for WbInclude or WbExport
- The default encoding used for files in the editor can now be changed in the options dialog
- WbImport and WbExport now support the -locale parameter to define the locale used for parsing and formatting dates and timestamps
- For Postgres, the type of an index (btree, brin, gist, gin, ...) is now shown in the DbExplorer
- For Postgres, TYPEs are now included in the dependency display
- The formatting of numbers can now be controlled in more detail
- For SQL Server and MySQL the USE command now supports code-completion
- Generated DDL scripts now only contain commit statements if the current connection is not set to auto-commit (and the DBMS supports transactional DDL)
- For Postgres, a tablespace other then pg_default will now be displayed in the generated source for tables and indexes
Bug fixes
- SQL Workbench could not be started with Java 9
- BLOB and NVARCHAR literals were not handled correctly when formatting a statement
- Replacing variables inside other variables did not always work
- WbSchemaDiff did not handle multiple indexes on the same column list correctly
- It was no longer possible to connect to a SAP DB
- Navigating foreign keys from the result set did not work for non-numeric data types
- Made saving of Workspaces more robust against errors.
- For SQL Server, if integratedSecurity=true was used, SQL Workbench still prompted for a password
- Made the SQL formatter more robust against useless parentheses around sub-selects
- When an expandable macros was invoked through the menu, the cursor position was not correct when using ${c}
- It was not possible to change the statement/query timeout in GUI mode using SET TIMEOUT
- Detaching a result was longer possible in build 122.2
- The option "Remove comments" was not working with databases are using non-standard characters to quote identifiers
- For Oracle, the display format for timestamps was not used for "timestamp with time zone" values
- SSH tunneling did not work with Oracle when using a service name in the JDBC URL
- If the MacroPopup was open and a profile with a different macro file was loaded, the macros in the popup weren't re-loaded
- Fixed the handling of long column names in the dialog to select columns
- WbCopy did not work if there was another object (e.g. a sequence or view) in the source database with the same name as the table specified with -sourceTable
- The dialog to select columns for copying them to the clipboard did not display all options on Mac OSX.
- Changing between connection profiles that had a non-standard macro file and profiles using the standard macro file could lead to a situation where the standard macros were no longer available.
- "Put SELECT into Clipboard" did not work any longer in the DbTree or DbExplorer
- Using -sourceDir to import multiple files into a single table did not work if -fileColumns was not specified
- WbDataDiff failed when using -includeDeletes=true and the comparison was done between two DBMS that stored object names differently (e.g. UPPER vs. lowercase)
- The parameter -varFile did not work anymore
- For Oracle, the "realplan" option for autotrace did not work for queries starting with a common table expression (WITH)
The new package will be prefixed with the php version because the
dependencies are also specified with the version number in the
Makefile.
Changelog:
4.8.3 (2018-08-22)
- issue #14314 Error when naming a database '0'
- issue #14333 Fix NULL as default not shown
- issue #14229 Fixes issue with recent table list
- issue #14045 Fix slow performance on DB structure filtering
- issue #14327 Fix Editing server variable not showing save or cancel option
- issue #14377 Populate options for view create and edit
- issue #14171 2FA configuration fails if PHP doesn't have GD support
- issue #14390 Can't unhide tables
- issue #14382 "Visualize GIS data" icon missing
- issue #14435 Event scheduler status toggle doesn't work
- issue #14365 View not working on multiple servers
- issue #14207 Partition actions in table structure do not work
- issue #14375 Fixes ERR_BLOCKED_BY_XSS_AUDITOR on export table
- issue #14552 Blank message shown instead of MySQL error when adding trigger and other locations
- issue #14525 Fix PHP 7.3 warning: "continue" in "switch" is equal to "break"
- issue #14554 Icon missing when creating a new trigger, routine, and event
- issue #14422 Table comment not showing since 4.8.1
- issue #14426 Drop table doesn't work when you copy tables to another database
- issue #14581 Escaped HTML in 'Add a new server' setup
- issue #14548 [security] HTML injection in import warning messages, see PMASA-2018-5
4.8.2 (2018-06-21)
- issue #14370 WHERE 0 causes Fatal error
- issue #14225 Fix missing index icon
- issue [security] XSS vulnerability in Designer, see PMASA-2018-3
- issue [security] File inclusion and remote code execution vulnerability, see PMASA-2018-4
4.8.1 (2018-05-24)
- issue #12772 Fix case where the central columns attributes don't get filled in
- issue #14049 Fix case where the query builder doesn't work when selected column is *
- issue #14029 Revert "Browse" table CSS overflow
- issue #14241 Dropping indexes and foreign keys fail
- issue #14227 Relational linking broken
- issue #14246 Fixed error in configuration storage zero config
- issue #14128 Show 2FA Secret next to QR code
- issue #14212 XML Export from single table throws fatal error
- issue #14239 Line and some other charts ignore result set order of values chosen for the x-axis
- issue #14260 Fixed configuration for DefaultLang and Lang
- issue #14264 Linking for 'Distinct values' broken
- issue #13968 Fix MariaDB 10.2 current_timestamp()
- issue #14249 Fix for missing go button in view edit
- issue #14125 Fix for issues with spatial fields
- issue #14189 Remember table's sorting broken
- issue #14289 Fix multi-column sorting
- issue #14278 Fix central columns in-line edit bug
- issue #14066 Fix AUTO_INCREMENT error when only exporting table structure in database-level exports
- issue #13893 Simulating queries produces unexpected results
- issue #14309 Setup script icons missing
4.8.0.1 (2018-04-19)
- issue [security] Multiple CSRF vulnerabilities, See PMASA-2018-02
4.8.0 (2018-04-07)
- issue #12946 Allow to export JSON with unescaped unicode chars
- issue #12983 Disable login button without solved reCaptcha
- issue #12315 Allow to remove individual segments from pie charts
- issue Change label from "Improve table structure" to "Normalize" to match standard terminology
- issue #13087 Offer login as different user on access denied from MySQL
- issue #13110 Indicate when HTTPS is not properly reported on the server
- issue #13119 No database selected error when adding foreign key
- issue #12388 Improved database search to allow search for exact phrase match
- issue #13099 Report error when trying to copy database to same name
- issue #13167 Themes now have to contain metadata in theme.json
- issue #6363 phpMyAdmin no longer requires eval() in PHP
- issue #12386 The mbstring dependency is now optional
- issue #13269 Small refactoring in preparation to CSP
- issue #13384 Database link broken in Databases Page
- issue #13391 Configurable authentication logging using $cfg['AuthLog']
- issue #13086 Add support for Google Invisible Captcha
- issue #13058 Improved error reporting for reCAPTCHA
- issue #12899 Improved rendering of server variables table
- issue #12948 Fixed javascript editor for TIME values
- issue #13095 Fixed alignment of foreign keys editing
- issue #12944 Improved inline editor for JSON
- issue #13145 Improved layout of operations pages
- issue #13448 Add "format" query button in edit view form
- issue #6241 Implement Responsive Design/mobile interface
- issue Use a single location for classes under PhpMyAdmin namespace
- issue #12354 Indicate SSL status on main page
- issue #5666 Configuration directives for defaults of Transformation options
- issue #12261 Remove inline JavaScript
- issue #13408 Show MySQL warnings when executing SQL queries
- issue #5827 Allow Designer to show tables from other databases
- issue #13268 Replace Query-By-Example with multi-table query generator interface
- issue #13576 Add privileges export to per-database listing
- issue Consolidate functions into class files
- issue #13560 Add support for changing collation for all tables and columns in database
- issue #13303 Add support for creating fulltext index from table structure
- issue #13711 Lower default value for $cfg['MaxExactCount']
- issue #13722 DisableIS is not fully honored
- issue #6197 Added support for authentication using U2F and 2FA
- issue #13480 Avoid removing cookies on upgrade
- issue #13397 Remember state of navigation panel
- issue #11688 Reduced cookie usage
- issue #13466 Better utilization of user preferences
- issue #14042 Rename PMD to Designer
- issue #13940 Honor arg_separator in AJAX requests
- issue #14060 Can't edit rows in Internet Explorer
- issue #14096 Internet Explorer compatibility; fixes JavaScript error Object doesn't support property or method 'startsWith'
4.7.9 (2018-03-05)
- issue #13931 Fixed browsing tables with more results
- issue #13927 "Not an integer" when browsing a table
- issue #13887 "Input variables exceeded 1000" error relating to PHP's max_input_vars directive
4.7.8 (2018-02-20)
- issue #13914 Fixed resetting default setting values.
- issue #13758 Fixed fallback value for collation connection.
- issue #13938 Fixed error handling in PHP 7.2
- issue [security] Fix XSS in Central Columns Feature, See PMASA-2018-01
--- Older ChangeLogs can be found on our project website ---
https://www.phpmyadmin.net/old-stuff/ChangeLogs/
Separate php-sqlite3 package from lang/php{56,70,71,72}.
And now it really link with sqlite3 shared library.
PHP is a programming language designed to be embedded into web pages.
This module provides access to Sqlite3 databases.
SQLite Release 3.26.0:
Optimization: When doing an UPDATE on a table with indexes on expressions, do not update the expression indexes if they do not refer to any of the columns of the table being updated.
Allow the xBestIndex() method of virtual table implementations to return SQLITE_CONSTRAINT to indicate that the proposed query plan is unusable and should not be given further consideration.
Added the SQLITE_DBCONFIG_DEFENSIVE option which disables the ability to create corrupt database files using ordinary SQL.
Added support for read-only shadow tables when the SQLITE_DBCONFIG_DEFENSIVE option is enabled.
Added the PRAGMA legacy_alter_table command, which if enabled causes the ALTER TABLE command to behave like older version of SQLite (prior to version 3.25.0) for compatibility.
Added PRAGMA table_xinfo that works just like PRAGMA table_info except that it also shows hidden columns in virtual tables.
Added the explain virtual table as a run-time loadable extension.
Add a limit counter to the query planner to prevent excessive sqlite3_prepare() times for certain pathological SQL inputs.
Added support for the sqlite3_normalized_sql() interface, when compiling with SQLITE_ENABLE_NORMALIZE.
Enhanced triggers so that they can use table-valued functions that exist in schemas other than the schema where the trigger is defined.
Enhancements to the CLI:
- Improvements to the ".help" command.
- The SQLITE_HISTORY environment variable, if it exists, specifies the name of the command-line editing history file
- The --deserialize option associated with opening a new database cause the database file to be read into memory and accessed using the sqlite3_deserialize() API. This simplifies running tests on a database without modifying the file on disk.
Enhancements to the geopoly extension:
- Aways stores polygons using the binary format, which is faster and uses less space.
- Added the geopoly_regular() function.
- Added the geopoly_ccw() function.
Enhancements to the session extension:
- Added the SQLITE_CHANGESETAPPLY_INVERT flag
- Added the sqlite3changeset_start_v2() interface and the SQLITE_CHANGESETSTART_INVERT flag.
- Added the changesetfuzz.c test-case generator utility.
Upstream changes:
1.60 2018-12-01
- Switched to a production version
1.59_03 2018-11-03
- Added a note on the long standing bug on TYPE statement
handle attribute
- Applied a doc patch on Virtual::PerlData by Björn Höhrmann
(GH-31)
1.59_02 2018-09-30
- Upgraded SQLite to 3.25.2
1.59_01 2018-09-17
- Upgraded SQLite to 3.25.0, with ALTER TABLE ... RENAME COLUMN
and UPSERT among others
- Added ::GetInfo (GH#32, Brendan Byrd)
- Fix to use a PV value as a virtual table column value
where appropriate (RT-124941)
- Add deferrability to foreign_key_info (mohawk2)
=== 5.15.0 (2018-12-01)
* Add :conn_str option in the postgres adapter for PostgreSQL connection strings, if the pg driver is used (graywolf) (#1572)
* Add :qualify_tables option to class_table_inheritance plugin to automatically qualify subclass tables with superclass qualifier (benalavi) (#1571)
* Access already allocated connections in a thread safe manner when checking out connections in the sharded threaded connection pool (jeremyevans)
* Automatically support datasets using qualified tables in the class_table_inheritance plugin without having to use the :alias option (benalavi) (#1565)
* Support rename_column without emulation on SQLite 3.25+ (jeremyevans)
* Do not remove currently cached many_to_one associated objects when changing the related foreign key value from nil to non-nil (jeremyevans)
* Do not validate new *_to_many associated objects twice when saving in the nested_attributes plugin (jeremyevans)
* Add Model#skip_validation_on_next_save! for skipping validation on next save call (jeremyevans)
(This revbump should not be necessary, because goes's public ABI did
not change. Due to a misfeature/bug in libtool, linking against the
stable geos C API results in a directed NEEDED entry on the unstable
C++ library.)
1.0.5
* Resolved remaining Python 3 deprecation warnings, covering the use of inspect.formatargspec() with a vendored version copied from the Python standard library, importing collections.abc above Python 3.3 when testing against abstract base classes, fixed one occurrence of log.warn(), as well as a few invalid escape sequences.
1.0.4
* Code hosting has been moved to GitHub, at https://github.com/sqlalchemy/alembic. Additionally, the main Alembic website documentation URL is now https://alembic.sqlalchemy.org.
Upstream changes:
2018-10-25 Daniël van Eeden, Patrick Galbraith,
DBI/DBD community (4.049)
* Fix MariaDB issue #262
* Various fixes for travis builds
* Fix to issue 187: Don't declare enum_type as static
* Fix regex for removing database from DSN again
* Allow to call $sth->mysql_async_ready and $sth->mysql_async_result more times without discarding result state 201
Changes in MySQL 5.7.24
Deprecation and Removal Notes
* InnoDB; Partitioning: Support for placing table partitions in shared tablespaces is deprecated and will be removed in a future version of MySQL. Shared tablespaces include the system tablespace and general tablespaces. For information about identifying partitions in shared tablespaces and moving them to file-per-table tablespaces, see Preparing Your Installation for Upgrade.
* InnoDB: Support for TABLESPACE = innodb_file_per_table and TABLESPACE = innodb_temporary clauses with CREATE TEMPORARY TABLE is deprecated and will be removed in a future MySQL version.
Functionality Added or Changed
Replication: Use the group_replication_exit_state_action option to configure how Group Replication behaves when a member leaves the group involuntarily, for example when it is expelled from the group due to an unstable network connection. When group_replication_exit_state_action is set to ABORT_SERVER, upon exiting the group unintentionally, the instance shuts MySQL down, and when group_replication_exit_state_action is set to READ_ONLY the instance sets MySQL to super read only mode instead and its state is set to ERROR.
Previously, file I/O performed in the I/O cache in the mysys library was not instrumented, affecting in particular file I/O statistics reported by the Performance Schema about the binary log index file. Now, this I/O is instrumented and Performance Schema statistics are accurate. Thanks to Yura Sorokin for the contribution.
The zlib library version bundled with MySQL was raised from version 1.2.3 to version 1.2.11. MySQL implements compression with the help of the zlib library.
The zlib compressBound() function in zlib 1.2.11 returns a slightly higher estimate of the buffer size required to compress a given length of bytes than it did in zlib version 1.2.3. The compressBound() function is called by InnoDB functions that determine the maximum row size permitted when creating compressed InnoDB tables or inserting rows into compressed InnoDB tables. As a result, CREATE TABLE ... ROW_FORMAT=COMPRESSED or INSERT operations with row sizes very close to the maximum row size that were successful in earlier releases could now fail.
Bugs Fixed
* InnoDB: An ALTER TABLE operation that added a primary key produced a segmentation fault.
* InnoDB: A query that scanned the primary key of a table did not return the expected result.
* InnoDB: A query interruption during a lock wait caused an error.
* InnoDB: An index record was not found when updating a secondary index defined on a generated column.
* InnoDB: The update log applied as part of an online ALTER TABLE operation did not take into account the computed value of the generated column in the old row while updating the secondary index.
* InnoDB: An unsupported DDL operation involving a foreign key constraint raised an assertion.
* InnoDB: An attempted foreign key check on a discarded table caused a segmentation fault.
* InnoDB: An assertion was raised during an OPTIMIZE TABLE operation.
* InnoDB: A foreign key constraint name was duplicated during a rename table operation, causing a failure during later query execution.
* InnoDB: In a function called before the execution of a statement in a stored procedure, a read and write operation on trx->lock.start_stmt was not protected by a mutex.
* InnoDB: An error occurred during a DDL operation due to a mismatch in a REDUNDANT row format calculation that determines the length of the online log.
* InnoDB: The location of the Innodb Merge Temp File that reported by the wait/io/file/innodb/innodb_temp_file Performance Schema instrument was incorrect.
* Partitioning: When a CREATE TABLE ... PARTITION BY ... statement failed due to an invalid partition definition, the server did not remove any partition files which might have been created prior to encountering the invalid PARTITION clause.
* Partitioning: It was possible to perform FLUSH TABLES FOR EXPORT on a partitioned table created with innodb_file_per_table=1 after discarding its tablespace. Attempting to do so now raises ER_TABLESPACE_DISCARDED.
* Replication: When the binlog_group_commit_sync_delay system variable is set to a wait time to delay synchronization of transactions to disk, and the binlog_group_commit_sync_no_delay_count system variable is also set to a number of transactions, the MySQL server exits the wait procedure if the specified number of transactions is reached before the specified wait time is reached. The server manages this process by checking on the transaction count after a delta of one tenth of the time specified by binlog_group_commit_sync_delay has elapsed, then subtracting that interval from the remaining wait time.
more...
Changes in MySQL 5.6.42
Functionality Added or Changed
* Previously, file I/O performed in the I/O cache in the mysys library was not instrumented, affecting in particular file I/O statistics reported by the Performance Schema about the binary log index file. Now, this I/O is instrumented and Performance Schema statistics are accurate. Thanks to Yura Sorokin for the contribution.
* The zlib library version bundled with MySQL was raised from version 1.2.3 to version 1.2.11. MySQL implements compression with the help of the zlib library.
* The zlib compressBound() function in zlib 1.2.11 returns a slightly higher estimate of the buffer size required to compress a given length of bytes than it did in zlib version 1.2.3. The compressBound() function is called by InnoDB functions that determine the maximum row size permitted when creating compressed InnoDB tables or inserting rows into compressed InnoDB tables. As a result, CREATE TABLE ... ROW_FORMAT=COMPRESSED or INSERT operations with row sizes very close to the maximum row size that were successful in earlier releases could now fail.
Bugs Fixed
* InnoDB: An ALTER TABLE operation that added a primary key produced a segmentation fault.
* InnoDB: An assertion was raised during an OPTIMIZE TABLE operation.
* InnoDB: A foreign key constraint name was duplicated during a rename table operation, causing a failure during later query execution.
* InnoDB: The location of the Innodb Merge Temp File that reported by the wait/io/file/innodb/innodb_temp_file Performance Schema instrument was incorrect.
* Replication: When FLUSH statements for specific log types (such as FLUSH SLOW LOGS) resulted in an error, the statements were still written to the binary log. This stopped replication because the error had occurred on the master, but did not occur on the slave. MySQL Server now checks on the outcome of these FLUSH statements, and if an error occurred, the statement is not written to the binary log.
* Microsoft Windows: On Windows, uninstallation of the MySQL Server MSI package through MySQL Installer produced a spurious popup window.
* Concurrent INSERT and SELECT statements on a MERGE table could result in a server exit.
* MySQL Server and test RPM packages were missing perl-Data-Dumper as a dependency.
* For the mysql client, the -b short option was associated with two long options, --no-beep and --binary-as-hex. The -b option now is associated only with --no-beep.
* Very long table keys were handled incorrectly on replication slaves.
* During server startup/shutdown, PID files could be mishandled.
* For MEMORY tables, memory overflow errors could occur.
* When converting from a BLOB (or TEXT) type to a smaller BLOB (or TEXT) type, no warning or error was reported informing about the truncation or data loss. Now an appropriate error is issued in strict SQL mode and a warning in nonstrict SQL mode.
* Failure to create a temporary table during a MyISAM query could cause a server exit. Thanks to Facebook for the patch.
* An attempted read of an uncommitted transaction raised an assertion.
* ALTER TABLE ... REORGANIZE PARTITION ... could result in incorrect behavior if any partition other than the last was missing the VALUES LESS THAN part of the syntax.
* yum update did not properly update from RHEL5 RPM packages to current packages.
* It was possible for a subquery that used a unique key on a column allowing NULL to return multiple rows.
Changes in MySQL 5.5.62
Functionality Added or Changed
* Previously, file I/O performed in the I/O cache in the mysys library was not instrumented, affecting in particular file I/O statistics reported by the Performance Schema about the binary log index file. Now, this I/O is instrumented and Performance Schema statistics are accurate. Thanks to Yura Sorokin for the contribution.
* The zlib library version bundled with MySQL was raised from version 1.2.3 to version 1.2.11. MySQL implements compression with the help of the zlib library.
* The zlib compressBound() function in zlib 1.2.11 returns a slightly higher estimate of the buffer size required to compress a given length of bytes than it did in zlib version 1.2.3. The compressBound() function is called by InnoDB functions that determine the maximum row size permitted when creating compressed InnoDB tables or inserting rows into compressed InnoDB tables. As a result, CREATE TABLE ... ROW_FORMAT=COMPRESSED or INSERT operations with row sizes very close to the maximum row size that were successful in earlier releases could now fail.
Bugs Fixed
* MySQL Server and test RPM packages were missing perl-Data-Dumper as a dependency.
* For the mysql client, the -b short option was associated with two long options, --no-beep and --binary-as-hex. The -b option now is associated only with --no-beep.
* During server startup/shutdown, PID files could be mishandled.
* For MEMORY tables, memory overflow errors could occur.
* When converting from a BLOB (or TEXT) type to a smaller BLOB (or TEXT) type, no warning or error was reported informing about the truncation or data loss. Now an appropriate error is issued in strict SQL mode and a warning in nonstrict SQL mode.
* ALTER TABLE ... REORGANIZE PARTITION ... could result in incorrect behavior if any partition other than the last was missing the VALUES LESS THAN part of the syntax.
3.25.1:
Added constants:
SQLITE_INDEX_CONSTRAINT_FUNCTION, SQLITE_CANTOPEN_DIRTYWAL, SQLITE_ERROR_SNAPSHOT, SQLITE_FCNTL_DATA_VERSION
Shell output mode now has lines and columns for compatibility (APSW issue 214)
Example now runs under both Python 2 and 3.
1.0.3:
Fixed regression caused by 513, where the logic to consume mssql_include was not correctly interpreting the case where the flag was not present, breaking the op.create_index directive for SQL Server as a whole
asyncpg v0.18.2
Bug Fixes
* Revert "Stop treating ReadyForQuery as a universal result indicator"
to fix stability regression.
* Correctly ignore all incoming messages after the Terminate message
* Properly cleanup connections closed by remote
1.2.14
orm
* Fixed bug in Session.bulk_update_mappings() where alternate mapped attribute names would result in the primary key column of the UPDATE statement being included in the SET clause, as well as the WHERE clause; while usually harmless, for SQL Server this can raise an error due to the IDENTITY column. This is a continuation of the same bug that was fixed in 3849, where testing was insufficient to catch this additional flaw.
* Fixed a minor performance issue which could in some cases add unnecessary overhead to result fetching, involving the use of ORM columns and entities that include those same columns at the same time within a query. The issue has to do with hash / eq overhead when referring to the column in different ways.
mysql
* Fixed regression caused by 4344 released in 1.2.13, where the fix for MySQL 8.0’s case sensitivity problem with referenced column names when reflecting foreign key referents is worked around using the information_schema.columns view. The workaround was failing on OSX / lower_case_table_names=2 which produces non-matching casing for the information_schema.columns vs. that of SHOW CREATE TABLE, so in case-insensitive SQL modes case-insensitive matching is now used.
Psycopg 2.7.6:
Summary of changes:
- Close named cursors if exist, even if execute() wasn't called.
- Fixed building on modern FreeBSD versions with Python 3.7.
- Fixed hang trying to COPY via execute() in asynchronous connections.
- Fixed adaptation of arrays of empty arrays.
- Fixed segfault accessing the connection.readonly and connection.deferrable attributes repeatedly.
- execute_values() accepts sql.Composable objects.
- errorcodes map updated to PostgreSQL 11.
- Wheel package compiled against PostgreSQL 10.5 libpq and OpenSSL 1.0.2p.
The PostgreSQL Global Development Group has released an update to all supported versions of our database system, including 11.1, 10.6, 9.6.11, 9.5.15, 9.4.20, and 9.3.25. This release fixes one security issue as well as bugs reported over the last three months.
All users using the affected versions of PostgreSQL should update as soon as possible. Please see the notes on "Updating" below for any post-update steps that may be required if you are using pg_stat_statements in your installation.
This update is also the final release for PostgreSQL 9.3, which is now end-of-life and will no longer receive any bug or security fixes. If your environment still uses PostgreSQL 9.3, please make plans to update to a community supported version as soon as possible. Please see our versioning policy for more information.
Security Issues
One security vulnerability has been closed by this release:
CVE-2018-16850: SQL injection in pg_upgrade and pg_dump, via CREATE TRIGGER ... REFERENCING.
Versions Affected: 10, 11
Using a purpose-crafted trigger definition, an attacker can run arbitrary SQL statements with superuser privileges when a superuser runs pg_upgrade on the database or during a pg_dump dump/restore cycle. This attack requires a CREATE privilege on some non-temporary schema or a TRIGGER privilege on a table. This is exploitable in the default PostgreSQL configuration, where all users have CREATE privilege on public schema.
Bug Fixes and Improvements
This update also fixes numerous bugs that were reported in the last several months. Some of these issues affect only version 11, but many affect all supported versions.
These releases include fixes that:
Ensure that automatically created child indexes are created in the same tablespace as the parent partitioned index
Fix several crashes with triggers
Fix problems with applying ON COMMIT DELETE ROWS to a partitioned temporary table
Fix how NULL values are handled when using LEFT JOIN with a parallelized hash join
Several fixes around using named or defaulted arguments in CALL statements
Fix for strict aggregate functions (i.e. aggregates that cannot accept NULL inputs) with ORDER BY columns that enforces the strictness check
Fix with CASE statements where an expression was cast to an array type
Disable an optimization for updating expression indexes in order to prevent a crash
Fix a memory leak that occurred on a specific case of using a SP-GiST index
Fix for pg_verify_checksums incorrectly reporting on files that are not expected to have checksums
Prevent the PostgreSQL server from starting when wal_level is set to a value that cannot support an existing replication slot
Ensure that the server will process already-received NOTIFY and SIGTERM interrupts before waiting for client input
Allow PL/Ruby to work with newer versions of PostgreSQL
Fix for character-class checks on Windows for Unicode characters above U+FFFF, which affected full-text search as well as contrib/ltree and contrib/pg_trgm
Fix a case where psql would not report the receipt of a message from a NOTIFY call until after the next command
Fix build problems on macOS 10.14 (Mojave)
Several build fixes for the Windows platform
This updates also contains tzdata release 2018g for DST law changes in Chile, Fiji, Morocco, and Russia (Volgograd), plus historical corrections for China, Hawaii, Japan, Macau, and North Korea.
SQLite Release 3.25.3:
Disallow the use of window functions in the recursive part of a CTE.
Fix the behavior of typeof() and length() on virtual tables.
Strengthen defenses against deliberately corrupted database files.
Fix a problem in the query planner that results when a row-value expression is used with a PRIMARY KEY with redundant columns.
Fix the query planner so that it works correctly for IS NOT NULL operators in the ON clause of a LEFT JOIN with the SQLITE_ENABLE_STAT4 compile-time option.
asyncpg v0.18.1:
Fix DSN parsing regression
asyncpg v0.18.0:
Improvements
Implement Record.get()
Internal asyncpg errors are now consistently raised as InternalClientError
Allow mappings as composite type input
Add BitString.to_int() and BitString.from_int()
Allow 'sslmode' in DSNs
Add support for specifying multiple host addresses when connecting
Low-level protocol implementation has been tweaked and
optimized for slightly better performance in certain scenarios
Queries with cached statements now generate fewer TCP packets
Allow aliasing builtin types by name in set_builtin_type_codec()
Factor out generic PostgreSQL protocol helpers into a separate package
Fix tests and enable CI for PostgreSQL 11
Bug Fixes
Handle and ignore permission errors when attempting to read .pgpass
Fix decoding of fractional timestamps before Postgres epoch
* pkgsrc change: make USE_LANGUAGES empty.
=== 5.14.0 (2018-11-01)
* Drop defaulting the :port option to 5432 in the postgres adapter, so that
setting the :service option in :driver_options works (jeremyevans) (#1558)
* Do not cache values for columns without parseable defaults when using :cache
option in defaults_setter plugin (jeremyevans)
* Emulate NULLS FIRST/LAST ordering on databases that do not natively support
it (jeremyevans)
* Do not modify boolean expressions created from string or array if string or
array is modified (jeremyevans)
* Make roots and roots_dataset dataset methods instead of class methods in the
tree plugin (JelF) (#1554)
* Do not cache dataset SQL if dataset uses subquery that cannot cache SQL
(jeremyevans)
* Make Model#=== work correctly for models with composite primary keys
(jeremyevans)
* Add Model#pk_equal? as a more descriptive name for Model#=== (AlexWayfer)
(#1550)
* Do not push down expression inversion in cases where it may result in
incorrect behavior (e.g. ANY/SOME/ALL operators) (jeremyevans) (#1549)
1.0.2:
[bug] [autogenerate] The system=True flag on Column, used primarily in conjunction with the Postgresql “xmin” column, now renders within the autogenerate render process, allowing the column to be excluded from DDL. Additionally, adding a system=True column to a model will produce no autogenerate diff as this column is implicitly present in the database.
[bug] [mssql] Fixed issue where usage of the SQL Server mssql_include option within a Operations.create_index() would raise a KeyError, as the additional column(s) need to be added to the table object used by the construct internally.
Upstream changes:
Changes in DBI 1.642 - 28th October 2018
Fix '.' in @INC for proxy test under parallel load
thanks to H.Merijn Brand.
Fix driver-related croak() in DBI->connect to report the original DSN
thanks to maxatome #67
Introduce a new statement DBI method $sth->last_insert_id()
thanks to pali #64
Allow to call $dbh->last_insert_id() method without arguments
thanks to pali #64
Added a new XS API function variant dbd_db_do6()
thanks to Pali #61
Fix misprints in doc of selectall_hashref
thanks to Perlover #69
Remove outdated links to DBI related training resources. RT#125999
In all cases they were trying to use variables that aren't used in the build
process, the sqlite include paths had typos, and sqlite3 was trying to use
sqlite2's buildlink3.mk
repmgr 4.2 is a major release, with the main new feature being the ability to pause repmgrd, e.g. during planned maintenance operations. Various other usability enhancements and a couple of bug fixes are also included.
PostgreSQL 11 provides users with improvements to overall performance of the database system, with specific enhancements associated with very large databases and high computational workloads. Further, PostgreSQL 11 makes significant improvements to the table partitioning system, adds support for stored procedures capable of transaction management, improves query parallelism and adds parallelized data definition capabilities, and introduces just-in-time (JIT) compilation for accelerating the execution of expressions in queries.
Released 3.1.0:
This release brings two minor API changes:
- Long-deprecated functions ldap.open() and ldap.init() are removed
- LDAPObject.compare_s() and compare_ext_s return bool instead of 0 or 1
All changes since 3.0.0:
Lib/
* Remove long deprecated functions ldap.open() and ldap.init()
* LDAPObject.compare_s() and LDAPObject.compare_ext_s() now return a bool
instead of 1 or 0.
* Make iteration over cidict yield same values as keys()
* Fail if pyasn1 is not installed
* Fix parsing of PPolicyControl ASN.1 structure
* Use items() when appropriate in dict iteration
* Add support for tracing LDAP calls. Tracing can now be enabled with
the env var PYTHON_LDAP_TRACE_LEVEL and redirected to a file with
PYTHON_LDAP_TRACE_FILE.
(This is mainly intended for debugging and internal testing; the
configuration or output may change in future versions.)
Modules/
* Fix ref counting bug in LDAPmessage_to_python
Doc/
* Remove warning about unreleased version
* Doc: Replace Mac OS X -> macOS
Tests/
* Add tests and coverage for tracing
* Disable warnings-as-errors for Python 3.4
* Fix assertTrue to assertEqual
* Mark several test values as bytes
Lib/slapdtest/
* Fix error message for missing commands
* Make SlapdObject a context manager
* Disable SASL external when missing SASL support
* Make SlapdObject.root_dn a property
* In SlapdObject, build include directives dynamically
* Move import statements to top level
Code style:
* Add Makefile rules for automatic formatting of C and Python code
* Reformat and indent all C files
* Trim white space throughout the project
Infrastructure:
* Add py3-trace tox environment to Travis CI config
* Add new Pytest cache directory to gitignore
General:
* Update all pypi.python.org URLs to pypi.org
Released 3.0.0:
Notable changes since 2.4.45 (please see detailed logs below):
* Python 3 support and bytes_mode
see: https://python-ldap.readthedocs.io/en/latest/bytes_mode.html
* The module ldap.async is renamed to ldap.asyncsearch
* New dependencies: pyasn1, pyasn1_modules
* Dropped support for Python 2.6 and 3.3
1.0.1:
Fixed an issue where revision descriptions were essentially being formatted twice. Any revision description that contained characters like %, writing output to stdout will fail because the call to config.print_stdout attempted to format any additional args passed to the function. This fix now only applies string formatting if any args are provided along with the output text.
Fixed issue where removed method union_update() was used when a customized MigrationScript instance included entries in the .imports data member, raising an AttributeError.
=== 5.13.0 (2018-10-01)
* Support :single_value type in prepared statements (rintaun) (#1547)
* Make Model.all in static_cache plugin accept a block (AlexWayfer, jeremyevans) (#1543)
* Add constant_sql_override extension for overriding SQL used for constants such as CURRENT_TIMESTAMP (celsworth) (#1538)
* Do not cache from_self datasets if options are given (jeremyevans)
3.7.1:
New features
* Added table_settings model Meta option, which should be a list of strings
specifying additional options for CREATE TABLE, which are placed *after*
the closing parentheses.
* Allow specification of on_update and on_delete behavior for many-to-many
relationships when using ManyToManyField.
Bugfixes
* Fixed incorrect SQL generation for Postgresql ON CONFLICT clause when the
conflict_target is a named constraint (rather than an index expression). This
introduces a new keyword-argument to the on_conflict() method:
conflict_constraint, which is currently only supported by Postgresql.
* Fixed incorrect SQL for sub-selects used on the right side of IN
expressions. Previously the query would be assigned an alias, even though an
alias was not needed.
* Fixed incorrect SQL generation for Model indexes which contain SQL functions
as indexed columns.
* Fixed bug in the generation of special queries used to perform operations on
SQLite FTS5 virtual tables.
* Allow frozenset to be correctly parameterized as a list of values.
* Allow multi-value INSERT queries to specify columns as a list of strings.
* Support CROSS JOIN for model select queries.
Changes in Version 3.7.1
Version 3.7.1 fixes a few issues discovered since the release of 3.7.0.
Calling :meth:~pymongo.database.Database.authenticate more than once with the same credentials results in OperationFailure.
Authentication fails when SCRAM-SHA-1 is used to authenticate users with only MONGODB-CR credentials.
A millisecond rounding problem when decoding datetimes in the pure Python BSON decoder on 32 bit systems and AWS lambda.
Issues Resolved
Changes in Version 3.7.0
Version 3.7 adds support for MongoDB 4.0. Highlights include:
Support for single replica set multi-document ACID transactions. See :ref:transactions-ref.
Support for wire protocol compression. See the :meth:~pymongo.mongo_client.MongoClient documentation for details.
Support for Python 3.7.
New count methods, :meth:~pymongo.collection.Collection.count_documents and :meth:~pymongo.collection.Collection.estimated_document_count. :meth:~pymongo.collection.Collection.count_documents is always accurate when used with MongoDB 3.6+, or when used with older standalone or replica set deployments. With older sharded clusters is it always accurate when used with Primary read preference. It can also be used in a transaction, unlike the now deprecated :meth:pymongo.collection.Collection.count and :meth:pymongo.cursor.Cursor.count methods.
Support for watching changes on all collections in a database using the new :meth:pymongo.database.Database.watch method.
Support for watching changes on all collections in all databases using the new :meth:pymongo.mongo_client.MongoClient.watch method.
Support for watching changes starting at a user provided timestamp using the new start_at_operation_time parameter for the watch() helpers.
Better support for using PyMongo in a FIPS 140-2 environment. Specifically, the following features and changes allow PyMongo to function when MD5 support is disabled in OpenSSL by the FIPS Object Module:
Support for the :ref:SCRAM-SHA-256 <scram_sha_256> authentication mechanism. The :ref:GSSAPI <gssapi>, :ref:PLAIN <sasl_plain>, and :ref:MONGODB-X509 <mongodb_x509> mechanisms can also be used to avoid issues with OpenSSL in FIPS environments.
MD5 checksums are now optional in GridFS. See the disable_md5 option of :class:~gridfs.GridFS and :class:~gridfs.GridFSBucket.
:class:~bson.objectid.ObjectId machine bytes are now hashed using FNV-1a instead of MD5.
The :meth:~pymongo.database.Database.list_collection_names and :meth:~pymongo.database.Database.collection_names methods use the nameOnly option when supported by MongoDB.
The :meth:pymongo.collection.Collection.watch method now returns an instance of the :class:~pymongo.change_stream.CollectionChangeStream class which is a subclass of :class:~pymongo.change_stream.ChangeStream.
SCRAM client and server keys are cached for improved performance, following RFC 5802.
If not specified, the authSource for the :ref:PLAIN <sasl_plain> authentication mechanism defaults to $external.
wtimeoutMS is once again supported as a URI option.
When using unacknowledged write concern and connected to MongoDB server version 3.6 or greater, the bypass_document_validation option is now supported in the following write helpers: :meth:~pymongo.collection.Collection.insert_one, :meth:~pymongo.collection.Collection.replace_one, :meth:~pymongo.collection.Collection.update_one, :meth:~pymongo.collection.Collection.update_many.
Deprecations:
Deprecated :meth:pymongo.collection.Collection.count and :meth:pymongo.cursor.Cursor.count. These two methods use the count command and may or may not be accurate, depending on the options used and connected MongoDB topology. Use :meth:~pymongo.collection.Collection.count_documents instead.
Deprecated the snapshot option of :meth:~pymongo.collection.Collection.find and :meth:~pymongo.collection.Collection.find_one. The option was deprecated in MongoDB 3.6 and removed in MongoDB 4.0.
Deprecated the max_scan option of :meth:~pymongo.collection.Collection.find and :meth:~pymongo.collection.Collection.find_one. The option was deprecated in MongoDB 4.0. Use maxTimeMS instead.
Deprecated :meth:~pymongo.mongo_client.MongoClient.close_cursor. Use :meth:~pymongo.cursor.Cursor.close instead.
Deprecated :meth:~pymongo.mongo_client.MongoClient.database_names. Use :meth:~pymongo.mongo_client.MongoClient.list_database_names instead.
Deprecated :meth:~pymongo.database.Database.collection_names. Use :meth:~pymongo.database.Database.list_collection_names instead.
Deprecated :meth:~pymongo.collection.Collection.parallel_scan. MongoDB 4.2 will remove the parallelCollectionScan command.
Unavoidable breaking changes:
Commands that fail with server error codes 10107, 13435, 13436, 11600, 11602, 189, 91 (NotMaster, NotMasterNoSlaveOk, NotMasterOrSecondary, InterruptedAtShutdown, InterruptedDueToReplStateChange, PrimarySteppedDown, ShutdownInProgress respectively) now always raise :class:~pymongo.errors.NotMasterError instead of :class:~pymongo.errors.OperationFailure.
:meth:~pymongo.collection.Collection.parallel_scan no longer uses an implicit session. Explicit sessions are still supported.
Unacknowledged writes (w=0) with an explicit session parameter now raise a client side error. Since PyMongo does not wait for a response for an unacknowledged write, two unacknowledged writes run serially by the client may be executed simultaneously on the server. However, the server requires a single session must not be used simultaneously by more than one operation. Therefore explicit sessions cannot support unacknowledged writes. Unacknowledged writes without a session parameter are still supported.
repmgr 4.1.1 contains a number of usability enhancements and bug fixes.
We recommend upgrading to this version as soon as possible. This release can be installed as a simple package upgrade from repmgr 4.0 ~ 4.1.0; repmgrd (if running) should be restarted. See Upgrading repmgr for more details.
- Fixed an issue where Sqitch would sometimes truncate the registry
version number fetched from MySQL, most likely because the Perl runtime
was using 32-bit integers. Fixed by casting the version to CHAR in the
query, before Perl ever see it. Thanks to Allen Godfrey David for the
report.
- Added the Snowflake engine.
- Now require URI::db v0.19 for Snowflake URI support.
- The Vertica and Exasol engines now require DBD::ODBC 1.59, which fixes
a Unicode issue. Thanks to Martin J. Evans for the quick fix
(perl5-dbi/DBD-ODBC#8)!
- Added the `bundle` command to `./Build`. This command installs only the
runtime dependencies into the `--install_base` directory. This should
simplify building distribution packages, binary installs, Docker images,
and the like.
- Added the `--with` option to `./Build`, to require that Sqitch be build
with the specified engine. Pass once for each engine. See the README
for the list of supported engines.
- Added a check for Hash::Merge 0.298 during installation, since that
release has a fatal bug that breaks Sqitch. If it's installed, the
installer will issue a warning and added v0.299 to its list of
dependencies. Thanks to Slaven Rezić for the suggestion (#377).
- Fixed the PostgreSQL engine so it properly checks the `psql` client
version to determine whether or not the `:registry` variable is
supported. Previously it relied on the server version, which would fail
if the server version was greater than 8.4 but the `psql` client was
not. Thanks to multiple folks reporting issues with registry names and
search paths (#314).
- The plan parser will now complain if a change specifies a duplicate
dependency. This should be less confusing than a database unique
violation. Thanks to Eric Bréchemier for the suggestion (#344).
- Moved the project to its own GitHub organization:
https://github.com/sqitchers.
- Fixed likely cause of Oracle buffer allocation bug when selecting
timestamp strings. Thanks to @johannwilfling for the bug report and to
@nmaqsudov for the analysis and solution (#316).
- Changed the way the conninfo string is passed to `psql` to eliminate
argument ordering problems on Windows. Thanks to @highlowhighlow for
the report (#384).
- Added `$SQITCH_USERNAME` environment variable to complement
`$SQITCH_PASSWORD`. It can be used to override the username set in
for a target.
- Added the `$SQITCH_FULLNAME` and `$SQITCH_EMAIL` environment
variables, which take precedence over the values of the `user.name` and
`user.email` config variables.
- Added the `$SQITCH_ORIG_SYSUSER`, `$SQITCH_ORIG_FULLNAME` and
`$SQITCH_ORIG_EMAIL` environment variables. For those situations when
Sqitch attempts to read OS data for user information, These new
environment variables override these system-derived values. The
intention is to allow an originating host to set these values on
another host where Sqitch will actually execute.
- Fixed an error triggered by whitespace trailing an engine name in the
configuration. Thanks to Jeremy Simkins for the report (#400).
- Refactored the engine-specific username and password attributes to
support a consistent search for values. Sqitch searches first for one
of its own environment variables (`$SQITCH_USERNAME` and
`$SQITCH_PASSSWORD`), then the target URI, and finally any engine-
specific values, which might include additional environment variables,
configuration files, the system user, or none at all.
- Database engines that implicitly relied on username and/or password
environment variables or on the system username now explicitly rely on
them. These include the Firebird, MySQL, Postgres, and Vertical
engines. This change should exhibit no change in the behavior of these
engines.
- Added support for the `$MYSQL_HOST` and `$MYSQL_TCP_PORT` environment
variables to the MySQL engine.
- Documented all supported engine-specific environment variables in the
sqitch-environment guide.
- Renamed the sqitch-passwords guide to sqitch-authentication and added a
section on username specification.
- Updated all URLs to use the https scheme. Only exceptions are tt2.org,
which doesn't support TLS, and conferences.embarcadero.com, which
appears to be down.
pkgsrc changes:
- Add options: mysql odbc oracle pgsql sqlite
SQLite Release 3.25.2:
Add the PRAGMA legacy_alter_table=ON command that causes the "ALTER TABLE RENAME" command to behave as it did in SQLite versions 3.24.0 and earlier: references to the renamed table inside the bodies of triggers and views are not updated. This new pragma provides a compatibility work around for older programs that expected the older, wonky behavior of ALTER TABLE RENAME.
Fix a problem with the new window functions implementation that caused a malfunction when complicated expressions involving window functions were used inside of a view.
Fixes for various other compiler warnings and minor problems associated with obscure configurations.
(Upstream also has news for beta and rc, and it's not clear if those
are additional or folded into the following.)
PostGIS 2.5.0
2018/09/23
WARNING: If compiling with PostgreSQL+JIT, LLVM >= 6 is required
Supported PostgreSQL versions for this release are:
PostgreSQL 9.4 - PostgreSQL 12 (in development)
GEOS >= 3.5
* New Features *
- #1847, spgist 2d and 3d support for PG 11+
(Esteban Zimányi and Arthur Lesuisse from Université Libre de Bruxelles (ULB),
Darafei Praliaskouski)
- #4056, ST_FilterByM (Nicklas Avén)
- #4050, ST_ChaikinSmoothing (Nicklas Avén)
- #3989, ST_Buffer single sided option (Stephen Knox)
- #3876, ST_Angle function (Rémi Cura)
- #3564, ST_LineInterpolatePoints (Dan Baston)
- #3896, PostGIS_Extensions_Upgrade() (Regina Obe)
- #3913, Upgrade when creating extension from unpackaged (Sandro Santilli)
- #2256, _postgis_index_extent() for extent from index (Paul Ramsey)
- #3176, Add ST_OrientedEnvelope (Dan Baston)
- #4029, Add ST_QuantizeCoordinates (Dan Baston)
- #4063, Optional false origin point for ST_Scale (Paul Ramsey)
- #4082, Add ST_BandFileSize and ST_BandFileTimestamp,
extend ST_BandMetadata (Even Rouault)
- #2597, Add ST_Grayscale (Bborie Park)
- #4007, Add ST_SetBandPath (Bborie Park)
- #4008, Add ST_SetBandIndex (Bborie Park)
* Breaking Changes *
- #4054, ST_SimplifyVW changed from > tolerance to >= tolerance
- #3885, version number removed from address_standardize lib file
(Regina Obe)
- #3893, raster support functions can only be loaded in the same schema
with core PostGIS functions. (Sandro Santilli)
- #4035, remove dummy pgis_abs type from aggregate/collect routines.
(Paul Ramsey)
- #4069, drop support for GEOS < 3.5 and PostgreSQL < 9.4 (Regina Obe)
- #4082, ST_BandMetaData extended to include filesize, timestamp (Even Rouault)
* Enhancements and Fixes*
- Upgrade scripts from multiple old versions are now all symlinks
to a single upgrade script (Sandro Santilli)
- #3944, Update to EPSG register v9.2 (Even Rouault)
- #3927, Parallel implementation of ST_AsMVT
- #3925, Simplify geometry using map grid cell size before generating MVT
- #3899, BTree sort order is now defined on collections of EMPTY and
same-prefix geometries (Darafei Praliaskouski)
- #3864, Performance improvement for sorting POINT geometries
(Darafei Praliaskouski)
- #3900, GCC warnings fixed, make -j is now working (Darafei Praliaskouski)
- TopoGeo_addLinestring robustness improvements (Sandro Santilli)
#1855, #1946, #3718, #3838
- #3234, Do not accept EMPTY points as topology nodes (Sandro Santilli)
- #1014, Hashable geometry, allowing direct use in CTE signatures (Paul Ramsey)
- #3097, Really allow MULTILINESTRING blades in ST_Split() (Paul Ramsey)
- #3942, geojson: Do not include private header for json-c >= 0.13 (Björn Esser)
- #3954, ST_GeometricMedian now supports point weights (Darafei Praliaskouski)
- #3965, #3971, #3977, #4071 ST_ClusterKMeans rewritten: better initialization,
faster convergence, K=2 even faster (Darafei Praliaskouski)
- #3982, ST_AsEncodedPolyline supports LINESTRING EMPTY and MULTIPOINT EMPTY
(Darafei Praliaskouski)
- #3986, ST_AsText now has second argument to limit decimal digits
(Marc Ducobu, Darafei Praliaskouski)
- #4020, Casting from box3d to geometry now returns correctly connected
PolyhedralSurface (Matthias Bay)
- #2508, ST_OffsetCurve now works with collections (Darafei Praliaskouski)
- #4006, ST_GeomFromGeoJSON support for json and jsonb as input
(Paul Ramsey, Regina Obe)
- #4038, ST_Subdivide now selects pivot for geometry split that reuses input
vertices. (Darafei Praliaskouski)
- #4025, #4032 Fixed precision issue in ST_ClosestPointOfApproach,
ST_DistanceCPA, and ST_CPAWithin (Paul Ramsey, Darafei Praliaskouski)
- #4076, Reduce use of GEOS in topology implementation (Björn Harrtell)
- #4080, Add external raster band index to ST_BandMetaData
- Add Raster Tips section to Documentation for information about
Raster behavior (e.g. Out-DB performance, maximum open files)
- #4084: Fixed wrong code-comment regarding front/back of BOX3D (Matthias Bay)
- #4060, #4094, PostgreSQL JIT support (Raúl Marín, Laurenz Albe)
- #3960, ST_Centroid now uses lwgeom_centroid (Darafei Praliaskouski)
- #4027, Remove duplicated code in lwgeom_geos (Darafei Praliaskouski,
Daniel Baston)
- #4115, Fix a bug that created MVTs with incorrect property values under
parallel plans (Raúl Marín).
- #4120, ST_AsMVTGeom: Clip using tile coordinates (Raúl Marín).
- #4132, ST_Intersection on Raster now works without throwing TopologyException
(Vinícius A.B. Schmidt, Darafei Praliaskouski)
- #4177, #4180 Support for PostgreSQL 12 dev branch (Laurenz Albe, Raúl Marín)
- #4156, ST_ChaikinSmoothing: also smooth start/end point of
polygon by default (Darafei Praliaskouski)
Currently, this package builds with all versions of postgreqsl in
pkgsrc, and it is likely to do so in the future, so there is no need
for an explicit list.
== v1.1.3 [2018-09-06] Michael Granger <ged@FaerieMUD.org>
- Revert opimization that was sometimes causing EBADF in rb_wait_for_single_fd().
== v1.1.2 [2018-08-28] Michael Granger <ged@FaerieMUD.org>
- Don't generate aliases for JOHAB encoding.
This avoids linking to deprecated/private function rb_enc(db)_alias().
== v1.1.1 [2018-08-27] Michael Granger <ged@FaerieMUD.org>
- Reduce deprecation warnings to only one message per deprecation.
== v1.1.0 [2018-08-24] Michael Granger <ged@FaerieMUD.org>
Deprecated (disable warnings per PG_SKIP_DEPRECATION_WARNING=1):
- Forwarding conn.exec to conn.exec_params is deprecated.
- Forwarding conn.exec_params to conn.exec is deprecated.
- Forwarding conn.async_exec to conn.async_exec_params.
- Forwarding conn.send_query to conn.send_query_params is deprecated.
- Forwarding conn.async_exec_params to conn.async_exec is deprecated.
PG::Connection enhancements:
- Provide PG::Connection#sync_* and PG::Connection#async_* query methods for explicit calling syncronous or asynchronous libpq API.
- Make PG::Connection#exec and siblings switchable between sync and async API per PG::Connection.async_api= and change the default to async flavors.
- Add async flavors of exec_params, prepare, exec_prepared, describe_prepared and describe_portal.
They are identical to their syncronous counterpart, but make use of PostgreSQL's async API.
- Replace `rb_thread_fd_select()` by faster `rb_wait_for_single_fd()` in `conn.block` and `conn.async_exec` .
- Add PG::Connection#discard_results .
- Raise an ArgumentError for strings containing zero bytes by #escape, #escape_literal, #escape_identifier, #quote_ident and PG::TextEncoder::Identifier. These methods previously truncated strings.
Result retrieval enhancements:
- Add PG::Result#tuple_values to retrieve all field values of a row as array.
- Add PG::Tuple, PG::Result#tuple and PG::Result#stream_each_tuple .
PG::Tuple offers a way to lazy cast result values.
- Estimate PG::Result size allocated by libpq and notify the garbage collector about it when running on Ruby-2.4 or newer.
- Make the estimated PG::Result size available to ObjectSpace.memsize_of(result) .
Type cast enhancements:
- Replace Ruby code by a faster C implementation of the SimpleDecoder's timestamp decode functions. github #20
- Interpret years with up to 7 digists and BC dates by timestamp decoder.
- Add text timestamp decoders for UTC vs. local timezone variations.
- Add text timestamp encoders for UTC timezone.
- Add decoders for binary timestamps: PG::BinaryDecoder::Timestamp and variations.
- Add PG::Coder#flags accessor to allow modifications of de- respectively encoder behaviour.
- Add a flag to raise TypeError for invalid input values to PG::TextDecoder::Array .
- Add a text decoder for inet/cidr written in C.
- Add a numeric decoder written in C.
- Ensure input text is zero terminated for text format in PG::Coder#decode .
Source code enhancements:
- Fix headers and permission bits of various repository files.
Bugfixes:
- Properly decode array with prepended dimensions. #272
For now dimension decorations are ignored, but a correct Array is returned.
- Array-Decoder: Avoid leaking memory when an Exception is raised while parsing. Fixes#279
0.5.2 (2018/07/06)
New Features
None
Bug Fixes
* Bounds-check the encoding translation array from MySQL to Ruby encodings.
Changes
* Add more encoding translations for MySQL 8 compatibility.
Upstream changes:
2018-09-15 Daniël van Eeden, Patrick Galbraith, Michiel Beijen,
DBI/DBD community (4.048)
* Fix corrupted META.json so cpan installations work as expected.
https://github.com/perl5-dbi/DBD-mysql/issues/263
0.33.5:
Added optional attr parameter for locale calleble in TranslationHybrid
Fixed an issue with PasswordType so that it is compatible with older versions of passlib
0.33.4:
Made PasswordType use hash function instead of deprecated encrypt function
Release 1.2.12 includes a series of mostly minor bugfixes, as well as one critical issue allowing the recently released version 7.0 of the cx_Oracle DBAPI to work correctly.
SQLite Release 3.25.1:
Extra sanity checking added to ALTER TABLE in the 3.25.0 release sometimes raises a false-positive when the table being modified has a trigger that updates a virtual table. The false-positive caused the ALTER TABLE to rollback, thus leaving the schema unchanged.
The fix in the 3.25.0 release for the endless-loop in the byte-code associated with the ORDER BY LIMIT optimization did not work for some queries involving window functions. An additional correction is required.
SQLite Release 3.25.0:
Add support for window functions
Enhancements the ALTER TABLE command:
- Add support for renaming columns within a table using ALTER TABLE table RENAME COLUMN oldname TO newname.
- Fix table rename feature so that it also updates references to the renamed table in triggers and views.
Query optimizer improvements:
- Avoid unnecessary loads of columns in an aggregate query that are not within an aggregate function and that are not part of the GROUP BY clause.
- The IN-early-out optimization: When doing a look-up on a multi-column index and an IN operator is used on a column other than the left-most column, then if no rows match against the first IN value, check to make sure there exist rows that match the columns to the right before continuing with the next IN value.
- Use the transitive property to try to propagate constant values within the WHERE clause. For example, convert "a=99 AND b=a" into "a=99 AND b=99".
Use a separate mutex on every inode in the unix VFS, rather than a single mutex shared among them all, for slightly better concurrency in multi-threaded environments.
Enhance the PRAGMA integrity_check command for improved detection of problems on the page freelist.
Output infinity as 1e999 in the ".dump" command of the command-line shell.
Added the SQLITE_FCNTL_DATA_VERSION file-control.
Added the Geopoly module
Bug fixes:
The ORDER BY LIMIT optimization might have caused an infinite loop in the byte code of the prepared statement under very obscure circumstances, due to a confluence of minor defects in the query optimizer.
On an UPSERT when the order of constraint checks is rearranged, ensure that the affinity transformations on the inserted content occur before any of the constraint checks.
Avoid using a prepared statement for ".stats on" command of the CLI after it has been closed by the ".eqp full" logicc.
The LIKE optimization was generating incorrect byte-code and hence getting the wrong answer if the left-hand operand has numeric affinity and the right-hand-side pattern is '/%' or if the pattern begins with the ESCAPE character.
v3.0.12 released 2018-09-13
- Fixed bug PT-1611: pt-archiver fails with UTF-8 chars
- Fixed bug PT-1574: pt-online-schema-change fails on UK and NULLs
- Fixed bug PT-1572: Better usage of ENUM fields in keys in
NibbleIterator
- Fixed bug PT-1422: pt-mysql-summary may get stuck when Time: NULL
in processlist
- Improvement PT-1321: Add required MySQL privileges to
pt-online-schema-change documentation
v3.0.11 released 2018-07-06
- Improvement PT-1571 : Improved hostname recognition in
pt-secure-collect
- Fixed bug PT-1570 : pt-archiver fails to detect columns with the
word GENERATED as part of the comment
- Improvement PT-1569 : Disabled --alter-foreign-keys-method=drop_swap
in pt-osc
- Fixed bug PT-1563 : Fixed pt-show-grants for MySQL 5.6
- Improvement PT-1562 : pt-mysql-summary: Fix mysqld command for
Travis
- Fixed bug PT-1551 : pt-table-checksum fails on MySQL 8.0.11
- Improvement PT-242 : (pt-stalk) Include SHOW SLAVE STATUS on 5.7
- Fixed bug PT-241 : (pt-stalk) Slave queries doesn't run on 5.7
v3.0.10 released 2018-05-21
- Fixed bug PT-1556 : pt-table-checksum 3.0.9 doesn't change
binlog_format to statement anymore
- Improvement PT-1546 : Improved support of MySQL 8 roles
- Improvement PT-1543 : Encrypted table status query causes high load
over multiple minutes
- Improvement PT-1536 : Add info about encrypted tablespaces in
pt-mysql-summary
- Feature PT-131 : Make pt-table checksum to disable QRT plugin
- Feature PT-118 : pt-table-checksum report the number of rows of
difference between master and slave
v3.0.9 released 2018-04-17
- Feature PT-1530 : Add support for encryption status to
mysql-summary
- Feature PT-1526 : Add ndb status to pt-mysql-summary
- Feature PT-1525 : Added support for MySQL 8 roles into
pt-mysql-summary
- Feature PT-1509 : Only set binlog_format when necessary
- Feature PT-1508 : Adding --read-only-interval flag, and
read-only check on wake-up
- Improvement PT-1507 : pt-summary does not reliably read in the
transparent huge pages setting
- New tool PT-1501 : pt-secure-collect - New tool to collect and
sanitize pt-tools outputs
- Feature PT-243 : Adding --max-hostname-length and
--max-line-length to pt-query-digest
v3.0.8 released 2018-03-13
- Feature PT-1500 : add --secure-slowlog option to pt-query digest
v3.0.7 released 2018-03-01
- Fixed Bug PT-244 : pt-online-schema-change --data-dir option
broken for partitioned table
- Feature PT-633 : Added --mysql-only option to pt-stalk for RDS
- Fixed bug PT-1256: pt-table-sync does not use the character set
for the table it is synchronizing
- Fixed bug PT-1455: pt-osc is stuck when the table that is being
altered is filtered out in the slave
- Fixed bug PT-1485: pt-mysql-summary has broken Security section
in versions bigger then 5.6
- Fixed bug PMM-1905: Explain fails if encounters negative
"ntoreturn"
=== 5.12.0 (2018-08-31)
* Make constraint_validations extension respect Database#constraint_validations_table setting (jeremyevans)
* Make Sequel.extension load files from gems (jeremyevans)
* Map clob prepared statement argument type to OCI8::CLOB in the oracle adapter (pipistrellka) (#1534)
* Make Model.load_cache public in the static_cache plugin (AlexWayfer) (#1533)
* Enable support for NOWAIT on MariaDB 10.3+ (jeremyevans)
* Enable support for INTERSECT and EXCEPT on MariaDB 10.3+ (jeremyevans)
* Make tactical_eager_loading plugin handle automatic eager loading for associated objects created by eager_graph (jeremyevans)
* Cache eager_graph loader to speed up subsequent loads from the same dataset (jeremyevans)
* Add caller_logging database extension to log callers before queries, useful during development (jeremyevans)
* Add Database#call_procedure in the postgres adapter for calling PostgreSQL 11+ procedures (jeremyevans)
* Add eager_graph_eager plugin for chaining eager association loads after eager_graph association loads (jeremyevans)
* Support using Dataset#eager_graph in eager load callback for associations using join tables (jeremyevans)
* Make Dataset#graph handle existing selections without determinable aliases by forcing a subselect (jeremyevans)
* Freeze prepared statement arguments before returning the prepared statement (jeremyevans)
* Refactor emulated prepared statement internals to use a placeholder literalizer (jeremyevans)
=== 5.11.0 (2018-08-01)
* Fix using the jdbc/sqlserver adapter on JRuby 9.2+ (jeremyevans)
* Fix dumping schema for numeric/decimal columns with default values, broken starting in 5.9.0 (jeremyevans)
* Recognize additional check constraint violations on certain versions of SQLite (jeremyevans)
* Use cached model instances for Model.first calls without an argument or with a single integer argument in the static_cache plugin (AlexWayfer) (#1529)
* Support ON CONFLICT clause for INSERT on SQLite 3.24+ (jeremyevans)
* Support Dataset#window for WINDOW clause on MySQL 8 and SQLAnywhere (jeremyevans)
* Enable window function support on SQLAnywhere (jeremyevans)
* Support using a hash as a window function :frame option value, with support for ROWS/RANGE/GROUPS, numeric offsets, and EXCLUDE (jeremyevans)
* Allow using set_column_default with a nil value to remove the default value for a column on MySQL when the column is NOT NULL (jeremyevans)
=== 5.10.0 (2018-07-01)
* Use input type casts when using the postgres adapter with pg 0.18+ to reduce string allocations for some primitive types used as prepared statement arguments (jeremyevans)
* Assume local time if database timezone not specified when handling BC timestamps on JRuby 9.2.0.0 in the pg_extended_date_support extension (jeremyevans)
* Fix parsing of timetz types in the jdbc/postgresql adapter (jeremyevans)
* Make SQLTime.parse respect SQLTime.date and Sequel.application_timezone (jeremyevans)
* Add :top as an option in the list plugin (celsworth) (#1526)
* Fix Model#{ancestors,descendants,self_and_siblings} in the tree plugin when custom parent/children association names are used (jeremyevans) (#1525)
* Treat read-only mode error as disconnect error on mysql and mysql2 adapters, for better behavior on AWS Aurora cluster (jeremyevans)
* Don't use cached placeholder literalizers for in Dataset#{first,where_all,where_each,where_single_value} if argument is empty array or hash (jeremyevans)
* Support :tablespace option when adding tables, indexes, and materialized views on PostgreSQL (jeremyevans)
* Support :include option for indexes on PostgreSQL 11+ (jeremyevans)
* Allow the use of IN/NOT IN operators with set returning functions for Sequel::Model datasets (jeremyevans)
* Make many_to_pg_array associations in the pg_array_associations plugin work on PostgreSQL 11 (jeremyevans)
* Only load strscan library in pg_array extension if it is needed (jeremyevans)
* Don't remove related many_to_one associations from cache when setting column value to existing value for model instances that have not been persisted (jeremyevans) (#1521)
* Support ruby 2.6+ endless ranges in the pg_range extension (jeremyevans)
* Support ruby 2.6+ endless ranges in filters, using just a >= operator for them (jeremyevans)
2018-09-08 Daniël van Eeden, Patrick Galbraith, DBI/DBD community (4.047)
* Add options needed for public key based security.
* Allow several spaces after LIMIT clause.
* Basic GTID tracking.
* Fix GCC 8.1 warnings
* Fix warning: unused variable ‘buffer_len’
* Fix warning about bind->is_null assignment with incompatible pointer type
* Get rid of warning about unused variable ssl_verify_set
* Fix space/tab issue which leads to misleading indentation
* Change spaces/tabs to get rid of GCC8 warning
2018-03-09 Patrick Galbraith, Michiel Beijen, DBI/DBD community (4.046_01)
* Updated documentation re. multithreading (Daniël van Eeden)
* Remove #IFDEFs for code detecting ancient DBI versions. The minimum
DBI version we require is version 1.609 from 2009!
* ChopBlanks should not trim binary fields (urcheon)
* Skipped test which failed on OpenBSD because Proc::ProcessTable does not
come with a 'size' attribute on this platform (glasswalk3r, pali)
* Improved test suite with regards to MySQL 8.0
* Improved macOS installation notes.
* Use Devel::CheckLib 1.09 or newer, fixes
https://github.com/perl5-dbi/DBD-mysql/issues/109
* Specify bigint as test dependency
* Add recommends and suggests tests dependencies (pali)
* Check only for libs via Devel::CheckLib in Makefile.PL (pali)
* Remove param --with-mysql from Makefile.PL documentation (pali)
* Check if specified Makefile.PL settings are working (pali)
Fixes https://rt.cpan.org/Ticket/Display.html?id=119902
* Remember mysql_config value for Makefile.PL (pali)
* Locate MySQL libs using Devel::CheckLib (pali)
* Added a fix for 30insertfetch failure when using server-side prepared
statements. The stmt was being freed for DML statements before
the handle attribute was read, mysql_info was reading back nulls
3.7.0:
Backwards-incompatible changes
* Pool database close_all() method renamed to close_idle() to better
reflect the actual behavior.
* Databases will now raise InterfaceError when connect() or close() are
called on an uninitialized, deferred database object.
New features
* Add methods to the migrations extension to support adding and dropping table
constraints.
* Add Model.bulk_create() method for bulk-inserting unsaved model instances.
* Add close_stale() method to the connection pool to support closing stale
connections.
* The FlaskDB class in playhouse.flask_utils now accepts a model_class
parameter, which can be used to specify a custom base-class for models.
Bugfixes
* Parentheses were not added to subqueries used in function calls with more
than one argument.
* Fixed bug when attempting to serialize many-to-many fields which were created
initially with a DeferredThroughModel.
* Fixed bug when using the Postgres ArrayField with an array of BlobField.
* Allow Proxy databases to be used as a context-manager.
* Fixed bug where the APSW driver was referring to the SQLite version from the
standard library sqlite3 driver, rather than from apsw.
* Reflection library attempts to wrap server-side column defaults in quotation
marks if the column data-type is text/varchar.
* Missing import in migrations library, which would cause errors when
attempting to add indexes whose name exceeded 64 chars.
* When using the Postgres connection pool, ensure any open/pending transactions
are rolled-back when the connection is recycled.
* Even *more* changes to the setup.py script. In this case I've added a
helper function which will reliably determine if the SQLite3 extensions can
be built. This follows the approach taken by the Python YAML package.
6.4.0 release highlights
Analysis
- Option to index phrases on text fields
- Korean analysis tools
- Add multiplexing token filter
Machine learning
- Improve your machine learning results with custom rules
- The {ml} analytics can now detect specific change points in a time
series
Mappings
- alias field type
- _ignored meta field
Rank Eval API
- Expected Reciprocal Rank metric for Rank Eval API
Search
- Cross Cluster Search will no longer use dedicated master nodes as
gateway nodes
- Format option for doc_value fields
- Support second level of field collapse
Security
- Kerberos authentication support is now available
- {es} now offers a FIPS 140-2 compliant mode
6.3.0 release highlights
- SQL: This experimental feature enables users who are familiar with
SQL to use SQL statements to query {es} indices.
- Rollups: This experimental feature enables you to summarize and
store historical data so that is still available for analysis, but
consumes significantly less storage space.
- Java 10 Support
For full releases since 6.2.4 please see
https://www.elastic.co/guide/en/elasticsearch/reference/6.4/release-notes-6.3.1.htmlhttps://www.elastic.co/guide/en/elasticsearch/reference/6.4/release-notes-6.3.2.htmlhttps://www.elastic.co/guide/en/elasticsearch/reference/6.4/release-notes-6.3.0.htmlhttps://www.elastic.co/guide/en/elasticsearch/reference/6.4/release-notes-6.4.0.html
Features
--------
- Parse Virtual Keyspace Metadata
Bug Fixes
---------
- Tokenmap.get_replicas returns the wrong value if token coincides
with the end of the range
- Python Driver fails with "more than 255 arguments" python exception
when > 255 columns specified in query response
- Hang in
integration.standard.test_cluster.ClusterTests.test_set_keyspace_twice
- Asyncore reactors should use a global variable instead of a class
variable for the event loop
Other
-----
- Use global variable for libev loops so it can be subclassed
- Update SchemaParser for V4
- Bump Cython dependency version to 0.28
From Michael Moll via GH #29 ( https://github.com/NetBSD/pkgsrc/pull/29 )
v3.5.5
[CORE-2851] - includeAll tag with a relative path duplicates the database changes with an absolute and with a relative changelog
v3.5.4
[CORE-2851] - includeAll tag with a relative path duplicates the database changes with an absolute and with a relative changelog
[CORE-2863] - Issue with Spring boot 1.4.0 - 1.4.3
[CORE-2898] - includeAll broken in 3.5.1
[CORE-2948] - Changelog with includeAll will not find child changelogs in Spring Boot's executable JAR
[CORE-2978] - AddAutoIncrement on Postgres does not work when no schema is specified
[CORE-3123] - ResourceComparator is not applied for includeAll
[CORE-3139] - ClassLoaderResourceAccessor cannot read jar path resources from SpringLiquibase
[CORE-3015] - Oracle: diffChangeLog TIMESTAMP WITH LOCAL TIME ZONE correctly
1.842 14 July 2018
* Document the MaocOS build failures & how MacPort can work around th eissue.
# 125238
# 125585
# RT 133280
* Write all test db files into a directory created by File::Temp
Protects against any possible races if running a parallel build.
* #96357: DB_File destructor is not thread-safe
Added CLONE_SKIP to DB_File.pm and included the test db-threads.t from the patch.
Note - This only works with perl >= 5.8.7
2.2.7
- Fix warning with flex 2.6+
- Fix compile errors with PG11
- Fix bug in with regex in 'set add sequence' when
specifying the sequence as a regular expression.
It was not being escaped properly
- Add support to Slonik to specify the share direcotry
using the environment variable SLONY_SHARE_DIR
- Add slon config setting remote_listen_serializable_transactions
to use read committed instead of read-only-serializable deferable
transactions(default true)
- Add slon config setting enable_version_check to disable
the slony version check that ensures all nodes run the
same slony version (default true, version check enabled)
Redis 4.0.11:
Upgrade urgency HIGH: not critical but very important bugs fixed.
Dear users, this is just a bugfix release of Redis 4. All new work
is now focused on Redis 5, however we backported a number of bug fixes here:
* The disconnection time between the master and slave was reset in an
incorrect place, sometimes a good slave will not be able to failover
because it claims it was disconnected for too much time from the master.
* A replication bug, rare to trigger but non impossible, is in Redis for
years. It was lately discovered at Redis Labs and fixed by Oran Agra.
It may cause disconnections, desynchronizations and other issues.
* RANDOMKEY may go in infinite loop on rare situations. Now fixed.
* EXISTS now works in a more consistent way on slaves.
* Sentinel: backport of an option to deny a potential security problem
when the SENTINEL command is used to configure an arbitrary script
to execute.
5.7.23:
Functionality Added or Changed
Previously, for the --ssl-mode=VERIFY_IDENTITY or --ssl-verify-server-cert option, the client checked whether the host name that it used for connecting matched the Common Name value in the certificate but not the Subject Alternative Name value. Now, if the client uses OpenSSL 1.0.2 or higher, the client checks whether the host name matches either the Subject Alternative Name value or the Common Name value in the server certificate. Thanks to Daniël van Eeden for a patch on which this change was based.
Bugs Fixed
Important Change; Partitioning: After creating partitioned InnoDB tables with very long names, the table_name columns in the corresponding entries in the mysql.innodb_index_stats and mysql.innodb_table_stats system tables were truncated. To fix this issue, the length of the table_name column in each of these tables has been increased from 64 to 199 characters. In both cases, this is now the same as the lengths of these columns in MySQL 8.0.
InnoDB: The ngram full-text search parser permitted comma and period characters to be tokenized as words, which caused an inconsistency between boolean and natural language mode search results. Comma and period characters are no longer tokenized.
InnoDB: An I/O error returned by an fsync() operation is now treated as a hard error.
InnoDB: A schema mismatch error reported during an import tablespace operation failed to print mismatched table flags in a readable format.
InnoDB: A DDL operation failed to wait for a FULLTEXT index optimization operation to finish.
InnoDB: An unnecessary check for read-only transactions was removed from the trx_set_rw_mode() function. Thanks to Sandeep Sethia for the patch.
InnoDB: A DDL operation that added a foreign key constraint raised an assertion when it accessed a stale memory object that belonged to the parent table.
InnoDB: A DDL operation on a table with a FULLTEXT index during full-text index cache synchronization caused an assertion failure.
InnoDB: A failing assertion occurred after initiating a memcached get operation.
InnoDB: A corrupt index ID encountered during a foreign key check raised an assertion.
InnoDB: An internal deadlock during a DDL operation resulted in a long semaphore wait followed by a server exit.
InnoDB: A DDL operation encountered a serious error due to an invalid lock upgrade.
InnoDB: On a Windows 64-bit system, invalid buffer pool configuration values caused the server to exit on startup.
Partitioning: For a partitioned table, partition update time could be incorrect after rebuilding the table or restarting the server.
Partitioning: An extraneous row lock was imposed by an update to a partitioned InnoDB table.
Replication: The log messages generated when a member fails to join the group have been improved, for example when group_replication_group_name on the member joining the group does not match the seed's group_replication_group_name this is now described in the log message.
Replication: The ER_GRP_RPL_SQL_SERVICE_FAILED_TO_RUN_SQL_QUERY error was being logged incorrectly.
Replication: The use of replication filters or binary log filters can cause issues when they are applied to tables that are updated with XA transactions. Filtering of tables could cause an XA transaction to be empty on a replication slave, and empty XA transactions are not supported. Also, with the settings master_info_repository=TABLE and relay_log_info_repository=TABLE on a replication slave, which became the defaults in MySQL 8.0, the internal state of the data engine transaction is changed following a filtered XA transaction, and can become inconsistent with the replication transaction context state.
Due to these issues, the use of replication filters or binary log filters in combination with XA transactions is not supported. This fix adds the new error ER_XA_REPLICATION_FILTERS, which is logged whenever an XA transaction is impacted by a replication filter, whether or not the transaction was empty as a result. If the transaction is not empty, the replication slave is able to continue running, but you should take steps to discontinue the use of replication filters with XA transactions in order to avoid potential issues. If the transaction is empty, the replication slave stops. In that event, the replication slave might be in an undetermined state in which the consistency of the replication process might be compromised. In particular, the gtid_executed set on a slave of the slave might be inconsistent with that on the master. To resolve this situation, isolate the master and stop all replication, then check GTID consistency across the replication topology. Undo the XA transaction that generated the error message, then restart replication.
Replication: When a transaction larger than the binary log transaction cache size (binlog_cache_size) was flushed to a temporary file during processing, and the flush failed due to a lack of space in the temporary directory, the flush error was not handled correctly. No message was written to the error log, and the binary log cache was not cleared after the transaction was rolled back. Now, in this situation, the server takes an appropriate action based on the binlog_error_action setting (shut down the server or halt logging), and writes a message to the error log. When the transaction is rolled back, the server checks for flush errors and clears the binary log cache if any occurred.
Replication: Using an IP address or hostname in any Group Replication related configuration on macOS was failing.
Replication: When GTIDs are in use for replication, replicated transactions that are filtered out on the slave are persisted. If binary logging is enabled on the slave, the filtered-out transaction is written to the binary log as a Gtid_log_event followed by an empty transaction containing only BEGIN and COMMIT statements. If binary logging is disabled, the GTID of the filtered-out transaction is written to the mysql.gtid_executed table. This process ensures that there are no gaps in the set of executed GTIDs, and that the filtered-out transactions are not retrieved again if the slave reconnects to the master. Previously, this process was not done for CREATE DATABASE, ALTER DATABASE, and DROP DATABASE statements, but it is now carried out for those statements as well as for others.
Replication: On a multithreaded slave, when a STOP SLAVE statement is executed on the slave, followed by a START SLAVE statement, the error log can report a different position in the binary log for the slave SQL thread when exiting, compared to the position reported for the slave SQL thread at the subsequent initialization.
For a multithreaded slave, the position reported for the SQL thread on exit is a low water mark, up to which the replication stream is consistent and has no gaps. Transactions appearing before the position are guaranteed to have committed, but transactions after the position may have committed or not. However, this low water mark was being reported before the process to stop the worker threads was actually carried out, and the low water mark was subsequently updated by a checkpoint routine during that process. The timing of the log message has now been changed so that the final low water mark is reported as the position for the SQL thread on exit.
Replication: In certain situations, such as during distributed recovery procedure, the certification info garbage collection was purging more data than it should, resulting in conflicts not being detected. The garbage collection procedure has been improved to take this case in consideration.
Replication: When the group_replication_applier channel's applier thread encountered an error, the master_log_name and end_log_pos in the error message were incorrect. In Group Replication, the events of a transaction are replicated before they are written to the binary log of the member where the transaction originated. The result is that the final master_log_name and the end_log_pos of those events are unknown at the time they are applied on the replica by group_replication_applier channel's applier thread. To avoid confusion, now any such error messages encountered by a group_replication_applier channel do not contain the binary log name and the binary log position.
A heap overflow vulnerability in the MySQL client library was fixed.
For generated columns that used the INTERVAL() function, incorrect behavior could occur.
The exec_in_background command for mysqltest is now available in MySQL 5.7.
An unencrypted connection could result from a client connection attempt specifying that an encrypted connection was required, if the server was not configured to support SSL.
A BETWEEN clause comparing negative values could lead to erroneous results.
Audit log filter rules did not permit class names to be specified as an array of strings.
shared-mime-info 1.10 (2018-28-06)
* Add mime-type for MJPEG raw streams
* Add MPEG-4 Ringtone mime-type
* Add mime-type for HEIF images
* Add application/vnd.sqlite3, application/x-sqlite2 IANA types
* Add application/pkcs8-encrypted
* Add audio/usac
* Add application/vnd.youtube.yt
* Add mime-types for raw floppy disk images
* Add aliases for SAP and HFE floppy images mime-types
* Use new application/vnd.comicbook-rar IANA type
* Remove magic from STL binary
* Add *.adts and *.ass globs from IANA to audio/aac
* Use new IANA type for application/xliff+xml
* Use new IANA type for model/stl
* Add text/x-perl alias to application/x-perl
* Bump priority for our DjVu mime-types
* Differentiate Neo Geo Pocket Color ROMs from non-Color ones
* Remove *.bin from application/octet-stream
* Add an application/xps alias for application/oxps
* Change Qt Linguist file type to text/vnd.qt.linguist
* Fix the QML magic
Tools:
- Don't warn with unknown top level type names
- Look in obsolete KDE sub-dirs for clean up opportunities
- Add some debug when parsing XML package files
Spec:
- ASCII check should be done with 128 leading bytes, not 32 bytes
Version 2.4:
- Add standard and retry hook scripts for backup deletion (pre/post)
- Add standard and retry hook scripts for recovery (pre/post)
- Add standard and retry hook scripts for WAL deletion (pre/post)
- Add --standby-mode option to barman recover to add standby_mode = on
in pre-generated recovery.conf
- Add --target-action option to barman recover, allowing users to add
shutdown, pause or promote to the pre-generated recovery.conf file
- Improve usability of point-in-time recovery with consistency checks
(e.g. recovery time is after end time of backup)
- Minor documentation improvements
- Drop support for Python 3.3
Relevant bug fixes:
- Fix remote get_file_content method, preventing
incremental recovery from happening
- Unicode issues with command
- Add --wal-method=none when pg_basebackup >= 10
Minor bug fixes:
- Stop process manager module from ovewriting lock files content
- Relax the rules for rsync output parsing
- Ignore vanished files in streaming directory
- Case insensitive slot names
- Make DataTransferFailure.from_command_error() more resilient
- Rename command() to barman_command()
- Initialise synchronous standby names list if not set
- Correct placeholders ordering
- Force datestyle to iso for replication connections
- Returns error if delete command does not remove the backup
- Fix exception when calling is_power_of_two(None)
- Downgraded sync standby names messages to debug
Version 2.3:
- Add support to PostgreSQL 10
- Follow naming changes in PostgreSQL 10:
- The switch-xlog command has been renamed to switch-wal.
- In commands output, the xlog word has been changed to WAL and
location has been changed to LSN when appropriate.
- Add the --network-compression/--no-network-compression options to
barman recover to enable or disable network compression at run-time
- Add --target-immediate option to recover command, in order to exit
recovery when a consistent state is reached (end of the backup,
available from PostgreSQL 9.4)
- Show cluster state (master or standby) with barman status command
- Documentation improvements
- Bug fixes:
- Fix high memory usage with parallel_jobs > 1
- Better handling of errors using parallel copy
- Make barman diagnose more robust with system exceptions
- Let archive-wal ignore files with .tmp extension
Version 2.2:
- Implement parallel copy for backup/recovery through the
parallel_jobs global/server option to be overridden by the --jobs or
-j runtime option for the backup and recover command. Parallel
backup is available only for the rsync copy method. By default, it
is set to 1 (for behaviour compatibility with previous versions).
- Support custom WAL size for PostgreSQL 8.4 and newer. At backup
time, Barman retrieves from PostgreSQL wal_segment_size and
wal_block_size values and computes the necessary calculations.
- Improve check command to ensure that incoming directory is empty
when archiver=off, and streaming directory is empty when
streaming_archiver=off
- Add external_configuration to backup_options so that users can
instruct Barman to ignore backup of configuration files when they
are not inside PGDATA (default for Debian/Ubuntu installations). In
this case, Barman does not display a warning anymore.
- Add --get-wal and --no-get-wal options to barman recover
- Add max_incoming_wals_queue global/server option for the check
command so that a non blocking error is returned in case incoming
WAL directories for both archiver and the streaming_archiver contain
more files than the specified value.
- Documentation improvements
- File format changes:
- The format of backup.info file has changed. For this reason a
backup taken with Barman 2.2 cannot be read by a previous
version of Barman. But, backups taken by previous versions can
be read by Barman 2.2.
- Minor bug fixes:
- Allow replication-status to work against a standby
- Close any PostgreSQL connection before starting pg_basebackup
- Safely handle paths containing special characters
- Archive .partial files after promotion of streaming source
- Recursively create directories during recovery
- Improve xlog.db locking
- Remove tablespace_map file during recover
- Reconnect to PostgreSQL if connection drops
Version 2.1:
- Add --archive and --archive-timeout options to switch-xlog command
- Preliminary support for PostgreSQL 10
- Minor additions:
- Add last archived WAL info to diagnose output
- Add start time and execution time to the output of delete
command
- Minor bug fixes:
- Return failure for get-wal command on inactive server
- Make streaming_archiver_names and streaming_backup_name options
global
- Fix rsync failures due to files truncated during transfer
- Correctly handle compressed history files
- Avoid de-referencing symlinks in pg_tblspc when preparing
recovery
- Fix comparison of last archiving failure
- Avoid failing recovery if postgresql.conf is not writable
- Fix output of replication-status command
- Exclude files from backups like pg_basebackup
- Exclude directories from other Postgres versions while copying
tablespaces
- Make retry hook script options global
Version 2.0 - 27 Sep 2016
- Support for pg_basebackup and base backups over the PostgreSQL
streaming replication protocol with backup_method=postgres
(PostgreSQL 9.1 or higher required)
- Support for physical replication slots through the slot_name
configuration option as well as the --create-slot and --drop-slot
options for the receive-wal command (PostgreSQL 9.4 or higher
required). When slot_name is specified and streaming_archiver is
enabled, receive-wal transparently integrates with pg_receivexlog,
and check makes sure that slots exist and are actively used
- Support for the new backup API introduced in PostgreSQL 9.6, which
transparently enables concurrent backups and backups from standby
servers using the standard rsync method of backup. Concurrent backup
was only possible for PostgreSQL 9.2 to 9.5 versions through the
pgespresso extension. The new backup API will make pgespresso
redundant in the future
- If properly configured, Barman can function as a synchronous standby
in terms of WAL streaming. By properly setting the
streaming_archiver_name in the synchronous_standby_names priority
list on the master, and enabling replication slot support, the
receive-wal command can now be part of a PostgreSQL synchronous
replication cluster, bringing RPO=0 (PostgreSQL 9.5.5 or
higher required)
- Introduce barman-wal-restore, a standard and robust script written
in Python that can be used as restore_command in recovery.conf files
of any standby server of a cluster. It supports remote parallel
fetching of WAL files by efficiently invoking get-wal through SSH.
Currently available as a separate project called barman-cli. The
barman-cli package is required for remote recovery when get-wal is
listed in recovery_options
- Control the maximum execution time of the check command through the
check_timeout global/server configuration option (30 seconds
by default)
- Limit the number of WAL segments that are processed by an
archive-wal run, through the archiver_batch_size and
streaming_archiver_batch_size global/server options which control
archiving of WAL segments coming from, respectively, the standard
archiver and receive-wal
- Removed locking of the XLOG database during check operations
- The show-backup command is now aware of timelines and properly
displays which timelines can be used as recovery targets for a given
base backup. Internally, Barman is now capable of parsing .history
files
- Improved the logic behind the retry mechanism when copy operations
experience problems. This involves backup (rsync and postgres) as
well as remote recovery (rsync)
- Code refactoring involving remote command and physical copy
interfaces
- Bug fixes:
- Correctly handle .history files from streaming
- Fix replication-status on PostgreSQL 9.1
- Fix replication-status when sent and write locations are not
available
- Fix misleading message on pg_receivexlog termination
Features
- RECONNECT command
- WAIT_CLOSE command
- Fast close - Disconnect a server in session pool mode immediately
if it is in "close_needed" (reconnect) mode.
- Add close_needed column to SHOW SERVERS
Fixes
- Avoid double-free in parse_filename
- Avoid NULL pointer deref in parse_line
Cleanups
- Port mkauth.py to Python 3
- Improve signals documentation
- Improve quick start documentation
- Document SET command
- Correct list of required software
- Fix -Wimplicit-fallthrough warnings
- Add missing documentation for various SHOW fields
- Document reconnect behavior on reload and DNS change
- Document that KILL requires RESUME afterwards
- Clarify documentation of server_lifetime
- Typos and capitalization fixes in messages and docs
- Fix psql invocation in tests
- Various other test setup improvements
4.1.0:
Configuration file changes
* Default for log_level is now INFO. This produces additional informative log output, without creating excessive additional log file volume, and matches the setting assumed for examples in the documentation.
* recovery_min_apply_delay now accepts a minimum value of zero
repmgr enhancements
* repmgr: always exit with an error if an unrecognised command line option is provided. This matches the behaviour of other PostgreSQL utilities such as psql.
* repmgr: add -q/--quiet option to suppress non-error output.
* repmgr cluster show, repmgr node check and repmgr node status return non-zero exit code if node status issues detected.
* Add --csv output option for repmgr cluster event.
* repmgr witness unregister can be run on any node, by providing the ID of the witness node with --node-id.
* repmgr standby switchover will refuse to run if an exclusive backup is taking place on the current primary.
repmgrd enhancements
repmgrd: create a PID file by default. For details, see repmgrd's PID file.
repmgrd: daemonize process by default. In case, for whatever reason, the user does not wish to daemonize the process, provide --daemonize=false.
Bug fixes
repmgr standby register --wait-sync: fix behaviour when no timeout provided.
repmgr cluster cleanup: add missing help options.
Ensure witness node follows new primary after switchover.
repmgr node check and repmgr node status: fix witness node handling.
2.3.7:
Fix for pkg-config file update on no linux platforms
Add W entry for GUI work
Various fixes for SQLBrowseConnect/W, SQLGetConnectAttr/W,and SQLSetConnectAttr/W
Fix buffer overflows in SQLConnect/W and refine behaviour of SQLGet/WritePrivateProfileString
SQLBrowseConnect/W allow disconnecting a started browse session after error
Add --with-stats-ftok-name configure option to allow the selection of a file name used to generate the IPC id when collecting stats. Default is the system odbc.ini file
Improve diag record handling with the behavior of Windows DM and export SQLCancelHandle
Bug fix when SQLGetPrivateProfileString() is called to get a list of sections or a list of keys
Connection pooling: Fix liveness check for Unicode drivers
The PostgreSQL Global Development Group has released an update to all supported versions of our database system, including 10.5, 9.6.10, 9.5.14, 9.4.19, 9.3.24. This release fixes two security issues as well as bugs reported over the last three months.
SECURITY ISSUES:
CVE-2018-10915: CERTAIN HOST CONNECTION PARAMETERS DEFEAT CLIENT-SIDE SECURITY DEFENSES
CVE-2018-10925: MEMORY DISCLOSURE AND MISSING AUTHORIZATION IN INSERT ... ON CONFLICT DO UPDATE
BUG FIXES AND IMPROVEMENTS
Several fixes related to VACUUM, including an issue that could lead to data corruption in certain system catalog tables
Several fixes for replaying write-ahead logs, including a case where a just-promoted standby server would not restart if it crashed before its first post-recovery checkpoint
Several performance improvements for replaying write-ahead logs
Several fixes for logical replication and logical decoding, including ensuring logical WAL senders are reporting the streaming state correctly
Allow replication slots to be dropped in single-user mode
Fix to have variance and similar aggregate functions return accurate results when executed using parallel query
Fix SQL-standard FETCH FIRST syntax to allow parameters ($n), as the standard expects
Fix to ensure that a process doing a parallel index scan will respond to signals, such as one to abort a query
Fix EXPLAIN's accounting for resource usage, particularly buffer accesses, in parallel workers
Several fixes for the query planner including improving the cost estimates for hash-joins and choosing to use indexes for mergejoins on composite type columns
Fix performance regression related to POSIX semaphores for multi-CPU systems running Linux or FreeBSD
Fix for GIN indexes that could lead to an assertion failure after a pg_upgrade from a version before PostgreSQL 9.4
Fix for SHOW ALL to display superuser configuration settings to roles that are allowed to read all settings
Fix issue where COPY FROM .. WITH HEADER would drop a line after every 4,294,967,296 lines processed
Several fixes for XML support, including using the document node as the context for XPath queries as defined in the SQL standard, which affects the xpath and xpath_exists functions, as well as XMLTABLE
Fix libpq for certain cases where hostaddr is used
Several ecpg fixes for Windows
Fix password prompting in Windows client programs so that echo is properly disabled
Several pg_dump fixes, including correctly outputting REPLICA IDENTITY properties for constraint indexes
Make pg_upgrade check that the old server was shut down cleanly
2.5.1:
connection.result is populated when exception raised with raise_exceptions=True
fixed objectSid in mocking strategies
fixed circular reference in exception history
added objectSid validator
byte values are properly searched in MOCK strategies
exception history refactored
connections in context manager don’t bind anymore when auto_bind is set to AUTO_BIND_NONE
Cython compatible build
more detailed exception message in Mock strategy
exceptions flow refactored in reusable strategy
pwdlastset accept any positive integer
fixed an exception while logging packet with pyasn1 decoder
fixed importing abc from collections for Python 3.8
Redis 4.0.10 fixes a number of important issues:
* Important security issues related to the Lua scripting engine.
Please check https://github.com/antirez/redis/issues/5017
for more information.
* A bug with SCAN, SSCAN, HSCAN and ZSCAN, that may not return all the elements.
We also add a regression test that can trigger the issue often when present, and
may in theory be able to find unrelated regressions.
* A PSYNC2 bug is fixed: Redis should not expire keys when saving RDB files
because otherwise it is no longer possible to use such RDB file as a base
for partial resynchronization. It no longer represents the right state.
* Compatibility of AOF with RDB preamble when the RDB checksum is disabled.
* Sentinel bug that in some cases prevented Sentinel to detect that the master
was down immediately. A delay was added to the detection.
* Other minor issues.
From upstream ITS #8885
Add a configure test for hdb_generate_key_set_password() prototype
contrib/slapd-modules/smbk5pwd uses hdb_generate_key_set_password() from
Heimdal, which was shortly turned from a 5 arguments function to a 7 arguments
function before the prototype change was rolled back to address API
incompatibility.
Unfortunately, the 7 arguments hdb_generate_key_set_password() made it into
released NetBSD 8.0, causing a build break in contrib/slapd-modules/smbk5pwd.
This change adds a configure test for 7 arguments prototype so that
contrib/slapd-modules/smbk5pwd build again on NetBSD 8.0, and other OS that
would include the 7 arguments hdb_generate_key_set_password().
Each R package should include ../../math/R/Makefile.extension, which also
defines MASTER_SITES. Consequently, it is redundant for the individual
packages to do the same. Package-specific definitions also prevent
redefining MASTER_SITES in a single common place.
1.0.0:
[feature] [general] For Alembic 1.0, Python 2.6 / 3.3 support is being dropped, allowing a fixed setup.py to be built as well as universal wheels. Pull request courtesy Hugo.
[feature] [general] With the 1.0 release, Alembic’s minimum SQLAlchemy support version moves to 0.9.0, previously 0.7.9.
[bug] [batch] Fixed issue in batch where dropping a primary key column, then adding it back under the same name but without the primary_key flag, would not remove it from the existing PrimaryKeyConstraint. If a new PrimaryKeyConstraint is added, it is used as-is, as was the case before.
1.2.10:
[orm] [bug] Fixed bug in Bundle construct where placing two columns of the same name would be de-duplicated, when the Bundle were used as part of the rendered SQL, such as in the ORDER BY or GROUP BY of the statement.
[orm] [bug] Fixed regression in 1.2.9 due to 4287 where using a Load option in conjunction with a string wildcard would result in a TypeError.
[sql] [bug] Fixed bug where a Sequence would be dropped explicitly before any Table that refers to it, which breaks in the case when the sequence is also involved in a server-side default for that table, when using MetaData.drop_all(). The step which processes sequences to be dropped via non server-side column default functions is now invoked after the table itself is dropped.
3.6.4:
Take a whole new approach, following what simplejson does. Allow the
build_ext command class to fail, and retry without extensions in the event we
run into issues building extensions.
3.6.3:
Add check in setup.py to determine if a C compiler is available before
building C extensions.
3.6.2:
Use ctypes.util.find_library to determine if libsqlite3 is installed.
Should fix problems people are encountering installing when SQLite3 is not
available.
3.6.1:
Fixed issue with setup script.
3.6.0:
* Support for Python 3.7, including bugfixes related to new StopIteration
handling inside of generators.
* Support for specifying ROWS or RANGE window frame types.
* Add APIs for user-defined window functions if using [pysqlite3](https://github.com/coleifer/pysqlite3)
and sqlite 3.25.0 or newer.
* TimestampField now uses 64-bit integer data-type for storage.
* Added support to pwiz and playhouse.reflection to enable generating
models from VIEWs.
* Added lower-level database API for introspecting VIEWs.
* Revamped continuous integration setup for better coverage, including 3.7 and
3.8-dev.
* Allow building C extensions even if Cython is not installed, by distributing
pre-generated C source files.
* Switch to using setuptools for packaging.
3.24.0-r1
Added constants:
* SQLITE_DBCONFIG_RESET_DATABASE, and support for it in Connection.config()
* SQLITE_LOCKED_VTAB, and SQLITE_CORRUPT_SEQUENCE extended result codes
Added keywords and updated the shell to use it.
Upstream changes:
1.86 - 2018-07-09
- Remove obsolete documentation about arrayrefref as the $source
argument for ->select (removed in version 1.74)
- Factor out the field list part of SELECT for subclassability (GH#13)
- Do not replace literal '0' with empty string in WHERE clauses (GH#14)
asyncpg v0.17.0:
Improvements
Official support for Python 3.7.
Bug Fixes
Fix garbage collection of connections and emit a ResourceWarning
if an unclosed connection is garbage collected.
Raise a clear error if there's a race in pool intialization.
Channel names in Connection.add_listener() and
Connection.remove_listener() are now quoted properly.
Fixed endianness detection on *BSD systems.
Fixed handling of large type OIDs.
Notable changes since 0.9.15:
- Python 3 support
- fallocate and sparse support in whisper-create
- Support FADVISE_RANDOM for create/update/update_many
- Add update-storage-times.py - a tool to change storage schemas for
whisper files and update the data. Threaded to vastly improve speed
over whisper-auto-resize.py
- Add optional destinationPath for rrd2whisper
- Add json output to whisper-diff.py script
- Add whisper-set-xfilesfactor.py utility
- whisper-fetch: add –time-format option
- Numerous bug fixes
Performing substitutions during post-patch breaks tools such as mkpatches,
making it very difficult to regenerate correct patches after making changes,
and often leading to substituted string replacements being committed.
3.5.2:
New guide to using window functions in Peewee.
New and improved table name auto-generation. This feature is not backwards compatible, so it is disabled by default. To enable, set legacy_table_names=False in your model's Meta options. For more details, see table names documentation.
Allow passing single fields/columns to window function order_by and partition_by arguments.
Support for FILTER (WHERE...) clauses with window functions and aggregates.
Added IdentityField class suitable for use with Postgres 10's new identity column type. It can be used anywhere AutoField or BigAutoField was being used previously.
Fixed bug creating indexes on tables that are in attached databases (SQLite).
Fixed obscure bug when using prefetch() and ModelAlias to populate a back-reference related model.
3.5.1:
New features
------------
New documentation for working with relationships in Peewee.
Improved tests and documentation for MySQL upsert functionality.
Allow database parameter to be specified with ModelSelect.get() method.
Add QualifiedNames helper to peewee module exports.
Add temporary= meta option to support temporary tables.
Allow a Database object to be passed to constructor of DataSet helper.
Bug fixes
---------
Fixed edge-case where attempting to alias a field to it's underlying column-name (when different), Peewee would not respect the alias and use the field name instead.
Raise a ValueError when joining and aliasing the join to a foreign-key's object_id_name descriptor. Should prevent accidentally introducing O(n) queries or silently ignoring data from a joined-instance.
Fixed bug for MySQL when creating a foreign-key to a model which used the BigAutoField for it's primary-key.
Fixed bugs in the implementation of user-defined aggregates and extensions with the APSW SQLite driver.
Fixed regression introduced in 3.5.0 which ignored custom Model __repr__().
Fixed regression from 2.x in which inserting from a query using a SQL() was no longer working.
Version 1.2.9
Fixed issue where chaining multiple join elements inside of Query.join() might not correctly adapt to the previous left-hand side, when chaining joined inheritance classes that share the same base class.
Fixed bug in cache key generation for baked queries which could cause a too-short cache key to be generated for the case of eager loads across subclasses. This could in turn cause the eagerload query to be cached in place of a non-eagerload query, or vice versa, for a polymorhic “selectin” load, or possibly for lazy loads or selectin loads as well.
Fixed bug in new polymorphic selectin loading where the BakedQuery used internally would be mutated by the given loader options, which would both inappropriately mutate the subclass query as well as carry over the effect to subsequent queries.
Fixed regression caused by 4256 (itself a regression fix for 4228) which breaks an undocumented behavior which converted for a non-sequence of entities passed directly to the Query constructor into a single-element sequence. While this behavior was never supported or documented, it’s already in use so has been added as a behavioral contract to Query.
Fixed an issue that was both a performance regression in 1.2 as well as an incorrect result regarding the “baked” lazy loader, involving the generation of cache keys from the original Query object’s loader options. If the loader options were built up in a “branched” style using common base elements for multiple options, the same options would be rendered into the cache key repeatedly, causing both a performance issue as well as generating the wrong cache key. This is fixed, along with a performance improvement when such “branched” options are applied via Query.options() to prevent the same option objects from being applied repeatedly.
version 0.9.10
The "op.drop_constraint()" directive will now render using repr() for
the schema name, in the same way that "schema" renders for all the other op
directives.
Added basic capabilities for external dialects to support rendering of
"nested" types, like arrays, in a manner similar to that of the Postgresql
dialect.
Fixed issue where "autoincrement=True" would not render for a column that
specified it, since as of SQLAlchemy 1.1 this is no longer the default
value for "autoincrement". Note the behavior only takes effect against the
SQLAlchemy 1.1.0 and higher; for pre-1.1 SQLAlchemy, "autoincrement=True"
does not render as was the case before.
What's new in psycopg 2.7.5:
- Allow non-ascii chars in namedtuple fields
- Fixed adaptation of arrays of arrays of nulls
- Fixed building on Solaris 11 and derivatives such as SmartOS and illumos
- Maybe fixed building on MSYS2
- Allow string subclasses in connection and other places
- Don't raise an exception closing an unused named cursor
- Wheel package compiled against PostgreSQL 10.4 libpq and OpenSSL 1.0.2o
asyncpg v0.16.0:
Behavior Changes
----------------
Pool.close() now waits until all acquired connections are released.
Hence, the below code will now hang indefinitely:
conn = await pool.acquire()
await pool.close()
Asyncpg will log a warning if pool.close() takes over 60 seconds to
complete. It is advisable to use asyncio.wait_for() to set a timeout.
Improvements
------------
Add support for reading passwords from .pgpass
Add Connection.is_in_transaction()
Added codec for built-in type tid
Allow setting custom codecs on domains and enumerated types
Allow passing datetime.date instances as timestamp input
Implement support for pool connection rotation
Bug Fixes
---------
Prohibit non-iterable containers to be passed as array input
Decode numeric zeros with correct scale
Fix handling of OIDs >= 2**31
Make Pool.close() wait until all checked out connections are released
Fix type codec cache races
Raise a consistent exception on input encoding errors
patch-configure and patch-src_Makefile.in removed since
they have applied upstream.
Changes from release notes:
* updated SQLStatement::fetchColumns() to return an empty
hash when no data is available
* fixed a bug where DBI-SELECT-ROW-ERROR exceptions were
being raised as MYSQL-SELECT-ROW-ERROR exceptions
* fixed formatting bugs in invalid value specification
error messages
* updated configure to find and compile with MariaDB and
Percona includes and libs
* placeholders and quotes in SQL comments are ignored
* fixed time column retrieval; the date component is now
set to 1970-01-01
* fixed binary and varbinary column handling
* fixed the "optimal-numbers" option with decimal values
with decimal points
* fixed returning result sets with duplicate column names
Changes from release notes:
* updated SQLStatement::fetchColumns() to return an empty
hash when no data is available
* fixed a formatting bug in an error message
* fixed selecting numeric values between 0 and 1
* fixed a bug where DBI-SELECT-ROW-ERROR exceptions were
being raised as PGSQL-SELECT-ROW-ERROR exceptions
2.2.12
======
Upgrading
---------
- See MAXIMUM TTL EXPIRATION DATE NOTICE above.
- Cassandra is now relying on the JVM options to properly shutdown on OutOfMemoryError. By default it will
rely on the OnOutOfMemoryError option as the ExitOnOutOfMemoryError and CrashOnOutOfMemoryError options
are not supported by the older 1.7 and 1.8 JVMs. A warning will be logged at startup if none of those JVM
options are used. See CASSANDRA-13006 for more details.
- Cassandra is not logging anymore by default an Heap histogram on OutOfMemoryError. To enable that behavior
set the 'cassandra.printHeapHistogramOnOutOfMemoryError' System property to 'true'. See CASSANDRA-13006
for more details.
2.2.11
======
Upgrading
---------
- Nothing specific to this release, but please see 2.2 if you are upgrading
from a previous version.
2.2.10
======
Upgrading
---------
- Nothing specific to this release, but please see 2.2 if you are upgrading
from a previous version.
2.2.9
=====
Upgrading
---------
- Compaction now correctly drops sstables out of CompactionTask when there
isn't enough disk space to perform the full compaction. This should reduce
pending compaction tasks on systems with little remaining disk space.
Deprecation
-----------
Since the security manager added in 3.0 only allows Java and JavaScript
UDFs to be run, UDFs for other languages are deprecated and support for
non-Java and non-JavaScript UDFs is deprecated in 2.2 and has been removed
in version 3.0.11.
2.2.8
=====
Upgrading
---------
- The ReversedType behaviour has been corrected for clustering columns of
BYTES type containing empty value. Scrub should be run on the existing
SSTables containing a descending clustering column of BYTES type to correct
their ordering. See CASSANDRA-12127 for more details.
2.2.7
=====
New features
------------
- JSON timestamps are now in UTC and contain the timezone information, see
CASSANDRA-11137 for more details.
Upgrading
---------
- Ec2MultiRegionSnitch will no longer automatically set broadcast_rpc_address
to the public instance IP if this property is defined on cassandra.yaml.
2.2.6
=====
Upgrading
---------
- Nothing specific to this release, but please see 2.2 if you are upgrading
from a previous version.
2.2.5
=====
Upgrading
---------
- Nothing specific to this release, but please see 2.2 if you are upgrading
from a previous version.
2.2.4
=====
Deprecation
-----------
- Pig support has been deprecated, and will be removed in 3.0.
Please see CASSANDRA-10542 for more details.
- Configuration parameter memory_allocator in cassandra.yaml has been deprecated
and will be removed in 3.0.0. As mentioned below for 2.2.0, jemalloc is
automatically preloaded on Unix platforms.
Operations
----------
- Switching data center or racks is no longer an allowed operation on a node
which has data. Instead, the node will need to be decommissioned and
rebootstrapped. If moving from the SimpleSnitch, make sure that the data
center and rack containing all current nodes is named "datacenter1" and
"rack1". To override this behaviour use -Dcassandra.ignore_rack=true and/or
-Dcassandra.ignore_dc=true.
- Reloading the configuration file of GossipingPropertyFileSnitch has been disabled.
- GC logging is now enabled by default (but you can disable it if you want by
commenting the relevant lines of the cassandra-env file).
Upgrading
---------
- The default for the inter-DC stream throughput setting
(inter_dc_stream_throughput_outbound_megabits_per_sec in cassandra.yaml) is
the same than the one for intra-DC one (200Mbps) instead of being unlimited.
Having it unlimited was never intended and was a bug.
New features
------------
- Time windows in DTCS are now limited to 1 day by default to be able to
handle bootstrap and repair in a better way. To get the old behaviour,
increase max_window_size_seconds.
- DTCS option max_sstable_age_days is now deprecated and defaults to 1000 days.
- Native protocol server now allows both SSL and non-SSL connections on
the same port.
2.2.3
=====
Upgrading
---------
- Nothing specific to this release, but please see 2.2 if you are upgrading
from a previous version.
2.2.2
=====
Upgrading
---------
- Version 1 and 2 of the native protocol are now deprecated and support
will be removed in Cassandra 3.0. You are encouraged to upgrade to a
client driver using version 3 of the native protocol.
Changed Defaults
----------------
- commitlog_total_space_in_mb will use the smaller of 8192, and 1/4
of the total space of the commitlog volume. (Before: always used
8192)
- Incremental repair is on by default since 2.2.0, run full repairs by
providing the '-full' parameter to nodetool repair.
- Parallel repairs are the default since 2.2.0, run sequential repairs
by providing the '-seq' parameter to nodetool repair.
- The following INFO logs were reduced to DEBUG level and will now show
on debug.log instead of system.log:
- Memtable flushing actions
- Commit log replayed files
- Compacted sstables
- SStable opening (SSTableReader)
New features
------------
- Custom QueryHandlers can retrieve the column specifications for the bound
variables from QueryOptions by using the hasColumnSpecifications()
and getColumnSpecifications() methods.
- A new default assynchronous log appender debug.log was created in addition
to the system.log appender in order to provide more detailed log debugging.
In order to disable debug logging, you must comment-out the ASYNCDEBUGLOG
appender on conf/logback.xml. See CASSANDRA-10241 for more information.
2.2.1
=====
Upgrading
---------
- Nothing specific to this release, but please see 2.2 if you are upgrading
from a previous version.
New features
------------
- COUNT(*) and COUNT(1) can be selected with other columns or functions
2.2
===
Upgrading
---------
- The authentication & authorization subsystems have been redesigned to
support role based access control (RBAC), resulting in a change to the
schema of the system_auth keyspace. See below for more detail.
For systems already using the internal auth implementations, the process
for converting existing data during a rolling upgrade is straightforward.
As each node is restarted, it will attempt to convert any data in the
legacy tables into the new schema. Until enough nodes to satisfy the
replication strategy for the system_auth keyspace are upgraded and so have
the new schema, this conversion will fail with the failure being reported
in the system log.
During the upgrade, Cassandra's internal auth classes will continue to use
the legacy tables, so clients experience no disruption. Issuing DCL
statements during an upgrade is not supported.
Once all nodes are upgraded, an operator with superuser privileges should
drop the legacy tables, system_auth.users, system_auth.credentials and
system_auth.permissions. Doing so will prompt Cassandra to switch over to
the new tables without requiring any further intervention.
While the legacy tables are present a restarted node will re-run the data
conversion and report the outcome so that operators can verify that it is
safe to drop them.
New features
------------
- The LIMIT clause applies now only to the number of rows returned to the user,
not to the number of row queried. By consequence, queries using aggregates will not
be impacted by the LIMIT clause anymore.
- Very large batches will now be rejected (defaults to 50kb). This
can be customized by modifying batch_size_fail_threshold_in_kb.
- Selecting columns,scalar functions, UDT fields, writetime or ttl together
with aggregated is now possible. The value returned for the columns,
scalar functions, UDT fields, writetime and ttl will be the ones for
the first row matching the query.
- Windows is now a supported platform. Powershell execution for startup scripts
is highly recommended and can be enabled via an administrator command-prompt
with: 'powershell set-executionpolicy unrestricted'
- It is now possible to do major compactions when using leveled compaction.
Doing that will take all sstables and compact them out in levels. The
levels will be non overlapping so doing this will still not be something
you want to do very often since it might cause more compactions for a while.
It is also possible to split output when doing a major compaction with
STCS - files will be split in sizes 50%, 25%, 12.5% etc of the total size.
This might be a bit better than old major compactions which created one big
file on disk.
- A new tool has been added bin/sstableverify that checks for errors/bitrot
in all sstables. Unlike scrub, this is a non-invasive tool.
- Authentication & Authorization APIs have been updated to introduce
roles. Roles and Permissions granted to them are inherited, supporting
role based access control. The role concept supercedes that of users
and CQL constructs such as CREATE USER are deprecated but retained for
compatibility. The requirement to explicitly create Roles in Cassandra
even when auth is handled by an external system has been removed, so
authentication & authorization can be delegated to such systems in their
entirety.
- In addition to the above, Roles are also first class resources and can be the
subject of permissions. Users (roles) can now be granted permissions on other
roles, including CREATE, ALTER, DROP & AUTHORIZE, which removesthe need for
superuser privileges in order to perform user/role management operations.
- Creators of database resources (Keyspaces, Tables, Roles) are now automatically
granted all permissions on them (if the IAuthorizer implementation supports
this).
- SSTable file name is changed. Now you don't have Keyspace/CF name
in file name. Also, secondary index has its own directory under parent's
directory.
- Support for user-defined functions and user-defined aggregates have
been added to CQL.
************************************************************************
IMPORTANT NOTE: user-defined functions can be used to execute
arbitrary and possibly evil code in Cassandra 2.2, and are
therefore disabled by default. To enable UDFs edit
cassandra.yaml and set enable_user_defined_functions to true.
CASSANDRA-9402 will add a security manager for UDFs in Cassandra
3.0. This will inherently be backwards-incompatible with any 2.2
UDF that perform insecure operations such as opening a socket or
writing to the filesystem.
Per the previous note about adding a security manager in 3.0, this security manager
means that non JavaScipt UDF's won't run, there for their use is deprecated.
************************************************************************
- Row-cache is now fully off-heap.
- jemalloc is now automatically preloaded and used on Linux and OS-X if
installed.
- Please ensure on Unix platforms that there is no libjnadispath.so
installed which is accessible by Cassandra. Old versions of
libjna packages (< 4.0.0) will cause problems - e.g. Debian Wheezy
contains libjna versin 3.2.x.
- The node now keeps up when streaming is failed during bootstrapping. You can
use new `nodetool bootstrap resume` command to continue streaming after resolving
an issue.
- Protocol version 4 specifies that bind variables do not require having a
value when executing a statement. Bind variables without a value are
called 'unset'. The 'unset' bind variable is serialized as the int
value '-2' without following bytes.
In an EXECUTE or BATCH request an unset bind value does not modify the value and
does not create a tombstone, an unset bind ttl is treated as 'unlimited',
an unset bind timestamp is treated as 'now', an unset bind counter operation
does not change the counter value.
Unset tuple field, UDT field and map key are not allowed.
In a QUERY request an unset limit is treated as 'unlimited'.
Unset WHERE clauses with unset partition column, clustering column
or index column are not allowed.
- New `ByteType` (cql tinyint). 1-byte signed integer
- New `ShortType` (cql smallint). 2-byte signed integer
- New `SimpleDateType` (cql date). 4-byte unsigned integer
- New `TimeType` (cql time). 8-byte long
- The toDate(timeuuid), toTimestamp(timeuuid) and toUnixTimestamp(timeuuid) functions have been added to allow
to convert from timeuuid into date type, timestamp type and bigint raw value.
The functions unixTimestampOf(timeuuid) and dateOf(timeuuid) have been deprecated.
- The toDate(timestamp) and toUnixTimestamp(timestamp) functions have been added to allow
to convert from timestamp into date type and bigint raw value.
- The toTimestamp(date) and toUnixTimestamp(date) functions have been added to allow
to convert from date into timestamp type and bigint raw value.
- SizeTieredCompactionStrategy parameter cold_reads_to_omit has been removed.
- The default JVM flag -XX:+PerfDisableSharedMem will cause the following tools JVM
to stop working: jps, jstack, jinfo, jmc, jcmd as well as 3rd party tools like Jolokia.
If you wish to use these tools you can comment this flag out in cassandra-env.{sh,ps1}
Upgrading
---------
- Thrift rpc is no longer being started by default.
Set `start_rpc` parameter to `true` to enable it.
- Pig's CqlStorage has been removed, use CqlNativeStorage instead
- Pig's CassandraStorage has been deprecated. CassandraStorage
should only be used against tables created via thrift.
Use CqlNativeStorage for all other tables.
- IAuthenticator been updated to remove responsibility for user/role
maintenance and is now solely responsible for validating credentials,
This is primarily done via SASL, though an optional method exists for
systems which need support for the Thrift login() method.
- IRoleManager interface has been added which takes over the maintenance
functions from IAuthenticator. IAuthorizer is mainly unchanged. Auth data
in systems using the stock internal implementations PasswordAuthenticator
& CassandraAuthorizer will be automatically converted during upgrade,
with minimal operator intervention required. Custom implementations will
require modification, though these can be used in conjunction with the
stock CassandraRoleManager so providing an IRoleManager implementation
should not usually be necessary.
- Fat client support has been removed since we have push notifications to clients
- cassandra-cli has been removed. Please use cqlsh instead.
- YamlFileNetworkTopologySnitch has been removed; switch to
GossipingPropertyFileSnitch instead.
- CQL2 has been removed entirely in this release (previously deprecated
in 2.0.0). Please switch to CQL3 if you haven't already done so.
- The results of CQL3 queries containing an IN restriction will be ordered
SQLite Release 3.24.0:
Add support for PostgreSQL-style UPSERT.
Add support for auxiliary columns in r-tree tables.
Add C-language APIs for discovering SQL keywords used by SQLite: sqlite3_keyword_count(), sqlite3_keyword_name(), and sqlite3_keyword_check().
Add C-language APIs for dynamic strings based on the sqlite3_str object.
Enhance ALTER TABLE so that it recognizes "true" and "false" as valid arguments to DEFAULT.
Add the sorter-reference optimization as a compile-time option. Only available if compiled with SQLITE_ENABLE_SORTER_REFERENCES.
Improve the format of the EXPLAIN QUERY PLAN raw output, so that it gives better information about the query plan and about the relationships between the various components of the plan.
Added the SQLITE_DBCONFIG_RESET_DATABASE option to the sqlite3_db_config() API.
CLI Enhancements:
Automatically intercepts the raw EXPLAIN QUERY PLAN output and reformats it into an ASCII-art graph.
Lines that begin with "#" and that are not in the middle of an SQL statement are interpreted as comments.
Added the --append option to the ".backup" command.
Added the ".dbconfig" command.
Performance:
UPDATE avoids unnecessary low-level disk writes when the contents of the database file do not actually change. For example, "UPDATE t1 SET x=25 WHERE y=?" generates no extra disk I/O if the value in column x is already 25. Similarly, when doing UPDATE on records that span multiple pages, only the subset of pages that actually change are written to disk. This is a low-level performance optimization only and does not affect the behavior of TRIGGERs or other higher level SQL structures.
Queries that use ORDER BY and LIMIT now try to avoid computing rows that cannot possibly come in under the LIMIT. This can greatly improve performance of ORDER BY LIMIT queries, especially when the LIMIT is small relative to the number of unrestricted output rows.
The OR optimization is allowed to proceed even if the OR expression has also been converted into an IN expression. Uses of the OR optimization are now also more clearly shown in the EXPLAIN QUERY PLAN output.
The query planner is more aggressive about using automatic indexes for views and subqueries for which it is not possible to create a persistent index.
Make use of the one-pass UPDATE and DELETE query plans in the R-Tree extension where appropriate.
Performance improvements in the LEMON-generated parser.
Bug fixes:
For the right-hand table of a LEFT JOIN, compute the values of expressions directly rather than loading precomputed values out of an expression index as the expression index might not contain the correct value.
Do not attempt to use terms from the WHERE clause to enable indexed lookup of the right-hand table of a LEFT JOIN.
Fix a memory leak that can occur following a failure to open error in the CSV virtual table
Fix a long-standing problem wherein a corrupt schema on the sqlite_sequence table used by AUTOINCREMENT can lead to a crash.
Fix the json_each() function so that it returns valid results on its "fullkey" column when the input is a simple value rather than an array or object.
=== 5.9.0 (2018-06-01)
* Support generated columns on MySQL 5.7+ and MariaDB 5.2+ (wjordan, jeremyevans) (#1517)
* Add escaped_like extension for creation of LIKE expressions with placeholders in the pattern without access to a dataset (jeremyevans)
* Modify jdbc adapter exception handling to work around ::NativeException deprecation in JRuby 9.2 (jeremyevans)
* Work around broken BC date handling in JRuby 9.2.0.0 (jeremyevans)
* Switch use of BigDecimal.new() to BigDecimal(), since the former is deprecated (jeremyevans)
* Add Sequel::VERSION_NUMBER for easier version comparisons (jeremyevans)
* Add Model.has_dataset? to determine if the model class has a dataset (AlexWayfer) (#1508)
* Support use of LIKE with ANY function on PostgreSQL by avoiding unnecessary use of ESCAPE syntax (jeremyevans)
* Disconnect connections left allocated by dead threads instead of returning the connections to the pool (jeremyevans)
* Make both threaded connection pools avoid disconnecting connections while holding the connection pool mutex (jeremyevans)
* Don't deadlock when disconnecting connections in the sharded_threaded connection pool when using connection_validator or connection_expiration extensions (jeremyevans)
* Don't modify hash argument passed in Model.nested_attributes in the nested_attributes plugin (jeremyevans)
* Avoid unnecessary hash creation in many places (jeremyevans)
* Fix duplicate objects in nested associations when eager_graphing cascaded many_to_one=>one_to_many associations (jeremyevans)
Backwards-incompatible changes
- Custom Model repr no longer use the convention of overriding
__unicode__, and now use __str__.
- Redesigned the sqlite json1 integration and changed some of the APIs
and semantics of various JSONField methods.
New features
- Better default repr for model classes and fields.
- ForeignKeyField() accepts a new initialization parameter,
deferrable, for specifying when constraints should be enforced.
- BitField.flag() can be called without a value parameter for the
common use-case of using flags that are powers-of-2.
- SqliteDatabase pragmas can be specified as a dict (previously
required a list of 2-tuples).
- SQLite TableFunction (docs) will print Python exception tracebacks
raised in the initialize and iterate callbacks, making debugging
significantly easier.
Bug fixes
- Fixed bug in migrator.add_column() where, if the field being added
declared a non-standard index type (e.g., binary json field with GIN
index), this index type was not being respected.
- Fixed bug in database.table_exists() where the implementation did
not match the documentation.
- Fixed bug in SQLite TableFunction implementation which raised errors
if the return value of the iterate() method was not a tuple.
Add a variable MAJOR, currently 2.4, and instead of open-coding 2.4 in
PLIST, use ${MAJOR}, and teach print-PLIST how to invert that in only
the right places.
No functional change; this just reduces work on updating.
Release 1.2.8 includes a fairly broad spectrum of fixes, including fixes for some memory/synchronization issues within the connection pool, automap and statement caching functionalities, as well as some issues that were introduced in the 1.2 series related to the horizontal sharding extension as well as the dogpile.caching example. Users of the dogpile.cache recipe should review the changes here when migrating to SQLAlchemy 1.2.
- Fixed possible CVE-2018-1058 attack paths
- Fixed "unexpected index definition" after CVE-2018-1058 changes in
PostgreSQL
- Fixed build with recent Ubuntu packages
Backwards-incompatible changes
- The regexp() operation is now case-sensitive for MySQL and Postgres.
To perform case-insensitive regexp operations, use iregexp().
- The SQLite BareField() field-type now supports all column
constraints except specifying the data-type. Previously it silently
ignored any column constraints.
- LIMIT and OFFSET parameters are now treated as parameterized values
instead of literals.
- The schema parameter for SQLite database introspection methods is no
longer ignored by default. The schema corresponds to the name given
to an attached database.
- ArrayField now accepts a new parameter field_kwargs, which is used
to pass information to the array field's field_class initializer.
New features and other changes
- SQLite backup interface supports specifying page-counts and a
user-defined progress handler.
- GIL is released when doing backups or during SQLite busy timeouts
(when using the peewee SQLite busy-handler).
- Add NATURAL join-type to the JOIN helper.
- Improved identifier quoting to allow specifying distinct
open/close-quote characters. Enables adding support for MSSQL, for
instance, which uses square brackets, e.g. [table].[column].
- Unify timeout interfaces for SQLite databases (use seconds
everywhere rather than mixing seconds and milliseconds, which was
confusing).
- Added attach() and detach() methods to SQLite database, making it
possible to attach additional databases (e.g. an in-memory cache
db).
- New change streams API functions were not marked extern "C"
- mongoc_collection_watch now accepts a pipeline argument as a BSON
array, in addition to accepting a BSON document with a "pipeline"
array field
- Crashes in several change stream error handling paths
- Commands could return false with an empty bson_error_t after a
replica set reconfig
- Network error messages omitted the command name when using OP_MSG
3.3.4
- Added a BinaryUUIDField class for efficiently storing UUIDs in
16-bytes.
- Fix dataset's update_cache() logic so that when updating a single
table that was newly-added, we also ensure that all dependent tables
are updated at the same time.
3.3.3
- More efficient implementation of model dependency-graph generation.
Improves performance of recursively deleting related objects by
omitting unnecessary subqueries.
- Added union(), union_all(), intersect() and except_() to the
Model-specific query implementations. This was an oversight that
should have been patched in 3.3.2, but is fixed in 3.3.3.
- Major cleanup to test runner and standardized test skipping logic to
integrate with standard-library unittest conventions.
3.3.2
- Add methods for union(), union_all, intersect() and except_().
Previously, these methods were only available as operator overloads.
- Removed some Python 2.6-specific support code, as 2.6 is no longer
officially supported.
- Fixed model-graph resolution logic for deferred foreign-keys.
- Better support for UPDATE...FROM queries (Postgresql).
SECURITY ISSUES
One security vulnerability has been closed by this release:
CVE-2018-1115: Too-permissive access control list on function pg_logfile_rotate()
Please see the "Updating" section below for post-update steps.
BUG FIXES AND IMPROVEMENTS
This update also fixes over 50 bugs reported in the last several months. Some of these issues affect only version 10, but many affect all supported versions.
These fixes include:
Fix incorrect volatility and parallel-safety markings on several built-in functions to ensure correct query planning optimizations
Several fixes for partitioning, including potential crashes as well as allowing TRUE and FALSE to be used as partition bounds
Fix where a new TOAST value could be assigned to a dead-but-not-yet-vacuumed TOAST OID, which would result in an error similar to "unexpected chunk number 0 (expected 1) for toast value nnnnn"
Fix "CREATE TABLE ... LIKE" with bigint identity columns on 32-bit platforms
Fix memory leak within the runtime of a query that repeatedly executes hash joins
Several crash fixes around queries using GROUPING SET
Avoid failure if a query-cancel or session-termination interrupt occurs while committing a prepared transaction
Reduce locking during autovacuum worker scheduling, which prevents loss of potential worker concurrency
Fix possible slow execution of REFRESH MATERIALIZED VIEW CONCURRENTLY
Several fixes around query plans that use "index-only" scans
Avoid deadlocks in concurrent CREATE INDEX CONCURRENTLY commands that are run under SERIALIZABLE or REPEATABLE READ transaction isolation
Several fixes for SP-GiST indexes, including one collation-aware searches on text columns
Fixes related to counting the number of tuples in partial GiST, SP-GiST, and Bloom indexes
Several fixes for logical decoding and replication
Fix misquoting of values for list-valued GUC variables (e.g. local_preload_libraries, session_preload_libraries, shared_preload_libraries, temp_tablespaces) in dumps
Several fixes for pg_stat_activity
Several fixes for ecpg
Fix for pg_recvlogical to ensure compatibility with PostgreSQL versions released before 10
Several fixes for pg_rewind
1.22.2:
* Include the Negator when reverse engineering SQL for operators
* Fix the psql plugin command on OSX to work more reliably
* Prevent a crash in some situtions where the database connection is lost and needs to be reset.
* Fix display of elapsed query time for queries running longer than 1 hour
1.22.1:
* Don't barf when connecting to Greenplum or Greenplum HAWQ
* Fix selection of conversion functions in the CREATE CONVERSION dialogue
* Properly quote type names in the Type dialogue, and ensure range information is displayed for existing types
Notable changes since 1.0.0:
- RSQLite has been rewritten (essentially from scratch) in C++ with
Rcpp.
- You can now use SQLite’s URL specification for databases.
- Queries, query parameters and table data are always converted to
UTF-8 before being sent to the database.
- New strategy for prepared queries. Create a prepared query with
dbSendQuery() or dbSendStatement() and bind values with dbBind().
- dbSendQuery(), dbGetQuery(), dbSendStatement() and dbExecute() also
support inline parameterised queries.
- Improve column type inference.
- dbFetch() uses the same row name strategy as dbReadTable().
- dbColumnInfo() will now return information even before you’ve
retrieved any data.
- New sqliteVersion() prints the header and library versions of
RSQLite.
- Deprecation warnings are given only once, with a clear reference to
the source.
- datasetsDb() now returns a read-only database, to avoid
modifications to the installed file.
- Values of class "integer64" are now supported for dbWriteTable() and
dbBind().
- New connections now automatically load default RSQLite extensions.
- Implement dbUnquoteIdentifier().
=== 5.8.0 (2018-05-01)
* Don't mark SQLAnywhere as supporting WITH in INSERT statement (jeremyevans)
* Support :search_path as a shard option on PostgreSQL (jeremyevans)
* Add Dataset#nowait for raising a Sequel::DatabaseLockTimeout when a locked row is encountered, supported on PostgreSQL, MySQL 8+, MSSQL, and Oracle (jeremyevans)
* Support Dataset#skip_locked on MySQL 8+ (jeremyevans)
* Make schema modification methods in the pg_enum extension work on a frozen Database object (jeremyevans)
* Support common table expressions and window functions on MySQL 8+ (jeremyevans)
* Ignore Dataset#explain :extended option on MySQL 5.7+, since extended output is then the MySQL default (jeremyevans)
* Work around REGEXP BINARY not working correctly on MySQL 8+ by using REGEXP_LIKE with the 'c' match_type (jeremyevans)
* Force correct column order in Database#foreign_key_list on MySQL (jeremyevans)
* Add ConnectionPool#connection_expiration_random_delay to connection_expiration extension, to avoid thundering herd if preallocating connections (hex2a, jeremyevans) (#1503)
* Emit deprecation warning in association_proxies plugin if using #filter on an association proxy, since behavior will change on ruby 2.6+ (utilum) (#1497)
* Handle multiple add_constraint calls and a set_column_null call in the same alter_table block on SQLite (jeremyevans) (#1498)
* Add Database#rename_enum to the pg_enum extension (AlexWayfer) (#1495)
* Make tactical_eager_loading plugin respect the :allow_eager association option (jeremyevans) (#1494)
* Add pg_auto_constraint_validations plugin, for automatically converting constraint violations to validation failures on PostgreSQL (jeremyevans)
* Don't make Model#_valid? public in the error_splitter plugin (jeremyevans)
* Support Database#indexes :include_partial option on PostgreSQL for including partial indexes (jeremyevans)
* Include more diagnostic information in Database#error_info on PostgreSQL (jeremyevans)
* Support Database#foreign_key_list :reverse option on PostgreSQL for parsing foreign key constraints that reference a given table (jeremyevans)
* Add Database#check_constraints on PostgreSQL for parsing CHECK constraints (jeremyevans)
* Don't use identity columns if :serial=>true or :type=>:serial|:bigserial column options are used (#1490) (jeremyevans)
* Cache Dataset#select_all datasets if no arguments are given (jeremyevans)
* Cache Dataset#returning datasets if no arguments are given (jeremyevans)
* Cache Dataset#qualify datasets if no argument is given (jeremyevans)
* Cache Dataset#lateral datasets (jeremyevans)
* Cache Dataset#from_self datasets if no options are given (jeremyevans)
* Cache Dataset#distinct datasets if no arguments or block is given (jeremyevans)
=== 5.7.0 (2018-04-01)
* Add Sequel.start_timer and .elapsed_seconds_since for more accurate elapsed time calculations on ruby 2.1+ (jeremyevans)
* Run Dataset#with_sql_{all,each,first,single_value} using a cached dataset to avoid clobbering the dataset's columns (jeremyevans)
* Add Database#convert_serial_to_identity on PostgreSQL 10.2+, which requires superuser access (jeremyevans)
* Fix Database#server_version when connecting to PostgreSQL 10.1+ in certain cases (jeremyevans)
* Free temporary clobs in the jdbc/oracle adapter to prevent a memory leak (jeremyevans) (#1482)
* Treat prepared statement errors due to changing types as disconnect errors in the postgres adapter (jeremyevans) (#1481)
* Add integer64 extension for treating Integer as a 64-bit integer when used as a generic type (jeremyevans)
* Allow many_to_pg_array remove_all_* method cast appropriately to work correctly for non-integer types (jeremyevans)
* Fix array_type for pg_array_to_many and many_to_pg_array associations in pg_array_associations plugin (jeremyevans)
* Use identity columns instead of serial columns for primary keys on PostgreSQL 10.2+ (jeremyevans)
* Support :identity option when creating columns on PostgreSQL 10+ to create identity columns (jeremyevans)
* Add Dataset#overriding_{system,user}_value on PostgreSQL for use with PostgreSQL 10+ identity columns (jeremyevans)
* Set :auto_increment schema entry correctly for PostgreSQL 10+ identity columns (jeremyevans)
0.5.1 (2018/04/11)
New Features
* None
Bug Fixes
* Fix with --with-mysql-dir (#952)
* Prevent command out of sync errors with Prepared Statements (#956, #957, #958)
Changes
* Specs: Use the prepared statement performance schema if available (#960)
* README mysql2 0.5.x works with Rails 5.0.7, 5.1.6, and higher
* README be sure to read about the known limitations of prepared statements
Wed Feb 28 2018 version 0.99999 released
* update to compile with newer Ruby releases, thanks
Lars Kanis for patch
* added ODBC::Database.login_timeout to get/set the
SQL_LOGIN_TIMEOUT connection attribute
Wed Feb 15 2017 version 0.99998 released
* minor update to compile with Ruby 2.4, thangs to Kevin Deisz
* preset output vars before SQLColAttributes() call
patch-ab no longer needed just since 15 Jan 2018(!)
5 years worth of changes including:
- C++11 is now required. Your compiler must have shared_ptr, noexcept, etc.
- Removed pqxx::items. Use the new C++11 initialiser syntax.
- Removed maketemporary. We weren't using it.
- Can now be built outside the source tree.
- New, simpler, lambda-friendly transactor framework.
- New, simpler, prepared statements and parameterised statements.
- Result rows can be passed around independently.
- New exec0(): perform query, expect zero rows of data.
- New exec1(): perform query, expect (and return) a single row of data.
- New exec_n(): perform query, expect exactly n rows of data.
- No longer defines Visual Studio's NOMINMAX in headers.
- Much faster configure script.
- Most configuration items are gone.
- Retired all existing capability flags.
- Documentation on readthedocs.org, thanks Tim Sheerman-Chase.
- Expose SQLSTATE error codes in sql_error exceptions.
- Adds a first-generation parser for SQL arrays.
Changes in MySQL 5.7.22:
Deprecation and Removal Notes
These compatibility SQL modes are now deprecated and will be removed in MySQL 8.0: DB2, MAXDB, MSSQL, MYSQL323, MYSQL40, ORACLE, POSTGRESQL, NO_FIELD_OPTIONS, NO_KEY_OPTIONS, NO_TABLE_OPTIONS. These deprecations have two implications:
Assigning a deprecated mode to the sql_mode system variable produces a warning.
With the MAXDB SQL mode enabled, using CREATE TABLE or ALTER TABLE to add a TIMESTAMP column to a table produces a warning.
Statements that use these deprecated SQL modes may fail when replicated from a MySQL 5.7 master to a MySQL 8.0 slave, or may have different effects on master and slave. To avoid such problems, applications that use the modes deprecated in MySQL 5.7 should be revised not to use them.
Test Suite Notes
Reduction of compiler and platform differences in GIS handling of floating-point results enables simplification of related test cases that no longer need rounding to avoid spurious test failures.
X Plugin Notes
X Plugin connection attempts using the X Protocol did not return an error when the default database specified in the connection options was invalid, and the connection was allowed with a null default database. Connection attempts using the classic MySQL protocol did return an error and disallowed the connection. X Protocol connection attempts now also disallow the connection if an invalid schema is specified.
Functionality Added or Changed
Replication: Changes introduced in version 8 which enable XCom to identify members using the concept of an incarnation have been merged in to version 5.7. These underlying changes add a UUID to members each time they join a group and this information can be used to distinguish among different member incarnations.
Replication: It is now possible to specify whether information written into the binary log enables replication slaves to parallelize based on commit timestamps, or on transaction write sets.
JSON: The JSON_MERGE() function is renamed to JSON_MERGE_PRESERVE().
JSON: Added the JSON utility function JSON_PRETTY(), which prints an existing JSON value, or any string that can successfully be parsed as a JSON document, in a format that can be easily read by humans. Each JSON object member or array value is displayed on a separate line of the output; each child object or array is intended 2 spaces with respect to its parent.
Bugs Fixed
Version 5.0.5 (2018-04-25)
------------------------------
- This version officially supports the new PostgreSQL 10.
- The memory for the string with the number of rows affected by a classic pg
module query() was already freed (bug report and fix by Peifeng Qiu).
Ok OWNER.
- Fixed long-standing bug in 3.x regarding using column aliases with
queries that utilize the ModelCursorWrapper (typically queries with
one or more joins).
- Fix typo in model metadata code, thanks @klen.
- Add examples of using recursive CTEs to docs.
5.26.2:
Security
[CVE-2018-6797] heap-buffer-overflow (WRITE of size 1) in S_regatom (regcomp.c)
A crafted regular expression could cause a heap buffer write overflow, with control over the bytes written.
[CVE-2018-6798] Heap-buffer-overflow in Perl__byte_dump_string (utf8.c)
Matching a crafted locale dependent regular expression could cause a heap buffer read overflow and potentially information disclosure.
[CVE-2018-6913] heap-buffer-overflow in S_pack_rec
pack() could cause a heap buffer write overflow with a large item count.
Assertion failure in Perl__core_swash_init (utf8.c)
Control characters in a supposed Unicode property name could cause perl to crash. This has been fixed.
Updated Modules and Pragmata
Module::CoreList has been upgraded from version 5.20170922_26 to 5.20180414_26.
PerlIO::via has been upgraded from version 0.16 to 0.17.
Term::ReadLine has been upgraded from version 1.16 to 1.17.
Unicode::UCD has been upgraded from version 0.68 to 0.69.
Selected Bug Fixes
The readpipe() built-in function now checks at compile time that it has only one parameter expression, and puts it in scalar context, thus ensuring that it doesn't corrupt the stack at runtime.
Fixed a use after free bug in pp_list introduced in Perl 5.27.1.
Parsing a sub definition could cause a use after free if the sub keyword was followed by whitespace including newlines (and comments).
The tokenizer now correctly adjusts a parse pointer when skipping whitespace in an ${identifier} construct.
Accesses to ${^LAST_FH} no longer assert after using any of a variety of I/O operations on a non-glob.
sort now performs correct reference counting when aliasing $a and $b, thus avoiding premature destruction and leakage of scalars if they are re-aliased during execution of the sort comparator.
Some convoluted kinds of regexp no longer cause an arithmetic overflow when compiled.
Fixed a duplicate symbol failure with -flto -mieee-fp builds. pp.c defined _LIB_VERSION which -lieee already defines.
A NULL pointer dereference in the S_regmatch() function has been fixed.
Failures while compiling code within other constructs, such as with string interpolation and the right part of s///e now cause compilation to abort earlier.
- Added support for SQLite's new ON CONFLICT clause, which is modelled
on the syntax used by Postgresql and will be available in SQLite
3.24.0 and onward.
- Added better support for using common table expressions and a
cleaner way of implementing recursive CTEs, both of which are also
tested with integration tests (as opposed to just checking the
generated SQL).
- Modernized the CI environment to utilize the latest MariaDB
features, so we can test window functions and CTEs with MySQL (when
available).
- Reorganized and unified the feature-flags in the test suite.
- Added ValuesList for representing values lists.
- DateTimeField, DateField and TimeField will parse formatted-string
before sending to the database. Previously this only occurred when
reading values from the database.
- Smarter handling of model-graph when dealing with compound queries
(union, intersect, etc).
- If the same column-name is selected multiple times, first value
wins.
- If ModelSelect.switch() is called without any arguments, default to
the query's model.
- Fix issue where cloning a ModelSelect query did not result in the
joins being cloned.
=== Bug fixes
Engine::
- Harden periodically check to avoid endless flush loop
Ingest::
- Don't allow referencing the pattern bank name in the pattern bank
Java High Level REST Client::
- Bulk processor#awaitClose to close scheduler
Java Low Level REST Client::
- REST client: hosts marked dead for the first time should not be
immediately retried
Network::
- Cross-cluster search and default connections can get crossed
Percolator::
- Fixed bug when non percolator docs end up in the search hits
- Fixed a msm accounting error that can occur during analyzing a
percolator query
- Fix more query extraction bugs.
- Fix some query extraction bugs.
Plugins::
- Plugins: Fix native controller confirmation for non-meta plugin
Search::
- Propagate ignore_unmapped to inner_hits
Settings::
- Archive unknown or invalid settings on updates
3.14.0
======
Features
--------
- Add one() function to the ResultSet API
- Create an utility function to fetch concurrently many keys from the
same replica
- Allow filter queries with fields that have an index managed outside
of cqlengine
- Twisted SSL Support
- Support IS NOT NULL operator in cqlengine
Other
-----
- Fix Broken Links in Docs
- Reevaluate MONKEY_PATCH_LOOP in test codebase
- Remove CASS_SERVER_VERSION and replace it for CASSANDRA_VERSION in
tests
- Refactor CASSANDRA_VERSION to a some kind of version object
- Log warning when driver configures an authenticator, but server does
not request authentication
- Warn users when using the deprecated
Session.default_consistency_level
- Add DSE smoke test to OSS driver tests
- Document long compilation times and workarounds
- Improve error for batch WriteTimeouts
- Deprecate ResultSet indexing
3.13.0
======
Features
--------
- cqlengine: LIKE filter operator
- Support cassandra.query.BatchType with cqlengine BatchQuery
Bug Fixes
---------
- AttributeError: 'NoneType' object has no attribute 'add_timer'
- Support retry_policy in PreparedStatement
- __del__ method in Session is throwing an exception
- LZ4 import issue with recent versions
- ResponseFuture._connection can be None when returning request_id
- ResultSet.was_applied doesn't support batch with LWT statements
Other
-----
- cqlengine: avoid warning when unregistering connection on shutdown
- Fix DeprecationWarning of log.warn
- Fix example_mapper.py for python3
- Possible deadlock on cassandra.concurrent.execute_concurrent
- Add some known deprecated warnings for 4.x
- Remove copyright dates from copyright notices
- Remove "Experimental" tag from execution profiles documentation
- request_timer metrics descriptions are slightly incorrect
- Remove "Experimental" tag from cqlengine connections documentation
- Set in documentation default consistency for operations is LOCAL_ONE
2.5:
- abstract layer now handles auxiliary classes
- pwdLAstSet in AD is valid for 0 and -1
- fixed extend.novell.get_universal_password
- entryUUID is properly validated in search filters
- custom attribute formatters are properly applied when parsing the search filter
- REUSABLE strategy now honours credentials when changed in the original connection
- add operation doesn't change passed attribute dict anymore
- missing entry's attribute return False when searching instead of raising an exception
- fixed ad_timestamp evaluation for integers
- wrong exception raised when user name is empty in simple binding
- exception is raised if size limit is exceed when searchin in mocking strategies with raise_exceptions=True
- fixed validator for novell guid
- fixed validator for openldap EntryUUID
- fixed validator for AD objectGUID, now follows MS-DTYP
- fixed formatter for AD objectGUID
- fixed exception when adding binary values
- added escape_rdn_chars() to ldap3.utils.dn for safe checking untrusted input while building DNs
- fixed search for binary values in mock strategies
- fixed exception with unicode chars in subfilters for python 2
- connection.extend.paged_search() doens't miss the last entries anymore when size limit is exceeded for the search on the server
- validators are not applied when loading data from json dump in Mock strategies
- additional validator to check for erroneous bytes to string conversion in Python 3
- additional formatter and validator to check for generalizedtime with 0 year
- added ADDITIONAL_CLIENT_ENCODINGS parameter
- fixed AD dir_sync extended operation
- ad_unlock_account works properly
- added Microsoft security descriptor control
- fixed search in mock strategies when raise_exceptions=True
- formatters never raise exceptions but returns the raw_value when unable to format
- fixed comtrols duplication in paged search