]> git.openstreetmap.org Git - nominatim.git/blobdiff - sql/functions.sql
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / sql / functions.sql
index 9b083609675642633929075b1df8bed8aba66e05..54f46cfe933b64fbd5f33dfc9a6ac336ade93539 100644 (file)
@@ -1023,6 +1023,13 @@ BEGIN
             NEW.rank_address := 5;
           END IF;
 
+        ELSEIF NEW.calculated_country_code = 'sg' THEN
+
+          IF NEW.postcode ~ '^([0-9]{6})$' THEN
+            NEW.rank_search := 25;
+            NEW.rank_address := 11;
+          END IF;
+
         ELSEIF NEW.calculated_country_code = 'de' THEN
 
           IF NEW.postcode ~ '^([0-9]{5})$' THEN
@@ -2100,8 +2107,8 @@ BEGIN
   -- Handle a place changing type by removing the old data
   -- My generated 'place' types are causing havok because they overlap with real keys
   -- TODO: move them to their own special purpose key/class to avoid collisions
-  IF existing.osm_type IS NULL AND (NEW.type not in ('postcode','house','houses')) THEN
-    DELETE FROM place where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type not in ('postcode','house','houses');
+  IF existing.osm_type IS NULL THEN
+    DELETE FROM place where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class;
   END IF;
 
   --DEBUG: RAISE WARNING 'Existing: %',existing.osm_id;
@@ -2352,29 +2359,29 @@ END;
 $$
 LANGUAGE plpgsql IMMUTABLE;
 
-CREATE OR REPLACE FUNCTION get_connected_ways(way_ids INTEGER[]) RETURNS SETOF planet_osm_ways
-  AS $$
-DECLARE
-  searchnodes INTEGER[];
-  location RECORD;
-  j INTEGER;
-BEGIN
-
-  searchnodes := '{}';
-  FOR j IN 1..array_upper(way_ids, 1) LOOP
-    FOR location IN 
-      select nodes from planet_osm_ways where id = way_ids[j] LIMIT 1
-    LOOP
-      IF not (ARRAY[location.nodes] <@ searchnodes) THEN
-        searchnodes := searchnodes || location.nodes;
-      END IF;
-    END LOOP;
-  END LOOP;
-
-  RETURN QUERY select * from planet_osm_ways where nodes && searchnodes and NOT ARRAY[id] <@ way_ids;
-END;
-$$
-LANGUAGE plpgsql IMMUTABLE;
+--CREATE OR REPLACE FUNCTION get_connected_ways(way_ids INTEGER[]) RETURNS SETOF planet_osm_ways
+--  AS $$
+--DECLARE
+--  searchnodes INTEGER[];
+--  location RECORD;
+--  j INTEGER;
+--BEGIN
+--
+--  searchnodes := '{}';
+--  FOR j IN 1..array_upper(way_ids, 1) LOOP
+--    FOR location IN
+--      select nodes from planet_osm_ways where id = way_ids[j] LIMIT 1
+--    LOOP
+--      IF not (ARRAY[location.nodes] <@ searchnodes) THEN
+--        searchnodes := searchnodes || location.nodes;
+--      END IF;
+--    END LOOP;
+--  END LOOP;
+--
+--  RETURN QUERY select * from planet_osm_ways where nodes && searchnodes and NOT ARRAY[id] <@ way_ids;
+--END;
+--$$
+--LANGUAGE plpgsql IMMUTABLE;
 
 CREATE OR REPLACE FUNCTION get_address_postcode(for_place_id BIGINT) RETURNS TEXT
   AS $$