create or replace function cria_instrutor (nome_instrutor varchar, salario_instrutor decimal) returns void as
$$
declare
media decimal;
percentual decimal;
begin
select avg(instrutor.salario) into media from instrutor;
if media is not null then
select ((count(*) filter (where salario < salario_instrutor))::decimal / count(*)) * 100 from instrutor into percentual;
insert into instrutor(nome, salario) values (nome_instrutor, salario_instrutor);
insert into log_salarios (informacao) values (nome_instrutor || ' recebe mais do que ' || percentual || '% dos intrutores');
if salario_instrutor > media then
insert into log_salarios (informacao) values (nome_instrutor || ' recebe acima da média');
end if;
else
insert into instrutor(nome, salario) values (nome_instrutor, salario_instrutor);
end if;
end;
$$ language plpgsql;