Wrong SQL generated for LIMIT/OFFSET queries

Issue #112 resolved
Former user created an issue

Checked with current SVN version (rev. 1126) of SQLAlchemy

See below:

In [1](1): from sqlalchemy import *
In [2](2): engine = create_engine('oracle')
In [3](3): users = Table('users', engine, Column('name', String(10), key='username'))

In [4](4): str(select([users.c.username](users.c.username)).compile())
Out[4](4): 'SELECT users.name \nFROM users'

In [5](5): str(select([users.c.username](users.c.username), limit=5).compile())
Out[5](5): 'SELECT username \nFROM (SELECT users.name AS name, ROW_NUMBER() OVER (ORDER BY users.rowid ASC) AS ora_rn \nFROM users) \nWHERE ora_rn<=5'

The second query is incorrect - the column alias in subselect (AS name) does not match the outer select (SELECT username).

Comments (1)

  1. Log in to comment