SQLAlchemy Query.distinct ведет себя непоследовательно:
>>> [tag.name for tag in session.query(Tag).all()]
[u'Male', u'Male', u'Ninja', u'Pirate']
>>> session.query(Tag).distinct(Tag.name).count()
4
>>> session.query(Tag.name).distinct().count()
3
Таким образом, вторая форма дает правильный результат, но первая форма - нет. Это похоже на SQLite, но не с Postgres. У меня есть функция, которая передала объект запроса, чтобы применить к ней предложение distinct
, поэтому было бы очень сложно переписать все, чтобы использовать второй подход выше. Есть ли что-то очевидное, что мне не хватает?