Ja, dit is een bekend probleem.
PL/pgSQL (zoals elke andere functie, behalve op SQL
) is een "zwarte doos" voor de PostgreSQL, daarom is het niet echt mogelijk om fouten te detecteren, behalve tijdens runtime.
Je kunt verschillende dingen doen:
- wrap je functie die
SQL
aanroept zoekopdrachten inBEGIN
/COMMIT
verklaringen om een betere controle over fouten te hebben; - add
EXCEPTION
blokken aan uw code om fouten op te sporen en op te sporen. Houd er echter rekening mee dat dit de prestatie van de functie beïnvloedt; - gebruik
plpgsql_check
extensie , ontwikkeld door Pavel Stěhule, die een van de belangrijkste bijdragers is aan de ontwikkeling van PL/pgSQL. Ik veronderstel dat deze extensie uiteindelijk de kern van PostgreSQL zal bereiken, maar het zal even duren (nu zijn we in de staat 9.4beta3); - Je zou ook deze gerelateerde vraag kunnen bekijken:postgresql-syntaxiscontrole zonder de query uit te voeren
En het lijkt er echt op dat je een enorm raamwerk voor het testen van eenheden nodig hebt.