]> git.openstreetmap.org Git - nominatim.git/commitdiff
check-database on frozen db shouldnt recommend indexing
authorMarc Tobias <mtmail@gmx.net>
Mon, 19 Jun 2023 16:43:17 +0000 (18:43 +0200)
committerMarc Tobias <mtmail@gmx.net>
Wed, 21 Jun 2023 15:47:57 +0000 (17:47 +0200)
nominatim/tools/check_database.py
test/python/tools/test_check_database.py

index 437775db6a874561d5451d3a8683fd085a3ba17c..b1cfce57b9f4531d80a4ee80b2aaa95cd6af21ff 100644 (file)
@@ -15,6 +15,7 @@ from nominatim.config import Configuration
 from nominatim.db.connection import connect, Connection
 from nominatim.errors import UsageError
 from nominatim.tokenizer import factory as tokenizer_factory
 from nominatim.db.connection import connect, Connection
 from nominatim.errors import UsageError
 from nominatim.tokenizer import factory as tokenizer_factory
+from nominatim.tools import freeze
 
 CHECKLIST = []
 
 
 CHECKLIST = []
 
@@ -223,6 +224,12 @@ def check_indexing(conn: Connection, _: Configuration) -> CheckResult:
     if cnt == 0:
         return CheckState.OK
 
     if cnt == 0:
         return CheckState.OK
 
+    if freeze.is_frozen(conn):
+        index_cmd="""\
+            Database is marked frozen, it cannot be updated.
+            Low counts of unindexed places are fine."""
+        return CheckState.WARN, dict(count=cnt, index_cmd=index_cmd)
+
     if conn.index_exists('idx_placex_rank_search'):
         # Likely just an interrupted update.
         index_cmd = 'nominatim index'
     if conn.index_exists('idx_placex_rank_search'):
         # Likely just an interrupted update.
         index_cmd = 'nominatim index'
index d5f7088a4e4f4940613371f28d0d60e1ebc9aadd..4dd536b68daae4bf3bf9cea090f941afd5536e6f 100644 (file)
@@ -76,7 +76,7 @@ def test_check_indexing_good(table_factory, temp_db_conn, def_config):
 def test_check_indexing_bad(table_factory, temp_db_conn, def_config):
     table_factory('placex', 'place_id int, indexed_status smallint',
                   content=((1, 0), (2, 2)))
 def test_check_indexing_bad(table_factory, temp_db_conn, def_config):
     table_factory('placex', 'place_id int, indexed_status smallint',
                   content=((1, 0), (2, 2)))
-    assert chkdb.check_indexing(temp_db_conn, def_config) == chkdb.CheckState.FAIL
+    assert chkdb.check_indexing(temp_db_conn, def_config) == chkdb.CheckState.WARN
 
 
 def test_check_database_indexes_bad(temp_db_conn, def_config):
 
 
 def test_check_database_indexes_bad(temp_db_conn, def_config):