PQfreemem = pq.PQfreemem
PQfreemem.argtypes = [c_void_p]
PQfreemem.restype = None
+
+PQmakeEmptyPGresult = pq.PQmakeEmptyPGresult
+PQmakeEmptyPGresult.argtypes = [PGconn_ptr, c_int]
+PQmakeEmptyPGresult.restype = PGresult_ptr
raise PQerror(f"flushing failed: {error_message(self)}")
return rv
+ def make_empty_result(self, exec_status):
+ rv = impl.PQmakeEmptyPGresult(self.pgconn_ptr, exec_status)
+ if not rv:
+ raise MemoryError("couldn't allocate empty PGresult")
+ return PGresult(rv)
+
class PGresult:
__slots__ = ("pgresult_ptr",)
# 'prefer' may still connect without ssl
# but maybe unlikely in the tests environment?
assert pgconn.ssl_in_use
+
+
+def test_make_empty_result(pq, pgconn):
+ pgconn.exec_(b"wat")
+ res = pgconn.make_empty_result(pq.ExecStatus.PGRES_FATAL_ERROR)
+ assert res.status == pq.ExecStatus.PGRES_FATAL_ERROR
+ assert b"wat" in res.error_message