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
-- 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;
$$
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 $$