# patroni.postgresql.misc module

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

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

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'