[OSM-dev] Osmosis and current tables - temporary solution

Andreas Kalsch andreaskalsch at gmx.de
Sun Feb 14 16:17:28 GMT 2010


Deleting all old versions before inserting the new one via triggers will 
slow down the script a bit, but the checks for the latest version can be 
omitted and you can use populateCurrentTables=no:

CREATE OR REPLACE FUNCTION nodes_insert() RETURNS trigger AS $$
     DECLARE

     BEGIN

         DELETE FROM node_tags WHERE id = NEW.id;
         DELETE FROM nodes WHERE id = NEW.id;

         RETURN NEW;
     END;
$$ LANGUAGE 'plpgsql';

CREATE OR REPLACE FUNCTION ways_insert() RETURNS trigger AS $$
     DECLARE

     BEGIN

         DELETE FROM way_tags WHERE id = NEW.id;
         DELETE FROM way_nodes WHERE id = NEW.id;
         DELETE FROM ways WHERE id = NEW.id;

         RETURN NEW;
     END;
$$ LANGUAGE 'plpgsql';

CREATE OR REPLACE FUNCTION relations_insert() RETURNS trigger AS $$
     DECLARE

     BEGIN

         DELETE FROM relation_tags WHERE id = NEW.id;
         DELETE FROM relation_members WHERE id = NEW.id;
         DELETE FROM relations WHERE id = NEW.id;

         RETURN NEW;
     END;
$$ LANGUAGE 'plpgsql';

CREATE TRIGGER node_insert BEFORE INSERT ON nodes
     FOR EACH ROW EXECUTE PROCEDURE nodes_insert();

CREATE TRIGGER way_insert BEFORE INSERT ON ways
     FOR EACH ROW EXECUTE PROCEDURE ways_insert();

CREATE TRIGGER relation_insert BEFORE INSERT ON relations
     FOR EACH ROW EXECUTE PROCEDURE relations_insert();

Am 14.02.10 15:40, schrieb Andreas Kalsch:
> Is there a way to make Osmosis populate and refresh just the current
> tables and ignoring the history tables? It would be faster and it is
> easier to work with tables which have exactly one version - the recent -
> for every feature.
>
> Andi
>
> _______________________________________________
> dev mailing list
> dev at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/dev
>
>
>    





More information about the dev mailing list