Having access to our driver.Result interface would allow an API where lib/pq would abstract all the nasty stuff (casting of Result, etc.). But the `database/sql` API is clear that it returns `sql.Result` and not `driver.Result`, so there is the danger that it will change in future Go releases.

> Given the restrictions here, could we try to bullet-proof that by doing something like
>
>    db.Prepare(pq.CopyIn("table_name", "col1", "col2"))

I like that. How should we handle quoting of table and column names? We could quote everything when building the COPY statement, but how do we handle Postgres schemas then? Schema names and table names need to be quoted separately (```"schema"."table"```). 

Just quote everything and permit hack like:

        db.Prepare(pq.CopyIn("schema\".\"table_name", "col1", "col2"))

Or only quote if a string is not quoted already?

        db.Prepare(pq.CopyIn("\"schema\".\"table_name\"", "col1", "col2"))