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.
Revision | Action | file |
1.61 | modify | pkgsrc/databases/py-sqlalchemy/Makefile |
1.19 | modify | pkgsrc/databases/py-sqlalchemy/PLIST |
1.55 | modify | pkgsrc/databases/py-sqlalchemy/distinfo |