./databases/py-sqlalchemy, Python SQL toolkit and Object Relational Mapper

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.3.22, Package name: py38-sqlalchemy-1.3.22, Maintainer: pkgsrc-users

SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that
gives application developers the full power and flexibility of SQL.

It provides a full suite of well known enterprise-level persistence
patterns, designed for efficient and high-performing database access,
adapted into a simple and Pythonic domain language.


Required to run:
[devel/py-setuptools] [lang/python37]

Required to build:
[pkgtools/cwrappers]

Master sites:

SHA1: 7ebedad8f63dbb0e158f85b1c54a44cc5d98f9cb
RMD160: fe548883aa5cd81334bb159845f108b7189785cb
Filesize: 6152.525 KB

Version history: (Expand)


CVS history: (Expand)


   2021-01-18 10:50:36 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
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) | Package updated
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) | Package updated
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) | Package updated
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) | Package updated
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) | Package updated
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) | Package updated
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.
   2020-03-22 23:45:24 by Roland Illig | Files touched by this commit (1)
Log message:
databases/py-sqlalchemy: remove nonexistent file

The test runner has apparently been replaced with a test suite.