ok, so as i get it, descriptors of PropertyLoaders cannot be used in clauses. any idea then how to map something like this then without going down to tables: (pseudocode)
Doc.ver == ver and ( Doc.dbid == Doc2Place.nazn and Doc2Place.rabmesto == ParamValueOwnership._rabotno_miasto or Doc.dbid == Doc2Position.nazn and ( Doc2Position.pozicia == ParamValueOwnership._pozicia or Doc2Position.pozicia == Position2Dept.pozicia and ( Position2Dept.otdel == ParamValueOwnership._otdel or Position2Dept.otdel == Dept2Dept.child and Dept2Dept.roditel == ParamValueOwnership._otdel ) ) ) and ParamValueOwnership.value == ParamValue.db_id where: Doc, Place, Position, Dept all have ParamValues (via m2m ParamValueOwnership) Doc has Place and Position (via m2m Doc2Place, Doc2Position) Postion has Dept (via m2m Pos2Dept) Dept has parent Dept (via m2m Dept2Dept) the last one is recursive, but i'll handle it somehow, adjacent sets or else. another weirdness of above, the ParamValueOwnership m2m has different links for diff. types of owners (mutualy exclusive), because otherwise i get multiple inheritance. can i handle multiple inheritance somehow? i.e. it looks like creating same object via different polymorhic hierarchies.. several polymorphic mappers over the different hierarchies? will that work? On Tuesday 10 June 2008 16:39:57 you wrote: > g'day. > i stepped on strange behavour (0.4 latest): > class AB is an assoc proxy, .myb pointing to B; > the clause > AB.myb == B.dbid > fails with NotImplementedError: > File "sqlalchemy/sql/expression.py", line 1191, in __eq__ > return self.operate(operators.eq, other) > File "sqlalchemy/sql/expression.py", line 1315, in operate > return o[0](self, op, other[0], *o[1:], **kwargs) > File "sqlalchemy/sql/expression.py", line 1277, in __compare > obj = self._check_literal(obj) > File "sqlalchemy/sql/expression.py", line 1421, in _check_literal > return other.expression_element() > File "sqlalchemy/orm/attributes.py", line 53, in > expression_element return self.comparator.expression_element() > File "sqlalchemy/orm/interfaces.py", line 432, in > expression_element return self.clause_element() > File "sqlalchemy/sql/expression.py", line 1170, in clause_element > raise NotImplementedError() > NotImplementedError > > these work (not the .property): > AB.myb.property == B.dbid > AB.myb == 3 > > AB.myb.property.direction is MANYTOONE > seems i'm missing something?? > any idea or prepare a test case? > svilen On Tuesday 10 June 2008 21:15:06 Michael Bayer wrote: > these are the valid comparisons: > > print AB.this == A() > print AB.this_id == A.name > > On Jun 10, 2008, at 8:32 AM, [EMAIL PROTECTED] wrote: > > funny... just a plain relation, i've removed all the assoc > > stuff... what i am missing??? > > > > here the case, attached. > > no matter what, i doesnot work; older sa versions give different > > error... > > > >>> these work (note the .property): > >>> AB.myb.property == B.dbid > >>> AB.myb == 3 > >>> > >>> AB.myb.property.direction is MANYTOONE > >>> seems i'm missing something?? > >>> any idea or prepare a test case? > >>> svilen > > > > <aa.py> > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---