The same way 'pgconn' is a public property of the Connection.
from .adapt import Transformer
self._results: List[PGresult] = []
- self._result: Optional[PGresult] = None
+ self.pgresult: Optional[PGresult] = None
self._pos = 0
self._iresult = 0
self._transformer = Transformer(self)
}
if not badstats:
self._results = results
- self._result = results[0]
+ self.pgresult = results[0]
return
if results[-1].status == ExecStatus.FATAL_ERROR:
def nextset(self) -> Optional[bool]:
self._iresult += 1
if self._iresult < len(self._results):
- self._result = self._results[self._iresult]
+ self.pgresult = self._results[self._iresult]
self._pos = 0
return True
else:
return rv
def _cast_row(self, n: int) -> Optional[Tuple[Any, ...]]:
- if self._result is None:
+ if self.pgresult is None:
return None
- if n >= self._result.ntuples:
+ if n >= self.pgresult.ntuples:
return None
- return tuple(self._transformer.cast_row(self._result, n))
+ return tuple(self._transformer.cast_row(self.pgresult, n))
class Cursor(BaseCursor):
rv = loop.run_until_complete(cur.execute("select 'foo'; select 'bar'"))
assert rv is cur
assert len(cur._results) == 2
- assert cur._result.get_value(0, 0) == b"foo"
+ assert cur.pgresult.get_value(0, 0) == b"foo"
assert cur.nextset()
- assert cur._result.get_value(0, 0) == b"bar"
+ assert cur.pgresult.get_value(0, 0) == b"bar"
assert cur.nextset() is None
)
assert rv is cur
assert len(cur._results) == 1
- assert cur._result.get_value(0, 0) == b"1"
- assert cur._result.get_value(0, 1) == b"foo"
- assert cur._result.get_value(0, 2) is None
+ assert cur.pgresult.get_value(0, 0) == b"1"
+ assert cur.pgresult.get_value(0, 1) == b"foo"
+ assert cur.pgresult.get_value(0, 2) is None
assert cur.nextset() is None
rv = cur.execute("select 'foo'; select 'bar'")
assert rv is cur
assert len(cur._results) == 2
- assert cur._result.get_value(0, 0) == b"foo"
+ assert cur.pgresult.get_value(0, 0) == b"foo"
assert cur.nextset()
- assert cur._result.get_value(0, 0) == b"bar"
+ assert cur.pgresult.get_value(0, 0) == b"bar"
assert cur.nextset() is None
rv = cur.execute("select %s, %s, %s", [1, "foo", None])
assert rv is cur
assert len(cur._results) == 1
- assert cur._result.get_value(0, 0) == b"1"
- assert cur._result.get_value(0, 1) == b"foo"
- assert cur._result.get_value(0, 2) is None
+ assert cur.pgresult.get_value(0, 0) == b"1"
+ assert cur.pgresult.get_value(0, 1) == b"foo"
+ assert cur.pgresult.get_value(0, 2) is None
assert cur.nextset() is None
def test_fetchone(conn):
cur = conn.cursor()
cur.execute("select %s, %s, %s", [1, "foo", None])
- assert cur._result.fformat(0) == 0
+ assert cur.pgresult.fformat(0) == 0
row = cur.fetchone()
assert row[0] == 1
def test_execute_binary_result(conn):
cur = conn.cursor(binary=True)
cur.execute("select %s, %s", ["foo", None])
- assert cur._result.fformat(0) == 1
+ assert cur.pgresult.fformat(0) == 1
row = cur.fetchone()
assert row[0] == "foo"
def test_cast_int(conn, val, pgtype, want):
cur = conn.cursor()
cur.execute("select %%s::%s" % pgtype, (val,))
+ assert cur.pgresult.fformat(0) == 0
+ result = cur.fetchone()[0]
+ assert result == want
+ assert type(result) is type(want)
+
+ # test binary
+ cur.binary = True
+ cur.execute("select %%s::%s" % pgtype, (val,))
+ assert cur.pgresult.fformat(0) == 1
result = cur.fetchone()[0]
assert result == want
assert type(result) is type(want)