| From: | Rolf Schaufelberger <rs(at)plusw(dot)de> |
|---|---|
| To: | pgsql-de-allgemein(at)postgresql(dot)org |
| Subject: | Re: cache lookup failed for function ... |
| Date: | 2007-08-30 11:29:57 |
| Message-ID: | 200708301329.57209.rs@plusw.de |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-de-allgemein |
Hallo,
On Donnerstag 30 August 2007, A. Kretschmer wrote:
> am Thu, dem 30.08.2007, um 12:00:00 +0200 mailte Rolf Schaufelberger
folgendes:
> > Hallo,
> >
> > ich arbeite in meinem Projekt viel mit Trigger und Functions. Dabei
> > werden z.T. Funktionen durch die Trigger aufgerufen (perform ...)
> > Dabei stelle ich manchmal Probleme fest derart, dass falsche Berechnungen
> > durchgeführt werden, da ein Trigger eine Funktion verwendet, die im Cache
>
> Wohl eher das Ergebniss der Funktion, oder? Hast Du die als IMMUTABLE
> definiert, und sie ist es nicht?
Hatte erst mal nicht angegeben, war dann VOLATILE, dann habe ich STABLE
angegeben, Ergebnis beidesmal gleich falsch.
>
> > Meine Grundsätzliche Frage: Wo ist dieses verhalten (caching von
> > Funktionen) dokumentiert und kann man das beeinflussen ? Wann / Wie wird
> > der cache gelöscht ?
>
> Ich tippe auf
> http://www.postgresql.org/docs/current/static/xfunc-volatility.html
Habe ich in der Zwischenzeit auch gefunden, aber es heißt dort ausdrücklich,
"within a single statement". Es sollte als in beiden Fällen das richtige
Ergebnis liefern, wenn es mit dem gleichen Parameter aufgerufen wird.
Der Ablauf ist etwa so:
Trigger T
ruft Funktion A ( param)
ruft Funktion B ( param)
ruft Funktion C ( param)
(C ist die F. welche das falsche Ergenis liefert.
Wenn ich Funktion A ( param) direkt aufrufe, ist das Ergebnis falsch,
Rufe ich B oder C direkt auf, ist es richtig.
Function C ist eine einfache SQL-Funktion (langauge SQL), A und B sind in
plsql geschrieben.
Ich habe auch alle drei Funktionen gedroppt, neu geladen, Ergebnis immer noch
falsch. Bin ratlos.
Rolf Schaufelberger
| From | Date | Subject | |
|---|---|---|---|
| Next Message | A. Kretschmer | 2007-08-30 11:30:30 | Re: cache lookup failed for function ... |
| Previous Message | Peter Eisentraut | 2007-08-30 11:24:53 | Re: cache lookup failed for function ... |