# patroni.postgresql.misc module

class patroni.postgresql.misc.PostgresqlRole(*values)

  Bases: `str`, `Enum`

  Possible values of `Postgresql.role`.

  DEMOTED = 'demoted'
  MASTER = 'master'
  PRIMARY = 'primary'
  PROMOTED = 'promoted'
  REPLICA = 'replica'
  STANDBY_LEADER = 'standby_leader'
  UNINITIALIZED = 'uninitialized'

class patroni.postgresql.misc.PostgresqlState(*values)

  Bases: `str`, `Enum`

  Possible values of `Postgresql.state`.

  Numeric indexes should NEVER change once assigned to maintain backward compatibility with existing monitoring systems.

  BOOTSTRAP_STARTING = 'starting after custom bootstrap'
  CRASHED = 'crashed'
  CREATING_REPLICA = 'creating replica'
  CUSTOM_BOOTSTRAP = 'running custom bootstrap script'
  CUSTOM_BOOTSTRAP_FAILED = 'custom bootstrap failed'
  INITDB = 'initializing new cluster'
  INITDB_FAILED = 'initdb failed'
  RESTARTING = 'restarting'
  RESTART_FAILED = 'restart failed'
  RUNNING = 'running'
  STARTING = 'starting'
  START_FAILED = 'start failed'
  STOPPED = 'stopped'
  STOPPING = 'stopping'
  STOP_FAILED = 'stop failed'

patroni.postgresql.misc.format_lsn(lsn: int, full: bool = False) → str

patroni.postgresql.misc.fsync_dir(path: str) → None

patroni.postgresql.misc.get_major_from_minor_version(version: int) → int

  Extract major PostgreSQL version from the provided full version.

  Parameters:

    version – integer representation of PostgreSQL full version (major + minor).

  Returns:

    integer representation of the PostgreSQL major version.

  Example:

        >>> get_major_from_minor_version(100012)
        100000

        >>> get_major_from_minor_version(90313)
        90300

patroni.postgresql.misc.parse_history(data: str) → Iterable[Tuple[int, int, str]]

patroni.postgresql.misc.parse_lsn(lsn: str) → int

patroni.postgresql.misc.postgres_major_version_to_int(pg_version: str) → int

      >>> postgres_major_version_to_int('10')
      100000
      >>> postgres_major_version_to_int('9.6')
      90600

patroni.postgresql.misc.postgres_version_to_int(pg_version: str) → int

  Convert the server_version to integer

      >>> postgres_version_to_int('9.5.3')
      90503
      >>> postgres_version_to_int('9.3.13')
      90313
      >>> postgres_version_to_int('10.1')
      100001
      >>> postgres_version_to_int('10')
      Traceback (most recent call last):
          ...
      PostgresException: 'Invalid PostgreSQL version format: X.Y or X.Y.Z is accepted: 10'
      >>> postgres_version_to_int('9.6')
      Traceback (most recent call last):
          ...
      PostgresException: 'Invalid PostgreSQL version format: X.Y or X.Y.Z is accepted: 9.6'
      >>> postgres_version_to_int('a.b.c')
      Traceback (most recent call last):
          ...
      PostgresException: 'Invalid PostgreSQL version: a.b.c'