From e9837ea9b05683cf2aa1c22a558cfd96c2cb55e3 Mon Sep 17 00:00:00 2001 From: Itz-Agasta Date: Wed, 1 Jul 2026 21:30:27 +0530 Subject: [PATCH] Update indexer boundary queries for categories Change BoundaryRunner and Indexer SQL to use categories <@ 'osm.boundary.administrative' instead of class='boundary' AND type='administrative'. --- src/nominatim_db/indexer/indexer.py | 2 +- src/nominatim_db/indexer/runners.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/nominatim_db/indexer/indexer.py b/src/nominatim_db/indexer/indexer.py index 934029c0..2c4001fc 100644 --- a/src/nominatim_db/indexer/indexer.py +++ b/src/nominatim_db/indexer/indexer.py @@ -108,7 +108,7 @@ class Indexer: cur = conn.execute(""" SELECT rank_search, count(*) FROM placex WHERE rank_search between %s and %s - AND class = 'boundary' and type = 'administrative' + AND categories <@ 'osm.boundary.administrative' AND indexed_status > 0 GROUP BY rank_search""", (minrank, maxrank)) diff --git a/src/nominatim_db/indexer/runners.py b/src/nominatim_db/indexer/runners.py index 8e80db02..6ed89dea 100644 --- a/src/nominatim_db/indexer/runners.py +++ b/src/nominatim_db/indexer/runners.py @@ -80,13 +80,13 @@ class BoundaryRunner(AbstractPlacexRunner): return pysql.SQL("""SELECT count(*) FROM placex WHERE indexed_status > 0 AND rank_search = {} - AND class = 'boundary' and type = 'administrative' - """).format(pysql.Literal(self.rank)) + AND categories <@ 'osm.boundary.administrative' + """).format(pysql.Literal(self.rank)) def sql_get_objects(self) -> QueryNoTemplate: return SELECT_SQL.format(pysql.SQL( """WHERE placex.indexed_status > 0 and placex.rank_search = {} - and placex.class = 'boundary' and placex.type = 'administrative' + and placex.categories <@ 'osm.boundary.administrative' ORDER BY placex.partition, placex.admin_level """).format(pysql.Literal(self.rank))) -- 2.47.3