X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=sql%2F09_backup_parts_trigger.sql;fp=sql%2F09_backup_parts_trigger.sql;h=c48163c86aba19a79090fa2914305331e3b1d754;hp=c4fe684044d1e5a41dd2edbb25a8e0b0b8472595;hb=c5f4d5e4857aebfa61fc4043d5efd2309e9b074b;hpb=c8dd65a79ae50c03b48b096e8ae44ed51b56a69a diff --git a/sql/09_backup_parts_trigger.sql b/sql/09_backup_parts_trigger.sql index c4fe684..c48163c 100644 --- a/sql/09_backup_parts_trigger.sql +++ b/sql/09_backup_parts_trigger.sql @@ -32,23 +32,25 @@ create trigger do_backup_parts_check create or replace function backup_backup_parts_check() returns trigger as ' declare b_id integer; + old_b_id integer; my_part_nr integer; calc_part integer; begin if (TG_OP = ''INSERT'') then - -- raise notice ''trigger: % backup_id %'', TG_OP, new.backup_id; + raise notice ''trigger: % backup_id %'', TG_OP, new.backup_id; b_id = new.backup_id; my_part_nr = new.part_nr; execute ''update backups set parts = parts + 1 where id = '' || b_id; elsif (TG_OP = ''DELETE'') then - -- raise notice ''trigger: % backup_id %'', TG_OP, old.backup_id; + raise notice ''trigger: % backup_id %, old.part_nr %'', TG_OP, old.backup_id, old.part_nr; b_id = old.backup_id; - my_part_nr = old.part_nr; + my_part_nr = old.part_nr - 1; execute ''update backups set parts = parts - 1 where id = '' || b_id; end if; calc_part := (select count(part_nr) from backup_parts where backup_id = b_id); - if ( my_part_nr != calc_part ) then - raise exception ''Update of backup_parts with backup_id % aborted, requested part_nr is % and calulated next is %'', b_id, my_part_nr, calc_part; + if ( my_part_nr != calc_part ) then + raise exception ''Update of backup_parts with backup_id % aborted, requested part_nr is % and calulated next is %'', b_id, my_part_nr, calc_part; + end if; return null; end;