From a068a41c0691b77d5f06377cbb211cff2c6d6db9 Mon Sep 17 00:00:00 2001 From: Mert <101130780+mertalev@users.noreply.github.com> Date: Tue, 1 Jul 2025 06:28:30 +0300 Subject: [PATCH] fix(server): prevent duplicate geodata temp table (#18580) drop tmp table, create gist index first --- server/src/repositories/map.repository.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/server/src/repositories/map.repository.ts b/server/src/repositories/map.repository.ts index cdfe0dbe22..36c45bcb71 100644 --- a/server/src/repositories/map.repository.ts +++ b/server/src/repositories/map.repository.ts @@ -232,6 +232,7 @@ export class MapRepository { this.loadAdmin(resourcePaths.geodata.admin2), ]); + await this.db.schema.dropTable('geodata_places_tmp').ifExists().execute(); await this.db.transaction().execute(async (manager) => { await sql`CREATE TABLE geodata_places_tmp ( @@ -240,7 +241,12 @@ export class MapRepository { await manager.schema.dropTable('geodata_places').execute(); await manager.schema.alterTable('geodata_places_tmp').renameTo('geodata_places').execute(); }); - + await this.db.schema + .createIndex('IDX_geodata_gist_earthcoord') + .on('geodata_places') + .using('gist') + .expression(sql`ll_to_earth_public(latitude, longitude)`) + .execute(); await this.loadCities500(admin1, admin2); await this.createGeodataIndices(); } @@ -325,12 +331,6 @@ export class MapRepository { private createGeodataIndices() { return Promise.all([ sql`ALTER TABLE geodata_places ADD PRIMARY KEY (id) WITH (FILLFACTOR = 100)`.execute(this.db), - sql` - CREATE INDEX IDX_geodata_gist_earthcoord - ON geodata_places - USING gist (ll_to_earth_public(latitude, longitude)) - WITH (fillfactor = 100) - `.execute(this.db), this.db.schema .createIndex(`idx_geodata_places_alternate_names`) .on('geodata_places')