]> git.openstreetmap.org Git - nominatim.git/commitdiff
move postcode table triggers to own file
authorSarah Hoffmann <lonvia@denofr.de>
Wed, 8 Jan 2020 10:22:23 +0000 (11:22 +0100)
committerSarah Hoffmann <lonvia@denofr.de>
Wed, 8 Jan 2020 10:22:23 +0000 (11:22 +0100)
lib/setup/SetupClass.php
sql/functions.sql
sql/functions/postcode_triggers.sql [new file with mode: 0644]

index 1dd30c81fa991665b014c3c47c6194b8ef6c37f8..51c247c172c8a9124691e8a4910992a88434d2ee 100755 (executable)
@@ -656,6 +656,7 @@ class SetupFunctions
         $sTemplate .= file_get_contents($sBasePath.'interpolation.sql');
         $sTemplate .= file_get_contents($sBasePath.'place_triggers.sql');
         $sTemplate .= file_get_contents($sBasePath.'placex_triggers.sql');
+        $sTemplate .= file_get_contents($sBasePath.'postcode_triggers.sql');
         $sTemplate = str_replace('{modulepath}', $this->sModulePath, $sTemplate);
         if ($this->bEnableDiffUpdates) {
             $sTemplate = str_replace('RETURN NEW; -- %DIFFUPDATES%', '--', $sTemplate);
index 21ec16899d3ca394c42340491223d4f40232ba4f..828256ed2ead3a35cf6b4e8d76ad46607a01f258 100644 (file)
@@ -313,44 +313,6 @@ END;
 $$
 LANGUAGE plpgsql;
 
--- Trigger for updates of location_postcode
---
--- Computes the parent object the postcode most likely refers to.
--- This will be the place that determines the address displayed when
--- searching for this postcode.
-CREATE OR REPLACE FUNCTION postcode_update() RETURNS
-TRIGGER
-  AS $$
-DECLARE
-  partition SMALLINT;
-  location RECORD;
-BEGIN
-    IF NEW.indexed_status != 0 OR OLD.indexed_status = 0 THEN
-        RETURN NEW;
-    END IF;
-
-    NEW.indexed_date = now();
-
-    partition := get_partition(NEW.country_code);
-
-    SELECT * FROM get_postcode_rank(NEW.country_code, NEW.postcode)
-      INTO NEW.rank_search, NEW.rank_address;
-
-    NEW.parent_place_id = 0;
-    FOR location IN
-      SELECT place_id
-        FROM getNearFeatures(partition, NEW.geometry, NEW.rank_search, '{}'::int[])
-        WHERE NOT isguess ORDER BY rank_address DESC LIMIT 1
-    LOOP
-        NEW.parent_place_id = location.place_id;
-    END LOOP;
-
-    RETURN NEW;
-END;
-$$
-LANGUAGE plpgsql;
-
-
 CREATE OR REPLACE FUNCTION get_osm_rel_members(members TEXT[], member TEXT) RETURNS TEXT[]
   AS $$
 DECLARE
diff --git a/sql/functions/postcode_triggers.sql b/sql/functions/postcode_triggers.sql
new file mode 100644 (file)
index 0000000..96788d6
--- /dev/null
@@ -0,0 +1,40 @@
+-- Trigger functions for location_postcode table.
+
+
+-- Trigger for updates of location_postcode
+--
+-- Computes the parent object the postcode most likely refers to.
+-- This will be the place that determines the address displayed when
+-- searching for this postcode.
+CREATE OR REPLACE FUNCTION postcode_update()
+  RETURNS TRIGGER
+  AS $$
+DECLARE
+  partition SMALLINT;
+  location RECORD;
+BEGIN
+    IF NEW.indexed_status != 0 OR OLD.indexed_status = 0 THEN
+        RETURN NEW;
+    END IF;
+
+    NEW.indexed_date = now();
+
+    partition := get_partition(NEW.country_code);
+
+    SELECT * FROM get_postcode_rank(NEW.country_code, NEW.postcode)
+      INTO NEW.rank_search, NEW.rank_address;
+
+    NEW.parent_place_id = 0;
+    FOR location IN
+      SELECT place_id
+        FROM getNearFeatures(partition, NEW.geometry, NEW.rank_search, '{}'::int[])
+        WHERE NOT isguess ORDER BY rank_address DESC LIMIT 1
+    LOOP
+        NEW.parent_place_id = location.place_id;
+    END LOOP;
+
+    RETURN NEW;
+END;
+$$
+LANGUAGE plpgsql;
+