summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* fixes for mypy, error in stubsfix_mypyMike Bayer2023-01-164-1/+23
| | | | | | | | There's a critical mistake in the stubs that we may want to fix. Or we might just keep it that way as this is all obsolete anyway. not sure yet. Change-Id: I380a1dc177de571b94a176e0f5e5b5d8d4ea2453
* apply changelog note for change of column loader optionsMike Bayer2023-01-163-2/+258
| | | | | | | Change-Id: Ib9a69e20420e1fda755f4533c5f90bc08ba11b48 References: #8879 References: #9101 (cherry picked from commit 5e6cb26a017fb72bc3f925194c6f8c1eda968fbe)
* fix orm-header for standaloneMike Bayer2023-01-151-1/+1
| | | | | Change-Id: I20e7f8ad5800c2ce5cdc9645c4dbe66f53b8cdf8 (cherry picked from commit 48eed9eb9c6ba853b48e41ef6038ec97c5a3fb68)
* Remove missing doc sectionFederico Caselli2023-01-121-8/+0
| | | | Change-Id: Ic6dda7f32a7561a0c0a92b8a7c08e44cb174eec1
* Merge "add with_loader_criteria() test for #8064 / #9091" into rel_1_4mike bayer2023-01-121-0/+62
|\
| * add with_loader_criteria() test for #8064 / #9091Mike Bayer2023-01-121-0/+62
| | | | | | | | | | | | | | | | | | | | | | test related to #8064, added after discussion #9091 which requested this behavior for with_loader_criteria() where it was found to be working as of this issue, just not tested Change-Id: I703f25af3708e49380b6004badd3a8ffb783ef70 References: #8064 References: #9091 (cherry picked from commit a2bf6f1bb4a56dfe6c6d1fe22c3a4e84f5da99bc)
* | Move docs in mysql dbapiFederico Caselli2023-01-122-14/+13
|/ | | | | | Fixes: #9084 Change-Id: I5e174c318a20b7fcb5ea7c771293c5102e761ed7 (cherry picked from commit a06cd94baab114cd0b2fa0987267e31811d38f7a)
* fix ORM support for column-named bindparam() in crud .values()Mike Bayer2023-01-118-25/+304
| | | | | | | | | | | | | | | | | | | | | | | Fixed bug / regression where using :func:`.bindparam()` with the same name as a column in the :meth:`.Update.values` method of :class:`.Update`, as well as the :meth:`.Insert.values` method of :class:`.Insert` in 2.0 only, would in some cases silently fail to honor the SQL expression in which the parameter were presented, replacing the expression with a new parameter of the same name and discarding any other elements of the SQL expression, such as SQL functions, etc. The specific case would be statements that were constructed against ORM entities rather than plain :class:`.Table` instances, but would occur if the statement were invoked with a :class:`.Session` or a :class:`.Connection`. :class:`.Update` part of the issue was present in both 2.0 and 1.4 and is backported to 1.4. For 1.4, also backports the sqlalchemy.testing.Variation update to the variation() API. Fixes: #9075 Change-Id: Ie954bc1f492ec6a566163588182ef4910c7ee452 (cherry picked from commit b5b864e0fe50243a94c0ef04fddda6fa446c1524)
* remove misleading line in post_updateMike Bayer2023-01-091-3/+1
| | | | | | | | | | this UPDATE refers to the unit of work's need to consider this additional UPDATE as a dependency and not an actual UPDATE statement. Change-Id: I2a520af21ebf96b45c431efa898d4e7683a5bc2d References: #9066 References: #1063 (cherry picked from commit 2ef4b449a7709ecab45e926f0e8d0dd398fd12db)
* Merge "include parsed col length field as integer from mysql index ↵mike bayer2023-01-054-3/+110
|\ | | | | | | reflection" into rel_1_4
| * include parsed col length field as integer from mysql index reflectionMike Bayer2023-01-044-3/+110
| | | | | | | | | | | | | | | | | | Added support to MySQL index reflection to correctly reflect the ``mysql_length`` dictionary, which previously was being ignored. Fixes: #9047 Change-Id: I0a5e27123be68741e12af4464a0fa305052ec36e (cherry picked from commit 4a31f97824095610cfdbc1ac1180fd8690f9f477)
* | [asyncpg] Extract rowcount for SELECT statementsMichael Gorven2023-01-043-1/+15
|/ | | | | | | | | | | | | | | Added support to the asyncpg dialect to return the ``cursor.rowcount`` value for SELECT statements when available. While this is not a typical use for ``cursor.rowcount``, the other PostgreSQL dialects generally provide this value. Pull request courtesy Michael Gorven. Fixes: #9048 Closes: #9049 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/9049 Pull-request-sha: df16160530c6001d99de059995ad5047a75fb7b0 Change-Id: I095b866779ccea7e4d50bc841fef7605e61c667f (cherry picked from commit 9c502f5788737fa65029716c73fe0f65f3dafb53)
* Version 1.4.47 placeholderMike Bayer2023-01-032-1/+5
|
* - 1.4.46rel_1_4_46Mike Bayer2023-01-0314-141/+153
|
* update wordingMike Bayer2023-01-031-1/+4
| | | | Change-Id: I19c7d9683218d2c059aa36dd1743661e78974976
* changelog updatesMike Bayer2023-01-033-8/+25
| | | | Change-Id: I69581c1563f15762a9a9afae4741e23fefd76906
* happy new year 2023Mike Bayer2023-01-03204-204/+204
| | | | Change-Id: I14db8e9c69a832b0f5dae8036db3c0a70bb49edd
* link to with_variant() narrative from API docMike Bayer2023-01-032-0/+7
| | | | | Change-Id: I5d8e4d7cb7871bedebe0fe89758be441e64b94c6 (cherry picked from commit 7f86be997eea27bc994b25c4fb65d72b3d4567f9)
* Merge "add uber warning for 1.4" into rel_1_4mike bayer2023-01-032-0/+68
|\
| * add uber warning for 1.4Mike Bayer2023-01-022-0/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As we don't have any automatic deprecation warning for 2.0 unless SQLALCHEMY_WARN_20 is set, applications that are not being monitored for deprecations have no way to guard against 2.0 being released on pypi unless they add a requirements rule. make sure we are putting out a major warning for people who may have not noticed that SQLAlchemy 2.0 will break compatibility with legacy use patterns. Fixes: #8983 Change-Id: I7d50db52c9a0fe3165b0131aab2fce9af80d51dd
* | repair underline levels in 20 migration docMike Bayer2023-01-031-40/+40
|/ | | | | | | two sections got whacked here, update underlines to be the same as the 2.0 branch Change-Id: Ic36d51ad9a2cbe23482f72e73f4cbbcbe1617780
* Rectify reference to class LambdaElement, misnamed as LamdaElement (#9037)Lele Gaifax2022-12-291-1/+1
| | | Fixes #9034.
* note that 2.0 has behavioral changes outside of the 1.4->2.0 processMike Bayer2022-12-281-3/+18
| | | | | Change-Id: I0ab9611c75f592acec73ca92271f970eae74d7ab (cherry picked from commit 2c1550af60e5fc8303990519b3ae497401196348)
* changelog adjustmentsMike Bayer2022-12-288-3/+18
| | | | | | | include backport markings Change-Id: I810923a641977569b8b4d9967e84b8cb684e7a52 (cherry picked from commit 46fe3e53e06864cafbbcbfd8a82a2ec00727b8c5)
* ensure whereclause, returning copied as tuplesMike Bayer2022-12-284-17/+79
| | | | | | | | | | | Fixed issue in the internal SQL traversal for DML statements like :class:`_dml.Update` and :class:`_dml.Delete` which would cause among other potential issues, a specific issue using lambda statements with the ORM update/delete feature. Fixes: #9033 Change-Id: I76428049cb767ba302fbea89555114bf63ab8687 (cherry picked from commit e68173bf7d296b2948abed06f79c7cbd0ab66b0d)
* Correct URL import in docsFederico Caselli2022-12-281-1/+1
| | | | | Fixes: #9032 Change-Id: I2c4164d8e1c74e0c74a578f4629c714b96761ed5
* Merge "pass more contextual information to PyWrapper param create" into rel_1_4mike bayer2022-12-276-49/+177
|\
| * pass more contextual information to PyWrapper param createMike Bayer2022-12-276-49/+177
| | | | | | | | | | | | | | | | | | | | | | Fixed issue in lambda SQL feature where the calculated type of a literal value would not take into account the type coercion rules of the "compared to type", leading to a lack of typing information for SQL expressions, such as comparisons to :class:`.JSON` elements and similar. Fixes: #9029 Change-Id: I381c8d7458d98ba762313dee9ec47a9c1881f74a (cherry picked from commit f63d7e33ec785a5ea4fbc77963c537be26b8419b)
* | dont prefix ssl args with "ssl" in the ssl dictMike Bayer2022-12-271-3/+3
|/ | | | | | Fixes: #9031 Change-Id: I9ef077e7da5b2328a345f6526a6210ce82d807f6 (cherry picked from commit e0ea78bd079c1545ced7c9233f949fabe296cd07)
* expand out Index if passed to "constraint"Mike Bayer2022-12-223-1/+52
| | | | | | | | | | | | | | | Fixed bug where the PostgreSQL :paramref:`_postgresql.OnConflictClause.constraint` parameter would accept an :class:`.Index` object, however would not expand this index out into its individual index expressions, instead rendering its name in an ON CONFLICT ON CONSTRAINT clause, which is not accepted by PostgreSQL; the "constraint name" form only accepts unique or exclude constraint names. The parameter continues to accept the index but now expands it out into its component expressions for the render. Fixes: #9023 Change-Id: I6baf243e26bfe578bf3f193c162dd7a623b6ede9 (cherry picked from commit 5cc18bb80077e98418b4a8066c0bc628209f3ada)
* Merge "add joins_implicitly to column_valued()" into rel_1_4mike bayer2022-12-203-19/+61
|\
| * add joins_implicitly to column_valued()Mike Bayer2022-12-203-19/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Added parameter :paramref:`.FunctionElement.column_valued.joins_implicitly`, which is useful in preventing the "cartesian product" warning when making use of table-valued or column-valued functions. This parameter was already introduced for :meth:`.FunctionElement.table_valued` in :ticket:`7845`, however it failed to be added for :meth:`.FunctionElement.column_valued` as well. Fixes: #9009 Change-Id: Ifb72fbcb4f4d2998e730d6f85ec7280df3bf3d47 (cherry picked from commit 567878e5c67d08c561dd064fe6dc25e4db7349e7)
* | Add MACCADDR8 for PGCompilerasimfarooq52022-12-206-1/+26
|/ | | | | | | | | | | Add MACCADDR8 for PGCompiler Closes: #8393 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/8393 Pull-request-sha: 837a68eba3e31e0acbb7c47ee87bca4e9def7648 Change-Id: I87e4999eb8d82662ff8ab409c98dc57edd7fd271 (cherry picked from commit 33f15740a0b72bae64fc2c2f6d0f9724cfe9164a)
* add exclusion for unusual chars in column namesMike Bayer2022-12-193-0/+22
| | | | | | | | | | | | | Added new exclusion rule for third party dialects called ``unusual_column_name_characters``, which can be "closed" for third party dialects that don't support column names with unusual characters such as dots, slashes, or percent signs in them, even if the name is properly quoted. Fixes: #9002 Change-Id: I44b765df4c73ce5ec1907d031fd9c89761fd99d1 References: #8993 (cherry picked from commit 946058ec6070ab4db9fdfab612ec4543fea9cd1c)
* dont call platform.architecture()Mike Bayer2022-12-162-1/+10
| | | | | | | | | | | | Fixed regression where the base compat module was calling upon ``platform.architecture()`` in order to detect some system properties, which results in an over-broad system call against the system-level ``file`` call that is unavailable under some circumstances, including within some secure environment configurations. Fixes: #8995 Change-Id: Ib6171e75aff5a60a79dab81a0be21bee2456318b (cherry picked from commit e852362bfdf9a18dfd91137f4a2d7c2dfee30082)
* implement literal_binds with expanding + bind_expressionMike Bayer2022-12-153-27/+100
| | | | | | | | | | | | Fixed bug where SQL compilation would fail (assertion fail in 2.0, NoneType error in 1.4) when using an expression whose type included :meth:`_types.TypeEngine.bind_expression`, in the context of an "expanding" (i.e. "IN") parameter in conjunction with the ``literal_binds`` compiler parameter. Fixes: #8989 Change-Id: Ic9fd27b46381b488117295ea5a492d8fc158e39f (cherry picked from commit 8c6de3c2c43ab372cbbe76464b4c5be3b6457252)
* Merge "catch all BaseException in pool and revert failed checkouts" into rel_1_4mike bayer2022-12-143-16/+95
|\
| * catch all BaseException in pool and revert failed checkoutsMike Bayer2022-12-133-16/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed a long-standing race condition in the connection pool which could occur under eventlet/gevent monkeypatching schemes in conjunction with the use of eventlet/gevent ``Timeout`` conditions, where a connection pool checkout that's interrupted due to the timeout would fail to clean up the failed state, causing the underlying connection record and sometimes the database connection itself to "leak", leaving the pool in an invalid state with unreachable entries. This issue was first identified and fixed in SQLAlchemy 1.2 for :ticket:`4225`, however the failure modes detected in that fix failed to accommodate for ``BaseException``, rather than ``Exception``, which prevented eventlet/gevent ``Timeout`` from being caught. In addition, a block within initial pool connect has also been identified and hardened with a ``BaseException`` -> "clean failed connect" block to accommodate for the same condition in this location. Big thanks to Github user @niklaus for their tenacious efforts in identifying and describing this intricate issue. Fixes: #8974 Change-Id: I95a0e1f080d0cee6f1a66977432a586fdf87f686 (cherry picked from commit a71917204dcf12a93d957a0fa29c9df97d0411ee)
* | check index_list pragma for number of columns returnedMike Bayer2022-12-134-1/+36
|/ | | | | | | | | | | | Fixed regression caused by new support for reflection of partial indexes on SQLite added in 1.4.45 for :ticket:`8804`, where the ``index_list`` pragma command in very old versions of SQLite (possibly prior to 3.8.9) does not return the current expected number of columns, leading to exceptions raised when reflecting tables and indexes. Fixes: #8969 Change-Id: If317cdcfc6782f7e180df329b6ea0ddb48ce2269 (cherry picked from commit e026a0f3562bec5fbc18e223176be8121c147193)
* add color directivesMike Bayer2022-12-111-4/+7
| | | | | | | See https://tox.wiki/en/latest/faq.html#tox-4-known-regressions Change-Id: I3c7291a660dc167bce3151e02cd123edc4707ca1 (cherry picked from commit 184508afbb7656c4f51d98695bbeeeec9aae9b87)
* adjust for tox changes to passenvMike Bayer2022-12-112-2/+22
| | | | | | | | | 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-Id: I659c8fc523a71deaa02a89103c9e7241cf81d831 References: https://github.com/tox-dev/tox/issues/2676
* Merge "Specify view columns in HasTableTest" into rel_1_4mike bayer2022-12-111-4/+7
|\
| * Specify view columns in HasTableTestGord Thompson2022-12-091-4/+7
| | | | | | | | | | | | | | | | | | | | Fixes: #8960 Avoid test errors on databases that do not support CREATE VIEW vv AS SELECT * FROM Change-Id: Ic9e892aa4466030b9b325c11228dad15cf59a258 (cherry picked from commit 7e9b1450b6899c82c9362cbc92fcc0f01c97b043)
* | Version 1.4.46 placeholderMike Bayer2022-12-102-1/+5
| |
* | - 1.4.45rel_1_4_45Mike Bayer2022-12-1014-123/+135
| |
* | changelog edits for 1.4.45Mike Bayer2022-12-102-4/+4
|/ | | | Change-Id: Ic54a46c5091eda1480ce80989075527c6b3a6d7e
* Merge "look out for extras=None in freeze" into rel_1_4mike bayer2022-12-093-1/+55
|\
| * look out for extras=None in freezeMike Bayer2022-12-093-1/+55
| | | | | | | | | | | | | | | | | | | | Fixed issue where :meth:`_engine.Result.freeze` method would not work for textual SQL using either :func:`_sql.text` or :meth:`_engine.Connection.exec_driver_sql`. Fixes: #8963 Change-Id: Ia131c6ac41a4adf32eb1bf1abf23930ef395f16c (cherry picked from commit 44170aee47a021883c6244f702de2e4385a5cd1d)
* | Better syncronize async result docs with plain ones.Federico Caselli2022-12-096-224/+219
|/ | | | | | | | | | | Removed non-functional method ``merge`` from :class:`_asyncio.AsyncResult`. This method was non-functional and non-testes since the first introduction of asyncio in SQLAlchemy. Fixes: #7158 Fixes: #8952 Change-Id: Ibc3d17be8a8b7cab9bf2074f0408f74b4c4b161d (cherry picked from commit ab8a21c613fb6c69b07f053e4622a4426b2e9ef0)
* Oracle COLUMN_VALUE is a column name, not a keywordMike Bayer2022-12-077-14/+59
| | | | | | | | | | Fixed issue in Oracle compiler where the syntax for :meth:`.FunctionElement.column_valued` was incorrect, rendering the name ``COLUMN_VALUE`` without qualifying the source table correctly. Fixes: #8945 Change-Id: Ia04bbdc68168e78b67a74bb3834a63f5d5000627 (cherry picked from commit 655be0237367462a01a9c86cdef9e9afab06d6d6)