Thanks for the quick response Michael. Unfortunately, I had my email
settings wrong and just now read your response.

You stated you attached an example but I do not see one. Can you point
me to it?


On Aug 16, 4:42 pm, Michael Bayer <mike...@zzzcomputing.com> 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 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.

-- 
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.

Reply via email to