pour déploiement auto v2 via gitlab
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

67 lines
1.6 KiB

return: text
lang: plpgsql
src: |
DECLARE
BEGIN
INSERT INTO pmsi.t_divers (code, texte, valeur, description)
SELECT
'PURGE_IMPORT',
'Purge des imports (IN,OUT). Nombre d''annees a conserver',
'99',
'Purge des imports (IN,OUT). Nombre d''annees a conserver (le dernier mois de chaque annee est conserve)'
WHERE 'PURGE_IMPORT' NOT IN (SELECT code FROM pmsi.t_divers)
;
DROP TABLE IF EXISTS w_periode;
CREATE TEMP TABLE w_periode AS
SELECT date(date_trunc('year',now())-(valeur||' years')::interval+interval '1 year'-interval '1 day') AS date_purge
FROM pmsi.t_divers
WHERE code = 'PURGE_IMPORT'
;
ANALYSE w_periode
;
DELETE FROM pmsi.p_imports
USING w_periode
WHERE etat = 'G' AND
(
date_fin = '20991231' OR
date_fin <= date_purge
) AND
oid NOT IN (SELECT import_id FROM pmsi.p_rss GROUP BY 1 HAVING count(*) >= 10) AND date_import < date(date_trunc('year',now())-interval '1 year')
;
DELETE FROM pmsi.p_imports
USING w_periode
WHERE etat = 'G' AND
(
date_fin = '20991231' OR
date_fin <= date_purge
) AND
oid NOT IN (SELECT import_id FROM pmsi.p_rss GROUP BY 1 )
;
DELETE FROM pmsi.p_imports
WHERE etat <> 'G' AND
date_import < date(date_trunc('month',now())-interval '6 month')
;
DELETE FROM pmsi.p_imports_data
WHERE import_id NOT IN (SELECT oid FROM pmsi.p_imports)
;
DELETE FROM pmsi.p_imports_controles
WHERE import_id NOT IN (SELECT oid FROM pmsi.p_imports)
;
ANALYSE pmsi.p_imports_controles
;
ANALYSE pmsi.p_imports_data
;
RETURN 'OK';
END;