Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision eccd2f5f

Von Moritz Bunkus vor mehr als 9 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
526 526
                              variables     => $form,
527 527
                              save_validity => 1);
528 528

  
529
  # Delete saved custom variable values for configs that have been
530
  # marked invalid for this part.
531
  $query = <<SQL;
532
    DELETE FROM custom_variables
533
    WHERE (config_id IN (
534
        SELECT val.config_id
535
        FROM custom_variables_validity val
536
        LEFT JOIN custom_variable_configs val_cfg ON (val.config_id = val_cfg.id)
537
        WHERE (val_cfg.module = 'IC')
538
          AND (val.trans_id   = ?)))
539
      AND (trans_id = ?)
540
SQL
541
  do_query($form, $dbh, $query, ($form->{id}) x 2);
542

  
529 543
  # commit
530 544
  my $rc = $dbh->commit;
531 545

  
sql/Pg-upgrade2/delete_invalidated_custom_variables_for_parts.sql
1
-- @tag: delete_invalidated_custom_variables_for_parts
2
-- @description: Bei Artikeln ungültig gesetzte, benutzerdefinierte Variablen löschen
3
-- @depends: release_3_2_0
4
DELETE FROM custom_variables
5
WHERE (config_id IN (
6
    SELECT id
7
    FROM custom_variable_configs
8
    WHERE module = 'IC'))
9
  AND EXISTS (
10
    SELECT val.id
11
    FROM custom_variables_validity val
12
    WHERE (val.config_id = custom_variables.config_id)
13
      AND (val.trans_id  = custom_variables.trans_id));

Auch abrufbar als: Unified diff