1 # SPDX-License-Identifier: GPL-2.0-only
3 # This file is part of Nominatim. (https://nominatim.org)
5 # Copyright (C) 2022 by the Nominatim developer community.
6 # For a full list of authors see the git log.
8 Functions for removing unnecessary data from the database.
10 from typing import Optional
11 from pathlib import Path
13 from psycopg2 import sql as pysql
15 from nominatim.db.connection import Connection
31 def drop_update_tables(conn: Connection) -> None:
32 """ Drop all tables only necessary for updating the database from
35 parts = (pysql.SQL("(tablename LIKE {})").format(pysql.Literal(t)) for t in UPDATE_TABLES)
37 with conn.cursor() as cur:
38 cur.execute(pysql.SQL("SELECT tablename FROM pg_tables WHERE ")
39 + pysql.SQL(' or ').join(parts))
40 tables = [r[0] for r in cur]
43 cur.drop_table(table, cascade=True)
48 def drop_flatnode_file(fpath: Optional[Path]) -> None:
49 """ Remove the flatnode file if it exists.
51 if fpath and fpath.exists():