X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/9a1b8a67d63d28059c716e59ec305fa2bfede33a..e7b8e1a2c2d82f3f31f033df17adc5d14bbc5374:/nominatim/db/connection.py?ds=sidebyside diff --git a/nominatim/db/connection.py b/nominatim/db/connection.py index fce897bc..12fc22d4 100644 --- a/nominatim/db/connection.py +++ b/nominatim/db/connection.py @@ -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.