Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Firebird 3.0 - Stored Functions & Schlüsselwort deterministic

  Alt 23. Mai 2017, 16:59
Neben den Erläuterungen von Himitsu würde ich ergänzen (halbwissen), dass der Determinismus sinnvollerweise an die Eingangsparameter gekoppelt sein muss.

Wenn also wie in einem Beispiel, nur ein Zeilenumbruch geliefert wird, ganz ohne Parameter find ich das schon ziemlich(? gibt es das?) deterministisch.
Wenn der Zeilenumbruch abhängig von einem Eingangsparameter Windows:boolean true|false geliefert wird, immer noch ziemlich deterministisch, denn konstante Eingangsparameter liefern immer gleiches Ergebnis.
Liefert die Funktion aber einen Zeilenumbruch im Windows oder Unixstyle abhängig von sagen wir den Usersettings und dessen bevorzugter CSV Ausgabeeinstellung, wird es schwierig mit deterministisch.
Bei einer DB dürfte m.E. hier auch der DB Kontext eine Rolle spielen, also Session oder auch nur Transaktion. Da könnte sogar eine Funktion getCountOfTable deterministisch sein, wenn sie innerhalb der Transaktion nicht geändert wird.

Am Ende alles implementierungsabhängig. Wenn die Doku nichts hergibt, hilft nur ausprobieren. Am besten gleich mit einer Count(*) Funktion auf einer großen Tabelle, sprich einer Funktion, die auch viel Zeit braucht und damit leicht messbar ist und gut prüfbar, was den Rückgabewert angeht.
Gruß, Jo
  Mit Zitat antworten Zitat