summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Re-enable setinputsizes for Oracle TIMESTAMPMike Bayer2018-01-083-3/+17
| | | | | | | | | Fixed regression where the removal of most setinputsizes rules from cx_Oracle dialect impacted the TIMESTAMP datatype's ability to retrieve fractional seconds. Fixes: #4157 Change-Id: Ic53109fd199aea8b9c4da14355e125849b8b198f
* Don't try to iterate chopped path if it's NoneMike Bayer2018-01-041-1/+11
| | | | | | | | | Fixed regression caused by new lazyload caching scheme in :ticket:`3954` where a query that makes use of loader options with of_type would cause lazy loads of unrelated paths to fail with a TypeError. Change-Id: I705ea0ac012bcc3856ca04109454952cb07a2a8b Fixes: #4153
* Merge "Check for object was expunged before restoring after pk switch + ↵mike bayer2018-01-041-4/+10
|\ | | | | | | rollback"
| * Check for object was expunged before restoring after pk switch + rollbackMike Bayer2018-01-041-4/+10
| | | | | | | | | | | | | | | | | | | | Fixed bug where an object that is expunged during a rollback of a nested or subtransaction which also had its primary key mutated would not be correctly removed from the session, causing subsequent issues in using the session. Change-Id: I57e2888902015d67ee11857e44382818f1d2f8bc Fixes: #4151
* | Merge "Add rule to prevent "GROUP BY <expr>" in tests"mike bayer2018-01-042-0/+12
|\ \
| * | Add rule to prevent "GROUP BY <expr>" in testsMike Bayer2018-01-042-0/+12
| |/ | | | | | | | | | | | | | | Added a new exclusion rule group_by_complex_expression which disables tests that use "GROUP BY <expr>", which seems to be not viable for at least two third party dialects. Change-Id: I47284513382ae93f5a3d12c734b3a44643147c99
* | Merge "Remove cx_oracle test rule from requirements"mike bayer2018-01-041-1/+0
|\ \
| * | Remove cx_oracle test rule from requirementsMike Bayer2018-01-041-1/+0
| |/ | | | | | | | | | | | | | | Removed an oracle-specific requirements rule from the public test suite that was interfering with third party dialect suites. Change-Id: Iebae510edcb8ef908dcd9be9222888e12caed97d
* | Merge "added missing , (comma) in dialects/oracle/__init__"mike bayer2018-01-031-1/+1
|\ \
| * | added missing , (comma) in dialects/oracle/__init__Miroslav Shubernetskiy2018-01-021-1/+1
| |/ | | | | | | | | | | | | | | | | Fixed regression in Oracle imports where a missing comma caused an undefined symbol to be present. Pull request courtesy Miroslav Shubernetskiy. Change-Id: I91e79c810522dedd4f2a4f3bc60d484bc06f24c2 Pull-request: https://github.com/zzzeek/sqlalchemy/pull/411
* | Check for the endmost target when chaining contains()Mike Bayer2018-01-021-0/+1
|/ | | | | | | | | | | | Fixed regression in association proxy due to :ticket:`3769` (allow for chained any() / has()) where contains() against an association proxy chained in the form (o2m relationship, associationproxy(m2o relationship, m2o relationship)) would raise an error regarding the re-application of contains() on the final link of the chain. Change-Id: Iea51ce84c2c5a332416fff10b1ba0e676cf0bad7 Fixes: #4150
* Version 1.2.1 placeholderMike Bayer2017-12-271-1/+1
| | | | Change-Id: I86523071ec947e368464411de3666cffb11fab6b
* Merge "Implement an error lookup"mike bayer2017-12-274-18/+87
|\
| * Implement an error lookupMike Bayer2017-12-274-18/+87
| | | | | | | | | | | | | | | | Add codes to commonly raised error messages and classes that link back to fixed documentation sections giving background on these messages. Change-Id: I78d0660add7026bb662e20305a59283b20616954
* | - call this 1.2.0Mike Bayer2017-12-262-4/+4
| | | | | | | | Change-Id: If8d60e5d44f387eba97fd9bb1dfa85947ce7f42f
* | Merge "Add an identity_token to the identity key"mike bayer2017-12-267-61/+112
|\ \ | |/ |/|
| * Add an identity_token to the identity keyMike Bayer2017-12-227-61/+112
| | | | | | | | | | | | | | | | | | For the purposes of assisting with sharded setups, add a new member to the identity key that can be customized. this allows sharding across databases where the primary key space is shared. Change-Id: Iae3909f5d4c501b62c10d0371fbceb01abda51db Fixes: #4137
* | Merge "Add TRUNCATE to postgres autocommit regexp"mike bayer2017-12-181-1/+1
|\ \
| * | Add TRUNCATE to postgres autocommit regexpJacob Hayes2017-12-181-1/+1
| | | | | | | | | | | | | | | | | | | | | Extends AUTOCOMMIT_REGEXP for the postgres dialect to include `TRUNCATE`. Change-Id: I315e03674b89bb89aae669b8655481e4d890491e Pull-request: https://github.com/zzzeek/sqlalchemy/pull/407
* | | Open up all cx_Oracle numeric tests, finish infinity supportMike Bayer2017-12-172-18/+12
|/ / | | | | | | | | | | | | | | | | | | | | | | Added some additional rules to fully handle ``Decimal('Infinity')``, ``Decimal('-Infinity')`` values with cx_Oracle numerics when using ``asdecimal=True``. Allow remaining cx_Oracle numeric tests that were waiting for the refactor to be finished and forgot to get enabled. Change-Id: I1e2365176e34559c0230c84f800a7cfe0a034ed5 Fixes: #4064
* | Merge remote-tracking branch 'origin/pr/399'Mike Bayer2017-12-151-1/+1
|\ \
| * | Fix import in Inspector.reflecttable docJacob Hayes2017-11-081-1/+1
| | |
* | | Fully copy index expressionsMike Bayer2017-12-141-16/+28
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed bug where the :meth:`.Table.tometadata` method would not properly accommodate :class:`.Index` objects that didn't consist of simple column expressions, such as indexes against a :func:`.text` construct, indexes that used SQL expressions or :attr:`.func`, etc. The routine now copies expressions fully to a new :class:`.Index` object while substituting all table-bound :class:`.Column` objects for those of the target table. Also refined the means by which tometadata() checks if an Index or UniqueConstraint is generated by a column-level flag, by propagating an attribute "_column_flag=True" to such indexes/constraints. Change-Id: I7ef1b8ea42f9933357ae35f241a5ba9838bac35b Fixes: #4147
* | Merge "Change visit name for ColumnElement"mike bayer2017-12-071-1/+1
|\ \
| * | Change visit name for ColumnElementMike Bayer2017-12-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No SQLA built-in subclasses ColumnElement without specifying an alternate visit_name, and user defined ColumnElement subclasses should avoid being treated like ColumnClause, e.g. where a Table is present. Fixes: #4142 Change-Id: I15ed09ba8bdebae4cb0c7e5e5df3f59351477577
* | | Merge "Disable eager loads for exists()"mike bayer2017-12-071-1/+2
|\ \ \
| * | | Disable eager loads for exists()Mike Bayer2017-12-061-1/+2
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The :meth:`.Query.exists` method will now disable eager loaders for when the query is rendered. Previously, joined-eager load joins would be rendered unnecessarily as well as subquery eager load queries would be needlessly generated. The new behavior matches that of the :meth:`.Query.subquery` method. Fixes: #4032 Change-Id: Iacafc76aa9ae0b71928037fa9637e85ad434ee3a
* | | Merge "Allow delete where clause to refer multiple tables."mike bayer2017-12-067-9/+166
|\ \ \
| * | | Allow delete where clause to refer multiple tables.inytar2017-12-057-9/+166
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implemented "DELETE..FROM" syntax for Postgresql, MySQL, MS SQL Server (as well as within the unsupported Sybase dialect) in a manner similar to how "UPDATE..FROM" works. A DELETE statement that refers to more than one table will switch into "multi-table" mode and render the appropriate "USING" or multi-table "FROM" clause as understood by the database. Pull request courtesy Pieter Mulder. For SQL syntaxes see: Postgresql: https://www.postgresql.org/docs/current/static/sql-delete.html MySQL: https://dev.mysql.com/doc/refman/5.7/en/delete.html#multiple-table_syntax MSSQL: https://docs.microsoft.com/en-us/sql/t-sql/statements/delete-transact-sql Sybase: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc00801.1510/html/iqrefso/X315721.htm Co-authored by: Mike Bayer <mike_mp@zzzcomputing.com> Change-Id: I6dfd57b49e44a095d076dc493cd2360bb5d920d3 Pull-request: https://github.com/zzzeek/sqlalchemy/pull/392 Fixes: #959
* | | Merge "Propagate attachment events for ARRAY"mike bayer2017-12-051-0/+2
|\ \ \ | |/ / |/| |
| * | Propagate attachment events for ARRAYMike Bayer2017-12-041-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed regression in :class:`.ARRAY` datatype caused by :ticket:`3964`, which is essentially the same issue as that of :ticket:`3832`, where column attachment events for :class:`.ARRAY` would not be invoked. This breaks the use case of using declarative mixins that declare a :class:`.Column` which makes use of :meth:`.MutableList.as_mutable`. Change-Id: If8c57615860883837f6cf72661e46180a77778c1 Fixes: #4141
* | | Merge "Intercept contains_eager() with of_type, set aliased / polymorphic"mike bayer2017-12-041-3/+22
|\ \ \
| * | | Intercept contains_eager() with of_type, set aliased / polymorphicMike Bayer2017-12-041-3/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed bug in :func:`.contains_eager` query option where making use of a path that used :meth:`.PropComparator.of_type` to refer to a subclass across more than one level of joins would also require that the "alias" argument were provided with the same subtype in order to avoid adding unwanted FROM clauses to the query; additionally, using :func:`.contains_eager` across subclasses that use :func:`.aliased` objects of subclasses as the :meth:`.PropComparator.of_type` argument will also render correctly. Change-Id: Ie1c10924faa45251aab1a076a3ba7ef9fb1bdeee Fixes: #4130
* | | | Allow url.password to be an objectMike Bayer2017-12-041-1/+12
| |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "password" attribute of the :class:`.url.URL` object can now be any user-defined or user-subclassed string object that responds to the Python ``str()`` builtin. The object passed will be maintained as the datamember :attr:`.url.URL.password_original` and will be consulted when the :attr:`.url.URL.password` attribute is read to produce the string value. Change-Id: I91d101c3b10e135ae7e4de60a5104b51776db84f Fixes: #4089
* | | Fix regexp for expanding INMike Bayer2017-12-012-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed bug in new "expanding bind parameter" feature whereby if multiple params were used in one statement, the regular expression would not match the parameter name correctly. Change-Id: Ifaf7d627aac4ead2a13c8dddccb5c515253d88e6 Fixes: #4140
* | | Merge "add nullsfirst() / nullslast() to top-level imports"mike bayer2017-11-172-0/+4
|\ \ \
| * | | add nullsfirst() / nullslast() to top-level importsLele Gaifax2017-11-162-0/+4
| |/ / | | | | | | | | | | | | Change-Id: Ieefcc4c30c1c17f43f2908d961e00815bae862bb Pull-request: https://github.com/zzzeek/sqlalchemy/pull/378
* | | Add postgresql.MONEYCleber J Santos2017-11-162-2/+16
|/ / | | | | | | | | Change-Id: I2b40faf583a84bc5b416e1ad3aa812896ea67a8c Pull-request: https://github.com/zzzeek/sqlalchemy/pull/395
* | Merge "Add baked.Result.with_post_criteria method"mike bayer2017-11-132-15/+56
|\ \
| * | Add baked.Result.with_post_criteria methodMike Bayer2017-11-122-15/+56
| |/ | | | | | | | | | | | | | | | | | | | | | | | | Added new method :meth:`.baked.Result.with_post_criteria` to baked query system, allowing non-SQL-modifying transformations to take place after the query has been pulled from the cache. Among other things, this method can be used with :class:`.horizontal_shard.ShardedQuery` to set the shard identifier. :class:`.horizontal_shard.ShardedQuery` has also been modified such that its :meth:`.ShardedQuery.get` method interacts correctly with that of :class:`.baked.Result`. Change-Id: I04630c683240abbb4b99f0510a1a3dcb564815b4 Fixes: #4135
* | Propagate kwargs for mysql concat, matchMike Bayer2017-11-131-7/+7
|/ | | | | | | | | | | Fixed bug where the MySQL "concat" and "match" operators failed to propagate kwargs to the left and right expressions, causing compiler options such as "literal_binds" to fail. Also adds non-interpreted **kw for visit_create_index, visit_typeclause Change-Id: Iaf54ac18949cc6a54f50678125f010b4f12c5673 Fixes: #4136
* Fix as many RST parse warnings as possible.Mike Bayer2017-11-036-55/+57
| | | | | | | Still a few I can't get. Also 0.9 is EOL so hide the unreleased notes. Change-Id: If0e44d4a0b3e78e211f32d5c33b51b1a007c9c69
* Add doc note for contains_eager() w/ subclasses.Mike Bayer2017-11-021-1/+13
| | | | | Change-Id: I9634136e1855a081c25b04bb6ae8248f0f94be1c Fixes: #4130
* - cross-link of_type() correctlyMike Bayer2017-11-022-4/+5
| | | | Change-Id: Iaacab5d2fe45b0b87fea922ec914e258dba9e30d
* Accommodate tuples for ColumnDefault.__repr__Nicolas CANIART2017-10-311-1/+1
| | | | | | | | | Fixed bug where ``__repr__`` of :class:`.ColumnDefault` would fail if the argument were a tuple. Pull request courtesy Nicolas Caniart. Change-Id: I08aa2448ef91054c43d6068ac54cedbdf7a83d64 Pull-request: https://bitbucket.org/zzzeek/sqlalchemy/pull-requests/1 Fixes: #4126
* - add notes that @comparator and @expression don't go together.Mike Bayer2017-10-301-0/+8
| | | | Change-Id: I3fb366f8b49454453e4b6dada565c24c5ccb975e
* Filter attributes we don't map during a load_scalar_attributesMike Bayer2017-10-282-0/+10
| | | | | | | | | | | | | | Fixed bug where a descriptor that is elsewhere a mapped column or relationship within a hierarchy based on :class:`.AbstractConcreteBase` would be referred towards during a refresh operation, causing an error as the attribute is not mapped as a mapper property. A similar issue can arise for other attributes like the "type" column added by :class:`.AbstractConcreteBase` if the class fails to include "concrete=True" in its mapper, however the check here should also prevent that scenario from causing a problem. Change-Id: I407b07a3a3e2c374da19fc86ed44b987d595dcfa Fixes: #4124
* Merge "Rework autoescape to be a simple boolean; escape the escape character"mike bayer2017-10-262-81/+352
|\
| * Rework autoescape to be a simple boolean; escape the escape characterMike Bayer2017-10-242-81/+352
| | | | | | | | | | | | | | | | | | | | | | | | Reworked the new "autoescape" feature introduced in :ref:`change_2694` in 1.2.0b2 to be fully automatic; the escape character now defaults to a forwards slash ``"/"`` and is applied to percent, underscore, as well as the escape character itself, for fully automatic escaping. The character can also be changed using the "escape" parameter. Change-Id: I74894a2576983c0f6eb89480c9e5727f49fa9c25 Fixes: #2694
* | Fix / consolidate for SQL Server BINARY, VARBINARYBen Shen2017-10-252-7/+26
|/ | | | | | | | | | | | Fixed bug where sqltypes.BINARY and sqltypes.VARBINARY datatypes would not include correct bound-value handlers for pyodbc, which allows the pyodbc.NullParam value to be passed that helps with FreeTDS. Co-authored by: Mike Bayer <mike_mp@zzzcomputing.com> Change-Id: I6e3c16a69465b4fbc7b17a1927fb5e66acee93cb Pull-request: https://github.com/zzzeek/sqlalchemy/pull/386 Fixes: #4121