| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | |
|
| | | |
|
|\ \ \ |
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | | |
If there is a closed attribute on the connection and
it is true, return true. Implements a todo in the code
and helps in one specific disconnect case where it previously
did not match because the error message was "unknown error".
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
of work such that loading for related many-to-one objects is slightly
more aggressive, in the case of a graph of self-referential objects
that are to be deleted; the load of related objects is to help
determine the correct order for deletion if passive_deletes is
not set.
- revert the changes to test_delete_unloaded_m2o, these deletes do in fact
need to occur in the order of the two child objects first.
|
| | |
| | |
| | |
| | |
| | |
| | | |
that might take one of multiple directions; apply this to test_delete_unloaded_m2o
which is now illustrating multiple paths due to #3060/#3061, though still doing the
right thing.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
implicitly initialized to None via first access; this action,
which has always resulted in a population of the attribute,
now emits an attribute event just like any other attribute set
operation and generates the same kind of history as one. Additionally,
many mapper internal operations will no longer implicitly generate
these "None" values when various never-set attributes are checked.
These are subtle behavioral fixes to attribute mechanics which provide
a better solution to the problem of :ticket:`3060`, which also
involves recognition of attributes explicitly set to ``None``
vs. attributes that were never set.
fixes #3061
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
scenario, where an INSERT/DELETE can be turned into an UPDATE.
In this situation, a many-to-one relationship set to None, or
in some cases a scalar attribute set to None, may not be detected
as a net change in value, and therefore the UPDATE would not reset
what was on the previous row. This is due to some as-yet
unresovled side effects of the way attribute history works in terms
of implicitly assuming None isn't really a "change" for a previously
un-set attribute. See also :ticket:`3061`. fixes #3060
|
| | |
| | |
| | |
| | |
| | | |
UNION would wrap the union in an anonymous (e.g. unlabled) subquery.
fixes #3044
|
| | |
| | |
| | |
| | |
| | |
| | | |
is needed to allow the ORM to skip over trying to "hash" an ORM-mapped
HSTORE column when requesting it in a mixed column/entity list.
Patch courtesy Gunnlaugur Þór Briem. Fixes #3053
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
eager loads across a polymorphic-subclass boundary in conjunction
with polymorphic loading would fail to locate the subclass-link in the
chain, erroring out with a missing property name on an
:class:`.AliasedClass`. fixes #3055
|
| | |
| | |
| | |
| | |
| | |
| | | |
due to repeats would not correctly be rewritten in subqueries.
This would affect SELECT queries with any kind of subquery + join.
fixes #3057
|
| | | |
|
| | |
| | |
| | |
| | | |
- fix a bad comparison in MySQL w/ limit/offset thing
|
| | |
| | |
| | |
| | |
| | |
| | | |
add to lazy loading.
not really clear which approach is better in the long run.
|
| | |
| | |
| | |
| | | |
- restore __len__ to identity map
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
:meth:`.Operators.__or__` and :meth:`.Operators.__invert__`
operator overload methods could not be overridden within a custom
:class:`.TypeEngine.Comparator` implementation.
fixes #3012
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
filter operators section
- add language to MATCH explicitly stating this operator varies by backend and is not available
on SQLite, as the tutorial defaults to SQLite to start with, fix #3059
- on the actual match() documentation fix this up to be more accurate, list some example renderings
for different backends. again mention SQLite not supported
|
| | |
| | |
| | |
| | | |
- add new FAQ for rendering SQL as a string
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | | |
- implement for SQL server, use window functions when simple limit/offset not available
|
| |\ \ \
| | |_|/
| |/| |
| | | | |
https://bitbucket.org/dobesv/sqlalchemy/branch/issue_3034 into ticket_3034
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
inefficient select._offset and select._limit operations.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
a BindParameter, instead of _offset and _limit in GenerativeSelect.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
on a query.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
legacy
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
This reverts commit 72a09d9e5c54e3ee8b3561da144d8379ce1df747.
|
| | | | |
|
|/ / / |
|
| | |
| | |
| | |
| | |
| | | |
- refactor tests a bit
fixes #2785
|
|\ \ \
| | | |
| | | |
| | | | |
https://bitbucket.org/LevonXXL/sqlalchemy/overview into t
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
report change events for the ``setdefault()`` dictionary operation.
fixes #3051
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | | |
Added optional '=' to MySQL KEY_BLOCK_SIZE regex
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Documentation fix-up: "its" vs. "it's"
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Removed ungrammatical apostrophes from documentation, replacing
"it's" with "its" where appropriate (but in a few cases with "it is"
when that read better).
While doing that, I also fixed a couple of minor typos etc.
as I noticed them.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
AttributeErrors or KeyErrors that should raise during mapper
configuration due to user errors. The catch for attribute/keyerror
has been made more specific to not include the configuration step.
fixes #3047
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
a connection invalidation could occur within an already critical section
like a connection.close(); ultimately, these conditions are caused
by the change in :ticket:`2907`, in that the "reset on return" feature
calls out to the Connection/Transaction in order to handle it, where
"disconnect detection" might be caught. However, it's possible that
the more recent change in :ticket:`2985` made it more likely for this
to be seen as the "connection invalidate" operation is much quicker,
as the issue is more reproducible on 0.9.4 than 0.9.3.
Checks are now added within any section that
an invalidate might occur to halt further disallowed operations
on the invalidated connection. This includes two fixes both at the
engine level and at the pool level. While the issue was observed
with highly concurrent gevent cases, it could in theory occur in
any kind of scenario where a disconnect occurs within the connection
close operation.
fixes #3043
ref #2985
ref #2907
- add some defensive checks during an invalidate situation:
1. _ConnectionRecord.invalidate might be called twice within finalize_fairy
if the _reset() raises an invalidate condition, invalidates, raises and then
goes to invalidate the CR. so check for this.
2. similarly within Conneciton, anytime we do handle_dbapi_error(), we might become invalidated.
so a following finally must check self.__invalid before dealing with the connection
any futher.
|