Re: function error

From: Jeff Eckermann <jeff_eckermann(at)yahoo(dot)com>
To: Travis Hoyt <thoyt(at)npc(dot)net>, pgsql-sql(at)postgresql(dot)org
Subject: Re: function error
Date: 2002-03-28 15:35:25
Message-ID: 20020328153525.78708.qmail@web20806.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

If this is genuinely a copy of something in the
"PostgreSQL Developer's Handbook", then that book
could use some work.
1. You need "ALIAS FOR" in the DECLARE section
2. You need an explicit RETURN; i.e. write "RETURN
result;" before "END;"
3. Language is plpgsql, not sql (which doesn't allow
the constructions you are using).

If columns "systemid" and "time" are not of text type,
you will need to do some type casting for your
comparisons to work. I believe "time" is a reserved
word anyway, so if that is the real name of the
column, you will need to double-quote it, which in the
function definition will need to be escaped:
'"time"', or \"time\".

--- Travis Hoyt <thoyt(at)npc(dot)net> wrote:
> CREATE FUNCTION biwklyavg(text, text, text) RETURNS
> numeric AS '
> DECLARE
> system ALIAS $1;
> startdate ALIAS $2;
> enddate ALIAS $3;
> result numeric;
>
> BEGIN
> result := (select (avg(usr) +
> avg(sys)) from sardata where
> systemid = system
> and time between startdate
> and enddate;
> END;
> ' LANGUAGE 'sql';
>
> Hello,
>
> The fuction listed above gives the following error:
>
> ERROR: parser: parse error at or near "alias"
>
> I'm running v7.2. Any ideas? I pulled this
> directly from the examples in
> the PostgreSQL Developer's Handbook.
>
> Thanks,
>
> Travis
>

> ATTACHMENT part 2 application/x-pkcs7-signature
name=smime.p7s

__________________________________________________
Do You Yahoo!?
Yahoo! Movies - coverage of the 74th Academy Awards
http://movies.yahoo.com/

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Travis Hoyt 2002-03-28 15:51:37 Re: function error
Previous Message DI Hasenöhrl 2002-03-28 15:31:10 Re: Left outer join with WHERE clause?