| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
When the class_ passed is not a mapped class but is actually an iterable, the string formatting operation fails with a TypeError, and the expected ArgumentError is not raised. Calling code which is using reflection and expects this error will fail (e.g. the sadisplay module).
Conflicts:
lib/sqlalchemy/orm/base.py
|
| |
|
|
|
|
|
| |
the query runs after the loading process has begun; this is so that
the subqueryload takes precedence over other loaders that may be
hitting the same attribute due to other eager/noload situations
at the wrong time. [ticket:2887]
|
| |
|
|
|
|
|
| |
select/alias on the base, where the PK columns were also not same
named; the persistence system would fail to copy primary key values
from the base table to the inherited table upon INSERT.
[ticket:2885]
|
| | |
|
| |
|
|
|
|
|
| |
not be superseded. both have a potential use.
Conflicts:
lib/sqlalchemy/orm/relationships.py
|
| |
|
|
| |
composites to many-to-ones now also
|
| |
|
|
|
|
|
|
|
| |
columns/attribute (names) passed don't resolve to a Column or mapped
attribute (such as an erroneous tuple); previously raised an unbound
local. [ticket:2889]
Conflicts:
test/orm/test_composites.py
|
| |
|
|
|
|
|
|
|
|
| |
doesn't resolve to a class or mapper has been corrected to work
the same way as when a non-string arg is received, which indicates
the name of the relationship which had the configurational error.
[ticket:2888]
Conflicts:
lib/sqlalchemy/orm/relationships.py
|
| |
|
|
|
| |
Conflicts:
lib/sqlalchemy/orm/mapper.py
|
| | |
|
| | |
|
| |
|
|
|
|
| |
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
|
| |\ |
|