]> git.openstreetmap.org Git - nominatim.git/commitdiff
Merge remote-tracking branch 'upstream/master'
authorSarah Hoffmann <lonvia@denofr.de>
Fri, 15 Oct 2021 16:21:13 +0000 (18:21 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Fri, 15 Oct 2021 16:21:13 +0000 (18:21 +0200)
docs/admin/Customization.md
nominatim/db/sql_preprocessor.py
test/python/conftest.py
test/python/test_db_sql_preprocessor.py

index 373356383325a241ae1d75ca293239e5ea424b64..fc1d45cf06e3fd842e6d968ea939aa0184845463 100644 (file)
@@ -48,14 +48,14 @@ address set to complement the OSM house number data in the US. You can add
 TIGER data to your own Nominatim instance by following these steps. The
 entire US adds about 10GB to your database.
 
-  1. Get preprocessed TIGER 2020 data:
+  1. Get preprocessed TIGER 2021 data:
 
         cd $PROJECT_DIR
-        wget https://nominatim.org/data/tiger2020-nominatim-preprocessed.csv.tar.gz
+        wget https://nominatim.org/data/tiger2021-nominatim-preprocessed.csv.tar.gz
 
   2. Import the data into your Nominatim database:
 
-        nominatim add-data --tiger-data tiger2020-nominatim-preprocessed.csv.tar.gz
+        nominatim add-data --tiger-data tiger2021-nominatim-preprocessed.csv.tar.gz
 
   3. Enable use of the Tiger data in your `.env` by adding:
 
index a1bf5b7f1418a0d65abd1199264a892f3d74f918..c8e07f6e64a4a18fcbe6bcd02808793f7daaa379 100644 (file)
@@ -36,7 +36,7 @@ def _setup_tablespace_sql(config):
             tspace = getattr(config, 'TABLESPACE_{}_{}'.format(subset, kind))
             if tspace:
                 tspace = 'TABLESPACE "{}"'.format(tspace)
-            out['{}_{}'.format(subset.lower, kind.lower())] = tspace
+            out['{}_{}'.format(subset.lower(), kind.lower())] = tspace
 
     return out
 
index 74d3633968cb12c6c16733f997d3cd0f621c4d94..4812e3f00a2710bf52e6b2315b4f029c2e953407 100644 (file)
@@ -226,14 +226,19 @@ def osm2pgsql_options(temp_db):
                 tablespaces=dict(slim_data='', slim_index='',
                                  main_data='', main_index=''))
 
+
 @pytest.fixture
-def sql_preprocessor(temp_db_conn, tmp_path, table_factory, temp_db_with_extensions):
+def sql_preprocessor_cfg(tmp_path, table_factory, temp_db_with_extensions):
     table_factory('country_name', 'partition INT', ((0, ), (1, ), (2, )))
     cfg = Configuration(None, SRC_DIR.resolve() / 'settings')
     cfg.set_libdirs(module='.', osm2pgsql='.', php=SRC_DIR / 'lib-php',
                     sql=tmp_path, data=SRC_DIR / 'data')
+    return cfg
 
-    return SQLPreprocessor(temp_db_conn, cfg)
+
+@pytest.fixture
+def sql_preprocessor(sql_preprocessor_cfg, temp_db_conn):
+    return SQLPreprocessor(temp_db_conn, sql_preprocessor_cfg)
 
 
 @pytest.fixture
index 79f82daccd150a7b9371bcadd02ea6fc121ed8a2..2ca0c66112e8b8f094a2045e681cb3fa6bc10eae 100644 (file)
@@ -3,6 +3,8 @@ Tests for SQL preprocessing.
 """
 import pytest
 
+from nominatim.db.sql_preprocessor import SQLPreprocessor
+
 @pytest.fixture
 def sql_factory(tmp_path):
     def _mk_sql(sql_body):
@@ -22,11 +24,20 @@ def sql_factory(tmp_path):
     ("'{{db.partitions|join}}'", '012'),
     ("{% if 'country_name' in db.tables %}'yes'{% else %}'no'{% endif %}", "yes"),
     ("{% if 'xxx' in db.tables %}'yes'{% else %}'no'{% endif %}", "no"),
+    ("'{{db.tablespace.address_data}}'", ""),
+    ("'{{db.tablespace.search_data}}'", 'TABLESPACE "dsearch"'),
+    ("'{{db.tablespace.address_index}}'", 'TABLESPACE "iaddress"'),
+    ("'{{db.tablespace.aux_data}}'", 'TABLESPACE "daux"')
     ])
-def test_load_file_simple(sql_preprocessor, sql_factory, temp_db_conn, temp_db_cursor, expr, ret):
+def test_load_file_simple(sql_preprocessor_cfg, sql_factory,
+                          temp_db_conn, temp_db_cursor, monkeypatch,
+                          expr, ret):
+    monkeypatch.setenv('NOMINATIM_TABLESPACE_SEARCH_DATA', 'dsearch')
+    monkeypatch.setenv('NOMINATIM_TABLESPACE_ADDRESS_INDEX', 'iaddress')
+    monkeypatch.setenv('NOMINATIM_TABLESPACE_AUX_DATA', 'daux')
     sqlfile = sql_factory("RETURN {};".format(expr))
 
-    sql_preprocessor.run_sql_file(temp_db_conn, sqlfile)
+    SQLPreprocessor(temp_db_conn, sql_preprocessor_cfg).run_sql_file(temp_db_conn, sqlfile)
 
     assert temp_db_cursor.scalar('SELECT test()') == ret