summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Remove spaces around kwargs in metadata.rstpr/175Jochen Van de Velde2015-05-261-7/+7
|
* - Fixed bug where known boolean values used byMike Bayer2015-05-268-9/+69
| | | | | | | | :func:`.engine_from_config` were not being parsed correctly; these included ``pool_threadlocal`` and the psycopg2 argument ``use_native_unicode``. fixes #3435 - add legacy_schema_aliasing config parsing for mssql - move use_native_unicode config arg to the psycopg2 dialect
* - turn some dials to try to get more log outputMike Bayer2015-05-252-2/+2
|
* - work around RTD issue #1293, take oneMike Bayer2015-05-252-1/+33
|
* - Added a new dialect flag to the MSSQL dialectMike Bayer2015-05-245-69/+317
| | | | | | | | | | | | | | | | | | | | | | | ``legacy_schema_aliasing`` which when set to False will disable a very old and obsolete behavior, that of the compiler's attempt to turn all schema-qualified table names into alias names, to work around old and no longer locatable issues where SQL server could not parse a multi-part identifier name in all circumstances. The behavior prevented more sophisticated statements from working correctly, including those which use hints, as well as CRUD statements that embed correlated SELECT statements. Rather than continue to repair the feature to work with more complex statements, it's better to just disable it as it should no longer be needed for any modern SQL server version. The flag defaults to True for the 1.0.x series, leaving current behavior unchanged for this version series. In the 1.1 series, it will default to False. For the 1.0 series, when not set to either value explicitly, a warning is emitted when a schema-qualified table is first used in a statement, which suggests that the flag be set to False for all modern SQL Server versions. fixes #3424 fixes #3430
* - break out binary insert against None, disable for freetds for nowMike Bayer2015-05-242-13/+41
|
* - autopep8Mike Bayer2015-05-242-234/+270
|
* - liberalize list.remove() regexp as recent Pypy versionsMike Bayer2015-05-241-1/+1
| | | | format this message differently than cpython
* - fix some tests related to the URL change and try to makeMike Bayer2015-05-233-6/+17
| | | | the URL design a little simpler
* - Adjustments to the engine plugin hook, such that theMike Bayer2015-05-223-9/+23
| | | | | | | | :meth:`.URL.get_dialect` method will continue to return the ultimate :class:`.Dialect` object when a dialect plugin is used, without the need for the caller to be aware of the :meth:`.Dialect.get_dialect_cls` method. reference #3379
* - document fully how to use autoincrement w/ SQLite includingMike Bayer2015-05-221-7/+67
| | | | non-Integer column types, fixes #2075
* - Fixed regression in the :mod:`sqlalchemy.ext.mutable` extensionMike Bayer2015-05-217-23/+286
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | as a result of the bugfix for :ticket:`3167`, where attribute and validation events are no longer called within the flush process. The mutable extension was relying upon this behavior in the case where a column level Python-side default were responsible for generating the new value on INSERT or UPDATE, or when a value were fetched from the RETURNING clause for "eager defaults" mode. The new value would not be subject to any event when populated and the mutable extension could not establish proper coercion or history listening. A new event :meth:`.InstanceEvents.refresh_flush` is added which the mutable extension now makes use of for this use case. fixes #3427 - Added new event :meth:`.InstanceEvents.refresh_flush`, invoked when an INSERT or UPDATE level default value fetched via RETURNING or Python-side default is invoked within the flush process. This is to provide a hook that is no longer present as a result of :ticket:`3167`, where attribute and validation events are no longer called within the flush process. - Added a new semi-public method to :class:`.MutableBase` :meth:`.MutableBase._get_listen_keys`. Overriding this method is needed in the case where a :class:`.MutableBase` subclass needs events to propagate for attribute keys other than the key to which the mutable type is associated with, when intercepting the :meth:`.InstanceEvents.refresh` or :meth:`.InstanceEvents.refresh_flush` events. The current example of this is composites using :class:`.MutableComposite`.
* flake8 some testsMike Bayer2015-05-212-226/+294
|
* Merge pull request #173 from PierreRochard/patch-1mike bayer2015-05-201-1/+1
|\ | | | | Correcting typo in introspection
| * Correcting typo in introspectionpr/173Pierre Rochard2015-05-171-1/+1
|/
* - pg8000 wants to raise a ProgrammingError for a PK violationMike Bayer2015-05-153-0/+14
|
* - Added support for the case of the misbehaving DBAPI that hasMike Bayer2015-05-159-5/+155
| | | | | | | | | | | pep-249 exception names linked to exception classes of an entirely different name, preventing SQLAlchemy's own exception wrapping from wrapping the error appropriately. The SQLAlchemy dialect in use needs to implement a new accessor :attr:`.DefaultDialect.dbapi_exception_translation_map` to support this feature; this is implemented now for the py-postgresql dialect. fixes #3421
* - The "lightweight named tuple" used when a :class:`.Query` returnsMike Bayer2015-05-142-0/+12
| | | | | | | | rows failed to implement ``__slots__`` correctly such that it still had a ``__dict__``. This is resolved, but in the extremely unlikely case someone was assigning values to the returned tuples, that will no longer work. fixes #3420
* - Fixed bug where in the case that a pool checkout event handler is usedMike Bayer2015-05-143-18/+75
| | | | | | | | | | | | | | | | | and the database can no longer be connected towards, that the checkout handler failure is caught, the attempt to re-acquire the connection also raises an exception, but the underlying connection record is not immediately re-checked in before the exception is propagated outwards, having the effect that the checked-out record does not close itself until the stack trace it's associated with is garbage collected, preventing that record from being used for a new checkout until we leave the scope of the stack trace. This can lead to confusion in the specific case of when the number of current stack traces in memory exceeds the number of connections the pool can return, as the pool will instead begin to raise errors about no more checkouts available, rather than attempting a connection again. The fix applies a checkin of the record before re-raising. fixes #3419
* - Added official support for a CTE used by the SELECT presentMike Bayer2015-05-083-1/+64
| | | | | | | | | | | inside of :meth:`.Insert.from_select`. This behavior worked accidentally up until 0.9.9, when it no longer worked due to unrelated changes as part of :ticket:`3248`. Note that this is the rendering of the WITH clause after the INSERT, before the SELECT; the full functionality of CTEs rendered at the top level of INSERT, UPDATE, DELETE is a new feature targeted for a later release. fixes #3418
* - start 1.0.5Mike Bayer2015-05-082-1/+4
|
* 1.0.4rel_1_0_4Mike Bayer2015-05-072-2/+3
|
* - plead with RTD to please please use the correct versionMike Bayer2015-05-071-1/+1
|
* RTD doesn't seem to want to refresh on a git tag so go back to usingMike Bayer2015-05-071-1/+1
| | | | | | release numbers (cherry picked from commit 6b55842eef3a243d275bdd5630c1fe62d98e8371)
* - re-tag zzzeeksphinx w/ new version supporting sphinx 1.3Mike Bayer2015-05-071-1/+1
|
* - bump zs version due to not yet diagnosed errorMike Bayer2015-05-071-1/+1
|
* - fix for py3kMike Bayer2015-05-071-1/+2
|
* - Fixed unexpected-use regression where in the odd case that theMike Bayer2015-05-065-4/+112
| | | | | | | | | | primaryjoin of a relationship involved comparison to an unhashable type such as an HSTORE, lazy loads would fail due to a hash-oriented check on the statement parameters, modified in 1.0 as a result of :ticket:`3061` to use hashing and modified in :ticket:`3368` to occur in cases more common than "load on pending". The values are now checked for the ``__hash__`` attribute beforehand. fixes #3416
* - appease oracle's anger (no sequence defined for these PKs)Mike Bayer2015-05-051-0/+2
|
* - fix typo MANYTOONE -> MANYTOMANY, fixes #3415Mike Bayer2015-05-051-1/+1
|
* Mark tests that they require OFFSET support in databasepr/171Peter Hoffmann2015-05-051-1/+4
| | | | | The sqlalchemy_exasol dialect needs to support Exasol 4.x which does not support the OFFSET feature. Mark test with testing.requires.offset so that they can be skipped of in the exasol specific test suite.
* - Liberalized an assertion that was added as part of :ticket:`3347`Mike Bayer2015-05-023-1/+149
| | | | | | | | to protect against unknown conditions when splicing inner joins together within joined eager loads with ``innerjoin=True``; if some of the joins use a "secondary" table, the assertion needs to unwrap further joins in order to pass. fixes #3412
* - Fixed bug in enhanced constraint-attachment logic introduced inMike Bayer2015-05-024-9/+186
| | | | | | | | | | | :ticket:`3341` where in the unusual case of a constraint that refers to a mixture of :class:`.Column` objects and string column names at the same time, the auto-attach-on-column-attach logic will be skipped; for the constraint to be auto-attached in this case, all columns must be assembled on the target table up front. Added a new section to the migration document regarding the original feature as well as this change. fixes #3411
* - start qualifying some regressions as "unexpected use"Mike Bayer2015-05-021-7/+9
| | | | | | regressions; regressions where we didn't know an API even worked in a particular way or that anyone were using it in such a way hence had no tests for such case.
* - update 3.4 callcountsMike Bayer2015-05-011-81/+105
|
* - move away from explicit raises of SkipTest, instead call aMike Bayer2015-05-016-17/+36
| | | | | | | function patched onto config. nose/pytest backends now fill in their exception class here only when loaded - use more public seeming api to get at py.test Skipped exception
* - Repair _reinstall_default_lookups to also flip the _extended flagMike Bayer2015-05-013-150/+327
| | | | | | | | | | | | | off again so that test fixtures setup/teardown instrumentation as expected - clean up test_extendedattr.py and fix it to no longer leak itself outside by ensuring _reinstall_default_lookups is always called, part of #3408 - Fixed bug where when using extended attribute instrumentation system, the correct exception would not be raised when :func:`.class_mapper` were called with an invalid input that also happened to not be weak referencable, such as an integer. fixes #3408
* - turn sessions in ResultTest to autocommit=True just to get themMike Bayer2015-05-011-7/+7
| | | | to clean up automatically. references #3407
* - Fixed an import that prevented "pypy setup.py test" from workingMike Bayer2015-05-012-0/+9
| | | | | correctly. fixes #3406
* - Repaired / added to tests yet more expressions that were reportedMike Bayer2015-05-014-5/+48
| | | | | | | | | as failing with the new 'entity' key value added to :attr:`.Query.column_descriptions`, the logic to discover the "from" clause is again reworked to accommodate columns from aliased classes, as well as to report the correct value for the "aliased" flag in these cases. fixes #3409
* 1.0.3rel_1_0_3Mike Bayer2015-04-302-2/+3
|
* - Fixed regression from 0.9.10 prior to release due to :ticket:`3349`Mike Bayer2015-04-302-9/+19
| | | | | | | | where the check for query state on :meth:`.Query.update` or :meth:`.Query.delete` compared the empty tuple to itself using ``is``, which fails on Pypy to produce ``True`` in this case; this would erronously emit a warning in 0.9 and raise an exception in 1.0. fixes #3405
* - revise the last commit with a more traditional approachMike Bayer2015-04-302-35/+15
| | | | using descriptors; ensure that mock.patch() honors descriptor setters
* - work the wrapping of the "creator" to be as resilient toMike Bayer2015-04-303-9/+87
| | | | | old / new style, direct access, and ad-hoc patching and unpatching as possible
* - New features added to support engine/pool plugins with advancedMike Bayer2015-04-309-22/+475
| | | | | | | | | | | | | | | | | | | | | | | | | functionality. Added a new "soft invalidate" feature to the connection pool at the level of the checked out connection wrapper as well as the :class:`._ConnectionRecord`. This works similarly to a modern pool invalidation in that connections aren't actively closed, but are recycled only on next checkout; this is essentially a per-connection version of that feature. A new event :class:`.PoolEvents.soft_invalidate` is added to complement it. fixes #3379 - Added new flag :attr:`.ExceptionContext.invalidate_pool_on_disconnect`. Allows an error handler within :meth:`.ConnectionEvents.handle_error` to maintain a "disconnect" condition, but to handle calling invalidate on individual connections in a specific manner within the event. - Added new event :class:`.DialectEvents.do_connect`, which allows interception / replacement of when the :meth:`.Dialect.connect` hook is called to create a DBAPI connection. Also added dialect plugin hooks :meth:`.Dialect.get_dialect_cls` and :meth:`.Dialect.engine_created` which allow external plugins to add events to existing dialects using entry points. fixes #3355
* - Fixed regression from as yet unreleased 0.9.10 where the new additionMike Bayer2015-04-304-1/+34
| | | | | | | of ``entity`` to the :attr:`.Query.column_descriptions` accessor would fail if the target entity was produced from a core selectable such as a :class:`.Table` or :class:`.CTE` object. fixes #3403 references #3320
* - Added a placeholder method :meth:`.TypeEngine.compare_against_backend`Mike Bayer2015-04-302-0/+35
| | | | | | which is now consumed by Alembic migrations as of 0.7.6. User-defined types can implement this method to assist in the comparison of a type against one reflected from the database.
* - Fixed regression within the flush process when an attribute wereMike Bayer2015-04-293-7/+53
| | | | | | | | | set to a SQL expression for an UPDATE, and the SQL expression when compared to the previous value of the attribute would produce a SQL comparison other than ``==`` or ``!=``, the exception "Boolean value of this clause is not defined" would raise. The fix ensures that the unit of work will not interpret the SQL expression in this way. fixes #3402
* - add boldface for "viable" plus a note describing that thisMike Bayer2015-04-291-1/+7
| | | | refers to the table having a primary key. fixes #3398
* - Fixed bug in association proxy where an any()/has()Mike Bayer2015-04-283-8/+47
| | | | | | | on an relationship->scalar non-object attribute comparison would fail, e.g. ``filter(Parent.some_collection_to_attribute.any(Child.attr == 'foo'))`` fixes #3397