title: SqlAlchemy ORM - restricting columns at query time (select) - column_property
body: <p>I know I can lazy load columns from a table:</p>
  
  <pre><code>session.query(MyTable).options(defer(colname) 
        for colname in ['col4', 'col5', ..,  'colN'])
  </code></pre>
  
  <p>I only want the first 3 columns, so can shorten that to the following:</p>
  
  <pre><code>session.query(MyTable).options(defer(col.name) 
        for col.name in MyTable.__table__.columns
        if col.name not in ['col1', 'col2', 'col3'])
  </code></pre>
  
  <p>Because <code>MyTable</code> has a few extra <code>column_property</code>s which aren't listed in <code>MyTable.__table__.columns</code>, these get included in the query even though I don't want them.</p>
  
  <p>So is there a construct to express what I want directly as a restriction?
  e.g. something like</p>
  
  <pre><code>session.query(MyTable).options(XXselect('col1', 'col2', 'col3'))
  </code></pre>