title: Query model with function applied on specific columns
body: <p>I have a query issue. I have two Models/schemas with a relationship between Model1 to Model2 (one-to-many). I want to query Model1 with eager join of the relation. Further I want to apply a function to one of the columns in Model1. Following code <strong>works</strong> as intended, getting back the Model1 joined with Model2 columns.</p>
  <pre><code>   query_res = (
              db.query(
                  Model1,         
              )
              .options(joinedload(Model1.model2)) # Model1's attribute of Model2 type
              .filter(Model2.model1_id == Model1.id)
              .offset(skip).limit(limit).all()
          )
  </code></pre>
  <p>Then adding my function to one of the Model1 columns, my idea was to do following:</p>
  <pre><code>   query_res = (
              db.query(
                  Model1, 
                  func.ST_AsGeoJSON(Model1.geo).label(&quot;model1.geo&quot;) # &lt;-- [ADDED LINE]       
              )
              .options(joinedload(Model1.model2)) # Model1's attributes of Model2
              .filter(Model2.model1_id == Model1.id)
              .offset(skip).limit(limit).all()
          )
  </code></pre>
  <p>But this seems to overwrite the join. Both queries works separately. I have further tried adding a extra column <em>instead</em> to get around using the querying object:</p>
  <pre><code>.add_columns(func.ST_AsGeoJSON(Model1.geo).label(&quot;model1.geo&quot;))
  </code></pre>
  <p>This doesn't work either.</p>
  <p>Do anyone have a clever solution to do this in one query? I have tried to find a place where this use case is documented, be can't seem to find one (other than separately)</p>