]> git.openstreetmap.org Git - nominatim.git/blobdiff - nominatim/db/properties.py
hide type differences between Postgres and Sqlite in custom types
[nominatim.git] / nominatim / db / properties.py
index 19c090069ac9ab9ccaf33bd20caff1f53088fcd7..e8d5e0ca5c47194f7e72402f3c6b541a251c6a2a 100644 (file)
@@ -7,9 +7,12 @@
 """
 Query and access functions for the in-database property table.
 """
 """
 Query and access functions for the in-database property table.
 """
+from typing import Optional, cast
 
 
-def set_property(conn, name, value):
-    """ Add or replace the propery with the given name.
+from nominatim.db.connection import Connection
+
+def set_property(conn: Connection, name: str, value: str) -> None:
+    """ Add or replace the property with the given name.
     """
     with conn.cursor() as cur:
         cur.execute('SELECT value FROM nominatim_properties WHERE property = %s',
     """
     with conn.cursor() as cur:
         cur.execute('SELECT value FROM nominatim_properties WHERE property = %s',
@@ -23,12 +26,22 @@ def set_property(conn, name, value):
         cur.execute(sql, (value, name))
     conn.commit()
 
         cur.execute(sql, (value, name))
     conn.commit()
 
-def get_property(conn, name):
-    """ Return the current value of the given propery or None if the property
+
+def get_property(conn: Connection, name: str) -> Optional[str]:
+    """ Return the current value of the given property or None if the property
         is not set.
     """
         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, ))
 
     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
+
+        result = cur.fetchone()
+        assert result is not None
+
+        return cast(Optional[str], result[0])