The char* returned by PQresultErrorField is freed by PQclear (see http://www.postgresql.org/docs/9.3/static/libpq-exec.html), so this is a use-after-free. This causes a segfault on OpenBSD-current as free overwrites the memory with junk, both for security reasons and to detect programming errors like this.
In this case we just return an empty reader, since that seems to be the most sensible. Not all drivers support this distinction anyway, so raising an exception here is hard. Also since the query does succeed, the exception could be confusing as in that it actually executes while that was not expected. Related to #56