/ / Como determinar se uma conexão PostgreSQL é com Postgres ou EnterpriseDB - postgresql, psycopg2, enterprisedb

Como determinar se uma conexão do PostgreSQL é com o Postgres ou EnterpriseDB - postgresql, psycopg2, enterprisedb

Meu atual projeto de programação me permite acessar umBanco de dados PostgreSQL em Python3 usando a biblioteca psycopg2. Embora tudo esteja indo bem, estou descobrindo que existem diferenças sutis entre o PostgreSQL de código aberto e a versão do EnterpriseDB (também conhecido como Postgres Plus Advanced Server ou PPAS). Assim, eu preciso ser capaz de determinar se uma conexão com o banco de dados é para uma instância do PPAS ou uma instância regular do PostgreSQL.

Existe uma maneira de fazer isso através da API psycopg2 ou consultando o banco de dados?

Eu suspeito que pode haver uma maneira de fazer isso usando SELECT version() mas não tenho certeza de quais valores possíveis eu veria para indicar em qual plataforma estou.

Respostas:

0 para resposta № 1

Assumindo que o PPAS é um superconjunto (?) do Postgresql você pode emitir uma consulta chamando uma função ou tabela de sistema que existe somente no PPAS.

  • Se for bem sucedido, é o PPAS.
  • Se falhar, então não é PPAS e deve ser Postgresql. Ou você é azarado o suficiente para ser algum outro tipo de erro.