summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | 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
* | | Add deprecation warning for mssql legacy_schema_aliasingGord Thompson2020-08-246-204/+284
|/ / | | | | | | | | Fixes: #4809 Change-Id: I9ce2a5dfb79d86624c187ee28b5911fd14328ce2
* | Merge "Add support for identity columns"mike bayer2020-08-2121-173/+1223
|\ \ | |/ |/|
| * Add support for identity columnsFederico Caselli2020-08-1921-173/+1223
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Added the :class:`_schema.Identity` construct that can be used to configure identity columns rendered with GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY. Currently the supported backends are PostgreSQL >= 10, Oracle >= 12 and MSSQL (with different syntax and a subset of functionalities). Fixes: #5362 Fixes: #5324 Fixes: #5360 Change-Id: Iecea6f3ceb36821e8b96f0b61049b580507a1875
* | Merge "Raise UnmappedInstanceError if the attribute of a database object is ↵mike bayer2020-08-203-1/+35
|\ \ | | | | | | | | | an unmapped object."
| * | Raise UnmappedInstanceError if the attribute of a database object is an ↵RamonWill2020-08-133-1/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | unmapped object. The proposed change will raise an UnmappedInstanceError instead of an attribute error if an instance an Instrumented Attribute is unmapped. ### Description If a user tries to access an attribute of a database object that is unmapped then an error is raised. The reason for this is because the __get__ descriptor uses instance_state(instance) which uses the operator.attrgetter method to see if the object in question has the attribute "_sa_instance_state" that mapped objects have. If it doesn't contain this attribute it means that the object is unmapped. This pull request is: - [ ] A documentation / typographical error fix - Good to go, no issue or tests are needed - [X ] 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: #3858 Closes: #5478 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5478 Pull-request-sha: 853051c9225446b69f52b13ade78709ad2617f6d Change-Id: I5989c81227e55e628babdd11406d1e8ec0e8d93a
* | | Merge "normalize execute style for events, 2.0"mike bayer2020-08-2012-137/+477
|\ \ \
| * | | normalize execute style for events, 2.0Mike Bayer2020-08-2012-137/+477
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The _execute_20 and exec_driver_sql methods should wrap up the parameters so that they represent the single list / single dictionary style of invocation into the legacy methods. then the before_ after_ execute event handlers should be receiving the parameter dictionary as a single dictionary. this requires that we break out distill_params to work differently if event handlers are present. additionally, add deprecation warnings for old argument passing styles. Change-Id: I97cb4d06adfcc6b889f10d01cc7775925cffb116
* | | Merge "Implement DDL visitor for PG ENUM with schema translate support"mike bayer2020-08-194-12/+132
|\ \ \
| * | | Implement DDL visitor for PG ENUM with schema translate supportMike Bayer2020-08-194-12/+132
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed issue where the :class:`_postgresql.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. Fixes: #5520 Change-Id: I79f46e29ac0168e873ff178c242f8d78f6679aeb
* | | Merge "Add JSON support for mssql"mike bayer2020-08-1914-36/+337
|\ \ \
| * | | Add JSON support for mssqlGord Thompson2020-08-1914-36/+337
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | Added support for the :class:`_types.JSON` datatype on the SQL Server dialect using the :class:`_mssql.JSON` implementation, which implements SQL Server's JSON functionality against the ``NVARCHAR(max)`` datatype as per SQL Server documentation. Implementation courtesy Gord Thompson. Fixes: #4384 Change-Id: I28af79a4d8fafaa68ea032228609bba727784f18
* | | Support data types for CREATE SEQUENCE in PostgreSQLFederico Caselli2020-08-183-0/+33
|/ / | | | | | | | | | | | | | | | | Allow specifying the data type when creating a :class:`.Sequence` in PostgreSQL by using the parameter :paramref:`.Sequence.data_type`. Fixes: #5498 Change-Id: I2b4a80aa89b1503c56748dc3ecd2cf145faddd8b
* | Merge "Deliver straight BinaryExpr w/ no negate for any() / all()"mike bayer2020-08-184-2/+56
|\ \
| * | Deliver straight BinaryExpr w/ no negate for any() / all()Mike Bayer2020-08-184-2/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | Adjusted the :meth:`_types.ARRAY.Comparator.any` and :meth:`_types.ARRAY.Comparator.all` methods to implement a straight "NOT" operation for negation, rather than negating the comparison operator. Fixes: #5518 Change-Id: I87ee9278c321aafe51a679fcfcbb5fbb11307fda
* | | Merge "Update dialect for pg8000 version 1.16.0"mike bayer2020-08-1813-111/+184
|\ \ \ | |/ / |/| |
| * | Update dialect for pg8000 version 1.16.0Tony Locke2020-08-1813-111/+184
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The pg8000 dialect has been revised and modernized for the most recent version of the pg8000 driver for PostgreSQL. Changes to the dialect include: * All data types are now sent as text rather than binary. * Using adapters, custom types can be plugged in to pg8000. * Previously, named prepared statements were used for all statements. Now unnamed prepared statements are used by default, and named prepared statements can be used explicitly by calling the Connection.prepare() method, which returns a PreparedStatement object. Pull request courtesy Tony Locke. Notes by Mike: to get this all working it was needed to break up JSONIndexType into "str" and "int" subtypes; this will be needed for any dialect that is dependent on setinputsizes(). also includes @caselit's idea to include query params in the dbdriver parameter. Co-authored-by: Mike Bayer <mike_mp@zzzcomputing.com> Closes: #5451 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5451 Pull-request-sha: 639751ca9c7544801b9ede02e6cbe15a16c59c82 Change-Id: I2869bc52c330916773a41d11d12c297aecc8fcd8
* | | Clarify that session.close() is like resetMike Bayer2020-08-181-4/+10
| | | | | | | | | | | | | | | Fixes: #5517 Change-Id: I86809cf84de3ec19a279ae13f4e5e71336d8b359
* | | Merge "Fix wheel check in linux workflow and improve it"mike bayer2020-08-172-4/+26
|\ \ \ | |/ / |/| |
| * | Fix wheel check in linux workflow and improve itFederico Caselli2020-08-172-4/+26
| | | | | | | | | | | | Change-Id: I3b208674649e41bca0285d00aa11cc5975eb971a
* | | cherry-pick changelog update for 1.3.20Mike Bayer2020-08-171-0/+4
| | |
* | | cherry-pick changelog from 1.3.19Mike Bayer2020-08-1713-108/+119
| | |
* | | Merge "Create a real type for Tuple() and handle appropriately in compiler"mike bayer2020-08-1714-58/+207
|\ \ \
| * | | Create a real type for Tuple() and handle appropriately in compilerMike Bayer2020-08-1715-60/+213
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Improved the :func:`_sql.tuple_` construct such that it behaves predictably when used in a columns-clause context. The SQL tuple is not supported as a "SELECT" columns clause element on most backends; on those that do (PostgreSQL, not surprisingly), the Python DBAPI does not have a "nested type" concept so there are still challenges in fetching rows for such an object. Use of :func:`_sql.tuple_` in a :func:`_sql.select` or :class:`_orm.Query` will now raise a :class:`_exc.CompileError` at the point at which the :func:`_sql.tuple_` object is seen as presenting itself for fetching rows (i.e., if the tuple is in the columns clause of a subquery, no error is raised). For ORM use,the :class:`_orm.Bundle` object is an explicit directive that a series of columns should be returned as a sub-tuple per row and is suggested by the error message. Additionally ,the tuple will now render with parenthesis in all contexts. Previously, the parenthesization would not render in a columns context leading to non-defined behavior. As part of this change, Tuple receives a dedicated datatype which appears to allow us the very desirable change of removing the bindparam._expanding_in_types attribute as well as ClauseList._tuple_values (which might already have not been needed due to #4645). Fixes: #5127 Change-Id: Iecafa0e0aac2f1f37ec8d0e1631d562611c90200
* | | | Merge "Make discriminator column used by ConcreteBase configurable"mike bayer2020-08-173-6/+75
|\ \ \ \
| * | | | Make discriminator column used by ConcreteBase configurableJesse Bakker2020-08-173-6/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The name of the virtual column used when using the :class:`_declarative.AbstractConcreteBase` and :class:`_declarative.ConcreteBase` classes can now be customized, to allow for models that have a column that is actually named ``type``. Pull request courtesy Jesse-Bakker. Fixes: #5513 Closes: #5514 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5514 Pull-request-sha: 5e7429f3531e2e22fffe996c9760905578d16ef9 Change-Id: I733737844d4f4e1f52dd2475a66c7044ff7292f5
* | | | | Merge "Bump minimum MySQL version to 5.0.2; use all-numeric server version"mike bayer2020-08-1720-403/+488
|\ \ \ \ \
| * | | | | Bump minimum MySQL version to 5.0.2; use all-numeric server versionMike Bayer2020-08-1620-403/+488
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MySQL dialect's server_version_info tuple is now all numeric. String tokens like "MariaDB" are no longer present so that numeric comparison works in all cases. The .is_mariadb flag on the dialect should be consulted for whether or not mariadb was detected. Additionally removed structures meant to support extremely old MySQL versions 3.x and 4.x; the minimum MySQL version supported is now version 5.0.2. In addition, as the "MariaDB" name goes away from server version, expand upon the change in I330815ebe572b6a9818377da56621397335fa702 to support the name "mariadb" throughout the dialect and test suite when mariadb-only mode is used. This changes the "name" field on the MariaDB dialect to "mariadb", which then implies a change throughout the testing requirements system as well as all the dialect-specific DDL argument names such as "mysql_engine" is now specified as "mariadb_engine", etc. Make use of the recent additions to test suite URL provisioning so that we can force MariaDB databases to have a "mariadb-only" dialect which allows us to test this name change fully. Update documentation to refer to MySQL / MariaDB explicitly as well as indicating the "mariadb_" prefix used for options. It seems likely that MySQL and MariaDB version numbers are going to start colliding at some point so having the "mariadb" name be available as a totally separate dialect name should give us some options in this regard. Currently also includes a date related fix to a test for the postgresql dialect that was implicitly assuming a non-UTC timezone Fixes: #4189 Change-Id: I00e76d00f62971e1f067bd61915fa6cc1cf64e5e
* | | | | error message for LookupRamonWill2020-08-174-13/+84
| |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Thr proposed change will provide the user with the target Enum Class name as well as up to four possible enum values when a LookupError is raised in the Enum Class. A user requested that the enum name and possible values are included to the LookupError message to make debugging easier. The criteria included using ellipses for Enums containing more than four values and using ellipses for enum values that were greater than a certain number of characters (for this resolution the limit is 11 characters). This pull request is: - [ ] A documentation / typographical error fix - Good to go, no issue or tests are needed - [X ] 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: #4733 Closes: #5490 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5490 Pull-request-sha: 55e76f2ae796b59b7de157cfaae5235dffa359cb Change-Id: I4541f9efed1c05401587a413e9e748d46938bcd1
* | | | Merge "Test execution_options on Query object before compilation"mike bayer2020-08-171-0/+19
|\ \ \ \ | |/ / / |/| | |
| * | | Test execution_options on Query object before compilationRamonWill2020-08-131-0/+19
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A test that checks if the execution options are being set on the Query object before compilation ### Description Since Issue #4670 has been open there have changes to the execution mechanics that resolved it. I have just created a test case that will enable the issue to be closed. 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: #4670 Closes: #5446 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5446 Pull-request-sha: c98639ec94279760caacf9f288b180198511dfd3 Change-Id: I686dc7a4735000748c94bff5ba6dc7bd57b2d1c4
* | | Merge "Provision on different drivers dynamically"mike bayer2020-08-145-10/+147
|\ \ \
| * | | Provision on different drivers dynamicallyMike Bayer2020-08-146-18/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We want TOX_POSTGRESQL and similar to be the fixed variable that is configured from CI environment. These variables should refer to database servers but individual drivers like asyncpg mysqlconnector etc. should come from local tox.ini. add a new system to generate per-driver URLs from a simple list of hostname-based URLs delivered from CI environment. Change-Id: I4267b4a70742765388c7e7c4432c1da9d9adece2
* | | | update for pytest-xdist terminologyMike Bayer2020-08-141-8/+8
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | With version 2.0.0 they removed the old terminology, which I had no idea had been changed in any case for several years. pushing this out for all branches Change-Id: I51e4f577aeb9ef8205348b50489549f77072a613
* | | Don't import asyncpg prior to python 3.6Mike Bayer2020-08-141-1/+1
| | | | | | | | | | | | | | | | | | | | | Continuing on 788ba204a43b37d28cc690138b83e6782f8a46da make sure asyncpg doesn't get imported if version < 3.6. Change-Id: Ic070a0c9d3656f7da7ce2eb85033968fc88a64b9