<commit_before>drop table if exists alw_fruchtfolgeflaechen.fff_mit_uebersteuerung;

--Alle Übersteuerungsflächen werden ausgeschnitten 
with uebersteuerung as (
    select 
        st_buffer(st_buffer(st_buffer(st_buffer(st_union(geometrie),0.01),-0.01),-0.01),0.01) as geometrie
    from 
        alw_fff_uebersteuerung.uebersteuerung
), 

union_uebersteuerung as (
    select 
        st_difference(fff_zusammengesetzt.geometrie,uebersteuerung.geometrie,0.01) as geometrie, 
        fff_zusammengesetzt.spezialfall, 
        fff_zusammengesetzt.bezeichnung, 
        null as beschreibung, 
        now() as datenstand, 
        fff_zusammengesetzt.anrechenbar
    from 
        alw_fruchtfolgeflaechen.fff_zusammengesetzt  fff_zusammengesetzt, 
        uebersteuerung

        union all 
-- die "geeigneten Übersteuerungsflächen" werden wieder eingefügt.    
    select 
        geometrie,
        spezialfall,
        bezeichnung,
        beschreibung,
        datenstand, 
        anrechenbar 
    from 
        alw_fff_uebersteuerung.uebersteuerung
    where 
        bezeichnung = 'geeignete_FFF'
)

select 
    (st_dump(geometrie)).geom as geometrie,
    spezialfall,
    bezeichnung,
    beschreibung,
    datenstand, 
    anrechenbar 
into 
    alw_fruchtfolgeflaechen.fff_mit_uebersteuerung
from 
    union_uebersteuerung
;

-- GeometryCollections werden aufgelöst. Nur die Polygons werden herausgenommen.
update 
    alw_fruchtfolgeflaechen.fff_mit_uebersteuerung
    set 
    geometrie = ST_CollectionExtract(geometrie, 3)
WHERE 
    st_geometrytype(geometrie) = 'ST_GeometryCollection'
;

delete from 
    alw_fruchtfolgeflaechen.fff_mit_uebersteuerung
where 
    ST_IsEmpty(geometrie)
;

delete from 
    alw_fruchtfolgeflaechen.fff_mit_uebersteuerung
where 
    st_geometrytype(geometrie) = 'ST_LineString'
;

CREATE INDEX IF NOT EXISTS
    fff_mit_uebersteuerung_geometrie_idx 
    ON 
    alw_fruchtfolgeflaechen.fff_mit_uebersteuerung
    using GIST(geometrie)
;
<commit_msg>[alw_fruchtfolgeflaechen]Bei der Uebersteuerung soll nicht auf Attribut beschreibung sondern auf fall geschaut werden<commit_after>drop table if exists alw_fruchtfolgeflaechen.fff_mit_uebersteuerung;

--Alle Übersteuerungsflächen werden ausgeschnitten 
with uebersteuerung as (
    select 
        st_buffer(st_buffer(st_buffer(st_buffer(st_union(geometrie),0.01),-0.01),-0.01),0.01) as geometrie
    from 
        alw_fff_uebersteuerung.uebersteuerung
), 

union_uebersteuerung as (
    select 
        st_difference(fff_zusammengesetzt.geometrie,uebersteuerung.geometrie,0.01) as geometrie, 
        fff_zusammengesetzt.spezialfall, 
        fff_zusammengesetzt.bezeichnung, 
        null as beschreibung, 
        now() as datenstand, 
        fff_zusammengesetzt.anrechenbar
    from 
        alw_fruchtfolgeflaechen.fff_zusammengesetzt  fff_zusammengesetzt, 
        uebersteuerung

        union all 
-- die "geeigneten Übersteuerungsflächen" werden wieder eingefügt.    
    select 
        geometrie,
        spezialfall,
        bezeichnung,
        beschreibung,
        datenstand, 
        anrechenbar 
    from 
        alw_fff_uebersteuerung.uebersteuerung
    where 
        fall = 'ersetzen'
)

select 
    (st_dump(geometrie)).geom as geometrie,
    spezialfall,
    bezeichnung,
    beschreibung,
    datenstand, 
    anrechenbar 
into 
    alw_fruchtfolgeflaechen.fff_mit_uebersteuerung
from 
    union_uebersteuerung
;

-- GeometryCollections werden aufgelöst. Nur die Polygons werden herausgenommen.
update 
    alw_fruchtfolgeflaechen.fff_mit_uebersteuerung
    set 
    geometrie = ST_CollectionExtract(geometrie, 3)
WHERE 
    st_geometrytype(geometrie) = 'ST_GeometryCollection'
;

delete from 
    alw_fruchtfolgeflaechen.fff_mit_uebersteuerung
where 
    ST_IsEmpty(geometrie)
;

delete from 
    alw_fruchtfolgeflaechen.fff_mit_uebersteuerung
where 
    st_geometrytype(geometrie) = 'ST_LineString'
;

CREATE INDEX IF NOT EXISTS
    fff_mit_uebersteuerung_geometrie_idx 
    ON 
    alw_fruchtfolgeflaechen.fff_mit_uebersteuerung
    using GIST(geometrie)
;

{'fraction_non_alphanumeric': 0.053431372549019605, 'fraction_numerical': 0.00784313725490196, 'mean_word_length': 3.3834586466165413, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6744312', 'n_tokens_mistral': 1600, 'n_tokens_neox': 1558, 'n_words': 228}