Caution that (probably, absent discussion) this should not be updated
to a proprietary license version. Add link to Free fork pointed out
by Vitaly Shevtsov on pkgsrc-users@.
- Fix impl SqlOrd postgres > postgres_backend feature flag.
- Allow Queryable to be used with multiple table names.
- Update libsqlite3-sys to allow version 0.28 as well
version 3.45.2 (2024-03-12):
Fix an error in UPSERT, introduced by enhancement 3a in version 3.35.0 (2021-03-12), that could cause an index to get out-of-sync with its table. Forum thread 919c6579c8.
Reduce the scope of the NOT NULL strength reduction optimization that was added as item 8e in version 3.35.0 (2021-03-12). The optimization was being attempted in some contexts where it did not work, resulting in incorrect query results. Forum thread 440f2a2f17.
Other trifling corrections and compiler warning fixes that have come up since the previous patch release. See the timeline for details.
5.0.3
Bug Fixes
Fix breaking change: message in LockError is now optional
Maintenance
Bump release-drafter/release-drafter from 5 to 6
Bump rojopolis/spellcheck-github-actions from 0.35.0 to 0.36.0
Remove redundant async-timeout dependency
.. changelog::
:version: 1.13.1
:released: December 20, 2023
.. change::
:tags: bug, autogenerate
🎟️ 1337
Fixed :class:`.Rewriter` so that more than two instances could be chained
together correctly, also allowing multiple ``process_revision_directives``
callables to be chained. Pull request courtesy zrotceh.
.. change::
:tags: bug, environment
🎟️ 1369
Fixed issue where the method :meth:`.EnvironmentContext.get_x_argument`
using the :paramref:`.EnvironmentContext.get_x_argument.as_dictionary`
parameter would fail if an argument key were passed on the command line as
a name alone, that is, without an equal sign ``=`` or a value. Behavior is
repaired where this condition is detected and will return a blank string
for the given key, consistent with the behavior where the ``=`` sign is
present and no value. Pull request courtesy Iuri de Silvio.
.. change::
:tags: bug, autogenerate
🎟️ 1370
Fixed issue where the "unique" flag of an ``Index`` would not be maintained
when generating downgrade migrations. Pull request courtesy Iuri de
Silvio.
.. change::
:tags: bug, versioning
🎟️ 1373
Fixed bug in versioning model where a downgrade across a revision with two
down revisions with one down revision depending on the other, would produce
an erroneous state in the alembic_version table, making upgrades impossible
without manually repairing the table. Thanks much to Saif Hakim for
the great work on this.
.. change::
:tags: bug, typing
🎟️ 1377
Updated pep-484 typing to pass mypy "strict" mode, however including
per-module qualifications for specific typing elements not yet complete.
This allows us to catch specific typing issues that have been ongoing
such as import symbols not properly exported.
.. changelog::
:version: 1.13.0
:released: December 1, 2023
.. change::
:tags: bug, commands
🎟️ 1234
Fixed issue where the ``alembic check`` command did not function correctly
with upgrade structures that have multiple, top-level elements, as are
generated from the "multi-env" environment template. Pull request courtesy
Neil Williams.
.. change::
:tags: usecase, operations
🎟️ 1323
Updated logic introduced in 🎫`151` to allow ``if_exists`` and
``if_not_exists`` on index operations also on SQLAlchemy
1.4 series. Previously this feature was mistakenly requiring
the 2.0 series.
.. change::
:tags: usecase
🎟️ 1339
Replaced ``python-dateutil`` with the standard library module
`zoneinfo <https://docs.python.org/3.11/library/zoneinfo.html#module-zoneinfo>`_.
This module was added in Python 3.9, so previous version will been
to install the backport of it, available by installing the ``backports.zoneinfo``
library. The ``alembic[tz]`` option has been updated accordingly.
.. change::
:tags: installation, changed
🎟️ 1359
Alembic 1.13 now supports Python 3.8 and above.
.. change::
:tags: bug, autogenerate
🎟️ 1361
Fixed autogenerate issue where ``create_table_comment()`` and
``drop_table_comment()`` rendering in a batch table modify would include
the "table" and "schema" arguments, which are not accepted in batch as
these are already part of the top level block.
.. change::
:tags: bug, postgresql
🎟️ 1321, 1327, 1356
Additional fixes to PostgreSQL expression index compare feature.
The compare now correctly accommodates casts and differences in
spacing.
Added detection logic for operation clauses inside the expression,
skipping the compare of these expressions.
To accommodate these changes the logic for the comparison of the
indexes and unique constraints was moved to the dialect
implementation, allowing greater flexibility.
.. changelog::
:version: 1.12.1
:released: October 26, 2023
.. change::
:tags: bug, autogenerate, regression
🎟️ 1329
Fixed regression caused by 🎫`879` released in 1.7.0 where the
".info" dictionary of ``Table`` would not render in autogenerate create
table statements. This can be useful for custom create table DDL rendering
schemes so it is restored.
.. change::
:tags: bug, typing
🎟️ 1325
Improved typing in the
:paramref:`.EnvironmentContext.configure.process_revision_directives`
callable to better indicate that the passed-in type is
:class:`.MigrationScript`, not the :class:`.MigrationOperation` base class,
and added typing to the example at :ref:`cookbook_no_empty_migrations` to
illustrate.
.. change::
:tags: bug, operations
🎟️ 1335
Repaired :class:`.ExecuteSQLOp` so that it can participate in "diff"
operations; while this object is typically not present in a reflected
operation stream, custom hooks may be adding this construct where it needs
to have the correct ``to_diff_tuple()`` method. Pull request courtesy
Sebastian Bayer.
.. change::
:tags: typing, bug
🎟️ 1058, 1277
Improved the ``op.execute()`` method to correctly accept the
``Executable`` type that is the same which is used in SQLAlchemy
``Connection.execute()``. Pull request courtesy Mihail Milushev.
.. change::
:tags: typing, bug
🎟️ 930
Improve typing of the revision parameter in various command functions.
.. change::
:tags: typing, bug
🎟️ 1266
Properly type the :paramref:`.Operations.create_check_constraint.condition`
parameter of :meth:`.Operations.create_check_constraint` to accept boolean
expressions.
.. change::
:tags: bug, postgresql
🎟️ 1322
Fixed autogen render issue where expressions inside of indexes for PG need
to be double-parenthesized, meaning a single parens must be present within
the generated ``text()`` construct.
.. change::
:tags: usecase
🎟️ 1304
Alembic now accommodates for Sequence and Identity that support dialect kwargs.
This is a change that will be added to SQLAlchemy v2.1.
.. changelog::
:version: 1.12.0
:released: August 31, 2023
.. change::
:tags: bug, operations
🎟️ 1300
Added support for ``op.drop_constraint()`` to support PostgreSQL
``ExcludeConstraint`` objects, as well as other constraint-like objects
that may be present in third party dialects, by resolving the ``type_``
parameter to be ``None`` for this case. Autogenerate has also been
enhanced to exclude the ``type_`` parameter from rendering within this
command when ``type_`` is ``None``. Pull request courtesy David Hills.
.. change::
:tags: bug, commands
🎟️ 1299
Fixed issue where the ``revision_environment`` directive in ``alembic.ini``
was ignored by the ``alembic merge`` command, leading to issues when other
configurational elements depend upon ``env.py`` being invoked within the
command.
.. change::
:tags: bug, autogenerate
🎟️ 1302
Fixed issue where the ``ForeignKeyConstraint.match`` parameter would not be
rendered in autogenerated migrations. Pull request courtesy Asib
Kamalsada.
.. change::
:tags: usecase, autogenerate
🎟️ 1248
Change the default value of
:paramref:`.EnvironmentContext.configure.compare_type` to ``True``.
As Alembic's autogenerate for types was dramatically improved in
version 1.4 released in 2020, the type comparison feature is now much
more reliable so is now enabled by default.
.. change::
:tags: feature, autogenerate
🎟️ 1275
Added new feature to the "code formatter" function which allows standalone
executable tools to be run against code, without going through the Python
interpreter. Known as the ``exec`` runner, it complements the existing
``console_scripts`` runner by allowing non-Python tools such as ``ruff`` to
be used. Pull request courtesy Mihail Milushev.
.. seealso::
:ref:`post_write_hooks_config`
.. changelog::
:version: 1.11.3
:released: August 16, 2023
.. change::
:tags: bug, autogenerate, postgresql
🎟️ 1270
Improved autogenerate compare of expression based indexes on PostgreSQL
to produce fewer wrong detections.
.. change::
:tags: bug, autogenerate
🎟️ 1291
Fixed issue with ``NULLS NOT DISTINCT`` detection in postgresql that
would keep detecting changes in the index or unique constraint.
.. change::
:tags: bug, commands
🎟️ 1273
Added ``encoding="locale"`` setting to the use of Python's
``ConfigParser.read()``, so that a warning is not generated when using the
recently added Python feature ``PYTHONWARNDEFAULTENCODING`` specified in
:pep:`597`. The encoding is passed as the ``"locale"`` string under Python
3.10 and greater, which indicates that the system-level locale should be
used, as was the case already here. Pull request courtesy Kevin Kirsche.
.. changelog::
:version: 1.11.2
:released: August 4, 2023
.. change::
:tags: usecase, typing
🎟️ 1253
Added typing to the default script mako templates.
.. change::
:tags: usecase, autogenerate
🎟️ 1248
Added support in autogenerate for ``NULLS NOT DISTINCT`` in
the PostgreSQL dialect.
.. change::
:tags: bug
🎟️ 1261
Fixed format string logged when running a post write hook
Pull request curtesy of Mathieu Défosse.
.. change::
:tags: feature, operations
🎟️ 151
Added parameters if_exists and if_not_exists for index operations.
Pull request courtesy of Max Adrian.
.. changelog::
:version: 1.11.1
:released: May 17, 2023
.. change::
:tags: bug, autogenerate, regression
🎟️ 1243, 1245
As Alembic 1.11.0 is considered a major release (Alembic does not use
semver, nor does its parent project SQLAlchemy; this has been
:ref:`clarified <versioning_scheme>` in the documentation), change
🎫`1130` modified calling signatures for most operations to consider
all optional keyword parameters to be keyword-only arguments, to match what
was always documented and generated by autogenerate. However, two of these
changes were identified as possibly problematic without a more formal
deprecation warning being emitted which were the ``table_name`` parameter
to :meth:`.Operations.drop_index`, which was generated positionally by
autogenerate prior to version 0.6.3 released in 2014, and ``type_`` in
:meth:`.Operations.drop_constraint` and
:meth:`.BatchOperations.drop_constraint`, which was documented positionally
in one example in the batch documentation.
These two signatures have been
restored to allow those particular parameters to be passed positionally. A
future change will include formal deprecation paths (with warnings) for
these arguments where they will again become keyword-only in a future
"Significant Minor" release.
.. change::
:tags: bug, typing
🎟️ 1246
Fixed typing use of :class:`~sqlalchemy.schema.Column` and other
generic SQLAlchemy classes.
.. change::
:tags: bug, typing, regression
🎟️ 1244
Restored the output type of :meth:`.Config.get_section` to include
``Dict[str, str]`` as a potential return type, which had been changed to
immutable ``Mapping[str, str]``. When a section is returned and the default
is not used, a mutable dictionary is returned.
.. changelog::
:version: 1.11.0
:released: May 15, 2023
.. change::
:tags: bug, batch
🎟️ 1237
Added placeholder classes for :class:`~.sqla.Computed` and
:class:`~.sqla.Identity` when older 1.x SQLAlchemy versions are in use,
namely prior to SQLAlchemy 1.3.11 when the :class:`~.sqla.Computed`
construct was introduced. Previously these were set to None, however this
could cause issues with certain codepaths that were using ``isinstance()``
such as one within "batch mode".
.. change::
:tags: bug, batch
🎟️ 1221
Correctly pass previously ignored arguments ``insert_before`` and
``insert_after`` in ``batch_alter_column``
.. change::
:tags: change, py3k
🎟️ 1130
Argument signatures of Alembic operations now enforce keyword-only
arguments as passed as keyword and not positionally, such as
:paramref:`.Operations.create_table.schema`,
:paramref:`.Operations.add_column.type_`, etc.
.. change::
:tags: bug, postgresql
🎟️ 1230
Fix autogenerate issue with PostgreSQL :class:`.ExcludeConstraint`
that included sqlalchemy functions. The function text was previously
rendered as a plain string without surrounding with ``text()``.
.. change::
:tags: bug, mysql, regression
🎟️ 1240
Fixed regression caused by 🎫`1166` released in version 1.10.0 which
caused MySQL unique constraints with multiple columns to not compare
correctly within autogenerate, due to different sorting rules on unique
constraints vs. indexes, which in MySQL are shared constructs.
.. change::
:tags: misc
🎟️ 1220
Update code snippets within docstrings to use ``black`` code formatting.
Pull request courtesy of James Addison.
.. change::
:tags: bug, typing
🎟️ 1093
Updated stub generator script to also add stubs method definitions for the
:class:`.Operations` class and the :class:`.BatchOperations` class obtained
from :meth:`.Operations.batch_alter_table`. As part of this change, the
class hierarchy of :class:`.Operations` and :class:`.BatchOperations` has
been rearranged on top of a common base class :class:`.AbstractOperations`
in order to type correctly, as :class:`.BatchOperations` uses different
method signatures for operations than :class:`.Operations`.
.. change::
:tags: bug, typing
Repaired the return signatures for :class:`.Operations` that mostly
return ``None``, and were erroneously referring to ``Optional[Table]``
in many cases.
.. change::
:tags: usecase, commands
🎟️ 1109
Added quiet option to the command line, using the ``-q/--quiet``
option. This flag will prevent alembic from logging anything
to stdout.
.. change::
:tags: bug, autogenerate
🎟️ 1178
Modified the autogenerate implementation for comparing "server default"
values from user-defined metadata to not apply any quoting to the value
before comparing it to the server-reported default, except for within
dialect-specific routines as needed. This change will affect the format of
the server default as passed to the
:paramref:`.EnvironmentContext.configure.compare_server_default` hook, as
well as for third party dialects that implement a custom
``compare_server_default`` hook in their alembic impl, to be passed "as is"
and not including additional quoting. Custom implementations which rely
on this quoting should adjust their approach based on observed formatting.
.. change::
:tags: bug, api, autogenerate
🎟️ 1235
Fixed issue where :func:`.autogenerate.render_python_code` function did not
provide a default value for the ``user_module_prefix`` variable, leading to
``NoneType`` errors when autogenerate structures included user-defined
types. Added new parameter
:paramref:`.autogenerate.render_python_code.user_module_prefix` to allow
this to be set as well as to default to ``None``. Pull request courtesy
tangkikodo.
.. change::
:tags: usecase, asyncio
🎟️ 1231
Added :meth:`.AbstractOperations.run_async` to the operation module to
allow running async functions in the ``upgrade`` or ``downgrade`` migration
function when running alembic using an async dialect. This function will
receive as first argument an
:class:`~sqlalchemy.ext.asyncio.AsyncConnection` sharing the transaction
used in the migration context.
.. changelog::
:version: 1.10.4
:released: April 24, 2023
.. change::
:tags: postgresql, autogenerate, feature
🎟️ 1213
Added support for autogenerate comparison of indexes on PostgreSQL which
include SQL sort option, such as ``ASC`` or ``NULLS FIRST``.
The sort options are correctly detected only when defined using the
sqlalchemy modifier functions, such as ``asc()`` or ``nulls_first()``,
or the equivalent methods.
Passing sort options inside the ``postgresql_ops`` dict is not supported.
.. change::
:tags: bug, operations
🎟️ 1215
Fixed issue where using a directive such as ``op.create_foreign_key()`` to
create a self-referential constraint on a single table where the same
column were present on both sides (e.g. within a composite foreign key)
would produce an error under SQLAlchemy 2.0 and a warning under SQLAlchemy
1.4 indicating that a duplicate column were being added to a table.
.. changelog::
:version: 1.10.3
:released: April 5, 2023
.. change::
:tags: bug, typing
🎟️ 1191, 1201
Fixed various typing issues observed with pyright, including issues
involving the combination of :class:`.Function` and
:meth:`.MigrationContext.begin_transaction`.
.. change::
:tags: bug, autogenerate
🎟️ 1212
Fixed error raised by alembic when running autogenerate after removing
a function based index.
.. changelog::
:version: 1.10.2
:released: March 8, 2023
.. change::
:tags: bug, ops
🎟️ 1196
Fixed regression where Alembic would not run with older SQLAlchemy 1.3
versions prior to 1.3.24 due to a missing symbol. Workarounds have been
applied for older 1.3 versions.
.. changelog::
:version: 1.10.1
:released: March 6, 2023
.. change::
:tags: bug, postgresql
🎟️ 1184
Fixed issue regarding PostgreSQL :class:`.ExcludeConstraint`, where
constraint elements which made use of :func:`.literal_column` could not be
rendered for autogenerate. Additionally, using SQLAlchemy 2.0.5 or greater,
:func:`.text()` constructs are also supported within PostgreSQL
:class:`.ExcludeConstraint` objects for autogenerate render. Pull request
courtesy Jan Katins.
.. change::
:tags: bug, batch, regression
🎟️ 1195
Fixed regression for 1.10.0 where :class:`.Constraint` objects were
suddenly required to have non-None name fields when using batch mode, which
was not previously a requirement.
.. changelog::
:version: 1.10.0
:released: March 5, 2023
.. change::
:tags: bug, autogenerate
🎟️ 1166
Fixed issue in index detection where autogenerate change detection would
consider indexes with the same columns but with different order as equal,
while in general they are not equivalent in how a database will use them.
.. change::
:tags: feature, revisioning
🎟️ 760
Recursive traversal of revision files in a particular revision directory is
now supported, by indicating ``recursive_version_locations = true`` in
alembic.ini. Pull request courtesy ostr00000.
.. change::
:tags: bug, autogenerate, sqlite
🎟️ 1165
Fixed issue where indexes on SQLite which include SQL expressions would not
compare correctly, generating false positives under autogenerate. These
indexes are now skipped, generating a warning, in the same way that
expression-based indexes on PostgreSQL are skipped and generate warnings
when SQLAlchemy 1.x installations are in use. Note that reflection of
SQLite expression-based indexes continues to not yet be supported under
SQLAlchemy 2.0, even though PostgreSQL expression-based indexes have now
been implemented.
.. change::
:tags: bug, mssql
🎟️ 1187
Properly escape constraint name on SQL Server when dropping
a column while specifying ``mssql_drop_default=True`` or
``mssql_drop_check=True`` or ``mssql_drop_foreign_key=True``.
.. change::
:tags: usecase, autogenerate, postgresql
Added support for autogenerate comparison of indexes on PostgreSQL which
include SQL expressions, when using SQLAlchemy 2.0; the previous warning
that such indexes were skipped are removed when the new functionality
is in use. When using SQLAlchemy versions prior to the 2.0 series,
the indexes continue to be skipped with a warning.
.. changelog::
:version: 1.9.4
:released: February 16, 2023
.. change::
:tags: bug, mssql
🎟️ 1177
Ongoing fixes for SQL Server server default comparisons under autogenerate,
adjusting for SQL Server's collapsing of whitespace between SQL function
arguments when reporting on a function-based server default, as well as its
arbitrary addition of parenthesis within arguments; the approach has now
been made more aggressive by stripping the two default strings to compare
of all whitespace, parenthesis, and quoting characters.
.. change::
:tags: bug, postgresql
Fixed PostgreSQL server default comparison to handle SQL expressions
sent as ``text()`` constructs, such as ``text("substring('name', 1, 3)")``,
which previously would raise errors when attempting to run a server-based
comparison.
.. change::
:tags: bug, autogenerate
🎟️ 1180
Removed a mis-use of the
:paramref:`.EnvironmentContext.configure.render_item` callable where the
"server_default" renderer would be erroneously used within the server
default comparison process, which is working against SQL expressions, not
Python code.
.. change::
:tags: bug, commands
Fixed regression introduced in 1.7.0 where the "config" object passed to
the template context when running the :func:`.merge` command
programmatically failed to be correctly populated. Pull request courtesy
Brendan Gann.
.. changelog::
:version: 1.9.3
:released: February 7, 2023
.. change::
:tags: bug, autogenerate
🎟️ 1167
Fixed issue where rendering of user-defined types that then went onto use
the ``.with_variant()`` method would fail to render, if using SQLAlchemy
2.0's version of variants.
.. changelog::
:version: 1.9.2
:released: January 14, 2023
.. change::
:tags: bug, typing
🎟️ 1146, 1147
Fixed typing definitions for :meth:`.EnvironmentContext.get_x_argument`.
Typing stubs are now generated for overloaded proxied methods such as
:meth:`.EnvironmentContext.get_x_argument`.
.. change::
:tags: bug, autogenerate
🎟️ 1152
Fixed regression caused by 🎫`1145` where the string transformations
applied to server defaults caused expressions such as ``(getdate())`` to no
longer compare as equivalent on SQL Server, others.
.. changelog::
:version: 1.9.1
:released: December 23, 2022
.. change::
:tags: bug, autogenerate
🎟️ 1145
Fixed issue where server default compare would not work for string defaults
that contained backslashes, due to mis-rendering of these values when
comparing their contents.
.. change::
:tags: bug, oracle
Implemented basic server default comparison for the Oracle backend;
previously, Oracle's formatting of reflected defaults prevented any
matches from occurring.
.. change::
:tags: bug, sqlite
Adjusted SQLite's compare server default implementation to better handle
defaults with or without parens around them, from both the reflected and
the local metadata side.
.. change::
:tags: bug, mssql
Adjusted SQL Server's compare server default implementation to better
handle defaults with or without parens around them, from both the reflected
and the local metadata side.
.. changelog::
:version: 1.9.0
:released: December 15, 2022
.. change::
:tags: feature, commands
🎟️ 724
Added new Alembic command ``alembic check``. This performs the widely
requested feature of running an "autogenerate" comparison between the
current database and the :class:`.MetaData` that's currently set up for
autogenerate, returning an error code if the two do not match, based on
current autogenerate settings. Pull request courtesy Nathan Louie.
.. seealso::
:ref:`alembic_check`
.. change::
:tags: bug, tests
Fixed issue in tox.ini file where changes in the tox 4.0 series to the
format of "passenv" caused tox to not function correctly, in particular
raising an error as of tox 4.0.6.
.. change::
:tags: bug, typing
🎟️ 1110
Fixed typing issue where :paramref:`.revision.process_revision_directives`
was not fully typed; additionally ensured all ``Callable`` and ``Dict``
arguments to :meth:`.EnvironmentContext.configure` include parameters in
the typing declaration.
Additionally updated the codebase for Mypy 0.990 compliance.
.. changelog::
:version: 1.8.1
:released: July 13, 2022
.. change::
:tags: bug, sqlite
🎟️ 1065
Fixed bug where the SQLite implementation of
:meth:`.Operations.rename_table` would render an explicit schema name for
both the old and new table name, which while is the standard ALTER syntax,
is not accepted by SQLite's syntax which doesn't support a rename across
schemas. In particular, the syntax issue would prevent batch mode from
working for SQLite databases that made use of attached databases (which are
treated as "schemas" in SQLAlchemy).
.. change::
:tags: bug, batch
🎟️ 1021
Added an error raise for the condition where
:meth:`.Operations.batch_alter_table` is used in ``--sql`` mode, where the
operation requires table reflection, as is the case when running against
SQLite without giving it a fixed ``Table`` object. Previously the operation
would fail with an internal error. To get a "move and copy" batch
operation as a SQL script without connecting to a database,
a ``Table`` object should be passed to the
:paramref:`.Operations.batch_alter_table.copy_from` parameter so that
reflection may be skipped.
.. changelog::
:version: 1.8.0
:released: May 31, 2022
.. change::
:tags: feature, typing
🎟️ 764
:pep:`484` typing annotations have been added to the ``env.py`` and
revision template files within migration templates. Pull request by Nikita
Sobolev.
.. change::
:tags: usecase, operations
🎟️ 1037
The ``op.drop_table()`` operation directive will now trigger the
``before_drop()`` and ``after_drop()`` DDL event hooks at the table level,
which is similar to how the ``before_create()`` and ``after_create()``
hooks are triggered by the ``op.create_table()`` directive. Note that as
``op.drop_table()`` accepts only a table name and optional schema name, the
``Table`` object received by the event will not have any information within
it other than the table name and schema name.
.. change::
:tags: installation, changed
🎟️ 1025
Alembic 1.8 now supports Python 3.7 and above.
.. change::
:tags: changed, environment
🎟️ 987
The "Pylons" environment template has been removed as of Alembic 1.8. This
template was based on the very old pre-Pyramid Pylons web framework which
has been long superseded by Pyramid.
.. change::
:tags: bug, revisioning
🎟️ 1026
Fixed issue where a downgrade using a relative revision would
fail in case of multiple branches with a single effectively
head due to interdependencies between revisions.
.. change::
:tags: usecase, commands
🎟️ 1027
Added new token ``epoch`` to the ``file_template`` option, which will
populate the integer epoch as determined by ``int(create_date.timestamp())``.
Pull request courtesy Caio Carvalho.
.. change::
:tags: bug, batch
🎟️ 1034
Fixed issue in batch mode where CREATE INDEX would not use a new column
name in the case of a column rename.
Upstream changes:
0.47 Wed 07 Sep 2022 04:33:20 PM PDT
- Fix Pg reverse-engineering of default values in Pg v12+
0.46 unreleased (2016)
- Add IF EXISTS to DROP INDEX (except under MySQL)
- Fix table fetching for Sybase and SQLite drivers; refactor table fetching
into a driver-overridable DBIx::DBSchema::DBD->tables method, patches
from Nathan Anderson <http://1id.com/=nathan.anderson>
Upstream changes:
0.59 Sun 02 Jul 2023
- Fix for Windows t/load.t failures
0.58 Mon 29 Aug 2022
- No functional changes
- Updated packaging and package metadata
5.78.0 (2024-03-01)
* Support SQLite 3.45+ jsonb functions in the sqlite_json_ops extension
(jeremyevans) (#2133)
* Support compounds (e.g. UNION) in conjunction with Database#values on
PostgreSQL (jeremyevans) (#2137)
* Support :use_advisory_lock option to Migrator.run to use advisory locks
when running migrations (jeremyevans) (#2089)
* Support Database#with_advisory_lock on PostgreSQL, MySQL, and Microsoft
SQL Server (jeremyevans) (#2089)
1.5.6 (2024-03-01)
* Renew address resolution (DNS) in conn.reset. #558 This is important, if
DNS is used for load balancing, etc.
* Make bigdecimal an optional dependency. #556 It's a gem in ruby-3.4+, so
that users shouldn't be forced to use it.
5.0.2
New Features
Allow to control the minimum SSL version
Add modules support to async RedisCluster
Adding lock_name to LockError
Add GEOSHAPE field type for index creation of RediSearch
Bug Fixes
Fix retry logic for pubsub and pipeline
Ignore TypeError on disconnect (within multiprocess)
Release already acquired connections on ClusterPipeline, when get_connection raises an exception
Fix possible pipeline connections leak
Return a copy of the response from cache
Fix: HSET unexpectedly mutates the list passed to items
Fix acl_genpass with bits
Allow the parsing of the asking command to forward original options
Fix parsing of FT.PROFILE result
Use disable_decoding in async read_response with hiredis parser.
Fix return types in json commands
Fix Specifying Target Nodes broken hyperlink
Maintenance
Fix incorrect asserts in test and ensure connections are closed
Revert stale issue version update
Docs: Add timeout parameter for get_message example
Bump codecov/codecov-action from 3 to 4
Bump actions/stale from 3 to 9
Fix grammer in BlockingConnectionPool class documentation
Updating async-timeout to 4.0.3
Fix type hint of arbitrary argument lists
Fix JSON.OBJLEN type hint
Fix HDEL type hint
Docs: organize cluster mode part of lua scripting
Update reported version deprecation in asyncio.client
Make the connection callback methods public again, add documentation
Update repr of important classes with module name and recommended "< …
Typo in advanced features documentation
Fix typos in documentation
Add "sum" to DUPLICATE_POLICY documentation of TS.CREATE, TS.ADD and TS.ALTER
Fixed typo in ocsp.py
Creating CODEOWNERS for documentation
Drop php56 and support php74 and later.
Currently, it dose not use databases/mongo-c-driver but use bundled
libraries since we don't have databases/libmongocrypt package yet(?).
Changes from 1.9.1 is too many to write here, please refer
<https://pecl.php.net/package-changelog.php?package=mongodb>.
## 2.50.0 / 2024-02-22
* [CHANGE] Remote Write: Error `storage.ErrTooOldSample` is now generating HTTP error 400 instead of HTTP error 500. #13335
* [FEATURE] Remote Write: Drop old inmemory samples. Activated using the config entry `sample_age_limit`. #13002
* [FEATURE] **Experimental**: Add support for ingesting zeros as created timestamps. (enabled under the feature-flag `created-timestamp-zero-ingestion`). #12733#13279
* [FEATURE] Promtool: Add `analyze` histograms command. #12331
* [FEATURE] TSDB/compaction: Add a way to enable overlapping compaction. #13282#13393#13398
* [FEATURE] Add automatic memory limit handling. Activated using the feature flag. `auto-gomemlimit` #13395
* [ENHANCEMENT] Promtool: allow specifying multiple matchers in `promtool tsdb dump`. #13296
* [ENHANCEMENT] PromQL: Restore more efficient version of `NewPossibleNonCounterInfo` annotation. #13022
* [ENHANCEMENT] Kuma SD: Extend configuration to allow users to specify client ID. #13278
* [ENHANCEMENT] PromQL: Use natural sort in `sort_by_label` and `sort_by_label_desc`. This is **experimental**. #13411
* [ENHANCEMENT] Native Histograms: support `native_histogram_min_bucket_factor` in scrape_config. #13222
* [ENHANCEMENT] Native Histograms: Issue warning if histogramRate is applied to the wrong kind of histogram. #13392
* [ENHANCEMENT] TSDB: Make transaction isolation data structures smaller. #13015
* [ENHANCEMENT] TSDB/postings: Optimize merge using Loser Tree. #12878
* [ENHANCEMENT] TSDB: Simplify internal series delete function. #13261
* [ENHANCEMENT] Agent: Performance improvement by making the global hash lookup table smaller. #13262
* [ENHANCEMENT] PromQL: faster execution of metric functions, e.g. abs(), rate() #13446
* [ENHANCEMENT] TSDB: Optimize label values with matchers by taking shortcuts. #13426
* [ENHANCEMENT] Kubernetes SD: Check preconditions earlier and avoid unnecessary checks or iterations in kube_sd. #13408
* [ENHANCEMENT] Promtool: Improve visibility for `promtool test rules` with JSON colored formatting. #13342
* [ENHANCEMENT] Consoles: Exclude iowait and steal from CPU Utilisation. #9593
* [ENHANCEMENT] Various improvements and optimizations on Native Histograms. #13267, #13215, #13276#13289, #13340
* [BUGFIX] Scraping: Fix quality value in HTTP Accept header. #13313
* [BUGFIX] UI: Fix usage of the function `time()` that was crashing. #13371
* [BUGFIX] Azure SD: Fix SD crashing when it finds a VM scale set. #13578
1.6.15 (2017-09-01)
* [PHP-1489] - Can't run the test suite against MongoDB 3.1.2 or later
* [PHP-1528] - Extension should link OpenSSL during compilation
1.6.16 (2017-09-05)
* [PHP-1529] - undefined symbol: php_mongo_asn1_time_to_time_t
Update Ruby on Rails 7.1 and related pacakges to 7.1.3.2
This includes security fix:
CVE-2024-26142 for www/ruby-actionpack71
CVE-2024-26143 for www/ruby-actionpack71
Action Pack
* Fix possible XSS vulnerability with the translate method in controllers
CVE-2024-26143
* Fix ReDoS in Accept header parsing
CVE-2024-26142
Update Ruby on Rails 7.0 and related pacakges to 7.0.8.1
This includes security fix:
CVE-2024-26144 for devel/ruby-activestorage70
CVE-2024-26146 for www/ruby-actionpack70
Action Pack
* Fix possible XSS vulnerability with the translate method in controllers
CVE-2024-26143
Active Storage
* Disables the session in ActiveStorage::Blobs::ProxyController and
ActiveStorage::Representations::ProxyController in order to allow caching
by default in some CDNs as CloudFlare
Fixes#44136
Bruno Prieto
Update rails61 and related pacakges to 6.1.7.7
This includes security fix for CVE-2024-26144, devel/ruby-activestorage61.
Active Storage
* Disables the session in ActiveStorage::Blobs::ProxyController and
ActiveStorage::Representations::ProxyController in order to allow caching
by default in some CDNs as CloudFlare
Fixes#44136
Bruno Prieto
libmongoc 1.26.0
New Features:
* Support named KMS providers.
* Redirect retries in sharded clusters to another mongos if possible.
Improvements:
* Add `VERSION_CURRENT` file in source to ease building.
* Consider more errors retryable.
PyMongo 4.6.2 fixes the following bug:
- Fixed a bug appearing in Python 3.12 where "RuntimeError: can't create new thread at interpreter shutdown"
could be written to stderr when a MongoClient's thread starts as the python interpreter is shutting down.
v0.20.0
Feature release
- Connection `.close()` method is now idempotent
- Performance improvements in connection thread and event loop
- Updated contributor guide
- Tested on Python 3.12
- Dropped support for Python 3.7
2.14.2
This release contains bug fixes since the 2.14.1 release.
We recommend that you upgrade at the next available opportunity.
Bugfixes
* Fix segfault in cagg_validate_query
* Fix refresh on empty CAgg with variable bucket
* Don't try to compress osm chunks
1.5.5 (2024-02-15)
* Explicitly retype timespec fields to int64_t to fix compatibility with
32bit arches. #547
* Fix possible buffer overflows in PG::BinaryDecoder::CopyRow on 32 bit
systems. #548
* Add binary Windows gems for Ruby 3.3.
* Update Windows fat binary gem to OpenSSL-3.2.1 and PostgreSQL-16.2.
Changes in MySQL 8.0.36
Audit Log Notes
In some cases, calling audit_log_read( audit_log_read_bookmark() ) led to an Out of memory error.
Compilation Notes
Microsoft Windows: MySQL did not compile correctly using Visual Studio 2022.
Improved the -DWITH_ZLIB=system check.
For compiling on Linux, changed the no-error=deprecated-declarations flag to no-deprecated-declarations for the OpenSSL 3 library.
Our thanks to karry zhang for the contribution.
Optimizer Notes
The hashing algorithm employed yielded poor performance when using a HASH field to check for uniqueness.
Packaging Notes
Important Change: The GnuPG build key (A8D3785C) used to sign MySQL downloadable packages has been updated. The previous GnuPG build key (3A79BD29) expired on 2023-12-14. For information about verifying the integrity and authenticity of MySQL downloadable packages using GnuPG signature checking, or to obtain a copy of our public GnuPG build key, see Signature Checking Using GnuPG.
Due to the GnuPG key update, systems configured to use repo.mysql.com may report a signature verification error when upgrading to MySQL 8.0.36 and higher or to MySQL 8.3.0 and higher using apt or yum. Use one of the following methods to resolve this issue:
Manually reinstall the MySQL APT or YUM repository setup package from https://dev.mysql.com/downloads/.
Download the MySQL GnuPG public key and add it your system GPG keyring.
Performance Schema Notes
When executing a stored program, the Performance Schema instrumentation caused some unnecessary overhead.
As of this release, all stored procedure micro instructions (statement/sp/%), except statement/sp/stmt, are disabled by default.
The performance of the Performance Schema statement instrumentation has been improved. Specifically, collecting MESSAGE_TEXT data is now more efficient.
Pluggable Authentication
Beginning with this release, the behavior of the AUTHENTICATION_PAM_LOG environment variable used in debugging the PAM authentication plugin is changed as follows:
Setting AUTHENTICATION_PAM_LOG to an arbitrary value (except as noted in the next item) no longer includes passwords in its diagnostic messages.
To include passwords in the diagnostic messages, set AUTHENTICATION_PAM_LOG=PAM_LOG_WITH_SECRET_INFO.
For more information, see PAM Authentication Debugging.
Functionality Added or Changed
Important Change: For platforms on which OpenSSL libraries are bundled, the linked OpenSSL library for MySQL Server has been updated to version 3.0.12. Issues fixed in OpenSSL version 3.0.12 are described at https://www.openssl.org/news/cl30.txt.
Bugs Fixed
InnoDB: The hash function used by the adaptive hash index (AHI) was improved to increase performance.
InnoDB: If change buffer entries are present during startup, a disabled innodb_validate_tablespace_paths option will no longer be enforced and instead the MySQL server will proceed to validate all tablespaces. Otherwise, secondary indexes could end up corrupted.
InnoDB: During concurrent DDL and DML operations, DDL could fail if the online log grew too large. Buffer handling was improved to prevent this issue.
Replication: An issue with calculating the current number of bytes used for Log_event events in Performance Schema memory instrumentation made it appear as though the sql/replica_sql thread on the replica grew endlessly and never decreased in size.
Replication: Stopping replication while replicating CREATE TABLE AS SELECT caused the server to exit.
Group Replication: A forced START GROUP_REPLICATION while a replication channel was in an error state could lead to an unplanned server exit.
For building Enterprise Linux 8 RPMs, the build scripts now point to a newer strip command (under /opt/rh/gcc-toolset-12), and they now check that the corresponding dwz tool is available.
In some cases, calling a loadable function installed by an improperly initialized plugin caused an unplanned shutdown.
Found and fixed an assertion failure at handler::ha_index_end() in handler.cc.
When the MYSQL_FIREWALL plugin was configured to use a custom schema, but failed to initialize properly during the server startup, subsequent errors and failures could occur.
Some nested queries with GROUP BY were not handled correctly.
References: This issue is a regression of:
In limited cases, passing data to the MD5() encryption function could halt the server.
Some subselects from views were not always handled correctly.
While performing an operation such as the bulk renaming of many tables, simultaneously executing a data definition statement similar to CREATE TABLE ... SELECT could stop the server unexpectedly.
UPDATE HISTOGRAM did not behave as expected in all cases.
UPDATE HISTOGRAM did not behave as expected in all cases.
EXPLAIN ANALYZE did not always produce the expected result.
An error occurred during subquery resolution.
References: This issue is a regression of:
Refreshing of used table information is now postponed to the start of the next execution, just after tables have been opened, and we know that all table objects are in a proper state.
Some HAVING queries did not produce expected results.
Some recursive CTEs did not function as expected.
Some queries using OVER (PARTITION ...) were not always executed successfully.
Some subqueries with ROLLUP were not always handled correctly.
Removed the CPACK_COMPONENT_GROUP_INFO_DISPLAY_NAME configuration option from the Windows installation MSI interface. Now the INFO_BIN and INFO_SRC files are always installed.
Some queries using windowing functions were not always handled correctly.
In debug builds, a case-altered column name could cause the server to exit.
MySQL Server installation packages contained two copies of the INFO_SRC file.
A SELECT statement within a prepared statement unexpectedly returned different results on successive executions.
References: This issue is a regression of:
Some SELECT DISTINCT queries were not always handled correctly.
Removed an assertion failure in sql/field.cc.
Sme queries having the form SELECT AVG(...) OVER (PARTITION BY ...) were not always handled correctly.
Upgrading MySQL using an official MySQL Yum or SUSE repository always enables the MySQL service. Now it enables the service only after installing, and preserves (and does not edit) the existing value while upgrading.
For a query with a derived condition pushdown where a column in the condition needs to be replaced, a matching item could not found, even when known to be present, when the replacement item was wrapped in a ROLLUP while the matching item was not.
References: This issue is a regression of:
Performing an arithmetic operation on the result over a window function in a stored procedure gave the correct result the first time the procedure was executed, but returned an incorrect result on all subsequent invocations.
References: See also:
MySQL did not build correctly using the musl version of libc.
Our thanks to Sam James for the contribution.
In some cases, selecting from a view leaked a small amount of memory.
Version 3.10.0 - 24 January 2024
- Limit the average bandwidth used by `barman-cloud-backup` when backing
up to either AWS S3 or Azure Blob Storage according to the value set by
a new CLI option `--max-bandwidth`.
- Add the new configuration option `lock_directory_cleanup`
That enables cron to automatically clean up the barman_lock_directory
from unused lock files.
- Add support for a new type of configuration called `model`.
The model acts as a set of overrides for configuration options
for a given Barman server.
- Add a new barman command `barman config-update` that allows the creation
and the update of configurations using JSON
- Bug fixes:
- Fix a bug that caused `--min-chunk-size` to be ignored when using
barman-cloud-backup as hook script in Barman.
Version 3.9.0 - 3 October 2023
- Allow `barman switch-wal --force` to be run against PG>=14 if the
user has the `pg_checkpoint` role (thanks to toydarian for this patch).
- Log the current check at `info` level when a check timeout occurs.
- The minimum size of an upload chunk when using `barman-cloud-backup`
with either S3 or Azure Blob Storage can now be specified using the
`--min-chunk-size` option.
- `backup_compression = none` is supported when using `pg_basebackup`.
- For PostgreSQL 15 and later: the allowed `backup_compression_level`
values for `zstd` and `lz4` have been updated to match those allowed by
`pg_basebackup`.
- For PostgreSQL versions earlier than 15: `backup_compression_level = 0`
can now be used with `backup_compression = gzip`.
- Bug fixes:
- Fix `barman recover` on platforms where Multiprocessing uses spawn by
default when starting new processes.
Version 3.8.0 - 31 August 2023
- Clarify package installation. barman is packaged with default python version
for each operating system.
- The `minimum-redundancy` option is added to `barman-cloud-backup-delete`.
It allows to set the minimum number of backups that should always be available.
- Add a new `primary_checkpoint_timeout` configuration option. Allows define
the amount of seconds that Barman will wait at the end of a backup if no
new WAL files are produced, before forcing a checkpoint on the primary server.
- Bug fixes:
- Fix race condition in barman retention policies application. Backup
deletions will now raise a warning if another deletion is in progress
for the requested backup.
- Fix `barman-cloud-backup-show` man page installation.
We have released Qt 6.6.2 today. As a patch release, Qt 6.6.2 does not introduce any new features but contains more than 400 bug fixes, security updates, and other improvements to the top of the Qt 6.6.1 release. See more information about the most important changes and bug fixes from Qt 6.6.2 release note.
https://www.qt.io/blog/qt-6.6.2-released