Hi,

playing with inheritance, I figured out that an inherited mapped class 
passed to filter doesn't point to the correct table.

I have 2 classes, Catalog and CatalogChannel(Catalog).

Here is the syntax followed by the generated query:

   query.filter(Catalog.c.id==CatalogChannel.c.id)
   WHERE catalogs.id = catalogs.id

The generated query should be "WHERE catalogs.id = catalog_channels.id". 
I can make this happend by explicitly using the table itself rather than 
the class:

   query.filter(Catalog.c.id==catalog_channel_table.c.id)
   WHERE catalogs.id = catalog_channels.id

Should I open a ticket for that ?

Normaly, I would join(["A", "B"]) the tables between each other. But if 
a "channel" relation only exists on the CatalogChannel class, 
join("channel") wouldn't work as SA looks at superclass Catalog. I 
thought it would naturally find the relationship by looking at the 
polymorphic "type" column from Catalog, but it doesn't. Mike suggested 
we would need to extend the API with a new method like 
join_to_subclass() or so... Even though, I still think SA should figure 
out which relation I'm looking at...

Regards,
-- 
Alexandre CONRAD


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

Reply via email to