add migration for inclusive housenumber Tiger index

This commit is contained in:
Sarah Hoffmann
2021-11-24 11:05:04 +01:00
parent b1d490ea53
commit 810056349f
2 changed files with 26 additions and 1 deletions

View File

@@ -192,3 +192,20 @@ def install_legacy_tokenizer(conn, config, **_):
module_name='legacy') module_name='legacy')
tokenizer.migrate_database(config) 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) """)

View File

@@ -9,8 +9,16 @@ Version information for Nominatim.
# The database patch level tracks important changes between releases # The database patch level tracks important changes between releases
# and must always be increased when there is a change to the database or code # and must always be increased when there is a change to the database or code
# that requires a migration. # 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. # 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) POSTGRESQL_REQUIRED_VERSION = (9, 5)
POSTGIS_REQUIRED_VERSION = (2, 2) POSTGIS_REQUIRED_VERSION = (2, 2)