--- - branch: MAIN date: Thu Oct 10 18:22:49 UTC 2019 files: - new: '1.57' old: '1.56' path: pkgsrc/databases/py-sqlalchemy/Makefile pathrev: pkgsrc/databases/py-sqlalchemy/Makefile@1.57 type: modified - new: '1.52' old: '1.51' path: pkgsrc/databases/py-sqlalchemy/distinfo pathrev: pkgsrc/databases/py-sqlalchemy/distinfo@1.52 type: modified id: 20191010T182249Z.e336eb8dabade91cee90cdc316a5214e5e0a5198 log: "py-sqlalchemy: updated to 1.3.10\n\n1.3.10\n\nmssql\n\n[mssql] [bug]\nFixed bug in SQL Server dialect with new 窶å¾\x87ax_identifier_length窶� feature where the mssql dialect already featured this flag, and the implementation did not accommodate for the new initialization hook correctly.\n\noracle\n\n[oracle] [bug]\nFixed regression in Oracle dialect that was inadvertently using max identifier length of 128 characters on Oracle server 12.2 and greater even though the stated contract for the remainder of the 1.3 series is that this value stays at 30 until version SQLAlchemy 1.4. Also repaired issues with the retrieval of the 窶彡ompatibility窶� version, and removed the warning emitted when the 窶忻$parameter窶� view was not accessible as this was causing user confusion.\n\n1.3.9\n\norm\n\n[orm] [bug]\nFixed regression in selectinload loader strategy caused by 4775 (released in version 1.3.6) where a many-to-one attribute of None would no longer be populated by the loader. While this was usually not noticeable due to the lazyloader populating None upon get, it would lead to a detached instance error if the object were detached.\n\n[orm] [bug]\nPassing a plain string expression to Session.query() is deprecated, as all string coercions were removed in 4481 and this one should have been included. The literal_column() function may be used to produce a textual column expression.\n\n[orm] [bug]\nA warning is emitted for a condition in which the Session may implicitly swap an object out of the identity map for another one with the same primary key, detaching the old one, which can be an observed result of load operations which occur within the SessionEvents.after_flush() hook. The warning is intended to notify the user that some special condition has caused this to happen and that the previous object may not be in the expected state.\n\nengine\n\n[engine] [usecase]\nAdded new create_engine() parameter create_engine.max_identifier_length. This overrides the dialect-coded 窶å¾\x87ax identifier length窶� in order to accommodate for databases that have recently changed this length and the SQLAlchemy dialect has not yet been adjusted to detect for that version. This parameter interacts with the existing create_engine.label_length parameter in that it establishes the maximum (and default) value for anonymously generated labels. Additionally, post-connection detection of max identifier lengths has been added to the dialect system. This feature is first being used by the Oracle dialect.\n\nsql\n\n[sql] [bug]\nCharacters that interfere with 窶å¾\x98yformat窶� or 窶å¾\x9Eamed窶� formats in bound parameters, namely %, (, ) and the space character, as well as a few other typically undesirable characters, are stripped early for a bindparam() that is using an anonymized name, which is typically generated automatically from a named column which itself includes these characters in its name and does not use a .key, so that they do not interfere either with the SQLAlchemy compiler窶å\x86± use of string formatting or with the driver-level parsing of the parameter, both of which could be demonstrated before the fix. The change only applies to anonymized parameter names that are generated and consumed internally, not end-user defined names, so the change should have no impact on any existing code. Applies in particular to the psycopg2 driver which does not otherwise quote special parameter names, but also strips leading underscores to suit Oracle (but not yet leading numbers, as some anon parameters are c\nurrently entirely numeric/underscore based); Oracle in any case continues to quote parameter names that include special characters.\n\n[sql] [usecase]\nAdded an explicit error message for the case when objects passed to Table are not SchemaItem objects, rather than resolving to an attribute error.\n\nsqlite\n\n[sqlite] [usecase]\nAdded support for sqlite 窶å¼\x91RI窶� connections, which allow for sqlite-specific flags to be passed in the query string such as 窶徨ead only窶� for Python sqlite3 drivers that support this.\n\nmssql\n\n[mssql] [bug]\nAdded identifier quoting to the schema name applied to the 窶å¿\x96se窶� statement which is invoked when a SQL Server multipart schema name is used within a Table that is being reflected, as well as for Inspector methods such as Inspector.get_table_names(); this accommodates for special characters or spaces in the database name. Additionally, the 窶å¿\x96se窶� statement is not emitted if the current database matches the target owner database name being passed.\n\noracle\n\n[oracle] [bug]\nRestored adding cx_Oracle.DATETIME to the setinputsizes() call when a SQLAlchemy Date, DateTime or Time datatype is used, as some complex queries require this to be present. This was removed in the 1.2 series for arbitrary reasons.\n\n[oracle] [usecase]\nThe Oracle dialect now emits a warning if Oracle version 12.2 or greater is used, and the create_engine.max_identifier_length parameter is not set. The version in this specific case defaults to that of the 窶彡ompatibility窶� version set in the Oracle server configuration, not the actual server version. In version 1.4, the default max_identifier_length for 12.2 or greater will move to 128 characters. In order to maintain forwards compatibility, applications should set create_engine.max_identifier_length to 30 in order to maintain the same length behavior, or to 128 in order to test the upcoming behavior. This length determines among other things how generated constraint names are truncated for statements like CREATE CONSTRAINT and DROP CONSTRAINT, which means a the new length may produce a name-mismatch against a name that was generated with the old length, impacting database migrations.\n\nmisc\n\n[bug] [tests]\nFixed unit test regression released in 1.3.8 that would cause failure for Oracle, SQL Server and other non-native ENUM platforms due to new enumeration tests added as part of 4285 enum sortability in the unit of work; the enumerations created constraints that were duplicated on name.\n" module: pkgsrc subject: 'CVS commit: pkgsrc/databases/py-sqlalchemy' unixtime: '1570731769' user: adam