update classtype tables for special phrases along with the places

This commit is contained in:
Sarah Hoffmann
2012-02-19 10:33:21 +00:00
parent c186a4ead0
commit 01f4723b7b
2 changed files with 24 additions and 3 deletions

View File

@@ -875,6 +875,7 @@ DECLARE
country_code VARCHAR(2);
default_language VARCHAR(10);
diameter FLOAT;
classtable TEXT;
BEGIN
-- RAISE WARNING '%',NEW.osm_id;
@@ -1148,6 +1149,17 @@ BEGIN
END IF;
-- add to tables for special search
-- Note: won't work on initial import because the classtype tables
-- do not yet exist. It won't hurt either.
classtable := 'place_classtype_' || NEW.class || '_' || NEW.type;
SELECT count(*)>0 FROM pg_tables WHERE tablename = classtable INTO result;
IF result THEN
EXECUTE 'INSERT INTO ' || classtable::regclass || ' (place_id, centroid) VALUES ($1,$2)'
USING NEW.place_id, ST_Centroid(NEW.geometry);
END IF;
-- IF NEW.rank_search < 26 THEN
-- RAISE WARNING 'placex insert: % % % %',NEW.osm_type,NEW.osm_id,NEW.class,NEW.type;
-- END IF;
@@ -1558,6 +1570,7 @@ CREATE OR REPLACE FUNCTION placex_delete() RETURNS TRIGGER
AS $$
DECLARE
b BOOLEAN;
classtable TEXT;
BEGIN
IF OLD.rank_address < 30 THEN
@@ -1584,6 +1597,13 @@ BEGIN
DELETE FROM place_addressline where place_id = OLD.place_id;
-- remove from tables for special search
classtable := 'place_classtype_' || OLD.class || '_' || OLD.type;
SELECT count(*)>0 FROM pg_tables WHERE tablename = classtable INTO b;
IF b THEN
EXECUTE 'DELETE FROM ' || classtable::regclass || ' WHERE place_id = $1' USING OLD.place_id;
END IF;
RETURN OLD;
END;