support many table types and arbitrary columns