I've attached a test script that illustrates a regression in the 0.8 branch compared to the 0.7 branch.
I know the example doesn't make a lot of sense in its current form as I've had to chop out tons of code to make it minimalistic. It appears that the problem deals with specifying a key on a table column under certain conditions. Removing the params statement in the query resolves the problem (I know that the params don't make sense in this query, they do in my production code). Also taking the key='id' off of product_offering_id and changing the query accordingly resolves the issue. So perhaps the params don't deal with column keys correctly? -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To view this discussion on the web visit https://groups.google.com/d/msg/sqlalchemy/-/i1t3xnxH2wkJ. 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.
from sqlalchemy import * from sqlalchemy.orm import * from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() session = Session() product_offering = Table('product_offering', Base.metadata, Column('product_offering_id', Integer, key='id', primary_key=True), Column('product_id', Integer, ForeignKey('product.id'), nullable=False) ) class Product(Base): __tablename__ = 'product' id = Column(Integer, primary_key=True) class ProductOffering(Base): __table__ = product_offering product = relationship(Product) product_ids = select([Product.__table__.c.id]) q1 = (session.query(ProductOffering.id) .filter(ProductOffering.product_id.in_(product_ids)) .params(zipcode='99999') ) print str(q1) ProductOffering.id.in_(q1)