turns out we need cols_fields for insert/update, so you *must* define it after all