CREATE OR REPLACE FUNCTION tabsin(float,float,float) RETURNS BOOL AS '
  DECLARE i NUMERIC(5,4); krok NUMERIC(5,4); do NUMERIC(5,4);
  BEGIN
IF NOT EXISTS(SELECT relname FROM pg_class
  WHERE relname = ''tabsin'' AND relkind=''r'') THEN
  RAISE NOTICE ''Vytv���m tabulku tabsin'';
  CREATE TABLE tabsin (x NUMERIC(5,4) PRIMARY KEY, fx float);
ELSE 
  RAISE NOTICE ''Ru��m v�echny zaznamy v tabulce tabsin'';
  TRUNCATE TABLE tabsin;
END IF;
i := CAST($1 AS NUMERIC(5,4));
do := CAST($2 AS NUMERIC(5,4));
krok := CAST($3 AS NUMERIC(5,4));
WHILE i > do LOOP
  INSERT INTO tabsin VALUES(CAST(i AS NUMERIC(5,4)), SIN(CAST(i AS float)));
  i := i + krok;
END LOOP;
RETURN TRUE;
  END;
' LANGUAGE 'plpgsql';