A query does not change the structure of the table. It just returns a subset.
Nico de Groot
db.define_table('item', Field('parentid','integer', label='Part of'), Field('itemtypeid', db.itemtypes, required=True, requires=IS_IN_DB(db,db.itemtypes,'%(name)s',orderby='id',error_message='Select a Type for this new item (use misc if not sure)'), label='Item Type'),