Suponha que temos uma extensão hipotética chamada xyz com versão 1.0. Tem xyz--1.0.sql
e xyz.c
arquivo. Declarei a função chamada fun() no xyz--1.0.sql
arquivo e sua definição no xyz.c
arquivo.
Agora eu queria descartar essa função na próxima atualização, ou xyz--1.0--1.1
seja, vou usá DROP FUNCTION fun();
-la e remover a definição do xyz.c
arquivo.
Aqui, minha dúvida é: não xyz--1.0
reclamarei da falta de definição de fun() e, se sim, como posso limpar minha definição de função no xyz.c
arquivo?
Você tem que deixar a função no
xyz.c
arquivo para sempre, caso contrário quem optar por não atualizar a extensão terá problemas.Você poderia ser rude e enviar a versão 2 sem a função e sem
xyz--1.0.sql
(para não poder mais instalar a versão 1.0, apenas atualizar a partir dela), mas é melhor deixar claro aos usuários que eles precisamcaso contrário, eles enfrentarão erros feios.