TriggerFunktion angelegt ohne Fehlermeldung

Hallo, ich konnte ohne Fehlermeldung/Warnung eine Triggerfunktion (CREATE OR REPLACE FUNCTION trigger_name() RETURNS trigger AS) erstellen, obwohl ich im Body auf eine Tabelle selektiere, die es noch nicht in der Datenbank gibt! (Kontrolle durch ausgeführte manuelle Select-Abfrage danach → lief wie erwartet auf Fehler)
Das hat mich überrascht, weil ich zumindestens eine Warnung erwarten würde (passiert so in ORACLE). Nachfrage: ist dieses Verhalten der Datenbank zu erwarten? Wo steht das in der Doku? Ich wurde dazu nicht fündig. Kann ich das unterbinden oder wenigstens eine Warnung bekommen?
Danke fürs Weiterhelfen.

Ja, das ist so erwartet. Hat auch nichts mit Trigger Funktionen zu tun, sondern mit der Tatsache, dass der eigentliche Code ja als String Konstante an das CREATE FUNCTION übergeben wird. Ich glaube es ist nicht explizit im Handbuch erwähnt, sondern irgendwo versteckt - ich finde es aber gerade nicht. Das gilt im übrigen für alle prozeduralen Sprachen nicht nur für PL/pgSQL.

Warum wird das nicht vollständig geprüft? Vermutlich weil sich einfach nie jemand die Mühe gemacht hat das zu ändern und es unter Umständen auch ganz praktisch ist.

Es gibt eine Extension plpgsql_check() mit der man solche Fehler aufspüren könnte.

danke, das hat weitergeholfen!

Bei Oracle hab ich das aber anders in Erinnerung. Aber vielleicht verwechsel ich da auch die Invalid Views mit dem direkten Create Ergebnis.

Ich habe mich auf alle für Postgres verfügbaren prozeduralen Sprachen bezogen. Also pl/Python, pl/Perl usw.

Dieses Thema wurde automatisch 60 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.