> This works fine: > > >>>rows = db(db.table.id>0).select() > >>>for row in rows: print row.myvirtualfield
that is because the row.myvirtualfield is computed AFTER the sql select > But this does not: > >>>rows = db(db.table.id>0).select(db.table.id, db.table.myvirtualfield) because there is no such a thing as a myvirtualfield as far as the database is concerned. The virtualfield is computed after the select. It cannot be something you want to select from the db.

