summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm
Commit message (Collapse)AuthorAgeFilesLines
* Fixed bug where sending a composite attribute into :meth:`.Query.order_by`Mike Bayer2013-06-101-1/+1
| | | | | would produce a parenthesized expression not accepted by some databases. [ticket:2754]
* Fixed the interaction between composite attributes andMike Bayer2013-06-102-15/+24
| | | | | | 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]
* - tests for the alias() APIMike Bayer2013-06-081-0/+26
| | | | - docs docs docs
* - Fixed an obscure bug where the wrong results would beMike Bayer2013-06-071-2/+7
| | | | | | | | | | | fetched when joining/joinedloading across a many-to-many relationship to a single-table-inheriting subclass with a specific discriminator value, due to "secondary" rows that would come back. The "secondary" and right-side tables are now inner joined inside of parenthesis for all ORM joins on many-to-many relationships so that the left->right join can accurately filtered. [ticket:2369]
* remove all remaining start/end py2k/py3k blocksMike Bayer2013-06-072-14/+10
|
* dial back the default "flatness" a bit, it will be there for joinedload and ↵Mike Bayer2013-06-064-13/+23
| | | | | | | query.join(), but if you're dealing with aliased() or with_polymorphic() you need to say "flat=True". Just the one flag though, "flat" implies "aliased".
* shrugsMike Bayer2013-06-051-1/+6
|
* a test for what's breaking, plus a non-working fix for it...Mike Bayer2013-06-051-0/+3
|
* - improve overlapping selectables, apply to both query and relationshipMike Bayer2013-06-042-23/+17
| | | | | | - clean up inspect() calls within query._join() - make sure join.alias(flat) propagates - fix almost all assertion tests
* - eager loadsMike Bayer2013-06-042-3/+2
| | | | - two suite of SQL assertions converted
* here's the flat join thing. it just works. Changing the existing compiled ↵Mike Bayer2013-06-042-3/+5
| | | | | | SQL assertions might even be most of the tests we need (though dedicated sql tests would be needed anyway)
* rewriting scheme now works.Mike Bayer2013-06-041-6/+3
|
* OK this is the broken version, need to think a lot more about thisMike Bayer2013-06-031-2/+2
|
* - pulling out more aliases, sort ofMike Bayer2013-06-031-4/+9
|
* working through tests....Mike Bayer2013-06-021-5/+21
|
* - figured out what the from_self() thing was about, part of query.statement, ↵Mike Bayer2013-06-021-0/+2
| | | | | | but would like to improve upon query.statement needing to do this
* getting things to join without subqueries, but some glitches in the compiler ↵Mike Bayer2013-06-021-8/+8
| | | | | | step when we do query.count() are showing
* - blow away context._attributesMike Bayer2013-06-024-40/+44
| | | | | - to account for query._attributes/context.attributes, just pass the attributes dict directly to the PathRegistry methods
* Fixed a regression caused by [ticket:2682] whereby theMike Bayer2013-05-311-0/+6
| | | | | | | 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]
* The "auto-aliasing" behavior of the :class:`.Query.select_from`Mike Bayer2013-05-302-12/+131
| | | | | | method has been turned off. The specific behavior is now availble via a new method :class:`.Query.select_entity_from`. [ticket:2736]
* Merge branch 'rel_0_9'Mike Bayer2013-05-2917-161/+154
|\ | | | | | | | | | | | | Conflicts: lib/sqlalchemy/dialects/postgresql/hstore.py lib/sqlalchemy/util/__init__.py lib/sqlalchemy/util/compat.py
| * clean up some of this collection stuffMike Bayer2013-05-261-2/+1
| |
| * a pass where we try to squash down as many list()/keys() combinationsMike Bayer2013-05-267-16/+16
| | | | | | | | as possible
| * do a sweep of some obvious 3kismsMike Bayer2013-05-261-25/+21
| |
| * repair py3kisms in key ORM modulesMike Bayer2013-05-263-22/+22
| |
| * merge defaultMike Bayer2013-05-131-1/+8
| |\
| * \ merge defaultMike Bayer2013-05-101-20/+53
| |\ \
| * | | most of ORM passing...Mike Bayer2013-05-045-40/+32
| | | |
| * | | merge defaultMike Bayer2013-04-301-3/+4
| |\ \ \
| * | | | import of "sqlalchemy" and "sqlalchemy.orm" works.Mike Bayer2013-04-273-7/+5
| | | | |
| * | | | - the raw 2to3 runMike Bayer2013-04-2718-172/+180
| | | | | | | | | | | | | | | | | | | | - went through examples/ and cleaned out excess list() calls
* | | | | - move an import stuck in the middle here...Mike Bayer2013-05-281-1/+1
| |_|_|/ |/| | |
* | | | Fixed a regression from 0.7 caused by this ticket, whichMike Bayer2013-05-131-1/+8
| |_|/ |/| | | | | | | | | | | | | | | | | | | | 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]
* | | - moderinzed the docs for the foreign_keys parameter a bit,Mike Bayer2013-05-101-20/+53
| |/ |/| | | | | [ticket:2725]
* | - Fixed a regression from 0.7 where the contextmanager featureMike Bayer2013-04-301-3/+4
|/ | | | | | | 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]
* Fixes to the ``sqlalchemy.ext.serializer`` extension, includingMike Bayer2013-04-261-2/+13
| | | | | | | 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.
* - further cleanup. in particular, the left clause is never None. But we stillMike Bayer2013-04-251-24/+12
| | | | can have errors when we do the auto-join, these are both covered in test_joins
* we can always adapt to right also. suppose if rightMike Bayer2013-04-251-5/+1
| | | | were an alias of a table, should add tests for that.
* cleanupMike Bayer2013-04-252-58/+15
|
* everything passes with this!!!!!!! holy crap !!!!! and its the simplest of allMike Bayer2013-04-251-57/+69
|
* - attempt to replace the whole idea of "join_to_left" with a moreMike Bayer2013-04-242-36/+24
| | | | | fundamental and general purpose heuristic. this initial approach has about 60 tests failing but seems to have gone pretty far
* - merge exists() patch + changelogMike Bayer2013-04-231-0/+20
|\
| * adding convenience method exists() to Query (see # 2673)Diana Clarke2013-03-291-0/+20
| |
* | Added a conditional to the unpickling process for ORMMike Bayer2013-04-231-1/+2
| | | | | | | | | | | | | | 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.
* | Fixed bug where many-to-many relationship with uselist=FalseMike Bayer2013-04-211-3/+7
| | | | | | | | | | | | 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]
* | - dont do a boolean check on the mapped objectMike Bayer2013-04-201-1/+1
| |
* | Improved the behavior of instance management regardingMike Bayer2013-04-204-17/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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]
* | python2.5 fixMike Bayer2013-04-181-1/+2
| |
* | Reworked internal exception raises that emitMike Bayer2013-04-181-6/+6
| | | | | | | | | | | | | | | | | | 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]
* | - additional test + correction for [ticket:2699]Mike Bayer2013-04-181-4/+5
| |