From: Sarah Hoffmann Date: Mon, 26 Jun 2023 19:37:17 +0000 (+0200) Subject: band-aid for SQLAlchemy 1.4 X-Git-Tag: v4.3.0~57^2~6 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/42631b85c7445b3acae9d907330fd2544f3366a1 band-aid for SQLAlchemy 1.4 --- diff --git a/nominatim/api/logging.py b/nominatim/api/logging.py index 8d9af10c..202d7de9 100644 --- a/nominatim/api/logging.py +++ b/nominatim/api/logging.py @@ -93,6 +93,14 @@ class BaseLogger: for k in extra_params[0]: params[k] = f':{k}' + sqlstr = str(compiled) + + if '%s' in sqlstr: + try: + return sqlstr % tuple((repr(compiled.params[name]) for name in compiled.positiontup)) + except TypeError: + return sqlstr + return str(compiled) % params diff --git a/nominatim/db/sqlalchemy_types.py b/nominatim/db/sqlalchemy_types.py index e34dc7c1..c54d339e 100644 --- a/nominatim/db/sqlalchemy_types.py +++ b/nominatim/db/sqlalchemy_types.py @@ -28,7 +28,7 @@ class Geometry(types.UserDefinedType[Any]): return f'GEOMETRY({self.subtype}, 4326)' - def bind_processor(self, dialect: sa.Dialect) -> Callable[[Any], str]: + def bind_processor(self, dialect: 'sa.Dialect') -> Callable[[Any], str]: def process(value: Any) -> str: if isinstance(value, str): return 'SRID=4326;' + value @@ -37,14 +37,14 @@ class Geometry(types.UserDefinedType[Any]): return process - def result_processor(self, dialect: sa.Dialect, coltype: object) -> Callable[[Any], str]: + def result_processor(self, dialect: 'sa.Dialect', coltype: object) -> Callable[[Any], str]: def process(value: Any) -> str: assert isinstance(value, str) return value return process - def bind_expression(self, bindvalue: sa.BindParameter[Any]) -> SaColumn: + def bind_expression(self, bindvalue: 'sa.BindParameter[Any]') -> SaColumn: return sa.func.ST_GeomFromText(bindvalue, type_=self)