is bad. `!ACTIVE` is reported only when a query has been sent to the
server and not yet completed.
+ .. autoattribute:: pipeline_status
+
.. autoattribute:: backend_pid
.. autoattribute:: server_version
"""
return pq.TransactionStatus(self.pgconn.transaction_status)
+ @property
+ def pipeline_status(self) -> pq.PipelineStatus:
+ """
+ The current pipeline status of the client.
+ See :pq:`PQpipelineStatus()`.
+ """
+ return pq.PipelineStatus(self.pgconn.pipeline_status)
+
def parameter_status(self, param_name: str) -> Optional[str]:
"""
Return a parameter setting of the connection.
conn.close()
assert conn.info.transaction_status.name == "UNKNOWN"
+ @pytest.mark.libpq(">= 14")
+ def test_pipeline_status(self, conn):
+ assert not conn.info.pipeline_status
+ assert conn.info.pipeline_status.name == "OFF"
+ with conn.pipeline():
+ assert conn.info.pipeline_status
+ assert conn.info.pipeline_status.name == "ON"
+
+ @pytest.mark.libpq("< 14")
+ def test_pipeline_status_no_pipeline(self, conn):
+ assert not conn.info.pipeline_status
+ assert conn.info.pipeline_status.name == "OFF"
+
def test_no_password(self, dsn):
dsn2 = make_conninfo(dsn, password="the-pass-word")
pgconn = psycopg.pq.PGconn.connect_start(dsn2.encode())