X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/ffc2d82b0ed150d52a718dc563f9399062e579a7..87907916ff06741bd4627101d30e6e11b8ea1a1a:/nominatim/indexer/runners.py diff --git a/nominatim/indexer/runners.py b/nominatim/indexer/runners.py index 75429fe4..aa607faa 100644 --- a/nominatim/indexer/runners.py +++ b/nominatim/indexer/runners.py @@ -11,7 +11,7 @@ import psycopg2.extras class AbstractPlacexRunner: """ Returns SQL commands for indexing of the placex table. """ - SELECT_SQL = 'SELECT place_id, (placex_prepare_update(placex)).* FROM placex' + SELECT_SQL = 'SELECT place_id FROM placex' def __init__(self, rank, analyzer): self.rank = rank @@ -28,6 +28,13 @@ class AbstractPlacexRunner: """.format(','.join(["(%s, %s::hstore, %s::jsonb)"] * num_places)) + @staticmethod + def get_place_details(worker, ids): + worker.perform("""SELECT place_id, (placex_prepare_update(placex)).* + FROM placex WHERE place_id IN %s""", + (tuple((p[0] for p in ids)), )) + + def index_places(self, worker, places): values = [] for place in places: @@ -97,12 +104,19 @@ class InterpolationRunner: @staticmethod def sql_get_objects(): - return """SELECT place_id, get_interpolation_address(address, osm_id) as address + return """SELECT place_id FROM location_property_osmline WHERE indexed_status > 0 ORDER BY geometry_sector""" + @staticmethod + def get_place_details(worker, ids): + worker.perform("""SELECT place_id, get_interpolation_address(address, osm_id) as address + FROM location_property_osmline WHERE place_id IN %s""", + (tuple((p[0] for p in ids)), )) + + @staticmethod @functools.lru_cache(maxsize=1) def _index_sql(num_places):