Hi there. Long time no post.
I just spent a couple hours debugging a query with a DISTINCT ON clause. The DISTINCT ON clause is a PostgreSQL-specific extension to the standard DISTINCT clause, which lets you specify the columns on which you want PostgreSQL to operate for filtering out duplicate rows.
>>> q = DBSession.query(model.Name).distinct(model.Name.value) \ .order_by(model.Name.value)
Now, if you’d want to see what kind of SQL query the ORM will generate you’d print it like so:
>>> print str(q) SELECT DISTINCT name.id AS name_id, name.value AS name_value FROM name ORDER BY name.value
But as you can see, there’s no DISTINCT ON here. Dang. Continue reading Printing actual SQLAlchemy queries