[PostNAS] Antworten zu Delete/Replace
"Jäger, Frank (KRZ)"
F.Jaeger at KRZ.DE
Mo Nov 19 03:10:29 PST 2012
Hallo,
bei uns treten die Fehler nach der Aktualisierung inzwischen nicht mehr auf.
> Gibt es eine verbesserte gdal-Version dazu? Wir haben bisher 1.9.2 verwendet.
Man sollte die aktuelle Entwicklungs-Version verwenden.
Auschecken des Quellcodes und selbst compilieren.
> Oder ist in einem Datenbank-Template ein Trigger geändert worden?
Ja, siehe
http://trac.wheregroup.com/PostNAS/browser/trunk/data/konvert/postnas_0.7/alkis_PostNAS_0.7_schema.sql
-- 2012-10-31 FJ Trigger fuer NAS-Replace-Saetze repariert:
...
CREATE OR REPLACE FUNCTION delete_feature_kill() RETURNS TRIGGER AS $
...
-- Nur alte Objekte entfernen
query := 'DELETE FROM ' || NEW.typename
|| ' WHERE gml_id = ''' || gml_id || ''' AND beginnt < ''' || aktbeg || '''';
Und
http://trac.wheregroup.com/PostNAS/browser/trunk/data/konvert/postnas_0.7/pp_laden.sql
2012-10-29 Redundanzen aus alkis_beziehungen beseitigen, die nach NAS replace auftreten
...
DELETE
FROM alkis_beziehungen AS bezalt -- Beziehung Alt
WHERE EXISTS
...
> und haben daher die Vorgehensweise ... nur prinzipiell befolgt
Der Konverter fügt bei "replace" das geänderte Objekt in die Objekt-Tabelle ein und macht einen Eintrag in der Tabelle "delete".
Der Eintrag in "delete" löst den Trigger aus. Der Trigger soll die alten Objekte finden und löschen.
Bisher wurde nur nach "gml_id" gesucht und gelöscht, das war der Fehler.
Da zuerst das neue Objekt eingetragen wird (gleiche "gml_id" wie das alte) und erst dann der "replace" in die "delete"-Tabelle eingetragen wird, hat der Trigger das alte *und* auch das neue Objekt gelöscht. Daher die "Löcher" in der Karte.
Über die neue WHERE-Clausel im DELETE versuche ich das nun zu vermeiden.
Die redundanten Einträge in der Tabelle "alkis_beziehungen" werden derzeit mit einem SQL-Befehl nach dem Konverter-Lauf bereinigt.
Hier könnte man auch noch was in den Trigger einbauen damit die Datenbank während des Laufes konsistenter bleibt.
Mfg
F. Jäger
Von: nas-bounces at lists.osgeo.org [mailto:nas-bounces at lists.osgeo.org] Im Auftrag von Bernd Kamjunke
Gesendet: Montag, 19. November 2012 11:46
An: nas at lists.osgeo.org
Betreff: Re: [PostNAS] Antworten zu Delete/Replace
Hallo Herr Jäger, hallo an alle weiteren Beteiligten!
In meiner Firma haben wir das gleiche Problem mit NAS-Aktualisierungsdaten
aus NRW:
..
Wir benutzen allerdings eine SQLite-Datenbank und haben daher die
Vorgehensweise wie unter http://trac.wheregroup.com/PostNAS/wiki/SchrittfuerSchritt#
beschrieben nur prinzipiell befolgt.
Leider bin ich aus den Inhalten der Emails zu diesem Fehler abschließend
nicht wirklich schlau geworden, daher meine Fragen:
Gibt es schon eine Lösung zu diesem Problem und wenn ja, wo genau "liegt" die?
Gibt es eine verbesserte gdal-Version dazu? Wir haben bisher 1.9.2 verwendet.
Oder ist in einem Datenbank-Template ein Trigger geändert worden?
Schönen Gruß
Bernd Kamjunke
More information about the NAS
mailing list