summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add missing "temp_table_reflect_indexes" to SuiteRequirementsGord Thompson2020-09-081-0/+4
| | | | | | | Provide a default value for this requirement to expose it to external dialects. Change-Id: I3801a9134493efb65caa6793ef466a3cfb701592
* Merge "Create connection characteristics API; implement postgresql flags"mike bayer2020-09-0811-25/+559
|\
| * Create connection characteristics API; implement postgresql flagsMike Bayer2020-09-0811-25/+559
| | | | | | | | | | | | | | | | | | | | | | Added support for PostgreSQL "readonly" and "deferrable" flags for all of psycopg2, asyncpg and pg8000 dialects. This takes advantage of a newly generalized version of the "isolation level" API to support other kinds of session attributes set via execution options that are reliably reset when connections are returned to the connection pool. Fixes: #5549 Change-Id: I0ad6d7a095e49d331618274c40ce75c76afdc7dd
* | PostgreSQL dialect-level isolation_level parameter is legacyMike Bayer2020-09-082-35/+58
|/ | | | | | | | | The isolation level section in the docs inadvertently copied the PostgreSQL example using the PGDialect.isolation_level parameter and not the execution_options. ensure only the execution_options version is documented. Change-Id: I94e02ede62d3dded40e3fcbce8d04608dc063108
* Merge "Modernize some .execute calls in EnumSetTest"mike bayer2020-09-081-286/+255
|\
| * Modernize some .execute calls in EnumSetTestGord Thompson2020-09-071-286/+255
| | | | | | | | Change-Id: I9bbc3be4ec1797686ddf4a559f5b9e1679c62f58
* | Update paths in CHANGESStig Otnes Kolstad2020-09-071-11/+4
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <!-- Provide a general summary of your proposed changes in the Title field above --> ### Description Outdated path to in-repo changelog. Removed whitespace as well. ### Checklist <!-- go over following points. check them with an `x` if they do apply, (they turn into clickable checkboxes once the PR is submitted, so no need to do everything at once) --> This pull request is: - [x] A documentation / typographical error fix - Good to go, no issue or tests are needed - [ ] A short code fix - please include the issue number, and create an issue if none exists, which must include a complete example of the issue. one line code fixes without an issue and demonstration will not be accepted. - Please include: `Fixes: #<issue number>` in the commit message - please include tests. one line code fixes without tests will not be accepted. - [ ] A new feature implementation - please include the issue number, and create an issue if none exists, which must include a complete example of how the feature would look. - Please include: `Fixes: #<issue number>` in the commit message - please include tests. **Have a nice day!** Closes: #5560 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5560 Pull-request-sha: f69e6adbe85997c88cb1c6e6c564cefdbc1c874a Change-Id: If047c0fd4933ba09af5e3649fb8de874b886e854
* Don't rely on string col name in adapt_to_contextMike Bayer2020-09-066-52/+162
| | | | | | | | | | | | | | | fixed an issue where even though the method claims to be matching up columns positionally, it was failing on that by looking in "keymap" based on string name. Adds a new member to the _keymap recs MD_RESULT_MAP_INDEX so that we can efficiently link from the generated keymap back to the compiled._result_columns structure without any ambiguity. Fixes: #5559 Change-Id: Ie2fa9165c16625ef860ffac1190e00575e96761f
* Revert "Block non-mysqldb / pymysql from testing Enum"Mike Bayer2020-09-051-7/+2
| | | | This reverts commit 55843040b1b4e1493e27051f5125fa322a43dc31.
* Block non-mysqldb / pymysql from testing EnumMike Bayer2020-09-031-2/+7
| | | | | | | | | The mariadbconnector driver is having sporadic interpreter crashes within this test suite. hopefully the crashes are specific to these tests else we'll have to remove mariadb from CI. Change-Id: Idb7a9521e795d39957bce45415013eb4e771e560
* Merge "Add new MySQL reserved words: `cube`, `lateral`."mike bayer2020-09-032-0/+12
|\
| * Add new MySQL reserved words: `cube`, `lateral`.StefanosChaliasos2020-08-302-0/+12
| | | | | | | | | | | | | | | | Closes: #5539 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5539 Pull-request-sha: 8c228be322023041b11691d93dafa1be090f01a0 Change-Id: Ic756472a19563e793cf7e33b24eb1ad5e913dbc0
* | Add caveat re: with_expression and already-loaded objectMike Bayer2020-09-023-1/+52
| | | | | | | | | | | | | | Adds a test for the populate_existing() behavior as well. Fixes: #5553 Change-Id: Ib0db6227c3fec7d0065f2a7caa36b3fd94ef14fd
* | Merge "Improve reflection for mssql temporary tables"mike bayer2020-09-018-12/+154
|\ \
| * | Improve reflection for mssql temporary tablesGord Thompson2020-09-018-12/+154
| | | | | | | | | | | | | | | Fixes: #5506 Change-Id: I718474d76e3c630a1b71e07eaa20cefb104d11de
* | | Merge "Add support for classical mapping of dataclasses"mike bayer2020-09-017-6/+343
|\ \ \
| * | | Add support for classical mapping of dataclassesVáclav Klusák2020-09-017-6/+343
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added support for direct mapping of Python classes that are defined using the Python ``dataclasses`` decorator. See the section :ref:`mapping_dataclasses` for background. Pull request courtesy Václav Klusák. Fixes: #5027 Closes: #5516 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5516 Pull-request-sha: bb48c63d1561ca48c954ad9f84a3eb2646571115 Change-Id: Ie33db2aae4adeeb5d99633fe926b9c30bab0b885
* | | | Merge "MariaDB dialect implementation"mike bayer2020-09-019-1/+281
|\ \ \ \ | |_|/ / |/| | |
| * | | MariaDB dialect implementationGeorg Richter2020-08-319-1/+281
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: #5459 Closes: #5515 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5515 Pull-request-sha: 760090b9067304cc65fece12fcf10b522afc4a2a Change-Id: I30e8fbc02b7b5329ca228cd39f6fb7cfd0e43092
* | | | Merge "Provide a more detailed error message for Query.join()"mike bayer2020-09-013-3/+71
|\ \ \ \
| * | | | Provide a more detailed error message for Query.join()RamonWill2020-08-313-3/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An :class:`.ArgumentError` with more detail is now raised if the target parameter for :meth:`_query.Query.join` is set to an unmapped object. Prior to this change a less detailed ``AttributeError`` was raised. Pull request courtesy Ramon Williams. Fixes: #4428 Closes: #5452 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5452 Pull-request-sha: b148df547037e9a254fe331eff8e922c78426261 Change-Id: I873453d1fdb651178216aac698baac63ae5a94e8
* | | | | Fix a mis-reference in create_async_engine().Fantix King2020-08-312-1/+11
| |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `AsyncMethodRequired` is actually from `sqlalchemy.ext.asyncio.exc`, so here it should be referenced as `async_exc.AsyncMethodRequired`, instead of `exc.AsyncMethodRequired`. Fixes: #5529 Closes: #5545 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5545 Pull-request-sha: d8f885c587dd058f909d4f3bdbec3d0fca176680 Change-Id: I6886558bfd33d3e9e283fbd60c0ec971a1f22c0c
* | | | Some updates for creational patternsMike Bayer2020-08-311-10/+87
| |/ / |/| | | | | | | | | | | | | | | | | I'm finding it useful to use "with Session(engine) as session, session.begin()" so add an example for that. Change-Id: I4403ced51a5e90cfe6b0173813db4cb631957f4c
* | | Merge "Include PostgreSQL in trigger test and correct documentation example"mike bayer2020-08-313-13/+62
|\ \ \
| * | | Include PostgreSQL in trigger test and correct documentation exampleRamonWill2020-08-313-13/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Include PostgreSQL dialect in trigger test and correct DDL example in documentation A user highlighted that the syntax in the DDL trigger example was incorrect for PostgreSQL. The trigger tests where also skipping the PostgreSQL dialect until the syntax was corrected. This PR fixes both of these issues. This pull request is: - [X ] A documentation / typographical error fix - Good to go, no issue or tests are needed - [ ] A short code fix - please include the issue number, and create an issue if none exists, which must include a complete example of the issue. one line code fixes without an issue and demonstration will not be accepted. - Please include: `Fixes: #<issue number>` in the commit message - please include tests. one line code fixes without tests will not be accepted. - [ ] A new feature implementation - please include the issue number, and create an issue if none exists, which must include a complete example of how the feature would look. - Please include: `Fixes: #<issue number>` in the commit message - please include tests. **Have a nice day!** Fixes: #4037 Closes: #5548 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5548 Pull-request-sha: 1db5e47adb90f9d51e247711dcfdbb274fb7bf73 Change-Id: I06edbcab99c82a3ce25581b81f8d2a4a028c07c3
* | | | Fix AsyncEngine connect() bug when pool is exhaustedFantix King2020-08-312-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ### Description Decorating the referenced `await_fallback` with `staticmethod` would stop `AsyncAdaptedQueue.await_` from being treated as a bound method. ### Checklist This pull request is: - [x] A short code fix Fixes #5546 **Have a nice day!** Closes: #5547 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5547 Pull-request-sha: 6f18ee290e7d9fe24ce2a4a4ed8069b46082ca18 Change-Id: Ie335ee650f1dee0d1fce59e448217a48307b3435
* | | | Support extra / single inh criteria with ORM update/deleteMike Bayer2020-08-307-23/+368
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ORM bulk update and delete operations, historically available via the :meth:`_orm.Query.update` and :meth:`_orm.Query.delete` methods as well as via the :class:`_dml.Update` and :class:`_dml.Delete` constructs for :term:`2.0 style` execution, will now automatically accommodate for the additional WHERE criteria needed for a single-table inheritance discrminiator. Joined-table inheritance is still not directly supported. The new :func:`_orm.with_loader_criteria` construct is also supported for all mappings with bulk update/delete. Fixes: #5018 Fixes: #3903 Change-Id: Id90827cc7e2bc713d1255127f908c8e133de9295
* | | | Merge "internal test framework files for standardization of is_not/not_in;"mike bayer2020-08-3028-131/+141
|\ \ \ \ | |/ / / |/| | |
| * | | internal test framework files for standardization of is_not/not_in;jonathan vanasco2020-08-2928-131/+141
| | | | | | | | | | | | | | | | | | | | | | | | this is safe for 1.3.x Change-Id: Icba38fdc20f5d8ac407383a4278ccb346e09af38
* | | | Update connection docs for migrating off of nestingMike Bayer2020-08-295-51/+248
| | | | | | | | | | | | | | | | Change-Id: I3a81140f00a4a9945121bfb8ec4c0e3953b4085f
* | | | See if the future is hereMike Bayer2020-08-289-51/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The docs are going to talk a lot about session.execute(select()) for ORM queries, and additionally it's much easier to help users with queries and such if we can use this new syntax. I'm hoping to see how hard it is to get a unified tutorial started that switches to new syntax. Basically, new syntax is much easier to explain and less buggy. But, if we are starting to present new syntax with the explicit goal of being easier to explain for less experienced programmers, the "future" thing is going to just be an impediment to that. See if we can remove "future" from session.execute(), so that ORM-enabled select() statements return ORM results at that level. This does not change the presence of the "future" flag for the Session's construction and for its transactional behaviors. The only perceptible change of the future flag for session.execute() is that session.execute(select()) where the statement has ORM entities in it now returns ORM new style tuples rather than old style tuples. Like mutating a URL, it's hopefully not very common that people are doing this. Change-Id: I0aa10322bb787d554d32772e3bc60548f1bf6206
* | | | Merge "Emit v2.0 deprecation warning for "implicit autocommit""mike bayer2020-08-2819-112/+525
|\ \ \ \
| * | | | Emit v2.0 deprecation warning for "implicit autocommit"Gord Thompson2020-08-2819-112/+525
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "Implicit autocommit", which is the COMMIT that occurs when a DML or DDL statement is emitted on a connection, is deprecated and won't be part of SQLAlchemy 2.0. A 2.0-style warning is emitted when autocommit takes effect, so that the calling code may be adjusted to use an explicit transaction. As part of this change, DDL methods such as :meth:`_schema.MetaData.create_all` when used against a :class:`_engine.Engine` or :class:`_engine.Connection` will run the operation in a BEGIN block if one is not started already. The MySQL and MariaDB dialects now query from the information_schema.tables system view in order to determine if a particular table exists or not. Previously, the "DESCRIBE" command was used with an exception catch to detect non-existent, which would have the undesirable effect of emitting a ROLLBACK on the connection. There appeared to be legacy encoding issues which prevented the use of "SHOW TABLES", for this, but as MySQL support is now at 5.0.2 or above due to :ticket:`4189`, the information_schema tables are now available in all cases. Fixes: #4846 Change-Id: I733a7e0e17477a63607fb9931c87c393bbd7ac57
* | | | | Merge "ARM64 Support to Github Actions For Testing And Development Of Wheels"Federico Caselli2020-08-283-4/+194
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | ARM64 Support to Github Actions For Testing And Development Of Wheelsodidev2020-08-253-4/+194
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **Added**: 1. ARM64 jobs in Github Workflows For Testing And Development Of Wheels 2. Two script files for creating wheels and testing. Resolves #5436 Signed-off-by: odidev <odidev@puresoftware.com> Co-authored-by: Federico Caselli <cfederico87@gmail.com> Closes: #5480 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5480 Pull-request-sha: 131ef520bbf863ad9b65ca3bf3c2d2d214405702 Change-Id: Ia10dadd93365ba4beeefbd27c060bc077c2d7aeb
* | | | Merge "Update authors file"mike bayer2020-08-281-11/+27
|\ \ \ \
| * | | | Update authors fileFederico Caselli2020-08-281-11/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add all authors with more than 10 commits. The email are omitted to avoid possible spam (even if they are not private since they are in the git history, they are at least not grep friendly) Output obtained by `git shortlog --summary | sort -r` Change-Id: Ib364763b755c84e7980dfe9687cada7d2bbd1f63
* | | | | Merge "Add support for regular expression on supported backend."mike bayer2020-08-2722-12/+1173
|\ \ \ \ \
| * | | | | Add support for regular expression on supported backend.Federico Caselli2020-08-2722-12/+1173
| | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Two operations have been defined: * :meth:`~.ColumnOperators.regexp_match` implementing a regular expression match like function. * :meth:`~.ColumnOperators.regexp_replace` implementing a regular expression string replace function. Fixes: #1390 Change-Id: I44556846e4668ccf329023613bd26861d5c674e6
* | | | | Raise NotImplemenedError for association proxy __clause_element__Mike Bayer2020-08-273-0/+32
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's not possible right now to use an association proxy element as a plain column expression to be SELECTed from or used in a SQL function. An informative error is now raised when this occurs. Fixes: #5542 Change-Id: I334e767ebc0b56c1dccc4a1e5185b0435af77b93
* | | | Document caveat about backrefs and attribute_mapped_collectionMike Bayer2020-08-262-4/+89
| | | | | | | | | | | | | | | | | | | | Fixes: #5538 Change-Id: I2bda6bed40d35560a71bf0ed09d141047ce59e82
* | | | Merge "make URL immutable"mike bayer2020-08-2620-166/+1140
|\ \ \ \
| * | | | make URL immutableMike Bayer2020-08-2520-166/+1140
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | it's not really correct that URL is mutable and doesn't do any argument checking. propose replacing it with an immutable named tuple with rich copy-and-mutate methods. At the moment this makes a hard change to the CreateEnginePlugin docs that previously recommended url.query.pop(). I can't find any plugins on github other than my own that are using this feature, so see if we can just make a hard change on this one. Fixes: #5526 Change-Id: I28a0a471d80792fa8c28f4fa573d6352966a4a79
* | | | Merge "More descriptive error for non-mapped string prop name"mike bayer2020-08-263-2/+65
|\ \ \ \
| * | | | More descriptive error for non-mapped string prop namejonathan vanasco2020-08-253-2/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Fixes: #4589 Closes: #4594 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/4594 Pull-request-sha: 2b7ed5240f49be90f9390e3d041c9cb957083465 Change-Id: I66b9937991eb7cdbe074a92f490af1c80d16449e
* | | | | Merge "Updates for MariaDB sequences"mike bayer2020-08-2512-181/+313
|\ \ \ \ \ | |_|_|_|/ |/| | | |
| * | | | Updates for MariaDB sequencesFederico Caselli2020-08-2212-181/+313
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MariaDB should not run a Sequence if it has optional=True. Additionally, rework the rules in crud.py to accommodate the new combination MariaDB brings us, which is a dialect that supports both cursor.lastrowid, explicit sequences, *and* no support for returning. Co-authored-by: Mike Bayer <mike_mp@zzzcomputing.com> Fixes: #5528 Change-Id: I9a8ea69a34983affa95dfd22186e2908fdf0d58c
* | | | Merge "Improve docs of Identity columns."mike bayer2020-08-242-11/+9
|\ \ \ \
| * | | | Improve docs of Identity columns.Federico Caselli2020-08-242-11/+9
| |/ / / | | | | | | | | | | | | Change-Id: Iba85ac3c2c9f40878768d74a5dd33083fc68e504
* | | | Fix typo in docs examples of psycopg2.connectFederico Caselli2020-08-242-2/+2
| |/ / |/| | | | | | | | | | | Fixes: #5535 Change-Id: I7341137ec63c5a7978f9fe15ad1a932e068321c2