# patroni.postgresql.connection module

class patroni.postgresql.connection.ConnectionPool

  Bases: `object`

  Helper class to manage named connections from Patroni to PostgreSQL.

  The instance keeps named `NamedConnection` objects and parameters that must be used for new connections.

  __init__() → None

    Create an instance of `ConnectionPool` class.

  close() → None

    Close all named connections from Patroni to PostgreSQL registered in the pool.

  property conn_kwargs: Dict[str, Any]

    Connection parameters that must be used for new `psycopg` connections.

  get(name: str, kwargs_override: Dict[str, Any] | None = None) → NamedConnection

    Get a new named `NamedConnection` object from the pool.

    Note

    Creates a new `NamedConnection` object if it doesn’t yet exist in the pool.

    Parameters:

      - name – name of the connection.

      - kwargs_override – `dict` object with connection parameters that should be different from default values provided by `conn_kwargs`.

    Returns:

      `NamedConnection` object.

class patroni.postgresql.connection.NamedConnection(pool: ConnectionPool, name: str, kwargs_override: Dict[str, Any] | None)

  Bases: `object`

  Helper class to manage `psycopg` connections from Patroni to PostgreSQL.

  Variables:

    server_version – PostgreSQL version in integer format where we are connected to.

  __init__(pool: ConnectionPool, name: str, kwargs_override: Dict[str, Any] | None) → None

    Create an instance of `NamedConnection` class.

    Parameters:

      - pool – reference to a `ConnectionPool` object.

      - name – name of the connection.

      - kwargs_override – `dict` object with connection parameters that should be different from default values provided by connection pool.

  property _conn_kwargs: Dict[str, Any]

    Connection parameters for this `NamedConnection`.

  close(silent: bool = False) → bool

    Close the psycopg connection to postgres.

    Parameters:

      silent – whether the method should not write logs.

    Returns:

      `True` if `psycopg` connection was closed, `False` otherwise.``

  get() → connection | Connection[Any]

    Get `psycopg`/`psycopg2` connection object.

    Note

    Opens a new connection if necessary.

    Returns:

      `psycopg` or `psycopg2` connection object.

  query(sql: str, *params: Any) → List[Tuple[Any, ...]]

    Execute a query with parameters and optionally returns a response.

    Parameters:

      - sql – SQL statement to execute.

      - params – parameters to pass.

    Returns:

      a query response as a list of tuples if there is any.

    Raises:

      `Error` if had issues while executing sql.

      `PostgresConnectionException`: if had issues while connecting to the database.

  server_version: int

patroni.postgresql.connection.get_connection_cursor(**kwargs: Any) → Generator[cursor | Cursor[Any], None, None]