Right now, you can pass seemingly arbitrary types to :result-types, with only :string and t actually having any effect. We should probably actually check the passed types for validity.
For example, in clsql-odbc, it doesn't make sense to ask for an int as an :unsigned-byte-vector, but we will happily move forward and just return it as an int in this case.