# PQprint: pretty useless
+# 33.3.3. Retrieving Other Result Information
+
+PQcmdStatus = pq.PQcmdStatus
+PQcmdStatus.argtypes = [PGresult_ptr]
+PQcmdStatus.restype = c_char_p
+
+PQcmdTuples = pq.PQcmdTuples
+PQcmdTuples.argtypes = [PGresult_ptr]
+PQcmdTuples.restype = c_char_p
+
+PQoidValue = pq.PQoidValue
+PQoidValue.argtypes = [PGresult_ptr]
+PQoidValue.restype = Oid
+
# 33.4. Asynchronous Command Processing
def param_type(self, param_number):
return impl.PQparamtype(self.pgresult_ptr, param_number)
+ @property
+ def command_status(self):
+ return impl.PQcmdStatus(self.pgresult_ptr)
+
+ @property
+ def command_tuples(self):
+ rv = impl.PQcmdTuples(self.pgresult_ptr)
+ if rv:
+ return int(rv)
+
+ @property
+ def oid_value(self):
+ return impl.PQoidValue(self.pgresult_ptr)
+
ConninfoOption = namedtuple(
"ConninfoOption", "keyword envvar compiled val label dispatcher dispsize"
assert res.nparams == 2
assert res.param_type(0) == 23
assert res.param_type(1) == 25
+
+
+def test_command_status(pq, pgconn):
+ res = pgconn.exec_(b"select 1")
+ assert res.command_status == b"SELECT 1"
+ res = pgconn.exec_(b"set timezone to utf8")
+ assert res.command_status == b"SET"
+
+
+def test_command_tuples(pq, pgconn):
+ res = pgconn.exec_(b"select * from generate_series(1, 10)")
+ assert res.command_tuples == 10
+ res = pgconn.exec_(b"set timezone to utf8")
+ assert res.command_tuples is None
+
+
+def test_oid_value(pq, pgconn):
+ res = pgconn.exec_(b"select 1")
+ assert res.oid_value == 0