Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision c3ab29e6

Von Moritz Bunkus vor fast 10 Jahren hinzugefügt

  • ID c3ab29e68cb062048266bd5a035bb68faa8d2960
  • Vorgänger cf263726
  • Nachfolger e7c07dfd

Benutzerdefinierte Variablen via Trigger löschen Bugfix 2

Die Triggerfunktion selber sollte aus Performancegründen nicht »DELETE …
WHERE … IN (SELECT…)« nutzen, da dies bei PostgreSQL sehr langsam ist.

Unterschiede anzeigen:

sql/Pg-upgrade2/delete_cvars_on_trans_deletion_fix2.sql
1
-- @tag: delete_cvars_on_trans_deletion_fix2
2
-- @description: Bugfix 2 für das Löschen von benutzerdefinierten Variablen via Triggerfunktionen
3
-- @depends: delete_cvars_on_trans_deletion_fix1
4

  
5
-- 2.1. Parametrisierte Backend-Funktion zum Löschen:
6
CREATE OR REPLACE FUNCTION delete_custom_variables_with_sub_module(config_module TEXT, cvar_sub_module TEXT, old_id INTEGER)
7
RETURNS BOOLEAN AS $$
8
  BEGIN
9
    DELETE FROM custom_variables
10
    WHERE EXISTS (SELECT id FROM custom_variable_configs cfg WHERE (cfg.module = config_module) AND (custom_variables.config_id = cfg.id))
11
      AND (COALESCE(sub_module, '') = cvar_sub_module)
12
      AND (trans_id                 = old_id);
13

  
14
    RETURN TRUE;
15
  END;
16
$$ LANGUAGE plpgsql;

Auch abrufbar als: Unified diff