Hi,

I want to create a function (PL/pgSQL), which return multiple rows. But it
fails -- when Creating the function, I get a notice:

  NOTICE:  ProcedureCreate: return type 'records' is only a shell


When executing it, this error:

  ERROR:  fmgr_info: function 0: cache lookup failed


How should I do this?


The function is simple:

   CREATE FUNCTION foo (timestamp) RETURNS SETOF records AS 
        '
        BEGIN
           RETURN SELECT * FROM table;
        END;
        ' LANGUAGE 'plpgsql';
   


or, in more detail the exact function:


   CREATE FUNCTION get_emotions (timestamp) RETURNS SETOF records AS 
         '
         DECLARE 
            start ALIAS FOR $1;
            end_id int4;
         BEGIN
            SELECT emotion_id FROM emotions 
                             WHERE date <= start 
                             LIMIT 1 
                              INTO end_id;
            RETURN SELECT emotion_id, emotion1, [...]
                  FROM  emotions 
                  WHERE emotion_id BETWEEN end_id-3000 AND end_id
                  ORDER BY date_epoch + full_rating*(3600*12)
                  LIMIT 300;
         END;
         '
      LANGUAGE 'plpgsql'; 



Thanx for any help!


Ciao
  Alvar



-- 
| AGI ............................................................... |
| Magirusstrasse 21B, 70469 Stuttgart . Fon +49 (0)711.228 74-50 .... |
| http://www.agi.com/diary/ (english) . http://www.agi.de/tagebuch/ . |
| >>>>>> NEWS >>> AGI holt Bronze-Loewen in Cannes! <<<<<<<<<<<<<<<<< |



---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

Reply via email to