That's exactly what I needed. Thanks again. On Aug 23, 7:28 am, Michael Bayer <mike...@zzzcomputing.com> wrote: > here's a pastebin of it: > > http://pastebin.com/z8XWsv2e > > On Aug 16, 2011, at 7:42 PM, Michael Bayer wrote: > > > > > > > > > > > On Aug 16, 2011, at 5:37 PM, Mike Gilligan wrote: > > >> I have a single table that looks similar to the following: > > >> class Equipment(Base): > >> type = Column(CHAR(1), primary_key=True) > >> sub_type = Column(CHAR(1), primary_key=True) > >> code = Column(CHAR(5), primary_key=True) > > >> For historical purposes, I cannot modify this table. I would like to setup > >> multi-level inheritance similar to this, however it does not work: > > >> class Equipment(Base): > >> type = Column(CHAR(1), primary_key=True) > >> sub_type = Column(CHAR(1), primary_key=True) > >> code = Column(CHAR(5), primary_key=True) > >> __mapper_args__ = {'polymorphic_on': type} > > >> class Vehicle(Equipment): > >> __mapper_args__ = {'polymorphic_identity': 'V', 'polymorphic_on': > >> sub_type} > > >> class Bus(Vehicle) > >> __mapper_args__ = {'polymorphic_identity': 'B'} > > >> class Rail(Vehicle) > >> __mapper_args__ = {'polymorphic_identity': 'R'} > > >> I can concatenate the multiple column values into a single discriminator > >> column_property but then I do not have an easy way to retrieve all > >> vehicles. Any ideas? > > > The inheritance querying does handle multi-level inheritance so if your > > discriminator was on a concatenation of both things would work just fine, > > i.e. if you queried for Vehicle, etc. Each object's > > "polymorphic_identity" would need to include the concatenated value, of > > course. > > > Unfortunately we're just beginning to support inheritance discriminators on > > a column_property(), and you need to use a very specific approach to make > > this work right now. There's some tickets in trac to allow this > > functionality out of the box. Attached is an example script which > > exercises the above mapping - it uses declarative to minimize the impact of > > the workaround. > > > -- > > 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 > > sqlalchemy+unsubscr...@googlegroups.com. > > For more options, visit this group > > athttp://groups.google.com/group/sqlalchemy?hl=en. > > >> -- > >> You received this message because you are subscribed to the Google Groups > >> "sqlalchemy" group. > >> To view this discussion on the web > >> visithttps://groups.google.com/d/msg/sqlalchemy/-/qNSg1VvOrWwJ. > >> To post to this group, send email to sqlalchemy@googlegroups.com. > >> To unsubscribe from this group, send email to > >> sqlalchemy+unsubscr...@googlegroups.com. > >> For more options, visit this group > >> athttp://groups.google.com/group/sqlalchemy?hl=en. > > > <multi_discrim.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 sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.