2022-01-04 21:55:40 by Thomas Klausner | Files touched by this commit (1595) |
Log message:
*: bump PKGREVISION for egg.mk users
They now have a tool dependency on py-setuptools instead of a DEPENDS
|
2021-10-26 12:10:08 by Nia Alarie | Files touched by this commit (417) |
Log message:
databases: Replace RMD160 checksums with BLAKE2s checksums
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
The following distfiles could not be fetched (some may be only fetched
conditionally):
./databases/cstore/distinfo D6.data.ros.gz
./databases/cstore/distinfo cstore0.2.tar.gz
./databases/cstore/distinfo data4.tar.gz
|
2021-10-07 15:35:53 by Nia Alarie | Files touched by this commit (417) |
Log message:
databases: Remove SHA1 distfile hashes
|
2021-01-18 10:50:36 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-sqlalchemy: updated to 1.3.22
1.3.22
oracle
[oracle] [bug]
Fixed regression which occured due to 5755 which implemented isolation level \
support for Oracle. It has been reported that many Oracle accounts don’t \
actually have permission to query the v$transaction view so this feature has \
been altered to gracefully fallback when it fails upon database connect, where \
the dialect will assume “READ COMMITTED” is the default isolation level as \
was the case prior to SQLAlchemy 1.3.21. However, explicit use of the \
Connection.get_isolation_level() method must now necessarily raise an exception, \
as Oracle databases with this restriction explicitly disallow the user from \
reading the current isolation level.
|
2020-12-18 09:19:28 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-sqlalchemy: updated to 1.3.21
1.3.21
orm
[orm] [bug]
Added a comprehensive check and an informative error message for the case where \
a mapped class, or a string mapped class name, is passed to \
relationship.secondary. This is an extremely common error which warrants a clear \
message.
Additionally, added a new rule to the class registry resolution such that with \
regards to the relationship.secondary parameter, if a mapped class and its table \
are of the identical string name, the Table will be favored when resolving this \
parameter. In all other cases, the class continues to be favored if a class and \
table share the identical name.
[orm] [bug]
Fixed bug in Query.update() where objects in the _ormsession.Session that were \
already expired would be unnecessarily SELECTed individually when they were \
refreshed by the “evaluate”synchronize strategy.
[orm] [bug]
Fixed bug involving the restore_load_context option of ORM events such as \
InstanceEvents.load() such that the flag would not be carried along to \
subclasses which were mapped after the event handler were first established.
sql
[sql] [bug]
A warning is emmitted if a returning() method such as Insert.returning() is \
called multiple times, as this does not yet support additive operation. Version \
1.4 will support additive operation for this. Additionally, any combination of \
the Insert.returning() and ValuesBase.return_defaults() methods now raises an \
error as these methods are mutually exclusive; previously the operation would \
fail silently.
[sql] [bug]
Fixed structural compiler issue where some constructs such as MySQL / PostgreSQL \
“on conflict / on duplicate key” would rely upon the state of the Compiler \
object being fixed against their statement as the top level statement, which \
would fail in cases where those statements are branched from a different \
context, such as a DDL construct linked to a SQL statement.
postgresql
[postgresql] [usecase]
Added new parameter ExcludeConstraint.ops to the ExcludeConstraint object, to \
support operator class specification with this constraint. Pull request courtesy \
Alon Menczer.
[postgresql] [bug] [mysql]
Fixed regression introduced in 1.3.2 for the PostgreSQL dialect, also copied out \
to the MySQL dialect’s feature in 1.3.18, where usage of a non Table construct \
such as text() as the argument to Select.with_for_update.of would fail to be \
accommodated correctly within the PostgreSQL or MySQL compilers.
mysql
[mysql] [bug] [reflection]
Fixed issue where reflecting a server default on MariaDB only that contained a \
decimal point in the value would fail to be reflected correctly, leading towards \
a reflected table that lacked any server default.
[mysql] [sql]
Added missing keywords to the RESERVED_WORDS list for the MySQL dialect: action, \
level, mode, status, text, time. Pull request courtesy Oscar Batori.
sqlite
[sqlite] [usecase]
Added sqlite_with_rowid=False dialect keyword to enable creating tables as \
CREATE TABLE … WITHOUT ROWID. Patch courtesy Sean Anderson.
mssql
[mssql] [bug]
Fixed bug where a CREATE INDEX statement was rendered incorrectly when both \
mssql-include and mssql_where were specified. Pull request courtesy @Adiorz.
[mssql] [bug]
Added SQL Server code “01000” to the list of disconnect codes.
[mssql] [reflection] [sqlite]
Fixed issue with composite primary key columns not being reported in the correct \
order. Patch courtesy @fulpm.
oracle
[oracle] [usecase]
Implemented support for the SERIALIZABLE isolation level for Oracle databases, \
as well as a real implementation for Connection.get_isolation_level().
|
2020-10-21 10:58:38 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
py-sqlalchemy: updated to 1.3.20
1.3.20
Released: October 12, 2020
orm
[orm] [bug]
An ArgumentError with more detail is now raised if the target parameter for \
Query.join() is set to an unmapped object. Prior to this change a less detailed \
AttributeError was raised. Pull request courtesy Ramon Williams.
[orm] [bug]
Fixed issue where using a loader option against a string attribute name that is \
not actually a mapped attribute, such as a plain Python descriptor, would raise \
an uninformative AttributeError; a descriptive error is now raised.
engine
[engine] [bug]
Fixed issue where a non-string object sent to SQLAlchemyError or a subclass, as \
occurs with some third party dialects, would fail to stringify correctly. Pull \
request courtesy Andrzej Bartosiński.
[engine] [bug]
Repaired a function-level import that was not using SQLAlchemy’s standard \
late-import system within the sqlalchemy.exc module.
sql
[sql] [bug]
Fixed issue where the pickle.dumps() operation against Over construct would \
produce a recursion overflow.
[sql] [bug]
Fixed bug where an error was not raised in the case where a column() were added \
to more than one table() at a time. This raised correctly for the Column and \
Table objects. An ArgumentError is now raised when this occurs.
postgresql
[postgresql] [usecase]
The psycopg2 dialect now support PostgreSQL multiple host connections, by \
passing host/port combinations to the query string. Pull request courtesy Ramon \
Williams.
See also
Specfiying multiple fallback hosts
[postgresql] [bug]
Adjusted the Comparator.any() and Comparator.all() methods to implement a \
straight “NOT” operation for negation, rather than negating the comparison \
operator.
[postgresql] [bug]
Fixed issue where the ENUM type would not consult the schema translate map when \
emitting a CREATE TYPE or DROP TYPE during the test to see if the type exists or \
not. Additionally, repaired an issue where if the same enum were encountered \
multiple times in a single DDL sequence, the “check” query would run \
repeatedly rather than relying upon a cached value.
mysql
[mysql] [usecase]
Adjusted the MySQL dialect to correctly parenthesize functional index \
expressions as accepted by MySQL 8. Pull request courtesy Ramon Williams.
[mysql] [bug]
The “skip_locked” keyword used with with_for_update() will emit a warning \
when used on MariaDB backends, and will then be ignored. This is a deprecated \
behavior that will raise in SQLAlchemy 1.4, as an application that requests \
“skip locked” is looking for a non-blocking operation which is not available \
on those backends.
[mysql] [bug]
Fixed bug where an UPDATE statement against a JOIN using MySQL multi-table \
format would fail to include the table prefix for the target table if the \
statement had no WHERE clause, as only the WHERE clause were scanned to detect a \
“multi table update” at that particular point. The target is now also \
scanned if it’s a JOIN to get the leftmost table as the primary table and the \
additional entries as additional FROM entries.
[mysql] [change]
Add new MySQL reserved words: cube, lateral added in MySQL 8.0.1 and 8.0.14, \
respectively; this indicates that these terms will be quoted if used as table or \
column identifier names.
mssql
[mssql] [bug]
Fixed issue where a SQLAlchemy connection URI for Azure DW with \
authentication=ActiveDirectoryIntegrated (and no username+password) was not \
constructing the ODBC connection string in a way that was acceptable to the \
Azure DW instance.
misc
[bug] [pool]
Fixed issue where the following pool parameters were not being propagated to the \
new pool created when Engine.dispose() were called: pre_ping, use_lifo. \
Additionally the recycle and reset_on_return parameter is now propagated for the \
AssertionPool class.
[bug] [associationproxy] [ext]
An informative error is now raised when attempting to use an association proxy \
element as a plain column expression to be SELECTed from or used in a SQL \
function; this use case is not currently supported.
[bug] [tests]
Fixed incompatibilities in the test suite when running against Pytest 6.x.
|
2020-09-10 11:19:16 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-sqlalchemy: updated to 1.3.19
1.3.19
orm
[orm] [usecase]
Adjusted the workings of the Mapper.all_orm_descriptors() accessor to represent \
the attributes in the order that they are located in a deterministic way, \
assuming the use of Python 3.6 or higher which maintains the sorting order of \
class attributes based on how they were declared. This sorting is not guaranteed \
to match the declared order of attributes in all cases however; see the method \
documentation for the exact scheme.
orm declarative
[usecase] [declarative] [orm]
The name of the virtual column used when using the AbstractConcreteBase and \
ConcreteBase classes can now be customized, to allow for models that have a \
column that is actually named type. Pull request courtesy Jesse-Bakker.
sql
[sql] [bug]
Repaired an issue where the “ORDER BY” clause rendering a label name rather \
than a complete expression, which is particularly important for SQL Server, \
would fail to occur if the expression were enclosed in a parenthesized grouping \
in some cases. This case has been added to test support. The change additionally \
adjusts the “automatically add ORDER BY columns when DISTINCT is present” \
behavior of ORM query, deprecated in 1.4, to more accurately detect column \
expressions that are already present.
[sql] [bug] [datatypes]
The LookupError message will now provide the user with up to four possible \
values that a column is constrained to via the Enum. Values longer than 11 \
characters will be truncated and replaced with ellipses. Pull request courtesy \
Ramon Williams.
[sql] [bug]
Fixed issue where the Connection.execution_options.schema_translate_map feature \
would not take effect when the Sequence.next_value() function function for a \
Sequence were used in the Column.server_default parameter and the create table \
DDL were emitted.
postgresql
[postgresql] [bug]
Fixed issue where the return type for the various RANGE comparison operators \
would itself be the same RANGE type rather than BOOLEAN, which would cause an \
undesirable result in the case that a TypeDecorator that defined \
result-processing behavior were in use. Pull request courtesy Jim Bosch.
mysql
[mysql] [usecase]
The MySQL dialect will render FROM DUAL for a SELECT statement that has no FROM \
clause but has a WHERE clause. This allows things like “SELECT 1 WHERE EXISTS \
(subquery)” kinds of queries to be used as well as other use cases.
[mysql] [bug]
Fixed an issue where CREATE TABLE statements were not specifying the COLLATE \
keyword correctly.
[mysql] [bug]
Added MariaDB code 1927 to the list of “disconnect” codes, as recent MariaDB \
versions apparently use this code when the database server was stopped.
sqlite
[sqlite] [bug] [mssql] [reflection]
Applied a sweep through all included dialects to ensure names that contain \
single or double quotes are properly escaped when querying system tables, for \
all Inspector methods that accept object names as an argument (e.g. table names, \
view names, etc). SQLite and MSSQL contained two quoting issues that were \
repaired.
mssql
[mssql] [bug] [sql]
Fixed bug where the mssql dialect incorrectly escaped object names that \
contained ‘]’ character(s).
misc
[usecase] [py3k]
Added a **kw argument to the DeclarativeMeta.__init__() method. This allows a \
class to support the PEP 487 metaclass hook __init_subclass__.
|
2020-07-08 16:40:26 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-sqlalchemy: updated to 1.3.18
1.3.18
orm
[orm] [usecase]
Improve error message when using Query.filter_by() in a query where the first \
entity is not a mapped class.
[orm] [usecase]
Added a new parameter query_expression.default_expr to the query_expression() \
construct, which will be appled to queries automatically if the \
with_expression() option is not used. Pull request courtesy Haoyu Sun.
engine
[engine] [bug]
Further refinements to the fixes to the “reset” agent fixed in 5326, which \
now emits a warning when it is not being correctly invoked and corrects for the \
behavior. Additional scenarios have been identified and fixed where this warning \
was being emitted.
[engine] [bug]
Fixed issue in URL object where stringifying the object would not URL encode \
special characters, preventing the URL from being re-consumable as a real URL. \
Pull request courtesy Miguel Grinberg.
sql
[sql] [usecase]
Added a “.schema” parameter to the table() construct, allowing ad-hoc table \
expressions to also include a schema name. Pull request courtesy Dylan Modesitt.
[sql] [bug]
Correctly apply self_group in type_coerce element.
The type coerce element did not correctly apply grouping rules when using in an \
expression
[sql] [bug]
Added Select.with_hint() output to the generic SQL string that is produced when \
calling str() on a statement. Previously, this clause would be omitted under the \
assumption that it was dialect specific. The hint text is presented within \
brackets to indicate the rendering of such hints varies among backends.
[sql] [schema]
Introduce IdentityOptions to store common parameters for sequences and identity \
columns.
[sql] [change] [sybase]
Added .offset support to sybase dialect. Pull request courtesy Alan D. Snow.
schema
[schema] [bug]
Fixed issue where dialect_options were omitted when a database object (e.g., \
Table) was copied using tometadata().
mysql
[mysql] [usecase]
Implemented row-level locking support for mysql. Pull request courtesy Quentin \
Somerville.
sqlite
[sqlite] [usecase]
SQLite 3.31 added support for computed column. This change enables their support \
in SQLAlchemy when targeting SQLite.
[sqlite] [bug]
Added “exists” to the list of reserved words for SQLite so that this word \
will be quoted when used as a label or column name. Pull request courtesy \
Thodoris Sotiropoulos.
mssql
[mssql] [bug]
Refined the logic used by the SQL Server dialect to interpret multi-part schema \
names that contain many dots, to not actually lose any dots if the name does not \
have bracking or quoting used, and additionally to support a “dbname” token \
that has many parts including that it may have multiple, independently-bracketed \
sections.
[mssql] [bug] [pyodbc]
Fixed an issue in the pyodbc connector such that a warning about pyodbc \
“drivername” would be emitted when using a totally empty URL. Empty URLs are \
normal when producing a non-connected dialect object or when using the \
“creator” argument to create_engine(). The warning now only emits if the \
driver name is missing but other parameters are still present.
[mssql] [bug]
Fixed issue with assembling the ODBC connection string for the pyodbc DBAPI. \
Tokens containing semicolons and/or braces “{}” were not being correctly \
escaped, causing the ODBC driver to misinterpret the connection string \
attributes.
[mssql] [bug]
Fixed issue where datetime.time parameters were being converted to \
datetime.datetime, making them incompatible with comparisons like >= against \
an actual TIME column.
[mssql] [bug]
Fixed an issue where the is_disconnect function in the SQL Server pyodbc dialect \
was incorrectly reporting the disconnect state when the exception messsage had a \
substring that matched a SQL Server ODBC error code.
[mssql] [change]
Moved the supports_sane_rowcount_returning = False requirement from the \
PyODBCConnector level to the MSDialect_pyodbc since pyodbc does work properly in \
some circumstances.
oracle
[oracle] [bug] [reflection]
Fixed bug in Oracle dialect where indexes that contain the full set of primary \
key columns would be mistaken as the primary key index itself, which is omitted, \
even if there were multiples. The check has been refined to compare the name of \
the primary key constraint against the index name itself, rather than trying to \
guess based on the columns present in the index.
misc
[change] [examples]
Added new option --raw to the examples.performance suite which will dump the raw \
profile test for consumption by any number of profiling visualizer tools. \
Removed the “runsnake” option as runsnake is very hard to build at this \
point;
|
2020-05-18 12:43:22 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-sqlalchemy: updated to 1.3.17
1.3.17
orm
[orm] [usecase]
Added an accessor Comparator.expressions which provides access to the group of \
columns mapped under a multi-column ColumnProperty attribute.
[orm] [usecase]
Introduce relationship.sync_backref flag in a relationship to control if the \
synchronization events that mutate the in-Python attributes are added. This \
supersedes the previous change 5149, which warned that viewonly=True \
relationship target of a back_populates or backref configuration would be \
disallowed.
[orm] [bug]
Fixed bug where using with_polymorphic() as the target of a join via \
RelationshipComparator.of_type() on a mapper that already has a subquery-based \
with_polymorphic setting that’s equivalent to the one requested would not \
correctly alias the ON clause in the join.
[orm] [bug]
Fixed issue in the area of where loader options such as selectinload() interact \
with the baked query system, such that the caching of a query is not supposed to \
occur if the loader options themselves have elements such as with_polymorphic() \
objects in them that currently are not cache-compatible. The baked loader could \
sometimes not fully invalidate itself in these some of these scenarios leading \
to missed eager loads.
[orm] [bug]
Modified the internal “identity set” implementation, which is a set that \
hashes objects on their id() rather than their hash values, to not actually call \
the __hash__() method of the objects, which are typically user-mapped objects. \
Some methods were calling this method as a side effect of the implementation.
[orm] [bug]
An informative error message is raised when an ORM many-to-one comparison is \
attempted against an object that is not an actual mapped instance. Comparisons \
such as those to scalar subqueries aren’t supported; generalized comparison \
with subqueries is better achieved using Comparator.has().
engine
[engine] [bug]
Fixed fairly critical issue where the DBAPI connection could be returned to the \
connection pool while still in an un-rolled-back state. The reset agent \
responsible for rolling back the connection could be corrupted in the case that \
the transaction was “closed” without being rolled back or committed, which \
can occur in some scenarios when using ORM sessions and emitting .close() in a \
certain pattern involving savepoints. The fix ensures that the reset agent is \
always active.
schema
[schema] [bug]
Fixed issue where an Index that is deferred in being associated with a table, \
such as as when it contains a Column that is not associated with any Table yet, \
would fail to attach correctly if it also contained a non table-oriented \
expession.
[schema] [bug]
A warning is emitted when making use of the MetaData.sorted_tables attribute as \
well as the sort_tables() function, and the given tables cannot be correctly \
sorted due to a cyclic dependency between foreign key constraints. In this case, \
the functions will no longer sort the involved tables by foreign key, and a \
warning will be emitted. Other tables that are not part of the cycle will still \
be returned in dependency order. Previously, the sorted_table routines would \
return a collection that would unconditionally omit all foreign keys when a \
cycle was detected, and no warning was emitted.
[schema]
Add comment attribute to Column __repr__ method.
postgresql
[postgresql] [usecase]
Added support for columns or type ARRAY of Enum, JSON or JSONB in PostgreSQL. \
Previously a workaround was required in these use cases.
[postgresql] [usecase]
Raise an explicit CompileError when adding a table with a column of type ARRAY \
of Enum configured with Enum.native_enum set to False when \
Enum.create_constraint is not set to False
mssql
[mssql] [bug] [reflection]
Fix a regression introduced by the reflection of computed column in MSSQL when \
using the legacy TDS version 4.2. The dialect will try to detect the protocol \
version of first connect and run in compatibility mode if it cannot detect it.
[mssql] [bug] [reflection]
Fix a regression introduced by the reflection of computed column in MSSQL when \
using SQL server versions before 2012, which does not support the concat \
function.
oracle
[oracle] [bug]
Some modifications to how the cx_oracle dialect sets up per-column outputtype \
handlers for LOB and numeric datatypes to adjust for potential changes coming in \
cx_Oracle 8.
[oracle] [bug] [performance]
Changed the implementation of fetching CLOB and BLOB objects to use \
cx_Oracle’s native implementation which fetches CLOB/BLOB objects inline with \
other result columns, rather than performing a separate fetch. As always, this \
can be disabled by setting auto_convert_lobs to False.
As part of this change, the behavior of a CLOB that was given a blank string on \
INSERT now returns None on SELECT, which is now consistent with that of VARCHAR \
on Oracle.
firebird
[firebird] [change]
Adjusted dialect loading for firebird:// URIs so the external \
sqlalchemy-firebird dialect will be used if it has been installed, otherwise \
fall back to the (now deprecated) internal Firebird dialect.
|
2020-04-10 09:58:17 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
py-sqlalchemy: updated to 1.3.16
1.3.16
orm
[orm] [bug]
Fixed bug in orm.selectinload() loading option where two or more loaders that \
represent different relationships with the same string key name as referenced \
from a single orm.with_polymorphic() construct with multiple subclass mappers \
would fail to invoke each subqueryload separately, instead making use of a \
single string-based slot that would prevent the other loaders from being \
invoked.
[orm] [bug]
Fixed issue where a lazyload that uses session-local “get” against a target \
many-to-one relationship where an object with the correct primary key is \
present, however it’s an instance of a sibling class, does not correctly \
return None as is the case when the lazy loader actually emits a load for that \
row.
[orm] [performance]
Modified the queries used by subqueryload and selectinload to no longer ORDER BY \
the primary key of the parent entity; this ordering was there to allow the rows \
as they come in to be copied into lists directly with a minimal level of \
Python-side collation. However, these ORDER BY clauses can negatively impact the \
performance of the query as in many scenarios these columns are derived from a \
subquery or are otherwise not actual primary key columns such that SQL planners \
cannot make use of indexes. The Python-side collation uses the native \
itertools.group_by() to collate the incoming rows, and has been modified to \
allow multiple row-groups-per-parent to be assembled together using \
list.extend(), which should still allow for relatively fast Python-side \
performance. There will still be an ORDER BY present for a relationship that \
includes an explicit order_by parameter, however this is the only ORDER BY that \
will be added to the query for both kinds of loading.
orm declarative
[bug] [declarative] [orm]
The string argument accepted as the first positional argument by the \
relationship() function when using the Declarative API is no longer interpreted \
using the Python eval() function; instead, the name is dot separated and the \
names are looked up directly in the name resolution dictionary without treating \
the value as a Python expression. However, passing a string argument to the \
other relationship() parameters that necessarily must accept Python expressions \
will still use eval(); the documentation has been clarified to ensure that there \
is no ambiguity that this is in use.
See also
Evaluation of relationship arguments - details on string evaluation
sql
[sql] [types]
Add ability to literal compile a DateTime, Date or :class:”Time” when using \
the string dialect for debugging purposes. This change does not impact real \
dialect implementation that retain their current behavior.
schema
[schema] [reflection]
Added support for reflection of “computed” columns, which are now returned \
as part of the structure returned by Inspector.get_columns(). When reflecting \
full Table objects, computed columns will be represented using the Computed \
construct.
postgresql
[postgresql] [bug]
Fixed issue where a “covering” index, e.g. those which have an INCLUDE \
clause, would be reflected including all the columns in INCLUDE clause as \
regular columns. A warning is now emitted if these additional columns are \
detected indicating that they are currently ignored. Note that full support for \
“covering” indexes is part of 4458. Pull request courtesy Marat \
Sharafutdinov.
mysql
[mysql] [bug]
Fixed issue in MySQL dialect when connecting to a psuedo-MySQL database such as \
that provided by ProxySQL, the up front check for isolation level when it \
returns no row will not prevent the dialect from continuing to connect. A \
warning is emitted that the isolation level could not be detected.
sqlite
[sqlite] [usecase]
Implemented AUTOCOMMIT isolation level for SQLite when using pysqlite.
mssql
[mssql] [usecase] [mysql] [oracle]
Added support for ColumnOperators.is_distinct_from() and \
ColumnOperators.isnot_distinct_from() to SQL Server, MySQL, and Oracle.
oracle
[oracle] [usecase]
Implemented AUTOCOMMIT isolation level for Oracle when using cx_Oracle. Also \
added a fixed default isolation level of READ COMMITTED for Oracle.
[oracle] [bug] [reflection]
Fixed regression / incorrect fix caused by fix for 5146 where the Oracle dialect \
reads from the “all_tab_comments” view to get table comments but fails to \
accommodate for the current owner of the table being requested, causing it to \
read the wrong comment if multiple tables of the same name exist in multiple \
schemas.
misc
[bug] [tests]
Fixed an issue that prevented the test suite from running with the recently \
released py.test 5.4.0.
[enum] [types]
The Enum type now supports the parameter Enum.length to specify the length of \
the VARCHAR column to create when using non native enums by setting \
Enum.native_enum to False
[installer]
Ensured that the “pyproject.toml” file is not included in builds, as the \
presence of this file indicates to pip that a pep-517 installation process \
should be used. As this mode of operation appears to be not well supported by \
current tools / distros, these problems are avoided within the scope of \
SQLAlchemy installation by omitting the file.
1.3.15
orm
[orm] [bug]
Adjusted the error message emitted by Query.join() when a left hand side can’t \
be located that the Query.select_from() method is the best way to resolve the \
issue. Also, within the 1.3 series, used a deterministic ordering when \
determining the FROM clause from a given column entity passed to Query so that \
the same expression is determined each time.
[orm] [bug]
Fixed regression in 1.3.14 due to 4849 where a sys.exc_info() call failed to be \
invoked correctly when a flush error would occur. Test coverage has been added \
for this exception case.
1.3.14
general
[general] [bug] [py3k]
Applied an explicit “cause” to most if not all internally raised exceptions \
that are raised from within an internal exception catch, to avoid misleading \
stacktraces that suggest an error within the handling of an exception. While it \
would be preferable to suppress the internally caught exception in the way that \
the __suppress_context__ attribute would, there does not as yet seem to be a way \
to do this without suppressing an enclosing user constructed context, so for now \
it exposes the internally caught exception as the cause so that full information \
about the context of the error is maintained.
orm
[orm] [usecase]
Added a new flag InstanceEvents.restore_load_context and \
SessionEvents.restore_load_context which apply to the InstanceEvents.load(), \
InstanceEvents.refresh(), and SessionEvents.loaded_as_persistent() events, which \
when set will restore the “load context” of the object after the event hook \
has been called. This ensures that the object remains within the “loader \
context” of the load operation that is already ongoing, rather than the object \
being transferred to a new load context due to refresh operations which may have \
occurred in the event. A warning is now emitted when this condition occurs, \
which recommends use of the flag to resolve this case. The flag is “opt-in” \
so that there is no risk introduced to existing applications.
The change additionally adds support for the raw=True flag to session lifecycle \
events.
[orm] [bug]
Fixed regression caused in 1.3.13 by 5056 where a refactor of the ORM path \
registry system made it such that a path could no longer be compared to an empty \
tuple, which can occur in a particular kind of joined eager loading path. The \
“empty tuple” use case has been resolved so that the path registry is \
compared to a path registry in all cases; the PathRegistry object itself now \
implements __eq__() and __ne__() methods which will take place for all equality \
comparisons and continue to succeed in the not anticipated case that a non- \
PathRegistry object is compared, while emitting a warning that this object \
should not be the subject of the comparison.
[orm] [bug]
Setting a relationship to viewonly=True which is also the target of a \
back_populates or backref configuration will now emit a warning and eventually \
be disallowed. back_populates refers specifically to mutation of an attribute or \
collection, which is disallowed when the attribute is subject to viewonly=True. \
The viewonly attribute is not subject to persistence behaviors which means it \
will not reflect correct results when it is locally mutated.
[orm] [bug]
Fixed an additional regression in the same area as that of 5080 introduced in \
1.3.0b3 via 4468 where the ability to create a joined option across a \
with_polymorphic() into a relationship against the base class of that \
with_polymorphic, and then further into regular mapped relationships would fail \
as the base class component would not add itself to the load path in a way that \
could be located by the loader strategy. The changes applied in 5080 have been \
further refined to also accommodate this scenario.
engine
[engine] [bug]
Expanded the scope of cursor/connection cleanup when a statement is executed to \
include when the result object fails to be constructed, or an \
after_cursor_execute() event raises an error, or autocommit / autoclose fails. \
This allows the DBAPI cursor to be cleaned up on failure and for connectionless \
execution allows the connection to be closed out and returned to the connection \
pool, where previously it waiting until garbage collection would trigger a pool \
return.
sql
[sql] [bug] [postgresql]
Fixed bug where a CTE of an INSERT/UPDATE/DELETE that also uses RETURNING could \
then not be SELECTed from directly, as the internal state of the compiler would \
try to treat the outer SELECT as a DELETE statement itself and access \
nonexistent state.
postgresql
[postgresql] [bug]
Fixed issue where the “schema_translate_map” feature would not work with a \
PostgreSQL native enumeration type (i.e. Enum, postgresql.ENUM) in that while \
the “CREATE TYPE” statement would be emitted with the correct schema, the \
schema would not be rendered in the CREATE TABLE statement at the point at which \
the enumeration was referenced.
[postgresql] [bug] [reflection]
Fixed bug where PostgreSQL reflection of CHECK constraints would fail to parse \
the constraint if the SQL text contained newline characters. The regular \
expression has been adjusted to accommodate for this case. Pull request courtesy \
Eric Borczuk.
mysql
[mysql] [bug]
Fixed issue in MySQL mysql.Insert.on_duplicate_key_update() construct where \
using a SQL function or other composed expression for a column argument would \
not properly render the VALUES keyword surrounding the column itself.
mssql
[mssql] [bug]
Fixed issue where the mssql.DATETIMEOFFSET type would not accommodate for the \
None value, introduced as part of the series of fixes for this type first \
introduced in 4983, 5045. Additionally, added support for passing a \
backend-specific date formatted string through this type, as is typically \
allowed for date/time types on most other DBAPIs.
oracle
[oracle] [bug]
Fixed a reflection bug where table comments could only be retrieved for tables \
actually owned by the user but not for tables visible to the user but owned by \
someone else. Pull request courtesy Dave Hirschfeld.
misc
[usecase] [ext]
Added keyword arguments to the MutableList.sort() function so that a key \
function as well as the “reverse” keyword argument can be provided.
[bug] [performance]
Revised an internal change to the test system added as a result of 5085 where a \
testing-related module per dialect would be loaded unconditionally upon making \
use of that dialect, pulling in SQLAlchemy’s testing framework as well as the \
ORM into the module import space. This would only impact initial startup time \
and memory to a modest extent, however it’s best that these additional modules \
aren’t reverse-dependent on straight Core usage.
[bug] [installation]
Vendored the inspect.formatannotation function inside of sqlalchemy.util.compat, \
which is needed for the vendored version of inspect.formatargspec. The function \
is not documented in cPython and is not guaranteed to be available in future \
Python versions.
|