On Feb 3, 2008 3:23 PM, brian <[EMAIL PROTECTED]> wrote:

> CREATE TYPE your_type
> AS (
>   added CHAR(11) NOT NULL,
>   updated CHAR(11) NOT NULL,
>   text_col TEXT
> );
>
> CREATE FUNCTION get_note(id INT)
> RETURNS SETOF your_type IMMUTABLE
> AS $$
>
>   DECLARE
>     your_row your_type%rowtype;
>
>   BEGIN
>     SELECT INTO your_row
>       to_char(added, 'Mon D YYYY'),
>       to_char(updated, 'Mon D YYYY'),
>       text_col
>     FROM note
>     WHERE id = $1;
>
>     RETURN your_row;
>   END;
> $$ LANGUAGE sql;
>
>
All's okay, except you should not have declared it IMMUTABLE, because the
results depend on a database query.

>From the docs:
IMMUTABLE indicates that the function cannot modify the database and always
returns the same result when given the same argument values; that is, it does
not do database lookups or otherwise use information not directly present in
its argument list

Best regards,
-- 
[EMAIL PROTECTED]
[EMAIL PROTECTED] gmail | hotmail | indiatimes | yahoo }.com

EnterpriseDB      http://www.enterprisedb.com

17° 29' 34.37"N,   78° 30' 59.76"E - Hyderabad
18° 32' 57.25"N,   73° 56' 25.42"E - Pune
37° 47' 19.72"N, 122° 24' 1.69" W - San Francisco *

http://gurjeet.frihost.net

Mail sent from my BlackLaptop device

Reply via email to