Hello, Sqlalchemy Version : 0.9.4 Engine : firebird+fdb RDBMS : Firebird 2.5
I am trying to selected limited rows from a mapper class which contains column_property with limit. But number or rows returned is not what I expected. When I turned on debugging I realized that, SqlAlchemy is giving parameters in wrong order. Am I missing something or is there a bug in SqlAlchemy? Mapper Class : ~~~~~~~~~~~~ class Issue(Base, MkMixin): id = Column(BigInteger, Sequence('gn_issue'), primary_key=True) parent_id = Column(BigInteger, ForeignKey("issue.id", ondelete="CASCADE", onupdate="CASCADE", name="fk_issue_parent")) project_id = Column(BigInteger, ForeignKey("project.id", ondelete="CASCADE", onupdate="CASCADE", name="fk_issue_project"), nullable=False) project_code = column_property(select(['project.code'], from_obj='Project').where('Project.id=Issue.project_id')) usr_id_from = Column(BigInteger, ForeignKey("usr.id", ondelete="NO ACTION", onupdate="CASCADE", name="fk_issue_usr_from"), nullable=False) usr_code_from = column_property(select(['usr.code'], from_obj='Usr').where('Usr.id=Issue.usr_id_from')) usr_id_assigned = Column(BigInteger, ForeignKey("usr.id", ondelete="NO ACTION", onupdate="CASCADE", name="fk_issue_usr_assigned")) usr_code_assigned = column_property(select(['usr.code'], from_obj='Usr').where('Usr.id=Issue.usr_id_assigned')) category_id = Column(BigInteger, ForeignKey("dfissuecategory.id", ondelete="No ACTION", onupdate="CASCADE", name="fk_issue_dfissuecategory"), nullable=False) category = column_property(select(['DfIssueCategory.code'], from_obj='DfIssueCategory').where('DfIssueCategory.id=Issue.category_id')) status_id = Column(BigInteger, ForeignKey("dfissuestatus.id", ondelete="NO ACTION", onupdate="CASCADE", name="fk_issue_dfissuestatus"), nullable=False) status = column_property(select(['DfIssueStatus.code'], from_obj='DfIssueStatus').where('DfIssueStatus.id=Issue.status_id')) priority_id = Column(BigInteger, ForeignKey("dfissuepriority.id", ondelete="NO ACTION", onupdate="CASCADE", name="fk_issue_dfissuepriority"), nullable=False) priority = column_property(select(['DfIssuePriority.code'], from_obj='DfIssuePriority').where('DfIssuePriority.id=Issue.priority_id')) dt_open = Column(Date) dt_due = Column(Date) dt_plan = Column(Date) estimated_hours = Column(Numeric(9, 2)) last_update = column_property(select(['Issue_Changeset.zlins_dttm'], from_obj='Issue_Changeset').\ where('Issue_Changeset.issue_id=Issue.id').\ order_by(desc('Issue_Changeset.zlins_dttm')).limit(1)) title = Column(String(200)) description = Column(TEXT) is_private = Column(Boolean, nullable=False, default=False) done_ratio = Column(Integer, default=0) ~~~~~~~~~~ >From this class I am trying to select first 10 rows as : db.query(Issue).filter(Issue.usr_id_assigned == 1).order_by(desc(Issue.dt_open), desc(Issue.id)).limit(10) Generated Sql Is : 2014-04-30 22:23:53,961 INFO sqlalchemy.engine.base.Engine SELECT FIRST ?(SELECT project.code FROM Project WHERE Project.id=Issue.project_id) AS anon_1, (SELECT usr.code FROM Usr WHERE Usr.id=Issue.usr_id_from) AS anon_2, (SELECT usr.code FROM Usr WHERE Usr.id=Issue.usr_id_assigned) AS anon_3, (SELECT DfIssueCategory.code FROM DfIssueCategory WHERE DfIssueCategory.id=Issue.category_id) AS anon_4, (SELECT DfIssueStatus.code FROM DfIssueStatus WHERE DfIssueStatus.id=Issue.status_id) AS anon_5, (SELECT DfIssuePriority.code FROM DfIssuePriority WHERE DfIssuePriority.id=Issue.priority_id) AS anon_6, (SELECT FIRST ? Issue_Changeset.zlins_dttm FROM Issue_Changeset WHERE Issue_Changeset.issue_id=Issue.id ORDER BY Issue_Changeset.zlins_dttm DESC) AS anon_7, issue.id AS issue_id, issue.parent_id AS issue_parent_id, issue.project_id AS issue_project_id, issue.usr_id_from AS issue_usr_id_from, issue.usr_id_assigned AS issue_usr_id_assigned, issue.category_id AS issue_category_id, issue.status_id AS issue_status_id, issue.priority_id AS issue_priority_id, issue.dt_open AS issue_dt_open, issue.dt_due AS issue_dt_due, issue.dt_plan AS issue_dt_plan, issue.estimated_hours AS issue_estimated_hours, issue.title AS issue_title, issue.description AS issue_description, issue.is_private AS issue_is_private, issue.done_ratio AS issue_done_ratio, issue.zlins_dttm AS issue_zlins_dttm, issue.zlins_usr AS issue_zlins_usr, issue.zlupd_dttm AS issue_zlupd_dttm, issue.zlupd_usr AS issue_zlupd_usr FROM issue WHERE issue.usr_id_assigned = ? ORDER BY issue.dt_open DESC, issue.id DESC 2014-04-30 22:23:53,961 INFO sqlalchemy.engine.base.Engine (1, 10, 1) I think correct order should be : (10, 1, 1) Any help is greatly appreciated. Best regards. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.