I modified your code and got the error with subquery(). I remember I used to have the same error with the join() method but couldn't reproduce it with this sample. The SQLAlchemy version is still 0.6.8.
I really appreciate your reply and help.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
FOREIGN KEY(id) REFERENCES base_products_accessories (id)
)
2012-05-03 18:42:04,017 INFO sqlalchemy.engine.base.Engine.0x...ae90 ()
2012-05-03 18:42:04,140 INFO sqlalchemy.engine.base.Engine.0x...ae90 COMMIT
/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.6.8-py2.7.egg/sqlalchemy/sql/expression.py:2104: SAWarning: Column 'id' on table <sqlalchemy.sql.expression.Select at 0x1bb1390; Select object> being replaced by another column with the same key. Consider use_labels for select() statements.
self[column.key] = column
2012-05-03 18:42:04,145 INFO sqlalchemy.engine.base.Engine.0x...ae90 BEGIN (implicit)
2012-05-03 18:42:04,146 INFO sqlalchemy.engine.base.Engine.0x...ae90 INSERT INTO resources () VALUES ()
2012-05-03 18:42:04,146 INFO sqlalchemy.engine.base.Engine.0x...ae90 ()
2012-05-03 18:42:04,147 INFO sqlalchemy.engine.base.Engine.0x...ae90 INSERT INTO resources () VALUES ()
2012-05-03 18:42:04,147 INFO sqlalchemy.engine.base.Engine.0x...ae90 ()
2012-05-03 18:42:04,147 INFO sqlalchemy.engine.base.Engine.0x...ae90 INSERT INTO resources () VALUES ()
2012-05-03 18:42:04,147 INFO sqlalchemy.engine.base.Engine.0x...ae90 ()
2012-05-03 18:42:04,148 INFO sqlalchemy.engine.base.Engine.0x...ae90 INSERT INTO base_products_accessories (polymorphic_identity, id) VALUES (%s, %s)
2012-05-03 18:42:04,148 INFO sqlalchemy.engine.base.Engine.0x...ae90 ('Product', 1L)
2012-05-03 18:42:04,148 INFO sqlalchemy.engine.base.Engine.0x...ae90 INSERT INTO base_products_accessories (polymorphic_identity, id) VALUES (%s, %s)
2012-05-03 18:42:04,148 INFO sqlalchemy.engine.base.Engine.0x...ae90 ('Accessory', 2L)
2012-05-03 18:42:04,149 INFO sqlalchemy.engine.base.Engine.0x...ae90 INSERT INTO base_products_accessories (polymorphic_identity, id) VALUES (%s, %s)
2012-05-03 18:42:04,149 INFO sqlalchemy.engine.base.Engine.0x...ae90 ('Accessory', 3L)
2012-05-03 18:42:04,149 INFO sqlalchemy.engine.base.Engine.0x...ae90 INSERT INTO accessories (id) VALUES (%s)
2012-05-03 18:42:04,149 INFO sqlalchemy.engine.base.Engine.0x...ae90 (2L,)
2012-05-03 18:42:04,150 INFO sqlalchemy.engine.base.Engine.0x...ae90 INSERT INTO accessories (id) VALUES (%s)
2012-05-03 18:42:04,150 INFO sqlalchemy.engine.base.Engine.0x...ae90 (3L,)
2012-05-03 18:42:04,150 INFO sqlalchemy.engine.base.Engine.0x...ae90 INSERT INTO products (id) VALUES (%s)
2012-05-03 18:42:04,150 INFO sqlalchemy.engine.base.Engine.0x...ae90 (1L,)
2012-05-03 18:42:04,151 INFO sqlalchemy.engine.base.Engine.0x...ae90 INSERT INTO posts (`basePrAcId`) VALUES (%s)
2012-05-03 18:42:04,151 INFO sqlalchemy.engine.base.Engine.0x...ae90 (1L,)
2012-05-03 18:42:04,152 INFO sqlalchemy.engine.base.Engine.0x...ae90 INSERT INTO posts (`basePrAcId`) VALUES (%s)
2012-05-03 18:42:04,152 INFO sqlalchemy.engine.base.Engine.0x...ae90 (2L,)
2012-05-03 18:42:04,152 INFO sqlalchemy.engine.base.Engine.0x...ae90 INSERT INTO posts (`basePrAcId`) VALUES (%s)
2012-05-03 18:42:04,152 INFO sqlalchemy.engine.base.Engine.0x...ae90 (3L,)
2012-05-03 18:42:04,154 INFO sqlalchemy.engine.base.Engine.0x...ae90 SELECT
posts.id AS posts_id, posts.`basePrAcId` AS `posts_basePrAcId`
2012-05-03 18:42:04,154 INFO sqlalchemy.engine.base.Engine.0x...ae90 ()
Traceback (most recent call last):
File "sample-20120503.py", line 56, in <module>
q = s.query(Post).join((sq,
sq.c.id == Post.basePrAcId)).all()
File "/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.6.8-py2.7.egg/sqlalchemy/orm/query.py", line 1611, in all
return list(self)
File "/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.6.8-py2.7.egg/sqlalchemy/orm/query.py", line 1721, in __iter__
return self._execute_and_instances(context)
File "/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.6.8-py2.7.egg/sqlalchemy/orm/query.py", line 1726, in _execute_and_instances
mapper=self._mapper_zero_or_none())
File "/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.6.8-py2.7.egg/sqlalchemy/orm/session.py", line 724, in execute
clause, params or {})
File "/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.6.8-py2.7.egg/sqlalchemy/engine/base.py", line 1191, in execute
params)
File "/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.6.8-py2.7.egg/sqlalchemy/engine/base.py", line 1271, in _execute_clauseelement
return self.__execute_context(context)
File "/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.6.8-py2.7.egg/sqlalchemy/engine/base.py", line 1302, in __execute_context
context.parameters[0], context=context)
File "/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.6.8-py2.7.egg/sqlalchemy/engine/base.py", line 1401, in _cursor_execute
context)
File "/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.6.8-py2.7.egg/sqlalchemy/engine/base.py", line 1394, in _cursor_execute
context)
File "/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.6.8-py2.7.egg/sqlalchemy/engine/default.py", line 299, in do_execute
cursor.execute(statement, parameters)
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
------------------------------------------------------------------------------------------------------------------------------