Properly cache column info, and add caching for defining SQL.  Also just through a couple of exceptions (this will be picked up better by the upcoming error handling work).