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