X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/8ea7e043634457b4b588ed53c310c94885fc105a..e6775e713c2a1c009f7a01fad674a545e0e6bb39:/nominatim/db/properties.py diff --git a/nominatim/db/properties.py b/nominatim/db/properties.py index 9cc371fe..9dac2053 100644 --- a/nominatim/db/properties.py +++ b/nominatim/db/properties.py @@ -1,8 +1,17 @@ +# SPDX-License-Identifier: GPL-2.0-only +# +# This file is part of Nominatim. (https://nominatim.org) +# +# Copyright (C) 2022 by the Nominatim developer community. +# For a full list of authors see the git log. """ Query and access functions for the in-database property table. """ +from typing import Optional, cast -def set_property(conn, name, value): +from nominatim.db.connection import Connection + +def set_property(conn: Connection, name: str, value: str) -> None: """ Add or replace the propery with the given name. """ with conn.cursor() as cur: @@ -17,12 +26,19 @@ def set_property(conn, name, value): cur.execute(sql, (value, name)) conn.commit() -def get_property(conn, name): + +def get_property(conn: Connection, name: str) -> Optional[str]: """ Return the current value of the given propery or None if the property is not set. """ + if not conn.table_exists('nominatim_properties'): + return None + with conn.cursor() as cur: cur.execute('SELECT value FROM nominatim_properties WHERE property = %s', (name, )) - return cur.fetchone()[0] if cur.rowcount > 0 else None + if cur.rowcount == 0: + return None + + return cast(Optional[str], cur.fetchone()[0]) # type: ignore[no-untyped-call]