| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| |
|
|
|
|
| |
query being generated would produce a "columns being replaced"
warning for a statement with two same-named columns,
as the internal SELECT wouldn't have use_labels set.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This enables the subquery eager loader strategy to apply a DISTINCT
to the innermost SELECT subquery, to assist in the case where
duplicate rows are generated by the innermost query which corresponds
to this relationship (there's not yet a general solution to the issue
of dupe rows within subquery eager loading, however, when joins outside
of the innermost subquery produce dupes). When the flag
is set to ``True``, the DISTINCT is rendered unconditionally, and when
it is set to ``None``, DISTINCT is rendered if the innermost relationship
targets columns that do not comprise a full primary key.
The option defaults to False in 0.8 (e.g. off by default in all cases),
None in 0.9 (e.g. automatic by default). Thanks to Alexander Koval
for help with this. [ticket:2836]
Conflicts:
lib/sqlalchemy/orm/relationships.py
|
| |
|
|
|
|
|
| |
filters applied.
Conflicts:
doc/build/changelog/changelog_09.rst
|
| |
|
|
|
|
| |
- add the RETURNING glossary entry
- other "seealso's" fixed
- add doc for eager_defaults option
|
| |
|
|
| |
Fixed two typos.
|
| |
|
|
|
| |
- use a simple isinstance() check instead of looking for presence of
"primary_entity" flag, that's a little unclear
|
| |
|
|
|
| |
Conflicts:
doc/build/index.rst
|
| |
|
|
|
|
|
|
|
|
|
| |
setslice of ``[0:0]`` correctly, which in particular could occur
when using ``insert(0, item)`` with the association proxy. Due
to some quirk in Python collections, the issue was much more likely
with Python 3 rather than 2. Also in 0.8.3, 0.7.11.
[ticket:2807]
Conflicts:
doc/build/changelog/changelog_09.rst
|
| |
|
|
| |
sorting in #2779
|
| |
|
|
|
|
|
|
| |
of mappers used in polymorphic inheritance loads is sorted on class name,
which allows the SELECT statements generated for polymorphic queries
to have deterministic rendering, which in turn helps with caching
schemes that cache on the SQL string itself.
[ticket:2779]
|
| |
|
|
|
|
|
|
|
|
|
| |
by the ORM to iterate mapper hierarchies; under the Jython interpreter
this implementation wasn't ordered, even though cPython and Pypy
maintained ordering. Also in 0.8.3.
[ticket:2794]
Conflicts:
doc/build/changelog/changelog_09.rst
lib/sqlalchemy/util/_collections.py
|
| | |
|
| |
|
|
|
|
| |
table
update, [ticket:2798]
|
| |
|
|
|
|
|
| |
[ticket:2777]
Conflicts:
lib/sqlalchemy/orm/events.py
|
| |
|
|
|
|
| |
"propagate" flags could potentially be mis-configured in some
"unmapped base class" configurations. Also in 0.8.3.
[ticket:2786]
|
| |
|
|
| |
wording about supported dialects for Query.yield_per
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
when loading mapped entities. The function overhead of applying
a per-object deferred callable to an instance at load time was
significantly higher than that of just loading the data from the row
(note that ``defer()`` is meant to reduce DB/network overhead, not
necessarily function call count); the function call overhead is now
less than that of loading data from the column in all cases. There
is also a reduction in the number of "lazy callable" objects created
per load from N (total deferred values in the result) to 1 (total
number of deferred cols).
[ticket:2778]
|
| | |
|
| |
|
|
|
|
|
| |
when an object we moved from "persistent" to "pending"
using the :func:`.make_transient` function, for operations
involving collection-based backrefs.
[ticket:2773]
|
| |
|
|
| |
value is present
|
| |
|
|
|
| |
mapped class where the polymorphic discriminator has been assigned
to a value that is invalid for the class. [ticket:2750]
|
| |
|
|
|
|
|
|
|
|
| |
entities against the same base class joined to each other as well
would not track columns on the base table independently of each other if
the string of joins were more than two entities long. Also in 0.8.2.
[ticket:2759]
Conflicts:
doc/build/changelog/changelog_09.rst
|
| |
|
|
|
|
|
|
| |
would produce a parenthesized expression not accepted by some databases.
[ticket:2754]
Conflicts:
doc/build/changelog/changelog_09.rst
|
| |
|
|
|
|
|
|
|
| |
the :func:`.aliased` function. Previously, composite attributes
wouldn't work correctly in comparison operations when aliasing
was applied. Also in 0.8.2. [ticket:2755]
Conflicts:
doc/build/changelog/changelog_09.rst
|
| |
|
|
|
|
|
|
|
|
| |
evaluation invoked by :meth:`.Query.update` and :meth:`.Query.delete`
would hit upon unsupported ``True`` and ``False`` symbols
which now appear due to the usage of ``IS``.
[ticket:2737]
Conflicts:
doc/build/changelog/changelog_08.rst
|
| | |
|
| |
|
|
|
|
|
|
|
| |
will in 0.9 replace part of the functionality of
:meth:`.Query.select_from`. In 0.8, the two methods perform
the same function, so that code can be migrated to use the
:meth:`.Query.select_entity_from` method as appropriate.
See the 0.9 migration guide for details.
[ticket:2736]
|
| | |
|
| |
|
|
|
|
|
|
| |
made the check for recursion overflow in self-referential
eager joining too loose, missing a particular circumstance
where a subclass had lazy="joined" or "subquery" configured
and the load was a "with_polymorphic" against the base.
[ticket:2481]
|
| |
|
|
| |
[ticket:2725]
|
| |
|
|
|
|
|
| |
of :meth:`.Session.begin_nested` would fail to correctly
roll back the transaction when a flush error occurred, instead
raising its own exception while leaving the session still
pending a rollback. [ticket:2718]
|
| |
|
|
|
|
|
| |
that the "id" passed from the pickler is turned into a string
to prevent against bytes being parsed on Py3K, as well as that
``relationship()`` and ``orm.join()`` constructs are now properly
serialized. [ticket:2698] and some other observed issues.
|
| |
|
|
| |
can have errors when we do the auto-join, these are both covered in test_joins
|
| |
|
|
| |
were an alias of a table, should add tests for that.
|
| | |
|
| | |
|
| |
|
|
|
| |
fundamental and general purpose heuristic. this initial approach
has about 60 tests failing but seems to have gone pretty far
|
| |\ |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| | |
mapped objects, such that if the reference to the object
were lost when the object was pickled, we don't
erroneously try to set up _sa_instance_state - fixes
a NoneType error.
|
| | |
| |
| |
| |
| |
| | |
would fail to delete the association row and raise an error
if the scalar attribute were set to None. Also in 0.7.11.
[ticket:2710]
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
the creation of strong references within the Session;
an object will no longer have an internal reference cycle
created if it's in the transient state or moves into the
detached state - the strong ref is created only when the
object is attached to a Session and is removed when the
object is detached. This makes it somewhat safer for an
object to have a `__del__()` method, even though this is
not recommended, as relationships with backrefs produce
cycles too. A warning has been added when a class with
a `__del__()` method is mapped.
[ticket:2708]
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
a rollback() before re-raising, so that the stack
trace is preserved from sys.exc_info() before entering
the rollback. This so that the traceback is preserved
when using coroutine frameworks which may have switched
contexts before the rollback function returns.
[ticket:2703]
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
query when refreshing an inheritance-mapped class
where the superclass was mapped to a non-Table
object, like a custom join() or a select(),
running a query that assumed a hierarchy that's
mapped to individual Table-per-class.
[ticket:2697]
|