Re: [Sqlalchemy-tickets] [sqlalchemy] #1401: support self-referential auto-joins when the foreign k
Brought to you by:
zzzeek
From: sqlalchemy <mi...@zz...> - 2012-02-01 16:21:28
|
#1401: support self-referential auto-joins when the foreign key joins to itself ---------------------------+--------------------------------------- Reporter: guest | Owner: zzzeek Type: defect | Status: new Priority: high | Milestone: 0.x.xx Component: orm | Severity: very major - up to 2 days Resolution: | Keywords: Progress State: in queue | ---------------------------+--------------------------------------- Comment (by zzzeek): just to experiment with annotations in the primaryjoin: {{{ #!diff diff -r 42694965987f lib/sqlalchemy/orm/properties.py --- a/lib/sqlalchemy/orm/properties.py Wed Feb 01 10:14:28 2012 -0500 +++ b/lib/sqlalchemy/orm/properties.py Wed Feb 01 11:19:26 2012 -0500 @@ -1052,6 +1052,9 @@ "'secondaryjoin' is needed as well." % self) + from sqlalchemy.sql import util as sql_util + self.primaryjoin = sql_util._deep_annotate(self.primaryjoin, {'_nothing':True}, set()) + def _columns_are_mapped(self, *cols): """Return True if all columns in the given collection are mapped by the tables referenced by this :class:`.Relationship`. }}} what fails here, at least one thing, is _create_lazy_clause() calculates improperly when it checks the "binds" collection. We might want to make some small tests of annotated columns to see if they behave correctly in hash lookups (we seem to have this in test_selectable, though still seeing odd behavior here). -- Ticket URL: <http://www.sqlalchemy.org/trac/ticket/1401#comment:11> sqlalchemy <http://www.sqlalchemy.org/> The Database Toolkit for Python |