Ignore:
Timestamp:
08/28/14 16:45:07 (10 years ago)
Author:
frank.jaeger
Message:

laufende Arbeiten um Tabelle "alkis_beziehungen" aus den Views zu entfernen

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Version-0.8/import/alkis-functions.sql

    r324 r326  
    180180        EXECUTE sql; 
    181181 
    182 --      CREATE UNIQUE INDEX vobjekte_gmlid ON vobjekte(gml_id,beginnt); 
    183 --      CREATE INDEX vobjekte_table ON vobjekte(table_name); 
    184  
    185182        CREATE VIEW vbeziehungen AS 
    186183                SELECT  beziehung_von,(SELECT table_name FROM vobjekte WHERE gml_id=beziehung_von) AS typ_von 
     
    188185                        ,beziehung_zu,(SELECT table_name FROM vobjekte WHERE gml_id=beziehung_zu) AS typ_zu 
    189186                FROM alkis_beziehungen; 
    190  
    191 --      CREATE INDEX vbeziehungen_von    ON vbeziehungen(beziehung_von); 
    192 --      CREATE INDEX vbeziehungen_vontyp ON vbeziehungen(typ_von); 
    193 --      CREATE INDEX vbeziehungen_art    ON vbeziehungen(beziehungsart); 
    194 --      CREATE INDEX vbeziehungen_zu     ON vbeziehungen(beziehung_zu); 
    195 --      CREATE INDEX vbeziehungen_zutyp  ON vbeziehungen(typ_zu); 
    196187 
    197188        RETURN 'ALKIS-Views erzeugt.'; 
     
    384375-- Geaendert 2014-02-03 auf Vorschlag M.B. Krs. Unna 
    385376 
    386 /* 
    387  
    388 -- Diese Version arbeitet nur korrekt, wenn die Spalte gml_id im Format "character(16)" angelegt ist. 
    389  
    390 CREATE OR REPLACE FUNCTION delete_feature_kill() RETURNS TRIGGER AS $$ 
    391 DECLARE 
    392         query TEXT; 
    393         begsql TEXT; 
    394         aktbeg TEXT; 
    395         gml_id TEXT; 
    396         query_bez TEXT; 
    397 BEGIN 
    398         NEW.typename := lower(NEW.typename); 
    399         NEW.context := lower(NEW.context); 
    400         gml_id      := substr(NEW.featureid, 1, 16); 
    401  
    402         IF NEW.context IS NULL THEN 
    403                 NEW.context := 'delete'; 
    404         END IF; 
    405  
    406         IF NEW.context='delete' THEN -- Ersatzloses Loeschen des Objektes 
    407           -- In der Objekt-Tabelle 
    408                 EXECUTE 'DELETE FROM ' || NEW.typename || ' WHERE gml_id = ''' || gml_id || ''''; 
    409           -- Beziehungen von und zu dem Objekt sind hinfaellig 
    410                 EXECUTE 'DELETE FROM alkis_beziehungen WHERE beziehung_von = ''' || gml_id || ''' OR beziehung_zu = ''' || gml_id || ''''; 
    411                 --RAISE NOTICE 'Lösche gml_id % in % und Beziehungen', gml_id, NEW.typename; 
    412  
    413         ELSE -- Ersetzen eines Objektes (Replace). In der Objekt-Tabelle sind jetzt bereits 2 Objekte vorhanden (alt und neu). 
    414                 -- beginnt-Wert des aktuellen Objektes ermitteln 
    415                 begsql := 'SELECT max(beginnt) FROM ' || NEW.typename || ' WHERE gml_id = ''' || substr(NEW.replacedBy, 1, 16) || ''' AND endet IS NULL'; 
    416                 EXECUTE begsql INTO aktbeg; 
    417                 -- Alte Objekte entfernen 
    418                 EXECUTE 'DELETE FROM ' || NEW.typename || ' WHERE gml_id = ''' || gml_id || ''' AND beginnt < ''' || aktbeg || ''''; 
    419                 -- Beziehungen vom alten Objekt entfernen, die aus frueheren Importen stammen 
    420                 EXECUTE 'DELETE FROM alkis_beziehungen WHERE beziehung_von = ''' || gml_id || ''' AND import_id < (SELECT max(id) FROM import)'; 
    421         END IF; 
    422  
    423         NEW.ignored := false; 
    424         RETURN NEW; 
    425 END; 
    426 $$ LANGUAGE plpgsql; 
    427  
    428 */ 
    429  
    430377-- 2014-08-27: Anpassung an vereinheitlichtes Datenbank-Schema. 
    431378-- Wenn die Spalte gml_id im Format "character varying" (ohne LÀngenbegrenzung) angelegt wird, 
Note: See TracChangeset for help on using the changeset viewer.