]> git.openstreetmap.org Git - nominatim.git/commitdiff
add migration for inclusive housenumber Tiger index
authorSarah Hoffmann <lonvia@denofr.de>
Wed, 24 Nov 2021 10:05:04 +0000 (11:05 +0100)
committerSarah Hoffmann <lonvia@denofr.de>
Wed, 24 Nov 2021 11:03:20 +0000 (12:03 +0100)
nominatim/tools/migration.py
nominatim/version.py

index d7faca31f1f431b61383825ad105bee4163a6a07..87febacc114c28b971f004ad6fe778b4810b3f1f 100644 (file)
@@ -192,3 +192,20 @@ def install_legacy_tokenizer(conn, config, **_):
                                                        module_name='legacy')
 
         tokenizer.migrate_database(config)
+
+
+@_migration(4, 0, 99, 0)
+def create_tiger_housenumber_index(conn, _, **_):
+    """ Create idx_location_property_tiger_parent_place_id with included
+        house number.
+
+        The inclusion is needed for efficient lookup of housenumbers in
+        full address searches.
+    """
+    if conn.server_version_tuple() >= (11, 0, 0):
+        with conn.cursor() as cur:
+            cur.execute(""" CREATE INDEX IF NOT EXISTS
+                                idx_location_property_tiger_housenumber_migrated
+                            ON location_property_tiger
+                            USING btree(parent_place_id)
+                            INCLUDE (startnumber, endnumber) """)
index dcfc161eac5c0dad27e6ba73d082c7671cf9db9a..06a3e97113692fd3c43e50caa598c71ae46017c7 100644 (file)
@@ -9,8 +9,16 @@ Version information for Nominatim.
 # The database patch level tracks important changes between releases
 # and must always be increased when there is a change to the database or code
 # that requires a migration.
+#
+# When adding a migration on the development branch, raise the patch level
+# to 99 to make sure that the migration is applied when updating from a
+# patch release to the next minor version. Patch releases usually shouldn't
+# have migrations in them. When they are needed, then make sure that the
+# migration can reapplied and set the migration version to the appropriate
+# patch level when cherry-picking the commit with the migration.
+#
 # Released versions always have a database patch level of 0.
-NOMINATIM_VERSION = (4, 0, 0, 0)
+NOMINATIM_VERSION = (4, 0, 99, 1)
 
 POSTGRESQL_REQUIRED_VERSION = (9, 5)
 POSTGIS_REQUIRED_VERSION = (2, 2)