x

Kurze Postgres /SQL Frage


  1. Kurze Postgres /SQL Frage · SunCobalt (Gast) · 04.05.2011 16:14 · [flux]

    Hallo,

    funktioniert das so?

    update osm_line set namede=name where namede is null;
    update osm_point set namede=name where namede is null;
    update osm_polygon set namede=name where namede is null;
    update osm_roads set namede=name where namede is null;

    namede ist die Spalte, in die ich den name:de Tag importiert habe (default.style ist um den name:de Wert egänzt). Im Postprocessing wird die Spalte name:de in namede umbenannt da ich sonst Probleme mit dem ":" habe.
    Als Ergebnis soll dann, wenn es in OSM keinen Wert für name:de= gibt, der von name= in name:de (namede) reinkopiert werden.


    • Re: Kurze Postgres /SQL Frage · wambacher (Gast) · 04.05.2011 16:25 · [flux]

      SunCobalt wrote:

      Hallo,

      funktioniert das so?

      update osm_line set namede=name where namede is null;
      update osm_point set namede=name where namede is null;
      update osm_polygon set namede=name where namede is null;
      update osm_roads set namede=name where namede is null;

      sollte klppen - zumindest hab ich nix schlimmes auf den ersten blick gesehen.

      ... Im Postprocessing wird die Spalte name:de in namede umbenannt da ich sonst Probleme mit dem ":" habe.

      Was denn für Probleme? in der query anstelle von name:de einfach "name:de" schreiben und dann sollte es gehen .

      also: update osm_line set "name:de"=name where "name:de" is null;
      Gruss
      walter

      " = shift 2 - nicht 2mal ' !!


    • Re: Kurze Postgres /SQL Frage · SunCobalt (Gast) · 04.05.2011 16:40 · [flux]

      Danke Walter. : ist ein reserviertes Zeichen in Mapserver und das LABELITEM "namede" steht schon in Anführungszeichen, also in der Query gehts, dann habe ich name:de als Variable, die ich nicht auswerten kann. Habe mehrere Sachen probiert, aber es ging nicht. Ist nicht weiter tragisch, das umbenennen geht problemlos & fix.

      Eine andere Sache ging mir eben noch durch den Kopf. Wenn name=null ist und auch namede=null, was ja für viele Objekte der Fall ist, kopiert der ja bei allen Objekten die null rüber.
      Kann man das so erweitern?

      update osm_line set namede=name where namede is null and name is not null;


    • Re: Kurze Postgres /SQL Frage · wambacher (Gast) · 04.05.2011 17:00 · [flux]

      SunCobalt wrote:

      Danke Walter. : ist ein reserviertes Zeichen in Mapserver und das LABELITEM "namede" steht schon in Anführungszeichen, also in der Query gehts, dann habe ich name:de als Variable, die ich nicht auswerten kann. Habe mehrere Sachen probiert, aber es ging nicht. Ist nicht weiter tragisch, das umbenennen geht problemlos & fix.

      na ja, rendern ist -noch- nicht mein Bier; ich hab die Frage halt auf reines SQL bezogen.
      Dass Mapserver mit den Tabellennamen vom osm2pgsql-schema nicht klarkommt, erscheint mit etwas "komisch". Aber den kenn ich halt nicht. Nur etwas mapnik.

      Eine andere Sache ging mir eben noch durch den Kopf. Wenn name=null ist und auch namede=null, was ja für viele Objekte der Fall ist, kopiert der ja bei allen Objekten die null rüber.
      Kann man das so erweitern?

      update osm_line set namede=name where namede is null and name is not null;

      jo, sollte so sein.
      bei komplexeren logschen abfragen - z.b mit OR- sollte man sicherheitshalber Klammern setzen, sonst gibt es ganz fiese Ergebnisse.


    • Re: Kurze Postgres /SQL Frage · ajoessen (Gast) · 05.05.2011 07:04 · [flux]

      wambacher wrote:

      na ja, rendern ist -noch- nicht mein Bier; ich hab die Frage halt auf reines SQL bezogen.
      Dass Mapserver mit den Tabellennamen vom osm2pgsql-schema nicht klarkommt, erscheint mit etwas "komisch".

      Die Spalte "name:de" gehört ja auch nicht zum Standardstyle von osm2pgsql. Wenn SunCobalt da was hinzufügt, muß er schon selber auf die Akzeptanz bei der Rendersoftware achten.

      gruß,
      ajoessen


    • Re: Kurze Postgres /SQL Frage · wambacher (Gast) · 05.05.2011 08:28 · [flux]

      ajoessen wrote:

      wambacher wrote:

      na ja, rendern ist -noch- nicht mein Bier; ich hab die Frage halt auf reines SQL bezogen.
      Dass Mapserver mit den Tabellennamen vom osm2pgsql-schema nicht klarkommt, erscheint mit etwas "komisch".

      Die Spalte "name:de" gehört ja auch nicht zum Standardstyle von osm2pgsql. Wenn SunCobalt da was hinzufügt, muß er schon selber auf die Akzeptanz bei der Rendersoftware achten.

      gruß,
      ajoessen

      Danke,

      alles klar
      Gruss
      Walter