テーブルから列を遅延ロードできることはわかっています。
session.query(MyTable).options(defer(colname)
for colname in ['col4', 'col5', .., 'colN'])
最初の 3 列のみが必要なため、次のように短縮できます。
session.query(MyTable).options(defer(col.name)
for col.name in MyTable.__table__.columns
if col.name not in ['col1', 'col2', 'col3'])
にはリストされていないMyTable
余分な がいくつかあるため、これらは不要ですがクエリに含まれます。column_property
MyTable.__table__.columns
それで、私が望むものを制限として直接表現する構造はありますか? たとえば、次のようなもの
session.query(MyTable).options(XXselect('col1', 'col2', 'col3'))