[OSM-Devserver] Eigene DB-Modifikationen

Jochen Topf jochen at remote.org
Fr Mär 26 17:31:00 CET 2010


On Fri, Mar 26, 2010 at 04:27:59PM +0100, Kay Drangmeister wrote:
> [python:]
> for lane in ['inline','orthogonal','diagonal','no_parking','no_stopping','fire_lane']:
>   curs.execute("UPDATE planet_osm_line
>                 SET \"parking:lane:left\"=%s,
>                     \"parking:lane:right\"=%s,
>                     \"parking:lane:both\"=NULL
>                 WHERE \"parking:lane:both\"=%s",
>                (lane,lane,lane))

Das müßte auch mit einem Query gehen :-)

UPDATE planet_osm_line
SET "parking:lane:left"="parking:lane:both",
    "parking:lane:right"="parking:lane:both",
    "parking:lane:both"=NULL
WHERE "parking:lane:both" IN ('inline','orthogonal','diagonal','no_parking','no_stopping','fire_lane');

> Wahrscheinlich kriegt man das halbwegs performant auch mit views hin.

SELECT COALESCE("parking:lane:left", "parking:lane:both")

gibt Dir den Wert von left zurück oder wenn der NULL ist, den von both. Damit sollte
sich ein View einfach basteln lassen.

> Frage 2: Ist ein View hier sinnvoller oder ein regelmäßiger DB-Update?

Wenn das alles ist, dann wird der View hier besser sein, bzw. eigentlich brauchste
keinen View, es reicht den Query im Mapnik zu machen.

Jochen
-- 
Jochen Topf  jochen at remote.org  http://www.remote.org/jochen/  +49-721-388298