Added check for hstore extension

This commit is contained in:
Robbe Haesendonck
2023-09-21 12:20:46 +02:00
committed by Sarah Hoffmann
parent 38369ca3cf
commit d4018f2e3b
3 changed files with 23 additions and 1 deletions

View File

@@ -174,6 +174,24 @@ class Connection(psycopg2.extensions.connection):
return (int(version_parts[0]), int(version_parts[1]))
def hstore_version_tuple(self) -> Tuple[int, int]:
""" Return the hstore version installed in the database as a
tuple of (major, minor). Assumes that the hstore extension
has been installed already.
"""
with self.cursor() as cur:
version = cur.scalar(
'SELECT extversion FROM pg_extension WHERE extname = %s',
('hstore')
)
version_parts = version.split('.')
if len(version_parts) < 2:
raise UsageError(f"Error fetching hstore version. Bad format: {version}")
return (int(version_parts[0]), int(version_parts[1]))
class ConnectionContext(ContextManager[Connection]):
""" Context manager of the connection that also provides direct access
to the underlying connection.