--freemarker template
<#if SQLdialect='Postgres'>
<#assign texttype="text" />
<#else>
EXECUTE PROCEDURE IFX_ALLOW_NEWLINE('T');
<#assign texttype="lvarchar" />
</#if>
<#assign newline="'
'" />


create table tmp_konstanten
  (
    tid serial,
    apnr integer,
    beschreibung char(255),
	defaultvalue integer,
	description   ${texttype},
	systeminfo_id integer,
	doku_link varchar(255),
	read_only integer,
	wertebereich varchar(250),
	ab_version varchar(10),
	gruppe varchar(255),
	sachgebiete_id integer
  );
insert into tmp_konstanten(apnr,
beschreibung,
 defaultvalue,
 description,
 systeminfo_id,
 doku_link,
 read_only,
 wertebereich,
 ab_version,
 gruppe,
 sachgebiete_id)
 values (1,
'COSTAGE_TSG_GENERATE',
 1,
'Teilstudiengänge Status aus MSG ausdehnen',

310,
 'https://www.superx-projekt.de/doku/costage_modul/admin/f_Konstanten.htm',--doku link
0,
'1,Ja'|| ${newline} || '0,Nein',
 '>0.3',
 'Datenquelle, Entladestartzeitpunkt, -umfang',
 310);

insert into tmp_konstanten(apnr,
beschreibung,
 defaultvalue,
 description,
 systeminfo_id,
 doku_link,
 read_only,
 wertebereich,
 ab_version,
 gruppe,
 sachgebiete_id)
 values (5,
'COSTAGE_einzpruef_anz_sem',
 5,
 'Anzahl der Semester, für die rückwirkend Einzelprüfungen berechnet werden',
 310,

 'https://www.superx-projekt.de/doku/costage_modul/admin/f_Konstanten.htm',

0 ,
null::Char(1),
 '0.3',
 'Datenquelle, Entladestartzeitpunkt, -umfang',
 310);

insert into tmp_konstanten(apnr,
beschreibung,
 defaultvalue,
 description,
 systeminfo_id,
 doku_link,
 read_only,
 wertebereich,
 ab_version,
 gruppe,
 sachgebiete_id)
 values (0,
'SOS_CO_allow_external',
 0,
 'Erlaube externe Hochschuldaten',
 310,

 'https://www.superx-projekt.de/doku/costage_modul/admin/f_Konstanten.htm',

0 ,
'1,Ja'|| ${newline} || '0,Nein',
 '0.5',
 'Datenquelle, Entladestartzeitpunkt, -umfang',
 310);
 
--vorhandene Schlüssel Metadaten updaten:

<#if SQLdialect='Postgres'>
--Postgres Dialekt:
update konstanten set defaultvalue=T.defaultvalue,
description=T.description,
systeminfo_id=T.systeminfo_id ,
doku_link=T.doku_link,
read_only=T.read_only ,
wertebereich=T.wertebereich,
ab_version=T.ab_version,
gruppe=T.gruppe ,
sachgebiete_id=T.sachgebiete_id
from tmp_konstanten T
where T.beschreibung=konstanten.beschreibung;

<#else>

--Informix Dialekt:
update konstanten set (defaultvalue,
 description,
 systeminfo_id,
 doku_link,
 read_only,
 wertebereich,
  ab_version,
 gruppe,
 sachgebiete_id)
       = ((select
       defaultvalue,
 description,
 systeminfo_id,
 doku_link,
 read_only,
 wertebereich,
  ab_version,
 gruppe,
 sachgebiete_id
from tmp_konstanten T
where T.beschreibung=konstanten.beschreibung));


</#if>

delete from tmp_konstanten where beschreibung in (select beschreibung from konstanten);

create temp table tmp_hilf (tid integer);
insert into tmp_hilf select max(tid) from konstanten;
update tmp_hilf set tid=0 where tid is null;


insert into konstanten(tid , 
apnr ,beschreibung,
 defaultvalue,
 description,
 systeminfo_id,
 doku_link,
 read_only,
 wertebereich,
 ab_version,
 gruppe,
 sachgebiete_id )
select H.tid+K.tid ,
K.apnr ,
K.beschreibung,
 K.defaultvalue,
 K.description,
 K.systeminfo_id,
 K.doku_link,
 K.read_only,
 K.wertebereich,
 K.ab_version,
 K.gruppe,
 K.sachgebiete_id
from tmp_konstanten  K, tmp_hilf H;

drop table tmp_hilf;
drop table tmp_konstanten;

