Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision eccd2f5f

Von Moritz Bunkus vor fast 10 Jahren hinzugefügt

  • ID eccd2f5ff28fd76d8b1d34fcf9f1e48fb6c7d57f
  • Vorgänger 978a03de
  • Nachfolger 644eb8e4

Artikelstammdaten: als ungültig markierte CVars löschen

Wenn man einen Artikel hat und darin eine CVar als ungültig/nicht
zutreffend markiert, so blieben bisher die Daten, die zu dieser CVar
gehörten, in der Datenbank. Das sorgt zum Einen dafür, dass die Tabellen
unnötig voller werden, zum Anderen geistern die Daten dann noch in $form
herum (und damit auch in Druckvorlagen). Also entfernen.

Unterschiede anzeigen:

SL/IC.pm
variables => $form,
save_validity => 1);
# Delete saved custom variable values for configs that have been
# marked invalid for this part.
$query = <<SQL;
DELETE FROM custom_variables
WHERE (config_id IN (
SELECT val.config_id
FROM custom_variables_validity val
LEFT JOIN custom_variable_configs val_cfg ON (val.config_id = val_cfg.id)
WHERE (val_cfg.module = 'IC')
AND (val.trans_id = ?)))
AND (trans_id = ?)
SQL
do_query($form, $dbh, $query, ($form->{id}) x 2);
# commit
my $rc = $dbh->commit;
sql/Pg-upgrade2/delete_invalidated_custom_variables_for_parts.sql
-- @tag: delete_invalidated_custom_variables_for_parts
-- @description: Bei Artikeln ungültig gesetzte, benutzerdefinierte Variablen löschen
-- @depends: release_3_2_0
DELETE FROM custom_variables
WHERE (config_id IN (
SELECT id
FROM custom_variable_configs
WHERE module = 'IC'))
AND EXISTS (
SELECT val.id
FROM custom_variables_validity val
WHERE (val.config_id = custom_variables.config_id)
AND (val.trans_id = custom_variables.trans_id));

Auch abrufbar als: Unified diff