# name of the postgres encoding (in bytes)
self.pgenc = None
- def cursor(self, name=None):
- return self.cursor_factory(self)
+ def cursor(self, name=None, binary=False):
+ if name is not None:
+ raise NotImplementedError
+ return self.cursor_factory(self, binary=binary)
@property
def codec(self):
vars = reorder_params(vars, order)
params, types = self._transformer.adapt_sequence(vars, formats)
self.conn.pgconn.send_query_params(
- query, params, param_formats=formats, param_types=types
+ query,
+ params,
+ param_formats=formats,
+ param_types=types,
+ result_format=int(self.binary),
)
else:
self.conn.pgconn.send_query(query)
def test_fetchone(conn):
cur = conn.cursor()
cur.execute("select %s, %s, %s", [1, "foo", None])
+ assert cur._result.fformat(0) == 0
+
row = cur.fetchone()
assert row[0] == 1
assert row[1] == "foo"
assert row[2] is None
row = cur.fetchone()
assert row is None
+
+
+def test_execute_binary_result(conn):
+ cur = conn.cursor(binary=True)
+ cur.execute("select %s, %s", ["foo", None])
+ assert cur._result.fformat(0) == 1
+
+ row = cur.fetchone()
+ assert row[0] == "foo"
+ assert row[1] is None
+ row = cur.fetchone()
+ assert row is None