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) """)
# 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)