check for empty relation before linking

Empty relations may indeed appear, if the members of a relation
have been deleted but the tags have been retained. That is
detected as accidental error and the old geometry is retained
in placex while the slim tables contain the new version without members.
This commit is contained in:
Sarah Hoffmann
2012-09-28 22:58:29 +02:00
parent f1063497ef
commit 3337515052

View File

@@ -1502,6 +1502,7 @@ BEGIN
select members from planet_osm_rels where id = NEW.osm_id INTO relation_members; select members from planet_osm_rels where id = NEW.osm_id INTO relation_members;
-- RAISE WARNING 'get_osm_rel_members, label'; -- RAISE WARNING 'get_osm_rel_members, label';
IF relation_members IS NOT NULL THEN
FOR relMember IN select get_osm_rel_members(relation_members,ARRAY['label']) as member LOOP FOR relMember IN select get_osm_rel_members(relation_members,ARRAY['label']) as member LOOP
FOR linkedPlacex IN select * from placex where osm_type = upper(substring(relMember.member,1,1))::char(1) FOR linkedPlacex IN select * from placex where osm_type = upper(substring(relMember.member,1,1))::char(1)
@@ -1571,6 +1572,7 @@ BEGIN
END LOOP; END LOOP;
END IF; END IF;
END IF;
-- not found one yet? how about doing a name search -- not found one yet? how about doing a name search
IF NEW.centroid IS NULL AND (NEW.name->'name') is not null and make_standard_name(NEW.name->'name') != '' THEN IF NEW.centroid IS NULL AND (NEW.name->'name') is not null and make_standard_name(NEW.name->'name') != '' THEN