mirror of
https://github.com/atuinsh/atuin.git
synced 2024-12-25 16:39:18 +01:00
Fix delete trigger (#317)
I've tested this again by deleting my full history and re-syncing, all good.
This commit is contained in:
parent
48747e3b7c
commit
fe05d86bfa
@ -0,0 +1,35 @@
|
||||
-- the old version of this function used NEW in the delete part when it should
|
||||
-- use OLD
|
||||
|
||||
create or replace function user_history_count()
|
||||
returns trigger as
|
||||
$func$
|
||||
begin
|
||||
if (TG_OP='INSERT') then
|
||||
update total_history_count_user set total = total + 1 where user_id = new.user_id;
|
||||
|
||||
if not found then
|
||||
insert into total_history_count_user(user_id, total)
|
||||
values (
|
||||
new.user_id,
|
||||
(select count(1) from history where user_id = new.user_id)
|
||||
);
|
||||
end if;
|
||||
|
||||
elsif (TG_OP='DELETE') then
|
||||
update total_history_count_user set total = total - 1 where user_id = old.user_id;
|
||||
|
||||
if not found then
|
||||
insert into total_history_count_user(user_id, total)
|
||||
values (
|
||||
old.user_id,
|
||||
(select count(1) from history where user_id = old.user_id)
|
||||
);
|
||||
end if;
|
||||
end if;
|
||||
|
||||
return NEW; -- this is actually ignored for an after trigger, but oh well
|
||||
end;
|
||||
$func$
|
||||
language plpgsql volatile -- pldfplplpflh
|
||||
cost 100; -- default value
|
Loading…
Reference in New Issue
Block a user