読者です 読者をやめる 読者になる 読者になる

あまり問題にならないだろうけど

SQLAlchemy

モデルオブジェクトのプロパティに対してdescメソッドをよび、その結果をdesc関数に適用すると、不正なSQLを生成する。

>>> from sqlalchemy import desc
>>> from myapp.models import Model
>>> str(Model.id.desc())
'"model".id DESC'
>>> str(desc(Model.id.desc()))
'"model".id DESC DESC'
obj = Session.query(Model).order_by(desc(Model.id)).first()

のようなコードを、間違って

obj = Session.query(Model).order_by(desc(Model.id.desc())).first()

のように書き直してしまって気がついた。

あまりないミスだと思うけど、zzzeekらしからぬバグ?*1だと思った。

*1:バグというより、「そんなこと誰もやらねーよ」ってことまで気を配ってコードを書く「隙のなさ」という意味で、「隙がある」という言葉の方がしっくりくるけど