( saxus | 2009. 01. 27., k – 09:00 )

Igen. De nincs ez túlbonyolítva. Lényegi SQL kód benne a RETURN 'Hello world'; meg előtte a BEGIN/END, ami megmondja, hogy mettől meddig van kódblokk. (Pascal-hoz hasonlóan itt is van egy DECLARE rész, ahol előre kell deklarálni a változókat).

A többi része meg ahhoz kell, hogy létrehozza a függvényt. Ebből kb. a RETURNS [SETOF] tipus a lényeg, meg nem hátrányos, ha mondjuk a language részt helyesen töltjük ki (pg-hez lehet írni SQL-ben, plpgsql-ben, c-ben külső függvényként alapból, valamint bővítményekkel java-ban, perlben, php-ben, shell scriptben(!) szóval kb. amiben akarsz tárolt eljárást).

A COST meg annyi, hogy mennyi a query költsége, ha jól tudom az optimalizálónak segít, ha egy kürübelül pontos értéket adunk meg. (Egy SQL Query esetén meg tudja becsülni magának, de egy tárolt eljárásnál nem triviális).

a VOLATILE/STABLE/IMMUTABLE meg szintén az optimalizáláshoz szükséges, ha x bemenetre mindig y kimenetet ad a függvény, akkor célszerű STABLE -ra rakni, mert akkor előre letárolja az értelmezési adatokat, ellentétben pl. a VOLATILE-vel, akkor midnig értelmezi, ha meghívjuk és ilyenek.

----------------
Lvl86 Troll