ALTER TABLE public.repository ENABLE ALWAYS TRIGGER es_delete_repository;
ALTER TABLE public.repository ENABLE ALWAYS TRIGGER es_delete_repository;
DROP TRIGGER IF EXISTS es_udpate_repository_lang on public.language_stat;
CREATE OR REPLACE FUNCTION public.udpate_repository_lang() RETURNS trigger AS
CREATE OR REPLACE FUNCTION public.udpate_repository_lang() RETURNS trigger AS
$def$
$def$
BEGIN
BEGIN
if (TG_OP = 'UPDATE') then
if (TG_OP = 'UPDATE') then
update public.repository_es SET lang=(select array_to_string(array_agg(language order by percentage desc),',') from public.language_stat where repo_id=NEW.repo_id) where id=NEW.repo_id;
update public.repository_es SET lang=(select array_to_string(array_agg(language order by percentage desc),',') from public.language_stat where repo_id=NEW.repo_id) where id=NEW.repo_id;
elsif (TG_OP = 'INSERT') then
elsif (TG_OP = 'INSERT') then
update public.repository_es SET lang=(select array_to_string(array_agg(language order by percentage desc),',') from public.language_stat where repo_id=NEW.repo_id) where id=NEW.repo_id;
update public.repository_es SET lang=(select array_to_string(array_agg(language order by percentage desc),',') from public.language_stat where repo_id=NEW.repo_id) where id=NEW.repo_id;
end if;
elsif (TG_OP = 'DELETE') then
if exists(select 1 from public.repository where id=OLD.repo_id)
update public.repository_es SET lang=(select array_to_string(array_agg(language order by percentage desc),',') from public.language_stat where repo_id=OLD.repo_id) where id=OLD.repo_id;
end if;
end if;
return null;
return null;
END;
END;
$def$
$def$
LANGUAGE plpgsql;
LANGUAGE plpgsql;
DROP TRIGGER IF EXISTS es_udpate_repository_lang on public.language_stat;
CREATE TRIGGER es_udpate_repository_lang
CREATE TRIGGER es_udpate_repository_lang
AFTER INSERT OR UPDATE OR DELETE ON public.language_stat
AFTER INSERT OR UPDATE OR DELETE ON public.language_stat
FOR EACH ROW EXECUTE PROCEDURE udpate_repository_lang();
FOR EACH ROW EXECUTE PROCEDURE udpate_repository_lang();