Tak, to znany problem.
PL/pgSQL (jak każda inna funkcja, z wyjątkiem SQL
) jest „czarną skrzynką” dla PostgreSQL, dlatego tak naprawdę nie jest możliwe wykrycie błędów poza środowiskiem wykonawczym.
Możesz zrobić kilka rzeczy:
- zawiń swoją funkcję wywołując
SQL
zapytania doBEGIN
/COMMIT
oświadczenia, aby mieć lepszą kontrolę nad błędami; - dodaj
EXCEPTION
bloki do kodu, aby wyłapywać i śledzić błędy. Pamiętaj jednak, że wpłynie to na wydajność funkcji; - użyj
plpgsql_check
rozszerzenie , opracowany przez Pavla Stěhule, który jest jednym z głównych współtwórców rozwoju PL/pgSQL. Przypuszczam, że w końcu to rozszerzenie stanie się rdzeniem PostgreSQL, ale zajmie to trochę czasu (teraz jesteśmy w stanie 9.4beta3); - Możesz również przyjrzeć się temu powiązanemu pytaniu:sprawdzanie składni postgresql bez uruchamiania zapytania
I naprawdę wygląda na to, że bardzo potrzebujesz frameworka do testów jednostkowych.