Changes in MySQL 5.6.43:
Functionality Added or Changed
Microsoft Windows: The access control granted to clients on the named pipe created by the MySQL server now is set to the minimum necessary for successful communication on Windows. Newer MySQL client software can open named pipe connections without any additional configuration. If older client software cannot be upgraded immediately, the new named_pipe_full_access_group server system variable can be used to give a Windows group the necessary permissions to open a named pipe connection. Membership in the full-access group should be restricted and temporary.
Bugs Fixed
Replication: A patch to correct the handling of quotes for identifiers in ROLLBACK TO SAVEPOINT statements in the binary log was not correctly applied to subsequent MySQL versions.
Replication: In some circumstances, the CHANGE MASTER TO statement could not be used on a replication slave if the master info log had been changed from a table (master_info_repository=TABLE) into a file (master_info_repository=FILE).
Replication: The value returned by a SHOW SLAVE STATUS statement for the total combined size of all existing relay log files (Relay_Log_Space) could become much larger than the actual disk space used by the relay log files. The I/O thread did not lock the variable while it updated the value, so the SQL thread could automatically delete a relay log file and write a reduced value before the I/O thread finished updating the value. The I/O thread then wrote its original size calculation, ignoring the SQL thread's update and so adding back the space for the deleted file. The Relay_Log_Space value is now locked during updates to prevent concurrent updates and ensure an accurate calculation.
Replication: If the relay log index file was temporarily locked for viewing by a backup process for a replication slave, and MySQL Server also attempted to access the file at that time for rename or delete operations, the backup completed with warnings, but MySQL Server experienced an unexpected halt. MySQL Server now retries the file access operation a number of times in case this or a similar scenario is the explanation and the file becomes available again before long.
The server permitted creation of databases with the same name as redo log files, which could result in unexpected server behavior. Such names are no longer permitted as database names.
When a subquery contained a UNION, the count of the number of subquery columns was calculated incorrectly.
Comparing log file names as strings using the memcmp() function resulted in uninitialized memory read errors. The comparison now uses the strncmp() function. Thanks to Zsolt Parragi and Laurynas Biveinis for their contributions.
The transformation of IN subquery predicates into semijoins was not handled correctly for a very large number of tables.
Executing a prepared statement to do a multiple-row insert with large number of placeholders consumed excessive memory and could execute slowly.
The parser accepted invalid SET statement syntax in trigger definitions that could result in a server exit.
MyISAM index corruption could occur for bulk-insert and table-repair operations that involve the repair-by-sorting algorithm and many (more than 450 million) rows.
A query employing a dynamic range and an index merge could use more memory than expected.
What's new in psycopg 2.7.7
- Cleanup of the cursor results assignment code, which might have solved
double free and inconsistencies in concurrent usage.
- Wheel package compiled against OpenSSL 1.0.2q.
=== 5.17.0 (2019-02-01)
* Support skip_auto_validations instance method in auto_validations plugin
(oldgreen, jeremyevans) (#1592)
* Support :preconnect_extensions Database option for loading extensions before
:preconnect option (jeremyevans)
* Avoid usage of Proc.new with implicit block as ruby 2.7+ deprecates this
behavior (jeremyevans)
* Allow Sequel[].as to be used for constructing aliases with eager_graph
(e.g. Model.eager_graph(Sequel[:a].as(:b))) (jeremyevans) (#1588)
[Bug Fixes]
- Fixed a test failure with the MySQL max limit value, mostly exhibited
on BSD platforms.
- Removed fallback in the PostgreSQL engine on the `$PGUSER` and
`$PGPASSWORD` environnement variables, as well as the system username,
since libpq does all that automatically, and collects data from other
sources that we did not (e.g., the password and connection service
files). Thanks to Tom Bloor for the report (issue #410).
- Changed dependency validation to prevent an error when a change required
from a different project has been reworked. Previously, when a when
requiring a change such as `foo:greeble`, Sqitch would raise an error if
`foo:greeble` was reworked, suggesting that the dependency be
tag-qualified to eliminate ambiguity. Now reworked dependencies may be
required without tag-qualification, though tag-qualification should still
be specified if functionality as of a particular tag is required.
- Added a workaround for the shell quoting issue on Windows. Applies to
IPC::System::Simple 1.29 and lower. See
[pjf/ipc-system-simple#29](https://github.com/pjf/ipc-system-simple/pull/29)
for details (#413).
- Fixed an issue with the MariaDB client where a deploy, revert, or
verify failure was not properly propagated to Sqitch. Sqitch now passes
`--abort-source-on-error` to the Maria `mysql` client to ensure that
SQL errors cause the client to abort with an error so that Sqitch can
properly handle it. Thanks to @mvgrimes for the original report and,
years later, the fix (#209).
- Fixed an issue with command argument parsing so that it truly never
returns a target without an engine specified, as documented.
- Removed documentation for methods that don't exist.
- Fixed test failures due to a change in Encode v2.99 that's stricter
about `undef` arguments that should be defined.
[Improvements]
- The Snowflake engine now consults the `connections.warehousename`,
`connections.dbname`, and `connections.rolename` variables in the
SnowSQL configuration file (`~/.snowsql/config`) before falling back on
the hard-coded warehouse name "sqitch" and using the system username as
the database name and no default for the role.
- Switched to using a constant internally to optimize windows-specific
code paths at compile time.
- When `deploy` detects undeployed dependencies, it now eliminates
duplicates before listing them in the error message.
- Now requiring IO::Pager v0.34 or later for its more consistent
interface.
- Added notes about creating databases to the tutorials. Thanks to Dave
Rolsky for the prompt (#315).
- Added a status message to tell the user when the registry is being
updated, rather than just show each individual update. Thanks to Ben
Hutton for the suggestion (#276).
- Added support for a `$SQITCH_TARGET` environment variable, which takes
precedence over all other target specifications except for command-line
options and arguments. Thanks to @mvgrimes for the suggestion (#203).
- Fixed target/engine/change argument parsing so it won't automatically
fail when `core.engine` isn't set unless no targets are found. This
lets engines be determined strictly from command-line arguments --
derived from targets, or just listed on their own -- whether or not
`core.engine` is set. This change eliminates the need for the
`no_default` parameter to the `parse_args()` method of App::Sqitch
Command. It also greatly reduces the need for the core `--engine`
option, which was previously required to work around this issue (see
below for its removal).
- Refactored config handling in tests to use a custom subclass of
App::Sqitch::Config instead of various mocks, temporary files, and the
like.
- Added advice to use the PL/pgSQL `ASSERT()` function for verify scripts
to the Postgres tutorial. Thanks to Sergii Tkachenko for the PR (#425).
[Target Variables]
- The `verify` command now reads `deploy.variables`, and individual
`verify.variables override `deploy.variables`, on the assumption that
the verify variables in general ought to be the same as the deploy
variables. This makes `verify` variable configuration consistent with
`revert` variable configuration.
- Variables set via the `--set-deploy` option on the `rebase` and
`checkout` commands no longer apply to both reverts and deploys, but
only deploys. Use the `--set` option to apply a variable to both
reverts and deploys.
- Added support for core, engine, and target variable configuration. The
simplest way to use them is via the `--set` option on the `init`,
`engine`, and `target` commands. These commands allow the configuration
of database client variables for specific engines and targets, as well
as defaults that apply to all change execution commands (`deploy`,
`revert`, `verify`, `rebase`, and `checkout`). The commands merge the
variables from each level in this priority order:
* `--set-deploy` and `--set-revert` options on `rebase` and `checkout`
* `--set` option
* `target.$target.variables`
* `engine.$engine.variables`
* `deploy.variables`, `revert.variables`, and `verify.variables`
* `core.variables`
See `sqitch-configuration` for general documentation of of the
hierarchy for merging variables and the documentation for each command
for specifics.
[Options Unification]
- Added the `--chdir`/`--cd`/`-C` option to specify a directory to change
to before executing any Sqitch commands. Thanks to Thomas Sibley for
the suggestion (#411).
- Added the `--no-pager` option to disable the pager (#414).
- Changed command-line parsing to allow core and command options to
appear anywhere on the line. Previously, core options had to come
before the command name, and command options after. No more. The caveat
is that command options that take arguments should either appear after
the command or use the `--opt=val` syntax instead of `--opt val`, so
that Sqitch doesn't think `val` is the command. Even in that case, it
will search the rest of the arguments to find a valid command.
However, to minimize this challenge, the documentation now suggests
and demonstrates putting all options after the command, like so:
`sqitch [command] [options]`.
- Simplified and clarified the distinction between core and command
options by removing all options from the core except those that affect
output and runtime context. The core options are:
* -C --chdir --cd <dir> Change to directory before performing any actions
* --etc-path Print the path to the etc directory and exit
* --no-pager Do not pipe output into a pager
* --quiet Quiet mode with non-error output suppressed
* -V --verbose Increment verbosity
* --version Print the version number and exit
* --help Show a list of commands and exit
* --man Print the introductory documentation and exit
- Relatedly, single-letter core options will now always be uppercase,
while single-letter command options will be lowercase. As such, `-V`
has been added as an alias for `--version`, although `-v` remains for
now, undocumented. It may be removed in the future should a compelling
use for `-v` in a command be discovered.
- All other options have been moved to the commands they affect. Their
use should remain mostly unchanged now that command options are parsed
from anywhere on the command-line, although we recommend that all
options come after commands. The options were moved as follows:
* `--registry`, `--client`, `--db-name`, `--db-user`, `--db-host`, and
`--db-port` (and their aliases) have been moved to the `checkout`,
`deploy`, `log`, `rebase`, `revert`, `status`, `upgrade`, and
`verify` commands.
* `--plan-file` and `--top-dir` (deprecated; see below) have been moved
to the `add`, `bundle`, `checkout`, `deploy`, `rebase`, `revert`,
`rework`, `show`, `status`, `tag`, and `verify` commands. They were
already supported by the `init`, `engine`, and `target` commands
(where `--top-dir` is not deprecated).
- Because some command options conflicted with core options, a few
options have been removed altogether, including:
* The `--verbose` option on the `--engine` and `--target` commands has
been removed, but no visible change should be apparent, since those
commands now read the core `--verbose` option.
* The undocumented `--dir` alias for `--top-dir` has been removed, as
it conflicted with the option of the same name but different meaning
in the `init`, `engine`, and `target` commands.
* The `-d` alias for `--set-deploy` in the `rebase` and `checkout`
commands has been changed to `-e` so as not to conflict with the `-d`
alias for `--db-name`.
* Added tests for all commands to ensure none of their options conflict
with core options. Will help prevent conflicts in the future.
[Deprecations & Removals]
- Deprecated the `--top-dir` option in favor of `--chdir` with a warning
except when used for configuration in the `init`, `engine`, and
`target` commands.
- Removed the core `--deploy-dir`, `--revert-dir`, and `--verify-dir`
options, which have been deprecated and triggering warnings since
v0.9993 (August 2015). The `--dir` option to the `init`, `engine`, and
`target` commands remains the favored interface for specifying script
directories.
- Removed the deprecated core `--engine` option. The `init` command still
supports it, while other commands are able to parse the engine name as
an argument — e.g., `sqitch deploy mysql` — or implicitly as part of a
target, as in `sqitch revert db:pg:tryme`. When Sqitch is unable to
determine the engine for a command, the error message no longer
mentions `--engine` and instead suggests specifying the engine via the
target. This option never triggered an error, but demonstration of its
use has been limited to `init` examples.
- Removed support for reading the `core.$engine` configuration, which has
been deprecated with warnings in favor of `engine.$engine` since 0.997
(November 2014). The `sqitch engine update-config` action remains
available to update old configurations, but may be removed in the
future.
- Removed the `--deploy`, `--revert`, and `--verify` options on the `add`
command, as well as their `--no-*` variants. They have been deprecated
with warnings in favor of the `--with` and `--without` options since
v0.990 (January 2014).
- Removed the `--deploy-template`, `--revert-template`, and
`--verify-template` options to the `add` command. They have been
deprecated with warnings in favor of the `--use` option since v0.990
(January 2014).
- Removed the `add.deploy_template`, `add.revert_template`, and
`add.verify_template` configuration settings. They have been deprecated
with warnings in favor of the `add.templates` configuration section
since v0.990 (January 2014).
- Removed the `@FIRST` and `@LAST` symbolic tags, which have been
deprecated with warnings in favor of `@ROOT` and `@HEAD`, respectively,
since 0.997 (November 2014).
- Removed the command-specific options with the string "target" in them,
such as `--to-target`, `--upto-target`, which have been deprecated with
warnings in in favor of options containing the string "change", such as
`--to-change` and `--upto-change`, since v0.997 (November 2014).
- Remove the `engine` and `target` command `set-*` actions and their
corresponding methods, which have been deprecated in favor of the
`alter` action since v0.9993 (August 2015).
- Removed the automatic updating of change and tag IDs in the Postgres
engine. This functionality was added in v0.940 (December 2012), when
Postgres was the only engine, and the SHA-1 hash for change and tag IDs
was changed. There were very few deployments at the time, and all
should long since have been updated.
[API Changes]
- Added the URI-overriding parameters `user`, `host`, `port`, and
`dbname` to App::Sqitch::Target so that command options can be used to
easily set them.
- Added support for passing attribute parameters to the `all_targets`
group constructor on App::Sqitch::Target, so that command-line options
can be used to assign attributes to all targets read from the
configuration.
- Aded the `target_params` method to App::Sqitch::Command and updated all
commands to use it when constructing targets. This allows commands to
define options for Target parameters, as required for moving options to
commands as described above.
- Added the `class_for` method to App::Sqitch::Command so that the new
options parser described above can load a command class without
instantiating an instance. Useful for searching command-line arguments
for a command name.
- Added the `create` constructor to App::Sqitch::Command to let Sqitch
instantiate an instance of a command once it finds one via `class_for`.
Previously, Sqitch used the `load` method, which handled the
functionality of both `class_for` and `create`. That method still
exists but is used only in tests.
- Added the ConnectingCommand role to define database connection options
for the commands that need them.
- Added the ContextCommand role to define command options for the
location of the plan file and top directory. This is also where use of
the deprecated form of `--top-dir` triggers a warning.
- Removed the `verbosity` attribute from App::Sqitch::Command::engine and
App::Sqitch::Command::target, since the `--verbose` option is no longer
needed. These commands now rely on the core `--verbose` option.
- Removed the copying of core options from the target class and
TargetConfigCommand role, since the attributes fetched from there are
no longer core options, but provided as attribute parameters to the
constructors by commands.
- Removed documentation for the optional `config` parameter to the
`all_targets` constructor of App::Sqitch::Target, since it was never
used by Sqitch. It always fetched the config from the required `sqitch`
parameter. Support for the `config` parameter has not been removed,
since third-parties might use it.
- Removed the `set_*` methods in the `engine` and `target` commands,
which have been deprecated in favor of the new `alter` method since
v0.9993 (August 2015).
- Removed the `old_id` and `old_info` methods from Change and Tag, which
date from v0.940 (December 2012), and were provided only to allow
existing Postgres databases to be updated from the old to new ID
format, now removed. There should be no other use case for these
methods.
As discussed on tech-pkg, icons and application resources should be
installed uniformly on all Unix platforms. Previously, CMakeLists.txt
excluded these on Darwin but not on other Unix platforms.
Consequently, the PLIST was broken on Darwin. This was fixed with
upstream commit 21d8800ce613775c995212f61d7e95c2189f6da6, which has
been backported here to v3.8.0.
While here, add two buildlink3.mk files, also discussed on tech-pkg,
that should have been present all along but for some reason were not.
In the released distfile on PyPI for ldap3-2.5.2
ldap3/protocol/sasl/digestMd5.py was accidentally empty.
Populate it based on the v2.5.2.tar.gz distfile on GitHub.
PKGREVISION++
3.1.0:
* Connection URLs must have one of the following schemes:
redis://, rediss://, unix://.
* Fixed an issue with retry_on_timeout logic that caused some TimeoutErrors
to be retried.
* Added support for SNI for SSL.
* Fixed ConnectionPool repr for pools with no connections.
* Fixed GEOHASH to return a None value when specifying a place that
doesn't exist on the server.
* Fixed XREADGROUP to return an empty dictionary for messages that
have been deleted but still exist in the unacknowledged queue.
* Added an owned method to Lock objects. owned returns a boolean
indicating whether the current lock instance still owns the lock.
* Allow lock.acquire() to accept an optional token argument. If
provided, the token argument is used as the unique value used to claim
the lock.
* Added a reacquire method to Lock objects. reaquire attempts to renew
the lock such that the timeout is extended to the same value that the
lock was initially acquired with.
* Stream names found within XREAD and XREADGROUP responses now properly
respect the decode_responses flag.
* XPENDING_RANGE now requires the user the specify the min, max and
count arguments. Newer versions of Redis prevent ount from being
infinite so it's left to the user to specify these values explicitly.
* ZADD now returns None when xx=True and incr=True and an element
is specified that doesn't exist in the sorted set. This matches
what the server returns in this case.
* Added client_kill_filter that accepts various filters to identify
and kill clients.
* Fixed a race condition that occurred when unsubscribing and
resubscribing to the same channel or pattern in rapid succession.
* Added a LockNotOwnedError that is raised when trying to extend or
release a lock that is no longer owned. This is a subclass of LockError
so previous code should continue to work as expected.
* Fixed a bug in GEORADIUS that forced decoding of places without
respecting the decode_responses option.
1.0.7
[bug] [autogenerate] Fixed issue in new comment support where autogenerated Python code for comments wasn’t using repr() thus causing issues with quoting
1.2.17
[orm] [feature] Added new event hooks QueryEvents.before_compile_update() and QueryEvents.before_compile_delete() which complement QueryEvents.before_compile() in the case of the Query.update() and Query.delete() methods.
[orm] [bug] Fixed issue where when using single-table inheritance in conjunction with a joined inheritance hierarchy that uses “with polymorphic” loading, the “single table criteria” for that single-table entity could get confused for that of other entities from the same hierarchy used in the same query.The adaption of the “single table criteria” is made more specific to the target entity to avoid it accidentally getting adapted to other tables in the query.
[postgresql] [bug] Revised the query used when reflecting CHECK constraints to make use of the pg_get_constraintdef function, as the consrc column is being deprecated in PG 12. Thanks to John A Stevenson for the tip.
[oracle] [bug] Fixed regression in integer precision logic due to the refactor of the cx_Oracle dialect in 1.2. We now no longer apply the cx_Oracle.NATIVE_INT type to result columns sending integer values (detected as positive precision with scale ==0) which encounters integer overflow issues with values that go beyond the 32 bit boundary. Instead, the output variable is left untyped so that cx_Oracle can choose the best option
Upstream changes:
1.62 2018-12-29
- Switched to a production version
1.61_04 2018-12-22
- Added sqlite_db_config method and new constants for it
- Added sqlite_defensive option to disallow dangerous SQLite features
- Exposed some of the hidden extended result codes
1.61_03 2018-12-19
- Upgraded SQLite to 3.26.0, which reportedly has a security fix
1.61_02 2018-12-01
- Added sqlite_backup_from_dbh/sqlite_backup_to_dbh methods
- Introduced sqlite_prefer_numeric_type database handle attribute
that changes the value of TYPE statement handle attribute
from an array of string to an array of integer, as an experimental
feature. Setting this may break your applications.
- Changed preferred bugtracker
1.61_01 2018-12-01
- Added ability to configure SQLITE_MAX_LENGT with environmental
variable (Roy Storey)
- Added sqlite_limit database handle method to change run-time limits
- Upgraded SQLite to 3.25.3
- Updated constants
Upstream changes:
2018-10-25 Daniël van Eeden, Patrick Galbraith,
DBI/DBD community (4.050)
* Fix SQL syntax for statements that have "...limit = ?" #288
* Make tests pass on MySQL 4.1 #286
* Travis-CI: Install Test::Deep #281
* Fix undefined ssl_verify_set on MySQL 5.0 and before #283
* Fix compilation on MySQL 4.1 #283
* Move Travis to dbdeployer (#284) #284
* Fix compiling on 8.0.0 and 8.0.1 #285
* Fix compatibility with MariaDB 10.3 #291
Version 3.7.2 fixes a few issues discovered since the release of 3.7.1.
- Fixed a bug in retryable writes where a previous command's "txnNumber"
field could be sent leading to incorrect results.
- Fixed a memory leak of a few bytes on some insert, update, or delete
commands when running against MongoDB 3.6+.
- Fixed a bug that caused :meth:pymongo.collection.Collection.ensure_index
to only cache a single index per database.
- Updated the documentation examples to use
:meth:pymongo.collection.Collection.count_documents instead of
:meth:pymongo.collection.Collection.count and
:meth:pymongo.cursor.Cursor.count.
== v1.1.4 [2019-01-08] Michael Granger <ged@FaerieMUD.org>
- Fix PG::BinaryDecoder::Timestamp on 32 bit systems. # 284
- Add new error-codes of PostgreSQL-11.
- Add ruby-2.6 support for Windows fat binary gems and remove ruby-2.0 and 2.1.
3.8.2
Backwards-incompatible changes
The default row-type for INSERT queries executed with a non-default RETURNING clause has changed from tuple to Model instances. This makes INSERT behavior consistent with UPDATE and DELETE queries that specify a RETURNING clause. To revert back to the old behavior, just append a call to .tuples() to your INSERT ... RETURNING query.
Removing support for the table_alias model Meta option. Previously, this attribute could be used to specify a "vanity" alias for a model class in the generated SQL. As a result of some changes to support more robust UPDATE and DELETE queries, supporting this feature will require some re-working. As of the 3.8.0 release, it was broken and resulted in incorrect SQL for UPDATE queries, so now it is removed.
New features
Added playhouse.shortcuts.ReconnectMixin, which can be used to implement automatic reconnect under certain error conditions (notably the MySQL error 2006 - server has gone away).
Bugfixes
Fix SQL generation bug when using an inline window function in the ORDER BY clause of a query.
Fix possible zero-division in user-defined implementation of BM25 ranking algorithm for SQLite full-text search.
1.0.6
feature
[feature] [operations] Added Table and Column level comments for supported backends. New methods Operations.create_table_comment() and Operations.drop_table_comment() are added. A new arguments Operations.alter_column.comment and Operations.alter_column.existing_comment are added to Operations.alter_column(). Autogenerate support is also added to ensure comment add/drops from tables and columns are generated as well as that Operations.create_table(), Operations.add_column() both include the comment field from the source Table or Column object.
0.33.11:
- Added support for creating and dropping a PostgreSQL database when using pg8000 driver
0.33.10:
- Removed optional dependency to Flask-Babel. Now using Babel instead.
1.2.16:
engine
[engine] [bug] Fixed a regression introduced in version 1.2 where a refactor of the SQLAlchemyError base exception class introduced an inappropriate coercion of a plain string message into Unicode under python 2k, which is not handled by the Python interpreter for characters outside of the platform’s encoding (typically ascii). The SQLAlchemyError class now passes a bytestring through under Py2K for __str__() as is the behavior of exception objects in general under Py2K, does a safe coercion to unicode utf-8 with backslash fallback for __unicode__(). For Py3K the message is typically unicode already, but if not is again safe-coerced with utf-8 with backslash fallback for the __str__() method.
sql
[sql] [bug] [mysql] [oracle] Fixed issue where the DDL emitted for DropTableComment, which will be used by an upcoming version of Alembic, was incorrect for the MySQL and Oracle databases.
postgresql
[postgresql] [bug] Fixed issue where a postgresql.ENUM or a custom domain present in a remote schema would not be recognized within column reflection if the name of the enum/domain or the name of the schema required quoting. A new parsing scheme now fully parses out quoted or non-quoted tokens including support for SQL-escaped quotes.
[postgresql] [bug] Fixed issue where multiple postgresql.ENUM objects referred to by the same MetaData object would fail to be created if multiple objects had the same name under different schema names. The internal memoization the PostgreSQL dialect uses to track if it has created a particular postgresql.ENUM in the database during a DDL creation sequence now takes schema name into account.
sqlite
[sqlite] [bug] Reflection of an index based on SQL expressions are now skipped with a warning, in the same way as that of the Postgresql dialect, where we currently do not support reflecting indexes that have SQL expressions within them. Previously, an index with columns of None were produced which would break tools like Alembic.
misc
Fixed issue in “expanding IN” feature where using the same bound parameter name more than once in a query would lead to a KeyError within the process of rewriting the parameters in the query
3.8.1
New features
Sqlite SearchField now supports the match() operator, allowing full-text search to be performed on a single column (as opposed to the whole table).
Changes
Remove minimum passphrase restrictions in SQLCipher integration.
Bugfixes
Support inheritance of ManyToManyField instances.
Ensure operator overloads are invoked when generating filter expressions.
Fix incorrect scoring in Sqlite BM25, BM25f and Lucene ranking algorithms.
Support string field-names in data dictionary when performing an ON CONFLICT ... UPDATE query, which allows field-specific conversions to be applied.
=== 5.16.0 (2019-01-02)
* Convert integer columns to bigint columns when copying SQLite databases to other databases using bin/sequel -C (jeremyevans) (#1584)
* Use nicer error messages for missing or empty migration directories (Lavode) (#1585)
* Make alter table emulation work correctly in SQLite 3.26.0+ (jeremyevans) (#1582)
* Do not unset new one_to_one associated objects' reciprocal associations before saving associated objects in the nested_attributes plugin (jeremyevans)
* Do not validate new one_to_one associated objects twice when saving in the nested_attributes plugin (jeremyevans)
* Fix :qualify_tables option to class_table_inheritance plugin to work correctly with subclasses of subclasses (benalavi) (#1581)
* Make class_table_inheritance plugin use the schema cache instead of sending a query to get columns for tables (kenaniah) (#1580)
* Remove loading of mysqlplus in the mysql adapter (jeremyevans)
* Make mysql adapter work correctly on ruby 2.6+ (jeremyevans)
* Add Database#rollback_on_exit to rollback transactions instead of committing them when exiting the transaction block (jeremyevans)
* Enable window functions in SQLite 3.26.0+ (jeremyevans)
* Do not override existing methods when creating Sequel::Model attribute getter/setter methods (jeremyevans) (#1578)
* Use parentheses for expressions being subscripted (e.g. (array_agg(column))[1]) (jeremyevans)
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.